Δημοσίευση Δεδομένων Επιστημονικών Δημοσιεύσεων ως Ανοιχτά Διασυνδεδεμένα Δεδομένα. Λιοτήρη Ευαγγελία. Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής

Σχετικά έγγραφα
Διασύνδεση και Άνοιγμα Δεδομένων του Α.Π.Θ. Καραογλάνογλου Κωνσταντίνος Μονάδα Σημασιολογικού Ιστού Α.Π.Θ 18/3/2014

Εργαστήριο Σημασιολογικού Ιστού

Εισαγωγή στο RDF. Το Resource Description Framework (RDF) Σταύρος Πολυβίου

Μεταπτυχιακή Διατριβή

Εργαστήριο Σημασιολογικού Ιστού

Περιεχόμενα. Κατάλογος εικόνων 13. Πρόλογος Το όραμα του Σημασιολογικού Ιστού 19

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ:

Τεχνολογίες RDF για τον Ιστό Δεδοµένων

Διαχείριση, Δημοσίευση και Διάθεση Ανοικτών Εκπαιδευτικών Πόρων

Aναπαράσταση Γνώσης στο Σημασιολογικό Ιστό

Εργαστήριο Σημασιολογικού Ιστού

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

Εργαστήριο Σημασιολογικού Ιστού

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Παρουσίαση της SPARQL με χρήση του Jena Adapter για Oracle. Αρ. Μητρώου: 04/2566

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Διαχείριση Κατανεμημένων Δεδομένων στο. Διαδίκτυο

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15

Ανάπτυξη Οντολογικής Γνώσης για Τεκμηρίωση Οπτικοακουστικού Περιεχομένου ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Π Τ Υ Χ Ι Α Κ Η / Δ Ι Π Λ Ω Μ ΑΤ Ι Κ Η Ε Ρ ΓΑ Σ Ι Α

Μεταδεδομένα στο Ψηφιακό περιβάλλον

Περιεχόμενα. Πρόλογος... xiii

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Π Τ Υ Χ Ι Α Κ Η Ε Ρ ΓΑ Σ Ι Α

Εργαστήριο Σημασιολογικού Ιστού

Σχεδιασμός Βάσεων Δεδομένων

Ενότητα 12 (κεφάλαιο 28) Αρχιτεκτονικές Εφαρμογών

Σημασιολογικός Ιστός RDF(S) OWL Οντολογίες. Pervasive Computing Research Group

Εργαστήριο Σημασιολογικού Ιστού

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

ΟΝΤΟΛΟΓΙΕΣ, ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΔΙΑΚΥΒΕΡΝΗΣΗΣ

Linked Data for the Masses: Η προσέγγιση και το λογισμικό

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ

Σχεδίαση και Ανάπτυξη Ιστότοπων

Εργαστήριο Σημασιολογικού Ιστού

Εργαλεία ανάπτυξης εφαρμογών internet Ι

Οντολογία για την περιγραφή των προσωπικοτήτων της Σάμου, την κατηγοριοποίηση και τις σχέσεις τους

Γραφικό Περιβάλλον Οπτικής Απεικόνισης Οντολογιών RDF Schema στο Σημασιολογικό Ιστό

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό

Διαδίκτυο: δίκτυο διασυνδεμένων δικτύων Ξεκίνησε ως ένα μικρό κλειστό στρατιωτικό δίκτυο, απόρροια του Ψυχρού Πολέμου μεταξύ ΗΠΑ και ΕΣΣΔ.

ΑΝΑΠΤΥΞΗ ΥΠΟΔΟΜΩΝ ΑΝΟΙΚΤΗΣ ΠΡΟΣΒΑΣΗΣ ΙΔΡΥΜΑΤΙΚΟ ΑΠΟΘΕΤΗΡΙΟ «ΟΛΥΜΠΙΑΣ» Διαλειτουργικότητα Ιδρυματικών Αποθετηρίων

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Διαδικτυακές Εφαρμογές Ενότητα 1: JPA

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

Θεωρητική προσέγγιση του Σημασιολογικού Ιστού στο χώρο της πολιτισμικής πληροφορίας: μία πρότυπη εφαρμογή στη βιβλιοθηκονομία

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧ/ΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΕΚΠΟΝΗΣΗ ΕΡΓΑΣΙΑΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΔΥΤΙΚΗΣ ΑΤΤΙΚΗΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Εισαγωγή στην Πληροφορική

Γραφικό Περιβάλλον Μοντελοποίησης Οντολογιών και Μεταδεδοµένων RDF στο Σηµασιολογικό ιαδίκτυο

Σχεδιασµός Ανάπτυξη Οντολογίας

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

Κεφάλαιο 9: Διαδίκτυο, Web 2.0 και Web X.0. Εφαρμογές Πληροφορικής Κεφ. 9 Καραμαούνας Πολύκαρπος 1

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

ΣΥΓΚΡΙΤΙΚΗ ΜΕΛΕΤΗ ΤΕΧΝΟΛΟΓΙΩΝ ΔΙΑΔΙΚΤΥΑΚΩΝ ΥΠΗΡΕΣΙΩΝ ΚΑΙ ΑΞΙΟΛΟΓΗΣΗ ΤΗΣ ΤΕΧΝΟΛΟΓΙΑΣ REST ΠΛΑΣΤΑΡΑΣ ΕΥΡΙΠΙΔΗΣ

Αρχιτεκτονική Συστημάτων Βάσεων Δεδομένων. Κατηγορίες χρηστών ΣΔΒΔ Αρχιτεκτονική ANSI/SPARC Γλώσσες ερωτημάτων Μοντέλα δεδομένων Λειτουργίες ΣΔΒΔ

Εφαρμογές που χρησιμοποιούν το πρότυπο DCAT. Γιάννης Ξυδιάς

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

Ψηφιακή ανάπτυξη. Course Unit #1 : Κατανοώντας τις βασικές σύγχρονες ψηφιακές αρχές Thematic Unit #1 : Τεχνολογίες Web και CMS

Διαχείριση οντολογιών: μελέτη και εμβάθυνση στα βασικά προβλήματα που την αφορούν και παρουσίαση υπαρχουσών βιβλιοθηκών οντολογιών

Διαχείριση Ειδοποιήσεων με Κινητές Συσκευές

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ

Εργαστήριο Σημασιολογικού Ιστού

Π Τ Υ Χ Ι Α Κ Η Ε Ρ Γ Α Σ Ι Α

Ανάκτηση Πληροφορίας

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Αναφορά εργασιών για το τρίμηνο Σεπτέμβριος Νοέμβριος 2012

Παραδοτέο Π.2.1. Υπερχώρος και διαχείριση μοντέλων

ΔΕΛΤΙΟ ΤΥΠΟΥ Open Data Day 2013

Ιστορικοί χάρτες στον Παγκόσμιο Ιστό

ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Ι

Πλοήγηση και Αναζήτηση

Ενιαία Αναζήτηση σε ψηφιακό πολιτιστικό περιεχόμενο

Αναφορά εργασιών για το τρίμηνο Δεκέμβριος 2012 Φεβρουάριος 2013 Όνομα : Μπελούλη Αγάθη

ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΔΙΠΛΩΜΑ ΕΙΔΙΚΕΥΣΗΣ (MSc) στα ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΠΛΩΜΑΤΙKH ΕΡΓΑΣΙΑ

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

Διαδίκτυο είναι ένα σύστημα διασυνδεδεμένων δικτύων και υπολογιστών που απλώνεται σε όλο τον κόσμο και έχουν πρόσβαση σε αυτό εκατομμύρια χρήστες.

Μαλούτα Θεανώ Σελίδα 1

Εισαγωγή στον Παγκόσμιο ιστό και στη γλώσσα Html. Χρ. Ηλιούδης

Orchid: Integrating Schema Mapping and ETL ICDE 2008

Αναφορά εργασιών για το τρίμηνο Σεπτέμβριος Νοέμβριος 2012 Όνομα : Μπελούλη Αγάθη

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

ΑΝΑΛΥΣΗ ΑΠΑΙΤΗΣΕΩΝ ανάλυση απαιτήσεων Σε αυτό το μάθημα θα ασχοληθούμε με : Δημιουργία μοντέλων

Αποθετήρια. Κλειώ Σγουροπούλου. Αριστεία ΕΛ/ΛΑΚ ΤΕΙ Αθήνας

ιαχείριση Γνώσης σε Ενδοεπιχειρισιακά ίκτυα και το ιαδίκτυο (ΗΥ-566)

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΕΡΓΑΛΕΙΑ ΓΙΑ ΤΟ ΔΙΑΔΙΚΤΥΟ

Διασύνδεση Βιβλιογραφικών Αναφορών της DBpedia σε άλλες Βιβλιογραφικές Βάσεις

ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ(M.I.S.)

Διαδικτυακές Εφαρμογές Ενότητα 7: Προσπέλαση ΒΔ με το JDBC

Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική»

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Transcript:

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Δημοσίευση Δεδομένων Επιστημονικών Δημοσιεύσεων ως Ανοιχτά Διασυνδεδεμένα Δεδομένα Λιοτήρη Ευαγγελία Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Σεπτέμβριος 2016 Αυτή η πτυχιακή κατατέθηκε για την απόκτηση Πτυχίου Πληροφορικής

Copyright 2016 Λιοτήρη Ευαγγελία Typeset by the author with the XƎLATEX documentation system. Ημερομηνία κατάθεσης, Σεπτέμβριος 2016. ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Σχολή Θετικών Επιστημών Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης

ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ Δημοσίευση Δεδομένων Επιστημονικών Δημοσιεύσεων ως Ανοιχτά Διασυνδεδεμένα Δεδομένα Λιοτήρη Ευαγγελία ΑΕΜ:1929 Κατεύθυνση:Πληροφοριακά Συστήματα Επιβλέπων Καθηγητής: Βασιλειάδης Νικόλαος Σχολή Θετικών Επιστημών Τμήμα Πληροφορικής Σεπτέμβριος 2016

Περίληψη Αντικείμενο της παρούσας εργασίας είναι η δημοσίευση των Επιστημονικών Δημοσιεύσεων των Μελών ΔΕΠ του τμήματος Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης ως Ανοιχτά Διασυνδεδεμένα Δεδομένα (Linked Open Data). Οι δημοσιεύσεις αυτές είναι διαθέσιμες στο Ιδρυματικό Καταθετήριο Επιστημονικών Εργασιών (ΙΚΕΕ) του μέσα από την πλατφόρμα ψηφιακής βιβλιοθήκης Invenio, η οποία, όμως, δεν παρέχει την δυνατότητα διάθεσης των δεδομένων ως Linked Open Data μέσω ενός SPARQL endpoint, κάτι που είναι απαραίτητο για την πλήρη αξιοποίηση των τεχνολογικών δυνατοτήτων που παρέχει ο Σημασιολογικός Ιστός. Για να διαθέσουμε τα δεδομένα μας στο Semantic Web πρέπει να τα μετατρέψουμε σε RDF μορφή και να τα διαθέσουμε μέσα απο κάποια εφαρμογή που να υποστηρίζει τη διανομή των Linked Open Data. Μερικά από τα πλεονεκτήματα της δημοσιοποίησης των Ανοιχτών Διασυνδεδεμένων δεδομένων είναι ο εύκολος διαμοιρασμός τους, η επεκτασιμότητα τους καθώς και η επαναχρησιμοποίηση τους. Στο πλαίσιο της εργασίας, αναλύεται το θεωρητικό υπόβαθρο και τα εργαλεία που χρησιμοποιήθηκαν για τη μετατροπή των Επιστημονικών Εργασιών σε Διασυνδεδεμένα Δεδομένα καθώς και για τη δημοσίευση τους στο Σημασιολογικό Ιστό, μέσα από την διεύθυνση lod.csd.auth.gr. Η μεθοδολογία που αναπτύχθηκε είναι γενική και μπορεί να χρησιμοποιηθεί για τη μετατροπή και δημοσίευση όλων των επιστημονικών δημοσιεύσεων του ΑΠΘ ή άλλου ιδρύματος, που βασίζεται στην πλατφόρμα Invenio. iii

Abstract Publishing Scientific Papers as Linked Open Data This thesis is about publishing citations of scientific papers authored by the faculty members of the Informatics Department of the Aristotle University of Thessaloniki as Linked Open Data. These papers are currently published on the Institutional Repository (IKEE) website through the digital library platform Invenio, which does not provide a SPARQL endpoint, which is required in order to fully exploit Semantic Web capabilities and technologies for linked data. In order to publish the data on the Semantic web, they must be converted to RDF and be made publicly available through a service that supports queries to linked open data. Some of the benefits of such an infrastructure is the easy sharing of data, their extensibility and their re-usability. In the thesis, the theoretical background is analyzed along with the tools that were used to published the aforementioned data on the Semantic Web, through the lod.csd.auth.gr URL. The developed methodology is general enough to be used for publishing scientific papers of all University Department or any other Universities papers, which are based on the Invenio platform. v

Ευχαριστίες Αρχικά, θέλω να ευχαριστήσω τον επιβλέποντα καθηγητή αυτής της εργασίας, κ. Νικόλαο Βασιλειάδη, για την αμέριστη υποστήριξη και κατανόηση που μου έδειξε, αφιερώνοντας μου απεριόριστο χρόνο και άμεση ανταπόκριση σ όλες τις απορίες μου. Ακόμα, θα ήθελα να ευχαριστήσω την υποψήφια διδάκτορα του τμήματος Πληροφορικής του ΑΠΘ, Χριστίνα Αντωνίου για τις συμβουλές της στη συγγραφή της πτυχιακής εργασίας μου. Επίσης, ευχαριστώ την οικογένεια μου που με υποστήριξε καθ όλη τη διάρκεια των σπουδών μου. vii

Περιεχόμενα Περίληψη Abstract Ευχαριστίες Περιεχόμενα Λίστα Σχημάτων iii v vii ix xiii 1. Εισαγωγή 3 1.0.1. Δομή της εργασίας................... 3 2. Θεωρητικό Υπόβαθρο 5 2.1. Εισαγωγή............................ 5 2.2. Παγκόσμιος Ιστός....................... 5 2.3. Δεδομένα, Πληροφορία και Γνώση............... 6 2.4. Σημασιολογικός Ιστός..................... 7 2.4.1. Αρχιτεκτονική του Σημασιολογικού Ιστού...... 8 2.4.2. Μεταδεδομένα...................... 9 2.5. Μοντέλο Περιγραφής Δεδομένων του Σημασιολογικού Ιστού 9 2.5.1. RDF........................... 10 2.5.2. Συντακτικές αναραστάσεις της RDF.......... 10 2.5.3. RDF/XML....................... 11 2.5.4. RDFa.......................... 12 2.6. Τεχνολογίες του Σημασιολογικού Ιστού........... 13 2.6.1. Oντολογίες....................... 13 2.6.2. Γλώσσες Οντολογιών................. 14 ix

x ΠΕΡΙΕΧΟΜΕΝΑ 2.6.3. RDF Schema...................... 14 2.6.4. Κλάσεις......................... 15 2.6.5. Iδιότητες......................... 16 2.6.6. Web Ontology Language-OWL............ 17 2.6.7. Σύνταξη της γλώσσας................. 18 2.7. SPARQL............................ 19 2.7.1. Βασική Δομή ενός SPARQL ερωτήματος....... 20 2.8. Ανοιχτά Δεδομένα....................... 22 2.9. Διασυνδεδεμένα Δεδομένα................... 24 2.9.1. Διασυνδεδεμένα Ανοιχτά Δεδομένα.......... 25 3. Εργαλεία για την υλοποίηση της εφαρμογής 27 3.1. Εισαγωγή............................ 27 3.1.1. Apache Jena RDF API................ 27 3.1.2. Κατασκευή RDF δεδομένων.............. 28 3.1.3. Prefixes στις RDF εκφράσεις............. 29 3.2. Αναζήτηση σε RDF εκφράσεις και RDF γράφου....... 31 3.2.1. Αναζήτηση σε RDF εκφράσεις............. 31 3.2.2. Αναζήτηση σε RDF γράφο............... 31 3.3. Jena TBD............................ 32 3.4. Apache Jena Fuseki...................... 33 3.4.1. Ξεκινώντας τον Apache Fuseki Server......... 33 3.4.2. Apache Jena Fuseki και Jena TBD.......... 35 3.5. Pubby.............................. 37 3.5.1. Αρχιτεκτονική του Pubby............... 38 3.5.2. Configuration Αρχείο.................. 39 3.6. Οντολογίες που χρησιμοποιήθηκαν............... 41 3.6.1. Dublin Core....................... 42 3.6.2. FaBiO.......................... 43 3.6.3. FOAF.......................... 45

