VirtTipsAndTricksGuideAddisDefinedByRelationsHow to Use SPARQL to add missing isDefinedBy relations to an Ontology?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 } Related Virtuoso Tips and Tricks Collection Virtuoso Documentation