- From: Wolfram Conen <conen@gmx.de>
- Date: Wed, 10 Jul 2002 15:07:48 +0200
- To: Franco Salvetti <franco.salvetti@tiscalinet.it>
- CC: www-rdf-interest@w3.org, phayes@ai.uwf.edu, giles.hogben@jrc.it, DPawson@rnib.org.uk, Alessandro Provetti <provetti@gongolo.usr.dsi.unimi.it>

Hello Franco! Let me resort below to the MT [1] for an approach to an answer: Franco Salvetti wrote: > <rdf:Description rdf:about="http//example.org/ont#p"> > <rdfs:domain rdf:resource="http://example.org/ont#A"/> > <rdfs:domain rdf:resource="http://example.org/ont#B"/> > </rdf:Description> > > <rdf:Description rdf:about="http//example.org/ont#q"> > <rdfs:subPropertyOf rdf:resource="http://example.org/ont#p"/> > <rdfs:domain rdf:resource="http://example.org/ont#C"/> > </rdf:Description> > > <rdf:Description rdf:about="http//example.org/ont#something"> > <ont:q rdf:resource="http://example.org/ont#blabla"/> > </rdf:Description> > First a brief rewrite for readability: (1) domain(A,p), domain(B,p) (2) subPropertyOf(q,p) (3) statement(something,q,blabla) > > 1) What is the domain of ont:p? see below. > 2) What is the domain of ont:q? We know from the rdfs closure rules of the MT [1] (For readability, I use the re-write of the closure rules from [2]) is that rdfs6: subProperty(a,b), statement(x,a,y) => statement(x,b,y) and rdfs2: statement(x,a,y), domain(z,a) => instanceOf(x,z) Therefore, after applying the closure rules, every resource that was used as an subject in a statement with q in predicate position will necessarily be an instance of class C AND of BOTH classes A and B. Note that, on first sight, this seems to imply that, after applying the closure rules, C will be a "subset" of A and a "subset" of B. This is, however, not necessarily so (there can be members of C that are not used as subjects in statements with q). What we know, however, is that the "Urbild" of q (that is the set of resource to which q is actually applied in our collection of statements under consideration) is a "subset" of both classes, A and B (in other words: a "subset" of (A n B)). (To answer your question (1): the subject of any statement having p in predicate position will be an instance of both classes A and B (after applying the closure rules) > 3) How can I verify that ont:something is in the domain of ont:q? Note that with the current "axiomatic" interpretation of range/domain "constraints", it is not (anymore) useful to want to verify (validate) this: it is a (logical) consequence of the closures that the subject of ANY statement with ont:q in predicate position is (at least) an instance of the classes given as a "domain" of ont:q and the classes given as a domain of the superclasses of q (this is to say that NOTHING can ever violate a domain "constraint", or, in other words: whatever you use in subject position will be (will become) an instance of the domain classes.) This is also an (perhaps non-obvious) answer to the rest of your (interesting) questions/thoughts, I think (I can make this more precise if necessary, though, if you stick to the semantics as described in the MT, everything follows straightforwardly. If this is what you expected/want/like is, of course, another question) Best, Wolfram [1] http://www.w3.org/TR/rdf-mt/ [2] http://nestroy.wi-inf.uni-essen.de/rdf/new_interpretation/html10/index.html#SECTION00060000000000000000 (a little bit outdated, sorry, but maybe still helpful in some respects)

Received on Wednesday, 10 July 2002 09:04:37 UTC