ΠΕΡΙΕΧΟΜΕΝΑ xi 4. Υλοποίηση 47 4.1. Η διατύπωση του προβλήματος................. 47 4.1.1. Προαπαιτήσεις...................... 49 4.1.2. Αρχιτεκτονική Εφαρμογής............... 51 4.1.3. Λήψη Αρχείου...................... 52 4.1.4. Επεξεργασία XML αρχείου σε μορφή Dublin Core.. 52 4.1.5. Κατασκευή επεξεργαστή αρχείου XML........ 53 4.1.6. Μετατροπή των δεδομένων σε Διασυνδεδεμένα Δεδομένα........................... 58 4.1.7. Δημοσίευση των Διασυνδεδεμένων δεδομένων.... 61 5. Συμπεράσματα και Επεκτάσεις 65 Αʹ.Κώδικας 69 Βιβλιογραφία 73

Λίστα Σχημάτων 2.1. Η αναπαράσταση των όρων URI, URL και URN....... 6 2.2. Η διαστρωματωμένη αρχιτεκτονική του Σημασιολογικού Ιστού 8 2.3. Ένα απλό RDF παράδειγμα................... 10 2.4. Αναπαράσταση Οντολογίας................... 13 2.5. Βασικές κλάσεις της RDFS................... 16 2.6. Οι κλάσεις της RDFS...................... 17 2.7. Ένα απλό παράδειγμα OWL2.................. 18 2.8. Η βασική δομή ενός SPARQL ερωτήματος.......... 20 2.9. Αναπαράσταση ενός SPARQL ερωτήματος.......... 21 2.10. Λογότυπο του CERN Open Data............... 23 2.11. Αναπαράσταση γράφου Διασυνδεδεμένων Δεδομένων.... 24 3.1. Γράφος RDF.......................... 30 3.2. Αποτέλεσμα τερματικού..................... 34 3.3. Αρχική σελίδα του Apache Fuseki............... 34 3.4. Σελίδα αναζήτησης της βάσης δεδομένων του Apache Fuseki 35 3.5. Σελίδα για δημιουργία της βάσης δεδομένων του Apache Fuseki 35 3.6. Διεπαφή Fuseki για αποθήκευση αρχείων στη βάση δεδομένων 36 3.7. Διεπαφή Fuseki για αποθήκευση ή διαγραφή αρχείων..... 37 3.8. Διεπαφή Fuseki για επιτυχή αποθήκευση αρχείων....... 37 3.9. Αναπαράσταση αρχιτεκτονικής του Pubby........... 38 3.10. Παράδειγμα αρχείου Configuration............... 39 3.11. Ρυθμίσεις του εξυπηρετητή................... 40 3.12. Ρυθμίσεις του dataset...................... 40 3.13. Ένας γράφος με οντολογίες.................. 41 3.14................................... 42 3.15. Οντότητες της FaBiO και οι συσχετίσεις τους........ 44 xiii

xiv ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ 3.16. Οι κλάσεις της FaBiO σχηματικά............... 44 4.1. Αποτελέσματα του ΙΚΕΕ για Επιστημονικές Εργασίες της Πληροφορικής ΑΠΘ...................... 48 4.2. Χαρακτηριστικά μίας εγγραφής του ΙΚΕΕ........... 48 4.3. Φόρμα Αναζήτησης του ΙΚΕΕ................. 52 4.4. Δύο nodes με dc:dc και τα παιδιά τους............ 55 4.5. Ενα ερώτημα (query) σε SPARQL............... 62 4.6. Αποτελέσματα αναζήτησης από το SPARQL τερματικό... 62 4.7. Διεπαφή του Pubby για συγγραφέα.............. 63 4.8. Διεπαφή του Pubby για εγγραφή............... 63

ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ 1

1 Εισαγωγή Η ανοικτή διάθεση των δεδομένων έχει αρχίσει να καθιερώνεται τα τελευταία χρόνια. Τα διασυνδεδεμένα δεδομένα από την άλλη, βασίζονται σε ένα νέο τεχνολογικό τρόπο διάθεσης των δεδομένων που τα καθιστά αντιληπτά τόσο από τους ανθρώπινους χρήστες, όσο και από τους υπολογιστές επιτρέποντας τις μεταξύ τους διασυνδέσεις, ακόμη και με αυτόματο τρόπο. Έτσι, τα μεταδεδομένα μίας βιβλιοθήκης, μπορούν π.χ. να διασυνδεθούν με άλλα δομημένα σύνολα δεδομένων από τρίτες πηγές, όπως ονοματεπώνυμο συγγραφέων και τίτλοι εγγραφών, ημερομηνία δημοσίευσης ή έγγραφα συνεδρίων, γεγονός που συντελεί στον εμπλουτισμό της πληροφορίας. Με αυτό τον τρόπο, καθιστά πολύ πιο πλούσια την εμπειρία του χρήστη και διευρύνει τις διόδους ανακάλυψης μίας πληροφορίας και ενός έργου στο διαδίκτυο. Αντικείμενο της παρούσας εργασίας είναι η δημοσίευση των Επιστημονικών εργασιών των Μελών Διοικητικού Εκπαιδευτικού προσωπικού του τμήματος Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. 1.0.1. Δομή της εργασίας Πιο αναλυτικά, η εργασία δομείται σε κεφάλαια ως εξής: Στο Κεφάλαιο 2 δίνεται το θεωρητικό υπόβαθρο της εργασίας. Πιο συγκεκριμένα, γίνεται μία περιγραφή του Παγκόσμιου και του Σημασιολογικού Ιστού καθώς και της αρχιτεκτονικής του τελευταίου. Μετά, αναλύονται οι όροι των δεδομένων, της πληροφορίας, της γνώσης καθώς και των μεταδεδομένων. Στη συνέχεια, περιγράφεται ένα μοντέλο δεδομένων για την αναπαράσταση των πόρων του Ιστού, και των σχέσεων που τους διέπουν. 3

4 Εισαγωγή Έπειτα, γίνεται μία αναφορά στις γλώσσες συγγραφής των οντολογιών και αναλύεται η γλώσσα υποβολής ερωτημάτων σε σημασιολογικά δεδομένα. Τέλος, παρουσιάζονται οι όροι ανοικτά δεδομένα, διασυνδεδεμένα δεδομένα και ανοιχτά διασυνδεδεμένα δεδομένα. Στο Κεφάλαιο 3 επεξηγούνται τα εργαλεία ανοιχτού κώδικα που χρησιμοποιήθηκαν κατά την ανάπτυξη της εφαρμογής που μετατρέπει τα XML αρχεία σε Ανοιχτά Διασυνδεδεμένα δεδομένα. Αναλύονται εργαλεία πoυ μετατρέπουν το XMl αρχείο με τα Dublin Core μεταδεδομένα σε δομικές έννοιες του Σημασιολογικού Ιστού όπως κλάσεις, αντικείμενα, μεθόδους και ιδιότητες μέσω προγραμματιστικών πλαισίων. Παρουσιάζονται τα εργαλεία που αποθηκεύουν, δημοσιεύουν και παρουσιάζουν στο χρήστη τα δεδομένα σε RDF μορφή. Τέλος, δηλώνονται οι οντολογίες που χρησιμοποιούνται, με ιδιαίτερη έμφαση στις ιδιότητες που χρησιμοποιούνται στην εφαρμογή. Στο Κεφάλαιο 4 περιγράφεται σε βάθος η υλοποίηση της εφαρμογής που μετατρέπει τα XML αρχείο σε Ανοιχτά RDF δεδομένα. Απαριθμούνται τα προαπαιτούμενα βήματα, αναλύεται η αρχιτεκτονική, επεξηγούνται οι τρόποι χρήσης της εφαρμογής και παρουσιάζονται τα τελικά αποτελέσματα. Στο Κεφάλαιο 5 παρουσιάζονται συμπεράσματα και διαπιστώσεις, αλλά και προοπτικές χρήσης και επέκτασης της εφαρμογής.

2 Θεωρητικό Υπόβαθρο 2.1. Εισαγωγή Στον παρόν κεφάλαιο περιγράφονται οι όροι που θα χρησιμοποιηθούν αργότερα στην εφαρμογή. 2.2. Παγκόσμιος Ιστός Ο Παγκόσμιος Ιστός (World Wide Web, WWW) μπορεί να θεωρηθεί ως ένα τεράστιο κατανεμημένο σύστημα που αποτελείται από εκατομμύρια πελατών και διακομιστών για την προσπέλαση συνδεδεμένων εγγράφων. Ο Ιστός εγγράφων βασικά αποτελεί ένα τεράστιο σύστημα πελάτη-διακομιστή με εκατομμύρια διακομιστών κατανεμημένων σε όλο τον κόσμο. Κάθε διακομιστής διατηρεί μια συλλογή εγγράφων και κάθε έγγραφο αποθηκεύεται ως αρχείο. Οι διακομιστές εγγράφων δέχονται αιτήσεις για την προσκόμιση εγγράφων, τα οποία και μεταφέρουν κατόπιν στον πελάτη. Επίσης, ένας διακομιστής μπορεί να δεχθεί αιτήσεις για τη φιλοξενία νέων εγγράφων. Ο απλούστερος τρόπος για την αναφορά σε έγγραφα είναι οι Ενιαίοι Εντοπιστές Πόρων (Uniform Resource Locators, URL). Προδιορίζουν τη θέση ενός εγγράφου, συχνά με την ενσωμάτωση του ονόματος DNS του σχετικού διακομιστή και του ονόματος αρχείου με το οποίο ο διακομιστής μπορεί να αναζητήσει το έγγραφο στο τοπικό του σύστημα αρχείων. Στη σημερινή εποχή έχουν προταθεί και νέοι τρόποι για την αναφορά σε έγγραφα, το URN και το URI. Tο URN (Universal Resource Name) ενεργεί ως αναγωριστικό του εγγράφου 5

6 Θεωρητικό Υπόβαθρο ανεξαρτήτως της θέσης του και αναφέρεται μόνιμα σε αυτόν. Τέλος, το URI (Universal Resource Identifiers) αποτελεί ένα διακριτικό αναγνώρισης των πόρων του Ιστού και μπορεί να θεωρηθεί ότι ενοποιεί τους όρους URL και URN.[BKB + 06] Σχήμα 2.1.: Η αναπαράσταση των όρων URI, URL και URN 2.3. Δεδομένα, Πληροφορία και Γνώση Κρίνεται απαραίτητο να γίνει ο διαχωρισμός των εννοιών αυτών έτσι ώστε να είναι ευκολότερη η κατανόηση των μεθόδων αναπαράστασης γνώσης σε αντίθεση με αυτές που είναι κατάλληλες για δεδομένα και πληροφορία. Αρχικά, τα δεδομένα είναι μη-οργανωμένα και μη-επεξεργάσιμα γεγονότα σχετικά με αντικείμενα ή συμβάντα του πραγματικού κόσμου. Συνήθως τα δεδομένα αποτελούν κάποιες μετρήσιμες ή υπολογίσιμες τιμές των ιδιοτήτων των αντικειμένων. Η πληροφορία, με τη σειρά της, χρειάζεται ένα εννοιολογικό πεδίο που να επιτρέπει την ερμηνεία της. Γενικά, η πληροφορία αποτελείται από δεδομένα τα οποία όμως έχουν φιλτραριστεί και μορφοποιηθεί κατάλληλα. H πληροφορία, σε σύγκριση με τα δεδομένα, έχει νόημα, σκοπό και συνάφεια, ώστε να μπορεί να ερμηνεύεται και να διευκολύνει στη λήψη αποφάσεων. Τέλος, η γνώση είναι η πληροφορία η οποία έχει υποστεί μία σειρά

2.4 Σημασιολογικός Ιστός 7 ειδικών ελέγχων για την πιστοποίηση της. Ουσιαστικά, αναδεικνύει τη σημαντικότητα της πληροφορίας συσχετίζοντας τη με χρήσιμα συμπεράσματα ή αναγκαίες ενέργειες.[bkb + 06] 2.4. Σημασιολογικός Ιστός Ο Σημασιολογικός Ιστός αποτελεί μία επέκταση του υπάρχοντος διαδκτύου, στην οποία η πληροφορία που παρουσιάζεται στο χρήστη ορίζεται με τέτοιο τρόπο ώστε να είναι κατανοητή όχι μόνο από τους ανθρώπους αλλά και από τα προγράμματα-πράκτορες. Στόχος του είναι ο ορισμός και η διασύνδεση των δεδομένων να επιτρέπει την ανακάλυψη και την επαναχρησιμοποίηση τους χωρίς την συμβολή του ανθρώπινου παράγοντα. Είναι, λοιπόν, φανερό ότι ο Ιστός των εγγράφων εξελίσσεται σε Ιστό των Δεδομένων. Χαρακτηριστική είναι η φράση του πατέρα του Ιστου των εγγράφων και των Δεδομένων, Tim Berners Lee για την εξέλιξη αυτή: Ο Σημασιολογικός Ιστός είναι μία επέκταση του τωρινού Ιστού, στον οποίο η πληροφορία αποκτά καλά ορισμένο νόημα, επιτρέποντας υπολογιστές και ανθρώπους να δουλέψουν καλύτερα μαζί [AVH04].

8 Θεωρητικό Υπόβαθρο 2.4.1. Αρχιτεκτονική του Σημασιολογικού Ιστού Σχήμα 2.2.: Η διαστρωματωμένη αρχιτεκτονική του Σημασιολογικού Ιστού Το παραπάνω σχήμα απεικονίζει την αρχιτεκτονική του Σημασιολογικού Ιστού, η οποία πραγματοποείται σε στρώματα, δηλαδή κάθε στρώμα βασίζεται σε τεχνολογίες που υλοποιεί το προηγούμενο. Στο κατώτερο επίπεδο υπάρχει η κωδικοποίηση των εγγράφων που γίνεται με τη χρήση του διεθνώς καθιερωμένου προτύπου κωδικοποίησης χαρακτήρων Unicode. Ακόμα, βρίσκουμε τη διευθυνσιοδότηση των εγγράφων στο διαδίκτυο η οποία γίνεται με τη βοήθεια των Ενιαίων Προσδιοριστών Πόρων(Uniform Resource Identifiers, URI) ανεξαρτήτως περιεχομένου και πρωτοκόλλου επικοινωνίας. Στο αμέσως επόμενο στρώμα έχουμε τη λογική αναπαράσταση των εγγράφων στο Σημασιολογικό Ιστό η οποία επιτυγχάνεται με τη γλώσσα σήμανσης XML (extensible Markup Language). Εχει δενδρική μορφή και μπορεί

