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

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

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

Transcript

1 Α Ρ Ι Σ Τ Ο Τ Ε Λ Ε Ι Ο Π Α Ν Ε Π Ι Σ Τ Η Μ Ι Ο Θ Ε Σ Σ Α Λ Ο Ν Ι Κ Η Σ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ Π Τ Υ Χ Ι Α Κ Η Ε Ρ ΓΑ Σ Ι Α ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ Semantic modeling of cloud computing applications and services ΘΕΟΔΩΡΑ ΤΑΣΙΑ AEM: 3135 ΕΠΙΒΛΕΠΩΝ ΚΑΘΗΓΗΤΗΣ: Ν. Βασιλειάδης, Καθηγητής Τμήματος Πληροφορικής ΑΠΘ ΘΕΣΣΑΛΟΝΙΚΗ 2021 i

2 ii

3 ΠΕΡΙΛΗΨΗ Π Ε Ρ Ι Λ Η Ψ Η Το υπολογιστικό νέφος έχει φέρει επανάσταση στην πληροφορική και έχει γίνει μια δημοφιλής προσέγγιση για την παροχή υπολογιστικής υποδομής με εύκολη και επεκτάσιμη πρόσβαση σε υπολογιστικούς πόρους. Μία από τις σημαντικότερες προκλήσεις σε αυτόν τον τομέα είναι η διαλειτουργικότητα, καθώς πολλοί προμηθευτές έχουν εισαγάγει διαφορετικές προσεγγίσεις και υπηρεσίες, καθιστώντας το περιβάλλον του υπολογιστικού νέφους διαφορετικό και ετερογενές. Επιπλέον, η δυνατότητα μεταφοράς υπηρεσιών νέφους μεταξύ διαφορετικών περιβαλλόντων και προμηθευτών, η τυποποίηση των ορισμών των υπηρεσιών και η ανεξαρτησία από τον προμηθευτή, μπορούν να βοηθήσουν τις τεχνολογίες, που είναι βασισμένες στο υπολογιστικό νέφος, να φτάσουν στο επόμενο επίπεδο. Η προδιαγραφή TOSCA (OASIS Standard) είναι από τα πιο γνωστά πρότυπα που εστιάζει στη διαλειτουργική περιγραφή των εφαρμογών και των υπηρεσιών της υποδομής νέφους. Στόχος της είναι η ενίσχυση του αυτοματισμού, της φορητότητας και της λειτουργικής διαχείρισης εφαρμογών και υπηρεσιών υπολογιστικού νέφους. Οι τεχνολογίες του Σημασιολογικού Ιστού και, ιδίως, οι οντολογίες και η συλλογιστική μπορούν να προωθήσουν τη διαλειτουργικότητα και τους έξυπνους μηχανισμούς υποστήριξης αποφάσεων για διάφορες υπηρεσίες που βασίζονται στο σύννεφο, παρέχοντας αποτελεσματική διαλειτουργικότητα μεταξύ των συστημάτων και των πόρων, που είναι βασισμένοι στο νέφος. Για παράδειγμα, η αναπαράσταση των μοντέλων TOSCA ως γράφοι RDF, μπορεί να επιτρέψει τον σημασιολογικό εμπλουτισμό των μοντέλων με γνώση πεδίου και πρόσθετων συσχετίσεων μέσω κανόνων συμπερασμού, καθώς επίσης και τη δομημένη προσπέλαση και επικύρωση των παραγόμενων γράφων RDF. Αντικείμενο της παρούσας εργασίας είναι η σημασιολογική μοντελοποίηση εφαρμογών και υπηρεσιών υπολογιστικού νέφους με τη χρήση τεχνολογιών Σημασιολογικού Ιστού. Πιο συγκεκριμένα, στόχος είναι ο σχεδιασμός οντολογιών και σημασιολογικών πλαισίων αναπαράστασης, αναζήτησης και επαλήθευσης εφαρμογών υπολογιστικού νέφους που περιγράφονται στο πρότυπο TOSCA. Προς αυτήν την κατεύθυνση, η παρούσα πτυχιακή εργασία ασχολείται με τον σχεδιασμό και την ανάπτυξη μιας μεθοδολογίας μετασχηματισμού δομών TOSCA σε RDF γράφους, χρησιμοποιώντας την σημασιολογία και τις δομές που προσφέρει η γλώσσα οντολογιών OWL 2. Λέξεις κλειδιά: Σημασιολογικός Ιστός, OWL, TOSCA. ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ iii

4 iv

5 ABSTRACT A B S T R A C T Cloud computing has revolutionised IT and has become a popular paradigm for the provision of computing infrastructure with convenient and scalable access to computing resources. One of the most important challenges in this domain is interoperability, since numerous vendors have introduced different paradigms and services, making the cloud landscape diverse and heterogeneous. In addition, the ability to move cloud services between different cloud environments, standardised service definitions, and be vendor independent, can help technologies based on cloud computing reach the next level. The TOSCA specification (OASIS Standard) is among the most known standard that focuses on the interoperable description of application and infrastructure cloud services. It aims to enhance the automation, portability and functional management of cloud computing applications and services. Semantic Web technologies and, particularly, ontologies and reasoning can promote interoperability and intelligent decision support mechanisms for various cloudbased services, providing effective interoperability among the Cloud based systems and resources. For example, the representation of TOSCA models as RDF graphs can allow the semantic enrichment of the models with domain knowledge and additional correlations through inference rules, as well as the structured access and validation of the generated RDF graphs. The purpose of this thesis is the semantic modeling of cloud computing applications and services. More specifically, the goal is to design ontologies and semantic frameworks for the representation, search and validation of cloud computing applications described in the TOSCA standard. Τowards this direction, this thesis deals with the design and development of a methodology for transforming TOSCA structures into RDF graphs, using the semantics and structures offered by the OWL 2 ontology language. Keywords: Semantic Web, OWL, TOSCA SEMANTIC MODELING OF CLOUD COMPUTING APPLICATIONS AND SERVICES v

6 vi

7 ΕΥΧΑΡΙΣΤΙΕΣ Ε Υ Χ Α Ρ Ι Σ Τ Ι Ε Σ Πριν την παρουσίαση των αποτελεσμάτων της παρούσας πτυχιακής εργασίας, αισθάνομαι την υποχρέωση να ευχαριστήσω ορισμένους από τους ανθρώπους με τους οποίους συνεργάστηκα και έπαιξαν πολύ σημαντικό ρόλο στην πραγματοποίησή της, καθώς και τους ανθρώπους που αποτέλεσαν σημαντικό ψυχικό εφόδιο για την ολοκλήρωση των σπουδών μου. Αρχικά, θα ήθελα να ευχαριστήσω τον Καθηγητή του Τμήματος Πληροφορικής του ΑΠΘ, κύριο Νικόλαο Βασιλειάδη για την εμπιστοσύνη που μου έδειξε στην ανάθεση της συγκεκριμένης πτυχιακής εργασίας. Επίσης, θα ήθελα να εκφράσω τις ευχαριστίες μου και στον Επίκουρο Καθηγητή του Τμήματος Πληροφορικής υπό διορισμό, κύριο Γεώργιο Μεδίτσκο, για τη διαρκή βοήθεια, τις συμβουλές και τη βιβλιογραφία που μου προσέφερε. Επιπλέον, θα ήθελα να ευχαριστήσω τους γονείς μου Ιωάννη και Μαρία, τον παππού μου Στέφανο και τη γιαγιά μου Θεοδώρα, για την σημαντική ψυχική και υλική υποστήριξη, που μου παρείχαν σε όλη την διάρκεια των προπτυχιακών σπουδών μου. Τέλος, θα ήθελα να ευχαριστήσω την καλύτερή μου φίλη Δανάη, η οποία με στήριζε καθ όλη τη διάρκεια των σπουδών μου και ήταν δίπλα μου σε όλες τις δύσκολες στιγμές. Θεσσαλονίκη, Ιούλιος 2021 Θεοδώρα Τασιά ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ vii

8 viii

9 ΠΕΡΙΕΧΌΜΕΝΑ Π Ε Ρ Ι Ε Χ Ο Μ Ε Ν Α 1. ΕΙΣΑΓΩΓΗ ΔΟΜΗ ΕΡΓΑΣΙΑΣ ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ RESOURCE DESCRIPTION FRAMEWORK RESOURCE DESCRIPTION FRAMEWORK SCHEMA ΚΛΑΣΕΙΣ ΙΔΙΟΤΗΤΕΣ WEB ONTOLOGY LANGUAGE ΑΞΙΩΜΑΤΑ ΔΟΜΕΣ ΤΗΣ OWL ΣΗΜΑΣΙΟΛΟΓΙΚΑ ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ ΙΔΙΟΤΗΤΩΝ SPARQL ΕΡΩΤΗΜΑΤΑ SELECT ΕΡΩΤΗΜΑΤΑ ASK ΕΡΩΤΗΜΑΤΑ CONSTRUCT ΕΡΩΤΗΜΑΤΑ DESCRIBE ΣΗΜΑΣΙΟΛΟΓΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ΓΡΑΦΩΝ RDF STORES ΤΕΧΝΙΚΕΣ ΑΠΟΘΗΚΕΥΣΗΣ ALLEGROGRAPH VIRTUOSO GRAPHDB ΤΟ ΠΡΟΤΥΠΟ ΤOSCA ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ ΒΑΣΙΚΕΣ ΔΥΝΑΤΟΤΗΤΕΣ ΚΑΙ ΔΟΜΕΣ ΓΛΩΣΣΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ TOSCA NODE TYPES RELATIONSHIP TYPES ΠΛΕΟΝΕΚΤΗΜΑΤΑ TOSCA ΟΝΤΟΛΟΓΙΑ - TOSCA ΕΡΓΑΛΕΙΑ PROTÉGÉ ΠΡΟΤΥΠΟ YAML ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ ix

10 4.2 ΠΕΡΙΓΡΑΦΗ TOSCA ΟΡΙΣΜΟΣ DATA TYPE ΟΡΙΣΜΟΣ NODE TYPE ΟΡΙΣΜΟΣ CAPABILITY TYPE ΟΡΙΣΜΟΣ NODE TEMPLATE ΟΡΙΣΜΟΣ DESCRIPTION ΟΡΙΣΜΟΣ DERIVED_FROM ΟΡΙΣΜΟΣ PROPERTIES ΟΡΙΣΜΟΣ ATTRIBUTES ΟΡΙΣΜΟΣ CAPABILITIES ΟΡΙΣΜΟΣ REQUIREMENTS ΑΝΤΙΣΤΟΙΧΙΣΗ TOSCA ΚΛΑΣΕΙΣ ΥΠΟΚΛΑΣΕΙΣ ANNOTATIONS ΣΗΜΑΣΙΟΛΟΓΙΕΣ ΚΑΙ ΕΚΦΡΑΣΕΙΣ ΚΛΑΣΗΣ ΥΛΟΠΟΙΗΣΗ ΒΙΒΛΙΟΘΗΚΗ RDF4J ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΥΣΤΗΜΑΤΟΣ USE CASE PARSE.JAVA DATATYPE.JAVA NODETYPE.JAVA CAPABILITYTYPE.JAVA ΝODE TEMPLATE.JAVA WRITEFILES.JAVA ΕΡΩΤΗΜΑΤΑ ΣΤΗ GRAPHDB ΕΠΙΛΟΓΟΣ ΒΙΒΛΙΟΓΡΑΦΙΑ ΠΑΡΑΡΤΗΜΑ: ΑΠΟΤΕΛΕΣΜΑΤΑ x

11 xi

12 Λ Ι Σ Τ Α Σ Χ Η Μ ΑΤ Ω Ν ΕΙΚΟΝΑ 1. ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΙΣΤΟΥ ΕΙΚΟΝΑ 2. ΤΡΙΠΛΕΤΑ RDF ΕΙΚΟΝΑ 3. ΠΑΡΑΔΕΙΓΜΑΤΑ ΤΡΙΠΛΕΤΩΝ ΕΙΚΟΝΑ 4. ΓΡΑΦΗΜΑΤΑ RDF ΕΙΚΟΝΑ 5. TRIPLE TABLE ΕΙΚΟΝΑ 6. VERTICAL PARTITIONING ΕΙΚΟΝΑ 7. ΔΗΜΙΟΥΡΓΙΑ ΑΠΟΘΕΤΗΡΙΟΥ ΣΤΗ GRAPHDB ΕΙΚΟΝΑ 8. ΕΙΣΑΓΩΓΗ ΔΕΔΟΜΕΝΩΝ ΣΤΗ GRAPHDB ΕΙΚΟΝΑ 9. ΣΤΙΓΜΙΟΤΥΠΑ ΣΤΗ GRAPHDB ΕΙΚΟΝΑ 10. ΙΕΡΑΡΧΙΑ ΤΩΝ ΚΛΑΣΕΩΝ ΣΤΗ GRAPHDB ΕΙΚΟΝΑ 11. DOMAIN-RANGE GRAPH ΕΙΚΟΝΑ 12. ΔΟΜΗ TOSCA SERVICE TEMPLATE ΕΙΚΟΝΑ 13. ΙΕΡΑΡΧΙΑ NODE TYPES ΕΙΚΟΝΑ 14. ΙΕΡΑΡΧΙΑ RELATIONSHIP TYPES ΕΙΚΟΝΑ 15. ΠΑΡΑΔΕΙΓΜΑ RELATIONSHIP TYPE ΕΙΚΟΝΑ 16. ΙΕΡΑΡΧΙΑ CAPABILITY TYPES ΕΙΚΟΝΑ 17. PROTEGE UI ΕΙΚΟΝΑ 18. ΑΝΤΙΣΤΟΙΧΙΣΗ ΚΛΑΣΗΣ ΕΙΚΟΝΑ 19. ΑΝΤΙΣΤΟΙΧΙΣΗ DERIVED_FROM ΕΙΚΟΝΑ 20. ΑΝΤΙΣΤΟΙΧΙΣΗ PROPERTIES ΕΙΚΟΝΑ 21. ΑΝΤΙΣΤΟΙΧΙΣΗ ATTRIBUTES ΕΙΚΟΝΑ 22. ΑΝΤΙΣΤΟΙΧΙΣΗ REQUIRED ΕΙΚΟΝΑ 23. ΑΝΤΙΣΤΟΙΧΙΣΗ CONSTRAINTS ΕΙΚΟΝΑ 24. ΑΝΤΙΣΤΟΙΧΙΣΗ PROPERTY ENTRY SCHEMA ΕΙΚΟΝΑ 25. ΑΝΤΙΣΤΟΙΧΙΣΗ CAPABILITIES ΕΙΚΟΝΑ 26. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΕΡΓΑΛΕΙΟΥ ΕΙΚΟΝΑ 27. USER INTERFACE ΕΙΚΟΝΑ 28. ΚΩΔΙΚΑΣ ΓΙΑ ΤΗΝ ΑΝΑΛΥΣΗ ΤΟΥ YAML ΑΡΧΕΙΟΥ ΕΙΚΟΝΑ 29. ΔΟΜΗ HASHMAP ΤΟΥ ΑΡΧΕΙΟΥ YAML ΕΙΚΟΝΑ 30. ΚΩΔΙΚΑΣ ΚΛΗΣΗΣ ΤΩΝ ΚΛΑΣΕΩΝ ΕΙΚΟΝΑ 31. ΚΩΔΙΚΑΣ ΔΙΑΧΕΙΡΙΣΗΣ DERIVED_FROM, PROPERTIES ΚΑΙ DESCRIPTION ΕΙΚΟΝΑ 32. ΟΡΙΣΜΟΣ ENTRY_SCHEMA ΣΕ ΕΠΙΠΕΔΟ DATA TYPE ΕΙΚΟΝΑ 33. ΟΡΙΣΜΟΣ ENTRY_SCHEMA ΣΕ ΕΠΙΠΕΔΟ PROPERTY ΕΙΚΟΝΑ 34. ΚΩΔΙΚΑΣ ΓΙΑ ΤΟΝ ΕΛΕΓΧΟ ΤΟΥ ΤΥΠΟΥ ΤΟΥ PROPERTY ΕΙΚΟΝΑ 35. ΚΩΔΙΚΑΣ ΓΙΑ ΤΟΝ ΟΡΙΣΜΟ ΤΟΥ REQUIRED ΕΙΚΟΝΑ 36. ΚΩΔΙΚΑΣ ΓΙΑ ΤΟΝ ΟΡΙΣΜΟ ΒΑΣΙΚΩΝ CONSTRAINTS ΕΙΚΟΝΑ 37. ΚΩΔΙΚΑΣ ΤΩΝ ANNOTATION DEFAULT ΚΑΙ TOSCAPROPERTY ΣΤΑ PROPERTIES ΕΙΚΟΝΑ 38. ΚΩΔΙΚΑΣ ANNOTATION TOSCAPROPERTY ΣΤΑ ATTRIBUTES ΕΙΚΟΝΑ 39. ΚΩΔΙΚΑΣ CAPABILITY ΣΤΟ NODE TYPE ΕΙΚΟΝΑ 40. ΚΩΔΙΚΑΣ VALID_SOURCE_TYPES ΣΤΟ CAPABILITY TYPE ΕΙΚΟΝΑ 41. ΚΩΔΙΚΑΣ PROPERTIES ΣΤΟ NODE TEMPLATE ΕΙΚΟΝΑ 42. ΚΩΔΙΚΑΣ REQUIREMENTS ΣΤΟ NODE TEMPLATE ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ xii

13 ΕΙΚΟΝΑ 43. ΚΩΔΙΚΑΣ ΕΝΤΟΠΙΣΜΟΥ ΤΗΣ CALLER CLASS ΕΙΚΟΝΑ 44. ΔΗΜΙΟΥΡΓΙΑ / ΕΝΗΜΕΡΩΣΗ ΑΡΧΕΙΩΝ.TTL ΕΙΚΟΝΑ 45. ΙΕΡΑΡΧΙΑ ΚΛΑΣΕΩΝ TOSCA ΕΙΚΟΝΑ 46. ΛΙΣΤΑ NODE TYPES ΕΙΚΟΝΑ 47. ΥΠΟΚΛΑΣΕΙΣ TOSCA.NODES.COMPUTE ΕΙΚΟΝΑ 48. NODE TEMPLATE ΣΤΗ GRAPHDB ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ xiii

14 Λ Ι Σ Τ Α Π Ι Ν Α Κ Ω Ν ΠΙΝΑΚΑΣ 1. PROPERTY TABLE ΠΙΝΑΚΑΣ 2: ΒΑΣΙΚΑ ΟΝΟΜΑΤΑ DATA TYPE ΠΙΝΑΚΑΣ 3: ΒΑΣΙΚΑ ΟΝΟΜΑΤΑ NODE TYPE ΠΙΝΑΚΑΣ 4: ΒΑΣΙΚΑ ΟΝΟΜΑΤΑ CAPABILITY TYPE ΠΙΝΑΚΑΣ 5: ΒΑΣΙΚΑ ΟΝΟΜΑΤΑ NODE TEMPLATE ΠΙΝΑΚΑΣ 6: ΒΑΣΙΚΑ ΟΝΟΜΑΤΑ PROPERTIES ΠΙΝΑΚΑΣ 7: ΒΑΣΙΚΑ ΟΝΟΜΑΤΑ ATTRIBUTE ΠΙΝΑΚΑΣ 8. ΒΑΣΙΚΑ ΟΝΟΜΑΤΑ CAPABILITY ΠΙΝΑΚΑΣ 9: ΒΑΣΙΚΑ ΟΝΟΜΑΤΑ REQUIREMENT ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ xiv

15 Κ Ε Φ Α Λ Α Ι Ο 1 : Ε Ι Σ Α Γ Ω Γ Η 15

16 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ 1. ΕΙΣΑΓΩΓΗ Η φορητότητα και η αυτοματοποιημένη διαχείριση σύνθετων εφαρμογών αποτελούν μείζονες προκλήσεις για τις σημερινές εταιρίες τεχνολογίας. Αυτές οι εφαρμογές αποτελούνται συνήθως από ετερογενή χαρακτηριστικά, τα οποία συνδυάζονται για να παρέχουν τη λειτουργικότητα της εφαρμογής. Αυτή η αρχιτεκτονική εισάγει πολλές προκλήσεις σχετικά με τη λειτουργία και τη διαχείριση της εφαρμογής στο σύνολο της, ενώ απαιτεί νέες ιδέες για ανάπτυξη, διαμόρφωση, λειτουργία και τερματισμό. Πολλά πρότυπα διαχείρισης πόρων νέφους έχουν προταθεί για να αντιμετωπίσουν διαφορετικές πτυχές της διαλειτουργικότητας και της φορητότητας. Για παράδειγμα, το TOSCA 1 (Topology and Orchestration Specification for Cloud Application), OCCI 2 (Open Cloud Computing Interface) και CIMI 3 (Cloud Infrastructure Management Interface) είναι από τα πιο γνωστά πρότυπα που εστιάζουν στη διαλειτουργική περιγραφή των εφαρμογών και των υπηρεσιών των υποδομών του νέφους, στις σχέσεις μεταξύ τμημάτων της υπηρεσίας, στις εξαρτήσεις μεταξύ στοιχείων της εφαρμογής, στις εργασίες διαχείρισης υπολογιστικού νέφους κ.λπ. Ωστόσο, οι πόροι νέφους που έχουν μοντελοποιηθεί και περιγραφεί χρησιμοποιώντας διαφορετικά πρότυπα, εξακολουθούν να αντιμετωπίζουν προβλήματα διαλειτουργικότητας, καθώς οι παρεχόμενες γλώσσες και η σημασιολογία μοντελοποίησης διαφέρουν, με αποτέλεσμα να δημιουργούνται ετερογενή σχήματα και λεξιλόγια που είναι μη επαναχρησιμοποιήσιμα. Προκειμένου να καταστούν δυνατές η ανάπτυξη, η διαχείριση, η ταχύτερη εκτέλεση και η επαναχρησιμοποίηση σύνθετων εφαρμογών, τόσο τα συστατικά, όσο και οι υποδομές της εφαρμογής πρέπει να μοντελοποιηθούν σε τυποποιημένη και επίσημη μορφή επεξεργάσιμη από τα προγράμματα και τις μηχανές. Oι σημασιολογικές πληροφορίες αποτελούν κύριο χαρακτηριστικό του Σημασιολογικού Ιστού, ο οποίος εισάγει νέες τεχνολογίες με στόχο τον εμπλουτισμό του περιεχόμενο του Ιστού, συνδέοντας σημασίες και νοήματα και επιτρέποντας στο χρήστη να αναζητά αυτό που επιθυμεί. Πιο συγκεκριμένα, οι οντολογίες έχουν χρησιμοποιηθεί ευρέως ως ένας αποτελεσματικός τρόπος μοντελοποίησης πληροφοριών πεδίου, επειδή μπορούν να παρουσιάζουν και να οργανώνουν με μεγαλύτερη ακρίβεια τις πληροφορίες, το περιεχόμενο και τις σχέσεις, ιδίως λαμβάνοντας υπόψη την αναγκαιότητα δυναμικών αλλαγών. Επιπλέον, προσφέρουν εύκολη επεκτασιμότητα συγχωνεύοντας, επεκτείνοντας και συνδυάζοντας τμήματα των υπαρχουσών οντολογιών. Οι οντολογίες είναι μοντέλα που χρησιμοποιούνται για τη συλλογή γνώσης σχετικά με κάποιο πεδίου ενδιαφέροντος. Επισήμως, οι οντολογίες είναι ρητές τυπικές προδιαγραφές κοινών εννοιολογικών μοντέλων. Αντιπροσωπεύουν αφηρημένες εκφράσεις του κόσμου, συμπεριλαμβανομένων των αντικειμένων, των εννοιών και άλλων οντοτήτων που υποτίθεται ότι υπάρχουν σε κάποια περιοχή ενδιαφέροντος, τις ιδιότητές τους και τις σχέσεις που παρατηρούνται ανάμεσά τους. Η 1 TOSCA: 2 OCCI: 3 CIMI: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 16

17 εκφραστικότητα και το επίπεδο της τυποποίησής τους εξαρτώνται από τη γλώσσα αναπαράστασης της γνώσης που χρησιμοποιείται. Η παρούσα εργασία πραγματεύεται την ανάπτυξη μιας οντολογίας και μιας μεθοδολογίας μετασχηματισμού βασικών στοιχείων του προτύπου TOSCA σε Γράφους Γνώσης. Το εργαλείο που αναπτύχθηκε, δέχεται ως είσοδο ένα αρχείο YAML μιας τοπολογίας TOSCA, ενώ εξάγει τα κατάλληλα αρχεία TURTLE που περιλαμβάνουν τη σημασιολογική πληροφορία για τις βασικές δομές Data Type, Node Type, Capability Type και Node Templates του TOSCA. Το εργαλείο είναι ανεπτυγμένο στη γλώσσα προγραμματισμού Java, με την βοήθεια της βιβλιοθήκης RDF4J, η οποία επιτρέπει την εύκολη διαχείριση RDF δεδομένων και γράφων. Μέσω του προτεινόμενου μετασχηματισμού, στόχοι είναι: Να ακολουθηθεί ένα κοινό, επεκτάσιμο και επίσημα τυποποιημένο μοντέλο, για την περιγραφή των σχετικών με την TOSCA εννοιών. Οι οντολογίες χρησιμοποιούνται για τον καθορισμό ενός διαλειτουργικού επιπέδου, επιτρέποντας την επίσημη αναπαράσταση εφαρμογών και υποδομών, τη σημασιολογική επισήμανση, αλλά και τη διασύνδεση λειτουργικών και μη λειτουργικών απαιτήσεων, τις εξαρτήσεις λογισμικού, τις δυνατότητες υπηρεσίας και Quality of Services (QoS). Για το σκοπό αυτό, χρησιμοποιείται η γλώσσα οντολογίας OWL 2, που αποτελεί πρότυπο του W3C 4 για τον καθορισμό του σχήματος και της σημασιολογίας των μοντέλων. Η διαχείριση και η διαμοίραση πληροφοριών με τη μορφή διασυνδεδεμένων πόρων σε γράφους γνώσης RDF, για τη σύλληψη δομικών και σημασιολογικών σχέσεων. Χρησιμοποιώντας Γράφους Γνώσης, οι πληροφορίες παρουσιάζονται ως ένα δίκτυο σχέσεων, αντί ως ξεχωριστοί πίνακες, καταγράφοντας αμφότερες τις δομικές και σημασιολογικές σχέσεις με ένα σαφή τρόπο. Η επαναχρησιμοποίηση αυτοματοποιημένων εργαλείων συλλογιστικής για τον εμπλουτισμό γνώσης και τον έλεγχο συνέπειας. Η συλλογιστική πάνω στους Γράφους Γνώσης αποσκοπεί στον εντοπισμό σφαλμάτων και στην εξαγωγή νέων συμπερασμάτων από υπάρχοντα δεδομένα. Οι νέες σχέσεις μεταξύ των οντοτήτων μπορούν να προκύψουν μέσω της συλλογιστικής γνώσης και μπορούν να τροφοδοτηθούν για να εμπλουτίσουν περαιτέρω τους Γράφους Γνώσης. 1.2 ΔΟΜΗ ΕΡΓΑΣΙΑΣ Η παρούσα εργασία αποτελείται από τα εξής κεφάλαια: Στο Κεφάλαιο 2 γίνεται η περιγραφή των βασικών εννοιών του Σημασιολογικού Ιστού, οι οποίες είναι απαραίτητες για την κατανόηση της παρούσας πτυχιακής εργασίας, αφού το εργαλείο που αναπτύχθηκε στηρίζεται πάνω στις τεχνολογίες που υπάρχουν γύρω από αυτόν. Συνεπώς, θα μιλήσουμε

18 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ πιο συγκεκριμένα για τις βασικότερες τεχνολογίες του Παγκόσμιου Ιστού OWL/OWL2, RDF και SPARQL καθώς και θα αναφέρουμε ορισμένα παραδείγματα χρήσης τους. Στο Κεφάλαιο 3 περιγράφεται η ανάγκη ύπαρξης ενός κοινού προτύπου για την περιγραφή των διεπαφών των υπηρεσιών του υπολογιστικού νέφους, το οποίο αποτελεί το πρότυπο TOSCA. Θα γίνει επίσης μια σύντομη περιγραφή σχετικά με το πως ξεκίνησε η ανάπτυξη του προτύπου ΤOSCA, αλλά και των βασικών δυνατοτήτων και δομών που προσφέρει. Στο Κεφάλαιο 4 γίνεται αναφορά στα εργαλεία που χρησιμοποιήθηκαν για τoν σχεδιασμό των οντολογιών και των σημασιολογικών πλαισίων αναπαράστασης του προτύπου TOSCA. Επιπλέον, παρουσιάζεται η λογική της αντιστοίχισης του TOSCA σε οντολογία, παραθέτοντας σχετικά παραδείγματα. Στο Κεφάλαιο 5 αναλύεται ο κώδικας που αναπτύχθηκε στα πλαίσια αυτής της εργασίας και γενικότερα στα πρακτικά θέματα υλοποίησης. Στο Κεφάλαιο 6 παρουσιάζονται τα συμπεράσματα που εξήχθησαν από την παρούσα εργασία, ενώ διατυπώνονται και ορισμένες προτάσεις για μελλοντική εργασία και μελέτη. Στο Κεφάλαιο 7 δίνεται η βιβλιογραφία που μελετήθηκε και αξιοποιήθηκε για τη συγγραφή της εργασίας. Στο Παράρτημα της πτυχιακής εργασίας αποτυπώνονται τα αποτελέσματα που προέκυψαν μετά την εκτέλεση του εργαλείου. ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 18

