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:
-
Create a set of relations in Virtuoso that use
rdfs:subClassOf
andrdfs:subPropertyOf
entity relationship types to cross-reference relevant terms across the ontologies -
Create a set of relations in Virtuoso that use
owl:equivalentClass
andowl:equivalentProperty
entity relationship types to cross-reference relevant terms across the ontologies -
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
}
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
}
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.