2.5 Μοντέλο Περιγραφής Δεδομένων του Σημασιολογικού Ιστού 9 ο κάθε χρήστης της να αναπαραστήσει τις δικές του ετικέτες σύμφωνα με το λεξιλόγιο που έχει επιλέξει. Το XML λεξιλόγιο, όμως, δεν καθορίζει το νοηματικό περιχόμενο των ανταλλασσόμενων πληροφοριώ, το οποίο επιτελείται στο επόμενο επίπεδο. Έτσι, το γενικό μοντέλο δηλώσεων του Ιστού των δεδομένων είναι η γλώσσα RDF(Resource Description Framework-Πλαίσιο Περιγραφής Πόρων) και μπορεί να υλοποιηθεί με το λεξιλόγιο οντολογιών RDF Schema που υποστηρίζει δηλώσεις που καθορίζουν αν είναι επιτρεπτή κάποια δήλωση στο μοντέλο αναπαράστασης του RDF. Ακολοθουθεί το στρώμα της λογικής που χρησιμοποιεί λογικούς κανόνες που επεκτείνουν τις γλώσσες οντολογίων και δημιουργεί δηλωτικά συστήματα. Το επίπεδο της απόδειξης είναι υπεύθυνο για τα αποτελέσματα που προκύπτουν από τους λογικούς κανόνες ενώ το επίπεδο της εμπιστοσύνης αφορά ζητήματα αξιοπιστίας, περιεχομένου, και πνευματικών δικαιωμάτων. [BKB + 06] 2.4.2. Μεταδεδομένα Τα μεταδεδομένα(metadata) είναι συμπληρωματικές πληροφορίες για τους πόρους του Διαδικτύου όπως ο τίτλος, ο συντάκτης του κειμένου ή η τελευταία μέρα τροποποίησης του εγγράφου. Πιο απλά, μας προσφέρουν δεδομένα για άλλα δεδομένα. Για την περιγραφή των μεταδεδομένων χρησιμοποείται το μοντέλο δεδομένων RDF(Resource Description Framework) που θα αναλυθεί στη συνέχεια. 2.5. Μοντέλο Περιγραφής Δεδομένων του Σημασιολογικού Ιστού Στην ενότητα αυτή θα ασχοληθούμε με την αναπαράσταση των δεδομένων στον Σημασιολογικό Ιστό. Θα θεωρήσουμε σαν πόρο Ιστού ο,τιδήποτε μπορεί να αυτοπροσδιοριστεί δηλαδή μία ταινία, ένα φαγητό, ένα κατοικίδιο.

10 Θεωρητικό Υπόβαθρο 2.5.1. RDF Το RDF είναι ένα μοντέλο δεδομένων που οι πληροφορίες αναπαρίστωνται ως δηλώσεις(statements), ισχυρισμοί ή τριπλέτες(tuples) της μορφής υποκείμενο-κατηγόρημα-αντικείμενο. Το υποκείμενο (subject) αναπαρίσταται με τη χρήση αναφορών-προσδιοριστών URI (Uniform Resource Identifiers) και αποδίδονται σε αυτό απλές ιδιότητες (properties). O πόρος Ιστού που προσδιορίζει μία ιδιότητα του υποκειμένου ονομάζεται κατηγόρημα (predicate) ενώ το στοιχείο που δίνει τιμή σε αυτή την ιδιότητα ονομάζεται αντικείμενο (object). Ας δούμε ένα παράδειγμα στο σχήμα 2.3: Σχήμα 2.3.: Ένα απλό RDF παράδειγμα Το υποκείμενο είναι το http://ics.forth.gr/proj/isst/rdf, το κατηγόρημα είναι το dc:creator και το αντικείμενο είναι το Karsten Tolle. Πιο απλά, το υποκείμενο http://ics.forth.gr/proj/isst/rdf το δημιούργησε ο Karsten Tolle. Αυτή είναι η απλούστερη μορφή RDF γράφου για να γίνει κατανοητός ο τρόπος λειτουργίας του. Όταν συνδυαστούν πολλές δηλώσεις RDF δημιουργούν ένα σημασιολογικό δίκτυο που είναι ένας γράφος με κόμβους τα υποκείμενα και τα αντικείμενα και ακμές τα κατηγορήματα. 2.5.2. Συντακτικές αναραστάσεις της RDF Το RDF παρέχει ένα μοντέλο αναπαράστασης δεδομένων εύκολα αναγνώσιμο από τον άνθρωπο. Ο γράφος RDF, όμως, πρέπει να σειριοποιηθεί σε αρχεία ή ροές δεδομένων με κάποια RDF σύνταξη για να γίνει κατανοητό

2.5 Μοντέλο Περιγραφής Δεδομένων του Σημασιολογικού Ιστού 11 από τη μηχανή. Αυτό μπορεί να επιτευχθεί με το RDF/XML και το RDFa, πρότυπα που έχουν προταθεί από το W3C [AVH04]. 2.5.3. RDF/XML Η RDF/XML χρησιμοποιεί το συντακτικό της XML μέσα στη δομή της RDF ώστε να υπάρχει μία αναπαράσταση συμβατή με τα πρότυπα και τις εφαρμογές του διαδικτύου. <?xml version= 1.0?> <rdf:rdf xmlns:rdf= http://www.w3.org/1999/02/22-rdf-syntax-ns# xmlns:si= http://www.w3schools.com/rdf/ > <rdf:description rdf:about= http://www.w3schools.com > <si:title>w3schools</si:title> </rdf:description> </rdf:rdf> Listing 2.1: Ένα απλό RDF/XML παράδειγμα Για να κατανοήσουμε τη δομή της RDF/XML θα χρησιμοποιήσουμε το παραπάνω παράδειγμα. Στην πρώτη γραμμή δηλώνουμε ότι το παρακάτω περιεχόμενο θα είναι γραμμένο σε XML και μάλιστα σε συγκεκριμένη έκδοση. Στην επόμενη γραμμή υπάρχει η δήλωση rdf:rdf που σημαίνει ότι το XML περιεχόμενο θα αναπαραστήσει RDF πληροφορία. Στην τρίτη γραμμή παρουσιάζεται η δήλωση της XML με το πρόθεμα rdf και δηλώνει ότι το πρόθεμα αυτό ισοδυναμεί με τη διεύθυνση http://www.w3.org/1999/02/22-rdfsyntax-ns#. Με τον ίδιο τρόπο, δηλώνεται και το πρόθεμα si στην επόμενη γραμμή. Οι γραμμές 5-8 ορίζουν την αρχή της περιγραφής του πόρου Ιστού. Η έκφραση rdf:description στην γραμμή 5 δηλώνει που αναφέρεται ο πόρος, δηλαδή ορίζεται το υποκείμενο της τριπλέτας. Στην γραμμή 6 συναντάται μία ιδιότητα με την έκφραση si:title και η τιμή αυτής με την έκφραση W3Schools. Η τιμή W3Schools αποτελεί το αντικείμενο της δήλωσης. Τέλος,στην γραμμή 9 λήγει η RDF περιγραφή. [BKB + 06]

12 Θεωρητικό Υπόβαθρο 2.5.4. RDFa Η RDFa (Resource Description Framework in Attributes) επιτρέπει την ενσωμάτωση RDF τριπλέτας στην HTML, XHTML και σε άλλα αρχεία βασισμένα στη XML μορφή. Με άλλα λόγια, η RDFa είναι η γέφυρα μεταξύ του Ιστού των εγγράφων και του Ιστού των δεδομένων. Έτσι, στην υπάρχουσα δομή των HTML σελίδων προστίθεται η RDFa σύνταξη χρησιμοποιώντας XML ιδιότητες. <html xmlns= http://www.w3.org/1999/xhtml > <head> <title>my home-page</title> <meta property= http://purl.org/dc/terms/creator content= Mark Birbeck /> <link rel= http://xmlns.com/foaf/0.1/topic href= http://www.example.com/#us /> </head> <body>...</body> </html> Listing 2.2: Ένα απλό RDFa παράδειγμα Στο παραπάνω σχήμα 2.2 γίνεται ορατό πως αναριστάται η RDF πληροφορία στην HTML. Στην ετικέτα meta υπάρχει το στοιχείο @property που δηλώνει το κατηγόρημα της RDF έκφρασης όπως και το @rel στην επόμενη ετικέτα. Το υποκείμενο αναπαριστάται με το στοιχείο @about ενώ τα αντικείμενα μπορεί να δηλώνονται με το @content ή και να είναι λεκτικά.

2.6 Τεχνολογίες του Σημασιολογικού Ιστού 13 2.6. Τεχνολογίες του Σημασιολογικού Ιστού 2.6.1. Oντολογίες Σχήμα 2.4.: Αναπαράσταση Οντολογίας Απεικονίζεται χαρακτηριστικά στην εικόνα 2.4 ότι οι οντολογίες είναι αντικείμενα του πραγματικού κόσμου με αλληλεπιδράσεις μεταξύ τους. Ο ακριβής ορισμός της οντολογίας είναι η αυστηρή μαθηματική περιγραφή ενός πεδίου γνώσης που αποτελείται από ένα σύνολο όρων μαζί με τις σημασιολογικές τους συσχετίσεις. Οι όροι αναπαριστούν κλάσεις αντικειμένων, δηλαδή έννοιες-πρότυπα σχετικά με τα αντικείμενα και οι συσχετίσεις αφορούν τις ιεραρχικές εξαρτήσεις μεταξύ τους. Με άλλα λόγια, η οντολογία ορίζει ένα κοινό λεξιλόγιο το οποίο χρησιμοποιούν οι άνθρωποι για να μοιράζονται πληροφορία πάνω σε ένα πεδίο γνώσης. Το σημαντικότερο δομικό συστατικό μίας οντολογίας είναι οι κλάσεις (classes) οι οποίες αναπαριστούν τις έννοιες. Μία έννοια μπορεί να είναι ο,τιδήποτε όπως μία εργασία, μία λειτουργία, μία ιδέα. Για να περιγράψουμε τις κλάσεις χρησιμοποιούμε τις ιδιότητες (roles ή properties) για να προσθέσουμε χαρακτηριτικά στα αντικείμενα. Με τους περιορισμούς (facets) περιγράφουμε αυστηρά τι πρέπει να ισχύει για να γίνει

14 Θεωρητικό Υπόβαθρο μία ιδιότητα δεκτή. Έπειτα, έχουμε τις συσχετίσεις(relations) οι οποίες εκφράζουν ένα είδος αλληλεπίδρασης μεταξύ των εννοιών. Ακόμα, υπάρχουν οι συναρτησιακοί όροι(functions) οι οποίοι είναι σύνθετες δομές και χρησιμοποιούνται στη θέση ενός όρου. Τέλος, οι κανόνες είναι σε μορφή αν-τότε βοηθάνε στην εξαγωγη συμπερασμάτων. [BKB + 06] 2.6.2. Γλώσσες Οντολογιών Θα αναλύσουμε τις σημαντικότερες γλώσσες οντολογιών που χρησιμοποιούνται στο Σημασιολογικό Ιστό. Αυτές είναι η RDFS και η OWL. 2.6.3. RDF Schema Το RDF μοντέλο δεδομένων δεν παρέχει περιορισμούς για την περιγραφή των ιδιοτήτων ούτε και των σχέσεων των πόρων Ιστού. Γι αυτό το λόγο δημιουργήθηκε η περιγραφική γλώσσα λεξιλογίου RDF Schema η οποία θεωρείται η σημασιολογική επέκταση της RDF. Τα λεξιλόγια της RDF Schema είναι γραμμένα σε RDF και επιτρέπουν τον καθορισμό των χαρακτηριστικών των πόρων. Για να το πετύχει αυτό, χρησιμοποιεί ένα σύστημα κλάσεων και ιδιοτήτων παρόμοιο με εκείνο των αντικειμενοστραφών γλωσσών όπως η JAVA. Όμως, η RDF Schema διαφέρει με αυτές τις γλώσσες σε πολλά σημεία. Στην JAVA η περιγραφή μίας κλάσης γίνεται ως ένα σύνολο από συγκεκριμένες ιδιότητες ενώ η RDF Schema περιγράφει τα χαρακτηριστικά χρησιμοποιώντας τις ιδιότητες domain και range. Ας αναλύσουμε ένα παράδειγμα για να γίνουν κατανοητές οι ουσιαστικές διαφορές των αντικειμενοστραφών γλωσσών με την RDF Schema. Μία κλάση Book με ιδιότητα author, η οποία θα έπαιρνε τιμές από τον τύπο Person. H RDF Schema από την άλλη, θα περιέγραφε μία κλάση ex:book και χωριστά μία ιδιότητα ex:author που θα είχε πεδίο ορισμού ex:book και πεδίο τιμών ex:person. H διαφορά των δύο αυτών γλωσσών δεν είναι μόνο συντακτική. Στην αντικειμενοστραφή γλώσσα, η ιδιότητα author είναι τμήμα της περιγραφής της κλάσης Book. Μία άλλη κλάση μπορεί να έχει επίσης μία

2.6 Τεχνολογίες του Σημασιολογικού Ιστού 15 ιδιότητα author, η οποία όμως είναι διαφορετική. Έτσι, η εμβέλεια της περιγραφής μίας ιδιότητας περιορίζεται μέσα στα όρια του τύπου ή της κλάσης όπου αυτή ορίζεται. Στην RDF Schema, αντίθετα, οι περιγραφές των ιδιοτήτων είναι εξ ορισμού ανεξάρτητες από τους ορισμούς των κλάσεων και έτσι είναι καθολικές (αν και μπορούν να δηλωθούν να απευθύνονται σε συγκεκριμένες κλάσεις). Έτσι, γίνεται κατανοητό ότι η RDF Schema επιτρέπει στον οποιοδήποτε να επεκτείνει την περιγραφή των πόρων Ιστού. 2.6.4. Κλάσεις Οι πόροι Ιστού μπορεί να χωριστούν σε ομάδες, οι οποίες καλόυνται κλάσεις (classes). Tα μέλη μίας κλάσης είναι γνωστά ως στιγμιότυπα (instances) της κλάσης. Mε τη σειρά τους, οι κλάσεις θεωρούνται από μόνες τους ως πόροι και συνήθως ορίζονται με τη χρήση URI αναφορών. Η ιδιότητα rdf:type χρησιμοποείται για να δηλώσει ότι ένα πόρος αποτελεί στιγμιότυπο μίας κλάσης. Δηλαδή, dolphin rdf:type mammal, δηλώνεται ότι το dolphin είναι στιγμιότυπο του mammal. Η RDF Schema ξεχωρίζει μία κλάση από το σύνολο των στιγμιοτύπων της, το οποίο ονομάζεται επέκταση της κλάσης (class extension). Είναι δυνατό δύο διαφορετικές κλάσεις να έχουν τα ίδια στιγμιότυπα. Ακόμα, η RDF επιτρέπει μία κλάση να είναι μέλος της ίδιας της επέκτασης της και στιγμιότυπο του ευατού της. Δηλαδή, το σύνολο των πόρων που είναι κλάσεις της RDFS αποτελούν μία κλάση που ονομάζεται rdf:class. Αν μία κλάση D είναι υποκλάση μίας άλλης κλάσης Ε, τότε όλα τα στιγμιότυπα της D θα είναι και της Ε. Η ιδιότητα rdfs:subclassof δηλώνει ότι μία κλάση είναι υποκλάση μίας άλλης. Οι κλάσεις φαίνονται πιο αναλυτικά στο σχήμα: 2.6

