- From: Alberto Reggiori <alberto@asemantics.com>
- Date: Tue, 23 Nov 2004 00:35:44 +0100
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
here is a work in progress proposal to update the DESCRIBE section 10.3
of SPARQL document (partly reworking some text and examples provided by
Andy et al.)
http://www.w3.org/2001/sw/DataAccess/rq23/
$Revision: 1.139 $ of $Date: 2004/11/22 16:52:02 $
Comments and inputs welcome - I will keep on brainstorming and drafting
more...
============================
10.3 Descriptions of Resources
The RDF model heavily relies on URI identifiers to unambiguously
identify and reference resources being described, together with
properties relating them. While RDF explicitly requires property nodes
to be URI to unambiguously identify their semantics, subject and object
nodes can also be identified using bNodes. Such bNodes can be
associated with some well-known unambiguous properties (e.g.
foaf:mbox_sha1sum or foaf:homepage) to allow a client to
reference-by-description a certain piece of data.
It is important to note, that independently from the resource
identification method used:
1) multiple overlapping descriptions of a resource from different
sources are possible
2) being the RDF data semi-structured, the definition and
understanding of what actually provides a description of a resource
(piece of data
or unit of information) is carefully left to the application
3) each description of a resource might involve several different
vocabularies which semantics might not be all a priori known
4) each description of a resource might involve several different
related resources
Definition: Description of a resource
It is a representation of a unit of information associated with a
resource which is considered useful in understanding,
accessing, interacting, and/or manipulating that resource itself.
While SPARQL SELECT queries can provide simple descriptions of
resources by matching a well-known set of graph-patterns against a
single Data Graph, it is generally insufficient if it is not possible
to specify the exact shape of the information to be extracted.
The SPARQL DESCRIBE clause (together with its well-defined RDF data
access protocol [1]) provides a more general method to ask an open
question about a certain resource. The resource being inquired can
either be a URI or a bNode referenced-by-description using the WHERE
clause. The results are a single RDF graph containing a description of
the resource. The RDF returned is the choice of the deployment and may
be dependent on the query processor implementation, data source and
local configuration. It should be the useful information the server
has (within security matters outside of SPARQL) about a resource. It
may include information about other resources: the RDF data for a book
may also include details of the author.
For example, asking about <http://www.w3.org> when asking the CVS
server might return information about the version history. Asking the
web server might return traffic statistics.
Sometimes, the client does not know exactly what information to expect
of a source. When browsing the web, of browsing an RDF space, the user
is involved and controls the navigation. One use of SPARQL DESCRIBE is
to grab "meaningful" chunks of the remote RDF Data Graph so that it can
be navigated.
Another use of DESCRIBE could be to provide the I2C method of a URN
DDDS [2] based service, or a more modern getMetadata() method over a
Life Science Identifier URN (LSID) [3] Web service. Finally, DESCRIBE
may be used to locate subgraphs for update or deletion on a given RDF
repository providing a SPARQL interface. Or it might be used to handle
structures like RDF collections and containers, which generally require
ad-hoc complex computations to carry out items identifiers.
A simple query such as
PREFIX ent: <http://myorg.example/employees#>
DESCRIBE ?x WHERE (?x ent:employeeId "1234")
might return a description of the employee and some other potentially
useful details:
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix vcard: <http://www.w3.org/2001/vcard-rdf/3.0> .
@prefix myOrg: <http://myorg.example/employees#> .
_:a myOrg:employeeId "1234" ;
foaf:mbox_sha1sum "ABCD1234" ;
vcard:N
[ vcard:Family "Smith" ;
vcard:Given "John" ] .
foaf:mbox_sha1sum rdf:type owl:InverseFunctionalProperty .
which includes the bNode closure for the vcard vocabulary vcard:N. For
a vocabulary such as FOAF, where the resources are typically bNodes,
returning sufficient information to identify a node such as the
InverseFunctionalProperty foaf:mbox_sha1sum as well information which
as name and other details recorded would be appropriate. In the
example, the match to the WHERE clause was returned but this is not
required.
In the returned graph there is information about one of the properties
that the query server has deemed to be relevant and helpful in further
processing.
DESCRIBE ?x ?y WHERE (?x ns:marriedTo ?y)
When there are multiple resources found, the RDF data for each is
merged into the result graph.
A URI can also be provided directly:
DESCRIBE <http://example.org/>
10.3.1 CBD - Concise Bounded Description
Even though the SPARQL DESCRIBE action is meant to be completely
agnostic to the particular algorithm used by sever to answer the query,
this specification non-normatively recommend where possible to adopt
the CBD - Concise Bounded Description algorithm [
http://www.w3.org/Submission/CBD/ ]. It is in our hope that by widely
adopting the CBD definition about description of a resource, a basic
level of interoperability between different SPARQL services will be
possible.
( here we could perhaps repeat the CBD definition and algorithm from
Patrick W3C Note, perhaps rephrased in term of our spec )
( plus integrate some comments and observations from EricP
http://lists.w3.org/Archives/Public/public-rdf-dawg/2004OctDec/
0017.html )
10.3.2 Basic Cut Algorithm
( this should correspond to the "bNode closure" definition - see "RDF
Objects" paper section 4.3.1 at
http://www.hpl.hp.com/techreports/2002/HPL-2002-315.html as well as
Joseki Fetch data objects http://www.joseki.org/RDF_data_objects.html )
References
[1] SPARQL Protocol for RDF
http://monkeyfist.com/kendall/sparql-protocol-simplex/
[2] Dynamic Delegation Discovery System (DDDS) Part Four: The Uniform
Resource Identifiers (URI) Resolution Application
http://www.ietf.org/rfc/rfc3404.txt
[3] Life Sciences Identifiers
http://www.omg.org/cgi-bin/doc?dtc/04-05-01
Alberto
-
Alberto Reggiori, Senior Partner, R&D @Semantics S.R.L.
alberto@asemantics.com www.asemantics.com
Milan Office, milano@asemantics.com, +39 0332 667092
Received on Monday, 22 November 2004 23:36:03 UTC