- From: Andrea Perego <andrea.perego@uninsubria.it>
- Date: Mon, 26 Nov 2007 09:16:05 +0100
- To: Public POWDER <public-powderwg@w3.org>
- Message-ID: <474A80C5.5000201@uninsubria.it>
Hoping to help the discussion on the new DR representation, I would like to provide a summary of what has been said during the Boston meeting [1]. I'll also outline some open questions which may be relevant in deciding the new DR representation. Now, suppose the following DR: "David claims that all the resources hosted by example.org are safe for children. David also claims that he published this statement on 31 Dec 2006, and that it will be valid for the period 1 Jan 2007 - 31 Dec 2007." According to the new tentative DR representation, we should do what follows. First we specify an owl:Class denoting all the resources hosted by example.org (i.e., the "DR's scope"): <owl:Class rdf:ID="ResourceOnExampleDotOrg"> <rdfs:subclassOf> <owl:Restriction> <owl:onProperty rdf:resource="&wdr;includeHost" /> <owl:hasValue>example.org</owl:hasValue> </owl:Restriction> <rdfs:subclassOf> </owl:Class> Then we specify an owl:Class denoting all the resources which are safe for children (i.e., what formerly was called the "DR's descriptors"): <owl:Class rdf:ID="ResourceSafeForChildren"> <rdfs:subclassOf> <owl:Restriction> <owl:onProperty rdf:resource="&icra;oz" /> <owl:hasValue>true</owl:hasValue> </owl:Restriction> <rdfs:subclassOf> <rdfs:subclassOf> <owl:Restriction> <owl:onProperty rdf:resource="&icra;vz" /> <owl:hasValue>true</owl:hasValue> </owl:Restriction> <rdfs:subclassOf> [... more stuff ...] </owl:Class> David's claim about the fact that the resources hosted by example.org are safe for children can be expressed by saying that the resources on example.org are a subset of the resources which are safe for children. In RDF/OWL this is equivalent to a statement saying that the class denoting the resources on example.org is a *subclass* of the class denoting the resources which are safe for children, that is: <rdf:Description rdf:about="ResourceOnExampleDotOrg"> <rdfs:subclassOf rdf:resource="#ResourceSafeForChildren" /> </rdf:Description> Note that this is the important bit: actually, the rdfs:subclassOf statement corresponds exactly to what the DR should say. The next step concerns how we can specify that such claim has been made by David. Note that we cannot write something like this: <owl:Class rdf:ID="ResourceOnExampleDotOrg"> <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" /> ... </owl:Class> and/or <owl:Class rdf:ID="ResourceSafeForChildren"> <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" /> ... </owl:Class> In fact, in such a case, you are saying that David is the foaf:maker of the entities denoted by those classes---i.e., the author of the resource hosted by example.org and/or the author of the resource which are safe for children. The solution is to use "RDF reification", which allows us to specify "statements about statements" [2]. More precisely: - first we add the rdf:ID attribute to the rdfs:subclassOf statement: <rdf:Description rdf:about="ResourceOnExampleDotOrg"> <rdfs:subclassOf rdf:ID="claim1" rdf:resource="#ResourceSafeForChildren" /> </rdf:Description> *NB* The ID of the DR will correspond to the ID ("claim1") of the above statement. - then we specify the following statement: <rdf:Description rdf:about="#claim1"> <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" /> </rdf:Description> The issue date and validity period always concern, as foaf:maker, the rdfs:subclassOf statement with rdf:ID "claim1", and they are specified in the same way: <rdf:Description rdf:about="#claim1"> <dcterms:issued>2006-12-31</dcterms:issued> <wdr:validFrom>2006-12-31</wdr:validFrom> <wdr:validUntil>2006-12-31</wdr:validUntil> </rdf:Description> The last step is to specify that it was David who has decided the issue date and the validity period of our DR. This means that we have to reify all the above statements, as follows: <rdf:Description rdf:about="#claim1"> <dcterms:issued rdf:ID="issueDate">2006-12-31</dcterms:issued> <wdr:validFrom rdf:ID="validFrom">2006-12-31</wdr:validFrom> <wdr:validUntil rdf:ID="ValidUntil">2006-12-31</wdr:validUntil> </rdf:Description> <rdf:Description rdf:about="#issueDate"> <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" /> </rdf:Description> <rdf:Description rdf:about="#validFrom"> <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" /> </rdf:Description> <rdf:Description rdf:about="#validUntil"> <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" /> </rdf:Description> The source code of the whole DR is included in the attached file named example.rdf. Note that the same DR can be specified in a more compact form (an example is given in the attached file, named example-1.rdf). Now, the first point is: does anybody agree that this is the correct way of expressing the semantics of a DR by using RDF/OWL? If it is: 1 This RDF/OWL representation makes use of basic RDF/OWL terms to express the semantics of a DR (i.e., owl:Class, rdfs:subclassOf, rdf:Description). This means that, in the POWDER vocabulary, we just need to define a set of properties, namely, those used to denote the DR scope, and some additional ones (e.g., wdr:validFrom and wdr:validUntil). However, I can see here two problems which should be taken into account: (a) DR "descriptors" can be defined by using any available vocabulary. However, as far as DR scopes are concerned, we may have some requirements concerning mandatory/optional properties, cardinality constraints on some properties, etc. In such a case, instead of using directly the owl:Class construct, we should define an OWL class, having a different name (say, wdr:Scope), which may be similar to the current definition of wdr:ResourceSet. (b) using basic RDF/OWL terms does not make explicit to which DR component each of them corresponds to. In order to avoid this, we can rename them as suggested at point (a) for the owl:Class corresponding to the DR scope. 2. It may be useful to specify DRs in a more compact form wrt the one illustrated above. The file attached named example-1.rdf illustrates how we can do this for DR scope and "descriptors," however all the statements concerning attribution, validity period, and issue date cannot be specified with less verbosity. A possible solution (discussed in Boston) is to use owl:Ontology, and include into it all the statements concerning attribution, validity period, and issue date: <owl:Ontology rdf:about=""> <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" /> <dcterms:issued>2006-12-31</dcterms:issued> <wdr:validFrom>2006-12-31</wdr:validFrom> <wdr:validUntil>2006-12-31</wdr:validUntil> </owl:Ontology> We can obtain the same result by using foaf:Document: <foaf:Document rdf:about=""> <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" /> <dcterms:issued>2006-12-31</dcterms:issued> <wdr:validFrom>2006-12-31</wdr:validFrom> <wdr:validUntil>2006-12-31</wdr:validUntil> </foaf:Document> This has also the advantage that we can specify the author of the whole DR (i.e., DR scope, "descriptors", and the rdfs:subclassOf statement linking them). By contrast, if we use reification for this purpose, we need to specify an rdf:Description for each statement used to define the DR scope and "descriptors". In fact, the statement: <rdf:Description rdf:about="#claim1"> <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" /> </rdf:Description> denotes just the author of the rdfs:subclassOf statement linking the DR scope and "descriptors", but no information about the author of them is provided. The file attached named example-2.rdf includes these examples. However, this option has two problems: (a) owl:Ontology and foaf:Document in the examples above refer to the current file: this means that each file can contain at most one DR: is this really a problem or not? (b) these examples do not exactly express the semantics associated with the validity period and issue date: yes, they state that the DR has a given validity period and issue date, but do not give information about who specified that. Is there a way to deal with this (without reifying those statements, I mean)? As far as point (a) is concerned, I would also like to note that owl:Ontology/foaf:Document corresponds exactly to the notion of DR (in other words, we can define wdr:DR as equivalent to owl:Ontology and/or foaf:Document). Any comment/suggestion will be more than welcome. Andrea [1]http://www.w3.org/blog/powder/2007/11/10/summary_of_face_to_face_meeting_held_dur_2007 [2]http://www.w3.org/TR/REC-rdf-syntax/#reification
Attachments
- application/rdf+xml attachment: example-2.rdf
- application/rdf+xml attachment: example-1.rdf
- application/rdf+xml attachment: example.rdf
Received on Monday, 26 November 2007 08:11:38 UTC