19 Κ Ε Φ Α Λ Α Ι Ο 2 : Ε Ι Σ Α Γ Ω Γ Η Σ Τ Ο Σ Η Μ Α Σ Ι Ο Λ Ο Γ Ι Κ Ο Ι Σ Τ Ο 19

20 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ 2. ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ Στο κεφάλαιο αυτό θα περιγράψουμε τα κίνητρα ενασχόλησης με τον Σημασιολογικό Ιστό, καθώς και τους λόγους που τον καθιστούν σημαντικό για την εξέλιξη του χρησιμοποιούμενου ιστού. Επιπλέον, θα δοθεί βάση στις χρησιμοποιούμενες σε αυτόν τεχνολογίες RDF 5, RDFS 6, OWL 7 και SPARQL 8, ενώ θα γίνει αναφορά και στις σημασιολογικές βάσεις δεδομένων. 2.1 ΣΗΜΑΣΙΟΛΟΓΙΚΟΣ ΙΣΤΟΣ Συνεχώς, ολοένα και περισσότεροι άνθρωποι αποκτούν πρόσβαση στο Διαδίκτυο, στο οποίο παράγουν και αναζητούν περιεχόμενο. Ο τεράστιος όγκος των δεδομένων και των πληροφοριών που προκύπτουν, δεν επιτρέπει στις υπολογιστικές μηχανές να τον διαχειριστούν αποτελεσματικά. Αυτή η κατάσταση, σε συνδυασμό με το γεγονός ότι η πλειοψηφία των διαθέσιμων σελίδων του Παγκόσμιου Ιστού, έχουν περιεχόμενο κατασκευασμένο για ανθρώπινη κατανόηση και κατανάλωση, χωρίς να υπάρχει διαθέσιμη η δομή των σελίδων για τις υπολογιστικές μηχανές, δημιουργούν προβλήματα στην λειτουργία των μηχανών αναζήτησης. Οι μηχανές αναζήτησης, διαθέτουν αλγορίθμους, που βασίζονται στις λέξεις κλειδιά τις οποίες πληκτρολογεί ο χρήστης και επιστρέφουν το συντομότερο δυνατόν τις σελίδες, που περιέχουν το σύνολο αυτών των λέξεων. Συνεπώς, δημιουργείται υψηλή ανάκληση και χαμηλή ακρίβεια, αφού η αναζήτηση επιστρέφει πολλά αποτελέσματα, πολλά από τα οποία δεν είναι σχετικά και ακριβή, επειδή είναι ευαίσθητα στο λεξιλόγιο. Έτσι, προκύπτει η ανάγκη για ανθρώπινη παρέμβαση, ώστε να ερμηνευθούν και να συνδυαστούν τα αποτελέσματα (Εικόνα 1). Αυτή την αδυναμία του υπάρχοντος παγκόσμιου ιστού, έχει ως στόχο ο Σημασιολογικό Ιστός (Semantic Web 9 ), να την αντιμετωπίσει εξελίσσοντας έτσι τον χρησιμοποιούμενο ιστό, με τη χρήση έξυπνων τεχνικών και στρατηγικών. Εικόνα 1. Πληροφοριακά Συστήματα Ιστού 5 RDF: 6 RDFS: 7 OWL: 8 SPARQL: 9 Semantic Web : ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 20

21 Η βασική στρατηγική, είναι να αυξηθούν οι πληροφορίες του Παγκόσμιου Ιστού, οι οποίες θα περιλαμβάνουν, την επίσημη αναπαράσταση της σημασίας τους, δηλαδή να προστεθούν πληροφορίες στις ιστοσελίδες (μεταδεδομένα), που θα περιγράφουν με μεγαλύτερη σαφήνεια τη θεματολογία του περιεχομένου τους. Έτσι, ο Σημασιολογικό Ιστός, γνωστός και ως Web 3.0, περιέχει μεταδεδομένα των δημοσιευμένων δεδομένων και πληροφοριών, τα οποία είναι ερμηνεύσιμα από τις μηχανές. Προσθέτοντας αποκλειστικά περιγραφές, δηλαδή μεταδεδομένα ιστοσελίδων, ως κείμενο, δεν θα επιλυθούν τα προαναφερθέντα ζητήματα, καθώς οι μηχανές αναζήτησης θα κάνουν τα ίδια λάθη ερμηνείας, που κάνουν στις τρέχουσες ιστοσελίδες κειμένου. Αντίθετα, πρέπει να χρησιμοποιούνται κατάλληλες τεχνολογίες για να κάνουν αυτές τις περιγραφές μεταδεδομένων περισσότερο σαφείς και ως εκ τούτου ερμηνεύσιμες από προγράμματα υπολογιστών. Τα μεταδεδομένα αυτά, θα αποδίδουν σημασίες και νοήματα στη δομή και το περιεχόμενο, έτσι ώστε οι μηχανές να είναι σε θέση να εκτελέσουν λειτουργίες, με τρόπο παρόμοιο με τον οποίο οι άνθρωποι κατανοούν και επεξεργάζονται τις πληροφορίες για την επίτευξη των στόχων τους. Για να επιτευχθεί αυτό, τα μεταδεδομένα πρέπει να περιγράφουν τις πληροφορίες με όρους που έχουν σαφή σημασία για τις μηχανές και επίσης αντικατοπτρίζουν τη συμφωνία μιας ευρείας κοινότητας. Για παράδειγμα, σημαντικοί είναι οι όροι «άτομο», «πόλη» ή «δουλειά», όπως είναι και επίσης σημαντικό να περιγραφεί, πώς αυτοί οι όροι μπορούν να σχετίζονται μεταξύ τους, δηλαδή για παράδειγμα, ότι τα άτομα μπορούν να έχουν θέσεις εργασίας, ότι οι πόλεις είναι γεωγραφικές τοποθεσίες και ότι τα σύνολα ατόμων και γεωγραφικών τοποθεσιών είναι ξεχωριστά σύνολα. Επιπρόσθετα, τα μεταδεδομένα πρέπει να εκφράζονται σε γλώσσα αναπαράστασης, στην οποία μπορούν να αναλυθούν και να ερμηνευθούν από προγράμματα υπολογιστών. Μία τέτοια γλώσσα είναι η HTML 10 (HypertextMarkup Language), είναι μια απλή γλώσσα αναπαράστασης, που δίνει εντολή σε ένα πρόγραμμα περιήγησης, να εμφανίζει πληροφορίες σε μια ιστοσελίδα, για παράδειγμα, οποιοδήποτε κείμενο περιλαμβάνεται μεταξύ των ετικετών <p> και </p> θα εμφανίζεται ως παράγραφος. Για να πραγματοποιηθεί το όραμα του Σημασιολογικού Ιστού, χρειάζονται γλώσσες αναπαράστασης, που περιγράφουν συγκεκριμένες πληροφορίες των εφαρμογών. Αυτές οι γλώσσες μπορούν να χρησιμοποιηθούν για να καθορίσουν, ποιες λέξεις αναφέρονται σε έννοιες και ποιες σχέσεις μεταξύ εννοιών. Με αυτόν τον τρόπο, ενισχύεται η πιθανή αυτοματοποίηση πολλών εργασιών διαχείρισης πληροφοριών, ενώ εξαλείφεται η απώλεια δεδομένων και δομών, η οποία οφειλόταν συνήθως στην σύνδεση απλών σελίδων HTML. Η έννοια των σημασιολογικών γλωσσών αναπαράστασης βασίζεται στη λογική, η οποία περιλαμβάνει δύο σημαντικά πλεονεκτήματα. Καταρχάς, επιτρέπει να μοντελοποιηθούν περίπλοκες έννοιες, όπως ότι μόνο τα άτομα μπορούν να έχουν θέσεις εργασίας, οπότε οτιδήποτε έχει δουλειά είναι ένα άτομο ή και ότι δεν μπορεί κάτι να είναι ένα άτομο, αλλά και μια γεωγραφική τοποθεσία ταυτόχρονα, δηλαδή ότι το σύνολο των ατόμων και οι γεωγραφικές τοποθεσίες είναι ξένα σύνολα, καθώς και ότι μια πόλη είναι ένα είδος γεωγραφικής τοποθεσίας. Δεύτερον, η σημασιολογία που βασίζεται στη λογική (νόημα) μπορεί να αξιοποιηθεί για να επιτρέψει στα 10 HTML: 21

22 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ προγράμματα υπολογιστών να αντλήσουν νέες πληροφορίες, μια διαδικασία που αναφέρεται ως συμπέρασμα ή συλλογιστική (reasoning). Για την παρουσίαση των δεδομένων που σχετίζονται με το Σημασιολογικό Ιστό, έχει αναπτυχθεί ένα σύνολο γλωσσών αναπαράστασης γνώσης, που βασίζονται στον Ιστό. Οι τεχνολογίες αυτές, επιτρέπουν στους χρήστες να δημιουργούν αποθήκες δεδομένων, λεξιλόγια και να γράφουν κανόνες για τη διαχείριση δεδομένων. Τα κύρια πρότυπα στα οποία βασίζεται ο Σημασιολογικός Ιστός είναι τα RDF (Resource Description Framework), SPARQ (SPARQL Protocol και RDF Query Language) και OWL (Web Ontology Language), τα οποία αναλύονται στις ενότητες που ακολουθούν. 2.2 RESOURCE DESCRIPTION FRAMEWORK H RDF είναι μια γλώσσα για την εννοιολογική περιγραφή και μοντελοποίηση των πόρων στον Ιστό. Ο στόχος της είναι να δίνει στις εφαρμογές τη δυνατότητα να ανταλλάσσουν πληροφορίες στον Ιστό, ενώ διατηρούν παράλληλα την αρχική τους έννοια. Πιο συγκεκριμένα, επιτρέπει την έκφραση των σχέσεων ανάμεσα σε δύο πόρους, οι οποίοι μπορούν να αναφέρονται σε οτιδήποτε περιλαμβάνει φυσικές και αφηρημένες έννοιες. Συνεπώς, θεωρείται ως η βασική μορφή αναπαράστασης για την ανάπτυξη του Σημασιολογικού Ιστού. Οι δηλώσεις RDF αποτελούνται από τρία στοιχεία: υποκείμενο, αντικείμενο και κατηγόρημα, τα οποία συχνά αναφέρονται ως σύνολο με τον όρο «τριπλέτα» (Εικόνα 2). Το υποκείμενο και το αντικείμενο μιας δήλωσης RDF, υποδηλώνουν τους πόρους που σχετίζονται μεταξύ τους, ενώ το κατηγόρημα είναι ένας πόρος που δηλώνει τη σχέση που συνδέει το υποκείμενο και το αντικείμενο. Εικόνα 2. Τριπλέτα RDF Για παράδειγμα, οι τριπλέτες της Εικόνας 3 δηλώνουν ότι το Eng1 είναι μια μηχανή «isa Engine», καθορίζουν το βάρος και τις μέγιστες ώρες εργασίας της και τη σχετίζουν με έναν προμηθευτή: Εικόνα 3. Παραδείγματα Τριπλέτων Αυτές οι τριπλέτες απεικονίζονται γραφικά στην Εικόνα 4, στην οποία οι πόροι «Resources» απεικονίζονται με την έλλειψη και οι έννοιες «Literal» από ένα ορθογώνιο. Ένα έγγραφο RDF περιγράφει ένα κατευθυνόμενο γράφο, δηλαδή ένα σύνολο κόμβων, που συνδέονται από κατευθυνόμενα «βέλη» και αναπαριστά την τριπλέτα. Μια σημαντική αρχή της RDF είναι ότι οι μεμονωμένες τριπλέτες μπορούν να συγχωνευτούν όταν ένας από τους πόρους τους είναι ο ίδιος. Αυτό το χαρακτηριστικό της RDF διευκολύνει διεργασίες που απαιτούν την ενσωμάτωση ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 22

23 δεδομένων από διάφορες πηγές, οι οποίες παρέχουν διαφορετικές πληροφορίες σχετικά με την ίδια οντότητα (για παράδειγμα την ίδια πόλη). Αυτό το χαρακτηριστικό διαφοροποιεί το μοντέλο δεδομένων RDF που βασίζεται σε γράφους από τα πιο παραδοσιακά, σχεσιακά μοντέλα δεδομένων. Εικόνα 4. Γραφήματα RDF Δύο πόροι RDF θεωρούνται ίδιοι, εάν έχουν το ίδιο μοναδικό αναγνωριστικό ή όνομα. Στα RDF, κάθε πόρος προσδιορίζεται χρησιμοποιώντας URL 11 (Uniform Resource Locators), η οποία είναι μια καθιερωμένη τεχνολογία Ιστού για την αναγνώριση ιστοσελίδων, που πάντοτε εντοπίζει τον πόρο. Ουσιαστικά, οι διευθύνσεις URL είναι πιο συγκεκριμένες URI, επειδή δεν προσδιορίζουν μόνο έναν πόρο, αλλά παρέχουν επίσης πληροφορίες σχετικά με τον τρόπο πρόσβασης. Επομένως, το RDF βασίζεται σε URI 12 (Uniform Resource Identifiers) για τον προσδιορισμό πόρων. Για να καταστεί δυνατή η χρήση χαρακτήρων non-ascii, μπορούν να χρησιμοποιηθούν IRI 13 (International Resource Identifiers). 2.3 RESOURCE DESCRIPTION FRAMEWORK SCHEMA Το RDF Schema είναι μια σημασιολογική επέκταση του RDF, η οποία παρέχει ένα λεξιλόγιο μοντελοποίησης δεδομένων για τα δεδομένα RDF. Προσφέρει μηχανισμούς για την περιγραφή των ομάδων που σχηματίζουν σχετικοί πόροι, αλλά και τις σχέσεις που υπάρχουν μεταξύ αυτών των πόρων. Αυτοί οι πόροι χρησιμοποιούνται για τον προσδιορισμό των χαρακτηριστικών άλλων πόρων, όπως οι τομείς (domains) και τα εύρη (ranges) των ιδιοτήτων. Για παράδειγμα, μπορούμε να ορίσουμε στην ιδιότητα eg:author τον τομέα eg:document και το εύρος eg:person, ενώ σε ένα ανικειμενοστρεφές σύστημα θα ορίζαμε τυπικά την κλάση eg:book με ένα χαρακτηριστικό eg:author τύπου eg:person. Χρησιμοποιώντας την προσέγγιση RDF είναι εύκολο να καθοριστούν ιδιότητες με έναν τομέα eg:document ή ένα εύρος eg:person. Αυτό μπορεί να γίνει χωρίς να χρειάζεται να επαναπροσδιοριστεί η αρχική περιγραφή αυτών των κλάσεων. Ένα ακόμη πλεονέκτημα της προσέγγισης RDF είναι 11 URL: 12 URI: 13 IRI: 23

24 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ ότι επιτρέπει την επέκταση της περιγραφής των υπαρχόντων πόρων, μία από τις αρχιτεκτονικές αρχές του Ιστού Κλάσεις Οι πόροι μπορούν να χωριστούν σε ομάδες, οι οποίες ονομάζονται κλάσεις. Τα μέλη μιας κλάσεις είναι γνωστά ως στιγμιότυπα της κλάσης. Οι κλάσεις είναι πόροι, οι οποίοι συχνά αναγνωρίζονται από IRI και μπορούν να περιγραφούν χρησιμοποιώντας ιδιότητες RDF. Η ομάδα πόρων που είναι κλάση RDFS, είναι από μόνη της μια κλάση που ονομάζεται rdfs:class. 1. Όλα τα πράγματα που περιγράφονται από την RDF λέγονται πόροι (resources) και είναι στιγμιότυπα της κλάσης rdfs:resource. Η rdfs:resource είναι στιγμιότυπο της rdfs:class. 2. Η κλάση όλων των πόρων που είναι RDF κλάσεις είναι η rdfs:class, που είναι στιγμιότυπο της rdfs:class. 3. Αν μια κλάση C είναι υποκλάση μιας κλάσης C', τότε όλα τα στιγμιότυπα της κλάσης C θα είναι και στιγμιότυπα της κλάσης C'. Η ιδιότητα rdfs:subclassof ορίζει ότι μία κλάση είναι υποκλάση μίας άλλης. Το κατηγόρημα rdfs:subclassof είναι μεταβατικό. 4. Η κλάση των τιμών literal, όπως οι συμβολοσειρές και οι ακέραιοι, είναι η rdfs:literal. Οι τιμές ιδιοτήτων, όπως οι συμβολοσειρές κειμένου, είναι παραδείγματα των rdfs:literal, τα οποία είναι στιγμιότυπα της rdfs:class και υποκλάση της rdfs:resource. 5. Η κλάση όλων των datatypes είναι η rdfs:datatype. Κάθε στιγμιότυπο της rdfs:datatype είναι υποκλάση της rdfs:literal. Το RDF κάνει διάκριση μεταξύ μιας κλάσης και του συνόλου των στιγμιότυπων της. Ένα σύνολο, που συσχετίζεται με μια κλάση, ονομάζεται επέκταση της συγκεκριμένης κλάσης, και είναι το σύνολο των στιγμιότυπων της. Δύο κλάσεις, μπορεί να έχουν το ίδιο σύνολο στιγμιότυπων, αλλά να είναι διαφορετικές μεταξύ τους. Για παράδειγμα, η φορολογική αρχή μπορεί να ορίσει την κλάση των ατόμων που ζουν σε μια συγκεκριμένη οδό της Θεσσαλονίκης. Το Ταχυδρομείο μπορεί να ορίσει την κλάση των ατόμων των οποίων η διεύθυνση είναι η συγκεκριμένη οδός της Θεσσαλονίκης. Είναι πιθανό αυτές οι κλάσεις να έχουν ακριβώς τα ίδια στιγμιότυπα, αλλά να έχουν διαφορετικές ιδιότητες. Μόνο η μία από τις κλάσεις έχει την ιδιότητα που ορίστηκε από την εφορία και μόνο η άλλη έχει την ιδιότητα που ορίστηκε από το Ταχυδρομείο. Μια κλάση μπορεί να είναι μέλος της δικής της επέκτασης κλάσης και μπορεί να είναι ένα στιγμιότυπο της Ιδιότητες Όπως αναφέρθηκε προηγουμένως, ένα RDF κατηγόρημα / ιδιότητα είναι η σχέση μεταξύ ενός αντικειμένου και ενός υποκειμένου. Οι βασικές ιδιότητες είναι: 1. Το rdfs:subpropertyof, που μπορεί να χρησιμοποιηθεί για να δηλώσει ότι ένα κατηγόρημα είναι υπο-κατηγόρημα κάποιου άλλου. Εάν ένα κατηγόρημα P είναι υπο-κατηγόρημα του P', τότε όλα τα ζεύγη πόρων που σχετίζονται με το P σχετίζονται επίσης με το P'. Η ιδιότητα αυτή είναι μεταβατική. ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 24

25 2. Το rdfs:range είναι στιγμιότυπο του rdf:property, που καθορίζει ότι οι τιμές ενός κατηγορήματος είναι στιγμιότυπα μίας η παραπάνω κλάσεων. Η τριπλέτα P rdfs:range C ορίζει ότι το P είναι στιγμιότυπο της κλάσης rdf:property, ότι το C είναι στιγμιότυπο της κλάσης rdfs:class και ότι οι πόροι που υποδηλώνονται από τα αντικείμενα των τριπλέτων, των οποίων το κατηγόρημα είναι το P, είναι στιγμιότυπα της κλάσης C. 3. To rdfs:domain είναι στιγμιότυπο της rdf:property, που χρησιμοποιείται για να δηλώσει ότι όλοι οι πόροι που έχει μια ιδιότητα είναι στιγμιότυπο μιας η περισσότερων κλάσεων. Μια τριπλέτα της μορφής P rdfs:domain C, δηλώνει ότι το P είναι στιγμιότυπο της κλάσης rdf:property, ότι C είναι στιγμιότυπο της κλάσης rdfs:class και ότι οι πόροι που υποδηλώνονται από τα αντικείμενα των τριπλέτων, των οποίων κατηγόρημα είναι το P, είναι στιγμιότυπα της κλάσης C. 4. To rdf:type είναι στιγμιότυπο του rdf:property και χρησιμοποιείται για να δηλώσει ότι ένας πόρος είναι στιγμιότυπο μιας κλάσης. Μια τριπλέτα της μορφής R rdf:type C, δηλώνει ότι το C είναι στιγμιότυπο της rdfs:class και ότι το R είναι στιγμιότυπο της C. 2.4 WEB ONTOLOGY LANGUAGE H Web Ontology Language (OWL) έχει τυποποιηθεί από την Κοινοπραξία του Παγκόσμιου Ιστού, γνωστή ως World Wide Web Consortium (W3C), ως μια ισχυρή γλώσσα αναπαράστασης γνώσης στον Ιστό. Στον σχεδιασμό της υπήρχαν πολλές επιρροές, κυρίως από το πρότυπο XML στο οποίο και βασίστηκε, ενώ αφορά αντικείμενα, που είναι σε μορφή RDF. Δεδομένου ότι υπήρχαν ήδη πολλές οντολογικές γλώσσες σχεδιασμένες για χρήση στον Ιστό, η OWL έπρεπε να διατηρήσει όσο το δυνατόν μεγαλύτερη συμβατότητα με αυτές τις υπάρχουσες γλώσσες. Όμως, η OWL δεν περιορίζεται μόνο στον Ιστό, αφού έχει εφαρμοστεί επιτυχώς και στη μοντελοποίηση γνώσης σε πολλούς τομείς εφαρμογών. Η μοντελοποίηση των πληροφοριών μπορεί να γίνει με τη χρήση της OWL ως περιγραφική γλώσσα, δηλαδή να χρησιμοποιηθεί για να εκφράσει την εξειδικευμένη γνώση με επίσημο τρόπο, και ως λογική γλώσσα, δηλαδή να χρησιμοποιηθεί για να εξαγάγει τα συμπεράσματα από αυτή τη γνώση. Η χρήση της ως λογική γλώσσα είναι αυτή που διακρίνει την OWL από άλλες γλώσσες μοντελοποίησης, όπως για παράδειγμα την UML. Ωστόσο, ο υπολογισμός όλων των ενδιαφερόντων λογικών συμπερασμάτων μιας οντολογίας OWL μπορεί να είναι ένα δύσκολο πρόβλημα και η συλλογιστική είναι τυπικά πολυεκθετική ή ακόμη και αναποφάσιστη. Η OWL είναι στην πραγματικότητα, μια οικογένεια γλωσσών αναπαράστασης γνώσης, για τον ορισμό οντολογιών στον Ιστό. Μια οντολογία OWL, περιγράφει ένα πεδίο από άποψη κατηγοριών, ιδιοτήτων και ατόμων και μπορεί να περιλαμβάνει πλούσιες περιγραφές των χαρακτηριστικών αυτών των αντικειμένων. Τα αξιώματα OWL, σχηματίζονται συνδυάζοντας οντότητες λεξιλογίου (π.χ. η σχέση Silvester is a cat γράφεται ως FelisCatus(silvester))) μέσω constructors για αξιώματα και άλλες εκφράσεις (π.χ. SubClassOf and DisjointClasses). Οι οντότητες λεξιλογίου μπορούν να έχουν τρεις διαφορετικούς βασικούς τύπους: 1. Τα μεμονωμένα ονόματα, που αναφέρονται σε μεμονωμένα αντικείμενα. 25

26 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ 2. Τα ονόματα κλάσεων, που αναφέρονται σε σύνολα αντικειμένων. 3. Τα ονόματα ιδιοτήτων, που αναφέρονται σε δυαδικές σχέσεις μεταξύ αντικειμένων. Για να προσδιορίσουμε μια κλάση στην OWL, μπορούμε να προσθέσουμε περιορισμούς (restrictions) και σχόλια (annotations). Όπως θα αναφερθεί στη συνέχεια, υπάρχουν δύο ειδών περιορισμοί, οι οποίοι θέτουν τα κριτήρια σύμφωνα με τα οποία, θα μπορεί ένα άτομο να είναι μέλος της κλάσης. Γενικότερα όλα τα άτομα ανήκουν στην κλάση owl:thing. Μερικές επιπλέον κλάσεις που θα μας απασχολήσουν είναι οι παρακάτω: Η βασική κλάση των RDF πόρων, που είναι κλάσεις, είναι η owl:class. Η κλάση όλων των ιδιοτήτων, που το πεδίο τιμών τους αποτελείται από απλές σταθερές τιμές (literals), ενώ είναι και άτομα της κλάσης είναι η owl:datatypeproperty, η οποία είναι υποκλάση της rdfs:datatype. Η κλάση όλων των ιδιοτήτων των οποίων το πεδίο τιμών αποτελείται από άτομα της κλάσης owl:class, είναι η owl:objectproperty Για να δείξουμε τον τρόπο που θα μπορούσε να δομηθεί μια οντολογία, αλλά και πως θα μπορούσαν να χρησιμοποιηθούν οι constructors στην OWL, θα χρησιμοποιήσουμε ένα παράδειγμα βασισμένο στις οικόσιτες γάτες. Αρχικά, έχουμε δύο κλάσεις: τις οικόσιτες γάτες (FelisCatus) και τα θηλαστικά (Mammalia). Οι οικόσιτες γάτες ανήκουν στην κλάση των θηλαστικών, δηλαδή κάθε περίπτωση του πρώτου είναι επίσης μια περίπτωση του τελευταίου. Στην OWL, θα μπορούσαμε να το εκφράσουμε επίσημα ως εξής: SubClassOf (FelisCatus Mammalia). Εάν μάθουμε, ότι ένα συγκεκριμένο άτομο, ας πούμε ο Silvester, isacat, τότε από αυτό μπορούμε να συμπεράνουμε ότι το Silvester είναι επίσης ένα θηλαστικό. Στην OWL, το γεγονός ότι υπάρχει άτομο σε μια τάξη εκφράζεται ως εξής: ClassAssertion (FelisCatus silvester). Έτσι, μια λογική OWL, θα μπορούσε τώρα να καταλήξει στο αναμενόμενο εξής συμπέρασμα: ClassAssertion (Mammalia silvester). Για να ορίσουμε ένα παράδειγμα ιδιοκτησίας, preyson, που εκφράζει τη σχέση μεταξύ ενός αρπακτικού και του θηράματός του, θα μπορούσαμε να δηλώσουμε ότι τα Silvester θηρεύουν τον Tweety: ObjectPropertyAssertion (preyson silvester tweety) Πιο συγκεκριμένα, οι οντολογίες OWL μπορούν να χρησιμοποιηθούν, για να περιγράψουν τις ιδιότητες των πόρων Ιστού. Η OWL κατέχει τη βασική δομή δήλωσης γεγονότων του RDF, τις δυνατότητες δομής των κλάσεων και των ιδιοτήτων του RDFS και τις επεκτείνει με σημαντικούς τρόπους. Στην OWL, μπορούν να δηλωθούν κλάσεις και να οργανωθούν σε υποκατηγορίες, όπως και στο RDFS. Όμως, στην OWL υπάρχουν τα αξιώματα με τα οποία οι κλάσεις μπορούν να καθοριστούν ως λογικοί συνδυασμοί (ενώσεις, τομές ή συμπληρώματα) άλλων κλάσεων ή ως απαρίθμηση συγκεκριμένων αντικειμένων, δεδομένου ότι οι κλάσεις αντιπροσωπεύουν σύνολα, υπερβαίνοντας έτσι τις δυνατότητες του RDFS Αξιώματα Η OWL έχει τη δυνατότητα να προσδιορίζει τις σχέσεις μεταξύ ατόμων. Δύο βασικοί κατασκευαστές για να συνδυάσουν την περιγραφή κλάσεων με αξιώματα κλάσης είναι: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 26

