- From: Sandro Hawke <sandro@w3.org>
- Date: Tue, 28 Apr 2009 08:12:10 -0400
- To: Jos de Bruijn <debruijn@inf.unibz.it>
- cc: RIF <public-rif-wg@w3.org>
> Sandro Hawke wrote: > >> 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)]. > > It was my interpretation that in RDF the list items (_:l1, etc) must be > of type rdf:List to have a well-formed list. Therefore, in the original > proposal, if you use simple or RDF entailment, these triples are required. > When checking the RDF documents again, I realize that there is not much > support for this interpretation. > I modified my proposal to get rid of this requirement. So, your test > case is now valid. Great, thanks. > > 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)]. > > Yes, this works in both the extension and the one-to-one semantics. Good. > > 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)]. > > Right now, rdf:nil is required, and so this test case is not valid. > > Actually, according to the RIF list semantics, List(ex:b | ex:c) does > not necessarily denote a list. In some interpretations it will be a > list, and in other interpretations it is just some object. > This might actually be a problem. > > That said, it is possible to require the existence of some list (denoted > by ex:c) in this case. However, I do not fully understand the > consequences of such a change at the moment. > > Anyway, I think it is reasonable to require rdf:nil, because in all RDF > documents that mention lists, lists are closed, and the special RDF/XML > syntax for lists requires them to be closed. Okay.... I can't find any actual real problem here... (And I agree, it's not clear what RIF is supposed to do with List(ex:b | ex:c) This is really "cons", not "List".....) > > 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] > > )) > > Yes. Great, thanks. -- Sandro
Received on Tuesday, 28 April 2009 12:12:20 UTC