- From: Andrea Perego <andrea.perego@uninsubria.it>
- Date: Mon, 21 Jul 2008 14:44:48 +0200
- To: Public POWDER <public-powderwg@w3.org>
Phil Archer wrote: > > Andrea, can I just double check this please, your solution is that we > define: > > wdrs:issuedby rdfs:subPropertyOf foaf:Agent > wdrs:issuedby rdfs:subPropertyOf dcterms:Agent I guess you meant: wdrs:issuedby rdfs:subPropertyOf foaf:maker wdrs:issuedby rdfs:subPropertyOf dcterms:creator > And > > <wdrs:Agent> > <owl:unionOf rdf:parseType="Collection"> > <foaf:Agent /> > <dcterms:Agent /> > </owl:unionOf> > </wdrs:Agent> No, that's not what I meant. As far as I can understand (but Ivan / Jeremy / Stasinos know better, and can correct me), the two options under discussion so far are the following: *OPTION #1* Define wdrs:issuedby as subproperty of both dcterms:creator and foaf:maker: wdrs:issuedby rdfs:subPropertyOf dcterms:creator . wdrs:issuedby rdfs:subPropertyOf foaf:maker . This implies that the property extension of wdrs:issuedby is a subset of the property extensions of dcterms:issued and foaf:maker. From which follows, I guess, that the range of wdrs:issuedby is a subset of the intersection of the ranges of dcterms:creator and foaf:maker. Thus, given: wdrs:issuedby rdf:range wdrs:Agent . The following wdrs:Agent owl:unionOf ( dcterms:Agent foaf:Agent ) . (i.e.: <wdrs:Agent> <owl:unionOf rdf:parseType="Collection"> <owl:Class rdf:about="&foaf;Agent" /> <owl:Class rdf:about="&dcterms;Agent" /> </owl:unionOf> </wdrs:Agent> ) does not hold. Rather, we would have: wdrs:Agent rdfs:subClassOf [ owl:intersectionOf ( dcterms:Agent foaf:Agent ) ]. (i.e.: <wdrs:Agent> <rdfs:subClassOf> <owl:Class> <owl:intersectionOf rdf:parseType="Collection"> <owl:Class rdf:about="&foaf;Agent" /> <owl:Class rdf:about="&dcterms;Agent" /> </owl:intersectionOf> </owl:Class> </rdfs:subClassOf> </wdrs:Agent> ) In such a case, you cannot use dcterms:creator or foaf:maker alone in a POWDER-S doc. This is because, according to the definition above, the statement <A> wdrs:issuedby <B> . implies <A> dcterms:creator <B> . <A> foaf:maker <B> . but <A> dcterms:creator <B> . or <A> foaf:maker <B> . or both do not necessarily imply <A> wdrs:issuedby <B> . In other words: - a person who is a foaf:maker is not necessarily a wdrs:issuedby (well, let's say, a wdrs:issuer) - a person who is a dcterms:creator is not necessarily a wdrs:issuedby - a person who is a both a foaf:maker and a dcterms:creator is not necessarily a wdrs:issuedby So, by adopting this option, you can write this: <owl:Ontology rdf:about=""> <wdrs:issuedby> <wdrs:Agent> ... </wdrs:Agent> </wdrs:issuedby> </owl:Ontology> You can write also this: <owl:Ontology rdf:about=""> <wdrs:issuedby> <foaf:Agent> ... </foaf:Agent> </wdrs:issuedby> </owl:Ontology> <owl:Ontology rdf:about=""> <wdrs:issuedby> <dcterms:Agent> ... </dcterms:Agent> </wdrs:issuedby> </owl:Ontology> Note that here, the foaf:Agent (dcterms:Agent) of the first (second) block must / is supposed to be also a dcterms:Agent (foaf:Agent). By contrast, you cannot write: <owl:Ontology rdf:about=""> <foaf:maker> <foaf:Agent> ... </foaf:Agent> </foaf:maker> </owl:Ontology> <owl:Ontology rdf:about=""> <dcterms:creator> <dcterms:Agent> ... </dcterms:Agent> </dcterms:Agent> </owl:Ontology> *OPTION #2* wdrs:issuedby is defined as subproperty of neither dcterms:creator and foaf:maker, and its range (wdrs:Agent) is defined as the union of both dcterms:Agent and foaf:Agent. IMHO, this corresponds more to what the range of wdrs:issuedby should be - i.e., a DR author does not have to be a dcterms:Agent *AND* a foaf:Agent: he/she can be a dcterms:Agent *OR* a foaf:Agent. It's also true that Dan said that dcterms:Agent and foaf:Agent denote the same notion [1] - so, using AND or OR would be exactly the same. But, currently, this is not stated in the definition of those classes, and thus OR is safer. However, the problem is that there's no relationship between wdrs:issuedby, dcterms:creator, and foaf:maker, so the former does not imply the latter (or vice versa). So, we can state in the specs that wdrs:issuedby can be substituted by either dcterms:creator or foaf:maker, but we cannot specify this in the voc. To conclude, in both cases, I'm not sure we can do without wdrs:issuedby. As far as I can see, we can achieve what we want only by stating: wdrs:issuedby owl:equivalentProperty dcterms:creator . wdrs:issuedby owl:equivalentProperty foaf:maker . but, as it has been said, it is preferable not to do that. Also, wdrs:issuedby is not really equivalent to foaf:maker. If I said anything incorrect, or anyone sees other options, please shout. Andrea [1]http://lists.w3.org/Archives/Public/public-powderwg/2008Jul/0048.html
Received on Monday, 21 July 2008 12:45:29 UTC