RE: rdf:list vocabulary

[related to ISSUE-104]

Peter F. Patel-Schneider wrote:

>From: Alan Ruttenberg <alanruttenberg@gmail.com>
>Subject: Re: rdf:list vocabulary
>Date: Tue, 27 May 2008 23:56:10 -0400
>
>> On May 27, 2008, at 11:47 PM, Ivan Herman wrote:
>>
>> > Wouldn't that affect backward compatibility? What would happen to
>> existing OWL1 ontologies serialized in RDF?
>>
>> The reverse mapping would have to be such that the rdf:list vocabulary
>> was mapped to the new vocabulary for OWL 1 ontologies.
>> The question would be whether there were any ontologies that could
>> ambiguously be valid OWL 2 ontologies that used the rdf:list
>vocabulary
>> in axioms and at the same time be owl 1 ontologies that used the list
>> vocabulary as syntax.
>>
>> -Alan
>
>Yes, that is one of the questions involved.
>
>I await someone (else) showing that this is not a problem.
>
>peter

Just as a first thought: It looks at least kind of plausible to me that the
custom use of rdf:List and friends shouldn't lead to problems.

Actually, lists are used in OWL 2 vocabulary in

  * boolean class expressions
  * enumerations (oneOf)
  * AllDifferent/Disjoint axioms
  * sub property chains

(did I miss anything?)

These syntax related uses of lists can IMO be clearly distinguished from
custom usage. In particular, the currently applied method of a "canonical
parsing process" in the reverse RDF mapping can first translate graphs
matching these forms into the respective functional syntax expressions, and
then delete them from the source graph. Afterwards, all remaining uses of
list vocabulary are regarded as custom use. This shouldn't be much different
from distinguishing between typing triples as declarations, typing triples
as deprecations (i.e. annotations), and typing triples as typing axioms. 

I think Boris will be able to say more about this (cc'ed him).

To better illustrate things, here is a little example of custom list usage
(disallowed in OWL 1 DL):

  ex:Agenda rdf:type owl:Class ;
            rdf:subClassOf rdf:List
  
  ex:hasAgenda rdf:type owl:ObjectProperty .

  ex:owlwg rdf:type [ 
      a owl:Restriction ;
      owl:onProperty ex:hasAgenda ;
      owl:allValuesFrom ex:Agenda
  ]

  ex:owlwg ex:hasAgenda ( ex:action147 ex:issue104 ex:issue119 ) .

I, personally, would appreciate to be able to model things like this... not
only in OWL Full. :-)

Cheers,
Michael

Received on Wednesday, 28 May 2008 11:51:48 UTC