- 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