SlideShare a Scribd company logo
1 of 23
* Preliminary Results - February, 2014

ADRIEL CAFÉ
AAC3@CIN.UFPE.BR
Gryphon Framework
Our goal is to simplify the integration process of
ontologies and relational databases
Virtual mediation of SPARQL queries
Based on GAV (Global As View) approach
Developed with Java

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Features (work in progress)
Supports multiple connections from ontologies and relational databases
Designed for large data sources
Align ontologies and map databases automatically
Rewrites SPARQL queries made ​for global ontology in:
◦ SPARQL queries for local ontologies
◦ SQL queries for local databases

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Why Gryphon?
Gryphon, griffin or griffon (Greek: γρύφων, grýphōn, or γρύπων,
grýpōn; Latin: gryphus).
Is a legendary creature with:
◦ The body, tail, and back legs of a lion;
◦ The head and wings of an eagle, and an eagle's talons as its front feet

Because the lion was traditionally considered the king of the beasts and
the eagle the king of birds, the gryphon was thought to be an especially
powerful and majestic creature.

The gryphon creature represents a perfect
union between two distinct races. Bringing to
our context, the Gryphon Framework proposes
a harmonious integration between ontologies
and relational databases.

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Gryphon Architecture
SPARQL Query

3rd Party Frameworks

Alignment and Mapping
Query Rewriting

SPARQL Query
SQL Query

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
3rd party frameworks used
Jena
http://jena.apache.org
OWL API
http://owlapi.sourceforge.net
D2RQ
http://d2rq.org
Alignment API
http://alignapi.gforge.inria.fr

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Gryphon integration process
1.

Maps the local databases using D2RQ (creates TTL files)

2.

Aligns the global ontology with the database mappings using
Alignment API (creates OWL files)

3.

Aligns the global ontology with the local ontologies using Alignment
API (creates OWL files)

4.

Uses the alignment files to rewrite SPARQL queries

5.

Queries the local sources:
1.
2.

6.

Uses Jena to query the local ontologies
Uses D2RQ to rewrite SPARQL queries in SQL queries

Get the queries' results and convert them to global ontology
components (classes, attributes, instances, axioms)

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Practical
Example
Sources used
in this
example
Bibtex
OWL Ontology
http://zeitkunst.org/bibtex/0.1/bibtex.owl

Publication
OWL Ontology
http://ebiquity.umbc.edu/v2.1/ontology/p
ublication.owl

Bibsql
MySQL Database
http://ftp.math.utah.edu/pub/bibsql/

Global Bibtex
OWL Ontology

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Sources used
in this
example
Bibtex
OWL Ontology
http://zeitkunst.org/bibtex/0.1/bibtex.owl

Publication
OWL Ontology
http://ebiquity.umbc.edu/v2.1/ontology/p
ublication.owl

Bibsql
MySQL Database
http://ftp.math.utah.edu/pub/bibsql/

Global Bibtex
OWL Ontology

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Sources used
in this
example
Bibtex
OWL Ontology
http://zeitkunst.org/bibtex/0.1/bibtex.owl

Publication
OWL Ontology
http://ebiquity.umbc.edu/v2.1/ontology/p
ublication.owl

Bibsql
MySQL Database
http://ftp.math.utah.edu/pub/bibsql/

Global Bibtex
OWL Ontology

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Sources used
in this
example
Bibtex
OWL Ontology
http://zeitkunst.org/bibtex/0.1/bibtex.owl

Publication
OWL Ontology
http://ebiquity.umbc.edu/v2.1/ontology/p
ublication.owl

Bibsql
MySQL Database
http://ftp.math.utah.edu/pub/bibsql/

Global Bibtex
OWL Ontology

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>

* We’ll focus in only one domain part
The 4 steps to integration
1.

Set up the Gryphon Framework

2.

Set the global ontology and the local ontologies and databases

3.

Align the ontologies and map the databases

4.

Query the global ontology using SPARQL

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Step 1: Set up the framework
GryphonConfig.setWorkingDirectory(Paths.get("alignments"));
GryphonConfig.setAlignmentThreshold(0.3);
GryphonConfig.setAlignmentFunctions(new AlignmentFunctions[] {
AlignmentFunctions.EQUAL_DISTANCE,
AlignmentFunctions.HAMMING_DISTANCE,
AlignmentFunctions.JARO_MEASURE,
AlignmentFunctions.JARO_WINKLER_MEASURE,
AlignmentFunctions.LEVENSHTEIN_DISTANCE,
AlignmentFunctions.NEEDLEMAN_WUNSCH_2_DISTANCE,
AlignmentFunctions.NEEDLEMAN_WUNSCH_DISTANCE,
AlignmentFunctions.NGRAM_DISTANCE,
AlignmentFunctions.SMOA_DISTANCE,
AlignmentFunctions.SUBSTRING_DISTANCE
});

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Step 2: Set the sources