16 Θεωρητικό Υπόβαθρο rdfs:resource rdfs:class rdfs:literal rdfs:datatype rdf:xmlliteral rdf:property RDFS κλάσεις Είναι η κλάση που περιγράφει τον πόρο και είναι υποκλάση της rdfs:class. Αποτελεί την κεντρική κλάση της RDFS Είναι η κλάση των πόρων που είναι RDF κλάσεις Είναι η κλάση που μοντελοποιεί όλες τις literal τιμές όπως οι συμβολοσειρές και οι αριθμοί Είναι η κλάση όλων των τύπων δεδομένων Είναι η κλάση των τιμών XML και στιγμιότυπο της rdfs:datatype Είναι η κλάση των ιδιοτήτων RDF Σχήμα 2.5.: Βασικές κλάσεις της RDFS 2.6.5. Iδιότητες Πέρα από την περιγραφή των συγκεκριμένων κλάσεων έχουμε τη δυνατότητα στην RDFS να προσθέσουμε συγκεκριμένες ιδιότητες στα στιγμιότυπα των κλάσεων. Πρακτικά, η RDF ιδιότητα είναι η σχέση μεταξύ του πόρουαντικειμένου και του πόρου-υποκειμένου. Η ιδιότητα rdfs:subproperty μπορεί να χρησιμοποιηθεί για να ορίσει ότι μία ιδιότητα είναι υπο-ιδιότητα μίας άλλης. Αν η ιδιότητα D είναι υπο-ιδιότητας της Ε, τότε όλοι οι πόροι που αφορούν την Ε αφορούν και την Ε. Αντίστροφα, η ιδιότητα rdfs:superproperty εισάγει την έννοια της υπερ-ιδιότητας. Έστω ότι η ιδιότητα D είναι υπερ-ιδιότητα μίας ιδιότητας Ε, τότε όλοι οι πόροι που σχετίζονται με την Ε σχετίζονται και με την ιδιότητα D. Παρακάτω αναλύονται οι ιδιότητες της RDFS:

2.6 Τεχνολογίες του Σημασιολογικού Ιστού 17 rdfs:resource rdfs:domain rdfs:type rdfs:subclassof rdfs:subpropertyof rdfs:label RDFS κλάσεις Είναι η κλάση που περιγράφει τον πόρο και είναι υποκλάση της rdfs:class. Αποτελεί την κεντρική κλάση της RDFS Eίναι ένα στιγμιότυπο της rdf:property που χρησιμοποιείται για να δηλώσει ότι οποιοσδήποτε πόρος με τη συγκεκριμένη ιδιότητα είναι ένα στιγμιότυπο μιας η περισσοτέρων κλάσεων. Είναι στιγμιότυπο της rdf:property και δηλώνει ότι ένας πόρος είναι στιγμιότυπο μίας κλάσης. Είναι στιγμιότυπο της κλάσης rdf:property και δηλώνει ότι όλα τα στιγμιότυπα μίας κλάσης είναι και στιγμιότυπα μίας άλλης Είναι στιγμιότυπο της κλάσης rdf:property και δηλώνει ότι όλοι οι πόροι που συσχετίζονται με μία ιδιότητα, συσχετίζονται και με μία άλλη Είναι στιγμιότυπο της rdf:property που μπορεί να χρησιμοποιηθεί για να παρέχει μια εκδοχή του ονόματος ενός πόρου, κατανοητής από τον άνθρωπο. Σχήμα 2.6.: Οι κλάσεις της RDFS 2.6.6. Web Ontology Language-OWL H OWL αποτελεί την εξέλιξη της RDF και της RDFS. Είναι μία γλώσσα του Σημασιολογικού Ιστού σχεδιασμένη για να αναπαριστά με περισσότερη εκφραστικότητα τους πόρους Ιστού και τις σχέσεις μεταξύ τους. Η OWL 2 έχει προταθεί από το W3C ως γλώσσα οντολογιών στο Σημασιολογικό Ιστό και η σύνταξη αυτής θα αναλυθεί παρακάτω. Γενικότερα, η OWL προσφέρεται σε τρεις υπο-γλώσσες, κάθε μία από τις οποίες καλύπτει και διαφορετικό φάσμα εκφραστικότητας. Αρχικά, η OWL Lite απευθύνεται σε χρήστες που θέλουν βασικές απαιτήσεις στην ιεραρχία των κλάσεων και των περιορισμών των ιδιοτήτων. Η OWL DL προσφέρει εκτός από μεγαλύτερη εκφραστικότητα και υπολογιστική αποδοτικότητα. Δηλαδή, εγγυάται ότι όλα τα συμπεράσματα θα υπολογισθούν. Τέλος, η OWL FULL παρέχει στους χρήστες μεγαλύτερη εκφραστικότητα μαζί με τη συντακτική ελευθερία που προσφέρει η RDF, χωρίς υπολογιστικές εγγυήσεις.

18 Θεωρητικό Υπόβαθρο 2.6.7. Σύνταξη της γλώσσας Οι πιο βασικές έννοιες μίας οντολογίας πρέπει να ανήκουν σε κλάσεις, που ανήκουν σε ιεραρχικά δένδρα. Κάθε κλάση ή αλλιώς individual είναι αντικείμενο της κλάσης owl:thing, η οποία είναι υπερκλάση όλων των κλάσεων. Οι ιδιότητες της γλώσσας OWL 2 είναι δύο ειδών. Το πρώτο είδος είναι οι ιδιότητες τύπου δεδομένων (datatype properties), οι οποίες είναι οι σχέσεις μεταξύ των στιγμιοτύπων κλάσεων και των τύπων δεδομένων της RDF ή της XMl ενώ το δεύτερο είδος είναι οι σχέσεις μεταξύ των στιγμιοτύπων κλάσεων. H OWL υποστηρίζει συμμετρικότητα, μεταβατικότητα και αντιστροφή στις ιδιότητες της. Συγκεκριμένα, άλλες ιδιότητες της OWL2 που δεν υπήρχαν στην RDFS είναι οι εξής: owl:topobjectproperty, owl:bottomobjectproperty: Η πρώτη ιδιότητα συσχετίζει τα στιγμιότυπα μίας οντολογίας ενώ η δέυτερη όχι. owl:reflexive, owl:irreflexiveproperty: Η πρώτη χρησιμοποείται για τις αντανακλαστικές ενώ η δεύτερη για τις μη αντανακλαστικές. owl:inverseof: Επιτρέπει τη δήλωση αντίστροφων ιδιοτήτων. Σχήμα 2.7.: Ένα απλό παράδειγμα OWL2 Στο παραπάνω παράδειγμα 2.7 γίνεται κατανοητή η δομή της γλώσσας OWL 2. Η κλάση Person είναι υπερκλάση της κλάσης Student και ο Martin είναι η ιδιότητα τύπου δεδομένων της κλάσης Student. [BKB + 06]

2.7 SPARQL 19 2.7. SPARQL Η SPARQL (Simple Protocol and RDF Query Language) είναι μία γλώσσα ερωτημάτων Σημασιολογικού Ιστού που εφαρμόζεται σε RDF δεδομένα. Τηρουμένων των αναλογιών, η SPARQL μπορεί να παραλληλιστεί με τη γλώσσα ερωτημάτων σχεσιακών βάσεων δεδομένων, την SQL. Ουσιαστικά, είναι υπεύθυνη στο να ανακτά και να διαχειρίζεται δεδομένα που είναι αποθηκευμένα σε RDF μορφή. Έχει προτυποποιηθεί από το W3C και θεωρείται μία από τις σημαντικότερες τεχνολογίες του Σημασιολογικού Ιστού. Τα RDF δεδομένα δεν είναι ανάγκη να υπακούουν σε κάποιο συγκεκριμένο RDF συντακτικό για να ανακτηθούν από τη SPARQL αφού η RDF είναι μοντέλο δεδομένων. Για να υλοποιηθεί ένα SPARQL query ή αλλιώς ένα ερώτημα σε SPARQL θα πρέπει να υπάρχει το πρόγραμμα πελάτη και ένας εξυπηρετητής που θα υποστηρίζει τη γλώσσα. Ακόμα, θα πρέπει τα δεδομένα να είναι αποθηκεύμενα σε μία βάση δεδομένων έτσι ώστε να είναι δυνατή η ανάκτηση τους. Η βάση αυτή θα πρέπει να είναι της μορφής triplestore ή αλλιώς RDF store που είναι μία βάση σχεδιασμένη για την αποθήκευση RDF εκφράσεων. Tα SPARQL ερωτήματα εκτελούνται σε τερματικά(endpoints), τα οποία δέχονται τα ερωτήματα και στέλνουν τα αποτελέσματα μέσω του HTTP πρωτοκόλλου. [W3C13]

20 Θεωρητικό Υπόβαθρο 2.7.1. Βασική Δομή ενός SPARQL ερωτήματος Σχήμα 2.8.: Η βασική δομή ενός SPARQL ερωτήματος Η βασική δομή ενός SPARQL ερωτήματος φαίνεται στο 2.8 σχήμα. Το ερώτημα ξεκινά με το PREFIX όταν έχουμε named graphs (γράφους με όνομα), στους οποίους έχει δοθεί ένα όνομα στη μορφή URI. Έπειτα, μπορούμε να εκτελέσουμε 4 ερωτήματα στην RDF-βάση δεδομένων. Αυτά είναι η επιλογή (SELECT), η κατασκευή γράφου (CONSTRUCT), η ερώτηση για ύπαρξη λύσης ερωτήματος (ASK) και η εξαγωγή πληροφοριών για πόρο (DESCRIBE). Ουσιαστικά, το PREFIX διαδραματίζει το ρόλο του όρου FROM, ο οποίος δηλώνει σε ποιο γράφο θα εκτελεστούν οι παρακάτω ενέργειες. Μετά, αν πρόκειται για SELECT ερώτημα επιλέγουμε ποια τμήματα από τα αντακτηθέντα δεδομένα θα εμφανιστούν στο αποτέλεσμα. Με τον όρο WHERE καθορίζεται ποιες από τις τριπλέτες θα χρησιμοποιηθούν. Τέλος, έχουμε τη δυνατότητα να ταξινομήσουμε σε φθίνουσα ή αύξουσα σειρά τα αποτελέσματα ως προς ένα αποτέλεσμα με τον όρο ORDER BY.

2.7 SPARQL 21 Σχήμα 2.9.: Αναπαράσταση ενός SPARQL ερωτήματος Παρατηρώντας το σχήμα 2.9 γίνεται κατανοητό ότι στον όρο WHERE πρέπει να δηλώσουμε τριπλέτες της μορφής υποκείμενο-κατηγόρημα-αντικείμενο αντί για μία μεταβλητή όπως στις σχεσιακές βάσεις δεδομένων. Εδώ έγκειται και η ουσιαστική διαφορά των δύο αυτών βάσεων. Στο συγκεκριμένο παράδειγμα ψάχνουμε τη μεταβλητή?x με κατηγόρημα hasname και με τιμή το αντικείμενο Tryptophan Synthetase. Tην ίδια στιγμή, η?x θα πρέπει να έχει ένα κατηγόρημα hassubstrate με τιμή το αντικείμενο Chemical. Το μόνο υποκείμενο που ικανοποεί τους περιορισμούς που τέθηκαν στο WHERE είναι η protein. Η SPARQL υποστηρίζει πολλές από τις λειτουργίες που επιτελούνται και στις σχεσιακές βάσεις δεδομένων, όπως η ένωση (UNION), η ομαδοποίηση (GROUP BY), οι τελεστές συνάθροισης (SUM,MIN) και άλλες.

22 Θεωρητικό Υπόβαθρο 2.8. Ανοιχτά Δεδομένα Ο όρος ανοιχτά δεδομένα είναι ιδιαίτερα διαδεδομένος τα τελευταία χρόνια. Πολλές χώρες, οργανισμοί και επιχειρήσεις έχουν δημοσιοποιήσει τα δεδομένα τους. Ο ακριβής ορισμός των ανοιχτών δεδομένων είναι τα δεδομένα που μπορούν ελεύθερα να χρησιμοποιηθούν, να επαναχρησιμοποιηθούν και να αναδιανεμηθούν από οποιονδήποτε υπό τον όρο να γίνεται αναφορά στους δημιουργούς τους και να διατίθενται από άλλους υπό τους ίδιους όρους. [Gre] Τα ανοιχτά δεδομένα θα πρέπει να διέπονται από τα εξής χαρακτηριστικά: Να είναι διαθέσιμα και προσβάσιμα Τα δεδομένα πρέπει να είναι διαθέσιμα αυτούσια, να έχουν ένα λογικό κόστος αναπαραγωγής, και κατά προτίμηση να είναι διαθέσιμα για λήψη από το Διαδίκτυο. Επίσης, πρέπει να είναι διαθέσιμα σε κάποια μορφή πρακτικά αναγνώσιμη. Η μορφή των δεδομένων μπορεί να είναι από ένα απλό αρχείο Word, JSON μορφή ως μία RDF βάση δεδομένων. Να επαναχρησιμοποιούνται και να αναδιανέμονται Τα δεδομένα θα πρέπει να είναι διαθέσιμα υπό όρους που επιτρέπουν την επαναχρησιμοποίηση και την αναδιανομή τους. Να επαναχρησιμοποίουνται και να αναδιανέμονται από τον καθένα Οποιοσδήποτε πρέπει να μπορεί να χρησιμοποιήσει, να επαναχρησιμοποιήσει και να αναδιανείμει τα δεδομένα. Δεν πρέπει αυτά να υπόκεινται σε διακρίσεις με βάση τον τομέα δραστηριότητας ή τα πρόσωπα και τις ομάδες. Για παράδειγμα, περιορισμοί για «μη-εμπορική χρήση» ή περιορισμοί για χρήση μόνο για συγκεκριμένους σκοπούς (π.χ. μόνο στην εκπαίδευση) δεν είναι επιτρεπτοί. Υπάρχουν πολλοί λόγοι που οδήγησαν στη δημοσιοποίηση των δεδομένων. Αρχικά, κινητήρια δύναμη για τα ανοιχτά δεδομένα είναι η διαφάνεια. Ζούμε σε μία δημοκρατική κοινωνία και οι πολίτες πρέπει να έχουν πρόσβαση σε κυβερνητικά δεδομένα καθώς και στο διαμοιρασμό και την επαναχρησιμοποίηση τους. Έτσι, θα έχουμε ενημερωμένους πολίτες που θα έχουν τη γνώση

2.8 Ανοιχτά Δεδομένα 23 να συμμετέχουν και να ενημερώνονται για τις λήψεις αποφάσεων. Τέλος, τα δεδομένα στην σημερινή εποχή κοστίζουν ακριβά έστω και για τη δημιουργία μίας απλής εφαρμογής. Απελευθερώνοντας την εμπορική αξία από αυτά, μπορεί ο οποιοδήποτε να τα επεξεργαστεί και να τα χρησιμοποιήσει για τη δημιουργία υπηρεσιών ή ακόμα και επιχειρηματικών δραστηριοτήτων. Αξίζει να αναφερθεί ότι το Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης είναι το 1ο ελληνικό πανεπιστήμιο που δημοσίευσε επτά σύνολα δεδομένων σε ανοικτό και μηχαναγνώσιμο μορφότυπο.τα ανοικτά δεδομένα του ΑΠΘ περιλαμβάνουν πληροφορίες για Διδάσκοντες, Πρόσωπα, Προγράμματα Σπουδών, Μαθήματα και πληροφορίες σχετικά με τις Ακαδημαϊκές και Διοικητικές Μονάδες του πανεπιστημίου. Προς την ίδια κατεύθυνση κινήθηκε και το CERN,το Ευρωπαϊκό εργαστήριο Σωματιδιακής Φυσικής, που κατέστησε διαθέσιμα τα δεδομένα από τα πειράματα του επιταχυντή LHC (Large Hadron Collider) δίνοντας έτσι τη δυνατότητα σε επίδοξους επιστήμονες να τα αναλύσουν και να προτείνουν τρόπους επεξεργασίας τους. Σχήμα 2.10.: Λογότυπο του CERN Open Data

