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.