W3C home > Mailing lists > Public > public-rif-wg@w3.org > January 2007

Re: [UCR] ISSUE-12 and ACTION6198

From: Dave Reynolds <der@hplb.hpl.hp.com>
Date: Thu, 04 Jan 2007 07:30:48 +0000
Message-ID: <459CAD28.604@hplb.hpl.hp.com>
To: Sandro Hawke <sandro@w3.org>
CC: RIF WG <public-rif-wg@w3.org>

Sandro Hawke wrote:
>> Let us pick one of the boundary cases to ground the discussion. What 
>> about the set of builtins/functions such as one for access to an 
>> external SPARQL data source.
> 
> Good idea -- can you flesh this out a little more, though?  Do you have
> a feature like this in Jena Rules? 

No but that's partly because it pre-dates SPARQL [I've held off doing 
any language updates due to pressure of other work and in case RIF might 
end up having relevance].

We do have more modest builtins that are specific to the RDF model 
(isBNode, makeTemp (i.e. mint a new bNode[*]) etc).

We have other strange things driven by our rules-for-RDF design centre, 
specifically that there are only triples (no n-ary predicates) but we 
provide some of the convenience of n-tuples by supporting structured 
literals:

    subject predicate f(a,b,c) .

which in prolog-like-syntax would be:

    predicate(subject, f(a,b,c))

where a ground f(a,b,c) turns into a single typed literal value of type 
Functor which contains a data structure comprising a name (f) and a list 
of arguments (a,b,c). The Functor type is Jena-specific and we go to 
some lengths to prevent instances of it escaping from Jena unless a user 
is really certain that's what they want.  [**]

> Can you show an example -- even if
> it's not in Jena rules -- what might it look like?  

For example, one version might look something like:

   sparql(srcURL, query, ?X, ... ?Z)

where the ?X..?Z variables would be bound to the corresponding query 
variables, e.g.

   sparql("http://jena.hpl.hp.com/somedata",
          "PREFIX vcard:      <http://www.w3.org/2001/vcard-rdf/3.0#>
           SELECT ?y WHERE { ?y vcard:Family 'Smith' }",
          ?y)

You might also want some mechanism by which sets of RDF facts could be 
named for reference in the srcURL to permit you to query data sets which 
are not accessible as SPARQL service end-points.

Of course there are lots of variants to this that could be imagined and 
lots of details left unspecified.

> My hypothesis is that there's nothing users particularly need that is
> specific to a "Semantic Web" rule language.  

As well as any specific features like this one that we've picked on here 
there is also the difference that a "standard" semantic web rule 
language should involve tasteful design choices about the whole set of 
features and choice of semantics (a recommendation of a good subset or 
two to pick), whereas RIF supports everything. I don't see all possible 
RIF dialects being equal in this regard. Specifically I doubt all will 
be equal in terms of how nicely they play with OWL. I rather glossed 
over this in my original message because there are others much better 
equipped to delve into that sort of issue.

Dave

[*] I don't want to restart the "that's just a Skolem constant and 
bNodes are different discussion" here, I acknowledge that is not a 
correct approach to bNodes it is just a practically useful one.

[**] Again I'm not proposing any such thing for RIF so don't let the 
details of this divert you, I'm just pointing out an example of where we 
did something differently because of the design centre.
Received on Thursday, 4 January 2007 07:31:10 GMT

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