I have a question regarding how inferencing in OWL deals with the blank nodes created by various "class expressions". Specifically, what happens when two different expressions create two different blank nodes with the same definitions.
For example, suppose I assert the following into an OWL model: :Mother owl:equivalentClass [ rdf:type owl:Class ; owl:intersectionOf ( :Woman :Parent ) ] . :Mom owl:equivalentClass [ rdf:type owl:Class ; owl:intersectionOf ( :Woman :Parent ) ] . Now, :Mother and :Mom are equivalentClass's to two different blank nodes that happen to have exactly the same definition. I could instead have done the following: :Mother owl:equivalentClass [ rdf:type owl:Class ; owl:intersectionOf ( :Woman :Parent ) ] . :Mom owl:equivalentClass :Mother. or even: :Mother owl:equivalentClass [ rdf:type owl:Class ; owl:intersectionOf ( :Woman :Parent ) ] . :Mom owl:equivalentClass _:b0 where _:b0 is the blank node created in the :Mother owl:equivalentClass [..] statement. Do these three sets of statements have exactly the same semantics? Are there performance/space differences between the three? Note that this question applies more generally to a wide variety of cases where blank nodes are created representing "anonymous" classes and properties. Thanks. Kent.
