|
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:
-
All statements where the subject of the statement denotes the
resource in question.
-
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.
-
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.
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.
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.
|