RDFQueryTestCases

From W3C Wiki

Testcases for RDF query are good for testing interoperability between myriad similar RDF query languages. This is related to the SWAD-Europe deliverable 7.2, EswWp7. See also some notes: RDFQueryTestcasesRequirements.

Nearby: Eric's survey W3C Quality Assurance activity, RdfQueryTestingBudapestMeeting.

Current Activity

hmm... subsumed by DAWG?

1. Meetings

InternetRelayChat (IRC) meetings

We hold the occasional ScheduledTopicChat, announced to www-rdf-rules and held in #rdfig on freenode. The IRC logs and weblogs generally serve as meeting records, though summaries are sometimes mailed out.

test cases and meeting records

RDF version of meeting schedule (these are harvested, tell LibbyMiller if you move them from this page): query, 2003-04-10 query, 2003-03-27

On 27 March, we agreed to meet every two weeks on Thursdays at 14:30 UTC until WWW2003 next meeting.

WWW2003 Budapest meeting

RdfQueryTestingBudapestMeeting

History

email to www-rdf-rules@w3.org in January 2003 which started a thread about testcases for RDF query. Andy Seaborne responded for Jena, detailing the testing regime for RDQL

Alberto Reggiori suggested some reasons for testcases for RDF query:

  • "query parser tests (syntax mostly and no real data)
  • examples (real world examples with real data)"

Alberto's Perl RDFStore an RDF database and RDQL implementation in Perl (download) has various tests, using N-triple and XML/RDF as input files


parser test are t/rdql-tests/*
data is under t/rdql-tests/rdf
real-examples t/04_rdql.t


Jos made an interesting suggestion - which has come up before - to express queries as RDF - perhaps as N3 or N-triples, the RDFCore test format for RDF. This might form part of a language and implementation-neutral format for expressing queries, the source of queries, and their expected results.

The RDQL result format looks like this:


---------------------------------------
# Variables:
?b ?y .
# Data:
?b <anon:cdedfd:eea1faaa34:-8000> ?y "11" .
?b <anon:cdedfd:eea1faaa34:-8000> ?y "12" .
?b <http://never/bag> ?y "21" .
?b <http://never/bag> ?y "22" .
---------------------------------------


Sesame has sample queries. Jeen Broekstra of Sesame thought it might be a good idea to use Andy's test format.

LibbyMiller has a very simple RDF format for query results tests. Alberto suggests adding more to the vocabulary

"After looking at your test cases manifest I would add/modify the following properties:

  • add queryURL (of the query text itself)
  • add optional queryText (for inline query text)
  • modify dataURL (change meaning and use it to point to the actual data source)
  • add dataText property (for inline data)
  • add dataFormat (mime-tyep or something)"

DanBri has manifest format and queries for parser tests.

There are various issues:

  • using RDF as a format for queries with blank (anonymous) nodes as variables means that we can't have predicates as variables, which we sometimes want to do.
  • pinning down what we need and an RDF vocabulary for it

-- LibbyMiller - 12 Feb 2003

Comments on RDF Query Testcases doc

notes on rdf query testcases doc:

from DanBri on first draft

s/URL/URI/

Unique index string: unique in which context?

schema summary: was this machine generated? (I fixed the DL by hand for now, when XHTMLing)

Notes on implementing result set and manifest in Inkling

perhaps move these notes elsewhere

The first issue is that Tiny Inkling (tinkling?) does not have an RDF/XML parser included in it at the moment. This is partly because it is being refactored, and partly because it doesn't have its own parser. I've been using ARP, but that means both that tiny inkling isn't tiny any more and that it has dependencies. At the moment Inkling doesn't have a squish parser either, again because of refactoring. It can do queries of SQL stores using Ntriples as the query language though.

So it would be good to keep a small subset of inkling separate (and tiny) for using for conversion between different quer langauges and anywhere where a small implementation is useful.

Tiny Inkling now uses its own Ntriples parser or ARP if ARP is there, loading the classes as required. There now a conversion of some Squish query tests available which uses the manifest and resultset format. Writing a resultset comparser has proved difficult because of blank nodes in the resultset. This requires at least some cannonicalization of the RDF resultset. At the moment Tiny Inking uses ARP's nice compare function.