The Nokia URI Query Agent Model
A Semantic Web Enabler


Overview

As the Semantic Web emerges and the behavior of automated software becomes increasingly directed by explicit knowledge about resources, gathered from disparate sources, the need for a standardized means of sharing knowledge about a given resource, based solely on the URI denoting that resource, becomes critical to achieving a fully open, global, and ubiquitous Semantic Web.

URIQA (URI Query Agent) is a model for knowledge discovery, both from authoritative sources as well as from arbitrary third party sources. It introduces an extension to the present web architecture used to indicate to a web server that it should resolve the specified URI in terms of knowledge about the resource denoted by that URI rather than in terms of a representation of the resource in question.

Representations versus Descriptions

The web, as presently defined, is concerned with providing representations of resources. Representations can essentially be anything associated with the resource which is considered useful in understanding, accessing, interacting, and/or manipulating that resource. This is fine for humans browsing the web, who can deal with a great amount of variety, inconsistency, and ambiguity while still deriving benefit from the representations provided. It is this flexibility and unconstrained richness of what representations can be that is one of the factors responsible for the tremendous success of the web.

However, semantic web agents (at present at least) are not able to deal as well with the broad range of possible representations which might be associated with a resource; and in nearly all cases, are unnable to make any use of such representations, as they are typically intended for human rather than machine consumption. Semantic web agents, not being any where near as intelligent as most humans, require information which is explicit and formally defined. In short, semantic web agents need concise, bounded descriptions of resources, expressed in a machine understandable language, rather than arbitrary representations of them.

Concise bounded descriptions of resources can be considered to be a form of representation, however they are a highly specialized form and not the most usual or obvious form in a web primarily intended for human consumption. They are, however, a key form of representation which semantic web agents need in order to reason about such resources and adjust their behavior accordingly.

Concise Bounded Resource Descriptions

A concise bounded description of a resource is a body of knowledge about a named resource which does not include any explicit knowledge about any other named resource.

This can be expressed in terms of an RDF graph as follows:

Given a URI denoting some resource, a concise bounded description of that resource (hereafter simply description) is a collection of RDF statements, explicitly asserted and/or inferred, comprised of the following:

  1. All statements where the subject of the statement denotes the resource in question.
  2. Recursively, for all statements included in the description thus far, for all anonymous node objects, all statements where the subject of the statement denotes anonymous resource in question.
  3. Recursively, for all statements included in the description thus far, for all reifications of each statement, the concise bounded description of each reification.

This results in an RDF graph where the terminal nodes are either URIrefs, literals, or anonymous nodes not serving as the subject of any statement, insofar as the knowledge of the describing agent is concerned; effectively constraining the description to only those statements made explicitly about the resource in question or about other directly related anonymous resources, and any associated reifications.

Extending the Web Architecture

Semantic Web Methods

URIQA extends the present web archtecture by introducing the following new HTTP methods for interacting with a semantic web enabled web server:

MGET

Return a concise bounded description of the resource denoted by the request URI.

E.g.   MGET http://example.com/foo HTTP/1.1

I.e. Get a description of the resource denoted by <http://example.com/foo>.

MPUT

Add the statements contained in a concise bounded description of the resource, provided as input, to the (possibly empty) body of knowledge maintained about the resource denoted by the request URI.

E.g.   MPUT http://example.com/foo HTTP/1.1

I.e. Add statements to the description of the resource denoted by <http://example.com/foo>.

MDELETE

Remove the statements contained in a concise bounded description of the resource, provided as input, from the existing knowledge maintained about the resource denoted by the request URI.

If no description is provided as input, remove all statements asserted about the specified resource.

E.g.   MDELETE http://example.com/foo HTTP/1.1

I.e. Delete statements from the description of the resource denoted by <http://example.com/foo>.

URIQA Servlet Parameters

In addition to the methods described above, the URIQA model also defines a simple servlet interface providing for access to descriptions of resources by third parties other than the web authority of the URI denoting the resource and/or for resources denoted by URIs which are not meaningful to the HTTP protocol.

