Re: [RDF+OWL] Way of connecting RDF and RIF lists

> http://www.w3.org/2005/rules/wiki/RIF-RDF-Lists

1.  Does the rdf graph need to include the 'rdf:type rdf:List' triples?
    I hope not.

That is:

   ex:a ex:p _:l1 .
   _:l1 rdf:first ex:b .
   _:l1 rdf:rest rdf:nil .

entails:

   ex:a[ex:p -> List(ex:b)].


2.  Can I provide my RDF data in RIF frames?  I hope so (at least in the
    one-to-one mapping version).

That is:

   import(any-rdf-graph-even-an-empty-one, rdf-simple).

   ex:a[ex:p -> _:l1].
   _:l1[rdf:first -> ex:b].
   _:l1[rdf:rest -> rdf:nil].

entails:

   ex:a[ex:p -> List(ex:b)].



3.  Is an RDF list without a final rdf:nil just an open RIF List?  I'd
    kind of expect so, although I don't really care.   

That is:

   ex:a ex:p _:l1 .
   _:l1 rdf:first ex:b .
   _:l1 rdf:rest ex:c .

entails:

   ex:a[ex:p -> List(ex:b | ex:c)].

I'm not sure about the case where the 3rd triple is totally missing; it
seems like the open list would still exist, even if we can't name its
tail.

In the one-to-one version, I'd expect open lists to map to RDF lists
with some kind of variable 'rest' part:

   ex:p(List(ex:a | ?X)).

entails

   Exists ?x ?rest (
      And(
         ex:p(?x) 
         ?x[rdf:first -> ex:a] 
         ?x[rdf:rest -> ?rest]
         ))

Received on Tuesday, 28 April 2009 11:27:15 UTC