SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
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
…..
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
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
CONVERT TRIPLES TO
NEW VOCABULARY
Re-link the Linked Data
Ontology
Resource

Category
Resource

Term
skos:broader

rdfs:subClassOf
dcterms:subject

Category
Resource

rdf:type

Ontology
Resource

Structured Hierarchy

Wikipedia Categories

Original Graph from DBPedia.org
Normalize Labels for Search
• http://dbpedia.org/page/United_States
• “united states”
• http://dbpedia.org/ontology/PopulatedPlace
• “populated place”
• http://dbpedia.org/class/yago/CountriesBorderingTheAtlanticOcean
• “countries bordering the atlantic ocean”

• http://dbpedia.org/resource/Category:Former_British_colonies
• “former british colonies”

Term /
Resource

rdfs:label

String:
Label
Update Types to Vulcan Vocabulary
prefix: halo-uri http://halo.vulcan.com/lod/2013/11/isa-vocabulary#
• http://dbpedia.org/page/United_States
• halo-uri:term
• halo-uri:term-id
• http://dbpedia.org/ontology/PopulatedPlace
• halo-uri:rdf-type

• http://dbpedia.org/resource/Category:Former_British_colonies
• halo-uri:wikipedia-category

Term /
Resource

rdf:type

Halo
Vocabulary
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
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
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
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
Ontology
Resource

Category
Resource

Term
skos:broader

rdfs:subClassOf
dcterms:subject

Category
Resource

rdf:type

Ontology
Resource

Structured Hierarchy

Wikipedia Categories

Original Graph from DBPedia.org
EXAMPLE: 1
Query TO and THROUGH rdf:type
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
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
Query TO and THROUGH rdf:type
• Is a “cat” a “mal”?

Cat

Cat

Mammal

halo-uri:isA

halo-uri:isA

?

Anima
l
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>
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"
}
}]
}
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
EXAMPLE: 2
Query TO and THROUGH category
Query TO and THROUGH category
• Is a “cat” an “animal”?

Cat

halo-uri:isA

Invasive animal
species

Animals described in
1758

Domesticated
animals
Searches are Returned with Triples
"triples":[{
"s":"http://dbpedia.org/resource/Cat",
"p":"http://halo.vulcan.com/lod/2013/11/isa-vocabulary#isA",
"o":"http://dbpedia.org/resource/Category:Invasive_animal_species",
"search":{
"p":"http://www.w3.org/2000/01/rdf-schema#label",
"o":"invasive animal species"
}
},{
"s":"http://dbpedia.org/resource/Cat",
"p":"http://halo.vulcan.com/lod/2013/11/isa-vocabulary#isA",
"o":"http://dbpedia.org/resource/Category:Animals_described_in_1758",
"search":{
"p":"http://www.w3.org/2000/01/rdf-schema#label",
"o":"animals described in 1758"
}
}]
Query TO and THROUGH rdf:type
• Halo.Vulcan SPARQL : Is a “cat” an “animal”?
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:wikipedia-category .
FILTER (regex(str(?termLabel), '^cat$', 'i')) .
FILTER (regex(str(?domainLabel), ‟animal', 'i'))
}} LIMIT 100
ADDITIONAL SERVICES
More graphs, flexible service points, and
unexpected features…
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
“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
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?
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

Más contenido relacionado

Similar a NLP Linked Open Data "Is a" Solution

Similar a NLP Linked Open Data "Is a" Solution (18)

Schema.org: What It Means For You and Your Library
Schema.org: What It Means For You and Your LibrarySchema.org: What It Means For You and Your Library
Schema.org: What It Means For You and Your Library
 
Lita national forum 2012
Lita national forum 2012Lita national forum 2012
Lita national forum 2012
 
Linked Data - Exposing what we have
Linked Data - Exposing what we haveLinked Data - Exposing what we have
Linked Data - Exposing what we have
 
Bio ontologies and semantic technologies[2]
Bio ontologies and semantic technologies[2]Bio ontologies and semantic technologies[2]
Bio ontologies and semantic technologies[2]
 
Why link?
Why link?Why link?
Why link?
 
Why Link?
Why Link?Why Link?
Why Link?
 
RDF and SPARQL
RDF and SPARQLRDF and SPARQL
RDF and SPARQL
 
Metadata - Linked Data
Metadata - Linked DataMetadata - Linked Data
Metadata - Linked Data
 
From Record to Graph - Exposing a Legacy
From Record to Graph - Exposing a LegacyFrom Record to Graph - Exposing a Legacy
From Record to Graph - Exposing a Legacy
 
Linked data - A radical change?
Linked data - A radical change?Linked data - A radical change?
Linked data - A radical change?
 
