Are there any OWL reasoners that can work across named graphs? If so, how do they fit with SPARQL queries that involve only some of the named graphs thereby restricting some of the possibe inferences? Do any reasoners reason with the named graphs themselves, eg what happens if you say two named graph URIs are owl:sameAs one another?
asked 17 Apr '10, 17:13
( I can only post 5 links per post as a new user, so I will post the rest in the next installment...)
First, you have to say what OWL inference over named graphs means and for that you need a semantics for named graphs. There is no standardized semantics. As a starting point you could assume the semantics in the "Named Graphs, Provenance and Trust" paper [NGPT] but I'm not aware of any discussion or attempted standardization of NG semantics.
If you do mean NGPT then OWL inference and named graphs are orthogonal. OWL inference operates over some ontology which can be represented as a collection of triples. Named graphs are simply a way of naming a set of triples [*].
So in that sense, yes Jena supports OWL inference over named graphs in that you can create a single graph which is a (dynamic) union over those named graphs you want to include and then run inference over it. However, the inference machinery does not see the named graph origins of the triples. In particular none of the Jena rule engines support named graphs directly, premises are only expressible in terms of triples and builtins operating over those triples, not quads (for any of many different interpretations of what quads are).
As to reasoning over named graphs themselves then I'm not sure what inference you are expecting here but if you go by NGPT semantics then nothing much can happen. NGPT explicitly says that the name is a rigid identification of a specific set of triples. The set of triples is fixed, closed, not changeable, not amenable to reasoning over, that's it. So if you asserted ng1 owl:sameAs ng2 then either rdfgraph(ng1) = rdfgraph(ng2) in which you are consistent but haven't learned anything or rdfgraph(ng1) != rdfgraph(ng2) in which case it is inconsistent. Due to the intensional semantics of NGPT then there is a separation between the named graph and the rdfgraph it names so the owl:sameAs does mean that any statements about the named graph resources themselves are carried across, so it isn't a completely pointless exercise, but there's no subtle interplay between those properties and the rdfgraph extension.
This would be a lot easier as an email conversation.
[*] Actually that's oversimplifying. Most applications of named graphs seem to think that the name denotes a collection of triples. In NGPT that's not quite right, you have an abstract thing which is a named graph and each such thing can map to a (unique) name and a collection of triples. Named graphs can have other properties than just their name and rdfgraph.
answered 18 Apr '10, 09:25
This pulls out only the object that is the master key from the graph. This is used in the crypto directory of cwm and is described in great detail in an early paper on Trust by Tim Berners Lee. (that paper was written before foaf+ssl was discovered, and is clearly a lot more difficult to use and understand)
Simon Schenk's Networked Graphs mentioned earlier is a good tool for doing this type of thing with SPARQL. You can think of this as somewhat akin to views on tables in a relational database, except that here you are doing views on a number of graphs, the purpose being perhaps not so much to simplify access to the data, but more to give you access to data that you believe trustworthy (for a purpose). So perhaps you don't want to reason over every ontology you come across. Perhaps you really only want to reason with foaf. In that case you may want to create a networed graph of the foaf ontology and some foaf file, and use that for doing your owl reasoning.
Other tools that do reasoning across graphs are the N3 reasoners such as euler sharp.
This is a great question; and I think one of the biggest open research areas for SemWeb folk, as it links practical data concerns to heavy theory. I've not seen much yet from OWL-aware tools for reasoning about provenance.
Not a direct answer but related --
The biggest Web-scale system I know of that does simple provenance-based inference over microformats (xfn rel=me) and FOAF is Google's social graph API; it's certainly worth a look, as it thinks in simple terms like "if danbri.org says it has the same owner as twitter.com/danbri and vice, versa... that claim is someone more likely to be true; and if @iand and @danbri are reciprocal contacts on Twitter, then [...etc]". http://code.google.com/apis/socialgraph/
So not directly OWL + named graphs, but an indicator of the kind of practical logic that we'll start to see. I think of it as 'claim graph analytics' in that you're trying to figure out a bigger story from multiple descriptions of a situation making competing and/or supporting claims. For example, my self-authored FOAF file might say I worked at W3C until 2005 and have a dc:source link to a W3C-endorsed claim on an Alumni page at w3.org.
my guess is we'll see more from the logic folk on this when we improve the amount of linked data associated strongly with provenance; eg. how could we tell an RDFa page near http://www.w3.org/People/Alumni was really 'from' the organization (rather than written by me, or random others who have access to w3.org). Answering those kinds of questions (with POWDER, with OpenID, with DSig, ...) will give us more useful named graph data, just begging to be reasoned over...
answered 18 Apr '10, 06:14
Doesn't Jena, as per http://bit.ly/dptD0T
"Named Graphs as a Mechanism for Reasoning about Provenance" Rowland Watkins and Denis Nicole
"...Applying Named Graphs to our OWL-DL ontology allowed us to effectively partition metadata which could then be signed using our work on SWP. Each top-level class instance in the Document Provenance ontology is contained in a Named Graph, signed with a digital signature in a Warrant graph. The combination of digital signatures and Description Logic means at its base our online collaborative tool has two levels of internal verification: cryptographically verify the integrity of the our metadata; check the semantic consistency of our metadata using the OWL-DL Class and Property axioms.
"In addition to OWL-DL consistency checking, we have used the Jena inferencing engine because we are able to tailor its inference rules to suit our needs. Custom rules have been used to answer complex queries in our online collaborative tool. Inferences over large semantic datastores is inevitably a slow process; our strategy has been rather than update inferences incrementally, they are run as required since they are re-derivable..."
answered 17 Apr '10, 18:10