OWLOntology globalOnt = new OWLOntology(uriToGlobalOnt);
OWLOntology localOntBibtex = new OWLOntology(uriToBibtex);
OWLOntology localOntPublication = new OWLOntology(uriToPublication);
MySQLDatabase localDBBibsql = new MySQLDatabase("localhost", 3306, "root",
“root", "bibsql");
Gryphon.setGlobalOntology(globalOnt);
Gryphon.getLocalOWLOntologies().put("bibtex", localOntBibtex);
Gryphon.getLocalOWLOntologies().put("publication", localOntPublication);
Gryphon.getLocalDatabases().put("bibsql", localDBBibsql);

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Step 3: Align and map

Gryphon.alignAndMap();

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Step 4: Use SPARQL to query

String queryGlobal =
"PREFIX owl: <http://www.w3.org/2002/07/owl#> n"
+ "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> n“
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> n"
+ "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> n"
+ "PREFIX global_bibtex: <http://aac3.cin.ufpe.br/ns/global_bibtex#> n"
+ "SELECT DISTINCT ?x ?y n"
+ "WHERE { global_bibtex:author ?x ?y . }";
Gryphon.query(queryGlobal);

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Putting it all together
GryphonConfig.setWorkingDirectory(Paths.get("alignments"));
GryphonConfig.setAlignmentThreshold(0.3);
GryphonConfig.setAlignmentFunctions(new AlignmentFunctions[] {
// Alignment Functions
});
OWLOntology globalOnt = new OWLOntology(uriToGlobalOnt);
OWLOntology localOntBibtex = new OWLOntology(uriToBibtex);
OWLOntology localOntPublication = new OWLOntology(uriToPublication);
MySQLDatabase localDBBibsql = new MySQLDatabase("localhost", 3306, "root",
“root", "bibsql");
Gryphon.setGlobalOntology(globalOnt);
Gryphon.getLocalOWLOntologies().put("bibtex", localOntBibtex);
Gryphon.getLocalOWLOntologies().put("publication", localOntPublication);
Gryphon.getLocalDatabases().put("bibsql", localDBBibsql); Gryphon.alignAndMap();
String queryGlobal =
"PREFIX owl: <http://www.w3.org/2002/07/owl#> n"
+ "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> n"
+ "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> n"
+ "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> n"
+ "PREFIX global_bibtex: <http://aac3.cin.ufpe.br/ns/global_bibtex#> n"
+ "SELECT DISTINCT ?x ?y n"
+ "WHERE { global_bibtex:author ?x ?y . }";
Gryphon.query(queryGlobal);

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Rewritten queries
Global Ontology (Original query)
SELECT DISTINCT ?x ?y
WHERE {
global_bibtex:author ?x ?y .
}

Local Ontologies and Databases (Rewritten queries)
Bibtex Ontology
SELECT DISTINCT ?x ?y
WHERE {
<http://purl.org/net/nknouf/ns/bibtex#hasAuthor> ?x ?y
}
Publication Ontology
SELECT DISTINCT ?x ?y
WHERE {
<http://ebiquity.umbc.edu/v2.1/ontology/publication.owl#author> ?x ?y
}
Bibsql Database
SELECT DISTINCT ?x ?y
WHERE {
<alignments/dbPublication.ttl#author> ?x ?y
}

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Query results
Bibtex Ontology
X

Y

<http://purl.org/dc/elements/1.1/description>

"This is tricky due to the fact that order is not (generally)
preserved in RDF documents. The problem arises when you
want to have an author list where the order is _extremely_
important. How shall we do that? Perhaps we want to define
"hasPrimaryAuthor", "hasSecondaryAuthor",
"hasTertiaryAuthor", and "hasRemainingAuthors", or
something of that sort. This will be have to given more
thought."

<http://www.w3.org/2000/01/rdf-schema#comment>

"The name(s) of the author(s), in the format described in the
LaTeX book."@en

<http://www.w3.org/2000/01/rdf-schema#label>

"has author"@en

<http://www.w3.org/2000/01/rdf-schema#subPropertyOf>

<http://purl.org/net/nknouf/ns/bibtex#humanCreator>

<http://www.w3.org/2000/01/rdf-schema#range>

<http://www.w3.org/2001/XMLSchema#string>

<http://www.w3.org/2000/01/rdf-schema#domain>

<http://purl.org/net/nknouf/ns/bibtex#Entry>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

<http://www.w3.org/2002/07/owl#DatatypeProperty>

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Query results
Publication Ontology
X

Y

<http://www.w3.org/2000/01/rdf-schema#label>

"Resource Author"

<http://www.w3.org/2000/01/rdf-schema#range>

<http://ebiquity.umbc.edu/v2.1/ontology/person.owl#Person
>

<http://www.w3.org/2000/01/rdf-schema#domain>

<http://ebiquity.umbc.edu/v2.1/ontology/publication.owl#Re
source>

<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>

<http://www.w3.org/2002/07/owl#ObjectProperty>

Bibsql Database
Working on it

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
Next development steps
1.

Query the local databases using D2RQ

2.

Unify the results (convert to components of global ontology)

3.

Improve the alignment and mapping process

4.

Improve the query rewrite algorithm

5.

Test on more biggest and complex sources

ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
That's all folks!

Adriel Café
aac3@cin.ufpe.br

More Related Content

What's hot

Integrated omics analysis pipeline for model organism with Cytoscape, Kozo Ni...
Integrated omics analysis pipeline for model organism with Cytoscape, Kozo Ni...Integrated omics analysis pipeline for model organism with Cytoscape, Kozo Ni...
Integrated omics analysis pipeline for model organism with Cytoscape, Kozo Ni...Kozo Nishida
 
Battle of the Giants round 2
Battle of the Giants round 2Battle of the Giants round 2
Battle of the Giants round 2Rafał Kuć
 
JeeConf 2018 - The anatomy of Spring Data
JeeConf 2018 - The anatomy of Spring DataJeeConf 2018 - The anatomy of Spring Data
JeeConf 2018 - The anatomy of Spring DataMaksym Govorischev
 
API Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFAPI Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFManish Pandit
 
Hadoop with Python
Hadoop with PythonHadoop with Python
Hadoop with PythonDonald Miner
 
Analyse your SEO Data with R and Kibana
Analyse your SEO Data with R and KibanaAnalyse your SEO Data with R and Kibana
Analyse your SEO Data with R and KibanaVincent Terrasi
 
Side by Side with Elasticsearch and Solr
Side by Side with Elasticsearch and SolrSide by Side with Elasticsearch and Solr
Side by Side with Elasticsearch and SolrSematext Group, Inc.
 
Demystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
Demystifying Apache Kafka, once and for all | Jonathan Santilli, SnykDemystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
Demystifying Apache Kafka, once and for all | Jonathan Santilli, SnykHostedbyConfluent
 
IPython Notebook as a Unified Data Science Interface for Hadoop
IPython Notebook as a Unified Data Science Interface for HadoopIPython Notebook as a Unified Data Science Interface for Hadoop
IPython Notebook as a Unified Data Science Interface for HadoopDataWorks Summit
 
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life琛琳 饶
 
Chapter 4 semantic web
Chapter 4 semantic webChapter 4 semantic web
Chapter 4 semantic webR A Akerkar
 
From zero to hero - Easy log centralization with Logstash and Elasticsearch
From zero to hero - Easy log centralization with Logstash and ElasticsearchFrom zero to hero - Easy log centralization with Logstash and Elasticsearch
From zero to hero - Easy log centralization with Logstash and ElasticsearchRafał Kuć
 
Battle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchBattle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchRafał Kuć
 
Solr+Hadoop = Big Data Search
Solr+Hadoop = Big Data SearchSolr+Hadoop = Big Data Search
Solr+Hadoop = Big Data SearchCloudera, Inc.
 
Lisa Johnson at #ICG13: Re-assembly, quality evaluation, and annotation of 67...
Lisa Johnson at #ICG13: Re-assembly, quality evaluation, and annotation of 67...Lisa Johnson at #ICG13: Re-assembly, quality evaluation, and annotation of 67...
Lisa Johnson at #ICG13: Re-assembly, quality evaluation, and annotation of 67...GigaScience, BGI Hong Kong
 
Building your own search engine with Apache Solr
Building your own search engine with Apache SolrBuilding your own search engine with Apache Solr
Building your own search engine with Apache SolrBiogeeks
 
OC Big Data Monthly Meetup #5 - Session 1 - Altiscale
OC Big Data Monthly Meetup #5 - Session 1 - AltiscaleOC Big Data Monthly Meetup #5 - Session 1 - Altiscale
OC Big Data Monthly Meetup #5 - Session 1 - AltiscaleBig Data Joe™ Rossi
 

What's hot (20)

Hadoop bootcamp getting started
Hadoop bootcamp getting startedHadoop bootcamp getting started
Hadoop bootcamp getting started
 
Integrated omics analysis pipeline for model organism with Cytoscape, Kozo Ni...
Integrated omics analysis pipeline for model organism with Cytoscape, Kozo Ni...Integrated omics analysis pipeline for model organism with Cytoscape, Kozo Ni...
Integrated omics analysis pipeline for model organism with Cytoscape, Kozo Ni...
 
Battle of the Giants round 2
Battle of the Giants round 2Battle of the Giants round 2
Battle of the Giants round 2
 
JeeConf 2018 - The anatomy of Spring Data
JeeConf 2018 - The anatomy of Spring DataJeeConf 2018 - The anatomy of Spring Data
JeeConf 2018 - The anatomy of Spring Data
 
API Design Antipatterns - APICon SF
API Design Antipatterns - APICon SFAPI Design Antipatterns - APICon SF
API Design Antipatterns - APICon SF
 
Hadoop with Python
Hadoop with PythonHadoop with Python
Hadoop with Python
 
Analyse your SEO Data with R and Kibana
Analyse your SEO Data with R and KibanaAnalyse your SEO Data with R and Kibana
Analyse your SEO Data with R and Kibana
 
Side by Side with Elasticsearch and Solr
Side by Side with Elasticsearch and SolrSide by Side with Elasticsearch and Solr
Side by Side with Elasticsearch and Solr
 
Kyiv.py #16 october 2015
Kyiv.py #16 october 2015Kyiv.py #16 october 2015
Kyiv.py #16 october 2015
 
Demystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
Demystifying Apache Kafka, once and for all | Jonathan Santilli, SnykDemystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
Demystifying Apache Kafka, once and for all | Jonathan Santilli, Snyk
 
IPython Notebook as a Unified Data Science Interface for Hadoop
IPython Notebook as a Unified Data Science Interface for HadoopIPython Notebook as a Unified Data Science Interface for Hadoop
IPython Notebook as a Unified Data Science Interface for Hadoop
 
Database Homework Help
Database Homework HelpDatabase Homework Help
Database Homework Help
 
How ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps lifeHow ElasticSearch lives in my DevOps life
How ElasticSearch lives in my DevOps life
 
Chapter 4 semantic web
Chapter 4 semantic webChapter 4 semantic web
Chapter 4 semantic web
 
From zero to hero - Easy log centralization with Logstash and Elasticsearch
From zero to hero - Easy log centralization with Logstash and ElasticsearchFrom zero to hero - Easy log centralization with Logstash and Elasticsearch
From zero to hero - Easy log centralization with Logstash and Elasticsearch
 
Battle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearchBattle of the giants: Apache Solr vs ElasticSearch
Battle of the giants: Apache Solr vs ElasticSearch
 
Solr+Hadoop = Big Data Search
Solr+Hadoop = Big Data SearchSolr+Hadoop = Big Data Search
Solr+Hadoop = Big Data Search
 
Lisa Johnson at #ICG13: Re-assembly, quality evaluation, and annotation of 67...
Lisa Johnson at #ICG13: Re-assembly, quality evaluation, and annotation of 67...Lisa Johnson at #ICG13: Re-assembly, quality evaluation, and annotation of 67...
Lisa Johnson at #ICG13: Re-assembly, quality evaluation, and annotation of 67...
 
Building your own search engine with Apache Solr
Building your own search engine with Apache SolrBuilding your own search engine with Apache Solr
Building your own search engine with Apache Solr
 
OC Big Data Monthly Meetup #5 - Session 1 - Altiscale
OC Big Data Monthly Meetup #5 - Session 1 - AltiscaleOC Big Data Monthly Meetup #5 - Session 1 - Altiscale
OC Big Data Monthly Meetup #5 - Session 1 - Altiscale
 

Similar to Gryphon Framework - Preliminary Results Feb-2014

2008 11 13 Hcls Call
2008 11 13 Hcls Call2008 11 13 Hcls Call
2008 11 13 Hcls CallJun Zhao
 
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim DowlingStructured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim DowlingDatabricks
 
#LAWDI Open Context, publishing linked data in archaeology
#LAWDI Open Context, publishing linked data in archaeology#LAWDI Open Context, publishing linked data in archaeology
#LAWDI Open Context, publishing linked data in archaeologyekansa
 
Introduction to BioHackathon 2014
Introduction to BioHackathon 2014Introduction to BioHackathon 2014
Introduction to BioHackathon 2014Toshiaki Katayama
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeAdriel Café
 
2nd Proj. Update: Integrating SWI-Prolog for Semantic Reasoning in Bioclipse
2nd Proj. Update: Integrating SWI-Prolog for Semantic Reasoning in Bioclipse2nd Proj. Update: Integrating SWI-Prolog for Semantic Reasoning in Bioclipse
2nd Proj. Update: Integrating SWI-Prolog for Semantic Reasoning in BioclipseSamuel Lampa
 
Case Study in Linked Data and Semantic Web: Human Genome
Case Study in Linked Data and Semantic Web: Human GenomeCase Study in Linked Data and Semantic Web: Human Genome
Case Study in Linked Data and Semantic Web: Human GenomeDavid Portnoy
 
It's not rocket surgery - Linked In: ALA 2011
It's not rocket surgery - Linked In: ALA 2011It's not rocket surgery - Linked In: ALA 2011
It's not rocket surgery - Linked In: ALA 2011Ross Singer
 
ICAR 2015 Workshop - Nick Provart
ICAR 2015 Workshop - Nick ProvartICAR 2015 Workshop - Nick Provart
ICAR 2015 Workshop - Nick ProvartAraport
 
Bio ontologies and semantic technologies
Bio ontologies and semantic technologiesBio ontologies and semantic technologies
Bio ontologies and semantic technologiesProf. Wim Van Criekinge
 
Finding knowledge, data and answers on the Semantic Web
Finding knowledge, data and answers on the Semantic WebFinding knowledge, data and answers on the Semantic Web
Finding knowledge, data and answers on the Semantic Webebiquity
 
Geography in Linked Ancient World Data
Geography in Linked Ancient World DataGeography in Linked Ancient World Data
Geography in Linked Ancient World Dataparegorios
 
Sharing massive data analysis: from provenance to linked experiment reports
Sharing massive data analysis: from provenance to linked experiment reportsSharing massive data analysis: from provenance to linked experiment reports
Sharing massive data analysis: from provenance to linked experiment reportsGaignard Alban
 
Infinispan,Lucene,Hibername OGM
Infinispan,Lucene,Hibername OGMInfinispan,Lucene,Hibername OGM
Infinispan,Lucene,Hibername OGMJBug Italy
 

Similar to Gryphon Framework - Preliminary Results Feb-2014 (20)

Bio2RDF @ W3C HCLS2009
Bio2RDF @ W3C HCLS2009Bio2RDF @ W3C HCLS2009
Bio2RDF @ W3C HCLS2009
 
2008 11 13 Hcls Call
2008 11 13 Hcls Call2008 11 13 Hcls Call
2008 11 13 Hcls Call
 
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim DowlingStructured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
Structured-Streaming-as-a-Service with Kafka, YARN, and Tooling with Jim Dowling
 
#LAWDI Open Context, publishing linked data in archaeology
#LAWDI Open Context, publishing linked data in archaeology#LAWDI Open Context, publishing linked data in archaeology
#LAWDI Open Context, publishing linked data in archaeology
 
LibreCat::Catmandu
LibreCat::CatmanduLibreCat::Catmandu
LibreCat::Catmandu
 
Introduction to BioHackathon 2014
Introduction to BioHackathon 2014Introduction to BioHackathon 2014
Introduction to BioHackathon 2014
 
SPARQL-DL - Theory & Practice
SPARQL-DL - Theory & PracticeSPARQL-DL - Theory & Practice
SPARQL-DL - Theory & Practice
 
BioSD Tutorial 2014 Editition
BioSD Tutorial 2014 EdititionBioSD Tutorial 2014 Editition
BioSD Tutorial 2014 Editition
 
2nd Proj. Update: Integrating SWI-Prolog for Semantic Reasoning in Bioclipse
2nd Proj. Update: Integrating SWI-Prolog for Semantic Reasoning in Bioclipse2nd Proj. Update: Integrating SWI-Prolog for Semantic Reasoning in Bioclipse
2nd Proj. Update: Integrating SWI-Prolog for Semantic Reasoning in Bioclipse
 
Case Study in Linked Data and Semantic Web: Human Genome
Case Study in Linked Data and Semantic Web: Human GenomeCase Study in Linked Data and Semantic Web: Human Genome
Case Study in Linked Data and Semantic Web: Human Genome
 
4 sesame
4 sesame4 sesame
4 sesame
 
SWT Lecture Session 4 - Sesame
SWT Lecture Session 4 - SesameSWT Lecture Session 4 - Sesame
SWT Lecture Session 4 - Sesame
 
Apache Flink Hands-On
Apache Flink Hands-OnApache Flink Hands-On
Apache Flink Hands-On
 
It's not rocket surgery - Linked In: ALA 2011
It's not rocket surgery - Linked In: ALA 2011It's not rocket surgery - Linked In: ALA 2011
It's not rocket surgery - Linked In: ALA 2011
 
ICAR 2015 Workshop - Nick Provart
ICAR 2015 Workshop - Nick ProvartICAR 2015 Workshop - Nick Provart
ICAR 2015 Workshop - Nick Provart
 
Bio ontologies and semantic technologies
Bio ontologies and semantic technologiesBio ontologies and semantic technologies
Bio ontologies and semantic technologies
 
Finding knowledge, data and answers on the Semantic Web
Finding knowledge, data and answers on the Semantic WebFinding knowledge, data and answers on the Semantic Web
Finding knowledge, data and answers on the Semantic Web
 
Geography in Linked Ancient World Data
Geography in Linked Ancient World DataGeography in Linked Ancient World Data
Geography in Linked Ancient World Data
 
Sharing massive data analysis: from provenance to linked experiment reports
Sharing massive data analysis: from provenance to linked experiment reportsSharing massive data analysis: from provenance to linked experiment reports
Sharing massive data analysis: from provenance to linked experiment reports
 
Infinispan,Lucene,Hibername OGM
Infinispan,Lucene,Hibername OGMInfinispan,Lucene,Hibername OGM
Infinispan,Lucene,Hibername OGM
 

More from Adriel Café

Desenvolvendo aplicativos Android com Kotlin
Desenvolvendo aplicativos Android com KotlinDesenvolvendo aplicativos Android com Kotlin
Desenvolvendo aplicativos Android com KotlinAdriel Café
 
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...Adriel Café
 
Desenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open SourceDesenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open SourceAdriel Café
 
Ontology integration - Heterogeneity, Techniques and more
Ontology integration - Heterogeneity, Techniques and moreOntology integration - Heterogeneity, Techniques and more
Ontology integration - Heterogeneity, Techniques and moreAdriel Café
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-PlatformAdriel Café
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...Adriel Café
 
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"Adriel Café
 

More from Adriel Café (7)

Desenvolvendo aplicativos Android com Kotlin
Desenvolvendo aplicativos Android com KotlinDesenvolvendo aplicativos Android com Kotlin
Desenvolvendo aplicativos Android com Kotlin
 
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
Uma Arquitetura com Implementação para Integração Semântica de Ontologias e B...
 
Desenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open SourceDesenvolvendo para Android com componentes Open Source
Desenvolvendo para Android com componentes Open Source
 
Ontology integration - Heterogeneity, Techniques and more
Ontology integration - Heterogeneity, Techniques and moreOntology integration - Heterogeneity, Techniques and more
Ontology integration - Heterogeneity, Techniques and more
 
Mobile Apps Cross-Platform
Mobile Apps Cross-PlatformMobile Apps Cross-Platform
Mobile Apps Cross-Platform
 
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
FLISOL 2012 - Palestra "Introdução ao Desenvolvimento de Aplicações para o Si...
 
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
2º ETI - Minicurso "Desenvolvendo para Plataforma Android"
 

Recently uploaded

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
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
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
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
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
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
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 

Recently uploaded (20)

Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
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
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
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?
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
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
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 

Gryphon Framework - Preliminary Results Feb-2014

  • 1. * Preliminary Results - February, 2014 ADRIEL CAFÉ AAC3@CIN.UFPE.BR
  • 2. Gryphon Framework Our goal is to simplify the integration process of ontologies and relational databases Virtual mediation of SPARQL queries Based on GAV (Global As View) approach Developed with Java ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 3. Features (work in progress) Supports multiple connections from ontologies and relational databases Designed for large data sources Align ontologies and map databases automatically Rewrites SPARQL queries made ​for global ontology in: ◦ SPARQL queries for local ontologies ◦ SQL queries for local databases ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 4. Why Gryphon? Gryphon, griffin or griffon (Greek: γρύφων, grýphōn, or γρύπων, grýpōn; Latin: gryphus). Is a legendary creature with: ◦ The body, tail, and back legs of a lion; ◦ The head and wings of an eagle, and an eagle's talons as its front feet Because the lion was traditionally considered the king of the beasts and the eagle the king of birds, the gryphon was thought to be an especially powerful and majestic creature. The gryphon creature represents a perfect union between two distinct races. Bringing to our context, the Gryphon Framework proposes a harmonious integration between ontologies and relational databases. ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 5. Gryphon Architecture SPARQL Query 3rd Party Frameworks Alignment and Mapping Query Rewriting SPARQL Query SQL Query ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 6. 3rd party frameworks used Jena http://jena.apache.org OWL API http://owlapi.sourceforge.net D2RQ http://d2rq.org Alignment API http://alignapi.gforge.inria.fr ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 7. Gryphon integration process 1. Maps the local databases using D2RQ (creates TTL files) 2. Aligns the global ontology with the database mappings using Alignment API (creates OWL files) 3. Aligns the global ontology with the local ontologies using Alignment API (creates OWL files) 4. Uses the alignment files to rewrite SPARQL queries 5. Queries the local sources: 1. 2. 6. Uses Jena to query the local ontologies Uses D2RQ to rewrite SPARQL queries in SQL queries Get the queries' results and convert them to global ontology components (classes, attributes, instances, axioms) ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 9. Sources used in this example Bibtex OWL Ontology http://zeitkunst.org/bibtex/0.1/bibtex.owl Publication OWL Ontology http://ebiquity.umbc.edu/v2.1/ontology/p ublication.owl Bibsql MySQL Database http://ftp.math.utah.edu/pub/bibsql/ Global Bibtex OWL Ontology ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 10. Sources used in this example Bibtex OWL Ontology http://zeitkunst.org/bibtex/0.1/bibtex.owl Publication OWL Ontology http://ebiquity.umbc.edu/v2.1/ontology/p ublication.owl Bibsql MySQL Database http://ftp.math.utah.edu/pub/bibsql/ Global Bibtex OWL Ontology ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 11. Sources used in this example Bibtex OWL Ontology http://zeitkunst.org/bibtex/0.1/bibtex.owl Publication OWL Ontology http://ebiquity.umbc.edu/v2.1/ontology/p ublication.owl Bibsql MySQL Database http://ftp.math.utah.edu/pub/bibsql/ Global Bibtex OWL Ontology ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 12. Sources used in this example Bibtex OWL Ontology http://zeitkunst.org/bibtex/0.1/bibtex.owl Publication OWL Ontology http://ebiquity.umbc.edu/v2.1/ontology/p ublication.owl Bibsql MySQL Database http://ftp.math.utah.edu/pub/bibsql/ Global Bibtex OWL Ontology ADRIEL CAFÉ <AAC3@CIN.UFPE.BR> * We’ll focus in only one domain part
  • 13. The 4 steps to integration 1. Set up the Gryphon Framework 2. Set the global ontology and the local ontologies and databases 3. Align the ontologies and map the databases 4. Query the global ontology using SPARQL ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 14. Step 1: Set up the framework GryphonConfig.setWorkingDirectory(Paths.get("alignments")); GryphonConfig.setAlignmentThreshold(0.3); GryphonConfig.setAlignmentFunctions(new AlignmentFunctions[] { AlignmentFunctions.EQUAL_DISTANCE, AlignmentFunctions.HAMMING_DISTANCE, AlignmentFunctions.JARO_MEASURE, AlignmentFunctions.JARO_WINKLER_MEASURE, AlignmentFunctions.LEVENSHTEIN_DISTANCE, AlignmentFunctions.NEEDLEMAN_WUNSCH_2_DISTANCE, AlignmentFunctions.NEEDLEMAN_WUNSCH_DISTANCE, AlignmentFunctions.NGRAM_DISTANCE, AlignmentFunctions.SMOA_DISTANCE, AlignmentFunctions.SUBSTRING_DISTANCE }); ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 15. Step 2: Set the sources OWLOntology globalOnt = new OWLOntology(uriToGlobalOnt); OWLOntology localOntBibtex = new OWLOntology(uriToBibtex); OWLOntology localOntPublication = new OWLOntology(uriToPublication); MySQLDatabase localDBBibsql = new MySQLDatabase("localhost", 3306, "root", “root", "bibsql"); Gryphon.setGlobalOntology(globalOnt); Gryphon.getLocalOWLOntologies().put("bibtex", localOntBibtex); Gryphon.getLocalOWLOntologies().put("publication", localOntPublication); Gryphon.getLocalDatabases().put("bibsql", localDBBibsql); ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 16. Step 3: Align and map Gryphon.alignAndMap(); ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 17. Step 4: Use SPARQL to query String queryGlobal = "PREFIX owl: <http://www.w3.org/2002/07/owl#> n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> n“ + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> n" + "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> n" + "PREFIX global_bibtex: <http://aac3.cin.ufpe.br/ns/global_bibtex#> n" + "SELECT DISTINCT ?x ?y n" + "WHERE { global_bibtex:author ?x ?y . }"; Gryphon.query(queryGlobal); ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 18. Putting it all together GryphonConfig.setWorkingDirectory(Paths.get("alignments")); GryphonConfig.setAlignmentThreshold(0.3); GryphonConfig.setAlignmentFunctions(new AlignmentFunctions[] { // Alignment Functions }); OWLOntology globalOnt = new OWLOntology(uriToGlobalOnt); OWLOntology localOntBibtex = new OWLOntology(uriToBibtex); OWLOntology localOntPublication = new OWLOntology(uriToPublication); MySQLDatabase localDBBibsql = new MySQLDatabase("localhost", 3306, "root", “root", "bibsql"); Gryphon.setGlobalOntology(globalOnt); Gryphon.getLocalOWLOntologies().put("bibtex", localOntBibtex); Gryphon.getLocalOWLOntologies().put("publication", localOntPublication); Gryphon.getLocalDatabases().put("bibsql", localDBBibsql); Gryphon.alignAndMap(); String queryGlobal = "PREFIX owl: <http://www.w3.org/2002/07/owl#> n" + "PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> n" + "PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> n" + "PREFIX xsd: <http://www.w3.org/2001/XMLSchema#> n" + "PREFIX global_bibtex: <http://aac3.cin.ufpe.br/ns/global_bibtex#> n" + "SELECT DISTINCT ?x ?y n" + "WHERE { global_bibtex:author ?x ?y . }"; Gryphon.query(queryGlobal); ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 19. Rewritten queries Global Ontology (Original query) SELECT DISTINCT ?x ?y WHERE { global_bibtex:author ?x ?y . } Local Ontologies and Databases (Rewritten queries) Bibtex Ontology SELECT DISTINCT ?x ?y WHERE { <http://purl.org/net/nknouf/ns/bibtex#hasAuthor> ?x ?y } Publication Ontology SELECT DISTINCT ?x ?y WHERE { <http://ebiquity.umbc.edu/v2.1/ontology/publication.owl#author> ?x ?y } Bibsql Database SELECT DISTINCT ?x ?y WHERE { <alignments/dbPublication.ttl#author> ?x ?y } ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 20. Query results Bibtex Ontology X Y <http://purl.org/dc/elements/1.1/description> "This is tricky due to the fact that order is not (generally) preserved in RDF documents. The problem arises when you want to have an author list where the order is _extremely_ important. How shall we do that? Perhaps we want to define "hasPrimaryAuthor", "hasSecondaryAuthor", "hasTertiaryAuthor", and "hasRemainingAuthors", or something of that sort. This will be have to given more thought." <http://www.w3.org/2000/01/rdf-schema#comment> "The name(s) of the author(s), in the format described in the LaTeX book."@en <http://www.w3.org/2000/01/rdf-schema#label> "has author"@en <http://www.w3.org/2000/01/rdf-schema#subPropertyOf> <http://purl.org/net/nknouf/ns/bibtex#humanCreator> <http://www.w3.org/2000/01/rdf-schema#range> <http://www.w3.org/2001/XMLSchema#string> <http://www.w3.org/2000/01/rdf-schema#domain> <http://purl.org/net/nknouf/ns/bibtex#Entry> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#DatatypeProperty> ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 21. Query results Publication Ontology X Y <http://www.w3.org/2000/01/rdf-schema#label> "Resource Author" <http://www.w3.org/2000/01/rdf-schema#range> <http://ebiquity.umbc.edu/v2.1/ontology/person.owl#Person > <http://www.w3.org/2000/01/rdf-schema#domain> <http://ebiquity.umbc.edu/v2.1/ontology/publication.owl#Re source> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.w3.org/2002/07/owl#ObjectProperty> Bibsql Database Working on it ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 22. Next development steps 1. Query the local databases using D2RQ 2. Unify the results (convert to components of global ontology) 3. Improve the alignment and mapping process 4. Improve the query rewrite algorithm 5. Test on more biggest and complex sources ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  • 23. That's all folks! Adriel Café aac3@cin.ufpe.br