Networked Graphs[go to overview]
Networked RDF Graphs extend named graphs with a SPARQL based view mechanism. Briefly, a networked graph, among other statements, contains statements describing the graph itself in terms of SPARQL queries against other graphs. The networked graph then contains some explicitly listed content plus statements computed from the views on other graphs.
Why should I use Networked Graphs?
Networked Graphs can be used to reuse RDF data in other graphs, to provide application specific views on RDF data, to structure annotation and to define rules (through recursive view definitions).
Read more about networked graphs in S. Schenk and S. Staab, "Networked Graphs: A Declarative Mechanism for SPARQL Rules, SPARQL Views and RDF Data Integration on the Web," inProceedings of the 17th International World Wide Web Conference, WWW2008, Bejing, China, Bejing, China, 2008.
Where can I get an implementation?
We have implemented a Sesame 2.0 SAIL capable of computing networked graphs. The sourcecode, bugtracking, questions and answers and more are available on launchpad.
If you want to use the Sesame Console to create a Networked Graphs enabled repository you will also need this template file. Place it in your $HOME/.aduna/openrdf-sesame-console/templates folder. Then create a new "ngsail" repository using the console. You will need to modify the scripts in the /bin folder of the SDK to include the new jar in the classpath. Or you can simply use these: Linux/Mac/Unix or Windows.
How do I use it?
If you want graph G in your repository to include the results of some view formulated as a SPARQL query, simply add the statement (G ng:definedBy "your_query"^^ng:Query) to G. The "ng" namespace and the URIs used are defined in the class NetworkedGraphs. Next time you evaluate a query or use RepositoryConnection.getStatements(), the view will be computed. If you would like to define a view in the null context, use ng:NullContext as subject of the "definedBy" statement.
Where is it used?
Uses we know about include the K-Space Project and the Beatnik Semantic Address Book. Networked Graphs form the infrastructure of Semaplorer, which won the Billion Triples Challenge 2009.
If you develop or know any application using Networked Graphs, we would be glad if you let us know.
I want to implement Networked Graphs.
Can use the WSDL specification of the extended SPARQL protocol for Networked Graphs: sparql-extension, sparql-protocol-query, sparql-result, sparql-protocol-types.
Frequently Asked Questions
Q: Is leanness restored after evaluating Networked Graphs?
A: Not neccessarily, depends on the implemententation. In our implementation leanness is not restored.
Q: How does this depart from the semantics of RDf in query answering?
A: Not at all. Already SPARQL does not guarantee anything related to leanness. See section 12.3.2 of the specification.
I still have questions, I have found a bug or I need an additional feature.
If you have questions regarding networked graphs, feel free to contact Simon Schenk.