27 1. To owl:equivalentcalss, που επιτρέπει να δηλώσουμε ότι μια περιγραφή κλάσης έχει ακριβώς την ίδια επέκταση με την περιγραφή μιας άλλης κλάσης. 2. Το owl:disjointwith, που επιτρέπει να δηλώσουμε ότι η επέκταση μιας περιγραφής κλάσης δεν έχει κοινά μέλη με την περιγραφή μιας άλλης κλάσης, δηλαδή ότι δύο κλάσεις δεν πρέπει να μοιράζονται κοινά στοιχεία. Ας πούμε τώρα ότι επιθυμούμε να δηλώσουμε ότι οι άνθρωποι διακρίνονται από τις γάτες, δηλαδή, οι δύο κλάσεις δεν πρέπει να έχουν κοινά στιγμιότυπα. Τότε θα χρησιμοποιήσουμε το: axiomdisjointclasses (FelisCatus HomoSapiens) Δομές της OWL Υπάρχουν τρεις τύποι δομών της OWL, που αναπαριστούν προηγμένους κατασκευαστές για την περιγραφή της λογικής. Αυτοί αντιπροσωπεύουν τους τελεστές AND, OR και NOT στις κλάσεις. 1. To ObjectIntersectionOf δηλώνει την τομή δύο (ή περισσότερων) κλάσεων. Αν επιθυμούσαμε να ορίσουμε την κλάση των αντικειμένων που είναι στην κλάση FelisCatus και στην κλάση Hungry, θα την ορίζαμε ως ObjectIntersectionOf(FelisCatus Hungry). Η ιδιότητα owl:intersectionοf συνδέει μια κλάση, με μία λίστα από περιγραφές κλάσης. Ουσιαστικά, περιγράφει μια κλάση για την οποία η επέκταση της περιέχει ακριβώς όλα τα άτομα που είναι μέλη της επέκτασης των περιγραφών των κλάσεων της λίστας. 2. Το ObjectUnionOf δηλώνει την ένωση δύο (ή περισσότερων) κλάσεων. Αν για παράδειγμα επιθυμούσαμε να ορίσουμε την κατηγορία των αντικειμένων που είναι γάτες (FelisCatus) ή καναρίνια (SerinusCanaria), θα χρησιμοποιούσαμε το ObjectUnionOf (FelisCatus SerinusCanaria). Η ιδιότητα owl:unionof συνδέει μια κλάση με μία λίστα από περιγραφές κλάσης, περιγράφοντας μια ανώνυμη κλάση η οποία περιέχει τα άτομα που υπάρχουν σε τουλάχιστον μία από τις επεκτάσεις των περιγραφών των κλάσεων που βρίσκονται στη λίστα. 3. Το ObjectComplementOf δηλώνει το συμπλήρωμα μιας κλάσης. Αν επιθυμούσαμε να προσδιορίσουμε την κατηγορία αντικειμένων που δεν είναι άνθρωποι τότε ορίζουμε το: ObjectComplementOf (HomoSapiens). Η ιδιότητα owl:complementof συνδέει μια κλάση με ακριβώς μια περιγραφή κλάσης, περιγράφοντας μια κλάση της οποίας η επέκταση περιέχει τα άτομα που δεν ανήκουν στην επέκταση της περιγραφής κλάσης, που είναι το αντικείμενο του κατασκευαστή, ενώ για να πούμε ότι τα πουλιά δεν είναι γάτες χρησιμοποιούμε το: SubClassOf (SerinusCanariaObjectComplementOf (FelisCatus)). Επιπλέον, ιδιαίτερα σημαντική είναι η έννοια του περιορισμού ιδιοτήτων (property restriction), ο οποίος είναι ένα ειδικό είδος περιγραφής μιας κλάσης. Περιγράφει μια ανώνυμη κλάση, δηλαδή μια κλάση όλων των ατόμων που ικανοποιούν τον περιορισμό. Η OWL διακρίνει δύο είδη περιορισμών ιδιοτήτων: τους περιορισμούς τιμής (value constraints) και τους περιορισμούς πληθάριθμου (cardinality constraints). Ένας περιορισμός τιμής θέτει περιορισμούς στο εύρος της ιδιότητας, όταν εφαρμόζεται σε αυτή μια συγκεκριμένη περιγραφή κλάσης. Τέτοιοι περιορισμοί είναι: 27

28 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ 1. Το owl:allvaluesfrom είναι μια δομική ιδιότητα της OWL που συνδέει έναν περιορισμό κλάσης, είτε με μία περιγραφή κλάσης, είτε με ένα εύρος δεδομένων. Ένας περιορισμός που περιέχει το owl:allvaluesfrom χρησιμοποιείται για να περιγράψει όλα τα άτομα μίας κλάσης για τα οποία οι τιμές της υπό εξέταση ιδιότητας είναι, είτε μέλη της επέκτασης κλάσης, είτε είναι τιμές δεδομένων εντός του καθορισμένου εύρους αντίστοιχα. Για να καθορίσουμε την κατηγορία αντικειμένων για τα οποία όλα τα θηράματα στις σχέσεις είναι το καναρίνι, δηλαδή να καθορίσουμε την κλάση των αντικειμένων που θηρεύουν μόνο τα καναρίνια, χρησιμοποιούμε το: ObjectAllValuesFrom (preyson SerinusCanaria). 2. Το owl:somevaluesfrom είναι μια δομική ιδιότητα της OWL, που συνδέει έναν περιορισμό κλάσης, είτε με μία περιγραφή κλάσης, είτε με ένα εύρος δεδομένων. Ένας περιορισμός που περιέχει το owl:somevaluesfrom χρησιμοποιείται για να περιγράψει μία κλάση όλων των ατόμων, για τα οποία τουλάχιστον μια τιμή της υπό εξέταση ιδιότητας είναι είτε στιγμιότυπο της επέκτασης κλάσης, είτε είναι τιμή δεδομένων εντός του καθορισμένου εύρους αντίστοιχα. Έτσι, μπορούμε να ορίσουμε την τάξη όλων των αντικειμένων που θηρεύουν κάποιο καναρίνι: ObjectSomeValuesFrom (preyson SerinusCanaria). 3. Το owl:hasvalue είναι μια δομική ιδιότητα της OWL, που συνδέει έναν περιορισμό με μια τιμή V, η οποία μπορεί να είναι είτε ένα άτομο, είτε μια τιμή δεδομένων. Ένας περιορισμός που περιέχει το owl:hasvalues χρησιμοποιείται για να περιγράψει μία κλάση όλων των ατόμων, για τα οποία τουλάχιστον μια τιμή της υπό εξέταση ιδιότητας είναι σημασιολογικά ίση με τη V. Ένας περιορισμός πληθάριθμου, θέτει περιορισμούς στον αριθμό των τιμών που μπορεί να λάβει μια ιδιότητα, στο πλαίσιο αυτής της συγκεκριμένης περιγραφής κλάσης. Περιορισμοί πληθάριθμου θεωρούνται: 1. Το owl:maxcardinality είναι μια δομική ιδιότητα της OWL που συνδέει έναν περιορισμό κλάσης με μια τιμή δεδομένων που ανήκει στο πεδίο τιμών του XML Schema datatype nonnegativeinteger. Ένας περιορισμός που περιέχει το owl:maxcardinality περιγράφει μια κλάση όλων των ατόμων, που έχουν το πολύ Ν σημασιολογικά ακριβείς τιμές (άτομα ή τιμές δεδομένων) για την υπό εξέταση ιδιότητα, όπου Ν είναι η τιμή του περιορισμού πληθάριθμου. 2. Το owl:mincardinality είναι μια δομική ιδιότητα της OWL που συνδέει έναν περιορισμό κλάσης με μια τιμή δεδομένων που ανήκει στο πεδίο τιμών του XML Schema datatype nonnegativeinteger. Ένας περιορισμός που περιέχει το owl:mincardinality περιγράφει μια κλάση όλων των ατόμων που έχουν τουλάχιστον Ν σημασιολογικά ακριβείς τιμές (άτομα ή τιμές δεδομένων) για την υπό εξέταση ιδιότητα, όπου Ν είναι η τιμή του περιορισμού πληθάριθμου Σημασιολογικά χαρακτηριστικά ιδιοτήτων Η OWL περιλαμβάνει ορισμένους κατασκευαστές, οι οποίοι προσφέρουν τη δυνατότητα να καθοριστεί επιπρόσθετη σημασιολογία στα χαρακτηριστικά των ιδιοτήτων, για να κατασκευαστούν πιο περίπλοκες ιδιότητες. Αυτοί οι κατασκευαστές είναι: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 28

29 Το owl:inverseof δηλώνει ότι μία ιδιότητα είναι η αντίστροφη μίας άλλης. Για παράδειγμα το αντίστροφο του preyson μπορεί να περιγραφεί στην OWL ως ObjectInverseOf(preysOn), το οποίο δηλώνει τη σχέση του θηράματος με τον θηρευτή του. Το owl:transitiveproperty δηλώνει ότι μία ιδιότητα είναι μεταβατική (transitive). Για παράδειγμα η ιδιότητα istallerthan, η οποία προσδιορίζει ότι ένα άτομο είναι ψηλότερο από ένα άλλο είναι μεταβατική. Αν ισχύει Silvester istallerthan Tweety και Tweety istallerthan Micky, τότε ισχύει Silvester istallerthan Micky. Το owl:symmetricproperty δηλώνει ότι μία ιδιότητα είναι συμμετρική (symmetric). Για παράδειγμα η ιδιότητα distancefrom, η οποία δηλώνει ότι η απόσταση δύο ατόμων είναι συμμετρική. Όπως το Silvester distancefrom Tweety, το οποίο είναι συμμετρικό με το Tweety distancefrom Silvester. Συνεπώς, από τα παραπάνω παραδείγματα συμπεραίνεται ότι η OWL προσθέτει πλουσιότερα σημασιολογικά δεδομένα στον προσδιορισμό των κλάσεων, κάνοντας το περιεχόμενο του ιστού ερμηνεύσιμο στις μηχανές. 2.5 SPARQL Η SPARQL «Protocol and RDF Query Language», είναι η τυπική γλώσσα ερωτημάτων και το πρωτόκολλο για συνδεδεμένα ανοιχτά δεδομένα στον ιστό και για RDF γράφους. Όπως η SQL επιτρέπει στους χρήστες να ανακτούν και να τροποποιούν δεδομένα σε μια σχεσιακή βάση δεδομένων, η SPARQL παρέχει την ίδια λειτουργικότητα για βάσεις δεδομένων υπό την μορφή RDF γράφων. Συνεπώς, επιτρέπει στους χρήστες να υποβάλλουν ερωτήσεις για πληροφορίες από βάσεις δεδομένων ή οποιαδήποτε πηγή δεδομένων που μπορεί να αντιστοιχιστεί σε δομή RDF. Το πιο συνηθισμένο μέσο για την εκτέλεση των ερωτημάτων SPARQL είναι οι σημασιολογικές βάσεις δεδομένων (triple stores), οι οποίες στην πραγματικότητα αποτελούν βάσεις δεδομένων για δομές RDF. Η SPARQL είναι εξαιρετικά εκφραστική και επιτρέπει τη διαμόρφωση των απαιτούμενων και προαιρετικών μοτίβων, αρνητικών αντιστοιχιών, βασικών συμπερασμάτων και των συζεύξεων των συνόλων αποτελεσμάτων, καθώς και εκφράσεις για ομάδες αποτελέσματα ερωτήματος. Έτσι, ένα ερώτημα SPARQL αποτελείται από ένα σύνολο τριπλέτων, στην κάθε μια από τις οποίες κάθε στοιχείο (υποκείμενο, κατηγόρημα, αντικείμενο) μπορεί να είναι μια μεταβλητή. Οι τιμές για τις μεταβλητές εντοπίζονται στη συνέχεια αντιστοιχίζοντας τις τριπλέτες στο ερώτημα με τις τριπλέτες στο σύνολο δεδομένων. Ένα ερώτημα SPARQL, αποτελείται από τις δηλώσεις προθεμάτων, τις δηλώσεις συνόλων δεδομένων, την πρόταση αποτελέσματος, το μοτίβο ερωτήματος και τους μετατροπείς ερωτημάτων. Παρακάτω ακολουθεί ένας γράφος RDF, που δηλώνει τις τριπλέτες ενός κινητήρα, που έχει ορισμένες τιμές βάρους και μέγιστες ώρες εργασίας. mo: < rdf: < 3. mo:eng1 rdf:type mo:engine. 4. mo:eng1 mo:hasweightikg mo:eng1 mo:hasmaxworkinghours

30 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ Γενικότερα, υπάρχουν τέσσερις τύποι διαφορετικών ερωτημάτων, που μπορούν να χρησιμοποιηθούν σε SPARQL: 1. Τα ερωτήματα ΕΠΙΛΟΓΗΣ (SELECT) ερωτημάτων, που επιστρέφουν τιμές για τις μεταβλητές, οι οποίες ανακτώνται από αντιστοιχίσεις σε ένα συγκεκριμένο μοτίβο έναντι του γράφου RDF. 2. Τα ερωτήματα ASK, που επιστρέφουν μια μεταβλητή Boolean, η οποία δείχνει εάν κάποιο αποτέλεσμα αντιστοιχεί ή όχι στο μοτίβο. 3. Τα ερωτήματα CONSTRUCT, που επιτρέπουν την αντικατάσταση των αποτελεσμάτων των ερωτημάτων με ένα προκαθορισμένο πρότυπο για τη δημιουργία του γράφου. 4. Τα ερωτήματα DESCRIBE, που επιστρέφουν ένα μόνο γράφο RDF, που περιέχει τα συναφή δεδομένα με το σύνολο αποτελεσμάτων. Καθώς η «συνάφεια» των δεδομένων εξαρτάται σε μεγάλο βαθμό από το συγκεκριμένο πλαίσιο εφαρμογής, το SPARQL δεν παρέχει κάποια προδιαγραφή του αποτελέσματος που παράγεται από ερωτήματα DESCRIBE Ερωτήματα SELECT Τα ερωτήματα SPARQL ξεκινούν με δηλώσεις namespace στον όρο PREFIX. Πιο συγκεκριμένα με την εντολή PREFIX, μπορούμε να ορίσουμε το πρόθεμα mo ως συντόμευση, το οποίο θα αναφέρεται στο ώστε να μη χρησιμοποιούμε συνεχώς το πλήρες URI. Η εντολή SELECT προσδιορίζει τις πληροφορίες που πρέπει να επιστραφούν. Οι μεταβλητές στο SPARQL ξεκινούν πάντα με ένα "?" και μπορούν να ταιριάξουν με οποιονδήποτε κόμβο (URI ή/και λεκτικό), σε ένα γράφο δεδομένων RDF. Η εντολή WHERE καθορίζει τα συγκεκριμένα μοτίβα τριπλέτων που πρέπει να ταιριάζουν. Τα μοτίβα τριπλέτων είναι τριπλέτες που στη θέση κάποιου ή κάποιων από τα μέρη τους (δηλαδή υποκείμενο, κατηγόρημα ή αντικείμενο) βρίσκεται κάποια μεταβλητή. Η πρόταση αποτελέσματος SELECT επιστρέφει έναν πίνακα τιμών, οι οποίες ικανοποιούν το ερώτημα που τέθηκε. Το παρακάτω ερώτημα επιστρέφει τις μέγιστες ώρες εργασίας του Eng1. 1.PREFIX mo: 2. SELECT * 3. WHERE {mo:eng1 mo:hasmaxworkinghours?maxh6.} Επιπλέον, μπορούμε να περιορίσουμε τα αποτελέσματα που επιστρέφονται, χρησιμοποιώντας έναν μετατροπέα που περιορίζει το πλήθος τους. Ένας τέτοιος μετατροπέας είναι το LIMIT. Παρακάτω, βλέπουμε το ερώτημα που επιστρέφει 20 κλάσεις: 1.PREFIX mo: 2. SELECT?eng 3. WHERE {?S a?eng.} 4.LIMIT 20 Για να καταταχθούν τα αποτελέσματα που επιστρέφονται σύμφωνα με την τιμή μίας ή και περισσότερων μεταβλητών, θα γινόταν χρήση του μετατροπέα ORDERBY, ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 30

31 ενώ για να εξαλειφθούν οι διπλοεγγραφές στα αποτελέσματα, θα γινόταν χρήση του DINSTICT. Το παρακάτω παράδειγμα επιστρέφει τις διακριτές μηχανές, σύμφωνα με την τιμή των μέγιστων ωρών που δούλεψαν. 1.PREFIX mo: 2. SELECT DINSICT?eng 3. WHERE {?eng mo:hasmaxworkinghours?maxh6.} 4.ΟRDERBY?maxH6 Τα αποτελέσματα των ερωτημάτων τύπου SELECT συχνά αναπαρίστανται ως απλοί πίνακες, μια μορφή που δεν είναι αναγνώσιμη από μηχανές. Για να γίνει δυνατή η ανάγνωση και η ερμηνεία των αποτελεσμάτων από τις μηχανές, η SPARQL υποστηρίζει τέσσερα διαδεδομένα μορφότυπα ανταλλαγής δεδομένων: Extensible Markup Language - XML, JavaScript Object Notation- JSON, comma-separated values - CSV και tab-separated values - TSV. O τελεστής FILTER(condition) έχει τη δυνατότητα να φιλτράρει τα αποτελέσματα και να κρατάει μόνο τα επιθυμητά. Μέσα στην παρένθεση, μπορεί να τοποθετηθεί μια δυαδική έκφραση, ενώ επιστρέφονται μόνο τα αποτελέσματα για τα οποία η έκφραση έχει την τιμή TRUE. Έτσι, κάνοντας χρήση μιας δυαδικής συνθήκης, είναι δυνατό να επιλεχθούν μόνο οι πόροι?eng για τους οποίους ισχύει ότι οι πραγματικές ώρες (?ActH) είναι περισσότερες τις μέγιστες (?MaxH) ώρες εργασίας. 1.PREFIX mo: 2.PREFIX rdfs: 3.SELECΤ* 5.WHERE { 6.?eng mo:hasactualworkinghours?acth. 7.?eng mo:hasmaxworkinghours?maxh. 8.FILTER (?acth >?maxh)} Ερωτήματα Ask Το ερώτημα ASK επιστρέφει true ή false, ανάλογα με το αν το ερώτημα ταυτίζεται με μία ή περισσότερες τριπλέτες στον γράφο RDF, ή όχι αντίστοιχα. Χρησιμοποιείται με σκοπό να ερωτηθεί αν υπάρχουν στοιχεία X, Y, έτσι ώστε ορισμένες συνθήκες να ισχύουν. Για παράδειγμα, για να διαπιστωθεί αν υπάρχουν X που έχουν 100 πραγματικές ώρες λειτουργίας, τότε χρησιμοποιείται το παρακάτω ερώτημα: 1.PREFIX mo: 2.PREFIX rdfs: 3.ASK 5.WHERE { 6.?eng mo:hasactualworkinghours 100.} 31

32 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ Ερωτήματα Construct Το CONSTRUCT είναι ένας όρος που επιτρέπει τη δημιουργία γράφων δεδομένων με βάση τις πληροφορίες που ανακτήθηκαν. Οι μεταβλητές που χρησιμοποιούνται στη λίστα CONSTRUCT πρέπει να εμφανίζονται επίσης στη λίστα WHERE. Όταν εκτελείται το ερώτημα, η μηχανή αναζήτησης ξεκινά με την ανάκτηση των δεσμεύσεων των μεταβλητών που ικανοποιούν την περιγραφή στη λίστα WHERE, όπως θα έκανε και για ένα ερώτημα SELECT. Για κάθε δέσμευση μεταβλητής, στη συνέχεια εγκαθιστά τα μοτίβα των τριπλέτων στη λίστα CONSTRUCT και έτσι δημιουργεί νέες RDF τριπλέτες. Το αποτέλεσμα του ερωτήματος είναι ένα συγχωνευμένο γράφημα που περιλαμβάνει όλες τις τριπλέτες που δημιουργήθηκαν. Δίνεται η δυνατότητα να οριστεί για παράδειγμα, ότι για κάθε αναγνωρισμένο φθαρμένο πόρο κινητήρα, υπάρχει μια αντίστοιχη τριπλέτα, που δηλώνει ότι αυτός ο πόρος κινητήρα είναι WornOutEngine. 1.PREFIX mo: 2.PREFIX rdfs: 3.CONSTRUCT { 4.?eng a mo:wornoutengine 5.} 6.WHERE { 7.?eng mo:hasactualworkinghours?acth. 8.?eng mo:hasmaxworkinghours?maxh. 9.FILTER (?acth >?maxh) 10.} Ερωτήματα DESCRIBE Όπως και τα ερωτήματα CONSTRUCT, τα ερωτήματα DESCRIBE παρέχουν ως έξοδο ένα γράφημα RDF, δηλαδή ένα σύνολο τριπλέτων RDF. Διαφέρουν από τα ερωτήματα CONSTRUCT στο ότι αυτές οι τριπλέτες δεν κατασκευάζονται σύμφωνα με ένα πρότυπο, αλλά επιστρέφονται όπως βρίσκονται στο σύνολο δεδομένων. Μπορεί να χρησιμοποιηθούν για να προστεθούν οι τριπλέτες σε ένα άλλο σύνολο δεδομένων, χωρίς να εκφραστούν εκ νέου οι πληροφορίες, χρησιμοποιώντας διαφορετικά ονόματα πόρων. Για να καθοριστούν οι επιθυμητές πληροφορίες, η απλούστερη μέθοδος είναι να ονομαστεί ένας πόρος. Στη συνέχεια, ο μηχανισμός ερωτήσεων θα επιστρέψει όλες τις τριπλέτες στις οποίες αυτός ο πόρος χρησιμοποιείται, είτε ως αντικείμενο, είτε ως κατηγόρημα. Έτσι, το ακόλουθο ερώτημα θα ανακτήσει όλες τις δηλώσεις που αναφέρουν το MyEng. 1.PREFIX mo: 2.PREFIX rdfs: 3.DESCRIBE mo:myeng ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 32

33 2.6 ΣΗΜΑΣΙΟΛΟΓΙΚΕΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Βάσεις Δεδομένων Γράφων Σε ένα περιβάλλον βάσης δεδομένων, το πλαίσιο των δεδομένων συχνά ορίζεται κυρίως από τη δομή του, δηλαδή από τις ιδιότητες και τις σχέσεις του με άλλα αντικείμενα. Έτσι, ενώ σε μια σχεσιακή προσέγγιση, η δομή των δεδομένων ορίζεται από ρητούς περιορισμούς αναφοράς, αντίθετα, στη σημασιολογική μοντελοποίηση η δομή ορίζεται με έναν εγγενή τρόπο, δηλαδή μια ιδιότητα των δεδομένων μπορεί να είναι ίδια με μια ιδιότητα ενός άλλου αντικείμενου. Τα δεδομένα του πραγματικού κόσμου έχουν πολλές δυνατότητες για να παρουσιαστούν ως γράφοι. Ως αποτέλεσμα, λαμβάνουμε μη κατευθυνόμενους ή κατευθυνόμενους γράφους, πολυγράφους και υπεργράφους, γράφους με ετικέτες ή με βάρη και τις παραλλαγές τους. Η ανάπτυξη της μοντελοποίησης των γράφων φέρνει επίσης νέες προσεγγίσεις, όπως το να λαμβάνονται υπόψη διάφοροι περιορισμοί. Η επεξεργασία των γράφων, μέσω μιας βάσης δεδομένων μπορεί να γίνει με πολλούς διαφορετικούς τρόπους. Μερικοί γράφοι μπορούν να αναπαρασταθούν ως δομές JSON ή XML και να υποστούν επεξεργασία, από τα δικά τους εγγενή εργαλεία βάσης δεδομένων. Οπότε, μια βάση δεδομένων γράφων καθορίζεται ως οποιοδήποτε αποθηκευτικό σύστημα, που παρέχει γειτνίαση χωρίς δεικτοδότηση, δηλαδή ως μια ρητή δομή γράφου. Πιο συγκεκριμένα, μια βάση δεδομένων γράφων είναι οποιοδήποτε σύστημα αποθήκευσης, που χρησιμοποιεί δομές γράφων με κόμβους και άκρα, για την αναπαράσταση και την αποθήκευση δεδομένων. Το πιο συχνά χρησιμοποιούμενο μοντέλο, στο πλαίσιο των βάσεων δεδομένων γράφων, ονομάζεται μοντέλο ιδιότητας γράφου. Ένας γράφος, περιέχει συνδεδεμένες οντότητες (κόμβους), που μπορούν να κρατήσουν οποιοδήποτε πλήθος ιδιοτήτων (χαρακτηριστικά), που εκφράζονται ως ζεύγη κλειδιών-τιμών. Οι κόμβοι και οι ακμές, μπορούν να επισημανθούν με ετικέτες, οι οποίες αντιπροσωπεύουν τους διαφορετικούς ρόλους που μπορούν να έχουν στον τομέα εφαρμογών. Ορισμένες προσεγγίσεις, αναφέρονται στην ετικέτα ως τον τύπο, ο οποίος μπορεί να χρησιμεύσει και για την επισύναψη μεταδεδομένων σε ορισμένους κόμβους. Οι σχέσεις (relationships) παρέχουν κατευθυνόμενες, σημασιολογικά σχετικές συνδέσεις (ακμές) μεταξύ των δύο κόμβων. Μια σχέση έχει πάντα μια κατεύθυνση, δηλαδή έχει έναν κόμβο έναρξης και καταλήγει σε έναν τελικό κόμβο. Σαν κόμβοι, οι σχέσεις μπορούν να έχουν οποιεσδήποτε ιδιότητες. Συχνά, οι σχέσεις έχουν ποσοτικές ιδιότητες, όπως βάρος, κόστος, απόσταση, βαθμολογίες ή χρονικό διάστημα. Οι ιδιότητες κάνουν τους κόμβους και τα άκρα πιο περιγραφικά και πρακτικά στη χρήση. Τόσο οι κόμβοι, όσο και οι άκρες ορίζονται από ένα μοναδικό αναγνωριστικό. Καθώς οι σχέσεις αποθηκεύονται αποτελεσματικά, δύο κόμβοι μπορούν να μοιράζονται οποιονδήποτε αριθμό ή σχέση διαφορετικών τύπων, χωρίς να μειώνεται η απόδοση. Οι σχέσεις, παρόλο που είναι κατευθυνόμενες, μπορούν πάντα να πλοηγηθούν ανεξάρτητα από την κατεύθυνση. Στην πραγματικότητα, το μοντέλο ιδιοτήτων γράφου, αφορά τη δομή δεδομένων που ονομάζεται στη θεωρία των γράφων ως «Με ετικέτα και κατευθυνόμενοι γράφοι». Μερικές φορές μπορούμε να συναντήσουμε υπεργράφους «hyperhraph» σε λογισμικό βάσης δεδομένων γράφων, ο οποίος είναι μια γενίκευση της έννοιας ενός γράφου, στην οποία οι ακμές 33

34 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ αντικαθίστανται από υπερακμές «hyperedges». Εάν μια κανονική ακμή συνδέει δύο κόμβους ενός γράφου, τότε μια υπερακμή συνδέει ένα αυθαίρετο σύνολο κόμβων RDF stores Το RDF παρέχει δυνατότητες στην επεξεργασία γνώσεων που δεν είναι δυνατές σε άλλα μοντέλα βάσεων δεδομένων. Ο νέος τρόπος σκέψης για τις πληροφορίες σε αυτές τις σημασιολογικές τεχνολογίες, παρουσιάζει επίσης τις δικές τους προκλήσεις, καθώς και νέα σύνολα εργαλείων. Ακόμη και η πιο θεμελιώδης λειτουργικότητα για την παροχή αποτελεσματικής αποθήκευσης και ανάκτησης πληροφοριών σε ένα μοντέλο δεδομένων RDF, είναι ένα ζήτημα που έχει δημιουργήσει μια νέα γενιά συστημάτων αποθήκευσης πληροφοριών, που ονομάζονται RDF stores. Τα RDF store, τα οποία συχνά ονομάζονται σημασιολογικές βάσεις δεδομένων γραφήματος, είναι ένας τύπος βάσης δεδομένων γραφημάτων, που αποθηκεύει δεδομένα ως δίκτυο αντικειμένων και χρησιμοποιεί συμπεράσματα, για να αποκαλύψει νέες πληροφορίες από τις υπάρχουσες σχέσεις. Εκτός από την παροχή αποθήκευσης και ανάκτησης πληροφοριών σε μορφή RDF, τα RDF stores αποτελούνται συχνά από λογισμικά με διάφορες λειτουργίες, που σχετίζονται με σημασιολογικές τεχνολογίες και επεξεργασία πληροφοριών. Το μοντέλο δεδομένων RDF δεν καθορίζει τη φυσική διάταξη των ίδιων των δεδομένων, αλλά αντίθετα ορίζει τον τρόπο που οι πληροφορίες πρέπει να παρουσιάζονται στον χρήστη ή στην εφαρμογή, όταν έχει γίνει πρόσβαση στο RDF store. Αυτή η αφαίρεση πληροφοριών, έχει οδηγήσει σε μεγάλες διαφορές στις υποκείμενες δομές δεδομένων που χρησιμοποιούνται από διαφορετικά RDF stores. Η ευέλικτη και δυναμική τους φύση, επιτρέπει τη σύνδεση διαφορετικών δεδομένων, τη δημιουργία ευρετηρίου για σημασιολογική αναζήτηση και τον εμπλουτισμό μέσω της ανάλυσης κειμένου, για τη δημιουργία μεγάλων γραφημάτων γνώσης. Προορίζονται για ειδικές εφαρμογές γραφημάτων, κυρίως τα δεδομένα RDF, τα οποία εκφράζονται με τη μορφή τριπλέτας subject (S) - predicate (P) - object (O). Σε αντίθεση με άλλους τύπους βάσεων δεδομένων γραφημάτων, τα RDF triplestore υποστηρίζουν μοντέλα σχήματος, που ονομάζονται οντολογίες. Οι οντολογίες επιτρέπουν την επίσημη περιγραφή των δεδομένων. Καθορίζουν τόσο τις κατηγορίες αντικειμένων, όσο και τις ιδιότητες σχέσης, καθώς και την ιεραρχική τους σειρά. Επίσης, εφαρμόζουν έξυπνες λύσεις διαχείρισης δεδομένων, που συνδυάζουν την αναζήτηση πλήρους κειμένου με αναλυτικά στοιχεία γραφημάτων και τον λογικό συλλογισμό, για να παράγουν βαθύτερα αποτελέσματα Τεχνικές αποθήκευσης Καθώς οι τεχνικές αποθήκευσης έχουν καθοριστική επίδραση στην απόδοση των RDF stores, η αναγνώριση των βασικών δομών δεδομένων που χρησιμοποιούνται σε αυτά καθίσταται σημαντική για την αξιολόγηση μεμονωμένων RDF store. Ένα από τα καθοριστικά χαρακτηριστικά για την πραγματική απόδοση τους, είναι το πόσο καλά μπορούν να χειριστούν τα αιτήματα ανάκτησης πληροφοριών από τους γράφους RDF. Ως αποτέλεσμα αυτού, η απόδοση των καταστημάτων RDF συνδέεται στενά με το πόσο καλά η δομή ευρετηρίου μπορεί να χειριστεί τα αποτελέσματα, που προκύπτουν από το ταίριασμα των ερωτημάτων με τα μοτίβα των γράφων. Μερικές δομές δεδομένων που χρησιμοποιούνται είναι οι ακόλουθες: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 34

