Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Dimitrios Goutis

168 views

Published on

Call by Context

Published in: Education
  • Be the first to comment

  • Be the first to like this

Dimitrios Goutis

  1. 1. Call by Context Αυτόματη εξεύρεση διαδικτυακών υπηρεσιών με την αξιοποίηση του Σημασιολογικού Ιστού ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Γούτης Δημήτρης ΑΕΜ: 6912 Υπό την επίβλεψη των Ανδρέα Συμεωνίδη, Επίκουρος καθηγητής Κυριάκο Χατζηδημητρίου, Μεταδιδακτορικός ερευνητής Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Θεσσαλονίκη, Νοέμβριος 2017
  2. 2. ΔΟΜΗ ΠΑΡΟΥΣΙΑΣΗΣ • Ορισμός Προβλήματος • Στόχος Διπλωματικής Εργασίας • Θεωρητικό Υπόβαθρο • Υλοποίηση • Παρουσίαση Παραδειγμάτων • Συμπεράσματα – Μελλοντικές Επεκτάσεις Νοέμβριος 2017, Θεσσαλονίκη 2
  3. 3. 3 ΟΡΙΣΜΟΣ ΠΡΟΒΛΗΜΑΤΟΣ Αναζήτηση Web API Έτοιμη Υλοποίηση Παρόχου Κείμενο Τεκμηρίωσης Έλεγχος Συμβατότητας Μετατροπή Δεδομένων Νοέμβριος 2017, Θεσσαλονίκη
  4. 4. 4 ΣΤΟΧΟΣ ΔΙΠΛΩΜΑΤΙΚΗΣ ΕΡΓΑΣΙΑΣ Call by Context Νοέμβριος 2017, Θεσσαλονίκη
  5. 5. 5 Σημασιολογικός Ιστός ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ The Semantic Web is an extension of the current Web in which information is given well-defined meaning, better enabling computers and people to work in cooperation. ... a web of data that can be processed directly and indirectly by machines. Sir Tim Berners Lee Νοέμβριος 2017, Θεσσαλονίκη
  6. 6. 6 Πλαίσιο Περιγραφής Πόρων - RDF ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ Παράδειγμα γράφου RDF Νοέμβριος 2017, Θεσσαλονίκη
  7. 7. 7 Λεξιλόγια ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ HYDRA schema.org "@id": "http://api.example.com/doc/", " @type":"ApiDocumentation", " title" : "The name of the API", "description": "API description", "entrypoint": "URL of API entry point", "supportedClass": [ Classes supported by the Web API ], "possibleStatus": [ Statuses that should be expected] "@id": "http://ex.com/PlaceOne" "@type": "Place", "geo": { "@type": "GeoCoordinates", "latitude": "40.75", "longitude" : "73.98" }, @type RDF syntax @id JSON-LD Νοέμβριος 2017, Θεσσαλονίκη
  8. 8. 8 ΥΛΟΠΟΙΗΣΗ Περιγραφή δεδομένων: schema.org Περιγραφή παρόχου: HYDRA Τεχνολογίες υλοποίησης Server-side: API-platform - PHP SPARQL backend: Apache Jena/Fuseki Client-side: AngularJS - Javascript Πλαίσιο επικοινωνίας Συντακτικό JSON-LD Νοέμβριος 2017, Θεσσαλονίκη
  9. 9. 9 ΥΛΟΠΟΙΗΣΗ Νοέμβριος 2017, Θεσσαλονίκη Πάροχος Υπηρεσίας HYDRA Annotations Αυτόματη παραγωγή κλάσεων Swagger τεκμηρίωση
  10. 10. 10 ΥΛΟΠΟΙΗΣΗ Νοέμβριος 2017, Θεσσαλονίκη Call by Context
  11. 11. 11 ΥΛΟΠΟΙΗΣΗ Νοέμβριος 2017, Θεσσαλονίκη API Resolver
  12. 12. 12 ΥΛΟΠΟΙΗΣΗ Νοέμβριος 2017, Θεσσαλονίκη Πελάτης Υπηρεσίας Διαχείριση γράφων RDF  Αναζήτησης επιθυμητών υπηρεσιών  Δημιουργίας εσωτερικών αναπαραστάσεων  Επικοινωνίας μέσω του εκάστωτε API Κατανόηση HYDRA όρων Κατανόηση schema.org όρων Αυτοματοποίηση:
  13. 13. 13 Οικονομικές προσφορές αεροπορικών εισιτηρίων: Σημεία ενδιαφέροντος Ξενοδοχεία Νοέμβριος 2017, Θεσσαλονίκη ΠΑΡΑΔΕΙΓΜΑΤΑ ΥΛΟΠΟΙΗΣΗΣ Πράκτορας λογισμικού για ταξιδιωτικές υπηρεσίες Playground Browse APIs Consume APIs Publish APIs  Κειμενογράφος  Διάγραμμα Γράφου  Εποπτικός Πίνακας  Αυτόματη Δημιουργία Κλάσεων Παρουσίαση γράφου υπηρεσίας:  Sabre API  QPX-express API  Sabre API  Amadeus API  Amadeus API
  14. 14. 14Νοέμβριος 2017, Θεσσαλονίκη ΠΑΡΟΥΣΙΑΣΗ ΥΛΟΠΟΙΗΣΗΣ
  15. 15. 15 ΣΥΜΠΕΡΑΣΜΑΤΑ - ΜΕΛΛΟΝΤΙΚΕΣ ΕΠΕΚΤΑΣΕΙΣ Νοέμβριος 2017, Θεσσαλονίκη  Αυτοματοποίηση παραγωγής εσωτερικών αναπαραστάσεων  Ορθότερα μοντέλα δεδομένων  Γενικευμένοι πελάτες υπηρεσιών  Χαμηλή καμπύλη εκμάθησης  Ελαχιστοποίηση κόστους/χρόνου συντήρησης υπηρεσιών Δυνατότητες – Πλεονεκτήματα:  SHACL – Shapes Constraint Language  ConceptNet Μελλοντικές Επεκτάσεις: Βασική προϋπόθεση Μετάβαση στον Σημασιολογικό Ιστό
  16. 16. Ευχαριστώ πολύ για την προσοχή σας! 16Νοέμβριος 2017, Θεσσαλονίκη
  17. 17. 17 ΠΑΡΑΡΤΗΜΑ Νοέμβριος 2017, Θεσσαλονίκη Αναπαράσταση JSON-LD Υποκείμενο – Ιδιότητα – Αντικείμενο IRI / Blank – IRI – IRI / Blank / Value 1 "@context" : { 2 "@vocab" : "http://schema.org/", 3 "xmls" : "http://www.w3.org/2001/XMLSchema#", 4 }, 5 { 6 "@id": "http:0.0.0.0/flight", 7 "@type": "Flight", 8 "arrivalAirport": {"@type": "Airport"}, 9 "departureAirport": {"@type": "Airport"}, 10 "departureTime": {"@type": "xmls:dateTime"}, 11 "arrivalTime": {"@type": "xmls:dateTime"}, 12 "provider": "skyscanner" 13 },
  18. 18. 18 ΠΑΡΑΡΤΗΜΑ Νοέμβριος 2017, Θεσσαλονίκη Υλοποίηση Παρόχου Ι Αυτόματη παραγωγή κλάσεων 1 TouristAttraction: 2 parent: false 3 properties: 4 name: ~ 5 description: ~ 6 url: ~ 7 hasMap: ~ 8 geo: {range: GeoCoordinates} 9 image: ~ schema.yml /* HYDRA Annotations*/ 1 class TouristAttraction 2 { 3 private $id; 4 private $name; 5 private $description; 6 private $url; 7 private $hasMap; 8 private $geo; 9 private $image; 10 } TouristAttraction.php
  19. 19. 19 ΠΑΡΑΡΤΗΜΑ Νοέμβριος 2017, Θεσσαλονίκη Υλοποίηση Παρόχου ΙΙ HYDRA Annotations 1 * @ApiResource( 2 * type="schema:TouristAttraction", 3 * iri="vocab:#TouristAttraction", 4 * collectionOperations={ 5 * "get"={"method"="GET", 6 * "hydra_context"={ 7 * "@type"="schema:SearchAction", 8 * "target"="/tourist_attractions", 9 * "query"={"@type"="vocab:#GeoCoordinates"}, 10 * "result"="vocab:#TouristAttraction", 11 * "object"="vocab:#TouristAttraction" 12 * }}, 13 * "post"={"method"="POST"} 14 * }) class TouristAttraction {
  20. 20. 20 ΠΑΡΑΡΤΗΜΑ Νοέμβριος 2017, Θεσσαλονίκη Υλοποίηση Παρόχου ΙΙΙ
  21. 21. 21 ΠΑΡΑΡΤΗΜΑ Νοέμβριος 2017, Θεσσαλονίκη Υλοποίηση Πελάτη Ι Περιγραφή ζητούμενου API 1 { 2 "@type": "TouristAttraction", 3 "name": "", 4 "description": "", 5 "url": "", 6 "hasMap": "", 7 "image": "", 8 "geo": {"@type": "schema:GeoCoordinates"}, 9 "potentialAction": { 10 "@type": "SearchAction", 11 "object": "schema:TouristAttraction", 12 "result": "schema:TouristAttraction", 13 "target": "schema:TouristAttraction", 14 "query": {"@type": "schema:GeoCoordinates"} 15 } 16 },
  22. 22. 22 ΠΑΡΑΡΤΗΜΑ Νοέμβριος 2017, Θεσσαλονίκη Υλοποίηση Πελάτη ΙΙ 1 var pois = hyBind('TouristAttraction'); 2 pois.label = 'Points of Interest'; 3 pois.geo = destinationGeo; 4 pois.geoLabel = 'POI GeoCoordinates'; 5 6 pois.action('schemaSearch').then(function(){ 7 retrievedPois = pois.members; 8 }); Χρήση παρεχόμενου API Αναζήτηση πόρου
  23. 23. 23 ΠΑΡΑΡΤΗΜΑ Νοέμβριος 2017, Θεσσαλονίκη Λεξιλόγιο HYDRA
  24. 24. 24 ΠΑΡΑΡΤΗΜΑ Νοέμβριος 2017, Θεσσαλονίκη Λεξιλόγιο schema.org

×