W3C home > Mailing lists > Public > public-powderwg@w3.org > November 2007

New DRs

From: Andrea Perego <andrea.perego@uninsubria.it>
Date: Mon, 26 Nov 2007 09:16:05 +0100
Message-ID: <474A80C5.5000201@uninsubria.it>
To: Public POWDER <public-powderwg@w3.org>
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



Received on Monday, 26 November 2007 08:11:38 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:42:12 GMT