Characteristics of a Characteristics of a RESTful Semantic Web & RESTful Semantic Web & Why They Are ImportantWhy They Are Important
Chimezie Ogbuji
The latest version of this presentation is here:http://gonzaga.ogbuji.net/~cogbuji/RestfulSemanticWeb.(odp|ppt|pdf)
Introduction
I work in the Cleveland Clinic Heart and Vascular Institute as an Architect and Developer
Member representative and Editor in W3C Data Access Working Group (DAWG)
The Semantic Web
The Semantic Web (SW) is an extension of the Architecture of the World-wide Web (AWWW)• Web content is given well-defined
meaning
• Knowledge representation provides meaning
SW & AWWW Interoperability
SW should retain properties of the AWWW• Web agents should be able to
seamlessly interact with both
• The assumptions web agents make about the AWWW should hold in the SW
• Should be able to have our 'layer cake' and eat it too!
Current W3C DAWG Effort
Relevant specifications• SPARQL 1.1/Query• SPARQL 1.1/Update
• SPARQL 1.1/Protocol
• SPARQL 1.1/Service Descriptions• SPARQL 1.1/Uniform HTTP
Protocol for Managing RDF Graphs
Discussing the latter
SPARQL 1.1 Update
A language for updates to an RDF store• Insert triples into an RDF graph• Delete triples from an RDF graph
• Perform group of update actions
• Create new RDF graph within store• Delete an RDF graph from the store
Both large and small granularity
Motivation
Update operations should not be bound to an API or programming language
Similar query languages include update mechanisms (SQL)
A language extension is needed• However, an HTTP-based (RESTful)
alternative is needed as well
A RESTful Update ProtocolA RESTful Update Protocol
What does it mean to be RESTful?• Adhering to best practices for
distributed hypermedia• Often misunderstood or overstated
What is Hypermedia:• Human-authored media that
'branch or perform' in response to user actions
Primer on REST
Representation State Transfer• A coordinated set of architectural
constraints (an architectural style)
• Properties induced by Web architecture
• Abstraction of architectural elements within a distributed hypermedia system
URLs and URIs
URI (Uniform Resource Identifier)• A locator, a name, or both
URL (Uniform Resource Locator)• Subset of URIs that provide a
means of locating the resource via an access mechanism
REST Data Elements
Key data elements:• Resource identifier (URL, URN,etc.)• Resource (conceptual target of a
reference)
• Representation (RDF document)• Representation metadata (Internet
Media Type)
• Control data (if-modified-since, POST: purpose of message)
Credit: I. Jacobs and N. Walsh (2004)
Component Interactions
Components act on resources via representations
REST interactions are stateless
REST interactions are similar to synchronous function calls• Input: control data, identifier, and
representation
• Output: control data, resource metadata, and representation
W3C TAG and AWWW
Information Resource (documents)• “[...] all of their essential
characteristics can be conveyed in a message”
Tag Issue httpRange-14:• What kind of things do HTTP URIs
refer to? Depends on response to HTTP GET
Exceptions to this Paradigm
Some pegs don't fit this hole • There are URIs that are not
resolvable (strictly names):• tag:[email protected]:2009/Ngozi
• There are HTTP URIs that are not resolvable (404 Not Found):• http://weather.example.com/oaxaca
Can such URIs identify information resources?
SPARQL Dataset SPARQL Dataset
RDF Dataset (collection of graphs)• One graph (the default graph)
without a name• Zero or more named graphs that are
identified with a (graph) URI
Relationship between a named graph and its URI is indirect• This is a source of confusion
Datasets, REST, and AWWW
httpRange-14 and RDF datasets• What kind of things do graph URIs
refer to?
• If it is an HTTP URI, does it also depend on the response to HTTP GET?
A Graph URI Conjecture
httpRange-14 might be a moot point with RDF datasets• All of the essential characteristics
of an RDF graph can be conveyed in a message (as an RDF document)
• So, graph URIs identify (RDF) Information Resources• “RDF knowledge”
RDF Graph Denotation
What is the relationship between the graph and what the URI identifies?• RDF model theory tells us the
meaning of an RDF graph
• Allows us to interpret an RDF graph in a reproducible, principled way
Graph URI Conjecture (cont.)
For a named graph in a dataset: • Graph URI identifies the meaning
of the graph
• Meaning can be serialized into an RDF document (over a protocol)
• RDF graph parsed from this document can be interpreted to provide the meaning (possibly with the aid of an ontology)
Straightforward REST Model
If we assume graph URIs are resolvable HTTP URIs:• REST components can interact
with (named) graphs in a dataset intuitively via their URIs
• They can retrieve a representation of the meaning of a graph in the dataset
Straightforward Model (cont.)
• REST components can update the meaning of a graph by sending representations to the graph URIs
• They can create new named graphs by sending a representation to a URI
Large Grain Protocol
Compared to SPARQL Update• Facilitates manipulation at a
strictly large granularity
• RDF graphs are the atomic components of the RESTful update protocol
• For smaller grain, more precise manipulation, there is SPARQL Update language
REST and RDF Syntax
REST provides an extensible framework for the syntax of representations• REST components can request
representations in a format of their choice (NTriples, RDF/XML, custom XML, etc.)
• They can update RDF graphs via representations of their choice
Exceptions to the Rule
What about graphs whose URIs are strictly names (and not locations)?• Their URIs are not HTTP URIs• Their HTTP URIs are not resolvable
• The naming authority (DNS) for the URI is different from the server managing the dataset
URI Components
Embedding URIs
Such URIs can be embedded (nested) in the query component of a resolvable, parent HTTP URI• A REST component interacts with
the parent URI
• Requests to the parent URI are understood to be directed at a graph associated with the embedded URI
Embedded URI Request
Managing the Exceptions
Provides a way to manage graphs whose URIs are names but not locations• REST components interact with
composite URIs (locations)
• A URI (a name) is embedded in the location
Outstanding Questions
What does a graph URI in an RDF dataset identify?• Proposed it identifies the meaning
of its associated graph
• Does the response from interacting with a graph HTTP URI determine this authoritatively?
• Does this matter?
Outstanding Questions (cont.)
Coordinating the protocols• How do web agents discover the
various 'services'?
• Can they do so in an unambiguous way?
• Can they intuitively determine which to use and at what level of granularity?
The Semantic Web
Answers to these questions are key to the future landscape of the Semantic Web