Constraint Based Validation
Integrity constraints provide a mechanism for ensuring that data conforms to guidelines speciﬁed by the deﬁned schema. The demand for validating instance data as in relational databases or XML tools also holds for knowledge modeled in languages of the Semantic Web.
Fig. 8. Screenshot of conﬁdence score explanation in enrichment view for SPARQL knowledge bases.
In some use cases and for some requirements, OWL users assume and intend OWL axioms to be interpreted as Integrity Constraints. However, the direct semantics of OWL does not interpret OWL axioms in this way; thus, the consequences that one can draw from such ontologies diﬀer from the ones that some users intuitively expect and require. In other words, some users want to use OWL as a validation or constraint language for RDF instance data, but that is not possible using OWL based tools that correctly implement the standard semantics of OWL.
To see the nature of the problem, consider an OWL ontology that describes terms and concepts regarding a book store. The ontology includes the classes Book and Writer, the object property hasAuthor, and the data property hasISBN. Suppose we want to impose the following ICs on the data:
1. Each book must have an ISBN
2. Only books can have ISBNs
3. Books must not have more than one author
These constraints could be interpreted in the following way:
Whenever an instance bookX of Book is added to the ontology, a check should be performed to verify whether the ISBN of bookX has been speciﬁed; if not, the update should be rejected. Whenever a fact <bookX, hasISBN, ISBNX> is added to the ontology, a check should be performed to verify whether bookX is an instance of Book; if not, the update should be rejected. Whenever a fact <bookX, hasAuthor, writerX> is added to the ontology, a check should be performed to verify whether another writer writerY has been speciﬁed for bookX; if so, the update should be rejected. These constraints can be concisely and unambiguously represented as OWL axioms:
However, these axioms will not be interpreted as checks by tools which implement the standard OWL semantics. In fact, according to the standard OWL semantics, we have that:
1. Having a book without an ISBN in the ontology does not raise an error, but leads to the inference that the book in question has an unknown ISBN. (by axiom 1)
2. Having a fact <bookA, hasISBN, ISBN1> in the ontology without bookA being an instance of Book does not raise an error, but leads to the inference that bookA is an instance of Book. (by axiom 2)
3. Having a fact <bookA, hasAuthor, writerA> having speciﬁed a previous writer writerB for bookA does not raise an error, but leads to the inference that writerA and writerB denote the same individual. (by axiom 3)
In some cases, users want these inferences; but in others, users want integrity constraint violations to be detected, reported, repaired, etc.
One approach for using OWL as an expressive schema language, but giving it an alternative semantics such that OWL axioms can be used as ICs, was proposed in . The idea behind it is to interpret OWL axioms with Closed World Assumption (CWA) and a weak form of Unique Name Assumption (UNA). Assuming a CWA interpretation basically means that an assertion is false if it is not explicitly known it is true or false. Weak UNA means that if two individuals are not inferred to be the same, then they will be assumed to be distinct. Based on these assumptions, translating an OWL axiom into one or more SPARQL queries is suggested to validate the given constraint. This approach is integrated in ORE, thus, it is possible to deﬁne and validate ICs by reusing OWL as a language.
Fig. 9. Screenshot of constraint validation view.
Support in ORE
Basically, the constraint validation view (see Fig. 9) consists of two parts. In the upper table (→1 ) the user can deﬁne a list of constraints by adding OWL axioms, here for instance that the object properties birthPlace and team are disjoint, i.e. there are no pairs of instances that are related by both properties. The bottom part (→2 ) is used to visualize violations of the given constraints. In the example on Fig. 9, it was found that Pat Critchley was born in Port Laoise, but also was a team member of it, which is obviously a contradiction to the disjointness statement.
-  w3.org/TR/owl2-direct-semantics/