1 / 12

(Java) RDF APIs

(Java) RDF APIs. Jan Zemánek KIZI VŠE, Praha. Přehled Java RDF APIs. Jena http://jena.sourceforge.net/ Download http://jena.sourceforge.net/downloads.html JavaDoc http://jena.sourceforge.net/javadoc/ An Introduction to RDF and the Jena RDF API

nelson
Download Presentation

(Java) RDF APIs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. (Java) RDF APIs Jan Zemánek KIZI VŠE, Praha

  2. Přehled Java RDF APIs • Jena • http://jena.sourceforge.net/ • Download • http://jena.sourceforge.net/downloads.html • JavaDoc • http://jena.sourceforge.net/javadoc/ • An Introduction to RDF and the Jena RDF API • http://jena.sourceforge.net/tutorial/RDF_API/ • NG4J (Named Graphs for Jena) • http://www4.wiwiss.fu-berlin.de/bizer/ng4j/ • Sesame • http://www.openrdf.org/ • Open Anzo • http://openanzo.org/ jan.zemanek@gmail.com

  3. Přehled dalších RDF APIs • PHP • RAP - RDF API for PHP • http://www4.wiwiss.fu-berlin.de/bizer/rdfapi/ • ARC RDF Classes for PHP • http://arc.semsol.org/ • Ruby • ActiveRDF • http://www.activerdf.org/ • atd. • více v • Developers Guide to Semantic Web Toolkits for different Programming Languages • http://www4.wiwiss.fu-berlin.de/bizer/toolkits/ jan.zemanek@gmail.com

  4. Modely přístupu • model založený na trojicích: v grafu je sada trojic, které dotazujeme konkrétním vzorem ?s ?p ?o. • model založený na zdrojích: v grafu je sada zdrojů s vlastnostmi jan.zemanek@gmail.com

  5. Dotazování triple-based modelu • Pro dotazování se položí vzor určité trojice a pak se prochází výsledky • find(null, rdf:type, keg:Person) vyústí v sadu všech tvrzení s libovolným předmětem a výše uvedeným p. + o., tj. seznam URIref lidí v prohledávané grafu. • Pro složitější dotazy jsou nutné vnořené dotazy s použitím mezivýsledků jako vstupních dat. • Příklady v článek „Parsování FOAF s PHP“ http://dsic.zapisky.info/RDF/FOAF/parsingWithPHP/ jan.zemanek@gmail.com

  6. Triple-based model – příklad 1. Práce s triple-based modelem v API Jena. „Načtení RDF grafu a vypsání všech trojic.“ String url = „http:// …"; Model model = ModelFactory.createDefaultModel(); model.read(url, null); StmtIterator i = model.listStatements(); While (i.hasNext()) { Statement s = (Statement)i.next(); } jan.zemanek@gmail.com

  7. Triple-based model – příklad 2. „Vypsání všech tvrzení o ‚Ing. Martinu Švihlovi‘.“ Resource rMartinSvihla = model.createResource("http://keg.vse.cz/entities/person#ing-martin-svihla"); StmtIterator i = model.listStatements( new SimpleSelector( rMartinSvihla, null, (RDFNode)null) ) ); while(i.hasNext()) { Statement s = (Statement)i.next(); Property p = s.getPredicate(); Resource o = s.getObject(); } jan.zemanek@gmail.com

  8. Použití dotazovacích jazyků • Dotazovací jazyky umožňují vybrat z RDF grafu tabulku hodnot nebo podgraf. • Jednodušší na použití – hlavně, pokud potřebujete pouze získávat hodnoty (objekty tvrzení) • Nejpoužívanější SPARQL, SeRQL a RDQL jan.zemanek@gmail.com

  9. SPARQL – příklad 1.1 „Výpis jmen lidí a jejich osobních zájmů.“ PREFIX keg: <http://keg.vse.cz/ns/ontology/> SELECT ?completeName ?personalInterests WHERE { ?person keg:completeName ?completeName . ?person keg:personalInterests ?personalInterests . } Jak spustit dotaz v kódu? Příklad … jan.zemanek@gmail.com

  10. SPARQL – příklad 1.2 String sQuery = "PREFIX keg: …"; Query query = QueryFactory.create(sQuery); QueryExecution exQuery = QueryExecutionFactory.create(query, model); try { ResultSet result = exQuery.execSelect(); while (result.hasNext()) { QuerySolution solution = result.nextSolution(); Literal completeName = solution.getLiteral("completeName"); Literal personalInterest = solution.getLiteral("personalInterests"); } } finally { exQuery.close(); } jan.zemanek@gmail.com

  11. SPARQL – příklad 2. „Výpis jmen lidí s titulem ‚Ing.‘.“ PREFIX keg: <http://keg.vse.cz/ns/ontology/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> SELECT ?completeName WHERE { ?person rdf:type keg:Person . ?person keg:completeName ?completeName . FILTER regex( ?completeName, "Ing. " ) . } jan.zemanek@gmail.com

  12. Samostatná úloha Jako zdroj dat použijte soubor: http://keg.vse.cz/4iz440/keg.rdf Pomocí rozhraní Jena a triple-based modelu napiště aplikaci, která z výše zmíněného RDF grafu vypíše jména těch lidí, kteří mají více, jak jednu e-mailovou adresu. Tj. vlastnost keg:email. jan.zemanek@gmail.com

More Related