I am using the Jena semantic web framework version 2.6.3.  I have code
that creates a model with owl inferencing and then adds the following
triples:

    _:bnode-3 rdf:type            owl:Restriction .
    
    _:bnode-3 owl:onProperty      :offspringOf .
    
    _:bnode-3 owl:someValuesFrom  :Person .
    
    _:bnode-3 rdfs:subClassOf     :Person .

`_:bnode-3` is supposed to be a restriction class which, for example,
would contain `:joe` if `:bob` is a `:Person` and the following triple
were asserted:

    :joe :offspringOf :bob . 

Then, since the restriction class is a subclass of Person, `:joe` would
also be a person.

And, in fact, this works.  What's confusing to me is that after I assert
just the 4 triples at the top of this post, the inferencer creates a
blank node which is a Person.  In other words, the following triple is
now in the model:

    _:b0 rdf:type :Person

I don't understand why it would do this.  Any help in understanding this
would be greatly appreciated.

Thanks.
Kent.

Reply via email to