- From: Graham Klyne <gk@ninebynine.org>
- Date: Wed, 28 Apr 2004 12:03:44 +0100
- To: eric@w3.org
- Cc: www-archive <www-archive@w3.org>
Hi Eric,
I just came across your survey [1], which seems to be still active, per
$Id: Overview.html,v 1.90 2004/04/13 12:46:14 eric Exp $
I've now implemented two small-scale query systems which may be of
interest. One is in Python, described in [2], and now has an associated
query syntax which is not yet documented but an example of which can be
seen at [3].
The other is part of my Swish project [4], and doesn't yet have a distinct
language but I am using this to incorporate datatype features (e.g.
constraints, etc.) into the graph query process (cf. [5], noting that query
is used here as a component of the inference process).
Referring to the characteristics in your survey:
N3GenReport (Python) Swish (Haskell)
Arbitrary Graph Yes Yes
Variable Predicate Yes Yes
Literal Evaluations No Yes (currently limited)
Disjunction Yes Yes
(optional match is a special case of this)
Node Selection by Pattern No Yes (limited)
(e.g. is member property)
Optional arcs No/Maybe Possible
(see disjunction)
safe negation No/Maybe No
(maybe, in that disjunction takes alternatives in order given)
stratified negation No No
negation as failure No/Maybe No
(maybe, in that disjunction takes alternatives in order given)
Representation RDF and Ascii -
Report style bindings bindings
(but the bindings can be used to generate other forms of report)
...
I was also scanning the DAWG work, and notice lots of disscussions about
use-cases, but don't find a collected document. The active "end-user"
use-case for my work is creation of documents for an IETF message header
registry [6].
I just noticed this:
http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0045.html
and note that I have actually delivered software that uses RDF/N3 for its
config file format (but not using a query language to access it).
Now, I just found this:
http://www.w3.org/2001/sw/DataAccess/UseCases
Possible technical requirements arising from my use-case that are not
covered there are:
+ test for generic container/collection membership; this means a query
against a list can return several results which effectively provide
iteration over the container and/or collection. (In practice, I use this
with collections (lists) rather than containers. I have found this to be a
really useful feature of my query capability in implementing the use-case
concerned.
+ requirements I have considered buy not yet implemented are (a)
duplicate result elimination and (b) sorting of results (based on variable
binding results).
...
(Note: by copying this to www-archive, I am implicitly giving permission
for this message to be published/copied more widely.)
#g
--
[1] http://www.w3.org/2001/11/13-RDF-Query-Rules/
[2] http://www.ninebynine.org/RDFNotes/RDFForLittleLanguages.htm
http://www.ninebynine.org/RDFNotes/RDFForLittleLanguages.htm#xtocid137221
[3] http://www.ninebynine.org/Software/HdrRegistry/GenHeaderRegistry.rep
(look for "#### query patterns ####")
Sorry no documentation yet; the parser for this language, in Haskell,
is here:
http://www.ninebynine.org/Software/CompileRDF/RepParser.hs
[4] http://www.ninebynine.org/RDFNotes/Swish/Intro.html
[5] http://www.ninebynine.org/RDFNotes/RDF-Datatype-inference.html
[6] http://www.ninebynine.org/IETF/Messaging/HdrRegistry/Intro.html
------------
Graham Klyne
For email:
http://www.ninebynine.org/#Contact
Received on Wednesday, 28 April 2004 14:50:14 UTC