Gryphon Framework - Preliminary Results Feb-2014
Upcoming SlideShare
Loading in...5
×
 

Gryphon Framework - Preliminary Results Feb-2014

on

  • 270 views

Preliminary Results from Gryphon Framework in February, 2014

Preliminary Results from Gryphon Framework in February, 2014

Statistics

Views

Total Views
270
Views on SlideShare
267
Embed Views
3

Actions

Likes
0
Downloads
3
Comments
0

1 Embed 3

http://www.slideee.com 3

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Gryphon Framework - Preliminary Results Feb-2014 Gryphon Framework - Preliminary Results Feb-2014 Presentation Transcript

  • * 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