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.

Reply via email to