I know that Sesame has some support for semantic inferencing, but I wonder whether Sesame also supports the detection of semantic inconsistencies.
Regarding inferencing, in order to check whether a given RDF graph g infers a triple t, I have used a 'RepositoryConnection' over the graph and checked whether it contains the triple in the form of a 'Statement'. In order to receive non-trivial inferences (i.e., not explicitly asserted statements), the repository connection was build from some reasoning-enabled Sesame repository (OWLIM). So my inference checking function was basically looking like this:
boolean checkInference(RepositoryConnection g, Statement t) {
return g.hasStatement(t, /*withInferred=*/true);
}
The flag "withInferred" has been set to "true" to include non-trivial inferences in the result.
This works actually quite similar to Jena, which allows one to do inference checking by asking for statements contained in an "InfModel". In addition, Jena's InfModel interface contains a method "validate()", which can be implemented to support semantic inconsistency detection. This is, for example, supported by Jena's built-in rule-based OWL reasoners, for instance to find a conflict if the same resource is asserted to be an instance of two disjoint classes.
My question is: Is there any similar standard method in Sesame to report/check inconsistencies? When I was using BigOWLIM 3.4 a couple of months ago, it was able to detect some inconsistencies, but it printed ad-hoc inconsistency information to the log output (to stderr, or such)... just to mention an example of what I am /not/ looking for. :-)