SlideShare uma empresa Scribd logo
1 de 28
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

Mais conteúdo relacionado

Semelhante a NLP Linked Open Data "Is a" Solution

Semelhante 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
 

Mais 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
 

Mais 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

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Último (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

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