24 Θεωρητικό Υπόβαθρο 2.9. Διασυνδεδεμένα Δεδομένα Σχήμα 2.11.: Αναπαράσταση γράφου Διασυνδεδεμένων Δεδομένων Ο όρος διασυνδεδεμένα δεδομένα περιγράφει μία μέθοδο δημοσιοποίησης δομημένων δεδομένων μεταξύ των οποίων προηγουμένως δεν υπήρχαν δεσμοί διασύνδεσης(links). Στην σημερινή εποχή, καθίσταται σημαντικό όχι μόνο να δημοσιεύουμε τα δεδομένα στον Ιστό αλλά και να τα συνδέουμε προς άλλα δεδομένα έτσι ώστε να είναι εύκολη η ανάκτηση τους από ανθρώπους και μηχανές. Δηλαδή, επιτρέπει δεδομένα από διαφορετικές πηγές να συνδέονται και να μπορούν να αναζητηθούν. Αυτό υλοποείται με τις γνωστές τεχνολογίες του Ιστού, όπως HTTP και URI. [Wika] Ο Tim Berners-Lee, διευθυντής του WWW, ορίζει τις παρακάτω αρχές για τη δημιουργία διασυνδεδεμένων δεδομένων: 1. Χρήση των URIs για τον προσδιορισμό αντικειμένων. 2. Χρήση των HTTP URIs έτσι ώστε να είναι δυνατή η αναφορά σε αυτά τα αντικείμενα με αποτέλεσμα την αποτελεσματική τους αναζήτηση από

2.9 Διασυνδεδεμένα Δεδομένα 25 ανθρώπους και πράκτορες λογισμικού. 3. Παροχή χρήσιμης πληροφορίας σχετικής με τα αντικείμενα προς αναζήτηση, χρησιμοποιώντας τα στάνταρντ (RDF, SPARQL). 4. Συμπερίληψη συνδέσεων σε άλλα σχετικά URIs ώστε να βελτιωθεί η ανακάλυψή τους από άλλες σχετικές πληροφορίες στον Ιστό. 2.9.1. Διασυνδεδεμένα Ανοιχτά Δεδομένα Έχοντας αναλύσει παραπάνω τους όρους ανοιχτά και διασυνδεδεμένα δεδομένα χωριστά, στο κεφάλαιο αυτό θα παρουσιάσουμε τον όρο Ανοιχτά Διασυνδεδεμένα Δεδομένα. [Wikb] Καταρχάς, τα Ανοιχτά Διασυνδεδεμένα δεδομένα είναι τα Διασυνδεδεμένα δεδομένα δημοσιεύμενα υπό ανοικτή άδεια, η οποία δεν εμποδίζει την ελεύθερη επαναχρησιμοποίησή τους. Ο Tim Berners- Lee προσθέτει ακόμη έναν κανόνα στις αρχές για τη δημιουργία των διασυνδεδεμένων δεδομένων για να περιγράψει τα Ανοιχτά Διασυνδεδεμένα Δεδομένα, αυτό του ανοιχτού περιεχομένου (open content). Επιπλέον, ανέπτυξε ένα πενταβάθμιο σύστημα αξιολόγησης για τα Διασυνδεδεμένα Ανοιχτά δεδομένα (Linked Open Data LOD), που παρουσιάζεται παρακάτω: 1. Τα δεδομένα πρέπει να είναι διαθέσιμα στον Ιστό, υπό οποιαδήποτε μορφή, με ανοικτή άδεια, ώστε να θεωρούνται Ανοιχτά Δεδομένα. 2. Τα δεδομένα πρέπει να δημοσιεύονται σε δομημένη, και κατανοητή από την μηχανή μορφή. 3. Τα δεδομένα πρέπει να δημοσιεύονται σε δομημένη, και κατανοητή από την μηχανή μορφή, η οποία θα είναι μη-ιδιόκτητη. 4. Εκτός από τα παραπάνω, τα δεδομένα χρησιμοποιούν τις υποδείξεις του W3C (RDF, SPARQL) για την αναγνώριση των αντικειμένων. 5. Εκτός από τα παραπάνω, τα δεδομένα πρέπει να συνδέονται με άλλα δεδομένα.

3 Εργαλεία για την υλοποίηση της εφαρμογής 3.1. Εισαγωγή Σε αυτό το κεφάλαιο, θα αναλυθούν τα εργαλεία που χρησιμοποιήθηκαν για την υλοποίηση της εφαρμογής. Αρχικά, παρουσιάζεται το προγραμματιστικό πλαίσιο Jena RDF API που αναπαριστά τις δομές του Σημασιολογικού Ιστού ως κλάσεις και ιδιότητες της γλώσσας προγραμματισμού Java. Στη συνέχεια, αναφέρεται η βάση δεδομένων RDF Apache Jena TBD στην οποία αποθηκεύονται τα Rdf δεδομένα ως τριπλέτες. Έπειτα, αναλύεται το Apache Jena Fuseki που είναι υπεύθυνο για την πρόσβαση των περιεχομένων της βάσης δεδομένων ως Διασυνδεδέμενα δεδομένα στον Παγκόσμιο Ιστό και την υποβολή SPARQL ερωτημάτων πάνω σε αυτά. Ακόμα, περιγράφονται οι οντολογίες που χρησιμοποιήθηκαν στα πλαίσια της εργασίας. Η αναπαράσταση των δεδομένων αυτών υλοποιείται από το προγραμματιστικό πλαίσιο Pubby το οποίο μορφοποιεί τα RDF δεδομένα σε μορφή κατανοητή από τον άνθρωπο. Τέλος, θα περιγραφούν οι οντολογίες που χρησιμοποιήθηκαν για την υλοποίηση της εφαρμογής. 3.1.1. Apache Jena RDF API 27

28 Εργαλεία για την υλοποίηση της εφαρμογής Το προγραμματιστικό πλαίσιο Jena RDF API είναι μία εφαρμογή ανοιχτού κώδικα υλοποιημένη στη γλώσσα προγραμματισμού Java. Αυτό καθιστά εύκολο σε ένα μη-γνώστη των RDF δεδομένων να έρθει σε επαφή με αυτά και να κρίνει αν του αρέσουν ή όχι. Ακόμα, μία στοιχειώδη γνώση της γλώσσας σήμανσης XML κρίνεται απαραίτητη αφού τα RDF μοιράζονται κοινές τεχνικές σχεδίασης με αυτήν. Ας δούμε τις κλάσεις και διεπαφές που παρέχει η Jena RDF API για να μοντελοποιήσουμε τα δεδομένα μας σε RDF: Resource: Είναι το interface που χρησιμοποιείται για την αναπαράσταση του RDF πόρο Ιστού. Μπορεί να χρησιμοποιηθεί ως υποκείμενο, κατηγόρημα ή αντικείμενο στις RDF δηλώσεις. Statement: Η κλάση αυτή δηλώνει την RDF τριπλέτα που περιέχει το υποκείμενο, κατηγόρημα και αντικείμενο. Ακόμα, επιτρέπει την υποβολή ερωτήσεων στα περιεχόμενα της. Model: To interface αυτό υλοποεί τη δομή του γράφου που έχουν τα RDF δεδομένα. Στη δομή του μοντέλου προσθέτουμε, αφαιρούμε και αναζητούμε RDF τριπλέτες. 3.1.2. Κατασκευή RDF δεδομένων Καταρχάς, θα πρέπει να αναλυθεί πως δηλώνουμε μία RDF τριπλέτα της μορφής υποκείμενο-κατηγόρημα-αντικείμενο στη Java. // some definitions static String personuri = http://somewhere/johnsmith ; static String fullname = John Smith ; // create an empty Model Model model = ModelFactory.createDefaultModel();

3.1 Εισαγωγή 29 // create the resource Resource johnsmith = model.createresource(personuri); // add the property johnsmith.addproperty(vcard.fn, fullname); Listing 3.1: Δηλώσεις για RDF τριπλέτα Με βάση τον κώδικα στο σχήμα 3.1 θα περιγράψουμε τη διαδικασία κατασκευής RDF δεδομένων. Έστω ότι θέλουμε να περιγράψουμε ένα άνθρωπο, που θα είναι ο πόρος Ιστού και να του δώσουμε ένα όνομα που θα είναι το κατηγόρημα. Η τιμή που θα δοθεί στο κατηγορημα θα είναι το αντικείμενο της τριπλέτας. Δηλώνουμε το URI του πόρου και το ονοματεπώνυμο με τον τύπο δεδομένων String. Μετά, ορίζουμε το μοντέλο στο οποίο θα τοποθετηθεί ο πόρος Ιστού. Έπειτα, χρησιμοποιώ το interface Resource για να δηλώσω το URI του πόρου. Παρατηρούμε τη δήλωση model.createresource(personuri), η οποία σημαίνει ότι το Resource που δημιουργεί θα τοποθετηθεί στο γράφο που έχουμε δηλώσει. Τέλος, προσθέτουμε τις ιδιότητες που πραγματοποιούνται με την εντολή addproperty. Στην συγκεκριμένη περίπτωση, η δήλωση addproperty(vcard.fn, fullname) αποδίδει μία ιδιότητα ονόματος στον πόρο, δηλαδή στον άνθρωπο. Στο σχήμα 3.1 απεικονίζεται ο γράφος RDF που δημιοιυργήσαμε με τις παραπάνω εντολές. [Jenb] 3.1.3. Prefixes στις RDF εκφράσεις Όπως έχουμε αναφέρει, τα prefixes χρησιμοποιούνται για να συντομεύσουν τα URIs των πόρων. Ενώ το RDF χρησιμοποεί ολόκληρα τα URIs, η Jena παρέχει τρόπους διαχείρησης των URIs ώστε στο αποτέλεσμα να χρησιμοποιείται ένα πρόθεμα αντί για ολοκλήρο το URI. Model m = ModelFactory.createDefaultModel(); String nsa = http://somewhere/else# ; Resource root = m.createresource( nsa + root );

