- From: Simon Schenk <sschenk@uni-koblenz.de>
- Date: Thu, 18 Oct 2007 09:54:18 +0200
- To: Chris Richard <chris.richard@gmail.com>
- Cc: semantic-web <semantic-web@w3.org>, Sesame Developer discussion list <sesame-devel@lists.sourceforge.net>
- Message-Id: <1192694059.6986.31.camel@lapace01>
> I see the power of views, but I also see potential for expressing > rules. I noticed you have a brief note about this at the project web > site ("... and to define rules (through recursive view definitions).") > but could you give an example of how this would work? Sure. Basically speaking the semantics of Networked Graphs is defined analogously to logic programming as the least fixpoint obtained by repeatedly applying all applicable rules (in our case views). A suitable semantics (The well founded semantics by Gelder) is chosen to deal with non-monotonic negation, so we can guarantee termination. The second example in the public repository mentioned below (graph <http://ex.org/graph2>) contains information about fatherOf relations among 4 persons. Two views on the same graph are included, saying that every father of a person is also an ancestor of this person and every ancestor of the father of a person is also an ancestor of this person. If you go to http://k-sems.uni-koblenz.de:8180/openrdf-workbench, select the default server and the repository called 'networkedGraphs', click 'Query' and then execute the following SPARQL query: SELECT * FROM <http://ex.org/graph2> {?s ?p ?o} you will get the idea. Try this query once with "Include inferred statements" checked and once without. Without inferred statements you will only see the fatherOf relations and the view definitions. Including inferred statements you will also see the transitive closure of the ancestorOf relation. The third example (graph <http://ex.org/graph3>) demonstrates how non-monotonic negation is handled. In this example, no new statements are inferred, because there are two contradicting view definitions. The expressivity of the resulting rule language is quite high - comparable to normal logic programs under the well founded semantics, but with triples only, instead of arbitrary predicates. In fact, we initially defined the semantics through a mapping to logic programs [3], [7]. The implementation is based on a slightly revised semantics, no longer needing this indirection. Best regards, Simon [7]http://www.uni-koblenz.de/~sschenk/publications/2007/KI2007SparqlSemantics.pdf > On 10/17/07, Simon Schenk <sschenk@uni-koblenz.de> wrote: > Dear all, > > I am happy to announce version 0.3 of the Networked Graphs > Sail for the > Sesame2 RDF repository [1], which is available for download at > [2]. > > Networked Graphs are an extension of named graphs, which allow > to define > a graph both extensionally by listing triples (as in named > graphs), but > also intensionally through views. Views are expressed using > SPARQL > queries and are included into graphs using a simple RDF > syntax. To > express that some graph G should contain the results of a > query Q, we > simply add a statement (G ng:definedBy Q^^ng:Query) to G. > Views can use > negation as failure, just as normal SPARQL queries and can > recursively > depend on each other. The reasoning engine will resolve this > recursion. > A graph can at the same time contain intensionally and > extensionally > defined statements. > > A detailed specification of Networked graphs can be found in > [3]. > > By popular demand this version has a several interesting new > features: > > * Works with Sesame 2.0 beta 6 without any additional > patches (The > formerly needed patches for dataset support have been > integrated > into standard Sesame). > * Supports default dataset (no need for FROM clauses in > views any > more.) Handle with care - this can be resource > intensive, as it > creates views on your whole repository. > * Supports views in the null context. Simply use > ng:NullContext as > subject of your view definitions. > * Does not forbid blank node creation in CONSTRUCT > patterns any > more. Handle with care - this can lead to infinite > models and > hence to infinite recursion in the reasoning engine. > * Fixes all known bugs as of 2007-10-17 > > A Sesame repository for testing purposes is available at [4]. > [4] is a > SPARQL and Sesame HTTP endpoint. It can be queried using any > SPARQL > aware tool. You can query, add and modify data using a Sesame2 > HttpRepository or the openrdf-workbench, which you can access > at [5]. > The repository contains some test data [6]. You will get the > idea of > networked graphs by executing queries like > "SELECT * FROM <http://ex.org/graph2> WHERE {?s ?p ?o}" > with and without including inferred statements. In case > anything gets > broken, simply clear the repository and re-upload the data > from [6]. > > While with this endpoint you still need to collect all > neccessary > graphs before evaluating views, future versions will allow to > transparently forward (sub-)queries to remote SPARQL > endpoints. > > Best regards, > Simon > > [1] http://www.openrdf.org > [2] http://isweb.uni-koblenz.de/Research/NetworkedGraphs > [3] > http://www.uni-koblenz.de/~sschenk/publications/2007/ngtr.pdf > [4]http://k-sems.uni-koblenz.de:8180/openrdf-sesame/repositories/networkedGraphs > [5] http://k-sems.uni-koblenz.de:8180/openrdf-workbench > [6] > http://www.uni-koblenz.de/~sschenk/software/NGTestGraphs.trig > > -- > Simon Schenk | ISWeb | Uni Koblenz-Landau > http://www.uni-koblenz.de/~sschenk > >
Received on Thursday, 18 October 2007 07:54:45 UTC