- 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