Workpackage description: 7: Databases, Query, API, Interfaces

Workpackage number: 7

Start date or starting event: Month 1

Lead Partner: ILRT (1)

Participant short name: ILRT W3C-ERCIM CCLRC HP STILO
Participant number: 1 2 3 4 5
Person-months per participant: 16 0 3 0 0

Total number of deliverables: 4


Description of Work

This workpackage seeks to identify opportunities for light-weight, pragmatic, community-led technology specifications to support layered software architectures. RDF and Ontology-based systems typically include programmatic interfaces (APIs) and/or declarative query languages. While much of this work has to date remained research-led, the current availability of a number of similar, high quality, Free Software / Open Source RDF implementations creates an opportunity for technological convergence. While it may be too early to seek a single API or query language for the Semantic Web, there is a need to understand the similarities and differences that exist between deployed systems. Specifically, we need to understand not only how deployed RDF / Semantic Web systems differ, but how those differences relate to real world, industrial and consumer applications of the Semantic Web. This workpackage seeks to identify opportunities within the Semantic Web developer community to create implementer agreements analogous to the consensus that produced the Simple API for XML (SAX). SAX was produced through the community efforts of the XML-DEV mailing list and provided an early foundation for XML interoperability. At this stage focused research is required to start to fill the gaps in implementation experience. There has been a great deal of application-led API development in the Semantic Web community, but much of it has been piecemeal and organic. Meanwhile query languages are starting to become commonplace in the RDF community as practical tools for enabling high level access to Semantic Web datastores, dependent on lower-level APIs. Because of the power of query languages as a tool for making RDF and therefore the Semantic Web more accessible to mainstream developers, elucidating the relationship between RDF APIs and querying is an important topic of research for enabling widespread implementation of Semantic Web applications.

RDF APIs - requirements and current practice

This area of work researches the storage API requirements for RDF applications. Such APIs are required to access Semantic Web data stored within various kinds of RDF-aware system. They can be very low-level or more like query languages in their expressivity. Existing experience shows that that different sorts of RDF datastore will have different levels of API, and some datastores may implement several layers. Work here connects closely with the W3C RDF Core working group decisions and constraints on the RDF model; some deployed RDF APIs may not yet precisely reflect the clarifications of RDF produced by the RDF Core Working Group. Work in this area will investigate what APIs exist in freely available tools, whether they meet the needs of application designers (coordinated with the Education/Outreach workpackage), and whether they meet the refined RDF specifications produced by the RDF Core working group. Wherever possible, the project's work on RDF API specifications will follow the lead set by the RDF Core WG, by using a set of concrete test cases that can easily be used by tool developers.

Query language capabilities for RDF

RDF query languages can provider higher-level interfaces to RDF than the basic graph-oriented APIs that RDF systems typically provide. RDF query languages can be used to allow users with limited technical experience to access RDF datastores and services in cases where the syntax is sufficiently clear and easy to learn. RDF query languages can also provide a powerful shortcut to retrieving RDF data for more experienced programmers. Query languages can be strongly or weakly associated with a particular API, but there is a close association between the functionality of an API and the sorts of query languages that can be implemented above it. This area will investigate what is required for an RDF query language in terms of its functionality and expressivity (e.g. the various levels of graph matching, transitive closure, regular expression path matching; functions such as update, select, create database, drop database) and syntactic constraints which may influence the functionality. It will examine and compare existing approaches to RDF query in terms of their expressivity, functionality and simplicity. It will document dependencies between existing query languages and their underlying graph-orientated APIs.

There will be ongoing public discussion and involvement with relevant working and interest groups by particpants in this workpackage.