- 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