- From: Sandro Hawke <sandro@w3.org>
- Date: Tue, 28 Apr 2009 07:27:06 -0400
- To: Jos de Bruijn <debruijn@inf.unibz.it>
- cc: RIF <public-rif-wg@w3.org>
> 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