* 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...
Features (work in progress)
Supports multiple connections from ontologies and relational databases
Designed for large data...
Why Gryphon?
Gryphon, griffin or griffon (Greek: γρύφων, grýphōn, or γρύπων,
grýpōn; Latin: gryphus).
Is a legendary creat...
Gryphon Architecture
SPARQL Query

3rd Party Frameworks

Alignment and Mapping
Query Rewriting

SPARQL Query
SQL Query

AD...
3rd party frameworks used
Jena
http://jena.apache.org
OWL API
http://owlapi.sourceforge.net
D2RQ
http://d2rq.org
Alignment...
Gryphon integration process
1.

Maps the local databases using D2RQ (creates TTL files)

2.

Aligns the global ontology wi...
Practical
Example
Sources used
in this
example
Bibtex
OWL Ontology
http://zeitkunst.org/bibtex/0.1/bibtex.owl

Publication
OWL Ontology
http...
Sources used
in this
example
Bibtex
OWL Ontology
http://zeitkunst.org/bibtex/0.1/bibtex.owl

Publication
OWL Ontology
http...
Sources used
in this
example
Bibtex
OWL Ontology
http://zeitkunst.org/bibtex/0.1/bibtex.owl

Publication
OWL Ontology
http...
Sources used
in this
example
Bibtex
OWL Ontology
http://zeitkunst.org/bibtex/0.1/bibtex.owl

Publication
OWL Ontology
http...
The 4 steps to integration
1.

Set up the Gryphon Framework

2.

Set the global ontology and the local ontologies and data...
Step 1: Set up the framework
GryphonConfig.setWorkingDirectory(Paths.get("alignments"));
GryphonConfig.setAlignmentThresho...
Step 2: Set the sources

OWLOntology globalOnt = new OWLOntology(uriToGlobalOnt);
OWLOntology localOntBibtex = new OWLOnto...
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://...
Putting it all together
GryphonConfig.setWorkingDirectory(Paths.get("alignments"));
GryphonConfig.setAlignmentThreshold(0....
Rewritten queries
Global Ontology (Original query)
SELECT DISTINCT ?x ?y
WHERE {
global_bibtex:author ?x ?y .
}

Local Ont...
Query results
Bibtex Ontology
X

Y

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

"This is tricky due to the fact that or...
Query results
Publication Ontology
X

Y

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

"Resource Author"

<http://www.w3.o...
Next development steps
1.

Query the local databases using D2RQ

2.

Unify the results (convert to components of global on...
That's all folks!

Adriel Café
aac3@cin.ufpe.br
Upcoming SlideShare
Loading in...5
×

Gryphon Framework - Preliminary Results Feb-2014

378
-1

Published on

Preliminary Results from Gryphon Framework in February, 2014

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
378
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
5
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Gryphon Framework - Preliminary Results Feb-2014

  1. 1. * Preliminary Results - February, 2014 ADRIEL CAFÉ AAC3@CIN.UFPE.BR
  2. 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. 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. 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. 5. Gryphon Architecture SPARQL Query 3rd Party Frameworks Alignment and Mapping Query Rewriting SPARQL Query SQL Query ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  6. 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. 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>
  8. 8. Practical Example
  9. 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. 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. 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. 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. 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. 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. 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. 16. Step 3: Align and map Gryphon.alignAndMap(); ADRIEL CAFÉ <AAC3@CIN.UFPE.BR>
  17. 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. 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. 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. 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. 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. 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. 23. That's all folks! Adriel Café aac3@cin.ufpe.br
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×