W3C home > Mailing lists > Public > public-rif-wg@w3.org > May 2009

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

From: Jos de Bruijn <debruijn@inf.unibz.it>
Date: Fri, 01 May 2009 11:17:59 +0200
Message-ID: <49FABE47.1060602@inf.unibz.it>
To: Sandro Hawke <sandro@w3.org>
CC: Dave Reynolds <der@hplb.hpl.hp.com>, RIF <public-rif-wg@w3.org>


Sandro Hawke wrote:
>>> The argument against the one-to-one mapping is that it's harder to
>>> implement.  I believe you cannot implement it in a rule system that does
>>> not support function symbols, unless you have specific machinery for
>>> manipulating the RDF list structures while you manipulate the RIF
>>> structures: the construction of an RIF list implies the existence of a
>>> bunch of objects used for the structure of the RDF list.
>> I think any system likely to implement this would have such specific 
>> machinery anyway.
>>
>> However, the "as extensions" option is still useful and a lower 
>> implementation barrier so perhaps that would be the better choice. It 
>> doesn't stop people doing future extensions which strengthen the link.
>>
>> I won't be there on Tuesday (though I may be able make the first 25m of 
>> the call if that would be useful). At the moment my preference would be 
>> "as extensions" as top choice (on grounds of lower implementation cost) 
>> but "1-to-1" also acceptable.
> 
> How big is the implementation cost?  Jos said he thought Jena had this.
> My sense is it's pretty easy, but I don't have enough of an
> implementation working to really test it out.
> 
> Hmmm.  I'm wondering how far you'd get by just adding rules like this:
> 
>     forall ?L ?x
>        if is-list(?L) and count(?L) > 0 
>        then ?L[rdf:first->get(?L, 0) and
>             ?L[rdf:rest->sublist(?L, 1)
> 
>     forall ?L ?x
>        if is-list(?L) and count(?L) = 0 
>        then ?L = rdf:nil
>     
> but I guess they aren't safe, and "?L = rdf:nil" isn't in Core or PRD,
> and they're ... rather wasteful.

Actually, I think they are going to be safe, since there is the is-list
guard.
The equality is a potential problem, though. On the other hand, you only
need the ground equality List() = rdf:nil, which is easier to implement
than general equality.


Jos

> 
> The main reason I want one-to-one is for people doing SPARQL queries on
> the frames in a RIF rule base.  But I guess that SPARQL interface could
> do this conversion without it really being a mandatory part of RIF (just
> like it would do the conversion from rdf:text to RDF's plain literals).
> 
>     -- Sandro
> 
> 
> 
> 
> 

-- 
+43 1 58801 18470        debruijn@inf.unibz.it

Jos de Bruijn,        http://www.debruijn.net/
----------------------------------------------
Many would be cowards if they had courage
enough.
  - Thomas Fuller


Received on Friday, 1 May 2009 09:18:45 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:34:08 GMT