W3C home > Mailing lists > Public > semantic-web@w3.org > June 2010

RE: What is it that's wrong with rdf:List [summary]

From: Michael Schneider <schneid@fzi.de>
Date: Sun, 20 Jun 2010 01:07:12 +0200
Message-ID: <0EF30CAA69519C4CB91D01481AEA06A001E9A5F5@judith.fzi.de>
To: "Pat Hayes" <phayes@ihmc.us>, "Norman Gray" <norman@astro.gla.ac.uk>
Cc: "Semantic Web" <semantic-web@w3.org>
Pat Hayes wrote:

>The entire ethic and Tao of the RDF team was
>to avoid any such syntactic restrictions or limitations on RDF, to
>keep it as 'open' as we possibly could. (Just like it is in OWL-Full,
>in fact. One might characterize OWL-Full as the way OWL would have
>been if the RDF WG had designed it, instead of OWL-DL, which is the
>way OWL would have been if the description logicians had designed it.
>Except, of course, they *did* design it.)

Well, OWL (1/2) Full exists, so no need for a funeral speech! :-) 

And OWL 2 Full has a little brother now, the OWL 2 RL/RDF Rules, for which
already several reasoners exist. And these two languages really allow for
general use of RDF Lists, simply since they allow for arbitrary RDF graphs
as their input ontologies. 

So there are OWL languages that allow for RDF lists, but there is more than
just syntactic freedom. One can get nice inferences from RDF lists by
applying the semantics of these languages. This gives additional value to
the use of RDF lists in OWL ontologies. Here are some examples. 

Let's start from the following statement:
 
    ex:journey ex:pathOfVisitedCountries ( ex:Argentina ex:Bolivia ex:Chile
) .

1) From the above list, one can write an OWL RL/Full ontology which
"translates" an RDF list into a "linked list" of the list components (Toby
Inkster mentioned this kind of use as an alternative to RDF lists, see his
post at [1]):
 
   ex:Argentina ex:nextVisitedCountry ex:Bolivia .
   ex:Bolivia ex:nextVisitedCountry ex:Chile .

2) One can define "component properties" for "extracting" the first, second,
etc. component of a list:

   ex:foo ex:firstVisitedCountry ex:Argentina .
   ex:foo ex:secondVisitedCountry ex:Bolivia .
   ex:foo ex:thirdVisitedCountry ex:Chile .

3) One can define a single property to get all list components (in an
unordered form):

   ex:foo ex:someVisitedCountry ex:Argentina .
   ex:foo ex:someVisitedCountry ex:Bolivia .
   ex:foo ex:someVisitedCountry ex:Chile .

Below is an OWL 2 RL/Full ontology which semantically entails all the above
results from the original statement. You can use an arbitrary OWL 2 RL/RDF
Rules reasoner to infer the results. For example, I have checked the results
with the online RL reasoner by Ivan Herman, available at [2].

Cheers,
Michael

[1] http://lists.w3.org/Archives/Public/semantic-web/2010Jun/0102.html
[2] http://www.ivan-herman.net/Misc/2008/owlrl/


===== START: Ontology (Turtle) ====

@prefix rdf:  <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:  <http://www.w3.org/2002/07/owl#> .
@prefix xsd:  <http://www.w3.org/2001/XMLSchema#> .
@prefix ex:   <http://www.example.org/> .

# --- Original Statement with a RDF list ---

ex:journey ex:pathOfVisitedCountries ( 
    ex:Argentina 
    ex:Bolivia 
    ex:Chile 
) .

# --- 1) Linked List Property 'ex:nextVisitedCountry' ---

ex:nextVisitedCountry owl:propertyChainAxiom ( 
    [ owl:inverseOf rdf:first ]
    rdf:rest 
    rdf:first 
) .

# --- 2) Component Properties 'ex:***VisitedCountry' ---

ex:firstVisitedCountry owl:propertyChainAxiom ( 
    ex:pathOfVisitedCountries 
    rdf:first 
) .
ex:secondVisitedCountry owl:propertyChainAxiom ( 
    ex:pathOfVisitedCountries 
    rdf:rest 
    rdf:first 
) .
ex:thirdVisitedCountry owl:propertyChainAxiom ( 
    ex:pathOfVisitedCountries 
    rdf:rest
    rdf:rest 
    rdf:first 
) .

# --- 3) All-Components Property 'ex:someVisitedCountry' ---

ex:pathOfVisitedCountries rdfs:subPropertyOf _:pL .
_:pL owl:propertyChainAxiom ( _:pL rdf:rest ) .
ex:someVisitedCountry owl:propertyChainAxiom ( _:pL rdf:first ) .

=== STOP: Ontology ==========================================

--
Dipl.-Inform. Michael Schneider
Research Scientist, Information Process Engineering (IPE)
Tel  : +49-721-9654-726
Fax  : +49-721-9654-727
Email: michael.schneider@fzi.de
WWW  : http://www.fzi.de/michael.schneider
=======================================================================
FZI Forschungszentrum Informatik an der Universität Karlsruhe
Haid-und-Neu-Str. 10-14, D-76131 Karlsruhe
Tel.: +49-721-9654-0, Fax: +49-721-9654-959
Stiftung des bürgerlichen Rechts, Az 14-0563.1, RP Karlsruhe
Vorstand: Prof. Dr.-Ing. Rüdiger Dillmann, Dipl. Wi.-Ing. Michael Flor,
Prof. Dr. Dr. h.c. Wolffried Stucky, Prof. Dr. Rudi Studer
Vorsitzender des Kuratoriums: Ministerialdirigent Günther Leßnerkraus
=======================================================================
Received on Saturday, 19 June 2010 23:07:48 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 21:45:36 GMT