All URIQA servlet implementations must provide support for the parameter uri as defined below:

Parameter Value Description
uri <URI> The URL encoded URI denoting the resource described.

All URIQA servlet implementations must respond to GET, PUT, and DELETE requests made in conjunction with a uri parameter value the same as the above defined behavior for the MGET, MPUT, and MDELETE methods, respectively.

E.g.:

GET http://sw.example.com/URIQA?uri=http%3a%2f%2fexample%2ecom%2ffoo%23bar HTTP/1.1

Retrieve from sw.example.com a description of the resource denoted by <http://example.com/foo#bar>.

PUT http://sw.example.com/URIQA?uri=urn%3aissn%3a1560%2d1560 HTTP/1.1

Add statements to the description maintained by sw.example.com of the resource denoted by <urn:issn:1560-1560>.

DELETE http://sw.example.com/URIQA?uri=uuid%3a438c44e9%2d6b2f%2d11d7%2d944a%2d006097b1ebc HTTP/1.1

Remove statements from the description maintained by sw.example.com of the resource denoted by <uuid:438c44e9-6b2f-11d7-944a-006097b1ebc>.

Descriptions as Fall-Back Representations

A URIQA Enlightened server should attempt to provide a description of a resource when a general GET request fails. This is particularly important for resources which are denoted by http: URIs but which may have no web-accessible representations (other than a concise bounded description), such as vocabulary terms, abstract concepts, physical entities, etc.

The Nokia URIQA Servlet

The Nokia URIQA servlet, implemented as an RDF Gateway Package and serving as the backbone of the Nokia Semantic Web Server, provides a reference implementation demonstrating the correct behavior of a URIQA Enlightened server, and may be downloaded and used free of charge, in accordance with the terms specified.

Nokia URIQA Servlet Extended Parameters

In addition to the required parameters for all URIQA servlets, the Nokia URIQA servlet also supports the following additional parameters, which are relevant for GET requests:

Parameter Value 1 Description
scope local

Include knowledge known only to the specific server.

[default]

authority

Include knowledge known only to the web authority of the URI.

global

Include knowledge known to the specific server, to the web authority of the URI, and any collaborative URIQA servers.

format application/rdf+xml

Return RDF statements serialized as RDF/XML.

[default]

text/html

Return RDF statements presented as browseable HTML.

naming label

When format is HTML, use labels, titles, or localname suffixes in place of complete URIs.

[default]

uri

When format is HTML, use URIs to denote resources.

source exclude

Exclude all uriqa:source reifications from description.

[default]

include

Include all uriqa:source reifications in description.

inference none

Only explicitly asserted statements are returned. No inference is performed.

[default]

basic

All explicitly asserted statements as well as all statements inferable based on rdfs:subClassOf, rdfs:subPropertyOf, owl:sameIndividualAs, and owl:sameAs assertions are returned.

full

All explicitly asserted statements as well as all inferable statements are returned.

filter 2 none

All statements in description are returned.

[default]

rdf+rdfs+owl

Only statements with predicates belonging to the RDF, RDFS, and OWL vocabularies are returned.

dc

Only statements with predicates belonging to the Dublin Core vocabulary are returned.

fn

Only statements with predicates belonging to the Forum Nokia vocabulary are returned.

1 All servlet parameter values must be URL encoded as appropriate.

2 Because statements expressed in terms of a particular vocabulary may be implicit, and thus must be inferred, users typically should specify at least basic inference when filtering by vocabulary.

Nokia URIQA Servlet Request Headers

Each servlet parameter may also be specified as an HTTP header when using either the MGET or GET method. The header name for each parameter corresponds to the prefix "URIQA-" followed by the servlet parameter name. I.e.:

URIQA-uri:

URIQA-scope:

URIQA-format:

URIQA-naming:

URIQA-source:

URIQA-inference:

URIQA-filter:

Header values correspond to the same values as specified above for servlet parameters, but without URL escaping.

If a given parameter is specified both as a header as well as a servlet parameter, the servlet parameter takes precedence.


Copyright (C) 2002-2003 Nokia Contact:  Patrick Stickler