35 1. Το Triple Table, που μπορεί να θεωρηθεί ως ο πιο άμεσος τρόπος αποθήκευσης των τριπλέτων RDF. Στην προσέγγιση αυτή, το μοντέλο δεδομένων RDF αντιστοιχίζεται απευθείας σε έναν πίνακα τριών στηλών (Eικόνα 5), στον οποίο κάθε πλειάδα περιέχει πηγές για το υποκείμενο, το αντικείμενο και το κατηγόρημα της δήλωσης RDF. Εικόνα 5. Triple Table 2. Το Property Table, που ξεπερνάει ορισμένα από τα όρια επεκτασιμότητας, τα οποία υπάρχουν στην προσέγγιση του Triple Table. Η βασική ιδέα πίσω από αυτή τη δομή είναι η ανακάλυψη των ομάδων των αντικειμένων των τριπλέτων στη βάση γνώσης, οι οποίες μοιράζονται τις ίδιες ιδιότητες, και στη συνέχεια να ομαδοποιηθούν σε κοινούς πίνακες. Για κάθε γραμμή στον πίνακα ιδιοτήτων του Πίνακα 1, η στήλη περιέχει το θέμα για την τριπλέτα με μία ή περισσότερες στήλες, που περιέχουν τις τιμές ιδιοτήτων για αυτό το θέμα. Πίνακας 1. Property Table Subject Type geo:haspopulat geo:islocatedin ion place:city#london place:city# place:region:engl and place:region#engl and place:country#uk place:region # place:countr y# NULL NULL 3. Το Vertical Partitioning, στο οποίο ισχύει ότι όλες οι τριπλέτες τοποθετούνται σε n πίνακες δύο στηλών, όπου n ο συνολικός αριθμός μοναδικών ιδιοτήτων στη βάση γνώσης. Η πρώτη στήλη χρησιμοποιείται για την αποθήκευση των αντικειμένων που έχουν την καθορισμένη ιδιότητα αυτού του πίνακα και η δεύτερη στήλη περιέχει τις τιμές των υποκειμένων (Εικόνα 6). 35

36 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ AllegroGraph Εικόνα 6. Vertical Partitioning Το AllegroGraph 14 είναι μια οριζόντια κατανεμημένη τεχνολογία πολλαπλών μοντέλων (έγγραφο και γράφος) και Entity-Event Knowledge Graph, η οποία επιτρέπει στις επιχειρήσεις να εξαγάγουν εξελιγμένες πληροφορίες λήψης αποφάσεων και προγνωστικά αναλυτικά στοιχεία, από τα πολύ περίπλοκα κατανεμημένα δεδομένα τους, οι οποίες δε μπορούν να εξαχθούν από τις συμβατικές βάσεις δεδομένων. Με το FedShard Speeds Complex Queries μια καινοτόμο λειτουργία συνένωσης μνήμης, τα αποτελέσματα από κάθε μηχάνημα συνδυάζονται έτσι ώστε η διαδικασία ερωτήματος να εμφανίζεται σαν να έχει πρόσβαση μόνο μία βάση δεδομένων, αν και στην πραγματικότητα έχει πρόσβαση σε πολλές διαφορετικές βάσεις και αποθήκες δεδομένων, αλλά και βάσεις γνώσεων επιστρέφοντας τα κατάλληλα αποτελέσματα. Αυτή η μοναδική δυνατότητα ενοποίησης δεδομένων, επιταχύνει την επιστροφή των αποτελεσμάτων για τα πολύ περίπλοκα ερωτήματα, που γίνονται σε ένα σύνολο κατανεμημένων δεδομένων και βάσεων γνώσεων. Σε αντίθεση με τις παραδοσιακές σχεσιακές βάσεις δεδομένων ή τις απλές βάσεις δεδομένων γράφων, το AllegroGraph χρησιμοποιεί συνδυασμό τεχνολογιών εγγράφων (JSON και JSON-LD) και γράφων που επεξεργάζονται δεδομένα με εννοιολογική ευφυΐα. Οι γράφοι γνώσης που είναι ενσωματωμένοι στην πλατφόρμα AllegroGraph είναι σε θέση να εκτελούν ερωτήματα με πρωτοφανή μικρή πολυπλοκότητα για την υποστήριξη προγνωστικών αναλυτικών στοιχείων, που βοηθούν τις εταιρείες στη λήψη καλύτερων αποφάσεων σε πραγματικό χρόνο. 14 AllegroGraph: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 36

37 Virtuoso Ο Virtuoso 15 Universal Server είναι μια σύγχρονη πλατφόρμα ανοιχτού κώδικα, βασισμένη σε υπάρχοντα ανοιχτά πρότυπα, που αξιοποιεί τη δύναμη των υπερσυνδέσμων για την διάσπαση των δεδομένων που παρακωλύουν τις δυνατότητες των χρηστών και των επιχειρήσεων. Για παράδειγμα, ο πυρήνας του Virtuoso SQL & SPARQL τροφοδοτεί πολλές πρωτοβουλίες των επιχειρήσεων που χρησιμοποιούν γράφους γνώσης, ακριβώς όπως τροφοδοτεί την DBpedia 16 και την πλειονότητα των κόμβων στο Linked Open Data Cloud 17, τον μεγαλύτερο γράφο γνώσης στον κόσμο. Το Virtuoso έχει επίσης αποδειχθεί ότι μπορεί να κλιμακώσει έως και σύνολα δεδομένων σε τρισεκατομμύρια τριπλέτες. Είναι επίσης συμβατό με την τελευταία έκδοση του SPARQL, ενώ μπορεί να θεωρηθεί ένα καλά τεκμηριωμένο σύστημα με σημαντικό αριθμό προγραμματιστών που εργάζονται για τη συνεχή βελτίωση του. Η ενσωματωμένη λειτουργικότητα συλλογισμού και συμπερασμάτων, καθιστά την τεχνητή νοημοσύνη, τη μηχανική μάθηση και τη διακυβέρνηση δεδομένων αναπόσπαστο μέρος της λειτουργικότητας απεικόνισης των δεδομένων που διαθέτει, διευκολύνοντας την κατασκευή ενός σύγχρονου γράφου γνώσης για κάθε επιχειρηματικό τομέα ενδιαφέροντος GraphDB Στην εποχή μας, το κορυφαίο RDF store είναι η GraphDB 18, η οποία μπορεί να εξάγει σημασιολογικά συμπεράσματα σε μεγάλη κλίμακα, επιτρέποντας στους χρήστες να δημιουργούν νέα σημασιολογικά δεδομένα από τα υπάρχοντα γεγονότα. Η GraphDB υποστηρίζει την OWL και χρησιμοποιεί οντολογίες που επιτρέπουν στο αποθετήριο να κάνει συλλογισμούς αυτόματα από τα δεδομένα. Είναι μια πολύ αποτελεσματική βάση δεδομένων γραφημάτων που υποστηρίζει και το SPARQL. Το GraphDB Workbench REST API, μπορεί να χρησιμοποιηθεί για τη διαχείριση τοποθεσιών και αποθετηρίων μέσω προγραμματισμού. Περιλαμβάνει σύνδεση σε απομακρυσμένες τοποθεσίες GraphDB, ενεργοποίηση μιας τοποθεσίας, καθώς και διαφορετικούς τρόπους για τη δημιουργία ενός αποθετηρίου. Το Workbench είναι το εργαλείο διαχείρισης των αποθετηρίων. Για να δημιουργηθεί ένα νέο αποθετήριο, ακολουθούνται τα βήματα Go to Setup Repositories Create new repository Select GraphDB Free repository, που καταλήγουν στο πλαίσιο της Εικόνας 7, όπου συμπληρώνονται τα απαραίτητα πεδία. 15 Virtuoso: 16 DBpedia: 17 Linked Open Data Cloud: 18 GraphDB: 37

38 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 2: ΕΙΣΑΓΩΓΗ ΣΤΟ ΣΗΜΑΣΙΟΛΟΓΙΚΟ ΙΣΤΟ Εικόνα 7. Δημιουργία αποθετηρίου στη GraphDB Για να φορτωθούν τα δεδομένα, χρησιμοποιείται το Import RDF. Εκεί δίνεται η δυνατότητα, είτε να ανέβει ένα αρχείο με τα δεδομένα επιλέγοντας το Upload RDF Files, είτε από ένα απομακρυσμένο URL επιλέγοντας το Get RDF data from URL, όπως φαίνεται στην Εικόνα 8. Για το ακόλουθο παράδειγμα, φορτώνεται το απομακρυσμένο URL. Εικόνα 8. Εισαγωγή δεδομένων στη GraphDB Αφού έχει γίνει η εισαγωγή των δεδομένων, πραγματοποιείται πλοήγηση στο Explore, για να προβληθούν οι σχέσεις που έχουν προκύψει. Για να οπτικοποιηθεί ένα στιγμιότυπο, επιλέγεται το Visual Graph, στο οποίο δίνεται το IRI του ενδιαφερόμενου πόρου, έχοντας ως αποτέλεσμα ένα γράφο σαν αυτόν της Εικόνας 9. Εικόνα 9. Στιγμιότυπα στη GraphDB ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 38

39 Για να εμφανιστεί ένα διάγραμμα που απεικονίζει την ιεραρχία των κλάσεων, σαν αυτό της Εικόνας 10, επιλέγεται το Class hierarchy. Οι μεγαλύτεροι κύκλοι είναι οι κλάσεις των γονέων και οι εμφωλευμένοι είναι τα παιδιά τους. Εικόνα 10. Ιεραρχία των κλάσεων στη GraphDB Tέλος, για να διερευνηθεί η συνδεσιμότητα μιας συγκεκριμένης κλάσης, γίνεται διπλό κλικ στον κύκλο κλάσης ή στο κουμπί Domain-Range Graph που βρίσκεται στο πλαϊνό πλαίσιο. Στη συνέχεια παρουσιάζεται ένα διάγραμμα που δείχνει αυτήν την κλάση και τις ιδιότητές της με τον τομέα και το εύρος τους, όπως φαίνεται στην Εικόνα 11. Εικόνα 11. Domain-Range Graph 39

40 Κ Ε Φ Α Λ Α Ι Ο 3 : Τ Ο Π Ρ Ο Τ Υ Π Ο T O S C A 40

41 3. ΤΟ ΠΡΟΤΥΠΟ ΤOSCA Στο παρόν κεφάλαιο αναφέρεται αρχικά η έννοια του υπολογιστικού νέφους και στη συνέχεια μελετώνται οι λόγοι που οδήγησαν στην ανάπτυξη ενός κοινού προτύπου αναπαράστασης και μοντελοποίησης των υπηρεσιών του. Επιπρόσθετα, γίνεται η περιγραφή των δομών και των δυνατοτήτων (Node Types, Capabilty Types, Relationship Types), που προσφέρει η γλώσσα μοντελοποίησης TOSCA, η οποία αξιοποιεί τα πλεονεκτήματα της για να συνεισφέρει στην εξέλιξη του υπολογιστικού νέφους. 3.1 ΥΠΟΛΟΓΙΣΤΙΚΟ ΝΕΦΟΣ Το υπολογιστικό νέφος φέρνει επανάσταση στον τομέα της πληροφορικής, επιτρέποντας μια βολική, κατά απαίτηση και κλιμακούμενη πρόσβαση δικτύου, σε κοινόχρηστες ομάδες πόρων υπολογιστών. Παρέχει ένα δυναμικό, ετερογενές και ελαστικό περιβάλλον, προσφέροντας προσβάσιμες υπηρεσίες νέφους στους τελικούς χρήστες. Οι εργασίες που σχετίζονται με τη διάθεση υπηρεσιών νέφους, όπως η αντιστοίχιση, η επιλογή και η σύνθεση, είναι ουσιώδεις και συνδέονται στενά μεταξύ τους. Η ενσωμάτωση αυτών των εργασιών είναι κρίσιμη, για τη βέλτιστη σύνθεση και απόδοση της πλατφόρμας υπηρεσίας νέφους. Είναι ένα γρήγορο εξελισσόμενο και διαδεδομένο παράδειγμα κατανομής πόρων, το οποίο υιοθετείται από έναν αυξανόμενο αριθμό εταιρειών, για την παροχή ανταγωνιστικών υπηρεσιών και λειτουργιών, και ταυτόχρονα για τη μείωση του κόστους διαχείρισης. Η ταχεία υιοθέτηση λύσεων νέφους, έχει ωθήσει τους παρόχους σχετικών υπηρεσιών να συνεχίσουν να βελτιώνουν και να ενημερώνουν τις προσφορές των υπηρεσιών τους. Αν και αυτή η ποικιλία επηρεάζει θετικά την αγορά και την ποιότητα των υπηρεσιών, από την άλλη, μπορεί να αποτελέσει εμπόδιο για πελάτες, οι οποίοι έχουν επιλέξει τις κατάλληλες υπηρεσίες που ταιριάζουν ακριβώς στην ανάγκη τους, τις οποίες στην συνέχεια συνθέτουν, για να αποκτήσουν την επιθυμητή λειτουργικότητα. Σε πολλές περιπτώσεις, λόγω της έλλειψης ενός κοινού προτύπου για την περιγραφή των διεπαφών των υπηρεσιών και των ασυμβατοτήτων μεταξύ των υιοθετημένων μορφών δεδομένων, μπορεί να είναι δύσκολο να συνθεθούν αποτελεσματικά υπηρεσίες νέφους και να γίνει εκμετάλλευση της πλήρης λειτουργικότητάς τους. Παρά τις προσπάθειες έρευνας και τυποποίησης, που έχουν πραγματοποιηθεί, τόσο από την ακαδημαϊκή κοινότητα, όσο και από τις εμπορικές επιχειρήσεις, η σύνθεση των υπαρχουσών υπηρεσιών νέφους, που ικανοποιούν πλήρως τις απαιτήσεις των πελατών, εξακολουθεί να είναι πολύπλοκη και δύσκολη. Για τις σύνθετες εφαρμογές, που περιλαμβάνουν πολλά στοιχεία με διαφορετικές τεχνικές εξαρτήσεις και περιορισμούς και κάνουν επίσης χρήση διαφορετικών στοιχείων πλατφόρμας, η ανάπτυξη τους και οι τρέχουσες εργασίες διαχείρισης, έχουν γίνει τρομακτικά περίπλοκες και επιρρεπείς σε σφάλματα χρησιμοποιώντας τα παραδοσιακά εργαλεία. Όμως, με την έλευση του υπολογιστικού νέφους, οι οργανισμοί μεταφέρουν όλο και περισσότερο τους πόρους της τεχνολογίας πληροφοριών και επικοινωνιών (ΤΠΕ) σε αυτό, λόγω και του μοντέλου «cloud-pay-as-you-go», το οποίο μειώνει δραστικά την πραγματική υποδομή πληροφορικής, προσφέροντας υψηλή απόδοση και συνεχή διαθεσιμότητα. Προκειμένου να αξιοποιηθούν αποτελεσματικά οι υπάρχοντες πόροι του νέφους, οι οργανισμοί μπορούν να αναζητήσουν πόρους, που είναι διαθέσιμοι από διαφορετικούς παρόχους. Ο μεγάλος αριθμός υπηρεσιών νέφους, που διατίθενται επί 41

42 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 3: ΤΟ ΠΡΟΤΥΠΟ TOSCA του παρόντος στην αγορά, είτε προσφέρουν τυποποιημένες διεπαφές, είτε εφαρμόζουν διαφορετικά πρότυπα, ανάλογα με τον συγκεκριμένο στόχο τους. Όπως και στο παρελθόν, τα πρότυπα σχεδίασης έχουν εφαρμοστεί στη σχεδίαση λογισμικού για να φέρουν την τάξη και να βοηθήσουν τις προγραμματίστριες και τους προγραμματιστές να κάνουν καλύτερη κατασκευή, σύνθεση και επαναχρησιμοποίηση της εφαρμογής τους. Σήμερα τα μοτίβα νέφους, τους προσφέρουν την ευκαιρία να αξιοποιήσουν τις βέλτιστες πρακτικές στη σύνθεση υπηρεσιών, για να σχεδιάσουν και να αναπτύξουν εφαρμογές νέφους. Ωστόσο, λόγω των διαφορών που υπάρχουν στη σημασιολογία, επηρεάζονται οι περιγραφές των υπηρεσιών, των λειτουργιών και των παραμέτρων. Συνεπώς, τα μοτίβα νέφους δεν μπορούν να λύσουν μόνα τους το πρόβλημα της σύνθεσης της υπηρεσίας νέφους. Οι τρέχουσες τεχνολογίες νέφους, έχουν έλλειψη τυποποίησης, αφού διαφορετικοί πάροχοι, προσφέρουν παρόμοιους πόρους με διαφορετικό τρόπο. Ως αποτέλεσμα, οι προγραμματίστριες και οι προγραμματιστές του νέφους, τείνουν να χρησιμοποιούν και να παραμένουν σε μια συγκεκριμένη πλατφόρμα, επειδή είναι πρακτικά ανέφικτο για αυτούς, λόγω της μεγάλης πολυπλοκότητας και του κόστους, να μεταφέρουν τις εφαρμογές τους σε μια διαφορετική πλατφόρμα. Προκειμένου να καταστεί δυνατή η δημιουργία φορητών εφαρμογών νέφους, τα στοιχεία της εφαρμογής, οι σχέσεις και η διαχείρισή τους θα πρέπει να μοντελοποιηθούν σε τυποποιημένη μορφή, κατανοητή από προγράμματα. Επίσης, αυτό θα επιτρέψει την αυτοματοποίηση της ανάπτυξης και της διαχείρισης της μοντελοποιημένης εφαρμογής. Σε αυτήν την προοπτική, το OASIS 19 κυκλοφόρησε το 2013 την έκδοση του TOSCA (Cloud Topology and Orchestration Specification for Cloud Applications), η οποία βασίζεται σε XML και το 2016 την έκδοση , που βασίζεται στο YAML. Το OASIS είναι μια μη κερδοσκοπική κοινοπραξία, που ασχολείται με την ανάπτυξη ανοικτών προτύπων, που υποστηρίζονται από τους περισσότερους προμηθευτές στον τομέα του νέφους, καθώς και από την αγορά τηλεπικοινωνιών. Έτσι, το TOSCA είναι πλέον γνωστό, ως ένα από τα ταχύτερα αναπτυσσόμενα πρότυπα στο OASIS και έχει πολλές περιπτώσεις χρήσης, αλλά και υλοποιήσεις. Ουσιαστικά, το TOSCA προτείνει μια γλώσσα μοντελοποίησης, η οποία επιτρέπει τον ορισμό της δομής μιας εφαρμογής, ως ένα τυποποιημένο γράφο τοπολογίας. Η ιδέα πίσω από το πρότυπο TOSCA είναι να επιφέρει βελτιώσεις στην ανάπτυξη, τον τερματισμό και οποιαδήποτε άλλη λειτουργία διαχείρισης των εφαρμογών νέφους. Καθορίζοντας πρότυπα υπηρεσιών, που αποτελούνται από διαφορετικά στοιχεία και τις σχέσεις μεταξύ αυτών των διαφορετικών τμημάτων, το TOSCA βοηθά στη διαμόρφωση των εφαρμογών και της υποκείμενης υποδομής τους, καθώς και την ενεργοποίηση φορητών εφαρμογών στο νέφος με έναν πολύ μοναδικό τρόπο. Πιο συγκεκριμένα, το TOSCA στοχεύει στην αντιμετώπιση των ακόλουθων ζητημάτων στη διαχείριση εφαρμογών νέφους: Την αυτοματοποιημένη ανάπτυξη εφαρμογών και διαχείριση εφαρμογών. Η TOSCA παρέχει μια γλώσσα για να εκφράσει τον τρόπο αυτόματης ανάπτυξης και διαχείρισης εφαρμογών νέφους. Αυτός ο στόχος επιτυγχάνεται 19 OASIS: 20 TOSCA 1.0: 21 TOSCA 1.3: Simple-Profile-YAML-v1.3-os.html ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 42

43 απαιτώντας από τις προγραμματίστριες και τους προγραμματιστές να ορίσουν μια αφηρημένη τοπολογία μιας σύνθετης εφαρμογής και να δημιουργήσουν πρότυπα, που περιγράφουν την ανάπτυξη και τη διαχείρισή της. Τη φορητότητα των περιγραφών εφαρμογών και της διαχείρισης τους. Για το σκοπό αυτό, η TOSCA παρέχει έναν τυποποιημένο τρόπο περιγραφής της τοπολογίας των εφαρμογών πολλών συστατικών. Επίσης, αντιμετωπίζει τη φορητότητα διαχείρισης, στηριζόμενη στη φορητότητα των γλωσσών ροής εργασίας, που χρησιμοποιούνται για την περιγραφή σχεδίων ανάπτυξης και διαχείρισης. Τη διαλειτουργικότητα και επαναχρησιμοποίηση των στοιχείων. Το TOSCA στοχεύει στην περιγραφή των συστατικών σύνθετων εφαρμογών νέφους, με διαλειτουργικό και επαναχρησιμοποιήσιμο τρόπο. Επιπλέον, το TOSCA επιτρέπει τον ορισμό και την δημιουργία πακέτων, των δομικών στοιχείων μιας εφαρμογής με έναν εντελώς αυτόνομο τρόπο, παρέχοντας έτσι έναν τυποποιημένο τρόπο, για την επαναχρησιμοποίησή τους σε διαφορετικές εφαρμογές. 3.2 ΒΑΣΙΚΕΣ ΔΥΝΑΤΟΤΗΤΕΣ ΚΑΙ ΔΟΜΕΣ ΓΛΩΣΣΑ ΜΟΝΤΕΛΟΠΟΙΗΣΗΣ TOSCA Για να επιτευχθούν οι προαναφερθέντες στόχοι, το TOSCA παρέχει μια γλώσσα μοντελοποίησης, που βασίζεται σε XML και έχει ως σκοπό να επιτρέψει την τυποποίηση της δομής κάθε εφαρμογής νέφους, ως τυποποιημένου τοπολογικού γράφου και των εργασιών διαχείρισης ως σχέδια (Plans). Μια εφαρμογή αναπαρίσταται ως «ServiceTemplate», όπως παρουσιάζεται στην Εικόνα 12, το οποίο με τη σειρά του συνοδεύεται από ένα «TopologyTemplate» και προαιρετικά, από ορισμένα διαχειριστικά Plans. Εικόνα 12. Δομή TOSCA Service Template 43

44 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 3: ΤΟ ΠΡΟΤΥΠΟ TOSCA Το «TopologyTemplate» είναι η αναπαράσταση της τοπολογίας μιας εφαρμογής πολλαπλών στοιχείων, ως ένα τυποποιημένο γράφο, του οποίου οι κόμβοι είναι τα συστατικά της εφαρμογής και οι ακμές είναι οι σχέσεις μεταξύ αυτών των στοιχείων. Τα στοιχεία της εφαρμογής και οι σχέσεις τους αντιπροσωπεύονται μέσω των «NodeTemplates» και «RelationshipTemplates», αντίστοιχα. Ο σκοπός των «NodeTemplates» είναι να ορίσουν τα χαρακτηριστικά των εφαρμογών για συγκεκριμένα στοιχεία (π.χ. πραγματικές τιμές ιδιοτήτων, κτλ.), ενώ ο σκοπός των αντίστοιχων τύπων είναι να περιγράψουν τη δομή των χαρακτηριστικών που θα καθοριστούν Node Types Η δομή των δυνατοτήτων που εκτίθενται από ένα στοιχείο εφαρμογής, καθορίζεται μέσω των «NodeTypes». Πιο συγκεκριμένα, τα «NodeTypes» καθορίζουν τη δομή των παρατηρήσιμων ιδιοτήτων ενός στοιχείου εφαρμογής, τις λειτουργίες διαχείρισης που προσφέρει, τις πιθανές καταστάσεις των στιγμιότυπων του, τις απαιτήσεις που χρειάζονται για τη σωστή λειτουργία του και τις δυνατότητες που προσφέρονται για να ικανοποιήσουν τις απαιτήσεις άλλων στοιχείων. Παρακάτω, ακολουθεί το παράδειγμα του βασικού Node Type Root, ενώ στην Εικόνα 13 παρουσιάζεται η γενική ιεραρχία των Node Types. tosca.nodes.root description: The TOSCA base node type from which all other TOSCA normative node types derive. short_name: Root attributes: state: type: string capabilities: feature: type: tosca.capabilities.node occurrences: [ 1, UNBOUNDED ] properties: interfaces: Standard: type: tosca.interfaces.node.lifecycle.standard inputs: operations: requirements: - dependency: relationship: type: tosca.relationships.dependson ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 44

45 capability: tosca.capabilities.node node: tosca.nodes.root occurrences: [ 0, UNBOUNDED ] 45

46 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 3: ΤΟ ΠΡΟΤΥΠΟ TOSCA tosca.nodes.loadbalancer tosca.nodes.network.port tosca.nodes.abstract.compute Μια λογική συνάρτηση που μπορεί να χρησιμοποιηθεί σε συνδυασμό με μια Κινούμενη Διεύθυνση (a Floating Address) για την κατανομή της κίνησης μιας εφαρμογής (φόρτωση) σε μια σειρά από στιγμιότυπα της εφαρμογής (π.χ., για μια ομαδοποιημένη ή κλιμακωτή εφαρμογή). Μια λογική οντότητα που συσχετίζεται μεταξύ των τύπων Compute και Network. Ο τύπος κόμβου θύρας, αντιπροσωπεύει αποτελεσματικά ένα εικονικό NIC στο στιγμιότυπο κόμβου Compute. Έναν αφηρημένος πόρος υπολογισμού, χωρίς απαιτήσεις για πόρους αποθήκευσης ή δικτύου. tosca.nodes.root tosca.nodes.network.network tosca.nodes.abstract.storage tosca.nodes.softwarecomponent Μια απλή, λογική υπηρεσία δικτύου. Ένας αφηρημένος πόρος αποθήκευσης, χωρίς απαιτήσεις για πόρους υπολογισμού ή δικτύου Ένα γενικό στοιχείο λογισμικού που μπορεί να διαχειριστεί και να εκτελεστεί από έναν κόμβο υπολογιστών TOSCA. tosca.nodes.container.application Μια εφαρμογή που απαιτεί τεχνολογία εικονικοποίησης Container level. tosca.nodes.database tosca.nodes.webapplication Μια λογική βάση δεδομένων που μπορεί να διαχειρίζεται και να φιλοξενείται από έναν κόμβο TOSCA DBMS. Μια εφαρμογή λογισμικού που μπορεί να διαχειριστεί και να εκτελεστεί από έναν κόμβο TOSCA WebServer. Συγκεκριμένοι τύποι εφαρμογών ιστού όπως Java κ.λπ. θα μπορούσαν να προέλθουν από αυτόν τον τύπο. Εικόνα 13. Ιεραρχία Node Types ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 46

