On Thu, 2011-01-13 at 12:26 -0800, Kent wrote: 
> 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?  

Yes (in OWL full).

> Are
> there performance/space differences between the three?

Using less nodes and less triples is always going to be slightly faster
so your second form is preferable from that point of view and also more
transparent to a human reader.

However, I doubt any performance difference is significant in most
situations.

> Note that this question applies more generally to a wide variety of 
> cases where blank nodes are created representing "anonymous" classes
> and properties.

>From the point of view of the rule reasoners there is little difference
between blank nodes and URI resources, they are just nodes in the graph.

Dave


Reply via email to