Re: [RIF] Extensible Design

Boley, Harold wrote:

> Dear all,
> 
> Michael Kifer, I, and several other RIF participants have
> been working on this draft of a RIF Extensible Design
> for the planned extensibility discussion in a telecon.
> Please find it below and attached.

Great, thank you for that. The basic approach of designing RIF Core as a 
Condition language is a good one.

(1) The integration with RDF needs more work. The basic proposal seems to 
be extension A.4 which seems to be a builtin to express SPARQL queries. 
Whilst this would minimally meet the requirement to work with RDF it is not 
ideal.

First, it requires all RIF processors which handle RDF (which is all of 
them if RDF support is in the core, as I think it should be) to support 
full SPARQL. For implementations which care about RDF that would be 
reasonable but for others that might be a high threshold. In any case it 
limits implementer flexibility.

Second, it makes it hard to see how rule conclusions will then relate back 
to the RDF being accessed by this SPARQL query builtin. In a PR/ECA setting 
I guess you can have an action to assert a new RDF triple into the graph 
that SPARQL is querying but that doesn't make sense in an LP setting.

The syntactic separation between the SPARQL queries and the rest of the 
condition language is not very elegant and leaves users (at least users 
dealing with RDF) faced with rather a lot of different ways of expressing 
the same condition.

My preference would be to be able to interpret binary atoms as RDF 
statements and extend the syntax to allow variable Rels, or have a 
distinguished rdf/3 Rel.

(2) The assumption that Data and Ind objects are distinct sorts seems 
problematic. For example, how would that be applied to bNodes in RDF data?
Certainly going further than that and applying the sorting to variables as 
well would be a serious problem for RDF processing.

(3) The XML syntax suggests that Ind should be IRIs but this is not clear 
in the readable syntax.
   Further, Rel and Funs should also be labelled by IRIs (note that this is 
wanted if RIF is to be a webized language, separate from RDF-specific 
issues). For the readable syntax I would suggest using the N3 (or curie) 
style prefix:name.

(4) The XML syntax suggests that a datatype would have a lexical form and 
an optional data URI, the BNF should reflect that so that the type can be 
specified within the readable syntax.
   For RDF compatibility it would be convenient to also include optional 
xml:lang tags for "strings".
   In a final version we would want to recommend a specific subset of XML 
Schema Datatypes which should be supported.
   Related to this the SPARQL precedent suggests that 
http://www.w3.org/TR/xpath-functions/ might be a good starting point for 
defining the semantics for a core set of builtins compatible with xsd types.

Dave

Received on Tuesday, 25 April 2006 10:51:38 UTC