You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1111 lines
50 KiB
1111 lines
50 KiB
<?xml version="1.0" encoding="utf-8"?><!--*- coding: utf-8 -*-->
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
|
|
|
<html lang="en-US" xml:lang="en-US" xmlns="http://www.w3.org/1999/xhtml">
|
|
<head>
|
|
<meta name="generator" content=
|
|
"HTML Tidy for Linux/x86 (vers 1st March 2004), see www.w3.org" />
|
|
|
|
<title>RDF Data Access Use Cases and Requirements</title>
|
|
<style type="text/css">
|
|
/*<![CDATA[*/
|
|
pre.rdf {border:1px dashed #8888aa;
|
|
background-color:#f7f8ff;
|
|
padding:5px;
|
|
font-size:88%;
|
|
margin-left: 2.5em;
|
|
color: black;}
|
|
span.rdf-caption {
|
|
font-size: 88%;
|
|
font-weight: bold;
|
|
width:58%;
|
|
margin-left: 2.75em;}
|
|
span.accept { text-decoration: underline; text-transform: uppercase}
|
|
span.note { font-size: 75%; }
|
|
pre.cvs-id {color: gray}
|
|
.bp { font-style: italic }
|
|
/*]]>*/
|
|
</style>
|
|
<link rel="stylesheet" type="text/css" href=
|
|
"http://www.w3.org/StyleSheets/TR/W3C-WD.css" />
|
|
<meta name="RCS-Id" content=
|
|
"$Id: Overview.html,v 1.2 2005/03/25 22:41:36 matthieu Exp $" />
|
|
</head>
|
|
|
|
<body>
|
|
<div class="head">
|
|
<a href="http://www.w3.org/"><img height="48" width="72" alt="W3C" src=
|
|
"http://www.w3.org/Icons/w3c_home" /></a>
|
|
|
|
<h1 id="main">RDF Data Access Use Cases and Requirements</h1>
|
|
|
|
<h2 id="main_what">W3C Working Draft 25 March 2005</h2>
|
|
|
|
<!-- h2 id="main_what">Live Draft ( --><!-- fooey -->
|
|
<!-- $Revision: 1.2 $ of $Date: 2005/03/25 22:41:36 $)</h2 -->
|
|
|
|
<dl>
|
|
<dt>This Version:</dt>
|
|
<dd><a href="http://www.w3.org/TR/2005/WD-rdf-dawg-uc-20050325/">
|
|
http://www.w3.org/TR/2005/WD-rdf-dawg-uc-20050325/</a>
|
|
</dd>
|
|
<dt>Previous Version:</dt>
|
|
<dd><a href="http://www.w3.org/TR/2004/WD-rdf-dawg-uc-20041012/">http://www.w3.org/TR/2004/WD-rdf-dawg-uc-20041012/</a></dd>
|
|
<dt>Latest Version:</dt>
|
|
<dd><a href="http://www.w3.org/TR/rdf-dawg-uc/">
|
|
http://www.w3.org/TR/rdf-dawg-uc/</a>
|
|
</dd>
|
|
|
|
<dt>Editor:</dt>
|
|
|
|
<dd><a href="mailto:kendall@monkeyfist.com">Kendall Grant Clark</a>,
|
|
University of Maryland Information and Network Dynamics Laboratory</dd>
|
|
|
|
<!-- dt>published W3C Technical Report Version:</dt>
|
|
|
|
<dd><a href="http://www.w3.org/TR/2004/WD-rdf-dawg-uc-20041012/">12 Oct
|
|
2004</a>; see also <a href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/">public-rdf-dawg-comments@w3.org
|
|
Mail Archives</a></dd -->
|
|
</dl>
|
|
|
|
<p class="copyright"><a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> ©
|
|
2004, 2005 <a href="http://www.w3.org/"><acronym title=
|
|
"World Wide Web Consortium">W3C</acronym></a><sup>®</sup> ( <a href=
|
|
"http://www.csail.mit.edu/"><acronym title=
|
|
"Massachusetts Institute of Technology">MIT</acronym></a>, <a href=
|
|
"http://www.ercim.org/"><acronym title=
|
|
"European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>,
|
|
<a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
|
|
<a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
|
|
<a href=
|
|
"http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
|
|
and <a href=
|
|
"http://www.w3.org/Consortium/Legal/copyright-documents">document use</a>
|
|
rules apply.</p>
|
|
</div>
|
|
<hr title="Separator for header" />
|
|
|
|
<div>
|
|
<h2 id="abstract">Abstract</h2>
|
|
|
|
<p>This document specifies use cases, requirements, and objectives for an
|
|
<a href="http://www.w3.org/RDF/">RDF</a> query language and data access
|
|
protocol. It suggests how an RDF query language and data access protocol
|
|
could be used in the construction of novel, useful Semantic Web
|
|
applications in areas like web publishing, personal information
|
|
management, transportation, and tourism.</p>
|
|
</div>
|
|
|
|
<div>
|
|
<h2><a name="status" id="status">Status of This Document</a></h2>
|
|
<p>Since the October 2004 draft of this document, the <a
|
|
href="http://www.w3.org/2001/sw/DataAccess/">RDF Data Access Working Group</a> has</p>
|
|
<ul>
|
|
<li>adopted a WSDL requirement and
|
|
a sorting objective (see <a href="#changes">change log</a>
|
|
for details)</li>
|
|
<li>postponed some design issues to a future version due to lack
|
|
of implementation and design experience (<a
|
|
href="http://www.w3.org/2001/sw/DataAccess/issues#cascadedQueries"
|
|
>cascadedQueries</a>, <a
|
|
href="http://www.w3.org/2001/sw/DataAccess/issues#accessingCollections"
|
|
>accessingCollections</a>)</li>
|
|
<li>changed our approach to the <a href="#d4.1">Human-friendly Syntax</a> objective (see issue <a
|
|
href="http://www.w3.org/2001/sw/DataAccess/issues#punctuationSyntax"
|
|
>punctuationSyntax</a> and upcoming design document revisions)
|
|
</li>
|
|
</ul>
|
|
|
|
<p>We invite feedback on which features
|
|
are required for a first version of SPARQL and which should be
|
|
postponed in order to expedite deployment of others. Please send
|
|
comments to <a href="mailto:public-rdf-dawg-comments@w3.org"
|
|
>public-rdf-dawg-comments@w3.org</a>, a mailing list with a <a
|
|
href="http://lists.w3.org/Archives/Public/public-rdf-dawg-comments/"
|
|
>public archive</a>.</p>
|
|
|
|
<p>This document has been produced by the <a
|
|
href="http://www.w3.org/2001/sw/DataAccess/">RDF Data Access
|
|
Working Group</a>, along with three design documents: <cite><a
|
|
href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL Query
|
|
Language for RDF</a></cite>, <cite><a
|
|
href="http://www.w3.org/TR/rdf-sparql-protocol/">SPARQL Protocol
|
|
for RDF</a></cite>, and <cite><a
|
|
href="http://www.w3.org/TR/rdf-sparql-XMLres/">SPARQL Variable
|
|
Binding Results XML Format</a></cite>. This work is part of the
|
|
<a href="http://www.w3.org/2001/sw/">Semantic Web Activity</a> in
|
|
the W3C <a href="http://www.w3.org/TandS/">Technology &
|
|
Society Domain</a>.</p>
|
|
|
|
<!-- p><em>This is a live document and is edited frequently. Recent edits may
|
|
not have been reviewed by the RDF Data Access Working Group.</em> The
|
|
<a href="http://www.w3.org/2001/sw/DataAccess/">RDF Data Access Working
|
|
Group</a> has adopted some but not all of the requirements in this
|
|
document; the remaining requirements are still under discussion. We
|
|
invite feedback especially with respect to which use cases and
|
|
requirements should be elaborated, clarified, removed, or added.</p -->
|
|
<p class="bp"><em>This section describes the status of this document at
|
|
the time of its publication. Other documents may supersede this
|
|
document. A list of current W3C publications and the latest revision
|
|
of this technical report can be found in the <a
|
|
href="http://www.w3.org/TR/">W3C technical reports index</a> at
|
|
http://www.w3.org/TR/.</em></p>
|
|
<p class="bp">Publication as a Working Draft does not imply endorsement by
|
|
the W3C Membership. This is a draft document and may be updated,
|
|
replaced or obsoleted by other documents at any time. It is
|
|
inappropriate to cite this document as other than work in
|
|
progress.</p>
|
|
|
|
<p class="bp">This document was produced under the <a href=
|
|
"http://www.w3.org/Consortium/Patent-Policy-20040205/">5 February 2004
|
|
W3C Patent Policy</a>. The Working Group maintains a <a rel="disclosure"
|
|
href="http://www.w3.org/2001/sw/DataAccess/Disclosures">public list of
|
|
patent disclosures</a> relevant to this document; that page also includes
|
|
instructions for disclosing [and excluding] a patent. An individual who
|
|
has actual knowledge of a patent which the individual believes contains
|
|
Essential Claim(s) with respect to this specification should disclose the
|
|
information in accordance with <a href=
|
|
"http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Disclosure">section
|
|
6 of the W3C Patent Policy</a>.</p>
|
|
|
|
<p class="bp">Per <a
|
|
href="http://www.w3.org/Consortium/Patent-Policy-20040205/#sec-Exclusion">section
|
|
4 of the W3C Patent Policy</a>, Working Group participants have 150
|
|
days from the title page date of this document to exclude essential
|
|
claims from the W3C RF licensing requirements with respect to this
|
|
document series. Exclusions are with respect to the exclusion
|
|
reference document, defined by the W3C Patent Policy to be the
|
|
latest version of a document in this series that is published no
|
|
later than 90 days after the title page date of this
|
|
document.</p>
|
|
</div>
|
|
<hr />
|
|
|
|
<h1 id="toc">Table of Contents</h1>
|
|
|
|
<ol>
|
|
<li><a href="#intro">Introduction</a></li>
|
|
|
|
<li>
|
|
<a href="#uc">Use Cases</a>
|
|
|
|
<ul>
|
|
<li>2.1 <a href="#u2.1">Finding an Email Address</a></li>
|
|
|
|
<li>2.2 <a href="#u2.2">Finding Information about Motorcycle
|
|
Parts</a></li>
|
|
|
|
<li>2.3 <a href="#u2.3">Finding Unknown Media Objects</a></li>
|
|
|
|
<li>2.4 <a href="#u2.4">Monitoring News Events</a></li>
|
|
|
|
<li>2.5 <a href="#u2.5">Avoiding Traffic Jams</a></li>
|
|
|
|
<li>2.6 <a href="#u2.6">Discovering What People Say about News
|
|
Stories</a></li>
|
|
|
|
<li>2.7 <a href="#u2.7">Exploring the Neighborhood</a></li>
|
|
|
|
<li>2.8 <a href="#u2.8">Sharing Vacation Photos with a
|
|
Friend</a></li>
|
|
|
|
<li>2.9 <a href="#u2.9">Finding Input and Output Documents for Test
|
|
Cases</a></li>
|
|
|
|
<li>2.10 <a href="#u2.10">Discovering Learning Resources</a></li>
|
|
|
|
<li>2.11 <a href="#u2.11">Finding Out New Things About
|
|
People</a></li>
|
|
|
|
<li>2.12 <a href="#u2.12">Browsing Patient Records</a></li>
|
|
|
|
<li>2.13 <a href="#u2.13">Finding Disjunct Conditions</a></li>
|
|
|
|
<li>2.14 <a href="#u2.14">Finding Film Soundtracks</a></li>
|
|
|
|
<li>2.15 <a href="#u2.15">Managing Personal Identities</a></li>
|
|
|
|
<li>2.16 <a href="#u2.16">Customizing Content Delivery</a></li>
|
|
|
|
<li>2.17 <a href="#u2.17">Building Ontology Tools</a></li>
|
|
<li>2.18 <a href="#u2.18">Working with Enterprise Web Services</a></li>
|
|
<li>2.19 <a href="#u2.19">Building Tables of Contents</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#req">Requirements</a>
|
|
|
|
<ul>
|
|
<li>3.1 <a href="#r3.1">RDF Graph Pattern
|
|
Matching—Conjunction</a></li>
|
|
|
|
<li>3.2 <a href="#r3.2">Variable Binding Results</a></li>
|
|
|
|
<li>3.3 <a href="#r3.3">Extensible Value Testing</a></li>
|
|
|
|
<li>3.4 <a href="#r3.4">Subgraph Results</a></li>
|
|
|
|
<li>3.5 <a href="#r3.5">Local Queries</a></li>
|
|
|
|
<li>3.6 <a href="#r3.6">Optional Match</a></li>
|
|
|
|
<li>3.7 <a href="#r3.7">Limited Datatype Support</a></li>
|
|
|
|
<li>3.10 <a href="#r3.10">Result Limits</a></li>
|
|
|
|
<li>3.12 <a href="#r3.12">Streaming Results</a></li>
|
|
|
|
<li>3.13 <a href="#r3.13">RDF Graph Pattern
|
|
Matching—Disjunction</a></li>
|
|
<li>3.14 <a href="#r3.14">WSDL Protocol</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li>
|
|
<a href="#dobj">Design Objectives</a>
|
|
|
|
<ul>
|
|
<li>4.1 <a href="#d4.1">Human-friendly Syntax</a></li>
|
|
|
|
<li>4.2 <a href="#d4.2">Data Integration and Aggregation</a></li>
|
|
|
|
<li>4.3 <a href="#d4.3">Non-existent Triples</a></li>
|
|
|
|
<li>4.7 <a href="#d4.7">Bandwidth-efficient Protocol</a></li>
|
|
|
|
<li>4.8 <a href="#d4.8">Literal Search</a></li>
|
|
|
|
<li>4.9 <a href="#d4.9">Yes-No Queries</a></li>
|
|
|
|
<li>4.10 <a href="#d4.10">Addressable Query Results</a></li>
|
|
|
|
<li>4.11 <a href="#d4.11">Sorting Results</a></li>
|
|
</ul>
|
|
</li>
|
|
|
|
<li><a href="#relts">Related Technologies and Standards</a></li>
|
|
|
|
<li><a href="#ack">Acknowledgments</a></li>
|
|
|
|
<li><a href="#changes">Change Log</a></li>
|
|
</ol>
|
|
|
|
<h1><a name="intro" id="intro">1. Introduction</a></h1>
|
|
|
|
<p>The W3C's Semantic Web Activity is based on RDF's flexibility as a means
|
|
of representing data. While there are several standards covering RDF
|
|
itself, there has not yet been any work done to create standards for
|
|
querying or accessing RDF data. There is no formal, publicly standardized
|
|
language for querying RDF information. Likewise, there is no formal,
|
|
publicly standardized data access protocol for interacting with remote or
|
|
local RDF storage servers.</p>
|
|
|
|
<p>Despite the lack of standards, developers in commercial and in open
|
|
source projects have created <a href=
|
|
"http://www.w3.org/2001/11/13-RDF-Query-Rules/">many query languages for
|
|
RDF data</a>. But these languages lack both a common syntax and a common
|
|
semantics. In fact, the extant query languages cover a significant semantic
|
|
range: from declarative, SQL-like languages, to path languages, to rule or
|
|
production-like systems. The existing languages also exhibit a range of
|
|
extensibility features and built-in capabilities, including inferencing and
|
|
distributed query.</p>
|
|
|
|
<p>Further, there may be as many different methods of accessing remote RDF
|
|
storage servers as there are distinct RDF storage server projects. Even
|
|
where the basic access protocol is standardized in some sense—HTTP, SOAP,
|
|
or XML-RPC—there is little common ground upon which to develop generic
|
|
client support to access a wide variety of such servers.</p>
|
|
|
|
<p>The following use cases characterize some of the most important and most
|
|
common motivations behind the development of existing RDF query languages
|
|
and access protocols. The use cases, in turn, inform decisions about
|
|
<a href="#req">requirements</a>, that is, the critical features that a
|
|
standard RDF query language and data access protocol require, as well as
|
|
<a href="#dobj">design objectives</a> that aren't on the critical path.</p>
|
|
|
|
<h2><a name="uc" id="uc">2. Use Cases</a></h2>
|
|
|
|
<p>Each use case describes a user-oriented context in which the RDF query
|
|
language or protocol or both are used to solve a real problem. However, it
|
|
is not necessarily the case that the query language or data access protocol
|
|
will directly address all of these use cases. (Some of the use cases
|
|
contain illustrative RDF in Notation 3 form; consult <a href=
|
|
"http://www.w3.org/2000/10/swap/Primer">Primer: Getting into the semantic
|
|
web and RDF using N3</a> or <a href=
|
|
"http://infomesh.net/2002/notation3/">Notation3: A Rough Guide to N3</a>
|
|
for more details about N3.)</p>
|
|
|
|
<h3 class="uc"><a name="u2.1" id="u2.1">2.1 Finding an Email Address</a>
|
|
(Personal Information Management)</h3>
|
|
|
|
<p>George wants to send email to a person named "Johnny Lee Outlaw".
|
|
George's personal address book, which includes contact information for a
|
|
"Johnny Lee Outlaw", is stored in RDF using the <a href=
|
|
"http://xmlns.com/foaf/0.1/">FOAF Vocabulary Specification</a>.</p>
|
|
|
|
<div>
|
|
<pre class="rdf">
|
|
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
|
|
|
|
[]
|
|
foaf:name "Johnny Lee Outlaw" ;
|
|
foaf:mbox <mailto:jlow@example.com> .
|
|
</pre><br />
|
|
<span class="rdf-caption">Figure One: A Fragment of a FOAF Address
|
|
Book</span>
|
|
</div>
|
|
|
|
<p>George's email client queries his local address book service and, since
|
|
there is only one match, uses the query's result to populate the
|
|
<code>To:</code> field.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.1">RDF Graph Pattern
|
|
Matching</a>, <a href="#r3.2">Variable Binding Results</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.2" id="u2.2">2.2 Finding Information about
|
|
Motorcycle Parts</a> (Supply Chain Management)</h3>
|
|
|
|
<p>Endeavour, a dealer specializing in British motorcycles, maintains a
|
|
database that describes spare and replacement parts, including their
|
|
properties and relationships. Ev, a repair person who specializes in
|
|
Triumph bikes, is working on an ailing Speed Triple motorcycle when a
|
|
diagnostic tool produces a report identifying a defect in the fuel
|
|
management system.</p>
|
|
|
|
<div>
|
|
<pre class="rdf">
|
|
@prefix triumph: <http://triumph.example/schema/#> .
|
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
|
|
<http://triumph.example/part/0d92ie433>
|
|
rdf:type triumph:part ;
|
|
rdfs:label "Accelerator Cable MK3" ;
|
|
triumph:depends-on <http://triumph.example/part/329i2dk39> ;
|
|
triumph:part-for <http://triumph.example/2004/SpeedTriple> ;
|
|
triumph:part-number "LCD 100-04BSPT" .
|
|
|
|
<http://triumph.example/part/329i2dk39>
|
|
rdfs:label "Mounting Bracket" ;
|
|
triumph:requires
|
|
[ triumph:has-number "4" ;
|
|
triumph:part-number "149028ab-MT" ;
|
|
triumph:type triumph:screwx
|
|
] .
|
|
</pre><br />
|
|
<span class="rdf-caption">Figure Two: A Fragment of the Endeavour Parts
|
|
Database</span>
|
|
</div>
|
|
|
|
<p>Ev uses a query interface to the parts database to ask about the
|
|
defective part. In response to her query, Ev receives a human-readable
|
|
description of the part, which provides enough information to obtain a
|
|
replacement part and tells her about other, dependent parts that must be
|
|
replaced at the same time.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.4">Subgraph Results</a>,
|
|
<a href="#r3.5">Optional Match</a>, <a href="#d4.1">Human-friendly
|
|
Syntax</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.3" id="u2.3">2.3 Finding Unknown Media
|
|
Objects</a> (Publishing)</h3>
|
|
|
|
<p>Smiley works for a multinational media conglomerate. As part of his job
|
|
as an editor of foreign market compilations, he needs to be notified
|
|
whenever the conglomerate's knowledge bases contain information about new
|
|
media objects—books, movies, and pop music—matching various properties:
|
|
title, author, and price point.</p>
|
|
|
|
<p>Smiley uses his web browser to create a query that will be executed
|
|
regularly against the conglomerate's knowledge bases. Whenever there are
|
|
new matches for Smiley's query, he receives an email with URIs to resources
|
|
about the new matches; and Smiley's personal RSS feed is also updated with
|
|
the new matches, since he uses an RSS aggregator to gather news every
|
|
day.</p>
|
|
|
|
<div>
|
|
<pre class="rdf">
|
|
@prefix baf: <http://big-accounting-firm.example/scheme/1.0/#> .
|
|
@prefix bmc: <http://big-media-conglomerate.example/ontology/#> .
|
|
@prefix dc: <http://purl.org/dc/elements/1.1/> .
|
|
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
|
|
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
|
|
|
|
[]
|
|
baf:dollarPrice "29.99" ;
|
|
bmc:objectName "J to the LO" ;
|
|
dc:author <http://big-media.example/author/1929/> .
|
|
</pre><br />
|
|
<span class="rdf-caption">Figure Three: Big Media Conglomerate Knowledge
|
|
Base</span>
|
|
</div>
|
|
|
|
<p>Since Smiley's query will operate over knowledge bases structured by at
|
|
least four different ontologies—the result of his conglomerate's rapid
|
|
expansion—Karla, the staff programmer for Smiley's group, makes sure that
|
|
knowledge bases in question contain appropriate
|
|
<code>rdfs:subPropertyOf</code> assertions. For example, Smiley's query
|
|
uses the predicate <code>media:ObjectName</code>, which will also find
|
|
properties like <code>dc:title</code>, <code><a href=
|
|
"http://www.doi.org/">doi</a>:title</code>, and <code><a href=
|
|
"http://www.loc.gov/standards/mods/">mods</a>:titleInfo</code>.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#d4.1">Human-friendly Syntax</a>,
|
|
<a href="#d4.2">Data Integration and Aggregation</a>.</p>
|
|
|
|
<h3><a name="u2.4" id="u2.4">2.4 Monitoring News Events</a>
|
|
(Multimedia)</h3>
|
|
|
|
<p>Kate wants to see all the television programs that feature information
|
|
about the Japanese baseball player Ichiro. She wants her personal digital
|
|
recorder (PDR) to record every television show about Japanese baseball
|
|
automatically using the Electronic Program Guides (EPGs). She also wants an
|
|
index page for each week's recorded items.</p>
|
|
|
|
<p>Her RDF-enabled PDR periodically executes a query against the RDF
|
|
version of its EPGs, and continues to execute the query every day for new
|
|
items to record.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.10">Result Limits</a>, <a href=
|
|
"#d4.2">Data Integration and Aggregation</a>, <a href="#d4.10">Addressable
|
|
Query Results</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.5" id="u2.5">2.5 Avoiding Traffic Jams</a>
|
|
(Transportation)</h3>
|
|
|
|
<p>Niel has to drive every day from home to his office during heavy rush
|
|
hour traffic in Atlanta, GA, in his new car, which has Bluetooth and
|
|
wireless Internet access. Using his cell phone, Niel requests that his car
|
|
query public RDF storage servers on the Web for a description of current
|
|
Atlanta road construction projects, traffic jams, and roads affected by
|
|
inclement weather.</p>
|
|
|
|
<p>Based on the information retrieved efficiently from the public RDF
|
|
servers, Niel uses the mapping program in his cell phone to plan a
|
|
different route to work, cutting his commute time by 10%.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#d4.7">Bandwidth-efficient
|
|
Protocol</a>, <a href="#r3.10">Result Limits</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.6" id="u2.6">2.6 Discovering What People Say
|
|
about News Stories</a> (Publishing)</h3>
|
|
|
|
<p>Abelard, an independent publisher of web publications, wants to query
|
|
RSS feed aggregators in order to track RDF assertions people make about
|
|
articles and stories in his publications. Abelard's client software
|
|
includes support for three different RDF query languages.</p>
|
|
|
|
<p>Heloise manages one of the servers that Abelard wants to query. Her
|
|
server publishes a machine readable description of its capabilities,
|
|
including the query languages it supports, in RDF. Abelard's client asks
|
|
Heloise's server whether it supports his preferred query language.
|
|
Abelard's client software also negotiates with the other servers and uses a
|
|
common transport protocol to retrieve the results of his queries.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#d4.1">Human-friendly Syntax</a>,
|
|
<a href="#d4.2">Data Integration and Aggregation</a>, <a href=
|
|
"#d4.9">Yes-No Queries</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.7" id="u2.7">2.7 Exploring the Neighborhood</a>
|
|
(Tourism)</h3>
|
|
|
|
<p>José knows that the U.S. Census Bureau provides interesting geographic
|
|
data in its public domain <a href=
|
|
"http://www.census.gov/geo/www/tiger/">TIGER</a> database. José attends a
|
|
conference in Washington, DC, at the new convention center, and he stays in
|
|
a hotel nearby. José wants to find out the latitude, longitude, name, and
|
|
type of everything within one mile of the convention center, as well as all
|
|
events occurring during his stay, so that he can plan his meals and
|
|
sightseeing time accordingly.</p>
|
|
|
|
<p>Rather than working with the TIGER database files directly, José sends a
|
|
query to the Census Bureau's new RDF storage server and requests that his
|
|
client pass the query results to an XSLT transformation service so that he
|
|
can print the resulting XHTML.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.3">Extensible Value
|
|
Testing</a>, <a href="#r3.7">Limited Datatype Support</a>, <a href=
|
|
"#d4.1">Human-friendly Syntax</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.8" id="u2.8">2.8 Sharing Vacation Photos with a
|
|
Friend</a> (Personal Information Management)</h3>
|
|
|
|
<p>Frannie and Zoe, old college friends, live in different countries and
|
|
keep in daily contact via IRC. Zoe wrote an IRC bot that they use to make
|
|
assertions—which the bot stores as RDF—about photographs of their family,
|
|
friends, and vacations. Frannie wants to be able to republish some of these
|
|
assertions in a human readable form on her weblog. Zoe tells her about a
|
|
server that accepts and agrees to host documents that describe what they
|
|
say about web resources, and their IRC bot sends those documents
|
|
periodically to the server.</p>
|
|
|
|
<p>Frannie programs her weblog software to query the server that hosts
|
|
their annotations for vacation images that co-depict her family members
|
|
with Zoe's family members, as well as for things Zoe and Franny have said
|
|
about those images. Frannie uses the XSLT processor built into her weblog
|
|
software to transform the query results into XHTML for display in her
|
|
weblog.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.2">Variable Binding
|
|
Results</a>, <a href="#d4.2">Data Integration and Aggregation</a>, <a href=
|
|
"#d4.3">Non-existent Triples</a>,.</p>
|
|
|
|
<h3 class="uc"><a name="u2.9" id="u2.9">2.9 Finding Input and Output
|
|
Documents for Test Cases</a> (Software Development)</h3>
|
|
|
|
<p>Nada, a Semantic Web developer, has a bug report from a valued user
|
|
indicating that a software tool is incorrectly emitting the N3
|
|
representation of some of the RDF core test cases. Nada wants to create a
|
|
list of input and output documents for each of the approved test cases,
|
|
filtering only for those which have an "approved" status, from the RDF core
|
|
test suite. The list of tests resides in a single file.</p>
|
|
|
|
<p>Nada can process the RDF core manifest file in such a way as to write
|
|
one input-output pair per line to standard-out; another program can then be
|
|
written to read, write, and check the input document.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.1">RDF Graph Pattern
|
|
Matching</a>, <a href="#r3.2">Variable Results</a>, <a href="#r3.5">Local
|
|
Queries</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.10" id="u2.10">2.10 Discovering Learning
|
|
Resources</a> (Instructional Technology)</h3>
|
|
|
|
<p>Erasmus Jones, a professor, wants to find some learning materials for
|
|
his seminar on Renaissance humanism. He is using a recommended web site
|
|
that provides descriptions of learning materials; he performs a search at
|
|
the site, chosing the general subject area, student learning level, and
|
|
provides some keywords. The results include materials returned from
|
|
multiple learning repositories, where the subject and learning levels have
|
|
been matched across multiple educational metadata vocabularies, including
|
|
predicates from the <a href="http://dublincore.org/documents/dces/">Dublin
|
|
Core Metadata Element Set</a> and the <a href=
|
|
"http://www.cetis.ac.uk/profiles/uklomcore">UK Learning Object Metadata
|
|
Framework</a> specifications.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#d4.2">Data Integration and
|
|
Aggregation</a> .</p>
|
|
|
|
<h3 class="uc"><a name="u2.11" id="u2.11">2.11 Finding Out New Things About
|
|
People (Social Network Analysis)</a></h3>
|
|
|
|
<p>Esther, a programmmer for a new social networking site based on <a href=
|
|
"http://xmlns.com/foaf/0.1/">FOAF</a>, has written an <a href=
|
|
"http://www.hackdiary.com/archives/000030.html">RDF crawler</a> which
|
|
follows <code>foaf:knows</code> links to determine the publicly available
|
|
properties of new people it will invite into the network. While processing
|
|
a new FOAF resource, it finds an <code>rdf:Property</code> referring to a
|
|
URI that it has not seen before. The crawler queries an ontology server to
|
|
see if the property's domain(s) and range(s) are ones that it has already
|
|
encountered, so that it can track where it first discovered this property
|
|
and use the property in future searches.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#d4.2">Data Integration and
|
|
Aggregation</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.12" id="u2.12">2.12 Browsing Patient Records
|
|
(Health Care)</a></h3>
|
|
|
|
<p>Peter is developing a medical knowledge base using OWL/RDF in
|
|
collaboration with medical domain experts. The knowledge base is used
|
|
within <a href="http://xml.coverpages.org/hl7PRA.html">electronic patient
|
|
records</a>. To facilitate collaboration and avoid duplication, the team is
|
|
using a <a href=
|
|
"http://ebxmlrr.sourceforge.net/presentations/xmlEurope2004/04-02-02.pdf">federated
|
|
ebXML Registry</a> to store the knowledge base they are building.</p>
|
|
|
|
<p>When adding a new concept to the knowledge base, Peter uses a registry
|
|
browser application to search the ebXML Registry for similar or related
|
|
concepts. The <a href=
|
|
"http://ebxmlrr.sourceforge.net/3.0/registryBrowser/">registry browser</a>
|
|
allows Peter to choose a <a href=
|
|
"http://ebxmlrr.sourceforge.net/3.0/registryBrowser/discovery.html#Adhoc%20Queries">
|
|
parameterized query</a> from a set of preconfigured parameterized queries
|
|
and offers a form that Peter uses to enter the query parameters.</p>
|
|
|
|
<p>Peter enters a few parameters and issues the query. The ebXML Registry
|
|
returns a large number of <a href=
|
|
"http://ebxmlrr.sourceforge.net/3.0/registryBrowser/discovery.html#Search%20Results%20Panel">
|
|
matching results</a>. Upon viewing the results, Peter issues a more
|
|
specific search to find more relevent information. After several such
|
|
refinements, he has found the concepts that are most relevant to his
|
|
concept. He then <a href=
|
|
"http://ebxmlrr.sourceforge.net/3.0/registryBrowser/browsing.html">drills
|
|
down and browses</a> these concepts, as well as their related concepts and
|
|
metadata, to determine whether to add his new concept.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.1">RDF Graph Pattern
|
|
Matching</a>, <a href="#r3.2">Variable Binding Results</a>, <a href=
|
|
"#r3.12">Streaming Results</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.13" id="u2.13">2.13 Finding Disjunct Conditions
|
|
(Market Research)</a></h3>
|
|
|
|
<p>Lyndie works for a firm that creates market research reports for
|
|
corporations that have contracts with the US federal government. She has
|
|
access to an RDF repository, which contains information about accounting
|
|
firms, corporations, and their customers:</p>
|
|
|
|
<div>
|
|
<pre class="rdf">
|
|
@prefix baf: <http://big-accounting-firm.example/scheme/1.0/#>.
|
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
|
|
|
|
<http://www.pwc.com/> baf:hasName "PriceWaterhouseCoopers"^^xsd:string.
|
|
<http://www.boeing.com/> baf:hasName "Boeing"^^xsd:string.
|
|
<http://www.labor.gov/> baf:hasName "US Department of Labor"^^xsd:string.
|
|
<http://www.pwc.com/> baf:accountsFor <http://www.boeing.com/>.
|
|
<http://www.boeing.com/> baf:hasCustomer <http://www.labor.gov/> .
|
|
</pre><br />
|
|
<span class="rdf-caption">Figure Four: Accounting Repository
|
|
Fragment</span>
|
|
</div>
|
|
|
|
<p>Lyndie wants to query this RDF repository in order to find the names of
|
|
accounting firms that do accounts for suppliers of the Department of Labor
|
|
or that do accounts for the Department of Labor itself.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.13">RDF Graph Pattern
|
|
Matching—Disjunction</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.14" id="u2.14">2.14 Finding Film Soundtracks
|
|
(Data Aggregation)</a></h3>
|
|
|
|
<p>Marty wants to learn which of the ten biggest grossing Hollywood movies
|
|
of all time also had soundtracks among the ten biggest grossing film
|
|
soundtracks of all time. Imagine that some future version of the IMDB site
|
|
exposes its information about movies as RDF. Next, imagine that the
|
|
machine-readable metadata about music at <a href=
|
|
"http://www.musicbrainz.org/MM/">MusicBrainz</a> includes information about
|
|
album sales. Marty then writes a query to find the titles of the ten
|
|
biggest grossing films. He uses the results of that query to query
|
|
MusicBrainz in order to filter the films that did not have top 10
|
|
soundtracks.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#d4.2">Data Integration and
|
|
Aggregation</a> .</p>
|
|
|
|
<h3 class="uc"><a name="u2.15" id="u2.15">2.15 Managing Personal Identity
|
|
(Personal Information Management)</a></h3>
|
|
|
|
<p>Mister X, a professional and anonymous controversialist, manages two
|
|
distinct personae using the <a href="http://xmlns.com/foaf/0.1/">FOAF
|
|
Vocabulary Specification</a>. Mister X maintains three separate
|
|
<code>foaf:PersonalProfileDocument</code> (PPD) documents describing his
|
|
controversial personae. Each profile is available at a different public URI
|
|
on the Web, and each contains RDF statements describing Mister X and his
|
|
personae as distinct resources.</p>
|
|
|
|
<p>Matthias, an enterprising RDF hacker, periodically runs <a href=
|
|
"http://www.hackdiary.com/archives/000030.html">an RDF crawler</a> which
|
|
harvests Mister X's PPDs, keeping track of the source URI for each RDF
|
|
triple together with X's personae resources scope information. Matthias has
|
|
also built a public Web interface to publish the RDF triples resulting from
|
|
the crawling process, together with all the source information associated
|
|
with the harvested RDF triples.</p>
|
|
|
|
<p>A programmer, Johanna, employed by NextBigDeal Inc., is asked to build a
|
|
next generation personal information aggregator which must be able to
|
|
execute RDF queries over Matthias's RDF data. Johanna's application must be
|
|
able to present and redistribute different people's information grouped by
|
|
each persona, as well as by <code>foaf:knows</code> relationships.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#d4.2">Data Integration and
|
|
Aggregation</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.16" id="u2.16">2.16 Customizing Content Delivery
|
|
(Device Independence)</a></h3>
|
|
|
|
<div>
|
|
<pre class="rdf">
|
|
@prefix prf: <http://www.openmobilealliance.org/tech/profiles/uaprof/ccppschema-20021212#HardwarePlatform>.
|
|
@prefix xsd: <http://www.w3.org/2001/XMLSchema#>.
|
|
[]
|
|
prf:BitsPerPixel "8"^^xsd:int ;
|
|
prf:ColorCapable "true"^^xsd:boolean ;
|
|
prf:CPU "Arm 7" ;
|
|
prf:ImageCapable "true"^^xsd:boolean ;
|
|
prf:ScreenSize "101x80" ;
|
|
prf:SoundOutputCapable "false"^^xsd:boolean ;
|
|
prf:Vendor "Panasonic" .
|
|
</pre><br />
|
|
<span class="rdf-caption">Figure Five: Panasonic GD67 Profile
|
|
Fragment</span>
|
|
</div>
|
|
|
|
<p>Hill, an avid motorcycle time trialist, needs directions to the
|
|
racetrack. He uses his Panasonic mobile phone to request a Web resource
|
|
that has directions to the track. His phone includes in its request a URI
|
|
to <a href="http://mobileinternet.panasonicbox.com/UAprof/GD67/04.xml">an
|
|
RDF profile of its capabilities</a>, as well as a diff of its current
|
|
state, which may add to, hide, or override some of the information in the
|
|
standard profile.</p>
|
|
|
|
<p>The origin server must compute the final state of Hill's mobile phone
|
|
profile by dereferencing the URI that identifies the standard profile and
|
|
then applying the device-specific diff. Then, in order to return a
|
|
device-specific representation of the resource Hill requested, the origin
|
|
server issues an RDF query against the device profile graph to determine
|
|
whether to return a color map, a sound file, or plain text directions in
|
|
its response. Since Hill's device is capable of displaying color images,
|
|
the origin server returns a representation of the requested resource which
|
|
includes a link to a color image.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#d4.2">Data Aggregation and
|
|
Integration</a>, <a href="#d4.9">Yes-No Queries</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.17" id="u2.17">2.17 Building Ontology Tools
|
|
(Semantic Web)</a></h3>
|
|
|
|
<p>Aditya, a Semantic Web researcher who specializes in building ontology
|
|
tools, is working on <a href="http://www.mindswap.org/2004/SWOOP/">a new
|
|
hypermedia-influenced ontology editor</a>, which is meant for navigating
|
|
existing and creating new OWL ontologies. Aditya wants to use an RDF query
|
|
language to interact with OWL ontologies in order to do queries like
|
|
finding equivalent classes, subclasses, superclasses, and disjoint classes,
|
|
object and datatype properties, and individuals.</p>
|
|
|
|
<p>Some parts of the ontology editor require the transitive closure of the
|
|
query and other parts do not. Queries for equivalent, sub- and superclasses
|
|
are useful in creating class tree hierarchies, which is a central feature
|
|
in an ontology editor. Constructing a subclass hierarchy allows the
|
|
ontology to support additional queries like finding the nearest common
|
|
ancestor of two classes. Aditya also wants to be able to execute queries to
|
|
find object and datatype properties, as well as individuals, in order to
|
|
provide instance support in the ontology editor; property queries, for
|
|
example, provide slots for frame-centric views.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href=
|
|
"http://www.w3.org/2003/12/swa/dawg-charter#extensibilty">Extensibility
|
|
Mechanism</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.18" id="u2.18">2.18 Working with
|
|
Enterprise Web Services (Web Services)</a></h3>
|
|
|
|
<p>Ryu, a .NET programmer, is tasked with aggregating a wide range of
|
|
data from a variety of enterprise sources, including query results
|
|
from an RDF triple store. All of the data services, including the
|
|
RDF triple store, have WSDL descriptions which Ryu's Visual Studio
|
|
environment reads and presents to him as libraries. Ryu writes
|
|
ordinary code to grab the data from these sources, including data
|
|
results from queries sent to the RDF triple store. He also writes
|
|
code to merge these data together in an application-specific way.
|
|
</p>
|
|
|
|
<p>Eventually Ryu's company decides to change the protocol for
|
|
interacting with the RDF triple store server from pure HTTP to SOAP
|
|
over HTTP. All Ryu has to do is update the WSDL describing the RDF
|
|
triple store, and the rest of his code is unchanged..</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.14">WSDL Protocol</a>.</p>
|
|
|
|
<h3 class="uc"><a name="u2.19" id="u2.19">2.19 Building a Table of
|
|
Contents (Publishing)</a></h3>
|
|
|
|
<p>Leigh, a programmer for a large publishing house, uses RDF to
|
|
store data and metadata about books and journals. Leigh uses RDF
|
|
query language to retrieve the first three articles associated with an issue and
|
|
sort them by page number; to retrieve all issues associated with a
|
|
journal and sort them by publication date; to retrieve the last 10 articles
|
|
bookmarked by a user and sort them by journal name or date
|
|
bookmarked; to retrieve all journals within a subject area and sort
|
|
them by name; and to retrieve all articles written by an author and
|
|
sort them by publication date.</p>
|
|
|
|
<p><strong>Motivates:</strong> <a href="#r3.10">Result Limits</a>, <a href= "#d4.11">Sorting
|
|
Results</a>.</p>
|
|
|
|
<h2 class="req"><a name="req" id="req">3.</a> Requirements</h2>
|
|
|
|
<p>Technical requirements are features or characteristics of either the
|
|
query language or data access protocol (or, in some cases, of both) that
|
|
are expected to be in the specification.</p>
|
|
|
|
<h3 class="req"><a name="r3.1" id="r3.1">3.1 RDF Graph Pattern
|
|
Matching—Conjunction</a></h3>
|
|
|
|
<p>The query language must include the capability to restrict matches on a
|
|
queried graph by providing a graph pattern, which consists of one or more
|
|
RDF triple patterns, to be satisfied in a query.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0385.html">2004-05-11</a>.</p>
|
|
|
|
<h3 class="req"><a name="r3.2" id="r3.2">3.2 Variable Binding
|
|
Results</a></h3>
|
|
|
|
<p>It must be possible for queries to return zero or more bindings of
|
|
variables. Each set of bindings is one way that the query can be satisfied
|
|
by the queried graph.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0385.html">2004-05-11</a>.</p>
|
|
|
|
<h3 class="req"><a name="r3.3" id="r3.3">3.3 Extensible Value
|
|
Testing</a></h3>
|
|
|
|
<p>The query language must make it possible—whether through function calls,
|
|
namespaces, or in some other way—to calculate and test values
|
|
extensibly.</p>
|
|
|
|
<p>Many application domains have specific value testing requirements; for
|
|
example: the concept of "distance" in geospatial data or calculating the
|
|
gravitational attraction of two masses, given their mass and the distance
|
|
between them. Value testing may be more efficient when domain specific
|
|
functions are available for use.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0330.html">2004-05-04</a>.</p>
|
|
|
|
<h3 class="req"><a name="r3.4" id="r3.4">3.4 Subgraph Results</a></h3>
|
|
|
|
<p>It must be possible for query results to be returned as a subgraph of
|
|
the original queried graph.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0641.html">2004-06-15</a></p>
|
|
|
|
<h3 class="req"><a name="r3.5" id="r3.5">3.5 Local Queries</a></h3>
|
|
|
|
<p>The query language must be suitable for use in accessing local RDF
|
|
data—that is, from the same machine or same system process.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0330.html">2004-05-04</a>.</p>
|
|
|
|
<h3 class="req"><a name="r3.6" id="r3.6">3.6 Optional Match</a></h3>
|
|
|
|
<p>It must be possible to express a query that does not fail when some
|
|
specified part of the query fails to match. Any such triples matched by
|
|
this optional part, or variable bindings caused by this optional part, can
|
|
be returned in the results, if requested.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/ftf2">2004-07-15</a>.</p>
|
|
|
|
<h3 class="req"><a name="r3.7" id="r3.7">3.7 Limited Datatype
|
|
Support</a></h3>
|
|
|
|
<p>The query language must include support for a subset of W3C XML Schema
|
|
datatypes and operations on those datatypes.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0385.html">2004-05-11</a>.</p>
|
|
|
|
<h3 class="req"><a name="r3.10" id="r3.10">3.10 Result Limits</a></h3>
|
|
|
|
<p>It must be possible to specify an upper bound on the number of query
|
|
results returned.</p>
|
|
|
|
<p><span class="note">(Note: The Working Group has <a href=
|
|
"http://www.w3.org/Search/Mail/Public/search?keywords=results+limit+sorting&hdr-1-name=subject&hdr-1-query=&index-grp=Public__FULL&index-type=t&type-index=public-rdf-dawg">
|
|
discussed</a> and is aware of the connection between result limits and
|
|
result sorting, as well as the implementation costs of sorting and the
|
|
tradeoffs between client and server computing power per user.)</span></p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/ftf2">2004-07-15</a>.</p>
|
|
|
|
<h3 class="req"><a name="r3.12" id="r3.12">3.12 Streaming Results</a></h3>
|
|
|
|
<p>It must be possible, when returning multiple unordered results, for the
|
|
client to request that results be streamed. When the client requests
|
|
streaming results, all the data in one result must be available to the
|
|
client before all the data for the next result.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-dawg/2004AprJun/0799.html">2004-06-29</a>.</p>
|
|
|
|
<h3 class="req"><a name="r3.13" id="r3.13">3.13 RDF Graph Pattern
|
|
Matching—Disjunction</a></h3>
|
|
|
|
<p>The query language must include the capability to restrict matches on a
|
|
queried graph based on a disjunction of graph patterns, at least one of
|
|
which must be satisfied.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/ftf2">2004-07-16</a>.</p>
|
|
|
|
<h3 class="req"><a name="r3.14" id="r3.14">3.14 WSDL Protocol</a></h3>
|
|
|
|
<p>The protocol -- including its interfaces, their operations, results, and types -- must be described using WSDL.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span>
|
|
<a href="http://www.w3.org/2001/sw/DataAccess/ftf5-bos.html#item_03">2005-02-28</a>>.</p>
|
|
|
|
<h2 class="dobj"><a name="dobj" id="dobj">4.</a> Design Objectives</h2>
|
|
|
|
<p>Design objectives, which may be features or characteristics of the
|
|
eventual design, differ from requirements in that the specification may be
|
|
complete if none, some, or all of them are achieved.</p>
|
|
|
|
<h3 class="do"><a name="d4.1" id="d4.1">4.1 Human-friendly Syntax</a></h3>
|
|
|
|
<p>There must be a text-based form of the query language which can be read
|
|
and written easily by users of the language.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/ftf2">2004-07-15</a>.</p>
|
|
|
|
<h3 class="do"><a name="d4.2" id="d4.2">4.2 Data Integration and
|
|
Aggregation</a></h3>
|
|
|
|
<p>RDF can be used for data integration and aggregation. Often RDF
|
|
repositories are built by merging RDF triples from one or more sources,
|
|
including other RDF repositories or non-RDF data sources converted to RDF.
|
|
Such aggregations can be real or virtual. It is always possible that a
|
|
triple exists in multiple sources.</p>
|
|
|
|
<ol>
|
|
<li>
|
|
<p>It must be possible for the query language and protocol to allow an
|
|
RDF repository to expose the sources of RDF triples.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>It should be possible to constrain a query with regard to the source
|
|
or sources of a triple or triple pattern.</p>
|
|
</li>
|
|
|
|
<li>
|
|
<p>It should be possible for the query language and protocol to allow
|
|
for queries against multiple RDF graphs, including graphs published by
|
|
different repositories. When more than one RDF graph is selected, the
|
|
result is as if the query had been executed against the <a href=
|
|
"http://www.w3.org/TR/rdf-mt/#graphdefs">merge of the selected RDF
|
|
graphs</a>.</p>
|
|
</li>
|
|
</ol>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/ftf3-brs">2004-09-16</a>.</p>
|
|
|
|
<h3 class="do"><a name="d4.3" id="d4.3">4.3 Non-existent Triples</a></h3>
|
|
|
|
<p>It must be possible to query for the non-existence of one or more
|
|
triples or triple patterns in the queried graph.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/ftf2">2004-07-15</a>.</p>
|
|
|
|
<h3 class="do"><a name="d4.7" id="d4.7">4.7 Bandwidth-efficient
|
|
Protocol</a></h3>
|
|
|
|
<p>The access protocol design shall address bandwidth utilization issues;
|
|
that is, it shall allow for at least one result format that does not make
|
|
excessive use of network bandwidth for a given collection of results.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span>.</p>
|
|
|
|
<h3 class="do"><a name="d4.8" id="d4.8">4.8 Literal Search</a></h3>
|
|
|
|
<p>It should be possible for a query to perform substring searches of RDF
|
|
string literals.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/ftf2">2004-07-16</a>.</p>
|
|
|
|
<h3 class="dp"><a name="d4.9" id="d4.9">4.9 Yes-No Queries</a></h3>
|
|
|
|
<p>It must be possible to express yes-no queries directly in the query
|
|
language.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/ftf2">2004-07-15</a>.</p>
|
|
|
|
<h3 class="dp"><a name="d4.10" id="d4.10">4.10 Addressable Query
|
|
Results</a></h3>
|
|
|
|
<p>A common pattern of access is to send a query, <a href=
|
|
"http://www.w3.org/2001/tag/doc/whenToUseGet.html">which is like asking a
|
|
question</a>, to a remote service which evaluates it and returns the answer
|
|
or results. This access pattern fits naturally into the architecture of the
|
|
Web by making query results addressable resources.</p>
|
|
|
|
<p>It must be possible for query results to be addressed in URI space.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/ftf2">2004-07-16</a>.</p>
|
|
|
|
<h3 class="dp"><a name="d4.11" id="d4.11">4.11 Sorting Results</a></h3>
|
|
|
|
<p>Tthe query language should be able to express sort orderings on
|
|
query results.</p>
|
|
|
|
<p><strong>Status:</strong> <span class="accept">Accepted</span> <a
|
|
href=
|
|
"http://lists.w3.org/Archives/Public/public-rdf-dawg/2005JanMar/0358.html">2004-03-15</a>.</p>
|
|
|
|
<h1><a name="relts" id="relts">5. Related Technologies and
|
|
Standards</a></h1>
|
|
|
|
<p>See the survey of existing RDF query language implementations: "<a href=
|
|
"http://www.w3.org/2001/11/13-RDF-Query-Rules/">RDF Query Survey</a>", as
|
|
well as the "<a href=
|
|
"http://www.w3.org/2001/11/13-RDF-Query-Rules/terms">RDF Query and Rules
|
|
Framework</a>".</p>
|
|
|
|
<ul>
|
|
<li><a href="http://www.w3.org/2001/sw/RDFCore/">RDF Core</a></li>
|
|
|
|
<li><a href="http://www.w3.org/2001/sw/WebOnt/">OWL</a></li>
|
|
|
|
<li>SQL-like, rule-like, and path-like RDF query languages</li>
|
|
|
|
<li>SQL</li>
|
|
|
|
<li><a href=
|
|
"http://www.xml.com/pub/a/2001/04/25/prologrdf/">Prolog</a></li>
|
|
|
|
<li><a href="http://www.topicmaps.org/xtm/">XML Topic Maps</a></li>
|
|
|
|
<li><a href="http://www.w3.org/XML/Query">XQuery</a></li>
|
|
|
|
<li><a href="http://www.w3.org/TR/xptr-framework/">XPointer</a></li>
|
|
|
|
<li><a href="http://www.w3.org/2000/xp/Group/">SOAP/XMLP</a> and <a href=
|
|
"http://www.intertwingly.net/stories/2002/07/20/restSoap.html">REST</a></li>
|
|
|
|
<li><a href="http://web.resource.org/rss/1.0/">RDF Site Summary (RSS)
|
|
1.0</a>, <a href="http://blogs.law.harvard.edu/tech/rss">RSS 2.0</a>,
|
|
<a href="http://www.atomenabled.org/developers/api/atom-api-spec.php">The
|
|
Atom API</a>, <a href=
|
|
"http://www.atomenabled.org/developers/syndication/atom-format-spec.php">The
|
|
Atom Syndication Format</a></li>
|
|
|
|
<li><a href="http://www.w3.org/TR/wsdl20/">WSDL 2.0</a>, <a href=
|
|
"http://www.w3.org/TR/xforms/">XForms</a>, <a href=
|
|
"http://www.markbaker.ca/2003/05/RDF-Forms/">RDF Forms</a></li>
|
|
</ul>
|
|
|
|
<h1><a name="ack" id="ack">6. Acknowledgments</a></h1>
|
|
|
|
<p>The editor acknowledges all of the members of the <a href=
|
|
"http://www.w3.org/2001/sw/DataAccess/">Data Access Working Group</a> for
|
|
aid and assistance in preparing the present document, especially Andy
|
|
Seaborne, Yoshio Fukushige, Bryan Thompson, Howard Katz, Dave Beckett, Dan
|
|
Connolly, and Eric Prud'hommeaux. The editor also acknowledges the support
|
|
of his University of Maryland MIND Lab colleagues, especially Bijan Parsia
|
|
and James Hendler.</p>
|
|
|
|
<h1><a name="changes" id="changes">7. Change Log</a></h1>
|
|
|
|
<p>Changes since the <a
|
|
href="http://www.w3.org/TR/2004/WD-rdf-dawg-uc-20040802/">previous
|
|
Oct 2004 draft</a> include:</p>
|
|
|
|
<ul>
|
|
<li>added <a href="#d4.11">4.11 Sorting Results</a> objective and
|
|
supporting use case <a href="#u2.19">2.19 Building a Table of
|
|
Contents (Publishing)</a></li>
|
|
<li>added <a href="#r3.14">3.14 WSDL Protocol</a> requirement and
|
|
supporting use case <a href="#u2.18">2.18 Working with Enterprise
|
|
Web Services (Web Services)</a></li>
|
|
</ul>
|
|
</body>
|
|
</html>
|