47 Οι ιδιότητες περιγράφονται με «PropertiesDefinitions», οι λειτουργίες με «InterfaceandOperationelements», οι απαιτήσεις με «RequirementDefinitions» και οι δυνατότητες με «CapabilityDefinitions» Relationship Types Οι σύνθετες εφαρμογές πολλαπλών υπηρεσιών απαιτούν, όχι μόνο τη μοντελοποίηση των στοιχείων τους, αλλά και των σχέσεων μεταξύ τους. Όσον αφορά τα στοιχεία, οι σχέσεις μπορούν να μοντελοποιηθούν μέσω των «RelationshipTypes», των «RelationshipTypeImplementations» και των «RelationshipTemplates». Ένα «RelationshipType» ορίζει τη δομή μιας γενικής σχέσης μεταξύ ενός «ValidSource» (NodeType ή node'srequirementtype) και ενός ValidTarget (NodeType). Ακολουθεί το παράδειγμα του βασικού Relationship Type Root, ενώ στην Εικόνα 14 παρουσιάζεται η γενική ιεραρχία των Relationship Types. tosca.relationships.root description: The TOSCA base relationship type from which all other normative TOSCA relationship types derive. interfaces: Configure: type: tosca.interfaces.relationship.configure inputs: operations: tosca.relationships.connectsto Mια σχέση σύνδεσης δικτύου μεταξύ δύο κόμβων. tosca.relationships.dependson Mια γενική σχέση εξάρτησης μεταξύ δύο κόμβων. tosca.relationships.root tosca.relationships.attatchesto Mια σχέση συσχέτισης μεταξύ δύο κόμβων (π.χ. για σύνδεση ενός κόμβου αποθήκευσης σε έναν κόμβο υπολογισμού). tosca.relationships.hostedon Mια σχέση φιλοξενίας μεταξύ δύο κόμβων. Εικόνα 14. Ιεραρχία Relationship Types 47

48 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 3: ΤΟ ΠΡΟΤΥΠΟ TOSCA Επιπλέον επιτρέπει την περιγραφή των λειτουργιών, που μπορούν να εκτελεστούν στην πηγή (Source) και στον στόχο (μέσω των «SourceInterfaces» και «TargetInterfaces» αντίστοιχα), τις ιδιόκτητες ιδιότητές του και τις πιθανές εμφανίσεις των στιγμιότυπων του, όπως φαίνεται στην Εικόνα 15. Εικόνα 15. Παράδειγμα Relationship Type Η απαίτηση αντιπροσωπεύεται από ένα στοιχείο εφαρμογής, του οποίου το «ValidTarget» είναι ένα «FeatureCapability», που παρέχεται από άλλο στοιχείο εφαρμογής. Η ιεραρχία των Capabilty Types φαίνεται στην Εικόνα 16. tosca.capabilitie s.root tosca.capabilities.node tosca.capabilities.network tosca.capabilities.scalable tosca.capabilities.operating System tosca.capabilities.attatchment tosca.capabilities.endpoint tosca.capablities.container Η ικανότητα του κόμβου, να δείχνει τις βασικές δυνατότητες ενός τύπου κόμβου TOSCA. 'Oταν περιλαμβάνεται σε ορισμό τύπου κόμβου ή προτύπου, υποδεικνύει ότι ο κόμβος μπορεί να παρέχει διευθυνσιοδότηση για το καθορισμένο δίκτυο με τις καθορισμένες θύρες. Ο προεπιλεγμένος τύπος TOSCA, για την έκφραση μιας δυνατότητας κλιμάκωσης για έναν κόμβο. O προεπιλεγμένος τύπος TOSCA, για την έκφραση μιας δυνατότητας λειτουργικού συστήματος για έναν κόμβο. O προεπιλεγμένος τύπος TOSCA, για τον ορισμό μιας ικανότητας σύνδεσης ενός (λογικού) κόμβου συσκευής υποδομής (π.χ., κόμβος BlockStorage). O προεπιλεγμένος τύπος TOSCA, για τον ορισμό μιας δυνατότητας τελικού σημείου δικτύου 'Oταν περιλαμβάνεται σε ορισμό τύπου κόμβου ή προτύπου, υποδεικνύει ότι ο κόμβος μπορεί να λειτουργήσει ως κοντέινερ για (ή κεντρικό υπολογιστή) για έναν ή περισσότερους άλλους δηλωμένους τύπους κόμβων. Εικόνα 16. Ιεραρχία Capability Types. ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 48

49 3.2.4 Πλεονεκτήματα TOSCA Ένα από τα κύρια πλεονεκτήματα του TOSCA, είναι η καταλληλόλητά του να αναπριστά τη δομή, ακόμη και πολύ σύνθετων εφαρμογών νέφους. Κάθε εφαρμογή πολλαπλών στοιχείων είναι πράγματι μοντελοποιημένη ως ένας γράφος, στον οποίο οι κόμβοι αντιστοιχούν στα στοιχεία της εφαρμογής και οι σχέσεις αντιπροσωπεύουν τις εξαρτήσεις μεταξύ αυτών των στοιχείων. Η διαθεσιμότητα μιας περιγραφής αφηρημένης τοπολογίας είναι απαραίτητη για την επίτευξη του στόχου της αυτοματοποίησης της ανάπτυξης των εφαρμογών. Η περιγραφή της τοπολογίας μιας εφαρμογής επιτρέπει πράγματι στα container TOSCA να ανακτούν αυτόματα τα δηλωτικά σχέδια που απαιτούνται για την ανάπτυξη της συγκεκριμένης εφαρμογής. Η αυτοματοποιημένη διαχείριση επωφελείται επίσης και από την περιγραφή του συλλογισμού. Τα σχέδια διαχείρισης των εφαρμογών μπορούν πράγματι να υλοποιηθούν με την ενορχήστρωση των λειτουργιών, που προσφέρονται από τους κόμβους στην τοπολογία. Επιπλέον, είναι εξίσου σημαντικό να αναφερθεί πως η περιγραφή της τοπολογίας είναι φορητή. Παρά το γεγονός ότι οι προγραμματίστριες και οι προγραμματιστές έχουν όλη την ελευθερία να επιλέγουν τους τύπους των στοιχείων για τη σύνθεση μιας τοπολογίας, η διαδικασία αυτή είναι κατανοητή και από το κάθε container (υπό τον όρο ότι και οι τυποποιημένοι ορισμοί είναι διαθέσιμοι στο ίδιο container). Αυτό οφείλεται στο γεγονός ότι το TOSCA, έχοντας ως στόχο την παροχή ευελιξίας, ορίζει μόνο τον τρόπο δομής του ορισμού, ώστε να αποφασιστούν οι τύποι που θα χρησιμοποιηθούν. Τέλος, το TOSCA βελτιώνει την επαναχρησιμοποίηση. Κάθε ορισμός του TOSCA, μπορεί πράγματι να αναφέρεται από περισσότερες από μία προδιαγραφές, προκειμένου να μπορούν να επαναχρησιμοποιηθούν. 49

50 ΘΕΟΔΏΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 3: ΤΟ ΠΡΟΤΥΠΟ TOSCA Κ Ε Φ Α Λ Α Ι Ο 4 : Ο Ν Τ Ο Λ Ο Γ Ι Α - T O S C A ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 50

51 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA 4. ΟΝΤΟΛΟΓΙΑ - TOSCA Στο δεύτερο στάδιο ενασχόλησης με το TOSCA βρίσκεται η κατανόηση των εννοιών που περιγράφονται, καθώς και η αποτύπωση των επιμέρους στοιχείων του. Επιπλέον, για να επιτευχθεί η επαναχρησιμοποίηση του προτύπου αυτού, σημαντική είναι η σύνθεση μιας οντολογίας, που θα περιγράφει τα στοιχεία που απαρτίζουν το TOSCA. Με αυτόν τον τρόπο, η παρουσίαση των σημασιολογικών διαστάσεών του κρίνεται ιδιαίτερα χρήσιμη για την εξοικείωση με το πρότυπο αυτό, αλλά και για τη μετέπειτα δημιουργία ευφυών συστημάτων, που βασίζονται σε αυτό. Στις παρακάτω ενότητες θα περιγράψουμε τα σημαντικά εργαλεία που χρησιμοποιήθηκαν στα πλαίσια της παρούσας εργασίας, τα οποία είναι το PROTÉGÉ, ως το IDE που χρησιμοποιήθηκε για την ανάπτυξη της οντολογίας, και το YAML ως το πρότυπο σύνταξης των δεδομένων του TOSCA. Επιπλέον, θα γίνει η περιγραφή του TOSCA, επεξηγώντας τους βασικούς ορισμούς των χαρακτηριστικών του τύπων, που θα μας απασχολήσουν, και παρουσιάζεται η μεθοδολογία της αντιστοίχισης βασικών δομών TOSCA στην οντολογία. 4.1 ΕΡΓΑΛΕΙΑ PROTÉGÉ H Οντολογία TOSCA, δημιουργήθηκε με τη χρήση του προγράμματος PROTÉGÉ 22. To PROTÉGÉ είναι ένα δωρεάν και ανοιχτού κώδικα πρόγραμμα επεξεργασίας οντολογιών, καθώς και ένα πλαίσιο για τη δημιουργία ευφυών συστημάτων, γραμμένο σε JAVA. Η ανάπτυξή του, ξεκίνησε στο Πανεπιστήμιο του Στάνφορντ τη δεκαετία του 1980 και εξακολουθεί να είναι ισχυρό εργαλείο, βοηθώντας τις προγραμματίστριες και τους προγραμματιστές να αναπτύσσουν οντολογίες και συστήματα βασισμένα στη γνώση. Το PROTÉGÉ έχει γίνει το πιο διαδεδομένο λογισμικό για την κατασκευή και συντήρηση οντολογιών, ενώ υποστηρίζεται σε μια ποικιλία από frameworks. Ένα Desktop σύστημα, υποστηρίζει πολλές προηγμένες δυνατότητες, που επιτρέπουν την κατασκευή και διαχείριση των οντολογιών OWL, ενώ η αρχική του σελίδα παρουσιάζεται στην Εικόνα 17. Ένα σύστημα που βασίζεται στο Web (WebProtégé 23 ) προσφέρει κατανεμημένη πρόσβαση μέσω Διαδικτύου χρησιμοποιώντας οποιοδήποτε πρόγραμμα περιήγησης, και λόγω της σχεδίασης του, είναι πολύ πιο απλό στη χρήση για πολλές εργασίες μηχανικής οντολογιών. 22 PROTÉGÉ : 23 WebProtégé: 51

52 4.1.2 Πρότυπο YAML Εικόνα 17. Protégé UI Όπως έχει αναφερθεί και προηγουμένως, το TOSCA βασίζεται στο πρότυπο YAML 24, επομένως είναι σκόπιμο να αναφερθούν ορισμένα χαρακτηριστικά του προτύπου αυτού. Το YAML (YAML Ain't Markup Language) είναι πρότυπο σειριοποίησης δεδομένων εύκολα κατανοητό από τους ανθρώπους, που μπορεί να χρησιμοποιηθεί, σε συνδυασμό με όλες τις γλώσσες προγραμματισμού. Χρησιμοποιείται συχνά, για τη σύνταξη αρχείων διαμόρφωσης, αφού είναι ευέλικτο και προσανατολισμένο στα δεδομένα. Στην πραγματικότητα, μπορεί να χρησιμοποιηθεί σε σχεδόν οποιαδήποτε εφαρμογή, που χρειάζεται για την αποθήκευση ή τη μετάδοση δεδομένων. Η ευελιξία του οφείλεται εν μέρει στο γεγονός ότι το YAML, αποτελείται από κομμάτια άλλων γλωσσών. Μερικά παραδείγματα των ομοιοτήτων με γλώσσες προγραμματισμού περιλαμβάνουν: Τις λίστες, τα scalars και τους συσχετισμένους πίνακες, που βασίζονται στην Perl. Τον διαχωριστή εγγράφων "---", που βασίζεται στο MIME. Τις ακολουθίες διαφυγής, που βασίζονται στη C. Την αναδίπλωση κενού χώρου, που βασίζεται σε HTML. Η δομή YAML βασίζεται σε εσοχές, καθιστώντας τη ανθεκτική στη σύγκρουση διαχωριστικών χαρακτήρων. Ορισμένες γλώσσες απαιτούν χαρακτήρες διαφυγής ή ακολουθίες, ένθετα εισαγωγικά και άλλες λύσεις για τη διαχείριση ειδικών 24 YAML: 52

53 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA χαρακτήρων. Το YAML δεν είναι φυσικά ευαίσθητο σε εισαγωγικά και αγκύλες, καθιστώντας τους ειδικούς χαρακτήρες ευκολότερους να προσδιοριστούν, ιδιαίτερα στα αλφαριθμητικά. 4.2 ΠΕΡΙΓΡΑΦΗ TOSCA Ορισμός Data Type Ένας ορισμός τύπου δεδομένων ορίζει το σχήμα για νέους τύπους δεδομένων στο TOSCA. Ο τύπος δεδομένων είναι μία οντότητα TOSCA, που έχει τα ακόλουθα αναγνωρισμένα βασικά ονόματα, τα οποία παρουσιάζονται στον Πίνακα 2: Πίνακας 2: Βασικά ονόματα Data Type Βασικό Όνομα Απαιτούμενο Τύπος Περιγραφή derived_from Όχι String Ένα προαιρετικό όνομα τύπου δεδομένων γονέα, από τον οποίο προέρχεται ο τύπος δεδομένων. description Όχι Description Μια προαιρετική περιγραφή για τον τύπο δεδομένων. properties Όχι Map Ένας προαιρετικός map ορισμών ιδιοτήτων για τον τύπο δεδομένων. entry_schema Όχι Schema Ο προαιρετικός ορισμός σχήματος, για τις καταχωρήσεις ιδιοτήτων των τύπων δεδομένων, που προέρχονται από τον χάρτη TOSCA ή από τύπους δεδομένων λίστας. Ο ορισμός των Data Type έχει την παρακάτω σύνταξη: <data_type_name>: derived_from: <existing_type_name> description:<datatype_description> properties: <property_definitions> entry_schema:<entry_schema_definition> Στη σύνταξη αυτή, οι ψευδοτιμές που εμφανίζονται μέσα στις αγκύλες έχουν την ακόλουθη σημασία: data_type_name: αντιπροσωπεύει το απαιτούμενο συμβολικό όνομα του τύπου δεδομένων ως συμβολοσειρά. ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 53

54 datatype_description: αντιπροσωπεύει την προαιρετική περιγραφή για τον τύπο δεδομένων. existing_type_name: αντιπροσωπεύει το προαιρετικό όνομα ενός έγκυρου τύπου TOSCA, από τον οποίο θα προέρχεται ο νέος τύπος δεδομένων. property_definitions: αντιπροσωπεύει τον προαιρετικό χάρτη ενός ή περισσότερων ορισμών ιδιοτήτων, που παρέχουν το σχήμα για τον τύπο δεδομένων. entry_schema_definition: αν ο τύπος δεδομένων, προέρχεται από τον χάρτη TOSCA ή τους τύπους λίστας (δηλ. existing_type_name είναι map ή λίστα ή προέρχεται από χάρτη ή λίστα), αντιπροσωπεύει τον προαιρετικό ορισμό σχήματος για τις καταχωρήσεις στα properties αυτού του τύπου. Πρόσθετες Απαιτήσεις: Ένας έγκυρος ορισμός τύπου δεδομένων πρέπει να έχει έναν έγκυρο ορισμό derived_from ή τουλάχιστον έναν έγκυρο ορισμό property. Τυχόν περιορισμοί πρέπει να είναι συμβατοί με τον τύπο που δηλώνεται από το derived_from. Εάν παρέχεται η λέξη κλειδί properties, τότε αυτό πρέπει να περιέχει έναν περισσότερους έγκυρους ορισμούς property Ορισμός Node Type Ένας τύπος κόμβου είναι μια επαναχρησιμοποιήσιμη οντότητα, που καθορίζει τον τύπο ενός ή περισσότερων προτύπων κόμβων. Ο τύπος κόμβου, είναι μία οντότητα TOSCA, που έχει τα ακόλουθα αναγνωρισμένα βασικά ονόματα που παρουσιάζονται στον Πίνακα 3: Πίνακας 3: Βασικά ονόματα Node Type Βασικό Όνομα Απαιτούμενο Τύπος Περιγραφή derived_from Όχι String Ένα προαιρετικό όνομα τύπου κόμβου γονέα, από τον οποίο προέρχεται ο τύπος κόμβου. description Όχι Description Μια προαιρετική περιγραφή για τον τύπο κόμβου. attributes Όχι Map Ένας προαιρετικός map ορισμών χαρακτηριστικών για τον τύπο κόμβου. properties Όχι Map Ένας προαιρετικός map ορισμών ιδιοτήτων για τον τύπο κόμβου. capabilities Όχι Map Ένας προαιρετικός map ορισμών δυνατοτήτων για τον τύπο κόμβου. 54

55 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA Ο ορισμός των Node Types την παρακάτω σύνταξη: <node_type_name>: derived_from: <parent_node_type_name> description: <node_type_description> attributes: <attribute_definitions> properties: <property_definitions> capabilities: <capability_definitions> Στην παραπάνω αυτή σύνταξη, οι ψευδοτιμές που εμφανίζονται μέσα στις αγκύλες έχουν την ακόλουθη σημασία: node_type_name: αντιπροσωπεύει το απαιτούμενο συμβολικό όνομα του τύπου κόμβου που δηλώνεται. parent_node_type_name: αντιπροσωπεύει το όνομα (συμβολοσειρά) του τύπου κόμβου, από τον οποίο προέρχεται ο ορισμός τύπου κόμβου (δηλαδή, ο τύπος του «γονέα» του). node_type_description: αντιπροσωπεύει την προαιρετική συμβολοσειρά περιγραφής για το αντίστοιχο node_type_name. property_definitions: αντιπροσωπεύει τον προαιρετικό χάρτη ορισμών ιδιοτήτων για τον τύπο κόμβου. attribute_definitions: αντιπροσωπεύει τον προαιρετικό χάρτη ορισμών χαρακτηριστικών για τον τύπο κόμβου. capability_definitions: αντιπροσωπεύει τον προαιρετικό χάρτη ορισμών δυνατοτήτων για τον τύπο κόμβου Ορισμός Capability Type Ένας τύπος δυνατότητας είναι μια επαναχρησιμοποιήσιμη οντότητα, που περιγράφει ένα είδος δυνατότητας, το οποίο ένας τύπος κόμβου μπορεί να δηλώσει ότι προσφέρει. Οι απαιτήσεις (υπονοούμενες ή ρητές), που δηλώνονται ως μέρος ενός κόμβου, μπορούν να αντιστοιχιστούν, δηλαδή να πληρούνται από τις δυνατότητες που δηλώνονται από έναν άλλο κόμβο. Ο τύπος δυνατότητας είναι μία οντότητα TOSCA που έχει τα ακόλουθα αναγνωρισμένα βασικά ονόματα του Πίνακα 4: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 55

56 Πίνακας 4: Βασικά ονόματα Capability Type Βασικό Όνομα Απαιτούμενο Τύπος Περιγραφή derived_from Όχι String Ένα προαιρετικό όνομα τύπου δυνατότητας γονέα, από τον οποίο προέρχεται ο τύπος δυνατότητας. description Όχι Description Μια προαιρετική περιγραφή για τον τύπο δυνατότητας. attributes Όχι Map Ένας προαιρετικός map ορισμών χαρακτηριστικών για τον τύπο δυνατότητας, properties Όχι Map Ένας προαιρετικός map ορισμών ιδιοτήτων για τον τύπο δυνατότητας. valid_source_types Όχι String Μια προαιρετική λίστα, με ένα ή περισσότερα έγκυρα ονόματα τύπων κόμβων, τα οποία υποστηρίζονται ως έγκυρες πηγές οποιασδήποτε σχέσης, που έχει καθοριστεί με τον δηλωμένο τύπο ικανότητας. Ο ορισμός των Capability Types έχει την παρακάτω σύνταξη: <capability_type_name>: derived_from: <parent_capability_type_name> description: <capability_type_description> properties: <property_definitions> attributes: <attribute_definitions> valid_source_types: [ <node_type_names>] Οι ψευδοτιμές που εμφανίζονται μέσα στις αγκύλες έχουν την ακόλουθη σημασία: capability_type_name: αντιπροσωπεύει το απαιτούμενο όνομα του τύπου ικανότητας που δηλώνεται ως συμβολοσειρά. parent_capability_type_name: αντιπροσωπεύει το όνομα (συμβολοσειρά) του τύπου δυνατότητας, από τον οποίο προέρχεται ο ορισμός δυνατότητας (δηλαδή, ο τύπος του «γονέα» του). capability_type_description: αντιπροσωπεύει την προαιρετική συμβολοσειρά περιγραφής, για το αντίστοιχο capability_type_name. property_definitions: αντιπροσωπεύει έναν προαιρετικό ορισμό μιας ιδιότητας, που εξάγει τον τύπο ικανότητας. 56

57 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA attribute_definitions: αντιπροσωπεύει τους προαιρετικούς ορισμούς χαρακτηριστικών για τον τύπο ικανότητας. node_type_names: αντιπροσωπεύει την προαιρετική λίστα ενός ή περισσότερων ονομάτων των τύπων κόμβων, που υποστηρίζει ο τύπος δυνατότητας, ως έγκυρες πηγές για μια επιτυχημένη σχέση, που θα δημιουργηθεί από μόνη της Ορισμός Node Template Ένα Node Template προσδιορίζει την εμφάνιση ενός διαχειρίσιμου στοιχείου λογισμικού, ως μέρος του μοντέλου τοπολογίας μιας εφαρμογής που ορίζεται σε ένα πρότυπο υπηρεσίας TOSCA.Στην πραγματικότητα, είναι ένα στιγμιότυπο ενός καθορισμένου Node Type και μπορεί να παρέχει προσαρμοσμένες ιδιότητες, περιορισμούς ή λειτουργίες, οι οποίες παρακάμπτουν τις προεπιλογές που παρέχονται από το Node Type και τις υλοποιήσεις του. Έχει τα ακόλουθα αναγνωρισμένα βασικά ονόματα, που εμφανίζονται στον Πίνακα 5: Πίνακας 5: Βασικά ονόματα Node Template Βασικό Όνομα Απαιτούμενο Τύπος Περιγραφή type Ναι String Το απαιτούμενο όνομα του κόμβου, πάνω στο οποίο βασίζεται το πρότυπο κόμβου. description Όχι Description Μια προαιρετική περιγραφή για το πρότυπο κόμβου. attributes Όχι List Μια προαιρετική λίστα που περιλαμβάνει τις καταχωρίσεις των τιμών χαρακτηριστικών, για το πρότυπο κόμβου. properties Όχι List Μια προαιρετική λίστα που περιλαμβάνει τις καταχωρίσεις των τιμών ιδιοκτησίας, για το πρότυπο κόμβου. Ο ορισμός των Node Templates έχει την παρακάτω σύνταξη: <node_template_name>: type: <node_type_name> description: <node_template_description> properties: <property_assignments> attributes: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 57

58 <attribute_assignments> requirements: - <requirement_assignments> Στη παραπάνω σύνταξη, οι ψευδοτιμές που εμφανίζονται μέσα στις αγκύλες έχουν την ακόλουθη σημασία: node_template_name: αντιπροσωπεύει το απαιτούμενο όνομα του προτύπου κόμβου που δηλώνεται. node_type_name: αντιπροσωπεύει το όνομα του τύπου κόμβου στο οποίο βασίζεται το πρότυπο κόμβου. node_template_description: αντιπροσωπεύει την προαιρετική συμβολοσειρά περιγραφής για το πρότυπο κόμβου. property_assignments: αντιπροσωπεύει την προαιρετική λίστα εκχωρήσεων ιδιοτήτων για το πρότυπο κόμβου, παρέχοντας τιμές για τις ιδιότητες που ορίζονται στον δηλωμένο τύπο κόμβου. attribute_assignments: αντιπροσωπεύει την προαιρετική λίστα εκχωρήσεων χαρακτηριστικών για το πρότυπο κόμβου, παρέχοντας τιμές για τα χαρακτηριστικά, που ορίζονται στον δηλωμένο τύπο κόμβου. requirement_assignments: αντιπροσωπεύει την προαιρετική λίστα εκχωρήσεων απαιτήσεων για το πρότυπο κόμβου, επιτρέποντας την δήλωση συμβατών τύπων δυνατοτήτων, που χρησιμοποιούνται κατά τη διάρκεια εκπλήρωσης της απαίτησης Ορισμός description Ένα βασικό όνομα που χρησιμοποιείται για να παρέχει το προαιρετικό γονικό όνομα τύπου οντότητας, από τον οποίο προέρχεται η συγκεκριμένη οντότητα, εντός της προδιαγραφής. Έχει την παρακάτω σύνταξη: description: <string> Ορισμός derived_from Ένα βασικό όνομα που χρησιμοποιείται για να προσδιορίσει την προέλευση της συγκεκριμένης οντότητας της προδιαγραφής, έχει την ακόλουθη σύνταξη: derived_from: <string> Ορισμός properties Ένας ορισμός ιδιοτήτων ορίζει μια ονομαστική, τυποποιημένη τιμή και τα σχετικά δεδομένα, που μπορούν να συσχετιστούν με μια οντότητα, η οποία ορίζεται σε αυτήν την προδιαγραφή (π.χ. Node Type, Relationship Type, Capability Type κτλ.). Οι ιδιότητες χρησιμοποιούνται από τους συντάκτες προτύπων για την παροχή τιμών εισόδου στις οντότητες της TOSCA, οι οποίες υποδεικνύουν την «επιθυμητή 58

59 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA κατάσταση» τους, όταν δημιουργούνται. Η τιμή μιας ιδιότητας μπορεί να ανακτηθεί χρησιμοποιώντας τη συνάρτηση get_property εντός των υπηρεσιών Service Templates του TOSCA. Ακολουθεί ο Πίνακας 6 των αναγνωρισμένων βασικών ονομάτων των properties. Πίνακας 6: Βασικά ονόματα Properties Βασικό Απαιτούμενο Τύπος Περιγραφή Όνομα type Ναι String Ο απαιτούμενος τύπος δεδομένων για την ιδιότητα. description Όχι Description Η προαιρετική περιγραφή για την ιδιότητα. required Όχι Boolean Ένα προαιρετικό κλειδί, που δηλώνει αν μια ιδιότητα απαιτείται (true) ή όχι (false). default Όχι <any> Ένα προαιρετικό κλειδί, που μπορεί να παρέχει μια τιμή, η οποία θα χρησιμοποιείται ως προεπιλογή, όταν δεν παρέχεται με άλλο τρόπο. Αυτή η τιμή πρέπει να είναι συμβατή, με τον τύπο που έχει οριστεί στο βασικό όνομα κλειδιού type. constraints Όχι List Η προαιρετική λίστα με περιορισμούς για την ιδιότητα. entry_schema Όχι String Το προαιρετικό κλειδί που χρησιμοποιείται για να δηλώσει τον ορισμό καθορισμένου τύπου δεδομένων όπως η λίστα TOSCA ή map. Ο ορισμός των properties έχει τη σύνταξη: <property_name>: type: <property_type> description: <property_description> required: <property_required> default: <default_value> constraints: - <property_constraints> entry_schema: type: <entry_type> Οι ψευδοτιμές που εμφανίζονται μέσα στις αγκύλες έχουν την ακόλουθη σημασία: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 59

60 property_name: αντιπροσωπεύει το απαιτούμενο όνομα της ιδιότητας ως συμβολοσειρά. property_description: αντιπροσωπεύει την προαιρετική περιγραφή της ιδιότητας. property_type: αντιπροσωπεύει τον απαιτούμενο τύπο δεδομένων της ιδιότητας. property_required: αντιπροσωπεύει μια προαιρετική τιμή boolean (true ή false), που δείχνει εάν απαιτείται ή όχι η ιδιότητα. Εάν αυτό το όνομακλειδί δεν υπάρχει σε έναν ορισμό ιδιότητας, τότε η ιδιότητα πρέπει να θεωρείται απαραίτητη (δηλαδή, true) από προεπιλογή. default_value: περιέχει μια τιμή συμβατή με τον τύπο που μπορεί να χρησιμοποιηθεί ως προεπιλογή, όταν δεν παρέχεται με άλλο τρόπο. property_constraints: αντιπροσωπεύει την προαιρετική ακολουθία μιας ή περισσότερων ρητρών περιορισμού στον ορισμό της ιδιότητας. entry_type: αντιπροσωπεύει το απαιτούμενο όνομα τύπου για τις καταχωρήσεις σε μια λίστα ή σε ένα τύπο ιδιοκτησίας χάρτη Ορισμός attributes Με τον ορισμό ενός χαρακτηριστικού, καθορίζεται μια ονοματισμένη, τυποποιημένη τιμή η οποία μπορεί να συσχετιστεί με μια ορισμένη οντότητα σε αυτήν την προδιαγραφή (π.χ. ένας κόμβος, ένας τύπος σχέσης ή ικανότητας). Συγκεκριμένα, χρησιμοποιείται για την έκθεση της «πραγματικής κατάστασης» ορισμένων ιδιοτήτων μιας οντότητας TOSCA μετά την ολοκλήρωση της ανάπτυξης και της εγκατάστασής της. Οι τιμές των χαρακτηριστικών μπορούν να ανακτηθούν μέσω της συνάρτησης get_attribute από το μοντέλο στιγμιότυπου, αλλά και να χρησιμοποιηθούν ως τιμές σε άλλες οντότητες, εντός των υπηρεσιών Service Templates του TOSCA. Ακολουθεί ο Πίνακας 7 των αναγνωρισμένων βασικών ονομάτων, για τον ορισμό ενός attribute σε TOSCA: Πίνακας 7: Βασικά ονόματα Attribute Βασικό Απαιτούμενο Τύπος Περιγραφή Όνομα Type Ναι String Ο απαιτούμενος τύπος δεδομένων για το χαρακτηριστικό. Description Όχι Description Η προαιρετική περιγραφή για το χαρακτηριστικό. Default Όχι <any> Ένα προαιρετικό κλειδί, που μπορεί να παρέχει μια τιμή, η οποία θα χρησιμοποιείται ως προεπιλογή, όταν δεν παρέχεται με άλλο τρόπο. Αυτή η τιμή πρέπει να είναι συμβατή, με τον τύπο που έχει οριστεί στο βασικό όνομα κλειδιού type. 60

61 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA Βασικό Όνομα Απαιτούμενο Τύπος Περιγραφή entry_schema Όχι String Το προαιρετικό κλειδί που χρησιμοποιείται, για να δηλώσει τον ορισμό καθορισμένου τύπου δεδομένων όπως η λίστα TOSCA ήmap. Ο ορισμός των attributes έχει τη σύνταξη: attributes: <attribute_name >: type: <attribute_type > description: <attribute_description> default: <default_value> entry_schema: type: <entry_type> Στη παραπάνω σύνταξη, οι ψευδοτιμές που εμφανίζονται μέσα στις αγκύλες έχουν την ακόλουθη σημασία: attribute_name: αντιπροσωπεύει το απαιτούμενο όνομα του χαρακτηριστικού ως συμβολοσειρά. attribute_type: αντιπροσωπεύει τον απαιτούμενο τύπο δεδομένων του χαρακτηριστικού. attribute_description: αντιπροσωπεύει την προαιρετική περιγραφή του χαρακτηριστικού. default_value: περιέχει μια τιμή συμβατή με τον τύπο που μπορεί να χρησιμοποιηθεί ως προεπιλογή, όταν δεν παρέχεται με άλλο τρόπο. entry_type: αντιπροσωπεύει το απαιτούμενο όνομα τύπου για τις καταχωρήσεις σε μια λίστα ή σε ένα τύπο ιδιότητας χάρτη Ορισμός capabilities Ένας ορισμός δυνατοτήτων, καθορίζει ένα ονομασμένο σύνολο δεδομένων, το οποίο μπορεί να συσχετιστεί με το Node Type ή το Node Template, για να περιγράψει μια διαφανή ικανότητα ή δυνατότητα του στοιχείου λογισμικού, που περιγράφει ο κόμβος. Ακολουθεί ο Πίνακας 8 των αναγνωρισμένων βασικών ονομάτων για έναν ορισμό δυνατοτήτων TOSCA: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 61

62 Πίνακας 8. Βασικά ονόματα capability Βασικό Όνομα Απαιτούμενο Τύπος Περιγραφή type Ναι String Το απαιτούμενο όνομα του τύπου δυνατότητας, πάνω στο οποίο βασίζεται ο ορισμός δυνατοτήτων. description Όχι Description Η προαιρετική περιγραφή του ορισμού δυνατότητας. valid_source_types Όχι Range of integer Μια προαιρετική λίστα με ένα ή περισσότερα έγκυρα ονόματα τύπων κόμβων, τα οποία υποστηρίζονται ως έγκυρες πηγές οποιασδήποτε σχέσης που έχει καθοριστεί με τον δηλωμένο τύπο δυνατότητας. Ο ορισμός των capabilities, έχει την παρακάτω σύνταξη: <capability_definition_name>: type: <capability_type> description: <capability_description> valid_source_types:[<node_type_names>] Οι παραπάνω ψευδοτιμές που εμφανίζονται σε αγκύλες έχουν την ακόλουθη σημασία: capability_definition_name: αντιπροσωπεύει το απαιτούμενο συμβολικό όνομα του ορισμού δυνατότητας ως συμβολοσειρά. capability_type: αντιπροσωπεύει το απαιτούμενο όνομα μιας δυνατότητας, πάνω στο οποίο βασίζεται ο ορισμός της δυνατότητας. capability_description: αντιπροσωπεύει την προαιρετική περιγραφή του ορισμού δυνατότητας. node_type_names: αντιπροσωπεύει την προαιρετική λίστα ενός ή περισσότερων ονομάτων Node Type, που υποστηρίζει ο ορισμός δυνατότητας ως έγκυρες πηγές για μια επιτυχημένη σχέση Ορισμός requirements Ο ορισμός απαιτήσεων περιγράφει μια ονομαζόμενη απαίτηση (εξαρτήσεις) ενός Node Type ή Node Template TOSCA, η οποία πρέπει να πληρούται από έναν αντίστοιχο ορισμό capability, που δηλώνεται από μια άλλη οντότητα σε TOSCA. Ο ορισμός των απαιτήσεων μπορεί ο ίδιος να περιλαμβάνει το συγκεκριμένο όνομα της οντότητας που πληροί (ρητά) ή να παρέχει έναν αφηρημένο τύπο, μαζί με πρόσθετα χαρακτηριστικά φιλτραρίσματος, τα οποία ένας ενορχηστρωτής TOSCA μπορεί να χρησιμοποιήσει, για να εκπληρώσει την ικανότητα κατά το χρόνο εκτέλεσης 62

63 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA (υπονοούμενα). Ακολουθεί ο Πίνακας 9 των αναγνωρισμένων βασικών ονομάτων για έναν ορισμό απαιτήσεων TOSCA: Πίνακας 9: Βασικά ονόματα Requirement Βασικό Όνομα Απαιτούμενο Τύπος Περιγραφή capability Ναι String Το απαιτούμενο δεσμευμένο όνομα κλειδιού, που μπορεί να χρησιμοποιηθεί για την παροχή του ονόματος ενός έγκυρου τύπου δυνατότητας, ο οποίος μπορεί να ικανοποιήσει την απαίτηση. Node Όχι String Το προαιρετικό δεσμευμένο όνομα κλειδιού, που χρησιμοποιείται για την παροχή του ονόματος ενός έγκυρου τύπου κόμβου, ο οποίος περιέχει τον ορισμό της δυνατότητας, η οποία μπορεί να χρησιμοποιηθεί για την εκπλήρωση της απαίτησης. relationship Όχι String Το προαιρετικό δεσμευμένο όνομα κλειδιού, που χρησιμοποιείται για την παροχή του ονόματος ενός έγκυρου τύπου σχέσης, που θα κατασκευαστεί κατά την εκπλήρωση της απαίτησης. Ο ορισμός των requirements, έχει την παρακάτω σύνταξη: <requirement_definition_name>: capability: <capability_type_name> node: <node_type_name> relationship: <relationship_type_name> Οι παραπάνω ψευδοτιμές που εμφανίζονται σε αγκύλες έχουν την ακόλουθη σημασία: requirement_definition_name: αντιπροσωπεύει το απαιτούμενο συμβολικό όνομα του ορισμού απαίτησης ως συμβολοσειρά. capability_type_name: αντιπροσωπεύει το απαιτούμενο όνομα ενός τύπου δυνατότητας, που μπορεί να χρησιμοποιηθεί για την εκπλήρωση της απαίτησης. node_type_name: αντιπροσωπεύει το προαιρετικό όνομα ενός τύπου κόμβου TOSCA, που περιέχει τον ορισμό τύπου δυνατότητας, που μπορεί να πληροί η απαίτηση. ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 63

64 relationship_type_name: αντιπροσωπεύει το προαιρετικό όνομα ενός τύπου σχέσης, που θα χρησιμοποιηθεί για την κατασκευή μιας σχέσης μεταξύ αυτού του ορισμού απαιτήσεων (δηλαδή, από τον κόμβο προέλευσης) με έναν ορισμό ικανότητας με τον οποίο ταιριάζει (σε έναν κόμβο στόχου) 4.3 ΑΝΤΙΣΤΟΙΧΙΣΗ TOSCA Για την περιγραφή της λογικής της αντιστοίχισηςτου TOSCA σε οντολογία OWL, θα χρησιμοποιηθεί το παρακάτω παράδειγμα YAML, το οποίο περιλαμβάνει τις βασικές δομές οι οποίες υποστηρίζονται από τηναντιστοίχιση. sodalite.nodes.openstack.vm: derived_from: tosca.nodes.compute properties: network: description: "OpenStack network id (network names are not accepted)" type: string name: description: "Name that should be given to the VM in OpenStack" type: string security_groups: description: "OpenStack names of the security groups to which the instance should be added.comma separated string." type: string timeout: description: 'Timeout to instantiate the VM' type: integer default: '600' required: false protocol: required: true type: string default: "tcp" entry_schema: type: sodalite.datatypes.openstack.securityrule constraints: valid_values: ['tcp', 'udp', 'icmp'] port_range_min: required: true type: tosca.datatypes.network.portdef constraints: max_length: "1" attributes: id: description: "OpenStack id of the VM" type: string entry_schema: sodalite.datatypes.openstack.securityrule ansible_ip: 64

65 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA capabilities: description: "ansible ipv4" type: string feature: type: tosca.capabilities.node valid_source_types: [sodalite.nodes.dockerizedcomponent,sodalite.nodes.trial] Κλάσεις Υποκλάσεις Οι κλάσεις της οντολογίας OWL περιέχουν στιγμιότυπα, τα οποία αναπαριστούν αντικείμενα της προδιαγραφής του ενδιαφέροντος μας. Για παράδειγμα η κλάση «Nodes», έχει τη δυνατότητα να περιλαμβάνει όλα εκείνα τα στιγμιότυπα, τα οποία είναι τύπου «Node». Κάθε ένα από τα δομικά στοιχεία του TOSCA, δηλαδή τα Capability, Node, Data και Relationship Types, τα οποία και θα μας απασχολήσουν, αναπαρίστανται ως κλάσεις. Για παράδειγμα, όπως φαίνεται στην Εικόνα 18, το sodalite.nodes.openstack.vm αναπαρίσταται ως class, δηλαδή: sodalite.nodes.openstack.vm ex:sodalite.nodes.openstack.vm a owl:class; Εικόνα 18. Αντιστοίχιση κλάσης Επιπλέον οι κλάσεις μπορούν να οργανωθούν σε ιεραρχίες υπερκλάσεων - υποκλάσεων. Πιο συγκεκριμένα, τα δομικά στοιχεία του TOSCA, συνήθως κληρονομούν χαρακτηριστικά από άλλες κλάσεις. Αυτή η ιεραρχία υπερκλάσης υποκλάσης αναπαρίστανται στο TOSCA με τη λέξη κλειδί «derived_from», το οποίο αντιστοιχείται στην οντολογία, ως subclassof μεταξύ των κλάσεων. Για το OpenStack.VM στην Εικόνα 19 παρουσιάζεται ότι ισχύει: derived_from:tosca.nodes.compute rdfs:subclassof ex: tosca.nodes.compute Εικόνα 19. Αντιστοίχιση derived_from Annotations Ορισμένα χαρακτηριστικά, αλλά και μεταδεδομένα του TOSCA, αποτυπώνονται ως Annotations. Πιο συγκεκριμένα, είναι αναγκαίο να οριστεί με έναν ερμηνεύσιμο τρόπο, αν τα χαρακτηριστικά είναι properties ή attributes, αφού στην OWL δεν υπάρχει διαχωρισμός των properties με τα attributes. Τόσο τα properties, όσο ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 65

66 και τα attributes, αναπαρίστανται ως properties στην OWL. Για το σημασιολογικό διαχωρισμό τους, χρησιμοποιούμε το toscaproperty annotation, το οποίο έχει Boolean τιμές ανάλογα με το αν είναι property (true) ή όχι (false). Επίσης, ορισμένες ιδιότητες πιθανόν να έχουν τύπο που δεν υποστηρίζεται από την OWL, όταν δηλαδή δεν είναι τύπου string, integer, decimal, boolean κτλ. Διαφορετικών ειδών τύποι (map, version κλπ.), αντιστοιχούνται με το toscatype annotation. Επιπρόσθετα συχνά χρησιμοποιούμενα annotations, είναι το tosca_description για τις περιγραφές των δομικών στοιχείων και το toscadefault για τις default τιμές των χαρακτηριστικών. Στην Εικόνα 20 και στην Εικόνα 21, παρουσιάζονται παραδείγματα αντιστοίχισης ενός property και ενός attribute αντίστοιχα. properties timeout: description:'timeout to instantiate the VM' type: integer default: '600' ex:timeout a owl:datatypeproperty; rdfs:range "integer"; ex:tosca_description "Timeout to instantiate the VM"; ex:toscadefault "600"; Εικόνα 20. Αντιστοίχιση Properties attributes: id: description: "OpenStack id of the VM" type: string ex:id a owl:datatypeproperty; rdfs:range "string"; ex:tosca_description "OpenStack id of the VM"; ex:toscaproperty "false". Εικόνα 21. Αντιστοίχιση Attributes Σημασιολογίες και εκφράσεις κλάσης Ένα πολύ συχνό χρησιμοποιούμενο πεδίο των properties και των attributes είναι το «required», το οποίο δηλώνει αν το χαρακτηριστικό είναι απαραίτητο ή όχι. Στα πλαίσια της οντολογίας, ορίζεται με τη χρήση του mincardinality της OWL. Στην περίπτωση που το πεδίο είναι απαραίτητο να υπάρχει (required=true) τότε ισχύει ότι το OWL:minCardinality είναι 1, ενώ αν δεν είναι απαραίτητο (required=false), τότε ισχύει ότι OWL:minCardinality είναι 0 (Εικόνα 22). 66

67 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA properties timeout: required: false ex:sodalite.nodes.openstack.vm a owl:class; rdfs:subclassof _:node1f65vgjf4x5 _:node1f65vgjf4x5 a owl:restriction; owl:onproperty ex:timeout; owl:mincardinality "0"^^xsd:int." Εικόνα 22. Αντιστοίχιση required Τα βασικά constraints των properties και των attributes (max_length, min_length και valid_values, αντιστοιχούνται με την χρήση περιορισμών εκφράσεων κλάσης (Εικόνα 23). Το protocol: constraints: valid_values: ['tcp', 'udp', 'icmp'], μεταφράζεται στην OWL ως protocol hasvalue tcp or protocol hasvalue udp or protocol has value icmp. Επιπλέον, το port_range_min: constraints: max_length: "1", μπορεί να εκφραστεί ως subclassof (a owl:restriction owl:onproperty :constraints somevaluesfrom ( hasvalue 1 owl:onproperty :max_length)). protocol constraints valid_values: ['tcp', 'udp', 'icmp'] _:node1f7n3htl1x3 a owl:restriction; owl:onproperty ex:protocol; owl:hasvalue "tcp". _:node1f7n3htl1x4 a owl:restriction; owl:onproperty ex:protocol; owl:hasvalue "udp". _:node1f7n3htl1x5 a owl:restriction; owl:onproperty ex:protocol; owl:hasvalue "icmp". port_range_min: constraints: max_length: "1" _:node1f8bg835bx12 a owl:restriction; owl:onproperty ex:port_range_min; rdfs:subclassof _:node1f8bg835bx13. _:node1f8bg835bx13 a owl:restriction; owl:onproperty ex:constraints; owl:somevaluesfrom _:node1f8bg835bx14. _:node1f8bg835bx14 a owl:restriction; owl:hasvalue "1"; owl:onproperty ex:max_length. Εικόνα 23. Αντιστοίχιση Constraints Το πεδίο entry_schema, είναι ένα ιδιαίτερο χαρακτηριστικό, αφού μπορεί να βρίσκεται και στην περιγραφή ενός Data Type, αλλά και ως DataProperty ή / και ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 67

68 ObjectProperty ενός attribute ή / και property. Για αυτό το λόγο, δηλώνουμε κάθε φορά ανάλογα με τον τύπο του entry_schema, είτε το property property_entry_schema_dataproperty, είτε το property_entry_schema_dataproperty. Στην περίπτωση που είναι Object Property, χρησιμοποιώντας τους περιορισμούς κλάσης καταλήγουμε στην αντιστοίχιση της Εικόνας 24. protocol: entry_schema: type: sodalite.datatype s.openstack.secur ex:sodalite.nodes.openstack.vm a owl:class; rdfs:subclassof _:node1f8od6i2mx2 ex:property_entry_schema_objec tproperty a owl:objectproperty. _:node1f8od6i2mx2 a owl:restriction; owl:onproperty ex:protocol; owl:somevaluesfrom _:node1f8od6i2mx3. _:node1f8od6i2mx3 a owl:restriction; owl:somevaluesfrom ex:sodalite.datatypes.openstac k.securityrule; owl:onproperty ex:property_entry_schema_objec tproperty. Εικόνα 24. Αντιστοίχιση property entry schema Με τη χρήση των περιορισμών κλάσης, μοντελοποιούνται επιπρόσθετα, τόσο οι σχέσεις των TOSCA requirements, όσο και των TOSCA capabilities. Κάθε capability, μπορεί να έχει type (πχ type: tosca.capabilities.node) και valid_source_types (πχ valid_source_types: [sodalite.nodes.dockerizedcomponent, sodalite.nodes.trial]). Στην OWL, αυτό μπορεί να περιγραφεί ως capabilities some ( (feature some tosca.capabilities.node) and (feature some valid_source_types)) (Eικόνα 25). Το valid_source_types είναι ένα object property, το οποίο μπορεί να πάρει ως τιμές, τα στοιχεία που του δίνονται, και περιγραφεται ως (valid_source_types only sodalite.nodes.dockerizedcomponent) or (valid_source types only sodalite.nodes.trial). 68

69 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΆΛΑΙΟ 4: ΟΝΤΟΛΟΓΊΑ- TOSCA ex:sodalite.nodes.openstack.vm a owl:class; rdfs:subclassof _:node1f65vgjf4x3, _:node1f65vgjf4x7 ex:feature a owl:objectproperty ex:valid_source_types a owl:objectproperty. capabilities: feature: type:tosca.capab ilities.node valid_source_typ es:[sodalite.nod es.dockerizedcom ponent,sodalite. nodes.trial] _:node1f7n02rlax3 a owl:restriction; owl:onproperty ex:capabilities; owl:somevaluesfrom _:node1f7n02rlax4. _:node1f7n02rlax5 a owl:restriction; owl:onproperty ex:feature; owl:somevaluesfrom ex:tosca.capabilities.node. _:node1f7n02rlax6 a owl:restriction; owl:onproperty ex:feature; owl:somevaluesfrom _:node1f7n02rlax7. _:node1f7n02rlax8 a owl:restriction; owl:onproperty ex:valid_source_types; owl:allvaluesfrom ex:sodalite.nodes.dockerizedcomponent. _:node1f7n02rlax9 a owl:restriction; owl:onproperty ex:valid_source_types; owl:allvaluesfrom ex:sodalite.nodes.dockerizedcomponent. _:node1f7n02rlax7 a owl:class; owl:unionof _:node1f7n02rlax12 Εικόνα 25. Αντιστοίχιση Capabilities ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 69

70 Κ Ε Φ Α Λ Α Ι Ο 5 : ΥΛ Ο Π Ο Ι Η Σ Η 70

71 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 5: ΥΛΟΠΟΙΗΣΗ 5. ΥΛΟΠΟΙΗΣΗ Στο κεφάλαιο αυτό θα γίνει αναλυτική περιγραφή της υλοποίησης του προγραμματιστικού μέρους της εργασίας, αναλύοντας την διαδικασία ανάπτυξης των στοιχειωδών κομματιών, που την απαρτίζουν. Η/Ο χρήστης χρησιμοποιώντας αυτό το εργαλείο, θα έχει τη δυνατότητα να εισάγει δεδομένα μια δομής ΤΟSCA, και στη συνέχεια να μελετήσει τη σημασιολογική πληροφορία και τα σημασιολογικά πλαίσια που αναπτύχθηκαν στα αρχεία που παρήχθησαν. Επιπρόσθετα, έχει τη δυνατότητα να εισάγει το URL ενός αποθετηρίου, στο οποίο επιθυμεί να εισαχθεί η σημασιολογική πληροφορία, ώστε να τη μελετήσει για παράδειγμα, μέσω της οπτικοποίησης που παρέχει η GraphDB. Μερικά τέτοια παραδείγματα, θα παρουσιαστούν στο τέλος αυτού του κεφαλαίου. 5.1 ΒΙΒΛΙΟΘΗΚΗ RDF4J Ο κώδικας, που υλοποιεί τη σημασιολογική μοντελοποίηση σε RDF των YAML αρχείων των χρηστών, που είναι προσαρμοσμένα πάνω στο πρότυπο TOSCA, αναπτύχθηκε σε γλώσσα JAVA, με την χρήση του Eclipse IDE for Java Developers Ο πηγαίος κώδικας του εργαλείου βρίσκεται στο αποθετήριο, που βρίσκεται στον ακόλουθο σύνδεσμο: Επιπρόσθετα, έγινε χρήση του Java API Eclipse RDF4J 25, ένα Java framework για την επεξεργασία και τη διαχείριση των RDF δεδομένων. Το framework αυτό επιτρέπει τη δημιουργία, την ανάλυση, την ανάπτυξη, την αποθήκευση, καθώς και την δημιουργία ερωτημάτων σε δεδομένα RDF και σε διασυνδεδεμένα δεδομένα, με έναν εξαιρετικά επεκτάσιμο τρόπο. Προσφέρει ένα εύχρηστο API, που μπορεί να συνδεθεί με όλες τις κορυφαίες βάσεις δεδομένων RDF, ενώ παρέχει δυνατότητες σύνδεσης με τα τελικά σημεία SPARQL, για τη δημιουργία εφαρμογών, που αξιοποιούν τη δύναμη των διασυνδεδεμένων δεδομένων και του Σημασιολογικού Ιστού. 5.2 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΥΣΤΗΜΑΤΟΣ Για την υλοποίηση του εργαλείου, η αρχιτεκτονική του οποίου φαίνεται στην Εικόνα 26, αναπτύχθηκαν οι έξι (6) εξής κλάσεις: Parse.java DataType.java CapabilityType.java NodeType.java NodeTemplates.java WriteFiles.java 25 RDF4J: ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 71

72 User NodeType.java node_type.ttl Input DataType.java data_type.ttl Parse.java CapabilityType.java WriteFiles capability_type.ttl NodeTemplate.java node_template.ttl Εικόνα 26. Αρχιτεκτονική Εργαλείου Use Case Το πρόγραμμα υποστηρίζει την είσοδο ενός αρχείου τύπου YAML, το οποίο και δέχεται ως είσοδο από το χρήστη (για παράδειγμα example.yml ). Η διαδικασία επιστρέφει έως και τέσσερα αρχεία τύπου ttl (data_type.ttl, node_type.ttl, capability_type.ttl και node_templates.ttl), τα οποία περιέχουν τα δεδομένα σε RDF, που προέκυψαν κατά την μοντελοποίηση. Η/Ο χρήστης έχει τη δυνατότητα να επιλέξει να πληκτρολογήσει την τοποθεσία / φάκελο που επιθυμεί να αποθηκευτούν τα αρχεία αυτά, αλλιώς αποθηκεύονται αυτόματα, στην αντίστοιχη τοποθεσία που βρίσκεται και το αρχείο του project. Επιπρόσθετα, ζητείται από την/τον χρήστη, να εισάγει το url του αποθετηρίου της σημασιολογικής βάσης δεδομένων, στην οποία επιθυμεί να αποθηκευτούν τα δεδομένα RDF, που εξήγαγε το εργαλείο, όπως φαίνεται στην Εικόνα 27. Εικόνα 27. User Interface Parse.java Στο πρώτο στάδιο, και αφού γίνει η ανάγνωση του αρχείου εισόδου, χρησιμοποιήθηκε η βιβλιοθήκη SnakeYaml, για την ανάλυση και την σειριοποίηση του εγγράφου YAML σε αντικείμενα Java, όπως παρουσιάζεται στην παρακάτω Εικόνα

73 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 5: ΥΛΟΠΟΙΗΣΗ if(file!=null) // parse yaml file to hashmap { InputStream inputstream = new FileInputStream(file); Yaml yaml = new Yaml(); HashMap<String, HashMap<String,Object>> data = new HashMap<>(); data = yaml.load(inputstream); p.setmap(data); Εικόνα 28. Κώδικας για την ανάλυση του YAML αρχείου Από προεπιλογή, η μέθοδος load() επιστρέφει ένα στιγμιότυπο hashmap με την παρακάτω δομή, που φαίνεται στην Εικόνα 29: {data_types= {sodalite.datatypes.openstack.securityrule= {derived_from=tosca.datatypes.root, properties={protocol={required=true, type=string, default=tcp,constraints={valid_values=[tcp, udp, icmp]}}, port_range_min={port_range_max=null,type=tosca.datat ypes.network.portdef, required=true}, remote_ip_prefix={default= /0, required=true, type=string}}}}} Εικόνα 29. Δομή hashmap του αρχείου YAML Η διάσχιση των αντικειμένων του hashmap κάθε φορά, είναι εύκολο να επιτευχθεί αφού γνωρίζουμε τα ονόματα των κλειδιών εκ των προτέρων. for(string key : data.keyset()) { if(key.equals("node_types")) { NodeType node_t = new NodeType(); node_t.nodetypes(); } if(key.equals("data_types")) { DataType data_t = new DataType(); data_t.datatypes(); } if(key.equals("capability_types")) { CapabilityType capability_t = new CapabilityType(); capability_t.capabilitytypes(); } if(key.equals("node_templates")) { NodeTemplates templates = new NodeTemplates(); templates.nodetemplates(); } Εικόνα 30. Κώδικας κλήσης των κλάσεων Σύμφωνα με τον παραπάνω κώδικα στην Εικόνα 30, ελέγχονται με τη σειρά όλα τα ονόματα των κλειδιών στο «πρώτο επίπεδο» του hashmap, για να καλεστεί μετέπειτα κάθε φορά η αντίστοιχη κλάση, που διαχειρίζεται τον συγκεκριμένο τύπο TOSCA. Για παράδειγμα, όταν το όνομα κλειδιού είναι data_types,τότε καλείται η ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 73

74 κλάση DataType, με τη μέθοδο datatypes οι οποίες υλοποιούν τον ορισμό του Data Type DataType.java Όπως είχε αναφερθεί προηγουμένως στον Πίνακα 2, τα βασικά αναγνωρισμένα ονόματα ενός Data Type, είναι τα derived_from, properties, description, entry_schema και constraints. Όταν το πρόγραμμα βρίσκει τη λέξη κλειδί «derived_from», τότε εκτελείται το σύνολο εντολών (1), το οποίο ορίζει τη σχέση κλάσης υποκλάσης. Αντίστοιχα, όταν ανιχνεύεται η λέξη κλειδί «properties», εκτελείται το σύνολο εντολών (2), για την αποθήκευση των ονομάτων των properties στην αντίστοιχη Arraylist, ενώ όταν παρατηρείται η λέξη «description» προστίθεται η περιγραφή του data type, με την εκτέλεση της εντολής (3). Ο κώδικας που υλοποιεί αυτές τις διαδικασίες παρουσιάζεται στην Εικόνα 31. second_level = ((HashMap<String, Object>) map2.get(data_name)); for (String key2 : second_level.keyset()) { if (key2.equals("derived_from")) { derived_from = second_level.get("derived_from"); builder.add(rdfs.subclassof, "ex:"+ derived_from); } else if (key2.equals("properties")) { } third_level = (HashMap<String, Object>) second_level.get("properties"); p[0]=1; for (String key3 : third_level.keyset()) { properties_names.add(key3); } } else if(key2.equals("description")) { builder.add(data_name,tosca_description,values.literal(fourth_level.get ("description"))); } Εικόνα 31. Κώδικας διαχείρισης derived_from, properties και description To entry_schema μπορεί να βρίσκεται και σε επίπεδο κλάσης, και σε επίπεδο properties. Για το διαχωρισμό τους, ονομάζεται entry_schema_datatypeproperty ή / και entry_schema_objectproperty το χαρακτηριστικό που βρίσκεται σε επίπεδο κλάσης και entry_schema_dataproperty ή / και entry_schema_objectproperty το χαρακτηριστικό που βρίσκεται σε επίπεδο property. Και οι δύο ορισμοί χρησιμοποιούν την ίδια λογική, με μόνη διαφορά τους περιορισμούς κλάσης. Ενώ το entry_schema στην κλάση Data Type, περιορίζεται στο επίπεδο της κλάσης που αναφέρεται (Εικόνα 32), το property entry_schema έχει έναν επιπλέον περιορισμό πάνω και στο property που αναφέρεται (Εικόνα 33). 74

75 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 5: ΥΛΟΠΟΙΗΣΗ else if (key2.equals("entry_schema")) { third_level=(hashmap<string, Object>) second_level.get("entry_schema"); if ((third_level.get("type").equals("string")) (third_level.get("type").equals("integer")) (third_level.get("type").equals("float")) (third_level.get("type").equals("boolean"))) { IRI entry_schema_datatypeproperty= Values.iri(ex,"entry_schema_datatypeproperty"); builder.add(entry_schema_datatypeproperty, RDF.TYPE,"owl:DatatypeProperty"); builder.add(entry_schema_datatypeproperty,rdfs.range,(string) third_level.get("type")); } else { IRI entry_schema_objectproperty = Values.iri(ex,"entry_schema_objectproperty"); builder.add(entry_schema_objectproperty,rdf.type,"owl:objectproperty"); BNode r17 = Values.bnode(); builder.subject("ex:"+data_name); builder.add(rdfs.subclassof, r17); builder.subject(r17); builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.onproperty, entry_schema_objectproperty); builder.add(owl.somevaluesfrom, Values.iri(" + (String) third_level.get("type"))); } Εικόνα 32. Ορισμός entry_schema σε επίπεδο Data Type if (fourth_level.get("entry_schema")!= null) { fifth_level=(hashmap<string, Object>) fourth_level.get("entry_schema"); if ((fifth_level.get("type").equals("string")) (fifth_level.get("type").equals("integer")) (fifth_level.get("type").equals("float")) (fifth_level.get("type").equals("boolean"))) { IRI property_entry_schema_dataproperty = Values.iri(ex,"property_entry_schema_dataproperty"); builder.add(property_entry_schema_dataproperty,rdf.type, "owl:datatypeproperty") builder.add(property_entry_schema_dataproperty,rdfs.range,(string) fifth_level.get("type")); } else { IRI property_entry_schema_objectproperty = Values.iri(ex,"property_entry_schema_objectproperty"); builder.add(property_entry_schema_objectproperty,rdf.type, "owl:objectproperty"); BNode r18 = Values.bnode(); builder.subject("ex:"+data_name); ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 75

76 } builder.add(rdfs.subclassof, r18); builder.subject(r18); builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.onproperty, properties); BNode r14 = Values.bnode(); builder.add(owl.somevaluesfrom,r14); builder.subject(r14); builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.somevaluesfrom,values.iri (" + (String) fifth_level.get("type"))); builder.add(owl.onproperty,property_entry_schema_objectproperty); } Εικόνα 33. Ορισμός entry_schema σε επίπεδο property Έπειτα, για τον ορισμό των properties χρησιμοποιούνται τα βασικά ονόματα κλειδιών που αναφέρθηκαν στον Πίνακα 5. Αρχικά, για κάθε property ελέγχεται ο τύπος του: 1. Αν είναι κάποιος βασικός τύπος (π.χ. string, integer κ.λπ.), τότε το property είναι DatatypeProperty. 2. Αν είναι κάποιος τύπος TOSCA (π.χ. map), τότε το property είναι DatatypeProperty και ορίζεται το annotation toscatype. 3. Αν είναι κάποιος άλλος τύπος (π.χ. tosca.datatypes.network.portdef), τότε το property είναι ObjectProperty. Οι έλεγχοι αυτοί παρουσιάζονται με τη μορφή Κώδικα στην Εικόνα 34. if ((fourth_level.get("type").equals("string")) (fourth_level.get("type").equals("integer")) (fourth_level.get("type").equals("float")) (fourth_level.get("type").equals("boolean"))) { builder.add(properties,rdf.type,"owl:datatypeproperty"); builder.add(properties,rdfs.range,fourth_level.get("type")); } else if(((string) fourth_level.get("type")).startswith("tosca")) { builder.add(properties,rdf.type,"owl:objectproperty"); BNode r25 = Values.bnode(); builder.subject("ex:"+node_name); builder.add(rdfs.subclassof, r25); builder.subject(r25); builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.onproperty, properties); builder.add(owl.somevaluesfrom,values.iri(" csd.auth.gr/ontologies/tosca/" + fourth_level.get("type"))); else { builder.add(properties,rdf.type,"owl:objectproperty"); builder.add(properties,toscatype,fourth_level.get("type")); } Εικόνα 34. Κώδικας για τον έλεγχο του τύπου του property

77 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 5: ΥΛΟΠΟΙΗΣΗ Στη συνέχεια, για να οριστεί, αν το property είναι απαραίτητο ή όχι, με τη χρήση της λέξης κλειδί «required» έχουμε δύο περιπτώσεις: 1. Αν το property είναι απαραίτητο, δηλαδή ισχύει ότι required=true, τότε ορίζεται, ότι το property έχει MINCARDINALITY= 1, με τη χρήση περιορισμών κλάσης. 2. Αν το property δεν είναι απαραίτητο, δηλαδή ισχύει ότι required=false, τότε ορίζεται, ότι το property έχει MINCARDINALITY= 0, με τη χρήση περιορισμών κλάσης. Και για τις δύο περιπτώσεις είναι απαραίτητο να οριστεί ένας κενός κόμβος (Blank Node), αφού το required είναι ένας περιορισμός και όλοι οι περιορισμοί αντιπροσωπεύονται με Blank Nodes. Κάθε κλάση που απασχολεί, ορίζεται ως subclass των Blank Node περιορισμών που ισχύουν. Στην παρακάτω Εικόνα 35, ακολουθεί ο κώδικας που διαχειρίζεται τη μοντελοποίηση του required. if(fourth_level.get("required").equals(true)) { BNode r1 = Values.bnode(); builder.subject("ex:"+data_name); builder.add(rdfs.subclassof, r1); builder.subject(r1); builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.onproperty, properties); builder.add(owl.mincardinality, 1); } else if(fourth_level.get("required").equals(false)) { BNode r2 = Values.bnode(); builder.subject("ex:"+data_name); builder.add(rdfs.subclassof, r2); builder.subject(r2); builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.onproperty, properties) builder.add(owl.mincardinality, 0); } 1 2 Εικόνα 35. Κώδικας για τον ορισμό του required Για τον ορισμό των constraints, χρησιμοποιούνται οι τρεις βασικοί περιορισμοί που συναντώνται, το valid_values, min_length / max_length. Για το valid_values constraint δημιουργείται μια λίστα με τις τιμές του. Επιπλέον, θα χρειαστεί η Bnode unionlist λίστα, η οποία θα περιλαμβάνει τoυς κόμβους Bnode, που αντιστοιχούν στους περιορισμούς πάνω στις τιμές του valid_values, ώστε να δημιουργηθεί η ένωση τους. Ακόμη, επειδή δεν είναι εκ των προτέρων γνωστό, πόσες τιμές περιέχει η λίστα valid_values, για να χρησιμοποιηθεί και το αντίστοιχο πλήθος ονομάτων bnodes, απαιτείται να οριστεί η Bnode λίστα bnodes, η οποία έχει μέγεθος ίσο με το μέγεθος της εκάστοτε λίστας valid_values. Για τα min_length / max_length constraints, χρησιμοποιώντας τους περιορισμούς κλάσεις, ακολουθείται παρόμοια λογική με την υλοποίηση του περιορισμού required. (Εικόνα 36). ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 77

78 IRI constraints = Values.iri(ex,"constraints"); builder.add(constraints,rdf.type,"owl:objectproperty"); fifth_level=(hashmap<string, Object>) fourth_level.get("constraints"); for (Entry<String, Object> entry: fifth_level.entryset()) { String cons = entry.getkey(); IRI constr = Values.iri(ex,cons); Object val = entry.getvalue(); if(cons.equals("valid_values")) ArrayList listval = (ArrayList) val; //arraylist for the bnodes that we will need ArrayList<BNode> bnodes = new ArrayList<BNode>(listval.size()); //list for all the blank nodes that are part of the union List<BNode> unionlist = new ArrayList<BNode>(); BNode r6 = Values.bnode(); builder.subject("ex:"+data_name); //set subject to the class builder.add(rdfs.subclassof, r6); builder.subject(r6); int b=0;//counter for (Object temp : listval) //for each element in valid values list { bnodes.add(values.bnode()); //add a bnode to the bnode list unionlist.add(bnodes.get(b)); //add the bnode to the union list builder.subject(bnodes.get(b)); builder.add(rdf.type, OWL.RESTRICTION); //restriction on property builder.add(owl.onproperty,properties); builder.add(owl.hasvalue,temp) b++; } BNode head = Values.bnode(); // blank node for the head of the list RDFCollections.asRDF(unionList, head, builder.build()); builder.subject(r6).add(rdf.type, OWL.CLASS).add(OWL.UNIONOF, head); } if(cons.equals("min_length") cons.equals("max_length")) { builder.add(constr,rdfs.range,"string"); BNode r11 = Values.bnode(); builder.subject("ex:"+data_name); //set subject to the class builder.add(rdfs.subclassof, r11); builder.subject(r11); builder.add(rdf.type, OWL.RESTRICTION); //restriction on property builder.add(owl.onproperty,properties); BNode r12 = Values.bnode(); builder.subject(r12); BNode r13 = Values.bnode(); builder.add(rdfs.subclassof, r13); builder.subject(r13); builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.onproperty,constraints); BNode r14 Values.bnode(); builder.add(owl.somevaluesfrom,r14); builder.subject(r14); builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.hasvalue,val); builder.add(owl.onproperty,constr); } } Εικόνα 36. Κώδικας για τον ορισμό βασικών constraints 78

79 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 5: ΥΛΟΠΟΙΗΣΗ Τέλος, για τον ορισμό μιας default τιμής για το property, καθώς και για να οριστεί, ότι είναι TOSCΑ property και όχι attribute, όπως αναφέρθηκε και προηγουμένως, χρησιμοποιούνται τα αντίστοιχα annotations (Εικόνα 37). if (fourth_level.get("default")!= null) { builder.add(properties,toscadefault,values.literal(fourth_level.get("defau lt"))); } builder.add(properties,toscaproperty,"true"); Εικόνα 37. Κώδικας των Annotation default και toscaproperty στα properties NodeType.java Tα βασικά αναγνωρισμένα ονόματα ενός Node Type, που είχαν αναφερθεί προηγουμένως στον Πίνακα 2, είναι τα derived_from, description, properties, attributes, requirements και capabilities. Τα πρώτα τρία ορίζονται με τον ίδιο τρόπο, που ορίζονται σε ένα Data Type, ενώ τα attributes δηλώνονται όπως και τα properties, με μόνη διαφορά το annotation toscaproperty, το οποίο πλέον πρέπει να ορίζει ότι το πεδίο είναι TOSCΑ attribute και όχι property (Εικόνα 38). builder.add(attribute,toscaproperty,"false"); Εικόνα 38. Κώδικας Annotation toscaproperty στα attributes Για να περιγραφεί ένα capability, το οποίο μπορεί να έχει έναν τύπο και κάποια valid_source_types, χρησιμοποιείται μια Intersection Βnode λίστα, για τον ορισμό των χαρακτηριστικών, που αφορούν το εκάστοτε capability, αλλά και μια Union Bnode List για να οριστούν οι μοναδικές τιμές του valid_source_types. Ακόμη, επειδή δε είναι εκ των προτέρων γνωστό, πόσες τιμές περιέχει η λίστα valid_source_types, για να χρησιμοποιηθεί και το αντίστοιχο πλήθος ονομάτων bnodes, απαιτείται να οριστεί η Bnode List bnodes, η οποία έχει μέγεθος ίσο με το μέγεθος της εκάστοτε λίστας valid_source_types. Συνεπώς, χρησιμοποιώντας τους περιορισμούς κλάσης καθορίζεται η σημασιολογία του κάθε capability (Εικόνα 39). BNode r38 = Values.bnode(); // for host some type.. BNode r39 = Values.bnode(); // for host some valid source types BNode r40= Values.bnode(); // for valid source types builder.subject(r38);// for host some type builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.onproperty, capability); Object type_host=fourth_level.get("type"); builder.add(owl.somevaluesfrom,values.iri(" r/ontologies/tosca/" + type_host)); builder.subject(r39); // for host some valid source types builder.add(rdf.type, OWL.RESTRICTION); builder.add(owl.onproperty, capability); builder.add(owl.somevaluesfrom,r40); Object valid_host=fourth_level.get("valid_source_types"); ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 79

80 ArrayList listval = (ArrayList) valid_host; ArrayList<BNode> bnodes = new ArrayList<BNode>(listval.size()); //arraylist for the bnodes that we will need List<BNode> unionlist = new ArrayList<BNode>(); //list for all the blank nodes that are part of the union int b=0;//counter for (Object temp : listval) //for each element in valid values list { bnodes.add(values.bnode()); //add a bnode to the bnode list unionlist.add(bnodes.get(b)); //add the bnode to the union list builder.subject(bnodes.get(b)); builder.add(rdf.type, OWL.RESTRICTION); //restriction on property builder.add(owl.onproperty,valid_source_types); builder.add(owl.allvaluesfrom,values.iri(" /ontologies/tosca/" + temp)); b++; } BNode head2 = Values.bnode(); // blank node for the head of the list RDFCollections.asRDF(unionList, head2, builder.build()); builder.subject(r40).add(rdf.type, OWL.CLASS).add(OWL.UNIONOF, head2); List<BNode> intersectionlist = new ArrayList<BNode>();//list for all the blank nodes that are part of the intersection intersectionlist.add(r38); intersectionlist.add(r39); BNode head = Values.bnode(); RDFCollections.asRDF(intersectionList, head, builder.build()); builder.subject(r36).add(rdf.type, OWL.CLASS).add(OWL.INTERSECTIONOF, head); Εικόνα 39. Κώδικας capability στο Node Type CapabilityType.java Σε ένα Capability Type, όπως και σε ένα Node Type, βρίσκονται τα βασικά αναγνωρισμένα ονόματα derived_from, description, properties, attributes, τα οποία μοντελοποιούνται με αντίστοιχο τρόπο. Το επιπλέον χαρακτηριστικό που μπορεί να διαθέτει ένα Capability Type, είναι το valid_source_type, το οποίο μπορεί υλοποιηθεί με τη χρήση ενός περιορισμού κλάσης, ώστε να οριστούν οι τιμές τις οποίες μπορεί να λάβει (Εικόνα 40). IRI valid_source_types=values.iri(ex,"valid_source_types"); if (fourth_level.get("valid_source_types")!= null) { builder.add(valid_source_types,rdf.type,"owl:objectproperty"); Object valid_source=fourth_level.get("valid_source_types"); ArrayList listval = (ArrayList) valid_source; ArrayList<BNode> bnodes = new ArrayList<BNode>(listval.size()); //arraylist for the bnodes that we will need List<BNode> unionlist = new ArrayList<BNode>(); //list for all the blank nodes that are part of the union BNode r50 = Values.bnode(); builder.subject("ex:"+capability_name); //set subject to the class builder.add(rdfs.subclassof, r50); builder.subject(r50); 80

81 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 5: ΥΛΟΠΟΙΗΣΗ int b=0;//counter for (Object temp : listval) //for each element in valid source types list { bnodes.add(values.bnode()); //add a bnode to the bnode list unionlist.add(bnodes.get(b)); //add the bnode to the union list builder.subject(bnodes.get(b)); builder.add(rdf.type, OWL.RESTRICTION); //restriction on property builder.add(owl.onproperty,valid_source_types); builder.add(owl.allvaluesfrom,values.iri(" uth.gr/ontologies/tosca/" + temp)); b++; } BNode head = Values.bnode(); // blank node for the head of the list RDFCollections.asRDF(unionList, head, builder.build()); builder.subject(r50).add(rdf.type, OWL.CLASS).add(OWL.UNIONOF, head); }} Εικόνα 40. Κώδικας valid_source_types στο Capability Type Νode Template.java Ένα Node Template, μπορεί να έχει μερικά properties, attributes και requirements. Για να προστεθούν στιγμιότυπα properties, χρησιμοποιούμε τον κώδικα της Εικόνας 41. Στην περίπτωση που ένα property, έχει πολλά στιγμιότυπα, χρησιμοποιείται η λίστα Bnode vars, η οποία περιέχει τα bnode προς τα πεδία των στιγμιότυπων του property. Σε κάθε bnode, χρησιμοποιείται το toscatemplateproperty, για να εμπλουτίσει τη σημασιολογική πληροφορία, διατηρώντας το όνομα του property, που αφορούν κάθε φορά οι τιμές των πεδίων. Αντίστοιχα, γίνεται και η διαχείριση των στιγμιότυπων των attributes. List<BNode> vars = new ArrayList<>(); //for properties if(p[0]!=0) { p[0]=0; third_level = (HashMap<String, Object>) second_level.get("properties"); for (int j = 0; j < properties_names.size(); j++) { String key1 = properties_names.get(j); String value = third_level.get(properties_names.get(j)).tostring(); if(value.contains("{")) //if property has more levels { int v=0; fourth_level = (HashMap<String, Object>) third_level.get(key1); for (Object key4 : fourth_level.keyset()) {vars.add(values.bnode()); builder.add(tosca+key1, vars.get(v)).subject(vars.get(v)); builder.add(toscatemplateproperty, tosca+key4); fifth_level=(hashmap<string, Object>)fourth_level.get(key4); builder.add(toscatemplateproperty, tosca+key4); for (String key5 : fifth_level.keyset()) { builder.add(tosca+key5, fifth_level.get(key5)); } v++; }} else { builder.subject(tosca+template_name); builder.add(tosca+key1, value); }}} Εικόνα 41. Κώδικας properties στο Node Template ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 81

82 Για τον ορισμό στιγμιότυπων requirement, γίνεται χρήση του κώδικα της Εικόνας 42, στον οποίο χτίζεται με τη βοήθεια δύο bnode η απαίτηση. //for requirements if(r[0]!=0) { r[0]=0; BNode r60 = Values.bnode(); BNode r61 = Values.bnode(); third_level = (HashMap<String, Object>) second_level.get("requirements"); IRI requirements= Values.iri(tosca,"requirements"); for (int j = 0; j < requirements_names.size(); j++) { builder.subject(tosca+template_name).add(requirements, r60); Object key1 = requirements_names.get(j); builder.subject(r60).add(tosca+key1, r61); fifth_level=(hashmap<string, Object>) third_level.get(key1); for (String key5 : fifth_level.keyset()) { builder.subject(r61).add(tosca+key5,values.iri(" uth.gr/ontologies/tosca/" + fifth_level.get(key5))); } } } Εικόνα 42. Κώδικας requirements στο Node Template WriteFiles.java Η κλάση WriteFiles, χρησιμοποιείται για τη δημιουργία των αρχείων ttl, που περιέχουν την σημασιολογική πληροφορία, που εξήγαγε το εργαλείο για κάθε Type. Για την δημιουργία των διακριτών αρχείων για τα Node Type, Node Template, Capability Type και Data Type, χρησιμοποιήθηκε το απόσπασμα κώδικα της Εικόνας 43 ώστε να εντοπιστεί η κλάση που καλεί την WriteFiles κάθε φορά και να δημιουργηθεί ή να ενημερωθεί ένα αρχείο με όνομα αντίστοιχο με την κλάση που την κάλεσε, όπως φαίνεται στην Εικόνα 44. String caller_class=""; StackTraceElement[] stelements = Thread.currentThread().getStackTrace(); boolean flag = false; for (int i=1; i<stelements.length; i++) { StackTraceElement ste = stelements[i]; if (!ste.getclassname().equals(writefiles.class.getname()) && ste.getclassname().indexof("java.lang.thread")!=0 && flag==false) { caller_class = ste.getclassname(); flag = true; } } Εικόνα 43. Κώδικας εντοπισμού της Caller Class 82

83 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 5: ΥΛΟΠΟΙΗΣΗ if(caller_class.equals("tosca.datatype")) { file = new File("data_type.ttl"); } else if(caller_class.equals("tosca.nodetype")) { file = new File("node_type.ttl"); } else if(caller_class.equals("tosca.capabilitytype")) { file = new File("capability_type.ttl"); } else if(caller_class.equals("tosca.nodetemplates")) { file = new File("node_templates.ttl"); } if (file.createnewfile()) { System.out.println("File created: " + file.getname() + " at " + System.getProperty("user.dir")); } else { System.out.println("File " + file.getname() + " updated at " + System.getProperty("user.dir")); } Εικόνα 44. Δημιουργία / ενημέρωση αρχείων.ttl 5.3 ΕΡΩΤΗΜΑΤΑ ΣΤΗ GRAPHDB Στην παρακάτω Εικόνα 45 παρουσιάζεται η ιεραρχία των κλάσεων της TOSCA, η οποία δημιουργήθηκε μετά την εκτέλεση του εργαλείου στο παράδειγμά μας, όπως φαίνεται στη GraphDB. Εικόνα 45. Ιεραρχία κλάσεων TOSCA ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 83

84 Χρησιμοποιώντας ερωτήματα SPARQL, δίνεται η δυνατότητα να βρεθούν αρκετές πληροφορίες. Για παράδειγμα, μπορούν να εντοπιστούν όλα εκείνα τα στοιχεία που είναι node types, εκτελώντας το παρακάτω ερώτημα: PREFIX rdfs: < PREFIX tosca: < PREFIX rdf: < select * where {?s rdfs:subclassof tosca:tosca.nodes.root. } limit 10 Το παραπάνω ερώτημα επιστρέφει μια λίστα με τα πρώτα δέκα node types, που είναι τα εξής: Εικόνα 46. Λίστα Node Types Για λόγους επαλήθευσης, εκτελούμε ένα ερώτημα που να επιστρέφει τις υποκλάσεις του tosca.nodes.compute: PREFIX rdfs: < PREFIX tosca: < PREFIX rdf: < select * where {?s rdfs:subclassof tosca:tosca.nodes.compute. } limit 10 Πράγματι, στην Εικόνα 47 βλέπουμε ως υποκλάση του Compute εμφανίζεται το Node Type OpensStack.VM του αρχείου Yaml, το οποίο δώσαμε σαν είσοδο στο εργαλείο. Εικόνα 47. Υποκλάσεις tosca.nodes.compute 84

85 ΘΕΟΔΩΡΑ ΤΑΣΙΑ ΚΕΦΑΛΑΙΟ 5: ΥΛΟΠΟΙΗΣΗ Τέλος, έστω ότι προστίθεται ένα Node Template με όνομα snow-vm, το οποίο να έχει ως τύπο το OpenStack.VM. Σε αυτή την περίπτωση, υπάρχει η δυνατότητα να εμφανιστεί ότι το Template αυτό έχει προστεθεί ως στιγμιότυπο της κλάσης OpenStack.VM, όπως φαίνεται στην Εικόνα 48. Εικόνα 48. Node Template στη GraphDB ΣΗΜΑΣΙΟΛΟΓΙΚΗ ΜΟΝΤΕΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΚΑΙ ΥΠΗΡΕΣΙΩΝ ΥΠΟΛΟΓΙΣΤΙΚΟΥ ΝΕΦΟΥΣ 85

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 5: Resource Description Framework (RDF) Μ.Στεφανιδάκης 16-3-2015. Τα επίπεδα του Σημασιολογικού Ιστού RDF: Το κύριο πρότυπο του Σημασιολογικού Ιστού, χρησιμοποιεί

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 6: RDF Schema (RDFS) Μ.Στεφανιδάκης 21-3-2016. Τι μπορούμε να εκφράσουμε με την RDF; Δηλώσεις σε μορφή τριάδων (s,p,o) Χωρίς οποιαδήποτε έννοια δομής... Παράδειγμα:

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 5: Resource Description Framework (RDF) Μ.Στεφανιδάκης 13-3-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του

Διαβάστε περισσότερα

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

Οντολογία για την περιγραφή των προσωπικοτήτων της Σάμου, την κατηγοριοποίηση και τις σχέσεις τους Οντολογία για την περιγραφή των προσωπικοτήτων της Σάμου, την κατηγοριοποίηση και τις σχέσεις τους Επιμέλεια: Καρανικολάου Θεοδώρα Επιβλέπων καθηγητής: Δενδρινός Μάρκος Αθήνα, 2017 Σκοπός Στόχος της πτυχιακής

Διαβάστε περισσότερα

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

Aναπαράσταση Γνώσης στο Σημασιολογικό Ιστό Aναπαράσταση Γνώσης στο Σημασιολογικό Ιστό Οι γλώσσες RDF(S) και OWL Γ. Στάμου Περιγραφή Μεταδεδομένων με την RDF Η RDF χρησιμοποιείται για την απλή περιγραφή πόρων (resources) του διαδικτύου o Περιγράφει

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 8: Εισαγωγή στη SPARQL Βασική Χρήση Μ.Στεφανιδάκης 3-5-2015. Η γλώσσα ερωτημάτων SPARQL Ερωτήσεις (και ενημερώσεις) σε σετ δεδομένων RDF Και σε δεδομένα άλλης μορφής

Διαβάστε περισσότερα

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

Περιεχόμενα. Κατάλογος εικόνων 13. Πρόλογος 15. 1 Το όραμα του Σημασιολογικού Ιστού 19 Περιεχόμενα Κατάλογος εικόνων 13 Πρόλογος 15 1 Το όραμα του Σημασιολογικού Ιστού 19 1.1 Ο σημερινός Ιστός 19 1.2 Από το σημερινό Ιστό στο Σημασιολογικό Ιστό: παραδείγματα 22 1.3 Τεχνολογίες Σημασιολογικού

Διαβάστε περισσότερα

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

Σημασιολογικός Ιστός RDF(S) OWL Οντολογίες. Pervasive Computing Research Group Σημασιολογικός Ιστός RDF(S) OWL Οντολογίες Ο Παγκόσμιος Ιστός Εφαρμογή του Internet Δημοσίευση εγγράφων και υπερσύνδεσμοι Δυναμικό περιεχόμενο Αναζήτηση πληροφοριών - Κατανοητός μόνο από ανθρώπους (έμφαση

Διαβάστε περισσότερα

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

Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αναπαράσταση Γνώσης και Αναζήτηση στον Σηµασιολογικό Ιστό Αλέξανδρος Βαλαράκος (alexv@iit.demokritos.gr) (alexv@aegean.gr) Υποψήφιος ιδάκτορας Τµήµα Μηχανικών Υπολογιστικών και Πληροφοριακών Συστηµάτων.

Διαβάστε περισσότερα

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

ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: ΣΥΓΓΡΑΦΕΑΣ: ΤΙΤΛΟΣ ΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΠΕΡΙΟΧΗ ΕΡΕΥΝΑΣ: Υπολογιστικά Συστήµατα & Τεχνολογίες Πληροφορικής ΣΥΓΓΡΑΦΕΑΣ: Γιώργος Γιαννόπουλος, διδακτορικός φοιτητής

Διαβάστε περισσότερα

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

Εισαγωγή στο RDF. Το Resource Description Framework (RDF) Σταύρος Πολυβίου Εισαγωγή στο RDF Σταύρος Πολυβίου Το Resource Description Framework (RDF) RDF: µία γλώσσα περιγραφής πληροφοριών (metadata) που αφορούν πόρους (resources) στο world wide web. Παραδείγµατα: ο τίτλος, ο

Διαβάστε περισσότερα

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

Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Σημασιολογική Ολοκλήρωση Δεδομένων με τη χρήση Οντολογιών Λίνα Μπουντούρη - Μανόλης Γεργατσούλης Ιόνιο Πανεπιστήμιο 15ο Πανελλήνιο Συνέδριο Ακαδημαϊκών Βιβλιοθηκών Διαδίκτυο και Επίπεδα ετερογένειας δεδομένων

Διαβάστε περισσότερα

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

Σχεδιασµός Ανάπτυξη Οντολογίας Σχεδιασµός Ανάπτυξη Οντολογίας ΈλεναΜάντζαρη, Γλωσσολόγος, Ms.C. ΙΑΤΡΟΛΕΞΗ: Ανάπτυξη Υποδοµής Γλωσσικής Τεχνολογίας για το Βιοϊατρικό Τοµέα Τι είναι η οντολογία; Μιαοντολογίαείναιέναλεξικόόρωνπου διατυπώνονται

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Τεχνολογίες RDF για τον Ιστό Δεδοµένων 1 Τεχνολογίες RDF για τον Ιστό Δεδοµένων The Semantic Web is Dead? Hardly! The reports of my death are greatly exaggerated. Mark Twain Διαχείριση δεδοµένων στον Ιστό 2 Έστω ένας φανταστικός ιστός! html

Διαβάστε περισσότερα

Απεικόνιση Οντολογιών Σε Σχήµατα Σχεσιακών Βάσεων εδοµένων Με Σκοπό Την Ανάκτηση εδοµένων Σηµασιολογικού Περιεχοµένου ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ

Απεικόνιση Οντολογιών Σε Σχήµατα Σχεσιακών Βάσεων εδοµένων Με Σκοπό Την Ανάκτηση εδοµένων Σηµασιολογικού Περιεχοµένου ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΕΠΙΚΟΙΝΩΝΙΩΝ, ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΣΥΣΤΗΜΑΤΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ Απεικόνιση Οντολογιών Σε Σχήµατα Σχεσιακών Βάσεων εδοµένων

Διαβάστε περισσότερα

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 02 & 03. Δρ. Γεώργιος Χρ. Μακρής

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 02 & 03. Δρ. Γεώργιος Χρ. Μακρής ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ στα ΔΙΚΤΥΑ και ΠΟΛΥΠΛΟΚΟΤΗΤΑ Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός Χειμερινό Εξάμηνο Σπουδών Διάλεξη 02 & 03 Δρ. Γεώργιος Χρ. Μακρής Αναπαράσταση

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧ/ΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΕΚΠΟΝΗΣΗ ΕΡΓΑΣΙΑΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΜΗΧ/ΚΩΝ Η/Υ & ΠΛΗΡΟΦΟΡΙΚΗΣ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ 2010-2011 2011-2012 ΕΚΠΟΝΗΣΗ ΕΡΓΑΣΙΑΣ Στα πλαίσια της εργασίας θα δημιουργήσετε μια οντολογία που να αναπαριστά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Παρουσίαση της SPARQL με χρήση του Jena Adapter για Oracle. Αρ. Μητρώου: 04/2566 ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Παρουσίαση της SPARQL με χρήση του Jena Adapter για Oracle Του φοιτητή Επιβλέπων καθηγητής Πατσίκα Κωνσταντίνου Δρ. Ευκλείδης Κεραμόπουλος Αρ. Μητρώου: 04/2566 Θεσσαλονίκη 2011 ΠΡΟΛΟΓΟΣ

Διαβάστε περισσότερα

Εννοιολογική Ομοιογένεια

Εννοιολογική Ομοιογένεια Ιόνιο Πανεπιστήμιο Τμήμα Αρχειονομίας Βιβλιοθηκονομίας Εργαστήριο Ψηφιακών Βιβλιοθηκών και Ηλεκτρονικής Δημοσίευσης Εννοιολογική Ομοιογένεια Αξιοποίηση Ταξινομικών Συστημάτων Γεωργία Προκοπιάδου, Διονύσης

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Μεταπτυχιακή Διατριβή Πανεπιστήμιο Πειραιώς Τμήμα Πληροφορικής Πρόγραμμα Μεταπτυχιακών Σπουδών «Πληροφορική» Μεταπτυχιακή Διατριβή Τίτλος Διατριβής Υπηρεσία Αυτόματης Ανάκτησης Συνδεδεμένης Δομής Θεματικών Επικεφαλίδων μέσω

Διαβάστε περισσότερα

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 01 & 02. Δρ. Γεώργιος Χρ. Μακρής

Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός. Διάλεξη 01 & 02. Δρ. Γεώργιος Χρ. Μακρής ΔΙΑΤΜΗΜΑΤΙΚΟ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ στα ΠΟΛΥΠΛΟΚΑ ΣΥΣΤΗΜΑΤΑ και ΔΙΚΤΥΑ Μάθημα: Δ3. Δίκτυα Γνώσης και Σημασιολογικός Ιστός Χειμερινό Εξάμηνο Σπουδών Διάλεξη 01 & 02 Δρ. Γεώργιος Χρ. Μακρής Αναπαράσταση

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 4: Χρησιμοποιώντας Ενιαία Αναγνωριστικά URIs και IRIs Μ.Στεφανιδάκης 28-2-2016. Η έννοια της οντότητας Στον Σημασιολογικό Ιστό οι τριάδες μπορούν να εκληφθούν ως

Διαβάστε περισσότερα

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

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. Διαχείριση Κατανεμημένων Δεδομένων στο. Διαδίκτυο ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Διαχείριση Κατανεμημένων Δεδομένων στο Διαδίκτυο Του φοιτητή Τσουκαλά Χρυσόστομου Επιβλέπων καθηγητής Δηµήτρης Αχιλ. Δέρβος Αρ. Μητρώου: 05/2758 Θεσσαλονίκη 2011 ΠΡΟΛΟΓΟΣ Από τότε που

Διαβάστε περισσότερα

Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση

Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση Πρότυπα και Τεχνολογίες Semantic Web και Web 2.0 και η εφαρμογή τους στην Ηλεκτρονική Διακυβέρνηση Νίκος Λούτας (nlout@uom.gr) http://nikosloutas.com Υποψήφιος Διδάκτορας, Εργαστήριο Πληροφοριακών Συστημάτων,

Διαβάστε περισσότερα

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

Σχεδιασμός Βάσεων Δεδομένων Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Σχεδιασμός Βάσεων Δεδομένων Εργαστήριο 1 Δρ. Βασιλική Κούφη Περιεχόμενα 1. Εισαγωγή 2. Κύκλος ζωής ανάπτυξης Βάσεως Δεδομένων 3. Oracle SQL Developer Data

Διαβάστε περισσότερα

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

ΠΕΡΙΕΧΟΜΕΝΑ. Πρόλογος... 13. Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 ΠΕΡΙΕΧΟΜΕΝΑ Πρόλογος... 13 Κεφάλαιο 1 ο Αρχές Διαχείρισης πληροφορίας στον Παγκόσμιο Ιστό... 15 1.1 Εισαγωγή... 16 1.2 Διαδίκτυο και Παγκόσμιος Ιστός Ιστορική αναδρομή... 17 1.3 Αρχές πληροφοριακών συστημάτων

Διαβάστε περισσότερα

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

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Βάσεις Δεδομένων Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Βάσεις Δεδομένων», 2015-2016 Κεφάλαιο 2: Περιβάλλον Βάσεων Δεδομένων Μοντέλα Δεδομένων 2.1

Διαβάστε περισσότερα

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

Παραδοτέο Π.2.1. Υπερχώρος και διαχείριση μοντέλων Έργο: Τίτλος Υποέργου: «ΘΑΛΗΣ: Ενίσχυση της Διεπιστημονικής ή και Διιδρυματικής έρευνας και καινοτομίας με δυνατότητα προσέλκυσης ερευνητών υψηλού επιπέδου από το εξωτερικό μέσω της διενέργειας βασικής

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τμήμα Ψηφιακών Συστημάτων Πρόγραμμα Μεταπτυχιακών Σπουδών Κατεύθυνση: Ηλεκτρονική Μάθηση ΜΕΤΑΠΤΥΧΙΑΚΗ ΔΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ ''Διαδραστική αναζήτηση εκπαιδευτικού υλικού με τεχνολογίες

Διαβάστε περισσότερα

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

ιαχείριση Γνώσης σε Ενδοεπιχειρισιακά ίκτυα και το ιαδίκτυο (ΗΥ-566) ιαχείριση Γνώσης σε Ενδοεπιχειρισιακά ίκτυα και το ιαδίκτυο (ΗΥ-566) Άσκηση 2 - Αναφορά "Επιλογή Παραδείγµατος Πεδίου Εφαρµογής Περιγραφής Γνώσης, Σύνταξη Σχήµατος σε RDFS (δεδοµένa σε RDF) και Επερωτήσεις

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΣΥΜΠΛΗΡΩΜΑΤΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ ΛΟΓΙΚΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ (III) ΙΖΑΜΠΩ ΚΑΡΑΛΗ ΑΘΗΝΑ 2008 Σύγχρονεςανάγκες για αναπαράσταση γνώσης

Διαβάστε περισσότερα

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

1 Συστήματα Αυτοματισμού Βιβλιοθηκών 1 Συστήματα Αυτοματισμού Βιβλιοθηκών Τα Συστήματα Αυτοματισμού Βιβλιοθηκών χρησιμοποιούνται για τη διαχείριση καταχωρήσεων βιβλιοθηκών. Τα περιεχόμενα των βιβλιοθηκών αυτών είναι έντυπα έγγραφα, όπως βιβλία

Διαβάστε περισσότερα

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

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ Γλώσσα Οντολογιών Ιστού: OWL Ι. Χατζηλυγερούδης Γλώσσες Οντολογιών Ιστού RDF και RDFS έχουν περιορισμένη εκφραστικότητα Η RDF περιορίζεται σε δυαδικά κατηγορήματα

Διαβάστε περισσότερα

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ. Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων Δρ. Κωνσταντίνος Χ. Γιωτόπουλος Βασικά θέματα Βάσεων Δεδομένων Ένα Σύστημα Βάσης Δεδομένων

Διαβάστε περισσότερα

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams

ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams ΗΥ562 Προχωρημένα Θέματα Βάσεων Δεδομένων Efficient Query Evaluation over Temporally Correlated Probabilistic Streams Αλέκα Σεληνιωτάκη Ηράκλειο, 26/06/12 aseliniotaki@csd.uoc.gr ΑΜ: 703 1. Περίληψη Συνεισφοράς

Διαβάστε περισσότερα

Οντολογία σύμφωνα με τη Φιλοσοφία

Οντολογία σύμφωνα με τη Φιλοσοφία Οντολογία σύμφωνα με τη Φιλοσοφία κλάδος της Μεταφυσικής η επιστήμη της ύπαρξης ερευνά τα είδη και τη φύση των αντικειμένων καθώς και τις μεταξύ τους σχέσεις. η επιστήμη των κατηγοριών ερευνά τις κατηγορίες

Διαβάστε περισσότερα

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3

Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3 Ανάπτυξη Οντολογίας Βιοϊατρικών Όρων Α. Βαγγελάτος 2, Γ. Ορφανός 2, Χ. Τσαλίδης 2, Χ. Καλαμαρά 3 www.iatrolexi.cti.gr 1 Ερευνητικό Ακαδημαϊκό Ινστιτούτο Τεχνολογίας Υπολογιστών (ΕΑΙΤΥ) Σελίδα 1 Ημερομηνία:

Διαβάστε περισσότερα

Συστήματα Γνώσης. Θεωρητικό Κομμάτι Μαθήματος Ενότητα 2: Βασικές Αρχές Αναπαράστασης Γνώσης και Συλλογιστικής

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

Διαβάστε περισσότερα

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι

ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι ΓΕΩΠΟΝΙΚΗ ΣΧΟΛΗ ΑΠΘ Εργαστήριο Πληροφορικής στη Γεωργία ΠΛΗΡΟΦΟΡΙΚΗ Ι Συστήματα Υποστήριξης Αποφάσεων Τα Συστήματα Υποστήριξης Αποφάσεων (Σ.Υ.Α. - Decision Support Systems, D.S.S.) ορίζονται ως συστήματα

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Εξαγωγή γεωγραφικής πληροφορίας από δεδομένα παρεχόμενα από χρήστες του

Διαβάστε περισσότερα

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

Ιστορικοί χάρτες στον Παγκόσμιο Ιστό Χαρτογραφική Επιστημονική Εταιρεία Ελλάδας Χαρτογραφία στο Διαδίκτυο. Σύγχρονες Τάσεις και Προοπτικές 13 ο Εθνικό Συνέδριο Χαρτογραφίας Πάτρα, 22-24 Οκτωβρίου 2014 1 Ελένη Γκαδόλου, 2 Εμμανουήλ Στεφανάκης

Διαβάστε περισσότερα

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ

ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΗΡΕΣΙΑ «TAXISNET» - ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΟΒΟΛΗ ΤΩΝ ΦΟΡΟΛΟΓΙΚΩΝ ΔΗΛΩΣΕΩΝ ΓΙΑ ΤΟ ΤΜΗΜΑ ΕΣΩΤΕΡΙΚΩΝ ΠΡΟΣΟΔΩΝ ΚΑΙ ΤΗΝ ΥΠΗΡΕΣΙΑ ΦΟΡΟΥ ΠΡΟΣΤΙΘΕΜΕΝΗΣ ΑΞΙΑΣ ΤΟΥ ΥΠΟΥΡΓΕΙΟΥ ΟΙΚΟΝΟΜΙΚΩΝ ΤΗΣ ΚΥΠΡΙΑΚΗΣ ΔΗΜΟΚΡΑΤΙΑΣ Οδηγίες

Διαβάστε περισσότερα

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

Linked Data for the Masses: Η προσέγγιση και το λογισμικό Linked Data for the Masses: Η προσέγγιση και το λογισμικό Γιώργος Αναδιώτης, Πάνος Ανδριόπουλος, Πάνος Αλεξόπουλος, ημήτρης Βεκρής, Αριστοτέλης Ζωσάκης IMC Technologies S.A. 15/05/2010 Linked Data for

Διαβάστε περισσότερα

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας»

Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας» Μάθημα «Υπηρεσίες Ηλεκτρονικής Υγείας» M. Σπανάκης, Μ. Τσικνάκης Εαρινό Εξάμηνο 2014 Μάθημα 1 Παρουσίαση Εργασίας και Εισαγωγή στην ανάλυση απαιτήσεων Εισαγωγή Αρχική συζήτηση αναφορικά με την ανάλυση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture)

Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Υπηρεσιοστρεφής Αρχιτεκτονική SOA (Service Oriented Architecture) Χρήστος Ηλιούδης Πλεονεκτήματα των Υπηρεσιών Ιστού Διαλειτουργικότητα: Η χαλαρή σύζευξή τους οδηγεί στην ανάπτυξη ευέλικτου λογισμικού

Διαβάστε περισσότερα

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΠΡΟΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΜΑΘΗΜΑ: ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ ΜΟΝΤΕΛΑ ΣΥΣΤΗΜΑΤΟΣ Διδάσκων: Γ. Χαραλαμπίδης, Επ. Καθηγητής

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Μεταδεδομένα στο Ψηφιακό περιβάλλον Μεταδεδομένα στο Ψηφιακό περιβάλλον Μονάδα Αριστείας Ανοικτού Λογισμικού - Χαροκόπειο Πανεπιστήμιο Ψηφιακό Τεκμήριο Οτιδήποτε υπάρχει σε ηλεκτρονική μορφή και μπορεί να προσπελαστεί μέσω υπολογιστή Μεταδεδομένα

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων -Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a) Create

Διαβάστε περισσότερα

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων

Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων ..?????? Εργαστήριο ΒΑΣΕΙΣ????????? ΔΕΔΟΜΕΝΩΝ Βάσεων Δεδομένων?? ΙΙ Εισαγωγικό Μάθημα Βασικές Έννοιες - . Γενικά Τρόπος Διεξαγωγής Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 10-2-2017 Η αρχή: Το όραμα του Σημασιολογικού Ιστού Tim Berners-Lee, James Hendler and Ora Lassila, The Semantic

Διαβάστε περισσότερα

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

ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ ΑΝΑΠΑΡΑΣΤΑΣΗ ΓΝΩΣΗΣ ΣΤΟΝ ΠΑΓΚΟΣΜΙΟ ΙΣΤΟ RDF (Resource Description Framework) Ι. Χατζηλυγερούδης Ανεπάρκεια της XML Η XML είναι Μετα-γλώσσα ορισμού σήμανσης για ανταλλαγή δεδομένων και μεταδεδομένων μεταξύ

Διαβάστε περισσότερα

"Αθηνά" - Ερευνητικό Κέντρο Καινοτομίας στις Τεχνολογίες της Πληροφορίας, των Επικοινωνιών και της Γνώσης

Αθηνά - Ερευνητικό Κέντρο Καινοτομίας στις Τεχνολογίες της Πληροφορίας, των Επικοινωνιών και της Γνώσης "Αθηνά" - Ερευνητικό Κέντρο Καινοτομίας στις Τεχνολογίες της Πληροφορίας, των Επικοινωνιών και της Γνώσης ΙΝΣΤΙΤΟΥΤΟ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Προκήρυξη Υποτροφιών To Ινστιτούτο Πληροφοριακών Συστημάτων

Διαβάστε περισσότερα

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

Τεχνολογία Λογισμικού. Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Τεχνολογία Λογισμικού Ενότητα 1: Εισαγωγή στην UML Καθηγητής Εφαρμογών Ηλίας Γουνόπουλος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά) Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative

Διαβάστε περισσότερα

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12

Αρχιτεκτονικές κατανεμημένων συστημάτων. I. Sommerville 2006 Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Κεφ. 12 Αρχιτεκτονικές κατανεμημένων συστημάτων Στόχοι Εξήγηση των πλεονεκτημάτων και των μειονεκτημάτων των αρχιτεκτονικών κατανεμημένων συστημάτων Εξέταση των αρχιτεκτονικών συστημάτων πελάτηδιακομιστή και των

Διαβάστε περισσότερα

Τεχνολογία ανάπτυξης νέων ιστοσελίδων στο Semantic Web.

Τεχνολογία ανάπτυξης νέων ιστοσελίδων στο Semantic Web. Τεχνολογία ανάπτυξης νέων ιστοσελίδων στο Semantic Web. ΒΕΖΕΡΗΣ ΔΗΜΗΤΡΙΟΣ Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Η/Υ Δημοκρίτειο Πανεπιστήμιο Θράκης Λευκίππου 6, 67100 Ξάνθη ΕΛΛΑΔΑ leader@cosmos4u.com,

Διαβάστε περισσότερα

Μοντελοποίηση Πεδίου

Μοντελοποίηση Πεδίου Μοντελοποίηση Πεδίου περιεχόμενα παρουσίασης Εννοιολογικές κλάσεις Συσχετίσεις εννοιολογικών κλάσεων Τύποι ιδιοτήτων Γενίκευση Συχνά σφάλματα μοντελοποίησης πεδίου Εννοιολογικές κλάσεις και κλάσεις λογισμικού

Διαβάστε περισσότερα

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων

Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων Ενότητα 3: Διαχείριση πληροφοριακών πόρων με τη χρήση βάσεων δεδομένων YouTube Ιδρύθηκε το 2005 Στόχος του ήταν να δημιουργήσει μία παγκόσμια κοινότητα Βάση δεδομένων βίντεο Μέσα σε ένα χρόνο από τη δημιουργία

Διαβάστε περισσότερα

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

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ 1 Βάση Δεδομένων: Με το όρο Βάση Δεδομένων εννοούμε ένα σύνολο δεδομένων που είναι οργανωμένο

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 1: Σημασιολογία και Μεταδεδομένα Μ.Στεφανιδάκης 5-2-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Υποστήριξη στη ιαχείριση Γνώσης

Υποστήριξη στη ιαχείριση Γνώσης Υποστήριξη στη ιαχείριση Γνώσης Νίκος Καρακαπιλίδης Industrial Management & Information Systems Lab MEAD, University of Patras, Greece nikos@mech.upatras.gr Βασικές έννοιες ιάρθρωση ενότητας Γνώση και

Διαβάστε περισσότερα

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης)

ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) ΑΣΦΑΛΕΙΑ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΚΟΙΝΩΝΙΑ ΤΗΣ ΠΛΗΡΟΦΟΡΙΑΣ (Μηχανισμοί Ελέγχου Προσπέλασης) Καλλονιάτης Χρήστος Επίκουρος Καθηγητής Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας, Πανεπιστήμιο Αιγαίου http://www.ct.aegean.gr/people/kalloniatis

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Υλοποίηση Ολοκληρωμένου Συστήματος με Λέξεις-Κλειδιά σε Σημασιολογικά

