SPIN execution plugin in the Protégé
Broadly speaking, inference on the Semantic Web can be characterized by discovering new relationships. On the Semantic Web, data is modeled as a set of (named) relationships between resources. “Inference” means that automatic procedures can generate new relationships based on the data and based on some additional information in the form of a vocabulary, e.g., a set of rules.
The expressive power of OWL is relatively high—equivalent to a decidable fragment of complete First Order Logic. The designers of OWL intentionally kept its expressiveness at that level in order to avoid the high computational complexity of inference. However, in many cases more expressive power than can be achieved with OWL is necessary.
In particular, it has been recognized that OWL has serious limitations with handling complex role inclusions and to achieve some goals, variables are needed, a feature that OWL lacks. In such cases OWL can be supplemented with rules and SPARQL .
SPARQL Protocol and RDF Query Language (SPARQL) is the Semantic Web based query language which extracts and manipulate data stored in the RDF datasets. SPARQL is the W3C recommendation which allow users to get what they need rather than how a particular dataset is organized. SELECT query is the most popular and widely used SPARQL query which extracts the required information from the RDF datasets. However, the topic of this post is the “SPARQL Construct” query, which returns an RDF graph rather than returning a table of resulted values. The SELECT query can only be used to fetch the data which are already stored in our datasets and does not infer/create new knowledge.
In BORHAN team, we have tried to employ the SPARQL Construct queries to infer new information based on the already existed data stored in our ontology, which otherwise are difficult or impossible via DL-rules. For example, the rights that arise for a person after the purchase or sale of a product or the effects that the purchase and sale entails. In future posts we will explain more about the inferential methods used in domains knowledge.