- 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