Διαβάστε περισσότερα

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ

Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Υπηρεσίες Ιστού (Web Services) ΜΙΧΑΛΗΣ ΜΑΛΙΑΠΠΗΣ Μάθημα Πρώτο Εισαγωγή στις Υπηρεσίες Ιστού (Web Services) Μοντέλα WS JSON Χρήση (consume) WS μέσω python Πρόσβαση σε WS και άντληση δεδομένων Παραδείγματα

Διαβάστε περισσότερα

Πίνακας Προτεινόμενων Πτυχιακών Εργασιών

Πίνακας Προτεινόμενων Πτυχιακών Εργασιών ΕΝ4.0-Α Έκδοση η / 7..06 ΣΧΟΛΗ: ΣΔΟ ΤΜΗΜΑ: Βιβλιοθηκονομίας και Συστημάτων Πληροφόρησης ΤΟΜΕΑΣ: Τομέας Μαθημάτων Γενικής Παιδείας και Τεχνολογιών Πληροφόρησης Α/Α Τίτλος Θέματος Μέλος Ε.Π. Σύντομη Περιγραφή

Διαβάστε περισσότερα

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ Χειμερινό Εξάμηνο 2013 - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ Δρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ 1 Αρχιτεκτονική

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Τρόπος Διεξαγωγής #1 Ύλη (4 Ενότητες) 1. Ανάλυση Απαιτήσεων - Σχεδιασμός Βάσης Δεδομένων 2. Δημιουργία βάσης a)

