W3C home > Mailing lists > Public > www-rdf-interest@w3.org > November 2004

Re: [ANN] Nemo (i.e. why I wrote Nemo)

From: James Cerra <jfcst24_public@yahoo.com>
Date: Tue, 30 Nov 2004 08:40:52 -0800 (PST)
Message-ID: <20041130164052.99776.qmail@web42204.mail.yahoo.com>
To: Laurian Gridinoc <laurian@gmail.com>
Cc: www-rdf-interest@w3.org

Laurian Gridinoc,

Wow, thank's for the skinnny on 3Store and
Triplestore.  It seems very impressive (more than
anything I'd come up with).  Your stylesheet was also
pretty insightful [1].

To answer your question, the other well-known programs
to query arbitrary RDF datastores include:

  * RDF Twig [2]
  * Treehugger [3]

There has been more work done; however most of the
other approaches only transform a subset or
"normalized" form of RDF/XML [4, 5, 6].

IMHO, there are a few issues with the design of
Treehugger and RDF Twig (and Triplestore, from an
initial look):

  * I don't think that XPath by itself should be used
to query RDF.  It was designed for searching trees and
not arbitrary graphs.  So RDF Twig, Treehugger, and
others reserialize the graph into documents that are
easier to use with XPath.  However, this makes it hard
to construct queries if you don't know the details of
the initial serialization.  (i.e. Should I query for
./@rdf:resource or ./rdf:resource?)

  * The results are returned as another XML document
or XML fragment.  This means that another tree has to
be built - isn't that inefficient?  If there are a lot
of nodes queried, this could mean a lot of memory is
used.

  * They seem to concentrate on quereies stored in
seperate files.  For my purposes, it is more
advantageous to query rdf data that is embedded in a
file.

Nemo uses Jena to do all of the querying, so any
improvements to RDQL are passed along to my app.  RDF
Twig also allows generic Jena queries to be passed to
it; however, I really don't like the interface (an
entire extension element makes no sense to me - I
intend to add convience functions to Nemo to create
query strings easier in an XML file).

Nemo also returns the results of a query as an
iterator that lazily evaluates each query only when
the XSLT processor uses it.  This saves resources (I
hope) when accessing large datastores.

Furthermore, Nemo allows rdf/xml to be retrieved from
a branch of the XML document rather than a seperate
document.  This is important, since I plan on
embedding RDF data directly into my documents.

That's why I wrote Nemo.

--
Jimmy Cerra

 "my mind is slipping away... day by glorious day" 
  - Robin A. Gorkin

--
[1] I'd never think in XSLT to use a variable
containing a string as a hash.

[2] http://rdftwig.sourceforge.net/

[3] http://rdfweb.org/people/damian/treehugger/

[4]
http://www.wasab.dk/morten/blog/archives/2004/05/30/transforming-rdfxml-with-xslt

[5] http://www.w3.org/2001/12/rubyrdf/xsltrdf/

[6] http://www.w3.org/XML/2000/04rdf-parse/



		
__________________________________ 
Do you Yahoo!? 
All your favorites on one personal page  Try My Yahoo!
http://my.yahoo.com 
Received on Tuesday, 30 November 2004 16:41:24 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 5 February 2014 07:14:57 UTC