Re: New DRs

Thanks very much for this Andrea - it's a very helpful summary and, as I 
think you know, this is the method I believe we should use. It is simple 
to understand and, not unimportantly, simple to represent in pictures [1].

I do however disagree very slightly with one of your conclusions on the 
(critical) issue of the reification statements - I believe it _is_ OK to 
put all the validity information in the same single block of data as the 
foaf:maker link and for the extra reification to be optional. Taking 
your basic attribution statement:

<rdf:Description rdf:about="#claim1">
   <foaf:maker rdf:resource="http://www.example.org/foaf.rdf#david" />
</rdf:Description>

This says that _claim1_ was made by David. Let's add in the validity stuff:

<rdf:Description rdf:about="#claim1">
   <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>
</rdf:Description>

This says that claim 1 was made by David, issued on the given date and 
is valid between the dates given.

As you say, this does _not_ make it unambiguous that it is David saying 
that the claim was issued on a certain date. Indeed, the person saying 
it was issued on a given date is not specified but if I know:

- it was David that said it;
- when it was said;
- when it will stop being said;

Is this more useful in the real world than knowing

- it was David that said it;
- when David says he said it;
- when David says he will stop saying it;

The two are different - the second is more complete - but does it make 
such a difference to the usability of the data that we should require 
the extra detail?

My proposal would be that we specify that a DR MUST include first level 
reification to provide details about who made the claim that 
ResourceOnExampleDotOrg is a sub class of ResourceSafeForChildren and 
that this MUST be done using foaf:maker (as you say, this is the essence 
of a DR - it's what makes POWDER what it is and not just an RDF/OWL 
application). I would then say that a DR publisher MAY add additional 
data to describe the maker of any additional assertions about the claim, 
such as who says it was issued on a given date and will expire on 
another date.

I believe it _is_ a very big flaw if we end up saying that a DR must 
exist as a discrete ontology - it makes the publication and querying of 
bulk data more complicated and it's the bulk data that is going to be 
most useful to applications.

 From our (shared) experience of working with RDF-CL, if a Web site 
wants to include an IQUA and an ICRA label, it makes sense to put them 
in the same file but we get into all sorts of bother with the 
isAuthorityFor property on the labels.rdf file itself because, well, 
they came from different authorities - and that's just two labels in one 
RDF instance.

Again, emphasising agreement, the ID of the sub class statement is the 
ID of the Description Resource. In ICRA's case, I fully expect to re-use 
'Descriptor blocks.'

We will talk more on the call this afternoon but it sounds as if we're 
heading for a conclusion here which is most gratifying.

Phil.


[1] See slide 9 onwards at 
http://www.fosi.org/talks/quatro-and-powder-nov07/


Andrea Perego wrote:
> 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

-- 
Phil Archer
Chief Technical Officer,
Family Online Safety Institute
w. http://www.fosi.org/people/philarcher/

Register now for the first, annual Family Online Safety Institute 
Conference and Exhibition, December 6th, 2007, Washington, DC.

Go to: http://www.fosi.org/conference2007/ today!

Received on Monday, 26 November 2007 09:53:54 UTC