Re: CYCLES IN CLASS/PROPERTY HIERARCHIES

Dear Wolfram

Thanks for your detailed comments. It help us a lot to understand the
subtleties between the the current RDF MT and the previous RDF
semantics. However, I would like to point out some of my objections.

>If this treatment of range/domain is really useful, is a different
>(but already closed) issue.

First of all, I am wondering to what extend we can firmly close
semantics issues of RDF, without giving a sufficient justification of
the adopted choices w.r.t. the modeling requirements of Semantic Web
applications, and, the processing requirements of RDF systems (query
languages, inference engines, etc.).  I will try mention few examples.

1) Supposing that we have the following schema:

<rdfs:Class rdf:ID="Artist"/>
<rdfs:Class rdf:ID="Artifact"/>
<rdfs:Class rdf:ID="Museum"/>
<rdfs:Class rdf:ID="Sculptor">
      <rdfs:subClassOf rdf:resource="#Artist"/> 
</rdfs:Class>
<rdfs:Class rdf:ID="Painter">
      <rdfs:subClassOf rdf:resource="#Artist"/> 
</rdfs:Class>
<rdfs:Class rdf:ID="Sculpture">
      <rdfs:subClassOf rdf:resource="#Artifact"/> 
</rdfs:Class>
<rdfs:Class rdf:ID="Painting">
      <rdfs:subClassOf rdf:resource="#Artifact"/> 
</rdfs:Class>

<rdf:Property rdf:ID="creates">
      <rdfs:domain rdf:resource="#Artist"/>
      <rdfs:range rdf:resource="#Artifact"/> 
</rdf:Property>

<rdf:Property rdf:ID="material">
      <rdfs:domain rdf:resource="#Sculpture"/>
      <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String"/>

and the statements

<Sculptor rdf:ID="rodin424"> 
     <creates>
       <Sculpture rdf:about="http://www.artchive.com/crucifixion.jpg">
       </Sculpture>
     </creates>
</Sculptor>

With the two following entailment rules:

>(5) xxx aaa yyy  AND  aaa rdf:domain zzz 
>	add:       xxx rdf:type zzz 
>
>(6) xxx aaa uuu AND   aaa rdf:range zzz
>	add:	   uuu	rdf:type zzz 
>

we should add: rodin424 rdf:type Artist
               http://www.artchive.com/crucifixion.jpg rdf:type Artifact

but also from the description we have 
               rodin424 rdf:type Sculptor 
               http://www.artchive.com/crucifixion.jpg rdf:type Sculpture

I suppose that both pairs of triples should be added to the model
without any further validation check.

Now suppose that we have the statements

<Artifact rdf:about="http://www.artchive.com/crucifixion.jpg">
     <material> Iron </material>
</Artifact>

we should add: http://www.artchive.com/crucifixion.jpg rdf:type Sculpture 
               Iron rdf:type http://www.w3.org/rdf-datatypes.xsd#String

but also from the description we have 
               http://www.artchive.com/crucifixion.jpg rdf:type Artifact

Again we have to consider both triples in the model without any
validation. However, the intended meaning of my schema is that only
Sculptures can have a material property.

Thinks become more complicated if we consider multiple domain and
ranges as well as cycles. 

2) Consider now that we extend the above model as follows:

<rdfs:Class rdf:ID="WebResource"/> (resources found on the Web)
<rdfs:Class rdf:ID="ULANThesaurus"/> (Getty Union List of Artist Names)

<rdf:Property rdf:ID="name">
      <rdfs:domain rdf:resource="#WebResource"/>
      <rdfs:range rdf:resource="http://www.w3.org/rdf-datatypes.xsd#String"/> 
      <rdfs:domain rdf:resource="#Artist"/>
      <rdfs:range rdf:resource="#ULANThesaurus"/>

and we have the following statements

<Artist rdf:ID="rodin424"> 
  <name>PabloPicasso</name>
</Artist>

according to the above entailment rules:
    PabloPicasso rdf:type http://www.w3.org/rdf-datatypes.xsd#String
and PabloPicasso rdf:type ULANThesaurus

as well as
    rodin424 rdf:type Artist
and rodin424 rdf:type WebResource

Two are the evident questions:

a) How PabloPicasso can be interpreted both as a literal and a resource?
b) How reasonable seams the fact that rodin424 is a WebResource
   because it disposes a name property? Here, obviously rodin424 is not
   a resource found on the web.

3) Consider finally the following schema: 

   C1 p1 C2
   C3 p2 C4
   C3 < C1, p2 < p1 and C2 < C4

  From the following RDF MT interpretation rules:

  1) <x,y> is in IEXT(I(rdfs:subClassOf)) iff ICEXT(x) is a subset of ICEXT(y)
  2) <x,y> is in IEXT(rdfs:subPropertyOf)) iff IEXT(x) is a subset of IEXT(y)
  3) If <x,y> is in IEXT(I(rdf:range)) and <u,v> is in IEXT(x) then v is in ICEXT(y)
  4) If <x,y> is in IEXT(I(rdf:domain)) and <u,v> is in IEXT(x) then u is in ICEXT(y)

  we have:

  i)   I(p2) is a subset of I(p1); (from 2)
  ii)  I(domain(p2)) is in I(C3);  (from 4)
  iii) I(range(p2)) is in I(C4);   (from 3)
  iv)  I(domain(p1)) is in I(C1);  (from 4)
   v)  I(range(p1)) is in I(C2);   (from 3)
  vi)  I(C3) is a subset of I(C1); (from 2) 
  vii) I(C2) is a subset of I(C4); (from 2) 
  
  I am wondering how i), iii), and vii) are all together valid?  
  I believe that equality of I(C4) and I(C2) should be considered here.
  However, the RDF MS entailment rules produce different extensions for
  I(C4) and I(C2):

  x p2 y => x rdf:type C3 
            x rdf:type C1
            y rdf:type C4
  
  z p1 w => z rdf:type C1
            w rdf:type C2
            w rdf:type C4

  How consistent looks all the above?

  Is someone capable to explain what is a valid RDF statement vs. a
  well-formed?  This clear and simple distinction was one of main
  reasons for the big success of XML.

Best regards

Vassilis

Received on Saturday, 27 October 2001 10:06:23 UTC