ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ Jena API

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Από τη C στη C++ Hy240b project 2014 Phase 1.
Advertisements

Το αλφαριθμητικό (string)
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ RDF – RDFS - SPARQL
RDF – RDFS - SPARQL
Semantic Web Technologies
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
MySQL + Γλώσσα Προγραμματισμού
DATA MINING LECTURE 6 Mixture of Gaussians and the EM algorithm
Μάθημα : Βασικά Στοιχεία της Γλώσσας Java
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Ακαδημαϊκό έτος Εργαστήριο Προγραμματισμού και Επεξεργασίας Πληροφοριών Εισαγωγή στη γλώσσα MathML Αλεξ Καράκος.
Γλωσσική Τεχνολογία Object-Orientation in Python.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πίνακες Κλάσεις και Αντικείμενα.
Φροντηστήριο Διαχείριση Περιεχομένου Παγκόσμιου Ιστού και Γλωσσικά Eργαλεία.
ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ
Αναπαρασταση Γνώσης στον Παγκόσμιο Ιστό
Προγραμματισμός PASCAL Πληροφορική Γ' Λυκείου μέρος γ
Πανεπιστήμιο Ιωαννίνων Ανάκτηση Πληροφορίας Τμήμα Πληροφορικής Ακαδημαϊκό Έτος MapReduce: Simplified Data processing on Large Clusters Φώτης.
Resource Description Framework
Σχεδίαση-Ανάπτυξη Εφαρμογών Πληροφορικής Αντώνιος Συμβώνης, ΕΜΠ, Slide 1 Week 9: Input / Output Εβδομάδα 8: Είσοδος / Έξοδος [Input / Output]
Uniform Resource Locators (URLs) Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World Wide Web) Στη Java,
Πληροφοριακά Συστήματα και Βάσεις Δεδομένων
JAVA και SQL Δαμιανός Χατζηαντωνίου
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Σύνθεση αντικειμένων Παράδειγμα: Τμήμα πανεπιστημίου.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Συνδυασμος foaf - meNow  Η meNow: Status Περιγραφει την κατασταση ενος foaf: Agent σε μια συγκεκριμενη χρονικη στιγμη. Η foaf: Agent κλαση περιλαμβανει.
ΠΕΡΙΓΡΑΦΗ ΓΛΩΣΣΑΣ PYTHON
Προγραμματισμός ΙΙ Διάλεξη #6: Απλές Δομές Ελέγχου Δρ. Νικ. Λιόλιος.
Ολυμπιάδα Πληροφορικής
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Εισαγωγή στη Java II.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Συλλογές Εξαιρέσεις.
SPARQL & JENA. Γενικά JENA : Είναι ένα java framework για τη δημιουργία semantic web Εφαρμογών. Μπορεί να Χρησιμοποιηθει για να δουλέψουμε σε RDF/RDFS,
Google's Google App Engine and Google's Datastore API Andreas Manoli.
1 Εισαγωγή στα Streams Υπάρχουν πάνω από 60 κλάσεις για input/output στο πακέτο Υπάρχουν πάνω από 60 κλάσεις για input/output στο πακέτο java.io.*; java.io.*;
1 Εισαγωγή στη Java Χρήσιμες Διευθύνσεις Χαρακτηριστικά της Java Εργαλεία της Java Εργαλεία της Java Μεταγλώττιση στοιχειωδών εφαρμογών.
ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ Διασύνδεση Java Εφαρμογών με ΒΔ Π. Φιτσιλής 1.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Γενικευμένες κλάσεις Συλλογές.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Περίπτωση χρήσης: Process sale Από την ΠΧ στον κώδικα.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Copy Constructor Deep and Shallow Copies.
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Πολυμορφισμός – Αφηρημένες κλάσεις Interfaces (διεπαφές)
Θεωρία Υπολογισμού Χρονική Πολυπλοκότητα και Μοντέλα.
ΟΣΣ Δεκεμβρίου 2004 Σχεδιασμός Λογισμικού Γλώσσες Προγραμματισμού ΙΙ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΠΑΝΕΠΙΣΤΗΜΙΟ.
Πανεπιστήμιο Κύπρου – Τμήμα Πληροφορικής ΕΠΛ446-Προχωρημένες Βάσεις Δεδομένων Ζωγραφάκης Ιωάννης.
Tomcat Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Κεφάλαιο 11.1 Uniform Resource Locators (URLs). Ορισμός : URL (Uniform Resource Locator): Δείκτης σε μία πηγή πληροφοριών του Παγκοσμίου Ιστού (World.
2η ΟΣΣ – Σύγχρονες μέθοδοι προγραμματισμού - Java
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές.
Οι επεκτάσεις του έργου TOOBIS στις γλώσσες ορισμού και ερωτήσεων του ODMG Κ. Βασιλάκης.
XML Parsing Γιώργος Θάνος Παρασκευή 14 Νοεμβρίου 2008.
Βασικά στοιχεία της Java
COSMOS Cultivate Resilient Smart Objects for Sustainable City Applications COSMOS-Minimal Planner Functionalities; Dependencies, instructions and code.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Προγραμματισμός Εφαρμογών Διαδικτύου
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη.
Εισαγωγή στον Προγ/μό Υπολογιστών
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
ΚΕΦΑΛΑΙΟ 2 ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΤΗΣ JAVA
ΓΛΩΣΣΕΣ & ΕΡΓΑΛΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ
Εισαγωγή στον Προγραμματισμό με Python, ΑΠΘ ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Εισαγωγή στον Προγραμματισμό με Python Εβδομάδα 1: Βασικά στοιχεία.
Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Αθήνας
Διασύνδεση με ΒΔ Web Server Database MySQL MSSQL Oracle PostgreSQL
Databases Θ. Βαρβαρίγου Καθηγήτρια ΕΜΠ Τηλ
Διαχείριση και Εξόρυξη Γνώσης Knowledge Management and Data Mining
Week 9: Input / Output Διάλεξη #16: Είσοδος / Έξοδος [Input / Output]
Ομαδοποίηση αντικειμένων
Μεταγράφημα παρουσίασης:

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ Jena API

Project->Properties …\apache-jena-2.7.4\lib Jena in Netbeans

Τύποι Δεδομένων Model-> Μοντέλο ενος RDF Αρχείου - Γράφος Statement ->Μια Πρόταση {Subject – Predicate - Object} Resource->Πόρος Property->Ιδιότητα RDFNode->Αντικείμενο (Πόρος ή Αλφαριθμητικό) Literal->Αλφαριθμητικό

import com.hp.hpl.jena.rdf.model.*; import com.hp.hpl.jena.vocabulary.*; import com.hp.hpl.jena.query.Query ; import com.hp.hpl.jena.query.QueryExecution ; import com.hp.hpl.jena.query.QueryExecutionFactory ; import com.hp.hpl.jena.query.QueryFactory ; import com.hp.hpl.jena.query.QuerySolution ; import com.hp.hpl.jena.query.ResultSet ; import org.openjena.atlas.io.IndentedWriter ; import com.hp.hpl.jena.util.FileManager; import java.io.*;

Δημιουργία Μοντέλου Model model = ModelFactory.createDefaultModel(); Δημιουργία κενού μοντέλου

Εισαγωγή και εξαγωγή RDF αρχείου InputStream in = FileManager.get().open(inputFileName); model.read(in, ""); model.write(System.out); Εξαγωγή του μοντέλου σε αρχείο(εδώ επιλέγουμε στην οθόνη) Ελέγχει πρώτα αν το RDF μοντέλο είναι valid! Εισαγωγή μοντέλου απο RDF Αρχείο

Προσθήκη Πόρου String uni_uri=" Resource Mitsos = model.createResource(uni_uri+“mitsos"); Property p =model.createProperty(uni_uri,"has_name"); Mitsos.addProperty(RDF.type, " Mitsos.addProperty(p, "Mitsos"); Μερικά γνωστά namespaces όπως το RDF, RDFS κτλ είναι ορισμένα στο: import com.hp.hpl.jena.vocabulary.*; και μπορείτε να τα χρησιμοποιείται απευθείας πχ: RDF.type

Ανάκτηση Πόρου Resource r = model.getResource(" Property p = model.getProperty(" r.getNameSpace();-> r.getLocalName();->book012 RDFNode x(Μπορεί να είναι πόρος ή literal)

Iterators Resource r = model.getResource(" StmtIterator iter = r.listProperties(); while (iter.hasNext()) { Statement stmt = iter.nextStatement(); System.out.print(" " + stmt.getSubject().toString()); System.out.print(" " + stmt.getPredicate().toString()); System.out.println(" " + stmt.getObject().toString()); }  StmtIterator[Iterator for Statements ] Use with:listProperties(), listStatements Get next:Statement s= iter.nextStatement()  ResIterator[Iterator for Resources] Use with:listResourcesWithProperty(p) Get next:Resource r_isbn = iter.nextResource()  NodeIterator[Iterator for Objects (Resources or Literals)] Use with:listObjects(); Get next:RDFNode x=iter.next()

SPARQL Ερωτήματα String queryString = "PREFIX books: PREFIX rdf: SELECT ?novel ?y WHERE {?novel rdf:type ?y}" ; Query query = QueryFactory.create(queryString) ; query.serialize(new IndentedWriter(System.out,true)) ; QueryExecution qexec = QueryExecutionFactory.create(query, model) ; ResultSet rs = qexec.execSelect() ; for ( ; rs.hasNext() ; ) { QuerySolution rb = rs.nextSolution() ; RDFNode x = rb.get("novel") ; RDFNode y = rb.get("y") ; System.out.println(x.toString() ); System.out.print(y.toString() ); }

SPARQL Ερωτήματα String queryString = "PREFIX books: PREFIX rdf: SELECT ?x ?y WHERE {?x ?prop ?y}" ; Query query = QueryFactory.create(queryString) ; query.serialize(new IndentedWriter(System.out,true)) ; QueryExecution qexec = QueryExecutionFactory.create(query, model) ; ResultSet rs = qexec.execSelect() ; for ( ; rs.hasNext() ; ) { QuerySolution rb = rs.nextSolution() ; RDFNode x = rb.get(“x") ; RDFNode y = rb.get("y") ; System.out.println(x.toString() ); if ( y.isLiteral() ){ Literal Str = (Literal)y ; System.out.println(" "+Str) ; } else System.out.print(y.toString() +" ") ; } Εδώ το αντικείμενο ?y μπορεί να είναι resource ή literal. Αν είναι literal το κάνουμε cast σε μεταβλητή τύπου Literal που είναι αλφαριθμητικό και μπορούμε να το εκτυπώσουμε Αν είναι resource εκτυπώνουμε το URI του με την συνάρτηση toString.

Χρήση Μηχανισμού Συμπερασμού InfModel inf = ModelFactory.createRDFSModel(model);

Jena Namespaces Αν δεν δηλωθεί namespace σε κάποια ιδιότητα το Jena API προσθέτει δήλωση με δικά του ονόματα όπως: j.0, j.1 κλπ Προσοχή: Μπορεί να έχετε δηλώσει ένα namespace στο RDF αρχείο με # στο τέλος: πχ: xmlns:uni=" και όταν προσθέσετε μια ιδιότητα το Jena να δημιουργήσει καινούργιο xmlns:j.0= " Η λύση είναι να ορίσετε το namespace με / στο τέλος: xmlns:uni=" Πχ: String uni_uri=" Property p =model.createProperty(uni_uri,"has_name"); Αν δεν έχει δηλωθεί στο αρχείο το « namespace θα δημιουργηθεί δήλωση: xmlns:j.0="