- From: Axel Polleres <axel.polleres@deri.org>
- Date: Wed, 08 Apr 2009 16:01:16 +0100
- To: 'RDF Data Access Working Group' <public-rdf-dawg@w3.org>
<chair-hat-off>
Hi,
since I cannot participate due to travelling in the next teleconf most
likely, I'd like to start discussing this feature on the list.
http://www.w3.org/2009/sparql/wiki/Feature:ParameterizedInference
The feature proposed has - strictly speaking - two parts.
1) parameterizing the inference regime in queries
2) an extension of the dataset specification features to allow for
parameterizing ontologies to be taken into account for any of the graphs
in the dataset
(3) there is a third thing mentioned in the wiki page which relates to
2) about allowing recursive ftching of named graphs when the dataset is
given implicitly.
Let me add some explanations beyond the wiki page on these feature(s):
1) USING RULESET is closely related to the OWL inference discussed
yesterday, but simpler. Instead of specifying an entailment regime for
one of the OWL dialects, the idea is to allow a very pragmatic reference
to a ruleset specifying a finite set of RDF inference rules being
expected to be evaluated on the query. The suggestion here is to be able
to either refer to some fixed rulesets which we endorse with some public
identifier, e.g.
USING RULESET RDFS
could refer to a fixed ruleset implementing the informal rdfs inference
rules in the RDF Semantics spec. or (preferrably) a finite subset of it,
i.e. it would for obvious reasons probably not be advisable to allow
infinite axiomatic triples and alike. Alternatively, one could specify a
ruleset in a rule format for interchanging inference rules (RIF being
the natural candidate) dereferenceable at a URL. i.e.
USING RULESET <myinferenceRules.rif>
myinferenceRules.rif could, for instance be a ruleset only specifying
listmembership infernce, as proposed in
http://www.w3.org/2009/sparql/wiki/Feature:AccessingRdfLists
e.g. could be done by the following ruleset:
{?list sparql:listMember ?member.} IF {?list rdfs:first ?member.}
{?list sparql:listMember ?member.} IF {?list rdfs:rest ?r. ?r
sparql:listMember ?member.}
Remark: the RIF presentation syntax is in this respect (whether it
allows N3 style notation) not yet fixed, but that should be
understandable to the SPARQL crowd, I guess.
Likewise, a link to such RIF rulesets could be used to advertised the
supported inference by a SPARQL endpoint if we go towards service
descriptions. This is along the lines of seeral systems supporting
inference rules, but using their own rules languages, where representing
them in an exchange format would be desirable. In that sense, there
exist implementations such as Jena, OWLIM, but they do not (yet) support
the suggested syntax.
2) USING ONTOLOGY
Now, if I want to support inference, I also want to support ontologies
(even if they are not explicitly imported in a graph via owl:imports),
that e.g. I want to see that I want to use the foaf ontology for
inferencing on queries over foaf files. Now, as soon as I stay in the
default graph, all is fine, I can simply merge the foaf ontology into
the def graph, e.g.
FROM myfoaf.rdf
FROM yourfoaf.rdf
FROM foaf-ontology.rdf
BUT, in connection with named graphs I cannot merge graphs expclicitly!
that is, if I specify
FROM NAMED myfoaf.rdf
FROM NAMED yourfoaf.rdf
FROM foaf-ontology.rdf
WHERE { ... GRAPH ?x { .HERE. } }
HERE, the foaf ontology is not in part of the scoping graph and thus not
relevant for (even if supported) inferences.
That is why we suggest the keyword
USING ONTOLOGY <IRI>
which basically says that its argument "merges" into each named graph.
The ability to construct named graphs as merge of other graphs, as also
outlined in
http://www.w3.org/2009/sparql/wiki/Feature:CompositeDatasets
would be an alternative path to achieve this, though mor cumbersome to
write, but more flexible.
3) In the context of 2) what also becomes relevant is that an explicitly
given dataset cannot be dynamically extended. A sample query needing
that support is:
SELECT NAMES OF ALL PEOPLE I KNOW FROM MY FOAF FILE OR NAMES OF PEOPLE
KNOWN BY THESE PEOPLE ACCORDING TO THEIR FOAF FILES THAT ARE LINKED FROM
MINE BY rdfs:seeAlso LINKS
This could be achieved by several ways, I proposed in the feature list
FROM NAMED ALL
which would enable recursive fetching of named graphs.
Alternatives Could be to allow nesting of CONSTRUCT queries in FROM or
FROM NAMED clauses.
Though these features are all somewhat overlapping, it may make sense to
do separate strawpolls for each one.
</chair-hat-off>
<chair-hat-on>
Others might follow the example of triggering a disussion on the
remaining features on the list, if they champion them
</chair-hat-on>
cheers,
Axel
Received on Wednesday, 8 April 2009 15:01:56 UTC