Repurposing Existing Content using Reasoning and Inference

Situation

In recent times we’ve created and published RDF-based installation guides for Virtuoso 8.3 that walk users through the process on a step-by-step basis. The terms used in these guides are from our own Step-By-Guide Ontology.

Recently, Google announced support for a new collection of HowTo-oriented terms in the SchemaOrg vocabulary. This has profound implications on the discoverability of installation guides from the perspective of basic Search Engine Optimization (SEO) and Semantic Search Engine Optimization (SSEO).

Challenge

How do you repurpose existing installation guide content without embarking on a re-write, based on the obvious need to optimize content for search engine discovery?

Solution

Cross-reference terms used in the existing installation guides with newer terms from Schema.org. This is achieved by exploiting terms from either the RDF Schema or OWL Ontologies, since both are specifically designed to handle this kind of challenge.

How?

The following steps provide a “deceptively simple” solution using Virtuoso:

  1. Create a set of relations in Virtuoso that use rdfs:subClassOf and rdfs:subPropertyOf entity relationship types to cross-reference relevant terms across the ontologies

  2. Create a set of relations in Virtuoso that use owl:equivalentClass and owl:equivalentProperty entity relationship types to cross-reference relevant terms across the ontologies

  3. Create a built-in Inference Rule using whichever cross-reference approach you’ve chosen

Having completed the steps above, you can Interact with the original content by leveraging the “context-lenses” provided by the ontology cross-references using SPARQL Query Results or Faceted Browser Pages.

SPARQL Query leveraging RDF Schema Sub Class and Sub Property Reasoning and Inference

DEFINE input:inference 'urn:rdfs:subclass:subproperty:inference:rules'

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bmo: <http://purl.org/bmo/ns#> 
PREFIX fibo: <https://spec.edmcouncil.org/fibo/ontology/FND/AgentsAndPeople/People/Person>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX schema: <http://schema.org/> 
PREFIX opl: <http://www.openlinksw.com/ontology/stepbyguide#> 

SELECT DISTINCT ?s  ?o
WHERE
  { 
    ?s a               schema:HowToStep ;
       schema:position ?o
  }

Live Query Results Page.

SPARQL Query leveraging OWL Equivalent Class and Property Reasoning and Inference

DEFINE input:inference 'urn:owl:equivalent:class:property:inference:rules'

PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX bmo: <http://purl.org/bmo/ns#> 
PREFIX fibo: <https://spec.edmcouncil.org/fibo/ontology/FND/AgentsAndPeople/People/Person>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX schema: <http://schema.org/> 
PREFIX opl: <http://www.openlinksw.com/ontology/stepbyguide#> 

SELECT DISTINCT ?s  ?o
WHERE
  { 
    ?s a               schema:HowToStep ;
       schema:position ?o
  } 

Live Query Results Page.

Conclusion

Rather than re-write existing content, you’ve simply cross-referenced terms across two ontologies via capabilities provided by RDF Schema or OWL en route to saving a lot of time and money with regards to content discoverability and usability.

Related