Title: 6. Entwicklung computergesttzter Informationssysteme
1W3C Technical Plenary Boston, 28 February 2005
Named Graphs meet SPARQL
Chris Bizer, Freie Universität Berlin,
GermanyJeremy Carroll, Hewlett-Packard Labs,
UK Pat Hayes, IHMC, USA Patrick Stickler, Nokia,
Finland
2SPARQL Version 20050217
- SELECT ?company ?rating
- WITH localtrustedInformation
localcrawlerMonday localcrawlerTuesday - FROM website1graph1 website1graph2
- website2graph1 website2graph2
- WHERE ( ?g dcpublisher ?name )
- ( ?name tpltrustedBy localMe )
- GRAPH ?g ( ?company finrating ?rating
) ( ?company finsector finbanking )
3RDF Dataset versus Named Graphs
Named Graphs
RDF Dataset
BackgroundGraph
4Agenda
- Implementing Named Graphs
- NG4J Named Graphs API for Jena
- Jena - Multimodel
- TriX and TriG Syntax
- Signing Named Graphs
- Semantic Web Publishing Vocabulary (SWP)
- Use Cases
- Versioning and Provenance
5NG4J Named Graphs API for Jena
- Extension to the Jena semantic web toolkit
- APIs for manipulating sets of Named Graphs
- Memory and database backed storage
- TriQL query language
- Serialization using TriX, TriG and collections of
RDF/XML files - SWP API for signing graphs
- Available under BSD license
6NG4Js APIs
- Named Graph API
- NamedGraph graph graphset.createGraph(graphname)
- graph.add(triple)
- Quad API
- graphset.addQuad(quad)
- Provenance enabled Jena Model API
- Model model graphset.asJenaModel("http//example
.org/defaultgraph") - iterator jenaStatement.listGraphNames()
- provides migration path for existing applications
7TriX
- Straight forward XML serialization of the
abstract syntax - allows the usage of generic XML tools like XSLT
or XQuery
ltTriX xmlns"http//www.w3.org/2004/03/trix/trix-1
/"gt ltgraphgt lturigthttp//www.bizer.de/Informa
tionAboutRichardlt/urigt lttriplegt
lturigthttp//richard.cyganiak.de/foaf.rdfRichardCy
ganiaklt/urigt lturigthttp//xmlns.com/foaf/0.1/
mboxlt/urigt lturigtmailtorichard_at_cyganiak.delt/
urigt lt/triplegt lt/graphgt ltgraphgt
lturigthttp//www.bizer.de/ProvenanceInformationlt/ur
igt lttriplegt lturigthttp//www.bizer.de/Inf
ormationAboutRichardlt/urigt
lturigthttp//purl.org/dc/elements/1.1/authorlt/urigt
ltplainLiteralgtChris Bizerlt/plainLiteralgt
lt/triplegt lt/graphgtlt/TriXgt
8TriG
- based on Turtle, extended with graph naming
_at_prefix dc lthttp//purl.org/dc/elements/1.1/gt .
_at_prefix ex lthttp//www.example.org/vocabulary/gt
. _at_prefix lthttp//www.example.org/exampleDocume
nt/gt . G1 _Monica exname "Monica Murphy"
. _Monica exemail ltmailtomonica_at_murphy.or
ggt. G1 exdisallowedUsage exMarketing
G2 G1 exauthor Chris . G1 exdate
"2003-09-03"xsddate
9TriX, TriG and SPARQL Protocol getGraph()
- GET /qps?graph2.rdfgraph4.rdf HTTP/1.1Accept
text/n3 - GetGraph returns the serialized RDFGraph
identified by OperationTarget or all of the
separately serialized RDFGraphs identifed by
OperationTargetSet Protocol Spec - Accept text/trig
- Avoids redundant transmission of namespace
declarations - Accept application/trix
- Allows the transformation of query results using
XSLT
10SPARQL Protocol getGraph() and Wildcards
- Our experience Repositories quickly fill with
hundreds of graphs. - The query environment may provide the RDF
dataset to be queried. SPARQL Query Language
Spec - Wildcards might also be useful in SPARQL
Protocol. - GET /qps?graph HTTP/1.1
11Publishing with Signatures
- Semantic Web Publishing Vocabulary (SWP-2)
- swpSignatureMethod specifies
- a graph canonicalization method
- a signature method provided by XML Signature
12Publishing with Signatures - Example
- G1 Monica exname "Monica Murphy .
Chris exname "Chris Bizer" . - G1 swpassertedBy G1 . G1
swpauthority _s . - G1 swpsignatureMethod
swpJjcRdfC14N-rsa-sha1 . G1 swpsignature
"..."xsdbase64Binary . _s
foafmbox ltmailtopatrick.stickler_at_nokia.
comgt . _s swpcertificate
"..."xsdbase64Binary
13Publishing with Signatures - Example
- G1 Jeremy exname "Jeremy Carrol"
- G2 Chris exname "Chris Bizer"
- G3 G1 swpassertedBy G3 . G1
swpdigestMethod swpJjcRdfC14N-sha1 . G1
swpdigest "..."xsdbase64Binary . - G2 swpassertedBy G3 . G2
swpdigestMethod swpJjcRdfC14N-sha1 . G2
swpdigest "..."xsdbase64Binary . - G3 swpassertedBy G3 . G3
swpsignatureMethod swpJjcRdfC14N-rsa-sha1.
G3 swpsignature "..."xsdbase64Binary .
G3 swpauthority _s . - _s foafmbox ltmailtopatrick.stickler_at_nokia.c
omgt _s swpcertificate "..."xsdbase64Binary
14NG4J Use Cases
- Gnowsis Semantic Desktop
- Leo Sauermann, DFKI, Germany
- Provenance tracking in a data integration
framework - Source Code Versioning
- Rowland Watkins, University of Southampton, UK
- Relation and provenance tracking of source code
changes - SWED Semantic Web Environmental Directory
- SWAD-Europe, HP Labs and ILRT
- Provenance tracking in a data integration
framework - Ontology Evolution in Live Science
- Chris Catton, University of Oxford, UK
- Tracking of concept evolution and paradigm shifts
- TriQL.P Trust Architecture
- Chris Bizer, Freie Universität Berlin, Germany
- Filtering information using different trust
policies
15So, whats the holy grail?
- Reification ?
- Quads ?
- Named Graphs ?
- RDF Dataset ?
16Thanks -)
- Named Graph Website
- Links to TriX, TriG, TriQL, RDFQ Specs
- http//www.w3.org/2004/03/trix/
- Named Graphs, Provenance and Trust
- Carroll, Bizer, Hayes and Stickler
- http//www.hpl.hp.com/techreports/2004/HPL-2004-57
.html - NG4J - Named Graphs API for Jena
- http//www.wiwiss.fu-berlin.de/suhl/bizer/ng4j/