W3C home > Mailing lists > Public > www-archive@w3.org > April 2004

Notes (maybe) for query survey & DAWG use-case

From: Graham Klyne <gk@ninebynine.org>
Date: Wed, 28 Apr 2004 12:03:44 +0100
Message-Id: <>
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:
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:
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 
   + 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.)


[1] http://www.w3.org/2001/11/13-RDF-Query-Rules/

[2] http://www.ninebynine.org/RDFNotes/RDFForLittleLanguages.htm

[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:

[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:
Received on Wednesday, 28 April 2004 14:50:14 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 22:32:27 UTC