- From: Simon Schenk <sschenk@uni-koblenz.de>
- Date: Thu, 18 Oct 2007 10:36:14 +0200
- To: Michael Schneider <schneid@fzi.de>
- Cc: Sesame Developer discussion list <sesame-devel@lists.sourceforge.net>, semantic-web <semantic-web@w3.org>
- Message-Id: <1192696574.6986.53.camel@lapace01>
Hi Michael, > >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. > > To see if I correctly understand this idea: Am I allowed to do the following > graph specification: > > G { s p o . } > G ng:definedBy Q1^^ng:Query . > G ng:definedBy Q2^^ng:Query . > > ? And does this mean that G is the UNION of > > * the explicitly defined statement set { s p o . } > * the result set of Q1 > * the result set of Q2 > > ? Yes. Almost correct. If none of Q1 and Q2 uses negation and there are no circular dependencies (i.e. Q1 directly or indirectly depends on G again) you are right. If cycles are used, Q1 and Q2 are applied until a fixpoint is reached. If one or both use negation, it is a bit more complicated. In this case only those statements are inferred, which can be safely assumed to be true at the same time. Let's assume that Joe is a parent of Jane and Q1 is "everybody who is a parent and not a mother is a father" analogously Q2 is "everybody who is a parent and not a father is a mother". In this case, nothing is inferred about the father- or motherhood of Joe. See graph3 in the example data at [1], to get this example in Trig and SPARQL syntax. In my reply to Chris Richard I have explained how you can try the example on the public prototype server. Best regards, Simon
Received on Thursday, 18 October 2007 08:36:25 UTC