- From: Vassilis Christophides <christop@ics.forth.gr>
- Date: Sat, 27 Oct 2001 17:03:30 +0300 (EEST)
- To: www-rdf-interest@w3.org, Wolfram Conen <conen@gmx.de>
- CC: Eric Miller <em@w3.org>, Brian McBride <bwm@hplb.hpl.hp.com>
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