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

> > 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.

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

Received on Thursday, 30 April 2009 22:16:15 UTC