Linked data radical change
Linked data   radical changeLinked data   radical change
Linked data radical change
 
Functional Ruby
Functional RubyFunctional Ruby
Functional Ruby
 
Funtional Ruby - Mikhail Bortnyk
Funtional Ruby - Mikhail BortnykFuntional Ruby - Mikhail Bortnyk
Funtional Ruby - Mikhail Bortnyk
 
seevl: Data-driven music discovery
seevl: Data-driven music discoveryseevl: Data-driven music discovery
seevl: Data-driven music discovery
 
Dahlgren PPI
Dahlgren PPIDahlgren PPI
Dahlgren PPI
 
Bio ontologies and semantic technologies
Bio ontologies and semantic technologiesBio ontologies and semantic technologies
Bio ontologies and semantic technologies
 
Search in the Biblical Domain - BibleTech: 2011
Search in the Biblical Domain - BibleTech: 2011Search in the Biblical Domain - BibleTech: 2011
Search in the Biblical Domain - BibleTech: 2011
 
Pragmatic REST: recent trends in API design
Pragmatic REST: recent trends in API designPragmatic REST: recent trends in API design
Pragmatic REST: recent trends in API design
 

Más de William Smith

Streaming HYpothesis REasoning
Streaming HYpothesis REasoningStreaming HYpothesis REasoning
Streaming HYpothesis REasoningWilliam Smith
 
Applied semantic technology and linked data
Applied semantic technology and linked dataApplied semantic technology and linked data
Applied semantic technology and linked dataWilliam Smith
 
AURA Wiki - Knowledge Acquisition with a Semantic Wiki Application
AURA Wiki - Knowledge Acquisition with a Semantic Wiki ApplicationAURA Wiki - Knowledge Acquisition with a Semantic Wiki Application
AURA Wiki - Knowledge Acquisition with a Semantic Wiki ApplicationWilliam Smith
 
LDIF Lightening Talk
LDIF Lightening TalkLDIF Lightening Talk
LDIF Lightening TalkWilliam Smith
 
SMWCon 2012 Linked Data Visualizations
SMWCon 2012 Linked Data VisualizationsSMWCon 2012 Linked Data Visualizations
SMWCon 2012 Linked Data VisualizationsWilliam Smith
 
Allen Institute Neurowiki Presentation
Allen Institute Neurowiki PresentationAllen Institute Neurowiki Presentation
Allen Institute Neurowiki PresentationWilliam Smith
 

Más de William Smith (6)

Streaming HYpothesis REasoning
Streaming HYpothesis REasoningStreaming HYpothesis REasoning
Streaming HYpothesis REasoning
 
Applied semantic technology and linked data
Applied semantic technology and linked dataApplied semantic technology and linked data
Applied semantic technology and linked data
 
AURA Wiki - Knowledge Acquisition with a Semantic Wiki Application
AURA Wiki - Knowledge Acquisition with a Semantic Wiki ApplicationAURA Wiki - Knowledge Acquisition with a Semantic Wiki Application
AURA Wiki - Knowledge Acquisition with a Semantic Wiki Application
 
LDIF Lightening Talk
LDIF Lightening TalkLDIF Lightening Talk
LDIF Lightening Talk
 
SMWCon 2012 Linked Data Visualizations
SMWCon 2012 Linked Data VisualizationsSMWCon 2012 Linked Data Visualizations
SMWCon 2012 Linked Data Visualizations
 
Allen Institute Neurowiki Presentation
Allen Institute Neurowiki PresentationAllen Institute Neurowiki Presentation
Allen Institute Neurowiki Presentation
 

Último

Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfinfogdgmi
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1DianaGray10
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...Aggregage
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Adtran
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6DianaGray10
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXTarek Kalaji
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfJamie (Taka) Wang
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxGDSC PJATK
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxUdaiappa Ramachandran
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintMahmoud Rabie
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopBachir Benyammi
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxMatsuo Lab
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfDaniel Santiago Silva Capera
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...DianaGray10
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationIES VE
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAshyamraj55
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesMd Hossain Ali
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Commit University
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7DianaGray10
 

Último (20)

Videogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdfVideogame localization & technology_ how to enhance the power of translation.pdf
Videogame localization & technology_ how to enhance the power of translation.pdf
 
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1UiPath Platform: The Backend Engine Powering Your Automation - Session 1
UiPath Platform: The Backend Engine Powering Your Automation - Session 1
 
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
The Data Metaverse: Unpacking the Roles, Use Cases, and Tech Trends in Data a...
 
Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™Meet the new FSP 3000 M-Flex800™
Meet the new FSP 3000 M-Flex800™
 
UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6UiPath Studio Web workshop series - Day 6
UiPath Studio Web workshop series - Day 6
 
VoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBXVoIP Service and Marketing using Odoo and Asterisk PBX
VoIP Service and Marketing using Odoo and Asterisk PBX
 
201610817 - edge part1
201610817 - edge part1201610817 - edge part1
201610817 - edge part1
 
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
activity_diagram_combine_v4_20190827.pdfactivity_diagram_combine_v4_20190827.pdf
 
Cybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptxCybersecurity Workshop #1.pptx
Cybersecurity Workshop #1.pptx
 
Building AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptxBuilding AI-Driven Apps Using Semantic Kernel.pptx
Building AI-Driven Apps Using Semantic Kernel.pptx
 
Empowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership BlueprintEmpowering Africa's Next Generation: The AI Leadership Blueprint
Empowering Africa's Next Generation: The AI Leadership Blueprint
 
NIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 WorkshopNIST Cybersecurity Framework (CSF) 2.0 Workshop
NIST Cybersecurity Framework (CSF) 2.0 Workshop
 
Introduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptxIntroduction to Matsuo Laboratory (ENG).pptx
Introduction to Matsuo Laboratory (ENG).pptx
 
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdfIaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
IaC & GitOps in a Nutshell - a FridayInANuthshell Episode.pdf
 
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
Connector Corner: Extending LLM automation use cases with UiPath GenAI connec...
 
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve DecarbonizationUsing IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
Using IESVE for Loads, Sizing and Heat Pump Modeling to Achieve Decarbonization
 
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPAAnypoint Code Builder , Google Pub sub connector and MuleSoft RPA
Anypoint Code Builder , Google Pub sub connector and MuleSoft RPA
 
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just MinutesAI Fame Rush Review – Virtual Influencer Creation In Just Minutes
AI Fame Rush Review – Virtual Influencer Creation In Just Minutes
 
Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)Crea il tuo assistente AI con lo Stregatto (open source python framework)
Crea il tuo assistente AI con lo Stregatto (open source python framework)
 
UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7UiPath Studio Web workshop series - Day 7
UiPath Studio Web workshop series - Day 7
 

NLP Linked Open Data "Is a" Solution

  • 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
  • 4. CONVERT TRIPLES TO NEW VOCABULARY Re-link the Linked Data
  • 6. Normalize Labels for Search • http://dbpedia.org/page/United_States • “united states” • http://dbpedia.org/ontology/PopulatedPlace • “populated place” • http://dbpedia.org/class/yago/CountriesBorderingTheAtlanticOcean • “countries bordering the atlantic ocean” • http://dbpedia.org/resource/Category:Former_British_colonies • “former british colonies” Term / Resource rdfs:label String: Label
  • 7. Update Types to Vulcan Vocabulary prefix: halo-uri http://halo.vulcan.com/lod/2013/11/isa-vocabulary# • http://dbpedia.org/page/United_States • halo-uri:term • halo-uri:term-id • http://dbpedia.org/ontology/PopulatedPlace • halo-uri:rdf-type • http://dbpedia.org/resource/Category:Former_British_colonies • halo-uri:wikipedia-category Term / Resource rdf:type Halo Vocabulary
  • 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
  • 13. EXAMPLE: 1 Query TO and THROUGH rdf:type
  • 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
  • 20. EXAMPLE: 2 Query TO and THROUGH category
  • 21. Query TO and THROUGH category • Is a “cat” an “animal”? Cat halo-uri:isA Invasive animal species Animals described in 1758 Domesticated animals
  • 22. Searches are Returned with Triples "triples":[{ "s":"http://dbpedia.org/resource/Cat", "p":"http://halo.vulcan.com/lod/2013/11/isa-vocabulary#isA", "o":"http://dbpedia.org/resource/Category:Invasive_animal_species", "search":{ "p":"http://www.w3.org/2000/01/rdf-schema#label", "o":"invasive animal species" } },{ "s":"http://dbpedia.org/resource/Cat", "p":"http://halo.vulcan.com/lod/2013/11/isa-vocabulary#isA", "o":"http://dbpedia.org/resource/Category:Animals_described_in_1758", "search":{ "p":"http://www.w3.org/2000/01/rdf-schema#label", "o":"animals described in 1758" } }]
  • 23. Query TO and THROUGH rdf:type • Halo.Vulcan SPARQL : Is a “cat” an “animal”? 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:wikipedia-category . FILTER (regex(str(?termLabel), '^cat$', 'i')) . FILTER (regex(str(?domainLabel), ‟animal', 'i')) }} LIMIT 100
  • 24. ADDITIONAL SERVICES More graphs, flexible service points, and unexpected features…
  • 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