1.5.62.How to Use SPARQL to add missing isDefinedBy relations to an Ontology?

What?

Using SPARQL to add missing isDefinedBy relations to an Ontology.

Why?

isDefinedBy relations make Ontologies (TBox) more navigable using follow-your-nose pattern. This also makes ABox instance data more discoverable.

How?

Use SPARQL to generate relations that associate Classes and Properties the Ontology that describes them.

Example Using the Ontology for vCards

In this example we will use:

  • Ontology Document URL: http://www.w3.org/2006/vcard/ns ;

  • Ontology URI: http://www.w3.org/2006/vcard/ns# ;

  • A local Named Graph IRI to host SPARQL Update (SPARUL) the new relations.

## Uncomment line below if using Virtuoso and executing SPARQL via iSQL
## or via an ODBC, JDBC, ADO.NET connection

## SPARQL

## Uncomment line (a SPARQL pragma) below if using Virtuoso and there
## isn't a local Named Graph holding triples retrieved from the Ontology URL

## DEFINE get:soft "add"

INSERT INTO <urn:data:qos:vcard>
  { ?s rdfs:isDefinedBy <http://www.w3.org/2006/vcard/ns#> }
FROM <http://www.w3.org/2006/vcard/ns>
WHERE
  {
    ?s a ?o
  }
Example Using the Recorded Media Ontology

In this example we will use:

  • Ontology Document URL: http://www.w3.org/ns/ma-ont ;

  • Ontology URI: http://www.w3.org/ns/ma-ont# ;

  • A local Named Graph IRI to host SPARQL Update (SPARUL) the new relations.

SPARQL
INSERT INTO <urn:data:qos:ma-ont>
  { ?s rdfs:isDefinedBy <http://www.w3.org/ns/ma-ont#> }
FROM <http://www.w3.org/ns/ma-ont>
WHERE
  {
    ?s a ?o
  }