30 Εργαλεία για την υλοποίηση της εφαρμογής Property P = m.createproperty( nsa + P ); Resource x = m.createresource( nsa + x ); m.add( root, P, x ).add( root, P, y ).add( y, Q, z ); m.write( System.out ); System.out.println( # -- nsa defined ); m.setnsprefix( nsa, nsa ); Listing 3.2: Ένα απλό RDF παράδειγμα με prefixes Όμως, μπορεί κάποιος να θέλει να δημιουργήσει το δικό του πρόθεμα για να δημοσιεύσει τα δεδομένα στο Σημασιολογικό Ιστό. Αυτό μπορεί να επιτευχθεί με το να δηλώσει το URI ως τύπο δεδομένων String και να του δώσει μία τιμή, δηλαδή http://somewhere/else/#. Έτσι, στη δήλωση του πόρου δηλώνουμε το namespace που θέλουμε και προσθέτουμε ένα String, παραδείγματος χάρη το P για να διαχωρίσουμε τον πόρο P από τον πόρο x. Τέλος, με την εντολή m.setnsprefix( nsa, nsa ), ορίζουμε ότι το κύριο namespace του Model είναι το nsa. Σχήμα 3.1.: Γράφος RDF

3.2 Αναζήτηση σε RDF εκφράσεις και RDF γράφου 31 3.2. Αναζήτηση σε RDF εκφράσεις και RDF γράφου Στο κεφάλαιο αυτό θα αναλύσουμε την αναζήτηση στοιχείων αρχικά σε RDF τριπλέτες και μετέπειτα σε γράφους RDF δεδομένων. 3.2.1. Αναζήτηση σε RDF εκφράσεις Πολλές φορές κρίνεται απαραίτητο να ελεχθεί αν υπάρχει ένα στοιχείο στο γράφο RDF δεδομένων για διάφορους λόγους όπως η εύρεση ενός στοιχείου ή η διαγραφή του. Οι διπλότυπες RDF εκφράσεις δεν μας απασχολούν αφού το Model είναι ένα σύνολο δεδομένων. Όπως έχουμε αναφέρει, η κλάση Statement δηλώνει την RDF τριπλέτα και αποτελείται από το υποκείμενο, το κατηγόρημα και το αντικείμενο. Το RDF Model είναι στην ουσία ένα σύνολο από RDF εκφράσεις δηλαδή Statements. Το Jena Model παρέχει μία μέθοδο liststatements() η οποία επιστρέφει ένα StmtIterator, που είναι μία παραλλαγή του επαναληπτή(iterator) της JAVA, και διατρέχει όλα τις RDF δηλώσεις του Model. Ακόμα, ο StmtIterator έχει μία μέθοδο nextstatement() η οποία επιστρέφει την επόμενη δήλωση από τον επαναληπτή και προσφέρει μεθόδους ανάκτησης του υποκειμένου, κατηγορήματος και αντικειμένου. 3.2.2. Αναζήτηση σε RDF γράφο Το Jena RDF API υποστηρίζει μία μικρή γκάμα εργαλείων για αναζήτηση στοιχείων σε ένα Model. Πιο συγκεκριμένα, χρησιμοποείται η μέθοδος Model.listStatements(), η οποία παρουσιάζει σε λίστα τις εκφράσεις RDF του γράφου, είναι ένας κοστοβόρος τρόπος αναζήτησης σε γράφο. Ακόμα,η μέθοδος Model.listSubjectsWithProperty(Property p, RDFNode o) θα επιστρέψει έναν επαναληπτή πάνω σε όλα τα υποκείμενα με ιδιότητα p και τιμή o. Δεν προτείνεται η χρήση των παραπάνω μεθόδων σε μεγάλα σύνολα δεδομένων.

32 Εργαλεία για την υλοποίηση της εφαρμογής Στον παρακάτω κώδικα 3.3, υλοποιείται η μέθοδος Model.listSubjectsWithProperty(Property p, RDFNode o) με τιμή VCARD.FN, δηλαδή αναζητούνται οι πόροι με ιδιότητα VCARD.FN στο γράφο. Τέλος, οι μέθοδοι iter.hasnext() και iter.nextresource() βοηθάνε στη διάσχιση του γράφου για την πρόσβαση στις τιμές του πόρου. // list vcards ResIterator iter = model.listsubjectswithproperty(vcard.fn); while (iter.hasnext()) { Resource r = iter.nextresource();... } Listing 3.3: Ένα απλό παράδειγμα αναζήτησης σε γράφο 3.3. Jena TBD Η TBD είναι ένα συστατικό της Jena για αποθήκευση και αναζήτηση RDF δεδομένων. Οι RDF τριπλέτες που είναι αποθηκευμένες σε αυτήν μπορούν να ανακτηθούν είτε με εντολές από το τερματικό είτε διαμέσου του Jena API. Όλες οι λειτουργίες που επιτελούνται στην Jena API, συμπεριλαμβανομένου και του SPARQL query υποστηρίζονται. Η κλάση TDBFactory περιέχει στατικές μεθόδους για την κατασκευή και αποθήκευση ενός γράφου ή RDF συνόλου δεδομένων στη βάση δεδομένων. Μία εφαρμογή μπορεί να προσδιορίσει το μοντέλο ή το σύνολο δεδομένων που θα χρησιμοποιήσει με τα εξής: 1. δίνοντας ένα όνομα φακέλου 2. δίνοντας ένα αρχείο assebler.ttl σε μορφή σύνταξης Turtle Στην παρούσα εργασία, η Jena TBD χρησιμοποείται κατευθείαν από τον SPARQL εξυπηρετητή, Αpache Jena Fuseki για τον οποίο γίνεται λόγος παρακάτω.[jenc]

3.4 Apache Jena Fuseki 33 3.4. Apache Jena Fuseki Το Apache Jena Fuseki είναι ένας SPARQL εξυπηρετητής. Μπορεί να υλοποιηθεί ως αυτόνομη δραστηριότητα, ως Java διαδικτυακή εφαρμογή με το WAR αρχείο και ως εξυπηρετητής. Η ασφάλεια του Fuseki παρέχεται μέσω του Apache Shiro. Ακόμα, προσφέρει μία διεπαφή στους χρήστες για παρακολούθηση του εξυπηρετητή με δικαιώματα διαχειριστή. Επιπλέον, τα SPARQL 1.1 πρωτόκολλα χρησιμοποιούνται για αναζήτηση ή ανανέωση των δεδομένων. Το Fuseki είναι άρρηκτα συνδεδεμένο με τη βάση δεδομένων της Jena TBD προσφέροντας με τον τρόπο αυτό μία μόνιμη απόθηκευση δεδομένων με τα προνόμια της Jena text query και Jena spatial query. Πιο αναλυτικά, θα περιγράψουμε τις λειτουργίες του Fuseki ως εξυπηρετητή. Παρέχει της μορφής REST SPARQL HTTP Update, SPARQL Query, and SPARQL Update χρησιμοποιώντας το SPARQL πρωτόκολλο διαμέσου του HTTP. [Jena] 3.4.1. Ξεκινώντας τον Apache Fuseki Server Θα περιγραφούν αναλυτικά τα βήματα για την εκκίνηση του εξυπηρετητή. Καταρχάς, έχουμε αποθηκευμένο στον υπολογιστή μας την τελευταία έκδοση jena-fuseki-*-distribution. Ανοίγουμε το τερματικό και πηγαίνουμε στο φάκελο του Fuseki. Εκεί, αν πρόκειται για Linux σύστημα πληκτρολογούμε την εντολή chmod +x fuseki-server s-*. Διαφορετικά, τρέχουμε το server με την εντολή./fuseki-server update mem /ds. Η εντολή αυτή επανεκινεί τον server έχοντας ως βάση δεδομένων την ds στη συγκεκριμένη περίπτωση. Το αποτέλεσμα του τερματικού θα είναι το παρακάτω στο σχήμα 3.2:

34 Εργαλεία για την υλοποίηση της εφαρμογής Σχήμα 3.2.: Αποτέλεσμα τερματικού Μετά, ανοίγουμε στο browser το URL http://localhost:3030 στην διεύθυνση που ακούει ο σέρβερ και έχουμε το παρακάτω αποτέλεσμα 3.3 Σχήμα 3.3.: Αρχική σελίδα του Apache Fuseki Παρατηρούμε ότι μας δίνει την δυνατότητα να αναζητήσουμε δεδομένα στη βάση, να προσθέσουμε δεδομένα μέσω αρχείων αλλά και να περιηγηθούμε στα στοιχεία της βάσης. Για να αναζητήσουμε στοιχεία στη βάση δεδομένων της μορφής RDF, το Fuseki παρέχει την παρακάτω 4.3 διεπαφή μαζί με το SPARQL τερματικό. Σε αυτό μπορούμε να γράψουμε εντολές της γλώσσας SPARQL, όπως περιγράφηκε πιο πάνω, για να μας επιστραφούν στοιχεία της βάσης δεδομένων.

3.4 Apache Jena Fuseki 35 Σχήμα 3.4.: Σελίδα αναζήτησης της βάσης δεδομένων του Apache Fuseki 3.4.2. Apache Jena Fuseki και Jena TBD Το Fuseki προσφέρει δύο δυνατότητες στους χρήστες του όσον αφορά τη βάση δεδομένων Jena TBD, όπως φαίνεται και στο 3.5 σχήμα. Σχήμα 3.5.: Σελίδα για δημιουργία της βάσης δεδομένων του Apache Fuseki Είναι φανερό ότι μπορεί να δημιουργηθούν δύο ειδών βάσεις δεδομένων. Η

36 Εργαλεία για την υλοποίηση της εφαρμογής in-memory βάση δεδομένων θα παραμείνει στον εξυπηρετητή ως όνομα βάσης αλλά τα δεδομένα της θα χαθούν. Αντίθετα, στο δεύτερο είδος το όνομα και τα δεδομένα της βάση δεδομένων θα παραμείνουν ακόμα κι αν επανεκκινηθεί ο servlet. Αφού δημιουργήθηκε η βάση, θα πρέπει να εισαχθούν σε αυτήν RDF δεδομένα. Αυτό θα γίνει μέσω της διεπαφής του Apache Fuseki που έχει σχεδιαστεί για το σκοπό αυτό. Έτσι, έστω ότι θέλουμε να αποθηκεύσουμε το αρχείο dataset.rdf στη βάση δεδομένων. Εκκινείται o server όπως περιγράφηκε στο 3.4.1, διαλέγουμε τη βάση που θέλουμε να χρησιμοποιήσουμε και πατάμε το κουμπί add data, όπως φαίνεται και στο σχήμα 3.3. Σχήμα 3.6.: Διεπαφή Fuseki για αποθήκευση αρχείων στη βάση δεδομένων Μεταφερόμαστε στην παραπάνω σελίδα όπως απεικονίζεται στην εικόνα 3.6. Ελέγχουμε αν είναι η βάση που θέλουμε, διαφορετικά μας δίνεται η επιλογή να αλλάξουμε. Επιλέγουμε το κουμπί select files και επιλέγουμε το αρχείο που θέλουμε να στείλουμε στον εξυπηρετητή. Μετά, μας δίνεται η δυνατότητα να το εισάγουμε ή όχι στη βάση, όπως στο σχήμα 3.7. Αν δεν πατηθεί το upload, τότε το αρχείο δεν θα αποθηκευτεί στη βάση δεδομένων. Διαφορετικά, θα μας ενημερώσει το σύστημα ότι εισάχθηκαν στη βάση οι RDF τριπλέτες, όπως στο σχήμα 3.8. Τέλος, υπάρχει η δυνατότητα να δηλώσει ο χρήστης όποιο όνομα επιθυμεί για το γράφο που θα δημιουργηθεί από το αρχείο που θα εισάγει.

3.5 Pubby 37 Σχήμα 3.7.: Διεπαφή Fuseki για αποθήκευση ή διαγραφή αρχείων Σχήμα 3.8.: Διεπαφή Fuseki για επιτυχή αποθήκευση αρχείων 3.5. Pubby Το Pubby είναι μία εφαρμογή ανοιχτού κώδικα που έχει την άδεια Apache και δημιουργήθηκε από το πανεπιστήμιο Freie Universitat του Βερολίνου. Πιο συγκεκριμένα, είναι ένα frontend για Διασυνδεδεμένα δεδομένα που προσθέτει μία μορφοποιημένη διεπαφή στα SPARQL endpoints.με τον τρόπο αυτό, μπορούν να αναπαρασταθούν οι σχέσεις των δεδομένων μίας RDF βάσης και να γίνουν κατανοητά από τον οποιοδήποτε. Παρακάτω αναφέρονται τα χαρακτηριστικά του Pubby: Παρέχει deferenceables URIs(μοναδικά για κάθε πόρο) ξαναγράφοντας τα URIs που είναι αποθηκευμένα στη SPAQRL βάση

38 Εργαλεία για την υλοποίηση της εφαρμογής Προσφέρει μία απλή HTML διεπαφή παρουσιάζοντας τα χαρακτηριστικά κάθε πόρου Χειρισμός των ανακατευθύνσεων 303 και της διαπραγμάτευσης περιεχομένου Περιέχει επέκταση για προσθήκη μεταδεδομένων στα παρεχόμενα δεδομένα 3.5.1. Αρχιτεκτονική του Pubby Σχήμα 3.9.: Αναπαράσταση αρχιτεκτονικής του Pubby Πολλές βάσεις δεδομένων στη μορφή τριπλέτας(υποκείμενο-κατηγόρημααντικείμενο) και άλλα SPARQL τερματικά μπορούν έχουν πρόσβαση μόνο από SPARQL client applications(εφαρμογές πελάτη), οι οποίες χρησιμοποιούν το SPARQL πρωτόκολλο. To Pubby είναι σχεδιασμένο να παρέχει μία Διεπαφή για Σημασιολογικά Δεδομένα μόνο με αυτή τη μορφή πελάτων, οποιαδήποτε άλλη δεν εξυπηρετείται. Στην RDF, μόνο τα υποκείμενα ταυτοποιούνται με URIs. Τα URIs που χρησιμοποιούνται στα σύνολα δεδομένων της SPARQL δεν είναι dereferenceable, δηλαδη δεν μπορούν να γίνουν προσβάσιμα από τους browser του Σημασιολογικού Ιστού και επιστρέφουν το

3.5 Pubby 39 γνωστό σε όλους λάθος 404 NOT FOUND. Όταν γίνεται η εγκατάσταση του Pubby θα πρέπει να διαμορθωθεί το configuration, δηλαδή το αρχείο αντιστοίχησης που θα μετατρέπει τα URIs της βάσης δεδομένων σε deferenceable URIs, τα οποία θα διαχειρίζεται το Pubby. Για παράδειγμα, αν ο εξυπηρετητής είναι ενεργός στη διεύθυνση http://myserver.org:8080/pubby/, τότε το URI της Ελλάδας θα αντιστοιχηθεί στο http://myserver.org:8080/pubby/greece. To Pubby χειρίζεται requests(αιτήσεις στον εξυπηρετητή από εφαρμογές πελάτη) στα mapped URIs, δηλαδή αυτά που έχουν αντιστοιχηθεί με το configuration αρχείο. Με τον τρόπο αυτό, τα mapped URIs συνδέονται με το SPARQL τερματικό, το οποίο ζητάει πληροφορίες για τα URIs και στέλνει τα αποτελέσματα στην εφαρμοφή πελάτη. Το Pubby διαχειρίζεται, επίσης, την ανακατεύθυνση 303 που απαιτείται από την αρχιτεκτονική του Ιστού και τη διαχείρηση περιοχομένου μεταξύ της HTML, RDF/XML και Turtle για τον ίδιο πόρο. Για τη λειτουργία του Pubby απαιτείται η χρήση ενός servlet όπως o Apache Tomcat και o Jetty. 3.5.2. Configuration Αρχείο To Configuration αρχείο του Pubby ακολουθεί τη σύνταξη Turtle. Ξεκινά με τη δήλωση των prefixes, ακολουθούν οι ρυθμίσεις του εξυπηρετητή και τέλος, δηλώνονται οι ρυθμίσεις για τα σύνολα των δεδομένων. Σχήμα 3.10.: Παράδειγμα αρχείου Configuration

40 Εργαλεία για την υλοποίηση της εφαρμογής Πιο αναλυτικά για τις ρυθμίσεις του εξυπηρετητή: conf:projectname Project Name conf:webbase <server_base_uri> conf:defaultlanguage en conf:useprefixesfrom <file.rdf> conf:dataset [... ] Ανάλυση ρυθμίσεων του εξυπηρετητή Το όνομα της εφαρμογής που θα είναι ορατό στις σελίδες. Απαιτείται η δήλωση αυτή.ουσιαστικά,δηλώνει που είναι αποθηκευμένο το Pubby. Συνήθως, είναι http://myserver/mydataset/ όπου dataset μπορεί ο καθένας να δηλώσει ό,τι όνομα θέλει Σε πολλά σύνολα δεδομένων, υπάρχουν παραπάνω από δύο γλώσσες. Αυτή η δήλωση ορίζει ότι οι ετικέτες και τα μεταδεδομένα των HTML σελίδων θα είναι στην προκειμένη περίπτωση στα αγγλικά. Στη νέα έκδοση του Pubby τα prefixes δεν αναγνωρίζονται από το configuration αρχείο. Χρειάζεται να είναι δηλωμένα σε ένα αρχείο της μορφής rdf, το οποίο θα βρίσκεται στον εξυπηρετητή έτσι ώστε να παρουσιάζονται τα prefixes στις HTML σελίδες Απαιτείται η δήλωση αυτή. Πρακτικά, δηλώνει την έναρξη των ρυθμίσεων για τα σύνολα δεδομένων. Αν υπάρχουν περισσότερα από ένα, αντίστοιχη διαδικασία θα πρέπει να γίνει για όλα. Σχήμα 3.11.: Ρυθμίσεις του εξυπηρετητή Έτσι, για τις ρυθμίσεις του dataset έχουμε: conf:sparqlendpoint <sparql_endpoint_url> conf:datasetbase <dataset_uri_prefix> Ανάλυση ρυθμίσεων του dataset Απαιτείται η δήλωση αυτή. Το URL του SPARQL τερματικού που θα τοποθετήσουμε τα δεδομένα μας Απαιτείται η δήλωση αυτή. Το URI που έχουν οι πόροι στο dataset. Μόνο οι πόροι με αυτό το $URI prefix$ θα αντιστοιχηθούν από το configuration αρχείο και θα γίνουν διαθέσιμοι από το Pubby. Σχήμα 3.12.: Ρυθμίσεις του dataset

3.6 Οντολογίες που χρησιμοποιήθηκαν 41 3.6. Οντολογίες που χρησιμοποιήθηκαν Σχήμα 3.13.: Ένας γράφος με οντολογίες Στο κεφάλαιο αυτό θα αναλύσουμε ποιες οντολογίες χρησιμοποιήσαμε για την εργασία. Αυτές είναι η Dublin Core Metadata Initiative, η FABio και η FOAF. Στο παραπάνω σχήμα 3.13 απεικονίζεται χαρακτηριστικά ο λόγος που χρησιμοποιούμε τις οντολογίες. Οι οντολογίες ορίζουν ιδιότητες των πόρων Ιστού που αναφέρονται σε ένα συγκεκριμένο γνωστικό πεδίο. Αναλύοντας το σχήμα 3.13 δηλώνεται ότι o άνθρωπος με το όνομα King Henry VIII και ο άνθρωπος με το όνομα Elizabeth of York είναι οι δημιουργοί του ανθρώπου με όνομα King Henry VII. Χρησιμοποιώντας τις ιδιότητες foaf:name, dc:creator και foaf:person προσδώσαμε στους πόρους επιπλέον χαρακτηριστικά που δεν θα μπορούσε να επιτευχθεί χωρίς τη χρήση των ήδη γνωστών οντολογιών. [OH]

42 Εργαλεία για την υλοποίηση της εφαρμογής 3.6.1. Dublin Core Σχήμα 3.14.: Η πρωτοβουλία Dublin Core Metadata Initiative στοχεύει στο να αναπτύξει πρότυπα για μεταδεδομένα (δεδομένα για τα δεδομένα) που περιγράφουν ψηφιακά αντικείμενα, ώστε να διευκολύνεται η ανάκτηση και ανακάλυψη τους. Η υλοποίηση του βασίζεται στις μεταγλώσσες XML και RDF και εξαιτίας της απλότητάς του έχει καταστεί το πιο διαδεδομένο πρότυπο μεταδεδομένων. Στο χώρο ονομάτων purl.org ορίζει τις εξής ιδιότητες: abstract, accessrights, accrualmethod, accrualperiodicity, accrualpolicy, alternative, audience, available, bibliographiccitation, conformsto,contributor, coverage, created, creator, date, dateaccepted, datecopyrighted, datesubmitted, description, educationlevel, extent, format, hasformat, haspart, hasversion, identifier, instructionalmethod, isformatof, ispartof, isreferencedby, isreplacedby, isrequiredby, issued, isversionof, language, license, mediator, medium, modified, provenance, publisher, references, relation, replaces, requires, rights, rightsholder, source, spatial, subject, tableofcontents, temporal, title, type, valid. Στο χώρο ονομάτων ορίζει τις ιδιότητες και η συντόμευση της είναι dc: contributor, coverage, creator, date, description, format, identifier, language, publisher, relation, rights, source, subject, title, type. Οι ιδιότητες που χρησιμοποιήθηκαν είναι οι dc:creator, dc:identifier, dc:title, dc:date, dc:source, και dc:subject. Περιγράφουν το δημιουργό του πόρου, ένα μοναδικό του χαρακτηριστικό, τον τίτλο του, την ημερομηνία δημοσίευσης του πόρου, το URL του καθώς και το γνωστικό πεδίο που ανα-

3.6 Οντολογίες που χρησιμοποιήθηκαν 43 φέρεται αντίστοιχα. [W3C] 3.6.2. FaBiO Η FaBiO(FRBR-aligned Bibliographic Ontology) είναι μία οντολογία για καταγραφή και δημοσίευση στο Σημασιολογικό Ιστό βιβλιογραφικών δημοσιεύσεων εκπαιδευτικών ή επιστημονικών προσπαθειών. Oι οντότητες που περιγράφονται από τη FaBiO είναι βιβλία, περιοδικά, εφημερίδες, δημοσιεύσεις σε συνέδρια, ποιήματα. Παρ όλα αυτά, περιλαμβάνει ιδιότητες για ιστολόγια, ιστότοπους, σύνολα δεδομένων, αλγόριθμους υπολογιστών, πειραματικά πρωτόκολλα, επίσημες προδιαγραφές και λεξιλόγια, κυβερνητικά έγγραφα, τεχνικές και εμπορικές δημοσιεύσεις και άλλες παρόμοιες συλλογές. Οι κλάσεις της FaBiO είναι δoμημένες σύμφωνα με το FRBR Schema of Works, Expressions, Manifestations and Items. Παραπάνω ιδιότητες προστέθουν στην οντολογία και οι συσχετίσεις που έχει το μοντέλο μεταξύ των τεσσάρων οντοτήτων του. Δηλαδή, η σύνδεση των Works και Μanifestations μας δίνει τις εξής ιδιότητες, fabio:hasmanifestation και fabio:ismanifestationof, η σύνδεση του Works και Items τις fabio:hasportrayal και fabio:isportrayedby, ενώ η σύνδεση Expressions και Items παράγει αυτές τις ιδιότητες, fabio:hasrepresentation και fabio:isrepresentedby. Οι παραπάνω ιδιότητες γίνοται καλύτερα αντιληπτές από το σχήμα 3.15. Αποτελεί μέρος της SPAR(Semantic Publishing and Referencing Ontologies) και χρησιμοποεί τον χώρο prefix, fabio. [DS]

44 Εργαλεία για την υλοποίηση της εφαρμογής Σχήμα 3.15.: Οντότητες της FaBiO και οι συσχετίσεις τους Στην εργασία αυτή θα χρησιμοποιηθούν η ιδιότητα fabio:book,fabio:magazinearticle και η fabio:journalarticle. Η πρώτη ιδιότητα δηλώνει ότι μία εγγραφή είναι βιβλίο, η δεύτερη άρθρο σε περιοδικό και η τρίτη δημοσίευση σε συνέδριο. Οι κλάσεις της FaBiO φαίνονται στο σχήμα 3.16: Σχήμα 3.16.: Οι κλάσεις της FaBiO σχηματικά

3.6 Οντολογίες που χρησιμοποιήθηκαν 45 3.6.3. FOAF Το έργο FOAF (Friend Of a Friend) έχει ως σκοπό τη διασύνδεση ανθρώπων και πληροφοριών μέσω του Σημασιολογικού Ιστού. Διατηρεί μία RDFS/OWL οντολογία που εκφράζει πρόσωπα και ομάδες, τις δραστηριότητες τους, και τις σχέσεις τους με άλλα πρόσωπα ή αντικείμενα. To λεξιλόγιο αναγνωρίζεται από το URI χώρου ονομάτων. Αποτελείται από τρεις κατηγορίες. Αυτές είναι η Core, η Social Web και τα Linked Data Utilities. Οι ιδιότητες που χρησιμοποιούνται στην συγκεκριμένη εργασία είναι οι foaf:familyname και foaf:givenname, για το επίθετο και το όνομα αντιστοίχως ενός συγγραφέα των Επιστημονικών Δημοσιεύσεων του τμήματος Πληροφορικής του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. [DB13]

4 Υλοποίηση Στο κεφάλαιο αυτό δίνεται η αναλυτική διατύπωση του προβλήματος, οι προαπαιτήσεις και η πλήρης αρχιτεκτονική, γίνεται ανάλυση των αποτελεσμάτων και εξηγούνται οι τρόποι εκτέλεσης. 4.1. Η διατύπωση του προβλήματος Το ΙΚΕΕ (Ιδρυματικό Καταθετήριο Επιστημονικών Εργασιών του ΑΠΘ) είναι ένας χώρος συγκέντρωσης, διαφύλαξης και διάδοσης της ερευνητικής παραγωγής του διδακτικού και ερευνητικού προσωπικού του Αριστοτελείου Πανεπιστημίου Θεσσαλονίκης. Ταξινομεί τα έγγραφα του σε τρεις κατηγορίες, τις Επιστημονικές Εργασίες Μελών ΔΕΠ ΑΠΘ (Αριστοτέλειο Πανεπιστήμιο Θεσσαλονίκης),τις Διδακτορικές και Μεπτυχιακές Διατριβές αλλά και τα Ανοιχτά Ακαδημαϊκά Μαθήματα ΑΠΘ. Στην παρούσα εργασία, θα επικεντρωθούμε στις Επιστημονικές Εργασίες των Μελών ΔΕΠ του τμήματος Πληροφορικής του ΑΠΘ και στη δημοσίευση τους ως Ανοιχτά Διασυνδεδεμένα Δεδομένα. Τα δεδομένα αυτά θα δημοσιευθούν στον ιστοχώρο lod.csd.auth.gr, τον οποίο δημιούργησε το τμήμα Πληροφορικής του ΑΠΘ για καταστήσει τα δεδομένα του ανοιχτά με τη μορφή RDF. Η μεθοδολογία της εξαγωγής των δεδομένων από τον ιστότοπο του ΙΚΕΕ που ακολουθήθηκε για τις Επιστημονικές Δημοσιεύσεις είναι μία γενική διαδικασία που θα μπορούσε να χρησιμοποιηθεί και για τις άλλες κατηγορίες του. Ακόμα, η μετατροπή των δεδομένων αυτών σε RDF και η δημοσίευση τους ως Ανοιχτά Διασυνδεδεμένα δεδομένα έχει υλοποιηθεί από εργαλεία 47

48 Υλοποίηση ανοιχτού κώδικα που την καθιστά εύκολη ακόμα και σε χρήστες με μη εξειδικευμένες προγραμματιστικές γνώσεις. Τέλος, θα μπορούσε το παρακάτω κεφάλαιο να θεωρηθεί ως πλήρης οδηγός μετατροπής XML αρχείου σε Aνοιχτά Διασυνδεδεμένα Δεδομένα. Σχήμα 4.1.: Αποτελέσματα του ΙΚΕΕ για Επιστημονικές Εργασίες της Πληροφορικής ΑΠΘ Σχήμα 4.2.: Χαρακτηριστικά μίας εγγραφής του ΙΚΕΕ Όπως φαίνεται και στο σχήμα 4.1, οι Επιστημονικές εργασίες των Με-

4.1 Η διατύπωση του προβλήματος 49 λών ΔΕΠ του τμήματος Πληροφορικής χωρίζονται σε τρεις κατηγορίες οι οποίες είναι Άρθρα σε περιοδικά, Δημοσιεύσεις σε συνέδρια όπως και Βιβλία και λοιπές εκδόσεις. Κάθε εγγραφή του παρουσιάζεται στο χρήστη όπως στο σχήμα4.2. Το IKEE, εκτός από τη HTML brief μορφή, προσφέρει τα αποτελέσματα του και ως Dubin Core Metadata. Αυτό καθιστά εύκολη την μετατροπή τους σε RDF τριπλέτες αφού το πρότυπο Dublin Core έχει δενδρική δομή. Για τις ανάγκες του συγκεκριμένου XML δημιουργήθηκε ένας στοιχειώδης parser που εξάξει τις πληροφορίες από τις Dublin Core ετικέτες του XML αρχείου και δημιουργεί το σύνολο δεδομένων RDF με τη χρήση του προγραμματιστικού μοντέλου Jena. Αυτό το σύνολο θα το εισάγουμε στον εξυπηρετητή, Apache Jena Fuseki, ο οποίος ακούει στη διέυθυνση http://lod.csd.auth.gr:3030/. Αυτός, με τη σειρά του το αποθηκεύει στη βάση δεδομένων Jena TBD. Ακόμα, προσφέρεται ένα SPARQL τερματικό από την πλευρά του εξυπηρετητή, γεγονός που δίνει τη δυνατότητα στους χρήστες να θέτουν ερωτήματα σε RDF τριπλέτες. Τέλος, τα αποτελέσμα των αναζητήσων του χρήστη οπτικοποιούνται με μία φιλική διεπαφή ως προς τον άνθρωπο χρησιμοποιώντας το εργαλείο Pubby. 4.1.1. Προαπαιτήσεις Οι απαιτήσεις της εφαρμογής είναι οι εξής: Βασική προυπόθεση είναι η ύπαρξη του XML αρχείου αποτελεσμάτων στη μορφή Dublin Core από την ιστοσελίδα του ΙΚΕΕ Το αρχείο Confuguration(config.ttl) του Pubby θα πρέπει να έχει τις ρυθμίσεις που φαίνονται παρακάτω στο σχήμα 4.5 <> a conf:configuration; # Project name for display in page titles conf:projectname Linked Data AUTH ; conf:projecthomepage <http://localhost:8080/ikee/>; # The Pubby root, where the webapp is running inside the servlet container.

50 Υλοποίηση. conf:webbase <http://localhost:8080/ikee/>; conf:indexresource <http://localhost:8080/ikee/collection>; conf:useprefixesfrom <>; # If labels and descriptions are available in multiple languages, # prefer this one. conf:defaultlanguage en ; # When the homepage of the server is accessed, this resource will be shown. # Dataset configuration section # URIs on the Web: conf:dataset [ # SPARQL endpoint URL of the dataset conf:sparqlendpoint <http://localhost:3030/dataset/query>; # Default graph name to query (not necessary for most endpoints) conf:datasetbase <http://localhost:8080/ikee/>; # Will be appended to the conf:webbase to form the public # resource URIs; if not present, defaults to conf:dataseturipattern (records authors)/.* ; ]; Listing 4.1: Το αρχείο configuration file Για να είναι ορατά τα prefixes στο browser και να μην εμφανίζονται?(ερωτηματικό) στη θέση τους, είναι απαραίτητο να δημιουργήσετε ένα αρχείο με το όνομα prefixes.n3. Αυτό θα πρέπει να τοποθετηθεί στον εξυπηρετητή που θα ανεβεί η βάση δεδομένων. Στην παρούσα εργασία

4.1 Η διατύπωση του προβλήματος 51 χρησιμοποίησα αυτά τα prefixes, οπότε αυτά και πρόσθεσα στο αρχείο prefixes.n3 όπως απεικονίζεται στο σχήμα 4.2: @prefix conf: <http://richard.cyganiak.de/2007/pubby/config.rdf#>. @prefix meta: <http://example.org/metadata#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>. @prefix xsd: <http://www.w3.org/2001/xmlschema#>. @prefix owl: <http://www.w3.org/2002/07/owl#>. @prefix dc: <http://purl.org/dc/elements/1.1/>. @prefix dcterms: <http://purl.org/dc/terms/>. @prefix skos: <http://www.w3.org/2004/02/skos/core#>. @prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#>. @prefix dbpedia: <http://localhost:8080/resource/>. @prefix p: <http://localhost:8080/property/>. @prefix yago: <http://localhost:8080/class/yago/>. @prefix geonames: <http://www.geonames.org/ontology#>. @prefix doap: <http://usefulinc.com/ns/doap#>. @prefix foaf: <http://xmlns.com/foaf/0.1/>. @prefix fabio: <http://purl.org/spar/fabio/>. Listing 4.2: Τα prefixes της εφαρμογής 4.1.2. Αρχιτεκτονική Εφαρμογής Η ενότητα αυτή αναλύει την αρχιτεκτονική της εφαρμογής. Καταρχάς, θα αναλυθεί ο τρόπος εξαγωγής των δεδομένων από τις ετικέτες του προτύπου Dublin Core μέσω του parser που δημιουργήθηκε ειδικά για το συγκεκριμένο XML αρχείο. Μετά, θα περιγράψουμε τη μετατροπή των δεδομένων σε Διασυνδεδεμένα Δεδομένα και τέλος, θα τα δημοσιεύσουμε ως Ανοιχτά Διασυνδεδεμένα Δεδομένα.

52 Υλοποίηση 4.1.3. Λήψη Αρχείου Ο πιο εύκολος τρόπος για την απόκτηση του αρχείου στον υπολογιστή μας είναι με το να επιλέξουμε στη φόρμα του ΙΚΕΕ (σχήμα 4.3) τα χαρακτηριστικά που θέλουμε να έχουν τα αποτελέσματα της αναζήτησης. Δηλαδή, αν τα θέλουμε ταξινομημένα ανά συλλογή, πόσα να εμφανίζονται στη σελίδα και άλλα. Το πιο σημαντικό πεδίο είναι αυτό της μορφής των αποτελεσμάτων που πρέπει να δηλωθεί ως Dublin Core για να ακολουθηθεί η παρακάτω διαδικασία. Μετά, πατάμε το κουμπί αναζήτηση. Όταν πατηθεί το κουμπί ανοίγει αυτόματα μία νέα σελίδα που περιέχει τα αποτελέσματα σε Dublin Core. Αυτή η σελίδα μπορεί να αποθηκευτεί στον υπολογιστή ως αρχείο xml. Σχήμα 4.3.: Φόρμα Αναζήτησης του ΙΚΕΕ 4.1.4. Επεξεργασία XML αρχείου σε μορφή Dublin Core To XML αρχείο (4.3) από τον ιστοχώρο του ΙΚΕΕ είναι σε μορφή DCXML. Δεν έχει διαφορά από τη διαδικασία που θα επιτελούσαμε για να επεξεργαστούμε ένα XML αρχείο. Η μόνη διαφορά είναι ότι τα δεδομένα του περιέχονται σε ετικέτες της μορφής dc:title και άλλες. Στη συγκεκριμένη εργασία θα ασχοληθούμε με τις ετικέτες dc:identifier, dc:creator, dc:title, dc:date, dc:source, και dc:subject. Ας αναλύσουμε λίγο για ποιο λόγο χρησιμοποιούμε αυτές τις ετικέτες. Η dc:identifier αναπαριστά το μοναδικό αναγνωριστικό που δίνει το IKEE σε κάθε έγγραφο του και πάνω στο οποίο θα βασιστούμε για την κατασκευή των URIs των εγγραφών. Η ετικέτα dc:creator φέρει το ονοματεπώνυμο του συγγραφέα με τη μορφή <επίθετο, όνομα>. Η ετικέτα dc:title αποτελεί τον τίτλο του εγγράφου. Οι ετικέτες

4.1 Η διατύπωση του προβλήματος 53 dc:date, dc:source και dc:subject αναπαριστούν την ημερομηνία δημοσίευσης, το URL του ΙΚΕΕ και το γνωστικό πεδίο που κατατάσσεται το έγγραφο. 4.1.5. Κατασκευή επεξεργαστή αρχείου XML Αυτός ο αναλυτής αρχείου ή αλλιώς parser είναι υλοποιημένος στη γλώσσα προγραμματισμού Java. Listing 4.3: Κώδικας Dublin Core XML για ένα έγγραφο <dc:dc xmlns:dc= http://purl.org/dc/elements/1.1/ xmlns:invenio= http://invenio-software.org/elements/1.0 xmlns:xsi= http://www.w3.org/2001/xmlschema-instance xsi:schemalocation= http://www.openarchives.org/oai/2.0/oai_dc/ http://www.openarchives.org/oai/2.0/oai_dc.xsd > <dc:identifier>http://ikee.lib.auth.gr/record/284146</dc:identifier> <dc:language>eng</dc:language> <dc:creator>maniotis, P.</dc:creator> <dc:creator>gitzenis, S.</dc:creator> <dc:creator>tassiulas, L.</dc:creator> <dc:creator>pleros, Nikolaos</dc:creator> <dc:title> An optically-enabled chipmultiprocessor architecture using a single-level shared optical cache memory </dc:title> <dc:subject>computer and Information Science</dc:subject> <dc:identifier>ikeexref-284146</dc:identifier> <dc:identifier>oai:ikee.lib.auth.gr:284146</dc:identifier> <dc:identifier>http://ikee.lib.auth.gr/record/284146</dc:identifier> <dc:description> We present an optical bus-based chipmultiprocessor architecture where the processing cores share an optical single-level cache implemented in a separate chip next to the Central-Processing-Unit (CPU) die. The interconnection system is realized through Wavelength-Division-Multiplexed optical interfaces connecting the shared cache with the cores and the Main-Memory via spatial-multiplexed waveguides. Evaluating the proposed approach, we realize system-level simulations of a wide-range parallel workloads using Gem5. Optical cache architecture is compared against the conventional one that uses dedicated on-chip Level-1 electronic caches and a shared Level-2 cache. Results show significant Level-1 miss rate

54 Υλοποίηση reduction of up to 96% for certain cases; on average, a performance speed-up of 19.4% or cache capacity requirements reduction of ~63% is attained. Combined with high-bandwidth CPU-Dynamic Random Access Memory (DRAM) bus solutions based on optical interconnects, the proposed design is a promising architecture bridging the gap between high-speed optically connected CPU-DRAM schemes and high-speed optical memory technologies. </dc:description> <dc:source> Optical Switching and Networking, vol.22 no.c [2016] p.54-68 </dc:source> <dc:date>2016</dc:date> <dc:date.copyrighted>2016</dc:date.copyrighted> <dc:date.available>2016-08-30t10:50:53z</dc:date.available> <dc:date.modified>2016-09-04t20:02:19z</dc:date.modified> <dc:source>http://ikee.lib.auth.gr/record/284146</dc:source> <dc:doi>10.1016/j.osn.2016.05.001</dc:doi> </dc:dc> DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); DocumentBuilder dbuilder = dbfactory.newdocumentbuilder(); Document doc = dbuilder.parse(xmlfile); doc.getdocumentelement().normalize(); NodeList nlist = doc.getelementsbytagname( dc:dc ); Node rootnode=nlist.item(0); Element rootelement=(element)rootnode; for (int i = 1; i < nlist.getlength(); i++) { Element element = (Element) nlist.item(i); String identifier = dc:identifier ; String dc_source = getcontext(identifier, element, 0); String dc_identifier = getcontext(identifier, element, 1);... }

4.1 Η διατύπωση του προβλήματος 55 Listing 4.4: Κώδικας για ανάλυση XML αρχείου Στην main κλάση της εφαρμογής έχει δηλωθεί ένα στιγμιότυπο της DocumentBuilderFactory, το οποίο ορίζει ένα factory API που επιτρέπει να παράγονται DOM (Document Object Model) δενδρικά δένδρα από XML αρχεία. Έπειτα, με τη μέθοδο newdocumentbuilder() επιτρέπουμε την εισαγωγή ενός αρχείου που δηλώνεται στην επόμενη γραμμή με το όνομα xmlfile. Μετά, με τη μέθοδο getdocumentelement().normalize() κανονικοποιούμε το XML δένδρο. Στην ουσία, ομαδοποιεί τους κόμβους ή nodes με κοινές ετικέτες και απαλείφει τους άδειους. Έπειτα, δηλώνουμε τη λίστα στην οποία τοποθετούμε όλους τους κόμβους με ετικέτα dc:dc. Στη συνέχεια, με τη μέθοδο nlist.item(0) αποκτάται το πρώτο στοιχείο του κόμβου τον οποίο και θα διασχίσουμε για να εξάγουμε τα δεδομένα. Τέλος, στο βρόχο for γίνεται αυτή η διάσχιση δίνοντας σε κάθε επανάληψη την επόμενη ετικέτα που περιέχει ο κόμβος. Σχήμα 4.4.: Δύο nodes με dc:dc και τα παιδιά τους Βλέποντας το σχήμα 4.4, παρατηρούμε ότι κάθε ετικέτα μπορεί να περιέχεται μία, δύο ή και παραπάνω φορές. Έτσι, δημιουργήθηκαν τρεις συναρτήσεις χειρισμού των ετικετών με περισσότερες εμφανίσεις από μία. Οι συναρτήσεις αυτές καλούνται μέσα από το βρόχο for. Ο κώδικας τους είναι ο παρακάτω

56 Υλοποίηση στο σχήμα 4.8 public static String getone(string identifier,element element){ NodeList nodelists = element.getelementsbytagname(identifier); Node node = nodelists.item(0); String tag=node.gettextcontent(); } return tag; public static ArrayList<String > getauthors(string identifier,element element){ for (int j=0;j<nodelists.getlength();j++) { } Node node = nodelists.item(j); authors.add(node.gettextcontent()); } return authors; public static String getcontext(string identifier, Element element,int j) { NodeList nodelists = element.getelementsbytagname(identifier); Node node = nodelists.item(j); return node.gettextcontent();

4.1 Η διατύπωση του προβλήματος 57 } ArrayList<String> authors = getauthors( dc:creator, element); String title=getone( dc:title,element); String dc_source = getcontext(identifier, element, 0); String dc_identifier = getcontext(identifier, element, 1); Listing 4.5: Μέθοδοι για parser Έχουν επιλεχθεί οι εντολές ArrayList<String> authors, String title, String dc_source και String dc_identifier για να περιγραφεί η λειτουργία των συναρτήσεων αυτών. Η ετικέτα dc:creator μπορεί να έχει πολλούς συγγραφείς γι αυτό και η συνάρτηση που επεξεργάζεται αυτή την ετικέτα έχει Arraylist<String>. Ουστιαστικά, η συνάρτηση getauthors() αυτή διασχίζει τον κόμβο και αντιγράφει στην λίστα τα ονόματων των συγγραφέων. Τέλος, αυτή η λίστα στέλνεται στη main συνάρτηση για μετατροπή τους σε RDF δεδομένα. Η ετικέτα dc:title έχει μία μόνο εμφάνιση οπότε η συνάρτηση getone() θα επιστρέψει μία τιμή τύπου String. Η ετικέτα dc:source υλοποιείται από τη συνάρτηση getcontext() στέλνοντας 0. Αυτό συμβαίνει επειδή υπάρχουν στο XML εγγραφές που περιέχουν την ετικέτα dc:source διπλή φορά με τα ίδια δεδομένα, οπότε δεν υπολογίζουμε τη δεύτερη εμφάνιση. Η ετικέτα dc:identifier εμφανίζεται τρεις φορές σε κάθε κόμβο με την ίδια διάταξη όπως φαίνεται και στο σχήμα 4.6. Επειδή, έπρεπε να αποθηκευθεί μία τιμή ως dc:identifier προτιμήθηκε η δεύτερη, η οποία χρησιμοποιήθηκε και στα URIs των εγγράφων. <dc:identifier>ikeexref-284146</dc:identifier> <dc:identifier>oai:ikee.lib.auth.gr:284146</dc:identifier>

58 Υλοποίηση <dc:identifier>http://ikee.lib.auth.gr/record/284146 </dc:identifier> Listing 4.6: Ετικέτα dc:identifier Με την παραπάνω διαδικασία, όλα τα δεδομένα των Επιστημονικών Εργασιών του τμήματος Πληροφορικής ΑΠΘ είναι αποθηκεύμενα σε String μεταβλητές στη main συνάρτηση, έτοιμα για να μετατραπούν σε Διασυνδεδεμένα δεδομένα. 4.1.6. Μετατροπή των δεδομένων σε Διασυνδεδεμένα Δεδομένα Η μετατροπή των δεδομένων που έχουν εξαχθεί από το XML αρχείο θα γίνει με τη χρήση του προγραμματιστικού μοντέλου Jena API, όπως έχει περιγραφεί αναλυτικά. Θα δημιουργηθεί ένα Resource για κάθε έγγραφο της συλλογής και για κάθε συγγραφέα. Το κάθε Resource θα έχει το δικό του URI, δηλαδή το URI των εγγράφων θα είναι http://lod.csd.auth.gr:8080/ikee/records/ και θα ακολουθείται από το αναγνωριστικό του IKEE γι αυτό. Με τον ίδιο τρόπο, το URI των συγγραφέων θα είναι http://lod.csd.auth.gr:8080/ikee/authors/ και θα ακολουθείται από το όνομα του κάθε συγγραφέα σε πεζά αγγλικά γράμματα. Οι συγγραφείς στα δεδομένα που εξάγαμε έχουν όνομα και επίθετο. Αυτά θα πρέπει να προστεθούν ως ιδιότητες χρησιμοποιώντας το έργο FOAF και πιο συγκεκριμένα τις ιδιότητες VCARD.FN και VCARD.N. Η επεξεργασία αυτής της ετικέτας ήταν η πιο δύσκολη γιατί έπρεπε να εξαχθούν δεδομένα τα οποία έπρεπε να μετατραπούν μετά σε Linked Open Data. Το αρχείο XML δεν ακολουθεί έναν ενιαίο τρόπο για την αναπαράσταση των ονοματεπωνύμων. Οι διαφορετικές αναπαραστάσεις που παρατηρήθηκαν στο XML αρχείο ήταν οι εξής: Καθηγητές με δύο ονόματα δηλαδή Μαρία-Ελένη Καθηγητές που το όνομα τους ήταν το πρώτο γράμμα με μία τελεία,

4.1 Η διατύπωση του προβλήματος 59 δηλαδή Ν. Καθηγητές που είχαν δηλωθεί στo IKEE με ολόκληρο το όνομα τους αλλά και με την προηγούμενη αναπαράσταση, δηλαδη Nick και Ν. Καθηγητές με το ονοματεπώνυμο τους στα ελληνικά ενώ υπάρχει το όνοματεπώνυμο τους στα αγγλικα Για να μοντελοποιηθεί η διαδικασία εξαγωγής των δεδομένων από την dc:creator ετικέτα ακολουθήθηκε η παρακάτω διαδικασία. Στους καθηγητές με δύο ονόματα αποθηκεύτηκε μόνο το πρώτο. Σε κάθε καθηγητή ήλεγχα αν υπάρχει το επίθετο του στο μοντέλο. Αν ναι, δεν έμπαινε στο μοντέλο. Διαφορετικά, πρόσθετα νέο καθηγητή. Τέλος, τα όνοματα με τα ελληνικά γράμματα αποθηκεύτηκαν στη βάση κανονικά και δημιουργήθηκαν URIs με ελληνικούς χαρακτήρες. Από την άλλη, όλα τα έγγραφα του ΙΚΕΕ δεν είναι του ίδιου τύπου, όπως έχει αναφερθεί. Υπάρχουν τρία είδη, τα οποία είναι έγγραφα αλλά διαφορετικού τύπου. Αυτό θα δηλωθεί στο RDF με την οντολογία FaBiO, από την οποία θα χρησιμοποηθούν οι ετικέτες fabio:journalarticle για να περιγραφούν οι δημοσιεύσεις σε συνέδρια, η fabio:magazinearticle για τα άρθρα σε περιοδικά και τέλος, η fabio:book για τα βιβλία. Ο διαχωρισμός των εγγράφων έγινε με βάση το αναγνωριστικό του ΙΚΕΕ για τα αρχεία. Παρουσιάζεται παρακάτω: Όταν το ανανωριστικό περιέχει CONF ή CONFAN αναφέρεται σε δημοσίευση συνεδρίου Όταν το ανανωριστικό περιέχει ART αναφέρεται σε άρθρα περιοδικού Όταν το ανανωριστικό περιέχει BOOK αναφέρεται σε βιβλίο Όλες τις παραπάνω ιδιότητες που χρησιμοποιούμε από τις οντολογίες, τις εισάγουμε στο Resource με τη μέθοδο addproperty(). Ακόμα, για να δηλώσω στη JAVA ότι ένα έγγραφο είναι τύπου βιβλίο χρησιμοποιώ αυτή τη δήλωση model.add(record, RDF.type,BooksNS).

60 Υλοποίηση Ας δούμε τον κώδικα 4.7 της JAVA για τα παραπάνω στο σχήμα String scientificworksuri = http://lod.csd.auth.gr:8080/dataset/ ; String namespaceauthor= http://lod.csd.auth.gr:8080/ikee/authors/ ; String namespacerecords = http://lod.csd.auth.gr:8080/ikee/records/ ; String PersonNS= http://xmlns.com/foaf/0.1/person/ ; String FabioNamespace= http://purl.org/spar/fabio/ ; Resource Author = model.createresource(namespaceauthor + fullname.tolowercase().replace(., )). addproperty(foaf.family_name, fullname).addproperty(foaf.name, name); model.add(author, RDF.type, PersonNS); if (dc_identifier.contains( CONF ) dc_identifier.contains( CONFAN )) { record=model.createresource(recordsns+dc_identifier); model.add(record, RDF.type,JournalArticleNS); record.addproperty(dc.source,dc_source).addproperty (DC.identifier,dc_identifier); }else if (dc_identifier.contains( ART )){ record=model.createresource(recordsns+dc_identifier); model.add(record, RDF.type,MagazineArtileNS); record.addproperty(dc.source,dc_source).addproperty (DC.identifier,dc_identifier);

4.1 Η διατύπωση του προβλήματος 61 } else{ record=model.createresource(recordsns+dc_identifier); model.add(record, RDF.type,BooksNS); record.addproperty(dc.source,dc_source).addproperty (DC.identifier,dc_identifier); } Listing 4.7: Κώδικας για την παραγωγή RDF δεδομένων Όλα τα Resources προστίθενται στο Model και μετά αυτό με την εντολή model.write(system.out) επιστρέφει τα RDF δεδομένα που δημιουργήσαμε με το προγραμματιστικό πλαίσιο Jena RDF API. 4.1.7. Δημοσίευση των Διασυνδεδεμένων δεδομένων Έχοντας δημιουργήσει το σύνολο RDF δεδομένων από τις Επιστημονικές εργασίες του ΑΠΘ, ήρθε η ώρα να τις δημοσιεύσουμε στον Ιστό. Αυτό θα γίνει όπως περιγράφηκε αναλυτικά στο 3.4.2 με το Apche Fuseki, ο οποίος προσφέρει την απαραίτητη διεπαφή για προσθήκη συνόλων στη βάση δεδομένων TBD. Μπορεί, όμως, να προστεθεί το σύνολο δεδομένων κατευθείαν στον εξυπηρετητή μέσα από τον κώδικα της Java με τις εντολές που απεικονίζονται στο σχήμα 4.8: DatasetAccessor accessor = DatasetAccessorFactory.createHTTP( http://lod.csd.auth.gr:3030/ikee/data ); accessor.putmodel(model); Listing 4.8: Ο τρόπος εισαγωγής στοιχείου με τη JAVA Αφού έχουμε τοποθετήσει τα δεδομένα στον εξυπηρετητή με τους παραπάνω τρόπους, μπορούμε να θέσουμε ερωτήματα μέσω του SPARQL τερματικού πάνω σε αυτά. Το πιο απλό ερώτημα σε γλώσσα SPARQL απεικονίζεται στο σχήμα 4.5

62 Υλοποίηση Σχήμα 4.5.: Ενα ερώτημα (query) σε SPARQL Το αποτέλεσμα του ερωτήματος αυτού είναι στο παρακάτω σχήμα Σχήμα 4.6.: Αποτελέσματα αναζήτησης από το SPARQL τερματικό Το εργαλείο Pubby παρουσιάζει τις ιδιότητες του συγγραφέα και των εγ-

4.1 Η διατύπωση του προβλήματος 63 γραφών όπως φαίνεται στις επόμενες εικόνες αντίστοιχα. Σχήμα 4.7.: Διεπαφή του Pubby για συγγραφέα Σχήμα 4.8.: Διεπαφή του Pubby για εγγραφή