- From: Dave Reynolds <der@hplb.hpl.hp.com>
- Date: Thu, 04 Jan 2007 07:30:48 +0000
- 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 UTC