Διαβάστε περισσότερα

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Σημασιολογική Συσταδοποίηση Αντικειμένων Με Χρήση Οντολογικών Περιγραφών.

Διαβάστε περισσότερα

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

GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΙΠΛΩΜΑΤΙΚΗ ΕΡΓΑΣΙΑ: GoNToggle: ΕΞΥΠΝΗ ΜΗΧΑΝΗ ΑΝΑΖΗΤΗΣΗΣ ΜΕ ΧΡΗΣΗ ΟΝΤΟΛΟΓΙΩΝ ΣΠΟΥ ΑΣΤΗΣ: Γιαννόπουλος Γεώργιος ΕΠΙΒΛΕΠΩΝ: Καθ. Ι. Βασιλείου ΒΟΗΘΟΙ: Α. ηµητρίου, Θ. αλαµάγκας Γενικά Οι µηχανές αναζήτησης

Διαβάστε περισσότερα

Σχεδίαση Βάσεων Δεδομένων

Σχεδίαση Βάσεων Δεδομένων Οδηγίες Μέρος 1: Απαντήστε κάθε ερώτηση. 1. Ποια είναι τα πλεονεκτήματα που παρέχει το Περιβάλλον Βάσεων Δεδομένων της Oracle για τις επιχειρήσεις; Το σύστημα διαχείρισης βάσεων δεδομένων της Oracle δίνει

