W3C | Submissions

Team Comment on the RDF Net API Submission

W3C is pleased to receive the RDF Net API from W3C member Hewlett-Packard. The RDF Net API submission specifies a simple network interface to remote RDF models.

The Resource Description Framework (RDF) Model and Syntax Specification specifies a data format with an XML serialization but does not consider any approaches to manipulating instances of that data. Subsequent recommendation-track specifications (eg RDF Revised Syntax, RDF Concepts and Abstract Syntax), still in progress, also do not address this topic. RDF Net API describes a set of operations to query and manipulate RDF data across a network. The Related Work section below compares RDF Net API to other query protocols and another query/update protocol that is not on the W3C recommendation-track.

The RDF Recommendations promote interoperability of expressed data. RDF Net API promotes more interoperability by specifying network protocols, promoting interoperability of network services. Further, the described abstract operations assist the development of interoperable libraries.

The abstract operations include query, getStatements, insertStatements, removeStatements, putStatements, updateStatements and a generic capability querying mechanism called options (there is no discussion of the parallels between options and a query on the service itself). These operations provide a logical way to manipulate a database of statements. These abstract operations are materialized with bindings in SOAP and HTTP. Following is a discussion of those bindings and a comparison to other metadata network protocols.The query opperation provides a protocol in which to express arbitrary RDF query languages. For a list of some such languages, see this Implementation Survey.

The SOAP binding provides a concrete syntax for the abstract operations. This is specified by a WSDL description of the message formats and an XML Schema to define the content of those messages. No words directly bind the syntax specified in the WSDL message names and XML Schema datatypes to the abstract operations, but that may be a leap that the reader may make unguided.

The HTTP binding uses HTTP methods and URL manipulation reminiscent of HTML www-form-urlencoded URIs. The use of the HTTP methods is faithful to their specified semantics, GET has no side-effects, PUT replaces an entity and OPTIONS reveals server capabilities. The URL manipulation, while perhaps unavoidable in layering a richer protocol over a simpler one, has the affect of constraining the advertised URLs of services implementing RDF Net API.

Related Work

The RDF Net API provides a richer functionality than other metadata protocols like PICS label request, TAP and Annotea. The PICS protocol provides a way to query for a specified domain of metadata about a given resource. TAP is a generic RDF query mechanism that gives the server a free hand in deciding what additional information to return as a query result. When applied to a resource alone (ie, omitting the optional properties), it has the affect of saying "tell me what you want about resource foo." Annotea has a similar behavior when doing an HTTP GET opperation on an attribution or bookmark. The RDF Net API has an unconstrained query mode, but it specifies all statements in that model, ie saying "tell me everything about resource foo."

RDF Net API Annotea TAP PICS labels
RDF query/update Annotations exchange RDF query content selection
query(model, query pattern) w3c_algaeQuery(algae graph query)
getStatements(resource, sub, pred, *) GetData(sub, pred*)
getStatements(resource, sub, *, *) GetData(sub) PICS-label(sub, completeness, domain)
getStatements(resource, *, *, *) GET
insertStatements(model, statements) POST
removeStatements(model, statements) DELETE
putStatements(model, statements) PUT
updateStatements(model, rmv, add)
options(model)

The tell-me-everything functionality is describe in terms of a simple query (one where the query pattern matches anything) but as there is no defined query language, the exact expression is not definable. It could instead be explicitly defined in terms of a getStatements with wildcards for the subject, predicate and object. With this redefinition, it maps conveniently to Annotea's GET operation.

The resource parameter for the GetData and PICS-label queries is defined by the resource in the HTTP message conveying them. For PICS-label, it is impossible to distinguish it from the sub parameter.

Next Steps

The RDF Interest Group has a great interest in the area of interoperability and published services. The W3C staff contact will forward this submission to the www-rdf-interest mailing list to promote visibility and group discussion of RDF Net API. Beyond that, it is up to the implementers to adopt the API for services and perhaps application libraries.

Disclaimer: Placing a Submission on a Working Group/Interest Group agenda does not imply endorsement by either the W3C Staff or the participants of the Working Group/Interest Group, nor does it guarantee that the Working Group/Interest Group will agree to take any specific action on a Submission.


Eric Prud'hommeaux, semantic web developer <eric@w3.org>