This document describes Linked Open Data services that provide "is a" relationship queries over normalized DBpedia data. It discusses how DBpedia triples are converted to a new vocabulary and graph structure to support flexible querying of entity types, categories, and hierarchical relationships. Concise XML and JSON responses are returned for queries on specific graphs or across all graphs, with optional triple patterns included.
1. LINKED OPEN DATA
SERVICES
Is a “cat” a “mammal”? … true
Is a “lizard” a “reptile”? … true
Is a “cat” a “reptile”? … false
Is a “lizard” an “animal”? … true
…..
2. Four types of “IS A” query
• Shallow query TO rdf:type: “Cat” is a “Animal”?
• Is a “Cat” -> rdf:type -> http://dbpedia.org/ontology/Animal
• Deep query THROUGH rdf:type: “Cat” is a “Eukaryote”?
• Is a “Cat” -> rdf:type -> http://dbpedia.org/ontology/Animal
• “Animal” -> rdfs:subClassOf -> http://dbpedia.org/ontology/Eukaryote
3. Four types of “IS A” query
• Shallow query TO dcterms:subject: “Cat” is a “Feline”?
• Is a “Cat” -> dcterms:subject ->
http://dbpedia.org/resource/Category:Felines
• Deep query THROUGH dcterms:subject: “Cat” is a
“Felid”?
• Is a “Cat” -> dcterms:subject ->
http://dbpedia.org/resource/Category:Felines
• http://dbpedia.org/resource/Category:Felines -> skos:broader ->
http://dbpedia.org/resource/Category:Felids
8. Add “Is A” Connection for Graphs
prefix: halo-uri http://halo.vulcan.com/lod/2013/11/isa-vocabulary#
• http://dbpedia.org/page/United_States
• halo-uri:isA http://dbpedia.org/ontology/Place
• http://dbpedia.org/page/United_States
• halo-uri:isA http://dbpedia.org/resource/Category:Republic
Term
halo-uri:isA
Type,
Category,
or Graph
9. Add “Is A” Connection for Ontology
prefix: halo-uri http://halo.vulcan.com/lod/2013/11/isa-vocabulary#
• http://dbpedia.org/page/United_States
• halo-uri:isA http://dbpedia.org/ontology/Place
halo-uri:isA
Term
Ontology
Tree
Ontology
Tree
Ontology
Tree
Ontology
Tree
Place
Populated Place
Country
Thing
10. Add “Is A” Connection for Categories
prefix: halo-uri http://halo.vulcan.com/lod/2013/11/isa-vocabulary#
• http://dbpedia.org/page/United_States
• halo-uri:isA http://dbpedia.org/resource/Category:Republic
Term
halo-uri:isA
Category
Tree
Category
Tree
Countries
Republics
“Is A” connections
not applied higher up
category tree
Category
Tree
Political Theories
Category
Tree
Philosophies
11. Search Terms and Context
New Graph with Links to DBPedia.org
Halo
type
Halo
type
Ontology
graph
Halo
label
Term
halo-uri:isA
Halo
type
Category
graph
Custom
graph
replaces
hierarchy
Halo
label
14. Query TO and THROUGH rdf:type
• Is a “cat” a “mammal”?
• Is a “cat an “animal”?
Cat
halo-uri:isA
• Is a “lizard” a “reptile”?
Anima
l
• Is a “lizard” an “animal”?
Lizard
Mammal
halo-uri:isA
Reptile
15. Query TO and THROUGH rdf:type
• Is a “cat” a “reptile”?
• Is a “cat an “animal”?
Cat
halo-uri:isA
Reptile
Cat
halo-uri:isA
Anima
l
16. Query TO and THROUGH rdf:type
• Is a “cat” a “mal”?
Cat
Cat
Mammal
halo-uri:isA
halo-uri:isA
?
Anima
l
17. Query TO and THROUGH rdf:type
• XML: http://halo.vulcan.com:8080/isa/cat/type/animal.xml
• XML: http://halo.vulcan.com:8080/isa/cat/type-graph/animal.xml
<item>
<id>9c5eebf630d626279fa6acbe1f50c9b9</id>
<term>cat</term>
<domain>animal</domain>
<match>true</match>
<triples>
<s>http://dbpedia.org/resource/Cat</s>
<p>http://halo.vulcan.com/lod/2013/11/isa-vocabulary#isA</p>
<o>http://dbpedia.org/ontology/Animal</o>
<search>
<p>http://www.w3.org/2000/01/rdf-schema#label</p>
<o>animal</o>
</search>
</triples>
</item>
18. Query TO and THROUGH rdf:type
• JSON: http://halo.vulcan.com:8080/isa/cat/type/animal.json
• JSON: http://halo.vulcan.com:8080/isa/cat/type-graph/animal.json
{
"id":"9c5eebf630d626279fa6acbe1f50c9b9",
"term":"cat",
"domain":"animal",
"match":true,
"triples":[{
"s":"http://dbpedia.org/resource/Cat",
"p":"http://halo.vulcan.com/lod/2013/11/isa-vocabulary#isA",
"o":"http://dbpedia.org/ontology/Animal",
"search":{
"p":"http://www.w3.org/2000/01/rdf-schema#label",
"o":"animal"
}
}]
}
19. Query TO and THROUGH rdf:type
• Halo.Vulcan SPARQL : Is a “cat” a “mammal”?
PREFIX halo: <http://halo.vulcan.com/lod/2013/11/isa-vocabulary#>
SELECT DISTINCT ?p ?o ?domainLabel WHERE { GRAPH ?G {
?term halo:isA ?o .
?term ?p ?o .
?term <http://www.w3.org/2000/01/rdf-schema#label>
?termLabel .
?o <http://www.w3.org/2000/01/rdf-schema#label>
?domainLabel .
?o rdf:type halo:rdf-type .
FILTER (regex(str(?termLabel), '^cat$', 'i')) .
FILTER (regex(str(?domainLabel), 'mammal', 'i'))
}} LIMIT 100
25. There are 4 graphs in Virtuoso
• http://halo.vulcan.com:8890/conductor/sparql_graph.vspx
• http://halo.vulcan.com:8890/isa/rdf-type
• ~87,069 Triples
• http://halo.vulcan.com:8890/isa/rdf-type-graph
• ~101,823 Triples
• http://halo.vulcan.com:8890/isa/category-type
• ~292,239 Triples
• http://halo.vulcan.com:8890/isa/category-type-graph
• ~560,906 Triples
652,677 NORMALIZED TRIPLES ACROSS
ALL GRAPHS
26. “Find All” Service Points
Why query every instance? Just ask the service for all
relations to a term in a given graph.
• All “is a” matches in rdf-type
• http://halo.vulcan.com:8080/isa/cat/type/.xml
• All “is a” matches in rdf-type graph
• http://halo.vulcan.com:8080/isa/cat/type-graph/.xml
• All “is a” matches in categories
• http://halo.vulcan.com:8080/isa/cat/category/.xml
• All “is a” matches in categories graph
• http://halo.vulcan.com:8080/isa/cat/category-graph/.xml
• All “is a” matches in every graph
• http://halo.vulcan.com:8080/isa/cat/.xml
27. Unanticipated Features
• Absolute matching on domain for “is a” relations
• Add a URL for literal matching and update SPARQL regex
• Spacing and special characters need to be URL encoded
because each call is a „GET‟
• Wikipedia categories are of poor quality
• User defined and often inaccurate
• Very specific: “Animal species described in 1705”
• Cyclical: “Republics -> Countries -> United States -> Republics …
• All paths lead to: Philosophy
• Plural categories make for difficult literal matching and odd “is a”
statements: Is a cat a felines?
28. Example Service URLs
Query rdf-types graph:
• Domain-range Query – http://halo.vulcan.com:8080/isa/cat/type/animal.json
• Term isa * Query – http://halo.vulcan.com:8080/isa/cat/type/.json
Query rdf-types and parents graph:
• Domain-range Query – http://halo.vulcan.com:8080/isa/lizard/type-graph/reptile.json
• Term isa * Query – http://halo.vulcan.com:8080/isa/lizard/type-graph/.json
Query category graph:
• Domain-range Query – http://halo.vulcan.com:8080/isa/cat/category/animal.json
• Term isa * Query – http://halo.vulcan.com:8080/isa/cat/category/.json
Query category and parents graph:
• Domain-range Query – http://halo.vulcan.com:8080/isa/cat/category-graph/animal.json
• Term isa * Query – http://halo.vulcan.com:8080/isa/cat/category-graph/.json
Query all IsA graphs (every associated entity types, categories, and parents):
• Domain-range Query – http://halo.vulcan.com:8080/isa/cat/animal.json
• Term isa * Query – http://halo.vulcan.com:8080/isa/cat/.json