Διαβάστε περισσότερα

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων

Διαγράμματα UML στην Ανάλυση. Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων Διαγράμματα UML στην Ανάλυση Μέρος Β Διαγράμματα Κλάσεων Διαγράμματα Αντικειμένων περιεχόμενα παρουσίασης Διαγράμματα κλάσεων Διαγράμματα αντικειμένων διαγράμματα κλάσεων Χρησιμοποιούνται στην ανάλυση

Διαβάστε περισσότερα

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

. Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Μάθημα Βασικές Έννοιες - Ανάλυση Απαιτήσεων .. Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Μάθημα Βασικές Έννοιες - . Ύλη Εργαστηρίου ΒΔ Ύλη - 4 Ενότητες.1 - Σχεδιασμός Βάσης Δεδομένων.2 Δημιουργία Βάσης Δεδομένων Δημιουργία Πινάκων Εισαγωγή/Ανανέωση/Διαγραφή

Διαβάστε περισσότερα

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές

Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Μεταπτυχιακό Δίπλωμα Ειδίκευσης Μηχανική Λογισμικού για Διαδικτυακές & Φορητές Εφαρμογές Δρ. Κακαρόντζας Γεώργιος Επίκουρος Καθηγητής Τμ. Μηχανικών Πληροφορικής Τ.Ε. Μηχανική Λογισμικού για Διαδικτυακές

Διαβάστε περισσότερα

Ανοικτά Δεδομένα. Η εμπειρία του OpenDataCloud

Ανοικτά Δεδομένα. Η εμπειρία του OpenDataCloud Ανοικτά Δεδομένα Προκλήσεις και Ευκαιρίες: Η εμπειρία του OpenDataCloud Κώστας Σαΐδης, PhD Πάροχοι Ανοικτών Δεδομένων datagov.gr diavgeia.gr geodata.gov.gr Πυροσβεστικό σώμα Ελληνική Αστυνομία Υπουργείο

Διαβάστε περισσότερα

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

Περιεχόμενα. Πρόλογος... xiii Περιεχόμενα Πρόλογος... xiii Κεφάλαιο 1 ο Εισαγωγή στις τεχνολογίες Διαδικτύου... 1 1.1 Σύντομη ιστορία του Διαδικτύου... 3 1.2 Σύνδεση στο Διαδίκτυο μέσω Παρόχου (ISP)... 6 1.3 Μοντέλα Επικοινωνίας...

Διαβάστε περισσότερα

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

Γραφικό Περιβάλλον Οπτικής Απεικόνισης Οντολογιών RDF Schema στο Σημασιολογικό Ιστό ΠΑΝΕΠΙΣΤΗΜΙΟ ΜΑΚΕΔΟΝΙΑΣ ΔΙΑΤΜΗΜΑΤΙΚΟ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΤΑ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ (Master in Information Systems) Γραφικό Περιβάλλον Οπτικής Απεικόνισης Οντολογιών RDF Schema στο Σημασιολογικό Ιστό

Διαβάστε περισσότερα

Οι διαθέσιμες μέθοδοι σε γενικές γραμμές είναι:

Οι διαθέσιμες μέθοδοι σε γενικές γραμμές είναι: Χωρική Ανάλυση Ο σκοπός χρήσης των ΣΓΠ δεν είναι μόνο η δημιουργία μίας Β.Δ. για ψηφιακές αναπαραστάσεις των φαινομένων του χώρου, αλλά κυρίως, η βοήθειά του προς την κατεύθυνση της υπόδειξης τρόπων διαχείρισής

Διαβάστε περισσότερα

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

Ενιαία Αναζήτηση σε ψηφιακό πολιτιστικό περιεχόμενο Εθνικό Κέντρο Τεκμηρίωσης Ενιαία Αναζήτηση σε ψηφιακό πολιτιστικό περιεχόμενο Χάρη Γεωργιάδης, Ph.D. Senior Software Engineer EKT hgeorgiadis@ekt.gr Πιστοποίηση, διασφάλιση & ευρεία διάθεση έγκριτου ελληνικού

Διαβάστε περισσότερα

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Εργαστήριο Βάσεων Δεδομένων Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων Βάσεις Δεδομένων - Γενικά Ορισμός: Βάση Δεδομένων (ΒΔ) είναι μια συλλογή από σχετιζόμενα αντικείμενα. Τα περιεχόμενα

Διαβάστε περισσότερα

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

Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Σχολή Επικοινωνίας και Μέσων Ενημέρωσης Πτυχιακή εργασία Ασφάλεια σε χώρους αναψυχής: Ένα σύστημα από έξυπνα αντικείμενα Εύρος Χριστοδούλου Λεμεσός, Μάιος 2018 ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΣΧΟΛΗ ΕΠΙΚΟΙΝΩΝΙΑΣ

Διαβάστε περισσότερα

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση

Διαδικασίες παραγωγής λογισμικού. Βασικές αρχές Τεχνολογίας Λογισμικού, 8η αγγ. έκδοση Διαδικασίες παραγωγής λογισμικού Περιεχόμενα Παρουσίαση μοντέλων διεργασίας ανάπτυξης λογισμικού Περιγραφή τριών γενικών μοντέλων διεργασίας ανάπτυξης λογισμικού Γενική περιγραφή των διαδικασιών που περιλαμβάνονται

Διαβάστε περισσότερα

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

Εργαστήριο Σημασιολογικού Ιστού Εργαστήριο Σημασιολογικού Ιστού Ενότητα 7: Χρήση RDFS και λεξιλογίων RDF Μ.Στεφανιδάκης 27-3-2016. Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα.

Διαβάστε περισσότερα

Διαγράμματα Κλάσεων στη Σχεδίαση

Διαγράμματα Κλάσεων στη Σχεδίαση Διαγράμματα Κλάσεων στη Σχεδίαση περιεχόμενα παρουσίασης Αφηρημένες κλάσεις Ιδιότητες Λειτουργίες Απλοί τύποι Συσχετίσεις Εξάρτηση Διεπαφές αφηρημένες κλάσεις Οι αφηρημένες κλάσεις δεν μπορούν να δημιουργήσουν

Διαβάστε περισσότερα

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο

09 Η γλώσσα UML I. Τεχνολογία Λογισμικού. Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών. Εαρινό εξάμηνο 09 Η γλώσσα UML I Τεχνολογία Λογισμικού Τμήμα Πληροφορικής & Τηλεπικοινωνιών Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών Εαρινό εξάμηνο 2017 18 Δρ. Κώστας Σαΐδης saiko@di.uoa.gr Unified Modeling Language

Διαβάστε περισσότερα

ΜΑΘΗΜΑ 6. Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων. Το RDF Το Warwick Framework. Ιόνιο Πανεπιστήµιο - Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας

ΜΑΘΗΜΑ 6. Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων. Το RDF Το Warwick Framework. Ιόνιο Πανεπιστήµιο - Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας ΜΑΘΗΜΑ 6 195 Σχήµατα ιαλειτουργικότητας Μεταδεδοµένων Το RDF Το Warwick Framework 196 1 Resource Data Framework RDF Τα πολλαπλά και πολλαπλής προέλευσης σχήµατα παραγωγής δηµιουργούν την ανάγκη δηµιουργίας

Διαβάστε περισσότερα

Ενότητα 3: Τα δεδομένα στο Web. (και η σημασιολογία τους semantics )

Ενότητα 3: Τα δεδομένα στο Web. (και η σημασιολογία τους semantics ) Ενότητα 3: Τα δεδομένα στο Web (και η σημασιολογία τους semantics ) Σημασιολογία semantics Τι σημαίνουν τα δεδομένα; Ποια η έννοιά τους; Μετάδοση έννοιας και ενσωμάτωση στη γνώση....έχοντας ως αποτέλεσμα

Διαβάστε περισσότερα

Παρουσίαση Παρεχόμενων Υπηρεσιών Πληροφορικής της DBS AE

Παρουσίαση Παρεχόμενων Υπηρεσιών Πληροφορικής της DBS AE Παρουσίαση Παρεχόμενων Υπηρεσιών Πληροφορικής της DBS AE Βασικές Παρεχόμενες Υπηρεσίες Α. Διαδικασία Μετάπτωσης Δεδομένων Β. Μεθοδολογία Ψηφιοποίησης Εγγράφων Γ. Οργάνωση και Τεκμηρίωση Υλικού Δ. Διαχείριση

Διαβάστε περισσότερα

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια)

Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018. Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) Θέματα Ατομικής Διπλωματικής Εργασίας Ακαδημαϊκό Έτος 2017/2018 Γεωργία Καπιτσάκη (Επίκουρη Καθηγήτρια) ΠΕΡΙΟΧΗ Α: ΕΦΑΡΜΟΓΕΣ ΜΕ ΑΙΣΘΗΤΗΡΕΣ ΓΙΑ ΕΠΙΓΝΩΣΗ ΣΥΓΚΕΙΜΕΝΟΥ Οι αισθητήρες μας δίνουν τη δυνατότητα

Διαβάστε περισσότερα

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΜΑΤΙΚΗΣ Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού Μάρα Νικολαϊδου Δραστηριότητες Διαδικασιών Παραγωγής Λογισµικού Καθορισµός απαιτήσεων και εξαγωγή προδιαγραφών

Διαβάστε περισσότερα

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ της ΥΓΕΙΑΣ» ΑΞΙΟΛΟΓΗΣΗ ΑΠΟΔΟΣΗΣ ΠΡΟΣΩΠΙΚΟΥ: ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ ΙΔΙΩΤΙΚΟΥ ΝΟΣΟΚΟΜΕΙΟΥ ΠΑΡΑΓΙΟΥΔΑΚΗ ΜΑΓΔΑΛΗΝΗ

ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ της ΥΓΕΙΑΣ» ΑΞΙΟΛΟΓΗΣΗ ΑΠΟΔΟΣΗΣ ΠΡΟΣΩΠΙΚΟΥ: ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ ΙΔΙΩΤΙΚΟΥ ΝΟΣΟΚΟΜΕΙΟΥ ΠΑΡΑΓΙΟΥΔΑΚΗ ΜΑΓΔΑΛΗΝΗ ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ ΤΜΗΜΑ ΟΙΚΟΝΟΜΙΚΗΣ ΕΠΙΣΤΗΜΗΣ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ «ΔΙΟΙΚΗΣΗ της ΥΓΕΙΑΣ» ΑΞΙΟΛΟΓΗΣΗ ΑΠΟΔΟΣΗΣ ΠΡΟΣΩΠΙΚΟΥ: ΜΕΛΕΤΗ ΠΕΡΙΠΤΩΣΗΣ ΙΔΙΩΤΙΚΟΥ ΝΟΣΟΚΟΜΕΙΟΥ ΠΑΡΑΓΙΟΥΔΑΚΗ ΜΑΓΔΑΛΗΝΗ Διπλωματική

Διαβάστε περισσότερα

Πτυχιακή Εργασία ηµιουργία Εκπαιδευτικού Παιχνιδιού σε Tablets Καλλιγάς ηµήτρης Παναγιώτης Α.Μ.: 1195 Επιβλέπων καθηγητής: ρ. Συρµακέσης Σπύρος ΑΝΤΙΡΡΙΟ 2015 Ευχαριστίες Σ αυτό το σηµείο θα ήθελα να

Διαβάστε περισσότερα

«Ανάπτυξη μηχανής παραγωγής φυσικής γλώσσας για οντολογίες OWL»

«Ανάπτυξη μηχανής παραγωγής φυσικής γλώσσας για οντολογίες OWL» «Ανάπτυξη μηχανής παραγωγής φυσικής γλώσσας για οντολογίες OWL» Διπλωματική εργασία ΜΠΣ «Επιστήμη Υπολογιστών» Γαλάνης Δημήτριος Επιβλέπων: Ι. Ανδρουτσόπουλος Δεύτερος Αξιολογητής: Π. Κωνσταντόπουλος Παραγωγή

Διαβάστε περισσότερα

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών

Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών ΕΘΝΙΚΟ ΚΑΙ ΚΑΠΟΔΙΣΤΡΙΑΚΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΠΡΟΓΡΑΜΜΑ ΜΕΤΑΠΤΥΧΙΑΚΩΝ ΣΠΟΥΔΩΝ Τεχνολογία Διοίκησης Επιχειρησιακών Διαδικασιών Οδηγός Εργαστηρίου:

Διαβάστε περισσότερα

Περίληψη Λαμπρόπουλος

Περίληψη Λαμπρόπουλος Περίληψη Λαμπρόπουλος 1. Αντικείμενο και Περιγραφή της Διατριβής H διδακτορική διατριβή με τίτλο «Σχεδιασμός και υλοποίηση συστήματος διαχείρισης και ενοποίησης διαφορετικών ταυτοτήτων χρηστών σε δίκτυα

Διαβάστε περισσότερα