Πανεπιστήμιο Πελοποννήσου Σχολή Θετικών Επιστημών και Τεχνολογίας Τμήμα Επιστήμης και Τεχνολογίας Υπολογιστών. Πτυχιακή εργασία

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

Download "Πανεπιστήμιο Πελοποννήσου Σχολή Θετικών Επιστημών και Τεχνολογίας Τμήμα Επιστήμης και Τεχνολογίας Υπολογιστών. Πτυχιακή εργασία"

Transcript

1 Πανεπιστήμιο Πελοποννήσου Σχολή Θετικών Επιστημών και Τεχνολογίας Τμήμα Επιστήμης και Τεχνολογίας Υπολογιστών Πτυχιακή εργασία Σύνδεση προσωπικής οντολογίας και συστήματος Facebook Στράτος Νείρος ΑΜ: Επιβλέπων Καθηγητής Βασιλάκης Κωνσταντίνος 16 Ιανουαρίου 2011

2 Περιεχόμενα 1 Εισαγωγικά θέματα Σύντομη περιγραφή Γενικά για Οντολογίες Γενικά για το Facebook Σύνδεση οντολογιών και Facebook Σχετιζόμενη έρευνα στον τομέα των οντολογιών Profiler χρήστη βασιζόμενος σε οντολογίες Μέθοδοι οπτικοποίησης οντολογιών Δημιουργώντας μία οντολογία για το προφίλ του χρήστη Ontology generator Περιγραφή πτυχιακής Θεωρητικό υπόβαθρο και επισκόπηση της εφαρμογής Τα δεδομένα του Facebook Μια πιο κοντινή ματιά στα αντικείμενα του Facebook Το πρότυπο JSON Αντικείμενα Facebook και πρότυπο JSON Facebook Authentication Βήματα πιστοποίησης Facebook Διαδικασία πιστοποίησης Πως η εφαρμογή χειρίζεται την πιστοποίηση στο Facebook Αντικειμενοστρεφής προγραμματισμός Γενικά Πιο συγκεκριμένα στην Java Συσχέτιση με οντολογίες Εξαγωγή δεδομένων από το Facebook Επιλογή δεδομένων του Facebook και συσχέτισή τους με κλάσεις Java Η βιβλιοθήκη RestFB i

3 2.6 Αναπαράσταση και περιγραφή οντολογιών Γενικά για τη γλώσσα RDF Τριπλέτες Παραγωγή τριπλετών προσωπικής οντολογίας Java Annotations Η βιβλιοθήκη Elmo Χρήση του προγράμματος Εκκίνηση και βασική χρήση Περιπτώσεις αποτελεσμάτων Υλοποίηση Βασική δομή - επιλογές υλοποίησης Τα τμήματα του προγράμματος Το πακέτο personalontology Η κλάση FacebookObject και οι υποκλάσεις της Η κλάση FacebookUser.java Οι υπόλοιπες κλάσεις της προσωπικής οντολογίας Το πακέτο util Η κλάση DataFetcher Η κλάση ElmoHelper Γραφικό περιβάλλον χρήστη (Πακέτο ui) Περιβάλλον δημιουργίας και μεταγλώττισης του κώδικα Απαραίτητες βιβλιοθήκες (Dependencies) Επέκταση της εφαρμογής, ενημέρωση και μελλοντικές προσθήκες Παράρτημα Παράδειγμα οντολογίας και αποτελεσμάτων Πηγαίος Κώδικας util ui personalontology Βιβλιογραφία 169 Γλωσσάρι 170 Ακρωνύμια 172 Παραθέσεις 173 ii

4 Περίληψη Ο σκοπός αυτής της πτυχιακής είναι η δημιουργία λογισμικού που θα παρέχει στον χρήστη μία μέθοδο για αυτόματη εξαγωγή της πληροφορίας που τον ενδιαφέρει από το Facebook και η ενσωμάτωση της σε μία προσωπική οντολογία. Στην οντολογία αυτή θα καταγράφονται τα πράγματα που είναι σημαντικά για τον κάθε χρήστη κατ αντιστοιχία με την υπάρχουσα πληροφορία που έχει ήδη αποθηκεύσει ο χρήστης στο Facebook και με τον τρόπο που το σύστημα Facebook αποθηκεύει τα αντικείμενά του.

5 Κεφάλαιο 1 Εισαγωγικά θέματα 1.1 Σύντομη περιγραφή Το Facebook έχει αναπτυχθεί τα τελευταία χρόνια ως η κυρίαρχη εφαρμογή κοινωνικού ιστού, μέσω της οποίας οι χρήστες προβάλλουν πληροφορίες για τον εαυτό τους, γνωρίζονται, συνομιλούν και ανταλλάσσουν απόψεις κ.λπ. Παράλληλα, με την πρόοδο των συστημάτων διαχείρισης προσωπικής πληροφορίας καθίσταται αναγκαία η ύπαρξη μιας προσωπικής οντολογίας των χρηστών, όπου θα καταγράφονται τα πράγματα που είναι σημαντικά για τον κάθε χρήστη. Είναι ωστόσο εμφανές ότι ένα τμήμα αυτής της οντολογίας υπάρχει ήδη στο Facebook - για παράδειγμα οι «φίλοι» στο Facebook είναι στιγμιότυπα της κλάσης «Πρόσωπο» της οντολογίας, οι «κατηγορίες» μπορούν να δώσουν επιπρόσθετη πληροφορία κατάταξης κ.λπ. Για την αποφυγή διπλοκαταχώρησης της πληροφορίας, το ζητούμενο είναι να υπάρξει η κατάλληλη μέθοδος για αυτόματη εξαγωγή του τμήματος της προσωπικής οντολογίας που υπάρχει στο Facebook και η ενσωμάτωσή του τμήματος αυτού στην προσωπική οντολογία. Το ζητούμενο στην πτυχιακή αυτή είναι η ανάπτυξη του συγκεκριμένου λογισμικού. 1.2 Γενικά για Οντολογίες Στην επιστήμη των υπολογιστών και την πληροφορική, οντολογία ορίζεται ως ένας σαφής, ρητός προσδιορισμός ενός κοινού (με την έννοια του διαμοιραζόμενου) εννοιολογικού συλλογισμού. [2] Πρόκειται για μία αναπαράσταση γνώσης ως ένα σύνολο εννοιών καθώς και των σχέσεων μεταξύ αυτών των εννοιών. Μία οντολογία περιλαμβάνει ένα ελεγχόμενο λεξιλόγιο όρων και τη διευκρίνιση του νοήματος τους, δηλαδή τον ορισμό των 1

6 αντικειμένων και/ή εννοιών καθώς και τις ιδιότητες και τις σχέσεις τους. Οι οντολογίες χρησιμοποιούνται σε διάφορους κλάδους της επιστήμης, όπως στην Τεχνητή Νοημοσύνη, στον Σημασιολογικό Ιστό και στην Βιοϊατρική ως μία μορφή αναπαράστασης γνώσης συγκεκριμένης επιστήμης ή μέρος αυτής. Ο όρος οντολογία έχει τις ρίζες του στην φιλοσοφία. Αναλύοντας την ρίζα του από την Ελληνική γλώσσα, μπορούμε να καταλάβουμε καλύτερα την σημασία του όρου. Πρόκειται για μία σύνθετη λέξη από το Ον και λόγος. Λέγοντας Ον εννοούμε αυτό που πραγματικά υπάρχει ή καθετί που έχει υπόσταση. Στην φιλοσοφία ο όρος αναφέρεται στον λόγο περί του όντος ή στην επιστήμη του όντος, τη φιλοσοφική αναζήτηση που εξετάζει τις αρχές της ύπαρξης και δημιουργίας του Όντος, μελετά την φύση και ουσία των Όντων. Στην επιστήμη των υπολογιστών, η ουσία του όρου είναι ένα μοντέλο για την περιγραφή του κόσμου που αποτελείται από ένα σύνολο τύπων, τις ιδιότητές τους άλλα και τις σχέσεις μεταξύ τους. 1.3 Γενικά για το Facebook Το Facebook είναι μία υπηρεσία και ιστοχώρος κοινωνικής δικτύωσης που ξεκίνησε το Σήμερα αποτελεί την επικρατούσα εφαρμογή κοινωνικού ιστού, έχοντας ξεπεράσει τον κύριο ανταγωνιστή της, το MySpace. Οι χρήστες μπορούν εφόσον εγγραφούν, να δημιουργήσουν ένα προσωπικό προφίλ, να προσθέσουν άλλους χρήστες ως φίλους και να επικοινωνήσουν μέσω μηνυμάτων με αυτούς, συμπεριλαμβανομένων και αυτόματων ειδοποιήσεων όταν ενημερώνουν το προφίλ τους. Η πλατφόρμα του Facebook προσφέρει ένα σύνολο από Διεπαφές Προγραμματισμού Εφαρμογών (API) και εργαλεία που επιτρέπουν στους προγραμματιστές να δημιουργήσουν εφαρμογές οι οποίες επικοινωνούν με τον κοινωνικό γράφο του Facebook που αναπαριστά αντικείμενα (π.χ. άνθρωποι, φωτογραφίες, γεγονότα) καθώς και σχέσεις μεταξύ των αντικειμένων (φιλίες, «likes» και ετικέτες φωτογραφιών). Το κύριο API του Facebook είναι γνωστό ως Graph API. Απο εδώ και πέρα, όταν αναφερόμαστε στο Facebook API θα εννοούμε κατά κύριο λόγο το Graph API. 1.4 Σύνδεση οντολογιών και Facebook Mε την πρόοδο των συστημάτων διαχείρισης προσωπικής πληροφορίας καθίσταται αναγκαία η ύπαρξη μιας προσωπικής οντολογίας των χρη- 2

7 στών, όπου θα καταγράφονται τα πράγματα που είναι σημαντικά για τον κάθε χρήστη. Η κάθε έννοια - οντότητα του εννοιολογικού χώρου του Facebook θα προσδιορίζεται ρητώς στην οντολογία με έναν συγκεκριμένο τύπο (ή αλλιώς κλάση) που με την σειρά του θα έχει ορισμένες ιδιότητες. Όταν στις ιδιότητες ενός τύπου αποθηκεύσουμε συγκεκριμένες τιμές τότε μπορούμε να μιλάμε για ένα στιγμιότυπο του τύπου. Η οντολογία θα πρέπει να περιλαμβάνει όλες τις βασικές πληροφορίες που αφορούν τον χρήστη αποθηκευμένες ως ιδιότητες ενός τύπου αλλά επίσης και τις σχέσεις μεταξύ των διαφόρων τύπων. Για παράδειγμα, βασικές πληροφορίες είναι το όνομα, φύλο κ.λπ. του χρήστη και θα μπορούσαν να αποθηκεύονται ως ιδιότητες του τύπου «Χρήστης» ενώ παράλληλα θα είχαμε την σχέση: ο χρήστης με όνομα Γιάννης «έχει φίλο» τον χρήστη με όνομα Μαρία. Για να μπορέσουν να αποθηκευτούν πλήρως οι πληροφορίες του κάθε χρήστη είναι αναγκαία η χρήση επιπλέον τύπων πέραν του τύπου «Χρήστης» οι οποίοι θα είναι όσον το δυνατόν σύμφωνοι με τα αντικείμενα που χρησιμοποιεί η πλατφόρμα του Facebook. Για παράδειγμα, θα μπορούσε να υπάρχει ο τύπος «Ομάδα» έτσι ώστε να είναι δυνατόν να εκφράσουμε την σχέση, ο «Χρήστης» Γιάννης ανήκει στην «Ομάδα» Ζωγράφοι και στην «Ομάδα» κιθαρίστες. Ως ένα άλλο παράδειγμα, θα μπορούσαμε να έχουμε τον τύπο «Εργασία» έτσι ώστε να μπορούμε να εκφράσουμε τις σχέσεις: ο Γιάννης έχει εργαστεί ως έμπορος βιβλίων το 2004 και εργάζεται ως καθηγητής μέχρι τώρα. Οι διαφορές αυτές θα εκφραστούν μέσω διαφορετικών τιμών στις ιδιότητες του τύπου «Εργασία» για τα δύο διαφορετικά στιγμιότυπα του τύπου. 1.5 Σχετιζόμενη έρευνα στον τομέα των οντολογιών Σε αυτή την ενότητα θα αναφερθούμε σε θέματα σχετικά με το λογισμικό της πτυχιακής, περιλαμβάνοντας εφαρμογές που χρησιμοποιούν οντολογίες και έρευνα πάνω στο ευρύ πεδίο των οντολογιών Profiler χρήστη βασιζόμενος σε οντολογίες Η εφαρμογή του Profiler χρησιμοποιώντας μία οντολογία που αντιστοιχεί στον τομέα (γνώσης) ενός χρήστη, του επιτρέπει να δημιουργήσει την προσωπική του οντολογία διαλέγοντας από έτοιμα πρότυπα, τα οποία μπορεί έπειτα να τα συμπληρώσει και να τα προσαρμόσει στις ανάγκες του. 3

8 Χάρη στα πρότυπα (π.χ. Μαθητής, Αρχιτέκτοντας, Καθηγητής) ο χρήστης θα λάβει μία προσωπική οντολογία που θα αφορά τον χώρο και τον τομέα γνώσης/δραστηριότητάς του και συνεπώς θα περιέχει οικείες προς αυτόν έννοιες. Ο profiler λειτουργεί στα πλαίσια ενός προσωπικού συστήματος διαχείρισης αλληλεπίδρασης, (Personal Interaction Management System PIMS) και είναι υπεύθυνος να παρουσιάσει στον χρήστη έναν απλό και ουσιαστικό τρόπο οπτικοποίησης της οντολογίας σε μία διεπαφή με την οποία θα είναι εξοικειωμένος ο χρήστης και θα μπορεί να συμπληρώσει. Η συμπλήρωση της οντολογίας γίνεται μέσω φορμών μιας διαδικτυακής διεπαφής, η οποία κρύβει την πολυπλοκότητα των οντολογιών από τον χρήστη. Για παράδειγμα όπως μπορούμε να δούμε στο σχήμα 1.1 o χρήστης βλέπει τις σχέσεις που μπορεί να δημιουργήσει στην προσωπική οντολογία μέσω μίας απλής διεπαφής στο διαδίκτυο. Οι σχέσεις εμφανίζονται οργανωμένες ιεραρχικά και όλες μαζί, κάνοντας εύκολο για τον απλό χρήστη να συμπληρώσει την οντολογία κάτι το οποίο δεν ισχύει σε προγράμματα που απευθύνονται σε ειδικούς και σχεδιαστές οντολογιών όπως το Protégé. Σχήμα 1.1: Πιθανές σχέσεις ενός χρήστη όπως εμφανίζονται στην διεπαφή του Profiler. Ο σχεδιαστής της οντολογίας προσδιορίζει διάφορα ontology views μέσω 4

9 των οποίων δημιουργούνται δυναμικά οι φόρμες που χρησιμοποιεί ο χρήστης. Ο σχεδιαστής μπορεί να δημιουργήσει ένα View μέσω ειδικών προγραμμάτων (π.χ. Protégé), και το view αυτό το χρησιμοποιεί ο Profiler για να δημιουργήσει δυναμικά μία φόρμα. Μία τέτοια φόρμα απεικονίζεται στο σχήμα 1.2. Η εφαρμογή είναι γραμμένη σε PHP και HTML σαν εφαρμογή διαδικτύου, ενώ για την ανταλλαγή δεδομένων της οντολογίας χρησιμοποιείται XML. Σχήμα 1.2: Φόρμα δημιουργημένη δυναμικά μέσω ενός View Στο σύστημα θα υπάρχει μία βάση αποθήκευσης οντολογιών, στην οποία θα αποθηκεύονται επίσης τα διάφορα πρότυπα, δημιουργημένα από τους ειδικούς. Εφαρμογές που χρησιμοποιούν προσωπικές οντολογίες θα μπορούν να λάβουν την οντολογία μέσω ενός εξυπηρέτη (server) ο οποίος συνδέεται με την βάση αποθήκευσης των οντολογιών. Τέλος ο χρήστης θα μπορεί να έχει πρόσβαση στην προσωπική του οντολογία και να την τροποποιήσει, χρησιμοποιώντας τον Profiler. Η συνολική αρχιτεκτονική του συστήματος στο οποίο λειτουργεί ο Profiler φαίνεται στο σχήμα 1.3. Η συγκεκριμένη έρευνα και η εφαρμογή περιγράφονται στο άρθρο [4] Μέθοδοι οπτικοποίησης οντολογιών Η κάθε μέθοδος οπτικοποίησης έχει πλεονεκτήματα και μειονεκτήματα. Δεν υπάρχει κάποια η οποία να είναι γενικά καλύτερη και επικρατέστερη επομένως το καλύτερο που μπορούμε να κάνουμε είναι να διαλέξουμε ποια ταιριάζει καλύτερα στις ανάγκες μας. Στο άρθρο [3] γίνεται μία επισκόπηση 5

10 Σχήμα 1.3: Συνολική αρχιτεκτονική συστήματος που λειτουργεί ο Profiler των διαφόρων τεχνικών οπτικοποίησης οντολογιών καθώς επίσης και κατηγοριοποίησης των χαρακτηριστικών τους. Για παράδειγμα, στο σχήμα 1.4 βλέπουμε οπτικοποίηση μίας οντολογίας με το IsaViz, το οποίο αναπαριστά την οντολογία με τη μορφή γράφου, χρησιμοποιώντας ελλείψεις για τους τύπους της οντολογίας, ορθογώνια για τις τιμές των ιδιοτήτων, τα οποία ενώνονται με βέλη φανερώνοντας τις σχέσεις που δημιουργούνται μεταξύ των οντοτήτων. Σχήμα 1.4: Οπτικοποίηση μέσω του IsaViz 6

11 1.5.3 Δημιουργώντας μία οντολογία για το προφίλ του χρήστη Στο άρθρο [1] γίνεται μία προσπάθεια δημιουργίας μίας οντολογίας που χρησιμοποιεί έννοιες και ιδιότητες για να μοντελοποιήσει το προφίλ ενός χρήστη. Η έρευνα λαμβάνει υπόψιν διάφορες άλλες εφαρμογές και οντολογίες σχετικές με το αντικείμενο στην προσπάθεια να δημιουργήσει ένα γενικό, κατανοητό και επεκτάσιμο μοντέλο Ontology generator Πρόκειται για μία διαδικτυακή εφαρμογή στην διεύθυνση hu/tools/og/ η οποία δέχεται ως είσοδο μία οντολογία με την μορφή ενός RDF αρχείου και μπορεί έπειτα να παράγει το σχήμα της οντολογίας (RDFS) ή ένα αρχείο OWL, το οποίο περιέχει την οντολογία μαζί με το σχήμα της. Δεν δίνεται πολύ πληροφορία αναφορικά με την λειτουργία της εφαρμογής ή του κώδικα. Στο σχήμα 1.5 βλέπουμε την γραφική διεπαφή του προγράμματος. Σχήμα 1.5: ontology generator 7

12 Κεφάλαιο 2 Περιγραφή πτυχιακής Η πληροφορίες του αποθηκεύονται στο Facebook για κάθε χρήστη και οι σχέσεις μεταξύ τους, μπορούν άμεσα να αντιστοιχιστούν και να αναπαρασταθούν από μία οντολογία. Αυτή η προσωπική πλέον οντολογία, εφόσον έχει ως κέντρο τον συγκεκριμένο χρήστη, πρέπει να μπορεί εξαχθεί αυτόματα και μάλιστα επιλεκτικά δηλαδή σε συγκεκριμένα τμήματα. Ο σκοπός αυτής της πτυχιακής είναι η δημιουργία του λογισμικού που θα παρέχει αυτή την αυτόματη μέθοδο εξαγωγής του τμήματος της προσωπικής οντολογίας από το Facebook. 2.1 Θεωρητικό υπόβαθρο και επισκόπηση της εφαρμογής Η γενική ιδέα της εφαρμογής είναι ότι: Είναι φτιαγμένη έτσι ώστε να αντιστοιχίζεται με τον τρόπο που το σύστημα Facebook οργανώνει τα δεδομένα του. Πιστοποιεί την ταυτότητά της στο σύστημα του Facebook εφόσον το τελευταίο έχει ειδικά μέτρα πιστοποίησης που βοηθούν στην ασφάλειά του. Συνδέεται με το Facebook και κάνει εξαγωγή των δεδομένων του χρήστη. Δημιουργεί και αναπαριστά την προσωπική οντολογία του χρήστη με χρήση κλάσεων και αντικειμένων του αντικειμενοστρεφούς προγραμματισμού, εκμεταλλευόμενη τις εγγενείς ομοιότητες τους με τις οντολογίες. 8

13 Όσον αφορά τις διαφορές τους, κάνει χρήση επιπλέον τεχνικών που επιτρέπουν στην γεφύρωση αυτών. Αποθηκεύει την οντολογία και την εξάγει σε μορφή αναγνώσιμη από μηχανές (RDF-XML), έτσι ώστε να μπορεί πλέον να χρησιμοποιηθεί σε μία πλειάδα άλλων εφαρμογών Για την επίτευξη του στόχου, η εφαρμογή κάνει συνδυασμό διαφορετικών τομέων (τεχνικών, βιβλιοθηκών και γνώσεων). Στη συνέχεια θα αναφερθούμε σε κάθε τομέα ξεχωριστά ώστε να καταστεί πιο κατανοητό το τελικό σύνολο. 2.2 Τα δεδομένα του Facebook Στο σύστημα Facebook βρίσκονται αποθηκευμένες πληροφορίες για ανθρώπους και για τις σχέσεις μεταξύ τους. Ο τρόπος αναπαράστασης και παρουσίασης αυτών των πληροφοριών και σχέσεων αποτελεί τον πυρήνα του συστήματος. Τα δεδομένα αυτά είναι κατηγοριοποιημένα σε συγκεκριμένους τύπους όπου μπορούμε να δούμε μέσω του Graph API. Ο κάθε τύπος αποτελεί ένα αντικείμενο του Facebook, όπως για παράδειγμα το αντικείμενο User που αποθηκεύει πληροφορίες για τον κάθε χρήστη του Facebook και το αντικείμενο Group που αποθηκεύει πληροφορίες για τις διάφορες ομάδες στις οποίες μπορεί να ανήκουν οι άνθρωποι. Υπάρχουν αρκετά αντικείμενα για να αποθηκεύσουν κάθε είδος πληροφορίας που είναι απαραίτητο για την λειτουργία του Facebook, ακόμη και αν δεν έχει άμεση σχέση με ανθρώπους ή τις μεταξύ τους σχέσεις. Για παράδειγμα το αντικείμενο Application αναπαριστά τις εφαρμογές που είναι καταχωρημένες στο Facebook. Η πλήρης λίστα των αντικειμένων με αλφαβητική σειρά έχει ως εξής: Album, Application, Checkin, Comment, Domain, Event, FriendList, Group, Insights, Link, Message, Note, Page, Photo, Post, Review, Status message, Subscription, Thread, User και Video. Ο κύριος στόχος μας αποτελεί το αντικείμενο User γιατί αναπαριστά όλες τις πληροφορίες που μας ενδιαφέρουν για τους σκοπούς της προσωπικής οντολογίας ενός χρήστη, αλλά επίσης στοχεύουμε και σε όποιο άλλο αντικείμενο βοηθάει άμεσα στην αναπαράσταση πληροφοριών που μπορεί να είναι χρήσιμα για τους ίδιους σκοπούς. Για παράδειγμα είναι προφανές ότι αν θέλουμε να βρούμε όλα τα βίντεο ενός χρήστη θα χρειαστούμε και το αντικείμενο Video. Το σύνολο του αντικειμένου User μαζί με των υπόλοιπων βοηθητικών αντικειμένων αποτελεί την προσωπική οντολογία που θα αναπαραστήσει η εφαρμογή. Τα 9

14 υπόλοιπα αντικείμενα του Facebook εκτός αυτού συνόλου και η σύνδεσή τους με οντολογίες δεν αποτελεί μέρος αυτής της πτυχιακής Μια πιο κοντινή ματιά στα αντικείμενα του Facebook Τα αντικείμενα του Facebook έχουν πεδία και μπορεί να έχουν συνδέσεις. Στα πεδία αποθηκεύονται βασικές πληροφορίες για τις ιδιότητες του αντικειμένου. Για παράδειγμα το αντικείμενο User έχει πεδία για το όνομα, επώνυμο και φύλο του χρήστη (first_name, last_name και gender αντιστοίχως). Τα πεδία μπορούν να δέχονται απλές τιμές όπως συμβολοσειρές, αριθμούς και τιμές αλήθειας (string, number και boolean αντιστοίχως) αλλά μπορούν να αποθηκεύουν και πολυπλοκότερες τιμές όπως νέα, μικρότερα αντικείμενα αλλά και πίνακες (arrays) που μπορεί να περιέχουν οποιοδήποτε συνδυασμό από τις προαναφερθείσες τιμές, απλές και μη. Μία ημερομηνία αποθηκεύεται ως ένα string με συγκεκριμένη μορφή (Μήνας/Μέρα/Έτος) όπως για παράδειγμα στο πεδίο birthday του αντικειμένου User. Τα νέα, μικρότερα αντικείμενα που αναφέρθηκαν, πρόκειται για ανώνυμα αντικείμενα. Αυτά τα αντικείμενα δεν αναφέρονται στο Graph API όπως τα υπόλοιπα (User, Album κ.λπ.), μπορεί να έχουν οποιαδήποτε πεδία και γενικότερα αλλάζουν ανάλογα με την περίπτωση. Ένα παράδειγμα ενός τέτοιου ανώνυμου αντικειμένου, αποθηκεύεται στο πεδίο hometown του αντικειμένου User και περιέχει δύο μονάχα πεδία (id και name). Ως ένα ακόμα παράδειγμα, στο πεδίο favorite_athletes του αντικειμένου User αποθηκεύεται ένας πίνακας από ανώνυμα αντικείμενα με τα ίδια δύο πεδία (id και name). Στην πρώτη περίπτωση το ανώνυμο αντικείμενο αναπαριστά την γενέτειρα του χρήστη, ενώ στη δεύτερη περίπτωση ο πίνακας με τα ανώνυμα αντικείμενα αναπαριστά τους αγαπημένους αθλητές του χρήστη και το κάθε ανώνυμο αντικείμενο του πίνακα αναπαριστά έναν αθλητή. Αυτή η ευελιξία στα αντικείμενα οφείλεται στον τρόπο με τον οποίο το σύστημα Facebook ανταλλάσσει δεδομένα, δηλαδή με το πρότυπο JavaScript Object Notation (JSON) Το πρότυπο JSON Το πρότυπο JSON αποτελεί μία τυποποίηση για τη διευκόλυνση της ανταλλαγής δεδομένων. Οι αναπαραστάσεις δεδομένων βάσει του JSON είναι εύκολο να διαβαστούν (ακόμη και να γραφούν) από ανθρώπους, ενώ είναι επίσης εύκολο να διαβαστούν και να γραφούν από υπολογιστές. Η αναπαράσταση βάσει JSON είναι ανεξάρτητη γλώσσας προγραμματισμού. Οι βασικοί τύποι του JSON είναι: 10

15 Συμβολοσειρά (String) Μορφή Unicode Αριθμός (Number) Μορφή κινητής υποδιαστολής διπλής ακρίβειας Τιμή αλήθειας (Boolean) true ή false Αντικείμενο (Object) Μία συλλογή από ζευγάρια «κλειδί:τιμή». Τα ζεύγη περικλείονται σε άγκιστρα { } και χωρίζονται με κόμμα μεταξύ τους. null Πίνακας (Array) Μία διατεταγμένη σειρά τιμών. Οι τιμές των πινάκων περικλείονται σε αγκύλες [ ] και χωρίζονται με κόμμα. Οι τιμές ενός πίνακα δεν είναι απαραίτητο να είναι όλες του ίδιου τύπου: ένας πίνακας μπορεί να περιέχει τιμές διαφορετικών τύπων, ενώ είναι επίσης δυνατό κάποια τιμή να είναι με τη σειρά της πίνακας. Παράθεση 2.1: JSON αναπαράσταση ενός προσώπου 1 { 2 "firstname": "Nikos", 3 "lastname": "Papadopoulos", 4 "age": 32, 5 "gender": "male", 6 "address": 7 { 8 "country": "Greece", 9 "city": "Athens", 10 "postalcode": "14342" 11 }, 12 "phonenumber": 13 [ 14 { 15 "type": "home", 16 "number": " " 17 }, 18 { 19 "type": "mobile", 20 "number": " " 21 } 22 ] 23 } Για να καταλάβουμε καλύτερα πως τα διάφορα αντικείμενα αναπαριστώνται με το πρότυπο JSON, μπορούμε να δούμε την Παράθεση 2.1, όπου έχουμε αναπαράσταση βάσει JSON ενός αντικειμένου που περιγράφει ένα πρόσωπο. Το αντικείμενο Πρόσωπο (Person) περικλείεται στα άγκιστρα στις γραμμές 1 και 23. Αυτό που πρέπει να προσέξουμε εδώ είναι ότι δεν αναφέρεται πουθενά ότι αυτό το αντικείμενο λέγεται Person ή αναπαριστά ένα πρόσωπο. Για να το καταλάβουμε αυτό θα πρέπει να κοιτάξουμε 11

16 τα περιεχόμενά του ή να το ξέρουμε εκ των προτέρων. Αυτό δίνει μία ευελιξία στην ανταλλαγή δεδομένων με το πρότυπο JSON καθώς επικεντρωνόμαστε στα περιεχόμενα του αντικειμένου (δηλαδή την πληροφορία) και δεν περιοριζόμαστε σε συγκεκριμένους τύπους, ούτε και αναγκαζόμαστε να στείλουμε επιπλέον πληροφορία για το όνομα του τύπου. Από εκεί και πέρα είναι καθήκον του κάθε προγραμματιστή να χειριστεί και να ερμηνεύσει τα δεδομένα. Συνεχίζοντας, μπορούμε να δούμε ότι το αντικείμενο Πρόσωπο περιλαμβάνει ζευγάρια «κλειδί:τιμή» όπως firstname: Nikos και age:32 με τύπο τιμών, Συμβολοσειρά και Αριθμό αντιστοίχως. Πιο κάτω έχουμε το κλειδί address το οποίο ως τύπο έχει ένα νέο αντικείμενο, το οποίο περιγράφεται από τα κλειδιά country, city και postalcode με τις αντίστοιχες τιμές τους. Τέλος το κλειδί phonenumber είναι τύπου Πίνακας. Αυτός ο πίνακας μπορούμε να δούμε ότι περιέχει δύο αντικείμενα με κλειδιά type και number. Όπως αναφέραμε προηγουμένως, παρατηρούμε ότι γενικότερα η αναπαράσταση των αντικειμένων ακολουθεί μια σχετική ανωνυμία, αν εξαιρέσουμε το κλειδί. Σε αυτή την περίπτωση είναι ξεκάθαρο ότι το αντικείμενο αναπαριστά αριθμούς τηλεφώνου εφόσον μπορούμε να δούμε τις τιμές του κλειδιού type για τηλέφωνο σπιτιού και κινητού (home και mobile αντίστοιχα) ενώ το κλειδί number αποθηκεύει τους αριθμούς με μορφή που προτρέπει σε αριθμό τηλεφώνου. Παρόλα αυτά, θα υπάρξουν φορές που τα πράγματα δεν θα είναι τόσο ξεκάθαρα όπως θα δούμε αμέσως παρακάτω Αντικείμενα Facebook και πρότυπο JSON Εφόσον πλέον έχουμε μία καλύτερη εικόνα για τον τρόπο αποθήκευσης των δεδομένων, μπορούμε να επιστρέψουμε στο παράδειγμα του Facebook. Εξετάζαμε την περίπτωση των πεδίων hometown και favorite_athletes του αντικειμένου User. Όπως μπορούμε να δούμε στην Παράθεση 2.2 τα αντικείμενα που αποθηκεύονται τα δεδομένα για τη γενέτειρα του χρήστη και για έναν αγαπημένο αθλητή είναι ίδια, με την έννοια ότι περιγράφονται και τα δύο από id και name. Πώς μπορούμε να ξέρουμε ότι τα δεδομένα που λαμβάνουμε αναπαριστούν όντως την γενέτειρα του χρήστη; Η απάντηση είναι ότι δεν μπορούμε. Αν για κάποιο λόγο κάποιος από τους ιδιοκτήτες του Facebook άλλαζε το id της γενέτειράς μας με το id ενός αγαπημένου αθλητή μας τότε θα μπορούσαμε να λάβουμε δεδομένα ότι ο χρήστης έχει γενέτειρα Mike Zambidis και ότι ένας από τους αγαπημένους του αθλητές είναι Athens, Greece. Προφανώς το Facebook έχει σχεδιαστεί κατάλληλα έτσι ώστε να μην είναι δυνατόν να εισάγουμε δεδομένα που δεν βγάζουν 12

17 νόημα. Όταν κατά την δημιουργία του προφίλ μας στο Facebook μας ζητηθεί να εισάγουμε την γενέτειρά μας, τότε οι επιτρεπόμενες τιμές θα είναι μονάχα υπάρχουσες πόλεις/χώρες που είναι ήδη αποθηκευμένες στην βάση δεδομένων του Facebook. Αν εμείς δοκιμάσουμε να εισάγουμε το όνομα ενός αθλητή θα δούμε ότι αυτό δεν είναι δυνατό, οι έλεγχοι αυτής της μορφής γίνονται ωστόσο σε επίπεδο λογικής της εφαρμογής και όχι σε επίπεδο αναπαράστασης βάσει JSON. Συμπερασματικά από την πλευρά ενός προγραμματιστή, χρειάζεται ιδιαίτερη προσοχή όταν λαμβάνουμε δεδομένα από το Facebook καθώς υπάρχουν πολλά αντικείμενα που μοιάζουν μεταξύ τους, έχουν δηλαδή τα ίδια κλειδιά (π.χ. id και name) και αντιστοιχούν σε διαφορετικές οντότητες του πραγματικού κόσμου. Ένα τέτοιο αντικείμενο μπορεί να αποθηκεύει πληροφορίες για μία χώρα, για έναν αθλητή, για μία ταινία, για ένα μουσικό είδος κ.λπ. Κάτι το οποίο μπορεί να βοηθήσει είναι το κλειδί του αντικειμένου κάτι που όμως δεν είναι σίγουρο ότι θα υπάρχει ιδιαίτερα όταν δοκιμάσουμε να λάβουμε πληροφορία για ένα συγκεκριμένο κομμάτι ενός αντικειμένου (π.χ. μόνο το hometown του User) και όπου θα καταλήξουμε με ένα γενικό και «ανώνυμο» αντικείμενο {id, name}. Η σωστή χρήση και ερμηνεία των δεδομένων του Facebook είναι ευθύνη του προγραμματιστή. Παράθεση 2.2: Τμήμα JSON αναπαράστασης ενός Facebook User 1 { 2 "first_name": "Nikos", 3 "last_name": "Papadopoulos", 4 "hometown": 5 { 6 "id": " ", 7 "name": "Athens, Greece" 8 }, 9 "favorite_athletes": 10 [ 11 { 12 "id": " ", 13 "name": "Mimis Domazos" 14 }, 15 { 16 "id": " ", 17 "name": "Mike Zampidis" 18 } ] } 13

18 2.3 Facebook Authentication Για την προστασία των δεδομένων και του συστήματος, το Facebook έχει δημιουργήσει ένα πολύ καλό σύστημα ασφαλείας, που περιλαμβάνει τον έλεγχο πρόσβασης σε δεδομένα του χρήστη τόσο από άλλους χρήστες όσο και από εφαρμογές. Η γενική ιδέα είναι ότι τα δεδομένα ενός χρήστη δεν μπορούν να χρησιμοποιηθούν από εφαρμογές εάν ο ίδιος δεν δώσει την έγκρισή του. Κατ αρχήν γίνεται πιστοποίηση του χρήστη όταν αυτός κάνει είσοδο στο σύστημα χρησιμοποιώντας το του και τον κωδικό του. Την πρώτη φορά που ο χρήστης θέλει να χρησιμοποιήσει μία εφαρμογή, τότε του εμφανίζεται μία οθόνη προτροπής με το όνομα της εφαρμογής καθώς και μία λίστα των δικαιωμάτων που ζητά η συγκεκριμένη εφαρμογή για να λειτουργήσει. Ο χρήστης είναι ελεύθερος παραχωρήσει στην εφαρμογή τα δικαιώματα που αυτή ζητά ή όχι, επιλέγοντας «Allow» και «Don t allow». Απο την στιγμή που ο χρήστης συμφωνεί με την οθόνη προτροπής και δώσει δικαίωμα στην εφαρμογή να χρησιμοποιήσει τα δεδομένα του, τότε λέμε ότι ο χρήστης εξουσιοδοτεί την εφαρμογή. Μια εφαρμογή πρέπει επίσης να πιστοποιηθεί από το ίδιο το σύστημα. Αυτό γίνεται όταν ένας προγραμματιστής δημιουργεί την εφαρμογή του στο σύστημα του Facebook μέσω της σελίδας https://developers.facebook.com/apps και του δίνεται ένα μυστικό κλειδί (app secret). Χρησιμοποιώντας αυτό το κλειδί το σύστημα του Facebook ξέρει ποια εφαρμογή θα τρέξει και μπορεί να ρωτήσει και τον χρήστη για πιστοποίηση χρησιμοποιώντας την οθόνη προτροπής. Όπως βλέπουμε για να τρέξει μία εφαρμογή για έναν χρήστη, πρέπει να γίνουν κάποια βήματα πιστοποίησης και εξουσιοδότησης. Την όλη διαδικασία την αναφέρουμε γενικά ώς πιστοποίηση Facebook ή Facebook authentication. Τέλος, η διαδικασία πιστοποίησης μπορεί να γίνει από πλευράς εξυπηρέτη (server-side) ή από πλευράς πελάτη (client-side) Βήματα πιστοποίησης Facebook Πιστοποίηση χρήστη (user authentication): βεβαιώνει το σύστημα ότι ο χρήστης είναι όντως αυτός που λέει ότι είναι και συμβαίνει την στιγμή που ο χρήστης κάνει είσοδο στο σύστημα με το και τον κωδικό του. Εξουσιοδότηση εφαρμογής (app authorization): βεβαιώνει ότι ο χρήστης ξέρει τι είδους δικαιώματα και σε ποια δεδομένα δίνει πρόσβαση στην εφαρμογή. Αυτό γίνεται προτρέποντας τον χρήστη με τις επι- 14

19 λογές «Allow» και «Don t allow» κατά την πρώτη φορά χρήσης της εφαρμογής. Πιστοποίηση εφαρμογής (app authentication): βεβαιώνει ότι ο χρήστης παραχωρεί τα δεδομένα του όντως στην εφαρμογή και όχι σε κάποιον τρίτο. Ο προγραμματιστής πρέπει να κάνει χρήση του μυστικού κλειδιού του (app secret). Μόλις ολοκληρωθούν με επιτυχία όλα τα βήματα, τότε και μόνο τότε, δίνεται στον προγραμματιστή ένα διακριτικό πρόσβασης χρήστη ή user access token. Χρησιμοποιώντας το διακριτικό αυτό, η εφαρμογή του προγραμματιστή μπορεί να έχει πρόσβαση στα δεδομένα του χρήστη και να εκτελεί πράξεις αναλόγως με τα δικαιώματα που έχει λάβει (π.χ. να στείλει ένα mail στον χρήστη). Το διακριτικό πρόσβασης αναφέρεται στο Facebook API με διάφορα ονόματα όπως user access token, access token, authentication token, auth token και token. Από εδώ και στο εξής, για αποφυγή σύγχυσης, θα κάνουμε αναφορά σε αυτό ως token Διαδικασία πιστοποίησης Όταν χρειαστεί να κάνουμε κλήσεις στο Graph API από τον εξυπηρέτη όπου εκτελείται η εφαρμογή μας, δηλαδή όταν η εφαρμογή τρέξει κατευθείαν σε έναν εξυπηρέτη τότε εκτελείται διαδικασία πιστοποίησης πλευράς εξυπηρέτη γνωστή και ως server-side flow. Η εφαρμογή που έχει δημιουργηθεί στα πλαίσια αυτής της πτυχιακής, τρέχει τοπικά (στον υπολογιστή του χρήστη) και όχι σε κάποιον εξυπηρέτη και κάνει χρήστη πιστοποίησης πλευράς πελάτη γνωστή και ως client-side flow. Τα δεδομένα που έχει αρχικά ο προγραμματιστής στην διάθεσή του είναι, το id της εφαρμογής του (app id) και το μυστικό κλειδί της (app secret) που του δίνονται όταν δημιουργεί την εφαρμογή μέσω της σελίδας https://developers.facebook. com/apps. Πιστοποίηση από πλευρά εξυπηρέτη Αρχικά ζητείται από τον χρήστη να κάνει είσοδο στο σύστημα και αμέσως μετά εμφανίζεται η οθόνη προτροπής για να δοθούν δικαιώματα στην εφαρμογή. Για να γίνει αυτό η εφαρμογή πρέπει να χρησιμοποιήσει το Graph API μέσω της εξής διεύθυνσης: https://www.facebook.com/dialog/oauth? client_id=your_app_id&redirect_uri=your_url 15

20 Εκτός από τον κωδικό της εφαρμογής (YOUR_APP_ID) χρειαζόμαστε και μία διεύθυνση ανακατεύθυνσης (YOUR_URL) στην οποία θα μεταφερθούμε μετά την οθόνη προτροπής, η οποία είναι ουσιαστικά μία διεύθυνση του εξυπηρέτη στον οποίο τρέχει η εφαρμογή μας, και αντιστοιχεί στη σελίδα που θα εμφανιστεί αφού ο χρήστης δώσει τη σχετική εξουσιοδότηση. Μπορούμε, προαιρετικά, να ζητήσουμε επιπλέον δικαιώματα με χρήση του scope (βλ. παράδειγμα στη συνέχεια). Αν δεν χρησιμοποιήσουμε το scope τότε από προεπιλογή ζητάμε δικαιώματα για τα πολύ βασικά δεδομένα του χρήστη (π.χ. όνομα, επώνυμο κ.λπ.). Στο παράδειγμα που ακολουθεί ζητάμε επιπλέον δικαιώματα για να διαβάσουμε την ροή με τις αναρτήσεις του χρήστη και για το του: https://www.facebook.com/dialog/oauth? client_id=your_app_id&redirect_uri=your_url &scope= ,read_stream Παρατηρούμε ότι εδώ τα βήματα της 1) πιστοποίησης χρήστη και 2) εξουσιοδότησης της εφαρμογής γίνονται μαζί. Αν ο χρήστης επιλέξει «Allow» στην οθόνη προτροπής τότε θα μας επιστραφεί ένας κωδικός εξουσιοδότησης (AUTHORIZATION_CODE) Με την χρήση αυτού του κωδικού μπορούμε να πάμε στο τελευταίο βήμα της 3) πιστοποίησης της εφαρμογής. Για να γίνει αυτό πρέπει να χρησιμοποιήσουμε όλα τα δεδομένα που είχαμε πριν μαζί με τον μυστικό κωδικό της εφαρμογής (YOUR_APP_SECRET) και τον κωδικό εξουσιοδότησης (AUTHORIZATION_CODE). https://graph.facebook.com/oauth/access_token? client_id=your_app_id&redirect_uri=your_url& client_secret=your_app_secret&code=authorization_code Αν εκτελεστούν αυτά τα βήματα επιτυχώς τότε θα μας επιστραφεί τελικά το token. Το τελευταίο μπορούμε να το χρησιμοποιήσουμε είτε αποθηκεύοντας το μέσα στον εξυπηρετητή και κατ επέκταση στην εφαρμογή μας στην περίπτωση που ασχολούμαστε μονάχα με έναν χρήστη. Σε διαφορετική περίπτωση θα πρέπει να ζητήσουμε από τον χρήστη που θέλει να χρησιμοποιήσει την εφαρμογή μας στον εξυπηρετητή να μας δώσει ένα token το οποίο έχει αποκτήσει ο ίδιος ακολουθώντας την παραπάνω διαδικασία. Το κάθε token έχει ένα ορισμένο χρόνο ζωής. Αν αυτό λήξει τότε θα πρέπει να ζητήσουμε ένα νέο token. Αν θέλουμε ένα token που να κρατάει για πάντα 16

21 τότε μπορούμε να ζητήσουμε ως το επιπλέον δικαίωμα «offline_access» στο scope. Θα πρέπει να αναφέρουμε ότι πρόσφατα το Facebook έκανε πιο φιλική προς τον χρήστη την απόκτηση ενός token. Χρησιμοποιώντας την εφαρμογή Graph API Explorer (http://developers.facebook.com/ tools/explorer) κάποιος χρήστης μπορεί εύκολα να λάβει ένα προσωπικό token με ότι δικαιώματα επιθυμεί πατώντας το κουμπί «get Access Token». Η διαδικασία από πλευράς εξυπηρέτη, αναφέρεται κυρίως για την περίπτωση μελλοντικής επέκτασης της εφαρμογής, ιδιαίτερα για την μετατροπή της από τοπική εφαρμογή σε εφαρμογή που τρέχει πάνω σε έναν εξυπηρέτη. Πιστοποίηση από πλευρά πελάτη Αρχικά κάνουμε κλήση στο Graph API μέσω της διεύθυνσης: https://www.facebook.com/dialog/oauth? client_id=your_app_id&redirect_uri=your_url &response_type=token Παρομοίως μπορούμε να ζητήσουμε επιπλέον δικαιώματα μέσω του scope: https://www.facebook.com/dialog/oauth? client_id=your_app_id&redirect_uri=your_url &scope= ,read_stream &response_type=token Η μόνη διαφορά με την περίπτωση του εξυπηρετητή είναι ότι προσθέτουμε επιπλέον τη συμβολοσειρά «&response_type=token» στο τέλος της αίτησης. Τα token δημιουργούνται με αυτό τον τρόπο διαφέρουν εφόσον ο χρήστης μπορεί να τα χρησιμοποιήσει ως μέρος μίας διεύθυνσης για να κάνει απευθείας κλησεις στο Facebook API κάτι που διευκολύνει τις εφαρμογές που τρέχουν τοπικά. Για παράδειγμα μπορούμε να δούμε τα βασικά προσωπικά μας στοιχεία στο Facebook χρησιμοποιώντας την διεύθυνση Για να λειτουργήσει κάτι τέτοιο θα πρέπει να προσθέσουμε στην διεύθυνση &access_token= με το token μας και να χρησιμοποιήσουμε πρωτόκολλο ασφαλείας https δηλαδή: https://graph.facebook.com/me&access_token=token 17

22 2.3.3 Πως η εφαρμογή χειρίζεται την πιστοποίηση στο Facebook Για να γίνει η πιστοποίηση μέσω του γραφικού περιβάλλοντος της εφαρμογής θα έπρεπε να δημιουργήσουμε έναν μίνι browser είτε να ανοίξουμε έναν browser μέσα στην εφαρμογή καθώς θα έπρεπε να κάνουμε τις κλήσεις στην πλατφόρμα του Facebook που περιγράψαμε παραπάνω για να επιτύχουμε την πιστοποίηση. Προφανώς αυτές οι λύσεις δεν είναι πολύ αποδοτικές για αυτό προτιμήθηκε η χρήση του προεπιλεγμένου browser του συστήματος με τον οποίο οι περισσότεροι χρήστες είναι εξοικειωμένοι. Ουσιαστικά το πρόγραμμα προτρέπει τον χρήστη να πατήσει έναν σύνδεσμο HTML. Αυτός ο σύνδεσμος ανοίγει, με την βοήθεια του προγράμματος, τον προεπιλεγμένο browser του συστήματος ο οποίος πραγματοποιεί την κλήση στο σύστημα του Facebook. https://graph.facebook.com/oauth/authorize?client_id=appid &redirect_uri=http://www.facebook.com/ connect/login_success.html &response_type=token &scope=permissions Όπως βλέπουμε η κλήση είναι από πλευρά πελάτη, μια και χρησιμοποιεί &response_type=token. Επίσης χρησιμοποιεί μία λίστα με τα δικαιώματα (στην θέση PERMISSIONS) που χρειάζεται η εφαρμογή από τον χρήστη τα οποία είναι αρκετά εφόσον ο σκοπός είναι να εξάγουμε την πληροφορία του χρήστη. Το κυριότερο δικαίωμα είναι το offline_access χάρη στο οποίο δημιουργείται ένα token το οποίο δεν έχει περιορισμό στον χρόνο ζωής του. Έτσι η εφαρμογή μπορεί να αποθηκεύει το token σε ένα αρχείο και να το φορτώνει κατά την εκκίνησή της: χωρίς χρήση της τεχνικής αυτής ο χρήστης θα έπρεπε κάθε φορά να εκτελεί την διαδικασία πιστοποίησης. Ο σύνδεσμος εμφανίζεται σε ένα πλαίσιο διαλόγου, το οποίο απεικονίζεται στο σχήμα 2.1. Μόλις ο χρήστης επιλέξει τον σύνδεσμο, θα γίνει η κλήση στο Facebook μέσω του προεπιλεγμένου browser. Στο σημείο αυτό, είναι πιθανό να ζητηθεί από τον χρήστη να κάνει είσοδο στο Facebook και να εξουσιοδοτήσει την εφαρμογή, ενέργειες οι οποίες του είναι γνώριμες. Μετά θα εμφανιστεί στον browser το μήνυμα Success. Ο χρήστης θα πρέπει να φωτίσει ολόκληρη την μπάρα διεύθυνσης, να την αντιγράψει και να την επικολλήσει στην περιοχή κειμένου του διαλόγου και να πατήσει Enter. Η μπάρα διεύθυνσης του browser περιέχει το token. Σε παλαιότερη έκδοση της εφαρμογής ο χρήστης έπρεπε να επικολλήσει στη περιοχή κειμένου μονάχα το token, όμως κάτι τέτοιο δεν είναι και τόσο βολικό. 18

23 Σχήμα 2.1: Διάλογος πιστοποίησης Facebook της εφαρμογής 2.4 Αντικειμενοστρεφής προγραμματισμός Για να κατανοήσουμε καλύτερα την λειτουργία του προγράμματος ιδιαίτερα από πλευράς υλοποίησης, χρειαζόμαστε μερικές βασικές γνώσεις αντικειμενοστρεφούς προγραμματισμού. Μία σύνοψη των απαραίτητων εννοιών παρατίθεται στη συνέχεια Γενικά Στις παραδοσιακές διαδικαστικές γλώσσες προγραμματισμού (Pascal, C, Basic κ.λπ.) η βασική μονάδα δόμησης του κώδικα είναι η συνάρτηση. Η συνάρτηση αποκρύπτει τις λεπτομέρειες υλοποίησής της και συνιστά και τη μονάδα επαναχρησιμοποίησης κώδικα, αφού μπορεί να καλείται από άλλες συναρτήσεις. Το πρόβλημα είναι ότι υπήρχε μία υποτίμηση των δεδομένων του προγράμματος. Τα δεδομένα είναι μία συνιστώσα εξίσου σημαντική με τον κώδικα, εφόσον το πρόγραμμα αποσκοπεί τελικά στον χειρισμό και την επεξεργασία τους. Στον αντικειμενοστρεφή προγραμματισμό τα δεδομένα είναι οργανωμένα σε αυτόνομες οντότητες μαζί με ειδικές συναρτήσεις, οι οποίες είναι και οι μοναδικές που έχουν τη δυνατότητα να μεταβάλουν τα δεδομένα των οντοτήτων. Οι αυτόνομες αυτές οντότητες ονομάζονται αντικείμενα και κρατούν κάθε στιγμή τα δεδομένα όπως απεικονίζονται στη μνήμη του υπολογιστή. (Εδώ θα πρέπει να σημειωθεί ότι δεν πρέπει να συγχέουμε τα αντικείμενα του αντικειμενοστρεφούς προγραμματισμού με τα αντικείμενα του Facebook για τα οποία μιλήσαμε πιο πάνω.) Το τί δεδομένα θα περιέχει το κάθε αντικείμενο και με ποιες συναρτήσεις θα τα επεξεργάζεται, καθορίζεται από την κλάση του αντικειμένου, η οποία κλάση συγγράφεται από τον 19

24 προγραμματιστή. Το αντικείμενο που περιέχει συγκεκριμένες τιμές για τα δεδομένα το λέμε επίσης και στιγμιότυπο της κλάσης. Επομένως η κλάσεις αποτελούν τα «καλούπια» από τα οποία δημιουργούνται τα αντικείμενα. Για παράδειγμα θα μπορούσαμε να έχουμε την κλάση Άνθρωπος η οποία έχει δεδομένα όπως Όνομα, Φύλο, Χρώμα Ματιών καθώς και λοιπές άλλες πληροφορίες όπως την ακριβή κίνηση και θέση χεριών και ποδιών κατά την εκτέλεση μίας κίνησης. Η κλάση έχει με την σειρά της συναρτήσεις όπως Περπάτα και Τρέξε οι οποίες μπορούν να επιδρούν πάνω στα δεδομένα και να τα αλλάζουν. Από αυτή την κλάση δημιουργούνται δύο αντικείμενα με τιμές ονόματος, Γιώργος και Μαρία. Τα δύο αυτά αντικείμενα έχουν δημιουργηθεί από την ίδια κλάση όμως αποτελούν ξεχωριστές οντότητες και μπορεί να έχουν διαφορετικές τιμές στα δεδομένα τους. Παρόλα αυτά τα δύο αυτά αντικείμενα μπορούν να εκτελέσουν τις ίδιες λειτουργίες (Περπάτα, Τρέξε) εφόσον έτσι ορίζει η κλάση τους. Εφόσον τα δεδομένα είναι αποθηκευμένα μαζί με τις συναρτήσεις στα αντικείμενα, και μονάχα αυτές οι συναρτήσεις μπορούν να επιδράσουν στα δεδομένα, τότε θα μπορούσαμε να πούμε ότι το συγκεκριμένο αντικείμενο «ξέρει» να περπατά και να τρέχει. Είναι προφανές ότι αν κάποιος γράψει μία «καθολική συνάρτηση» Κολύμπα και προσπαθήσει να την χρησιμοποιήσει για να αλλάξει τα δεδομένα του αντικειμένου του παραδείγματος, τότε αυτό δεν θα είναι δυνατόν εφόσον το συγκεκριμένο αντικείμενο «ξέρει» μονάχα να τρέχει και να περπατά. (Καθολική συνάρτηση καλούμε μία ονοματισμένη ενότητα κώδικα που δεν είναι ωστόσο μέλος καμίας κλάσης). Μονάχα εάν ο προγραμματιστής ορίσει την συνάρτηση Κολύμπα μέσα στην κλάση Άνθρωπος, τα νέα αντικείμενα που θα δημιουργηθούν θα «ξέρουν» να κολυμπάνε (μια και η συνάρτηση θα μπορεί να προσπελάσει τα δεδομένα τους και να τα θέσει στην κατάσταση που αντιστοιχεί στην κολύμβηση). Με αυτή την ασφαλιστική δικλείδα στα δεδομένα λύνονται πολλά προβλήματα που είχαμε στον διαδικαστικό προγραμματισμό, ενώ παράλληλα ο τρόπος οργάνωσης των δεδομένων βοηθάει τον αντικειμενοστρεφή προγραμματισμό να αντεπεξέλθει σε προβλήματα μεγαλύτερης πολυπλοκότητας Πιο συγκεκριμένα στην Java Στην αντικειμενοστρεφή γλώσσα προγραμματισμού Java έχουμε κλάσεις και αντικείμενα όπως εξηγήσαμε πιο πάνω με την διαφορά ότι οι συναρτήσεις ενός αντικειμένου (που ορίζονται στην κλάση του), στην Java ονομάζονται μέθοδοι. Τα δεδομένα αποθηκεύονται σε ειδικές μεταβλητές της κλάσης που ονομάζονται πεδία της κλάσης. Τα πεδία αυτά μπορούν να 20

25 έχουν ως τύπο πρωτογενής προγραμματιστικούς τύπους όπως int, boolean κ.λπ. άλλα μπορεί να έχουν ως τύπο και μία κλάση. Παράθεση 2.3: Αναπαράσταση της κλάσης Άνθρωπος σε Java 1 class Human { 2 String name; 3 String gender; 4 java.awt.color eyecolor; 5 Movement limbpositions; 6 7 void walk() { 8 Movement newlimbpositions = null; 9 //Calculations for newlimbpositions; 10 limbpositions = newlimbpositions; 11 } void run() { 14 Movement newlimbpositions = null; 15 //Calculations for newlimbpositions; 16 limbpositions = newlimbpositions; 17 } } Ένα ακόμα χαρακτηριστικό του αντικειμενοστραφούς προγραμματισμού το οποίο εμφανίζεται και στην Java και θα μας φανεί χρήσιμο, είναι η κληρονομικότητα. Γενικότερα αυτό σημαίνει ότι ένα αντικείμενο μπορεί να κληρονομήσει τις ιδιότητες και τη συμπεριφορά (μεθόδους) ενός άλλου αντικειμένου. Στην Java αυτό γίνεται με την λέξη-κλειδί extends και πρακτικά σημαίνει ότι μία κλάση κληρονομεί τα πεδία και τις μεθόδους μίας άλλης κλάσης. Η υπο-κλάση, δηλαδή αυτή που κληρονομεί, μπορεί να χρησιμοποιήσει τα πεδία και τις μεθόδους που κληρονομεί και επιπλέον μπορεί να τα τροποποιήσει για να ταιριάζουν στις ανάγκες της (στην παραγματικότητα, υπάρχουν κάποιοι περιορισμοί στη χρήση των πεδίων και συναρτήσεων που κληρονομούνται, ανάλογα με το αν αυτά είχαν δηλωθεί ως private, protected, public ή είχαν μείνει με default access modifier). Τέλος μπορεί να προσθέσει επιπλέον πεδία και μεθόδους. Θα μπορούσαμε να έχουμε για παράδειγμα την κλάση Άνθρωπος και δύο κλάσεις, Άντρας και Γυναίκα η οποίες την κληρονομούν. Δίνοντας στην κλάση Άνθρωπος το πεδίο ομάδα αίματος, δεν χρειάζεται να το ξαναδημιουργήσουμε στις κλάσεις Άντρας και Γυναίκα εφόσον το κληρονομούν από την Άνθρωπος. Τέλος κάτι που θα πρέπει να προσέχουμε ιδιαιτέρως είναι ότι στην Java η κάθε κλάση μπορεί να κληρονομεί μία και μοναδική άλλη κλάση. 21

26 2.4.3 Συσχέτιση με οντολογίες Όπως έχουμε αναφέρει οι οντολογίες αναπαριστούν μία οντότητα με ένα συγκεκριμένο τύπο και συγκεκριμένες ιδιότητες. Μπορούμε πολύ εύκολα να κάνουμε αντιστοίχηση αυτών σε Java χρησιμοποιώντας μία κλάση για κάθε τύπο οντότητας και τα πεδία των κλάσεων για τις ιδιότητες των τύπων. Με αυτό τον τρόπο καλύπτουμε ένα μεγάλο μέρος της αναπαράστασης μιας οντολογίας στην Java. Όμως οι οντότητες των οντολογιών έχουν επίσης και σχέσεις. Αυτές μπορούμε εν μέρη να τις καλύψουμε χρησιμοποιώντας τις σχέσεις που δημιουργούνται αυτόματα μεταξύ των κλάσεων στην Java. Για παράδειγμα όταν η κλάση Human έχει ως πεδίο limbpositions με τύπο την κλάση Movement, τότε αυτόματα δημιουργείται μία σχέση μεταξύ της κλάσης Human και Movement. Παρόλα αυτά, η Java επιβάλει κάποια όρια σε αυτές τις σχέσεις εφόσον έχει συγκεκριμένους κανόνες και περιορισμούς. Για παράδειγμα όπως έχουμε αναφέρει, στην Java δεν επιτρέπεται η κληρονομικότητα από πολλές κλάσεις, δηλαδή μία κλάση δεν επιτρέπεται να κληρονομεί περισσότερες από μία κλάσεις. Αντίθετα στον πιο ευρύ τομέα των οντολογιών δεν υπάρχουν τέτοιες δεσμεύσεις, καθώς με δεδομένο ότι ο σκοπός είναι η γενικότερη αναπαράσταση γνώσης και εννοιών ενός τομέα, το γενικό μοντέλο που ακολουθούν δεν είναι τόσο περιοριστικό. Θα μπορούσε να πει κανείς ότι στην Java και στον αντικειμενοστραφή προγραμματισμό δίνεται περισσότερη έμφαση στην κλάση ή το αντικείμενο ενώ αντίθετα στις οντολογίες και στον τρόπο αναπαράστασής τους, δίνεται περισσότερη έμφαση στις ιδιότητες αυτών. Στην Java οι ιδιότητες (δηλαδή τα πεδία) είναι απόλυτα συνδεδεμένα με την κλάση στην οποία ανήκουν και τους κληρονόμους της, αντίθετα στις οντολογίες μπορούμε να έχουμε περιπτώσεις κληρονομικότητας ιδιοτήτων από πολλούς διαφορετικούς τύπους ή ακόμα και ιδιότητα να κληρονομεί μία άλλη ιδιότητα. Ακόμα, περιορισμοί οι οποίοι εμφανίζονται στο επίπεδο μίας κλάσης Java μπορούν να εμφανιστούν στο επίπεδο μίας ιδιότητας μίας οντολογίας. Για να ξεπεραστούν αυτές οι διαφορές και για να μπορέσουμε να αναπαραστήσουμε την πληροφορία που είναι αποθηκευμένη στις κλάσεις Java με απλά δομημένο και λογικό τρόπο που απαιτεί μία οντολογία, θα χρειαστεί παραπάνω επεξήγηση και χρήση επιπλέον τεχνικών. Το ένα είναι η δημιουργία «λογικών τριπλετών» μέσω των οποίων ορίζεται π.χ. ότι το πεδίο limbpositions είναι κλάσης Movement (limbpositions is-a Movement) κάτι το οποίο επιτυγχάνουμε με την χρήση Java annotations. Και τα δύο θα τα δούμε πιο λεπτομερώς παρακάτω. 22

27 2.5 Εξαγωγή δεδομένων από το Facebook Έχουμε ήδη δει πως μία εφαρμογή μπορεί να πιστοποιηθεί ώστε να έχει πρόσβαση στα δεδομένα του χρήστη και πως αυτά τα δεδομένα αναπαριστώνται με ευελιξία μέσω του πρότυπου JSON. Είναι καιρός να δούμε με ποια δεδομένα ακριβώς θα ασχοληθούμε και πως θα τα εξάγουμε από το σύστημα του Facebook ώστε να μπορέσουν έπειτα να χρησιμοποιηθούν από την εφαρμογή Επιλογή δεδομένων του Facebook και συσχέτισή τους με κλάσεις Java Μας ενδιαφέρει κυρίως η πληροφορία που αποθηκεύεται στο αντικείμενο User του Facebook. Όπως έχουμε ήδη αναφέρει, τα αντικείμενα του Facebook έχουν πεδία και συνδέσεις. Οι συνδέσεις δεν είναι απαραίτητο να υπάρχουν. Για να αναπαραστήσουμε την προσωπική οντολογία του χρήστη στη γλώσσα Java, αρχικά θεωρούμε το αντικείμενο User του Facebook ως μία κλάση. Τα απλά πεδία του User τα αντιστοιχίζουμε σε πεδία της κλάσης μας, τα οποία χρησιμοποιούν απλούς τύπους που υποστηρίζονται από την Java. Για παράδειγμα αρκετά πεδία του αντικειμένου User αποθηκεύουν μία απλή συμβολοσειρά, επομένως μπορούμε να τα αντιστοιχίσουμε σε πεδίο τύπου java.lang.string στην κλάση μας. Για οτιδήποτε άλλο εκτός από τους απλούς τύπους, όπως συμβολοσειρά, boolean και ημερομηνίες θα πρέπει να δημιουργήσουμε καινούριες κλάσεις που θα αντιστοιχίζονται στους τύπους των αντικειμένων του Facebook. Με δεδομένη την ευελιξία στην αναπαράσταση των αντικειμένων του Facebook, την οποία παρέχει το πρότυπο JSON, μπορούμε εύκολα να δούμε ότι θα πρέπει να δημιουργήσουμε κλάσεις που θα καλύπτουν, όλες τις περιπτώσεις αντικειμένων τόσο για αυτές που περιγράφονται στο Graph API και σχετίζονται άμεσα με το αντικείμενο User, όσο και για τις περιπτώσεις των μικρών και «ανώνυμων» αντικειμένων όπως για παράδειγμα ένα αντικείμενο που περιέχει id και name [id, name]. Το πρόβλημα που αντιμετωπίζουμε εδώ είναι ότι στην γλώσσα Java δεν θα έχουμε την ευελιξία των αντικειμένων σε μορφή JSON και θα έχουμε τα πάντα σε «στατικές» και ονομαζόμενες κλάσεις. Τα αντικείμενα του Facebook στην μορφή JSON διακρίνονται από μία «ρευστότητα» η οποία μπορεί να προκαλέσει ασυμβατότητα με στις κλάσεις Java που θα μοντελοποιούν το κάθε αντικείμενο του Facebook. Για παράδειγμα, το πεδίο favorite_teams του αντικειμένου User του Facebook, επιστρέφει αντικείμενα [id, name]. Αν οι προγραμματιστές αποφάσιζαν ότι κάθε ομάδα χρειά- 23

28 ζεται και μία κατηγορια, το πεδίο favorite_teams Θα μπορούσαμε να επιστρέφει αντικείμενα [id, name, category] χωρίς ιδιαίτερες συνέπειες. Αντίθετα στην Java θα πρέπει να κάνουμε αλλαγές στον κώδικα των κλάσεων ώστε να δέχονται την επιπλέον πληροφορία category. Στην συγκεκριμένη περίπτωση θα έπρεπε μάλιστα να δημιουργήσουμε μια νέα κλάση Java η οποία θα μοντελοποιεί το αντικείμενο [id, name, category] αλλιώς θα χάναμε μέρος την πληροφορίας. Αυτό θα μπορούσαμε να το αντιμετωπίσουμε δουλεύοντας σε χαμηλό επίπεδο και αναλύοντας ένα προς ένα τα αποτελέσματα που επιστρέφει ένα αντικείμενο Facebook στην μορφή JSON, έτσι ώστε κάθε φορά να είμαστε σίγουροι ότι λαμβάνουμε ολόκληρη την πληροφορία. Παρόλα αυτά ένας από τους στόχους της πτυχιακής είναι να δημιουργήσει και να ορίσει την προσωπική οντολογία ενός χρήστη Facebook. Επίσης τα αντικείμενα του Facebook στη γενική περίπτωση επιστρέφουν πρόσθετη πληροφορία και μέτα-δεδομένα που χρησιμεύουν στο ίδιο το σύστημα Facebook και τα οποία δεν είναι χρήσιμα σε έναν χρήστη και ούτε στην προσωπική μας οντολογία. Για αυτό τον λόγο έχουμε επιλέξει την δημιουργία συγκεκριμένων κλάσεων που να καλύπτουν τις ανάγκες μας και να συλλέγουν την πληροφορία που μας ενδιαφέρει χωρίς να έχουμε σκοπό την απόλυτη αντιγραφή της πληροφορίας που επιστρέφουν τα αντικείμενα Facebook. Για να δώσουμε περισσότερη ευελιξία στις κλάσεις μας, και να αντιμετωπίσουμε καλύτερα το πρόβλημα με τα «ανώνυμα» αντικείμενα, θα κάνουμε χρήση της κληρονομικότητας των κλάσεων της Java. Για παράδειγμα στην περίπτωση των δύο αντικειμένων [id, name] και [id, name, category] μπορούμε να φτιάξουμε τις κλάσεις NamedObject και CategorizedObject. H κλάση CategorizedObject κληρονομεί την NamedObject. Αυτό σημαίνει ότι κληρονομεί τα πεδία id και name και προσθέτει επιπλέον πεδίο category. Συμπερασματικά χρησιμοποιώντας αντικείμενα τύπων όπως NamedObject και βασικούς τύπους της Java, μπορούμε να καλύψουμε το μεγαλύτερο μέρος των πεδίων της προσωπικής οντολογίας του χρήστη. Οι συνδέσεις χρειάζονται επιπλέον προσοχή καθώς οι περισσότερες από αυτές οδηγούν πληροφορία η οποία αντιστοιχίζεται σε αντικείμενα που αναφέρονται ρητώς στο Graph API. Για παράδειγμα η σύνδεση feed του αντικειμένου User συνδέει το αντικείμενο με τις αναρτήσεις που έχει ο χρήστης στον προσωπικό του τοίχο του Facebook. Για αυτό τον σκοπό υπάρχει ξεχωριστό αντικείμενο Post που ορίζεται στο Graph API όπως και το User. Με άλλα λόγια το κάθε αποτέλεσμα της σύνδεσης feed είναι τύπου Post. Αυτό μας βοηθάει στην αναπαράσταση των συνδέσεων της προσωπικής οντολογίας εφόσον μπορούμε να έχουμε στην κλάση μας ένα πεδίο feed που αναπαριστά την σύνδεση feed και θα είναι τύπου μίας νέας κλάσης που θα ορίσουμε σε αντιστοιχία με το αντικείμενο Post του Facebook. 24

29 Συνολικά τα αντικείμενα του Facebook που σχετίζονται με το User τα οποία θα χρειαστεί να τα αντιστοιχίσουμε σε κλάσεις και που αναφέρονται ρητώς στο API είναι τα: Album, Photo, Comment, Post, Event, Group, Link, Note, Video και StatusMessage Η βιβλιοθήκη RestFB Σε προγραμματιστικό επίπεδο, για να εξάγουμε τα δεδομένα από το Facebook κάνουμε χρήση της βιβλιοθήκης RestFB, την οποία μπορούμε να κατεβάσουμε από την ιστοσελίδα To RestFB παρέχει ένα απλό και ευέλικτο API με το οποίο μπορούμε να συνδεθούμε στο σύστημα Facebook και να συλλέξουμε τις πληροφορίες που χρειαζόμαστε. Έχει σχεδιαστεί να είναι ελαφρύ, με ελάχιστες απαιτήσεις, ενώ πρόκειται για ένα πολύ ενεργό project το οποίο ανανεώνεται συνεχώς προκειμένου να ευθυγραμμίζεται με τις αλλαγές που κάνουν οι προγραμματιστές του Facebook στο σύστημά τους. Το RestFB δεν προσφέρει κάποια μέθοδο που να βοηθάει με την πιστοποίηση στο Facebook για αυτό και το κομμάτι αυτό εξηγείται στην ενότητα Όπως έχουμε εξηγήσει, για να έχουμε πρόσβαση στα δεδομένα ενός χρήστη χρειαζόμαστε την άδειά του, δηλαδή το τελικώς ένα token. Έχοντας αποκτήσει το token, μπορούμε πλέον να χρησιμοποιήσουμε τις μεθόδους που προσφέρει η βιβλιοθήκη RestFB. Αρχικά δημιουργούμε ένα αντικείμενο τύπου FacebookClient, το οποίο χειρίζεται την σύνδεση με το Facebook και παίρνει ως όρισμα το token: FacebookClient facebookclient = new DefaultFacebookClient(TOKEN); Έπειτα μπορούμε να ανακτήσουμε τα δεδομένα όποιου αντικειμένου του Facebook επιθυμούμε, εφ όσον αυτό καλύπτεται βέβαια από τις εξουσιοδοτήσεις που αντιστοιχούν στο token. Αυτό που θα χρειαστεί να φέρουμε εμείς είναι φυσικά το αντικείμενο User: User fbuser = facebookclient.fetchobject("me", User.class); Αυτό που κάνει ουσιαστικά η μέθοδος fetchobject() χρήσιμοποιώντας ως όρισμα το «me» είναι μία κλήση στο Graph API όπως περιγράψαμε στην ενότητα για την πιστοποίηση: 25

30 Έπειτα αποθηκεύει τα δεδομένα που λαμβάνει στη μορφή JSON στα πεδία της κλάσης User, χρησιμοποιώντας το δεύτερο όρισμα User.class. Αυτή η κλάση περιγράφεται στο API του RestFB κατ αντιστοιχία με το αντικείμενο User που περιγράφεται στο Facebook API. Εφόσον πλέον έχουμε την πληροφορία αποθηκευμένη στο αντικείμενο fbuser της κλάσης User, μπορούμε να χρησιμοποιήσουμε τις μεθόδους της κλάσης για να πάρουμε την πληροφορία. Η κλάση προσφέρει μεθόδους ανάκτησης (getter methods) για τα περισσότερα πεδία της όπως getname(), getgender() κ.λπ. Αυτό που πρέπει να επισημάνουμε εδώ είναι ότι, παρόλο που το RestFB έχει περιέχει ήδη κλάσεις για τα περισσότερα αντικείμενα του Facebook, δεν είναι δυνατόν να χρησιμοποιήσουμε αυτές τις ίδιες κλάσεις για να αναπαραστήσουμε την προσωπική οντολογία. Οι κλάσεις που χρειαζόμαστε πρέπει να περιέχουν επιπλέον πληροφορία που να επιτρέπει την δημιουργία απλών τριπλετών της μορφής υποκείμενο-κατηγόρημα-αντικείμενο, κάτι που θα εξηγήσουμε αμέσως μετά. 2.6 Αναπαράσταση και περιγραφή οντολογιών Οι οντολογίες αποτελούν ένα ευρύ πεδίο για την αναπαράσταση γνώσης βρίσκοντας ιδιαίτερη εφαρμογή σε τομείς της επιστήμης υπολογιστών, όπως τεχνητή νοημοσύνη, τεχνολογία λογισμικού και Σημασιολογικός Ιστός. Για την περιγραφή τους χρησιμοποιείται απλό λεξιλόγιο όρων το οποίο όμως δεν είναι προκαθορισμένο και αλλάζει ανάλογα με τις απαιτήσεις της κάθε οντολογίας. Ουσιαστικά χρησιμοποιούνται απλές λέξεις που περιγράφουν και προσδιορίζουν τις ιδιότητες των οντοτήτων και τις σχέσεις μεταξύ τους. Για την πιο τυπική και οργανωμένη αναπαράσταση και περιγραφή των εννοιών έχουν αναπτυχθεί γλώσσες οντολογίας, όπως CycL και KIF βασιζόμενες στην λογική πρώτης τάξης, αλλά και γλώσσες σήμανσης που χρησιμοποιούν ετικέτες τύπου XML για να περιγράψουν τις έννοιες, όπως OWL και RDF. Επιπροσθέτως, οι μέθοδοι και οι μεθοδολογίες για την κατασκευή οντολογιών και στις οποίες γίνεται επίσης χρήση των παραπάνω γλωσσών, μελετούνται από ένα σχετικά νέο πεδίο στην επιστήμη των υπολογιστών, τη μηχανική οντολογιών. Παρ ότι κάθε γλώσσα προσφέρει διαφορετικά πλεονεκτήματα για την αναπαράσταση οντολογιών, εμείς έχουμε επιλέξει τη γλώσσα RDF. 26

31 2.6.1 Γενικά για τη γλώσσα RDF Η γλώσσα Resource Description Framework (RDF), όπως δηλώνει και το όνομά της, πρόκειται για ένα πλαίσιο περιγραφής πόρων το οποίο είχε σχεδιαστεί ως ένα γενικό μοντέλο μέτα-δεδομένων για δεδομένα, δηλαδή ένα μοντέλο για δεδομένα που περιγράφουν δεδομένα. Χάρη στην ευελιξία του συντακτικού του και τον γενικά απλό τρόπο περιγραφής του, εύκολα κατανοητό από μηχανές, πλέον χρησιμοποιείται ως μία γενική μέθοδος για αναπαράσταση γνώσης και μοντελοποίηση της πληροφορίας, κυρίως του διαδικτύου. Οι ετικέτες XML που χρησιμοποιούνται στο πλαίσιο RDF αλλάζουν και προσαρμόζονται ανάλογα με το τι θέλουμε να περιγράψουμε, για αυτό και δεν τίθενται περιορισμοί στα ονόματα της ετικέτας, κάτι το οποίο χαρίζει ευελιξία. Παράλληλα, οι ετικέτες μπορούν να οργανωθούν σε ιεραρχίες ώστε να περιγράφονται καλύτερα οι έννοιες του πεδίου και τα χαρακτηριστικά τους. Αν θέλαμε να εκφράσουμε το ότι «ένα αυτοκίνητο έχει κόκκινο χρώμα» και «το κείμενο είναι τύπου άρθρο» θα χρησιμοποιούσαμε ετικέτες που ταιριάζουν στην κάθε περίπτωση: <rdf:car> <rdf:color>red</rdf:color> </rdf:car> <rdf:text> <rdf:type>article</rdf:type> </rdf:text> Τα παραπάνω κομμάτια RDF χρησιμοποιούνται για λόγους απλότητας και δεν είναι σε καμία περίπτωση ολοκληρωμένα ή ορθά συντακτικά. Για παράδειγμα βλέπουμε καθαρά ότι κάποιο αυτοκίνητο έχει χρώμα κόκκινο, όμως ποιο αυτοκίνητο είναι αυτό και πως ακριβώς περιγράφεται; Συνήθως ένα ολοκληρωμένο έγγραφο RDF περιλαμβάνει επιπλέον πληροφορίες που περιγράφουν κάθε στοιχείο παρέχοντας μία διεύθυνση που δείχνει σε έναν πόρο στο διαδίκτυο. O στόχος είναι να μπορούμε να περιγράψουμε πολυπλοκότερες εκφράσεις όπως: «Το κείμενο της ιστοσελίδας έχει μορφή blog και δημιουργήθηκε τον Αύγουστο του 2011 από τον Ιωάννη Παπαδόπουλο, ετών 27». Για να καταλάβουμε καλύτερα πως αναπαριστάται η παραπάνω πληροφορία θα εξετάσουμε την βασική δομή της κάθε έκφρασης. 27

32 2.6.2 Τριπλέτες H κάθε έκφραση στο RDF δομείται ουσιαστικά από μία συλλογή από τριπλέτες όπου η κάθε μία αποτελείται από ένα υποκείμενο, ένα κατηγόρημα και ένα αντικείμενο. Το κατηγόρημα λέγεται επίσης και ιδιότητα και υποδηλώνει μία σχέση μεταξύ των του υποκειμένου και του αντικειμένου. Σχήμα 2.2: Γράφημα μίας τριπλέτας. Στο παραπάνω γράφημα βλέπουμε την δομή μίας τριπλέτας και παρατηρούμε ότι το βέλος πρέπει πάντα να δείχνει προς το αντικείμενο. Ο κάθε κόμβος του γραφήματος μπορεί να είναι ένα Uniform Resource Identifier (URI), μία τιμή ή κενός. Πιο συγκεκριμένα: Το υποκείμενο είναι ένα URI ή ένας κενός κόμβος Το κατηγόρημα είναι ένα URI. Το αντικείμενο είναι ένα URI ή ένας κενός κόμβος ή μία τιμή Ένα URI δείχνει σε μία διεύθυνση στο διαδίκτυο η οποία μπορεί να περιγράφει τον κόμβο ή μπορεί επίσης να δείχνει σε κάποιο άλλο κόμβο μέσα στο RDF αρχείο. Είναι σύνηθες τα URI αυτά να τελειώνουν με μία λέξη η οποία περιγράφει το υποκείμενο ή αντικείμενο. Για παράδειγμα στην περίπτωση του αόριστου αυτοκινήτου, θα μπορούσαμε να το συγκεκριμενοποιήσουμε δίνοντας στο υποκείμενο το URI (http://example.org/terms/car). Στην περίπτωση του κατηγορήματος η τελευταία λέξη του URI συνήθως φανερώνει την σχέση που δημιουργεί το κατηγόρημα ανάμεσα στο υποκείμενο και το αντικείμενο. Για παράδειγμα το χρώμα του αυτοκινήτου θα μπορούσε να έχει URI (http://example.org/terms/color). Συχνά βλέπουμε όλους τους όρους μίας οντολογίας ή γενικότερα ενός τομέα γνώσης να είναι συγκεντρωμένοι σε έναν συγκεκριμένο ιστόχωρο ο οποίος αποτελεί το λεξιλόγιο της οντολογίας. Στις περιπτώσεις αυτές είναι κοινή πρακτική η τελευταία λέξη του URI κάθε στοιχείου, να χωρίζεται με τον χαρακτήρα #, για παράδειγμα (http://example.org/description#car). Τέλος μία τιμή (literal) είναι μία συμβολοσειρά χαρακτήρων γραμμένη σε Unicode και μπορεί να περιλαμβάνει αριθμούς, τιμές κινητής υποδιαστολής, ημερομηνίες κ.λπ. 28

33 Επιστρέφοντας στο παράδειγμα της έκφρασης «Το κείμενο της ιστοσελίδας έχει μορφή blog και δημιουργήθηκε τον Αύγουστο του 2011 από τον Ιωάννη Παπαδόπουλο, ετών 27», μπορούμε πλέον να την αναλύσουμε: Το υποκείμενο είναι μία ιστοσελίδα η οποία συγκεκριμενοποιείται από τον πόρο διαδικτύου URI Τα αντικείμενα είναι: Αύγουστος του 2011 (με κατηγόρημα «έχει δημιουργηθεί») blog (με κατηγόρημα «είναι της μορφής») συγγραφέας (με κατηγόρημα «έχει γραφτεί από») Το κάθε κατηγόρημα πρέπει να περιγράφεται από ένα URI όπου στο τέλος του να φαίνεται η σχέση που δημιουργεί από το υποκείμενο στο αντικείμενο. «έχει δημιουργηθεί» είναι «είναι της μορφής» είναι «έχει γραφτεί από» είναι Το αντικείμενο συγγραφέας με την σειρά του, έχει έναν τύπο (με URI ο οποίος είναι ένα πρόσωπο (με URI Αυτό που παρατηρούμε εδώ είναι ότι για την επεξήγηση του γενικότερου όρου τύπος (που αντιστοιχεί με την κλάση) χρησιμοποιήσαμε ένα γενικότερο URI το οποίο μπορεί να υπάρχει επισήμως στο διαδίκτυο, ενώ τα υπόλοιπα που βρίσκονται κάτω από το terms/ ίσως να τα έχουμε δημοσιοποιήσει εμείς οι ίδιοι έτσι ώστε να προσθέσουμε μέτα-δεδομένα στην σελίδα μας ή να δημιουργήσουμε κάποια οντολογία. Χάρη στη χρήση αυτών των κατηγορημάτων που ορίζουν ότι ένα υποκείμενο Α είναι τύπου ενός αντικειμένου Β δημιουργούμε σχέσεις is-a. Αυτές οι σχέσεις είναι πολύ σημαντικές, ενώ σε γλώσσες ισχυρών τύπων (strongly typed) όπως η Java παρατίθενται δηλώσεις μεταβλητών π.χ. Car toyota; μέσω των οποίων δηλώνεται ότι η μεταβλητή toyota είναι τύπου Car, στις οντολογίες πρέπει να δημιουργήσουμε την αντίστοιχη is-a τριπλέτα για να εκφράσουμε το ίδιο πράγμα. 29

34 Χρησιμοποιώντας τον συγγραφέα πλέον σαν υποκείμενο, βλέπουμε ότι: έχει όνομα (με URI που το συνδέει με το αντικείμενο με τιμή «Ιωάννης Παπαδόπουλος». έχει ηλικία (με URI που το συνδέει με το αντικείμενο με τιμή «27». Αυτό που πρέπει να προσέξουμε εδώ είναι το ότι ο συγγραφέας δεν είναι μία τιμή όπως το «blog». Ο συγγραφέας ουσιαστικά είναι μία οντότητα η οποία περιγράφεται από τις ιδιότητές της (ηλικία και όνομα) ενώ είναι τύπου πρόσωπο. Αυτή η οντότητα θα μπορούσε να έχει ένα ξεχωριστό URI, όμως κάτι τέτοιο δεν είναι απαραίτητο. Σχηματικά αυτό θα μπορούσε να αναπαρασταθεί με έναν κενό κύκλο. Πώς όμως μπορούμε να αναφερθούμε σε αυτή την οντότητα όταν θέλουμε να γράψουμε μία-μία όλες τις τριπλέτες που σχηματίζονται ή σε ένα έγγραφο RDF; Συνήθως σε αυτές τις περιπτώσεις χρησιμοποιείται ένα ξεχωριστό κλειδί, δηλαδή ένα id για τον συγκεκριμένο αυτό κόμβο στον οποίο θέλουμε να αναφερθούμε. Αυτά τα κλειδιά συνήθως παράγονται αυτόματα από τα προγράμματα που παράγουν τα αρχεία RDF και ο σκοπός τους είναι να δημιουργήσουν έναν εσωτερικό, εννοιολογικό σύνδεσμο μέσα στο αρχείο για να είναι δυνατή η αναφορά. Έπειτα χρησιμοποιώντας αυτό το id ως υποκείμενο μπορούμε πλέον να δημιουργήσουμε τις υπόλοιπες τριπλέτες που περιγράφουν την οντότητα. Χρησιμοποιώντας id και κατηγορήματα που αναπαριστούν έναν τύπο θα εκφράσουμε και όλες τις is-a σχέσεις της οντολογίας μας. Θα λέμε δηλαδή ότι μία οντότητα με id=a είναι τύπου Πρόσωπο. Με αυτό τον τρόπο μεταφερόμαστε από τις σχέσεις που δημιουργούνται στην Java μεταξύ των πεδίων και των κλάσεών τους, στις σχέσεις που έχει μία οντολογία μεταξύ των ιδιοτήτων και των τύπων τους. Για μία καλύτερη εικόνα στον πίνακα 2.1 μπορούμε να δούμε συνολικά όλες τις τριπλέτες που παράγονται από την παραπάνω έκφραση του παραδείγματος. Παρατηρούμε πως χρησιμοποιώντας τα id εσωτερικών κόμβων μπορούμε να αναφερθούμε και να περιγράψουμε τον συγγραφέα. Τέλος παρατηρούμε την σχέση is-a (αριθμός 4) που δημιουργείται. 30

35 Πίνακας 2.1: Συλλογή τριπλετών μίας οντολογίας που περιγράφει μία ιστοσελίδα. # Υποκείμενο Κατηγόρημα Αντικείμενο 1 blog 2 Αύγουστος του genid:node763 4 genid:node rdf-syntax-ns#type 5 genid:node763 Ιωάννης Παπαδόπουλος 6 genid:node

36 Συγκεντρώνοντας όλες τις τριπλέτες και ενώνοντάς τες, μπορούμε να αναπαραστήσουμε σε ένα γράφημα RDF την έκφραση του παραδείγματος: Σχήμα 2.3: Γράφημα RDF περιγραφής μίας ιστοσελίδας Άρα γενικότερα όταν θέλουμε να αναπαραστήσουμε κάποια γνώση, έννοια ή οντότητα χωρίζουμε την συνολική πληροφορία σε απλές τριπλέτες. Η συλλογή αυτών των τριπλετών αποθηκευμένη σε κάποιο μέσο όπως ένα έγγραφο RDF ή μία βάση δεδομένων αποτελεί μία συγκεκριμένη και εύχρηστη αναπαράσταση της οντολογίας. 2.7 Παραγωγή τριπλετών προσωπικής οντολογίας Χάρη στις ομοιότητες των οντολογιών με το μοντέλο κλάσεων του αντικειμενοστρεφούς προγραμματισμού καταφέραμε να αποθηκεύσουμε την πληροφορία που εξάγουμε από το Facebook σε απλές κλάσεις. Όμως, όπως αναφέραμε ανωτέρω, για να μπορέσουμε να αναπαραστήσουμε την οντολογία με έναν χρήσιμο τρόπο όπως ένα έγγραφο RDF χρειαζόμαστε να «σπάσουμε» την πληροφορία σε λογικές τριπλέτες. Για να το κάνουμε αυτό, χρειαζόμαστε επιπλέον πληροφορία αποθηκευμένη σε κάθε κλάση 32

37 η οποία θα περιγράφει τα δεδομένα. Η γλώσσα Java έχει έναν μηχανισμό που θα βοηθήσει σε αυτή την περίπτωση, τα Annotations (επισημειώσεις) Java Annotations Τα annotations γενικά προσφέρουν δεδομένα για το πρόγραμμα που δεν είναι μέρος του καθεαυτού προγράμματος και δεν επηρεάζουν το αποτέλεσμα του κώδικα. Συνήθως αναπαριστούν δεδομένα που χρησιμοποιεί ο μεταγλωττιστής για να βρει λάθη πιο εύκολα ή δεδομένα που χρησιμοποιούνται κατά την φάση εκτέλεσης του προγράμματος ή δεδομένα που μπορούν να χρησιμοποιήσουν άλλα προγράμματα και να παράγουν νέο κώδικα και αρχεία XML. Το τελευταίο είναι και αυτό που μας ενδιαφέρει. Για παράδειγμα παρακάτω βλέπουμε την χρήση annotations για να αποθηκεύσουμε στον κώδικα τον συγγραφέα και ημερομηνία δημιουργίας μίας name = "Stratos Neiros", date = "26/8/2011" ) class MyClass() { } Στις περισσότερες γλώσσες προγραμματισμού αυτή την πληροφορία θα την αποθηκεύαμε σε απλά σχόλια (κάτι που είναι φυσικά δυνατόν και στη Java). Η διαφορά είναι ότι με την χρήση annotations μπορούμε πλέον να εκμεταλλευτούμε την πληροφορία μέσω κάποιου προγράμματος και να παράγουμε ένα νέο αρχείο π.χ. XML, RDF κ.λπ., μια και η πληροφορία αυτή είναι καλά δομημένη και είναι εφικτό να εξαχθεί μηχανικά από το πηγαίο αρχείο. Αυτό που κάνουμε εμείς είναι να βάζουμε ένα annotation πριν από κάθε κλάση και πριν από κάθε ιδιότητα (δηλαδή πεδίο) της κλάσης. Το annotation περιέχει πληροφορία που ουσιαστικά είναι το URI που περιγράφει την συγκεκριμένη ιδιότητα ή κλάση. Όπως εξηγήσαμε και στην ενότητα 2.6 τα κομμάτια της κάθε τριπλέτας, το υποκείμενο, κατηγόρημα και αντικείμενο ουσιαστικά είναι ένα URI που οδηγεί σε κάποιο άλλο πόρο στο διαδίκτυο (συνήθως ένα έγγραφο RDF-XML) που περιγράφει το στοιχείο. Αφού γράψουμε όλα τα annotation και κάθε τύπος και ιδιότητα έχει ένα URI, τότε χρησιμοποιούμε μία βιβλιοθήκη η οποία χρησιμοποιεί την πληροφορία αυτή σε συνδυασμό με την δομή της κλάσης για να δημιουργήσει τις τριπλέτες και τελικά να εξάγει ένα αρχείο XML-RDF με την οντολογία. Η βιβλιοθήκη που χρησιμοποιούμε είναι η Elmo. 33

38 2.7.2 Η βιβλιοθήκη Elmo Πρόκειται για μία εξωτερική βιβλιοθήκη Java η οποία διαβάζει την πληροφορία που περιέχουν τα annotations και την χρησιμοποιεί για να την συνδυάσει την πληροφορία που περιέχουν αντικείμενα Java. Επίσης δίνει την δυνατότητα στον προγραμματιστή να έχει πρόσβαση σε αποθήκες RDF. Αυτές οι αποθήκες μπορεί να βρίσκονται στην μνήμη, στον δίσκο ή ακόμη και σε κάποια εξωτερική αποθήκη που βρίσκεται στο διαδίκτυο. O server που υποστηρίζει η βιβλιοθήκη elmo είναι ο Sesame, δημιουργημένος απο τους ίδιους προγραμματιστές, και πρόκειται για έναν server αποθήκευσης οντολογιών. Τα Elmo και Sesame μπορούμε να τα βρούμε στο OpenRDF (www.openrdf.org). Αυτό που κάνει η Elmo είναι ότι ουσιαστικά δημιουργεί τις λογικές τριπλέτες σύμφωνα με τη δομή της κλάσης δίνοντάς τους το URI που έχουμε ορίσει στο αντίστοιχο annotation, ενώ παράλληλα δημιουργεί ξεχωριστά id για τους εσωτερικούς κόμβους οι οποίοι δεν έχουν URI. Εφόσον δίνουμε annotations σε κάθε κλάση και σε κάθε πεδίο της που μας ενδιαφέρει να συμπεριλάβουμε στην οντολογία, κάθε από αυτά θα αναπαρασταθεί από το αντίστοιχο URI που περιέχει το annotation. Το annotation που χρησιμοποιούμε είναι και παίρνει ώς όρισμα μία συμβολοσειρά που περιέχει το URI όπως μπορούμε να δούμε στην Παράθεση 2.4. Παράθεση 2.4: Χρήση annotation στην κλάση του χρήστη ) 2 public class User { 3 final private static String NS = ; 4 + id ) //Same ) 6 private String id; + firstname ) 8 private String firstname; + lastname ) 10 private String lastname; } Τα URI που χρησιμοποιούμε χρησιμοποιούν το σύμβολο #, δηλαδή χρησιμοποιούν μία σταθερή διεύθυνση που τελειώνει σε # και αμέσως μετά εμφανίζεται το όνομα της ιδιότητας ή της κλάσης. Για λόγους συντομίας αλλά και συντηρισιμότητας του κώδικα, αποθηκεύουμε το σταθερό μέρος σε μία μεταβλητή NS (που σημαίνει Namespace) καθώς έτσι συνηθίζεται να λέγεται το URI στα αρχεία RDF. Η Elmo επίσης απαιτεί να έχουμε αποθηκευμένα όλα τα ονόματα των κλάσεων που αναπαριστούν την οντολογία, συμπεριλαμβανομένης και της 34

39 διαδρομής του πακέτου στην οποία ανήκει, (αν κάνουμε χρήση πακέτων Java) σε ένα αρχείο με όνομα org.openrdf.elmo.concepts κάτω απο φάκελο META-INF που θα βρίσκεται στον πηγαίο κώδικα. Το τελευταίο πράγμα που χρειάζεται η Elmo είναι ότι σε μία κλάση, κάθε ιδιότητα (δηλαδή πεδίο) που μας ενδιαφέρει να συμπεριλάβουμε στην οντολογία, πρέπει να έχει μεθόδους setter και getter η οποίες μας αφενώς μας επιτρέπουν να θέτουμε και να λαμβάνουμε την τιμή της κάθε ιδιότητας αντιστοίχως και αφ ετέρου η Elmo τις χρησιμοποιεί εσωτερικά για να προσθέσει τριπλέτες στον γράφο της οντολογίας. Εδώ θα πρέπει να σημειώσουμε ότι η Elmo μπορεί αυτόματα να δουλέψει με τις υπάρχουσες κλάσεις των επίσημων βιβλιοθηκών της Java ή τουλάχιστον με κοινούς και βασικούς τύπους όπως String και Date. Η Elmo είναι φτιαγμένη να υποστηρίζει εξ αρχής μία μεγάλη ομάδα κλάσεων βασικών και μη (μέσω του LiteralManager). Γενικότερα για να μπορέσει η Elmo να χειριστεί αυτόματα μία κλάση, αυτή πρέπει να είναι Serializable, να έχει έναν String Costructor (μέθοδο κατασκευής που να δέχεται ως όρισμα μία συμβολοσειρά) ή να έχει υλοποιημένη τη στατική μέθοδο valueof() το οποίο είναι και το σημαντικό. Οι περισσότεροι τύποι που υποστηρίζει η Elmo θα παρατηρήσουμε ότι διαθέτουν την valueof(). Αν τίποτα από αυτά δεν συμβαίνει, αυτό σημαίνει ότι η κλάση δεν υποστηρίζεται και θα πρέπει να γράψουμε μία δικιά μας, η οποία θα συμμορφώνεται με τις προϋποθέσεις που αναφέραμε παραπάνω. Συμπερασματικά για να μπορέσει η βιβλιοθήκη Elmo να δημιουργήσει τριπλέτες και να αποθηκεύσει μία οποιαδήποτε μη εγγενώς υποστηριζόμενη κλάση Java σε ένα repository χρειάζεται η κλάση να annotation πάνω από το όνομα της κλάσης με το αντίστοιχο URI Το όνομα της κλάσης γραμμένο σε αρχείο org.openrdf.elmo.concepts κάτω από τον φάκελο annotation πάνω από κάθε πεδίο της κλάσης που θέλουμε μέσα στην οντολογία. (Πεδία χωρίς annotation δεν λαμβάνονται υπόψιν). Ζευγάρια μεθόδων setter και getter για κάθε πεδίο με annotation. 35

40 2.8 Χρήση του προγράμματος Εκκίνηση και βασική χρήση Αποσυμπιέζουμε το αρχείο της εφαρμογής. Μέσα περιέχεται ένας φάκελος lib με όλες τις απαραίτητες βιβλιοθήκες και το πρόγραμμα Facebook- Info-Extra-ctor_1.0.0.x.jar, το οποίο κανονικά μπορούμε να εκτελέσουμε με διπλό κλικ εφόσον έχουμε εγκατεστημένη την Java στο σύστημά μας. Σε περίπτωση που το διπλό κλικ δεν δουλεύει, μπορούμε επίσης να τρέχουμε το πρόγραμμα από την γραμμή εντολών χρησιμοποιώντας την εντολή: java -jar FacebookInfoExtractor\_ jar. Έπειτα θα ξεκινήσει το πρόγραμμα. Σχήμα 2.4: Το κεντρικό παράθυρο της εφαρμογής Στο σχήμα 2.4 βλέπουμε το γραφικό περιβάλλον του προγράμματος. Κάτω στο status bar βλέπουμε ότι ακόμα δεν έχει κάποιο token. Συνήθως η εφαρμογή στην εκκίνησή της προσπαθεί να διαβάσει ένα token που έχει αποθηκεύσει σε αρχείο από προηγούμενη χρήστη της. Εφόσον αυτή είναι η πρώτη εκκίνηση του προγράμματος θα πρέπει να αποκτήσουμε ένα token. Παρατηρούμε ότι όλα τα κουμπιά στα δεξιά είναι απενεργοποιημένα εκτός από το Set Access Token το οποίο και πατάμε για να ξεκινήσουμε την πιστοποίηση της εφαρμογής στο Facebook. 36

41 Σχήμα 2.5: Το παράθυρο που βοηθάει στην απόκτηση του token Στο σχήμα 2.5 βλέπουμε το παράθυρο το οποίο περιέχει έναν σύνδεσμο και οδηγίες για την απόκτησή του token που αναφέραμε και στην ενότητα Ο χρήστης πατάει τον σύνδεσμο, κάνει είσοδο στο Facebook αν χρειαστεί και επιτρέπει την εφαρμογή να έχει πρόσβαση στα δεδομένα του. Μόλις γίνουν αυτά τα βήματα ο χρήστης θα δει στον browser του το μήνυμα Success ενώ στην μπάρα διεύθυνσης θα περιέχεται το token (Σχήμα 2.6). Ο χρήστης πρέπει να κάνει copy-paste όλη την μπάρα διεύθυνσης στο παράθυρο της εφαρμογής και να πατήσει Enter (Σχήμα 2.7). Σχήμα 2.6: Το token περιέχεται στην μπάρα διεύθυνσης του browser το οποίο και αντιγράφουμε Το token αποθηκεύεται στο αρχείο tempauthtokenfile.txt το οποίο συνήθως βρίσκεται κάτω από τον ίδιο φάκελο που βρίσκεται και η εφαρμογή. Προαιρετικά μπορούμε να αλλάξουμε το πού αποθηκεύεται το token από τα Options στο μενού Tools. Στο σχήμα 2.8 βλέπουμε ότι μετά την εισαγωγή του token στο πρόγραμμα, ενεργοποιείται το κουμπί Extract Ontology. Με αυτό μπορούμε τα πάρουμε την πληροφορία του χρήστη από το Facebook ενώ παράλληλα αυτή η πληροφορία θα αποθηκευτεί στην προσωρινή μνήμη ως οντολογία. 37

42 Σχήμα 2.7: Κάνουμε επικόλληση όλη την μπάρα διεύθυνσης στο πρόγραμμα Σχήμα 2.8: Με την χρήστη του token μπορούμε πλέον να εξάγουμε την οντολογία Πατώντας το κουμπί εμφανίζεται ένα νέο παράθυρο που μας επιτρέπει να επιλέξουμε το μέρος της πληροφορίας που θέλουμε να περιέχει η προσωπική οντολογία (Σχήμα 2.9). Μόλις επιλέξουμε ό,τι χρειαζόμαστε πατάμε Extract Ontology Section για να ξεκινήσει η διαδικασία. Η επιλογές που θα κάνουμε εδώ καθορίζουν το μέγεθος της οντολογίας και του γράφου σε περίπτωση που θέλουμε να χρησιμοποιήσουμε το αρχείο RDF για οπτικοποίηση. Ορισμένες επιλογές μπορεί να μεγαλώσουν υπερβολικά το αποτέλεσμα όπως για παράδειγμα αν επιλέξουμε να συμπεριληφθεί η πληροφορία των φίλων ή των αναρτήσεων του χρήστη. 38

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή

Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή Συνοπτικός Οδηγός Χρήσης του Moodle για τον Καθηγητή 1 Πίνακας Περιεχομένων 1. Εισαγωγή... 4 1.1 Περιβάλλον Moodle...4 1.2 Χρήση ονόματος χρήστη και κωδικού...4 1.3 Δημιουργία νέου μαθήματος...4 1.3.1

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

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

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης Σελίδα 1από ΤΕΙ ΚΑΒΑΛΑΣ Πτυχιακή εργασία Δικτυακή Εφαρμογή διαχείρισης ηλεκτρονικών εγγράφων υπηρεσίας. ΕΙΣΑΓΩΓΗ Μιλτιάδης Κακλαμάνης Σελίδα 2από Κατάλογος περιεχομένων ΕΙΣΑΓΩΓΗ...1 Σχετιζόμενα πρόσωπα...3

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

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP.

Παράρτημα A: PHP, HTML φόρμες και το πρωτόκολλο HTTP. Εργαστήριο #5 Τι πρέπει να έχετε ολοκληρώσει από το προηγούμενο εργαστήριο. Θα πρέπει να ξέρετε να εισάγετε ένα βασικό πρόγραμμα PHP μέσα σε μια ιστοσελίδα, τη χρήση της echo και τον χειρισμό απλών μεταβλητών

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

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ.

ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. ΟΔΗΓΟΣ ΧΡΗΣΗΣ(ΜΑΝUΑL) ΔΙΑΧΕΙΡΙΣΤΗ-ΧΡΗΣΤΗ. Οδηγός Διαχειριστή Το m-learning Toolkit είναι μια ολοκληρωμένη πλατφόρμα εξ αποστάσεως εκπαίδευσης που έχει σχεδιαστεί για να υπάρχει η δυνατότητα της πρόσβασης

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

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C Στο εργαστήριο αυτό, θα ασχοληθούμε με δύο προγραμματιστικά περιβάλλοντα για τη γλώσσα C: τον gcc μεταγλωττιστή της C σε περιβάλλον

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

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες

Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Μέρος 3 ο : Βασικές Έννοιες για δυναμικές ιστοσελίδες Εισαγωγή-Σκοπός. Τρόποι δημιουργίας δυναμικών ιστοσελίδων. Dynamic Web Pages. Dynamic Web Page Development Using Dreamweaver. Τρόποι δημιουργίας δυναμικών

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

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy

Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Σ ε λ ί δ α 1 Οδηγός Εγκατάστασης και Χρήσης του Arebas Easy Περιεχόμενα 1. Download Arebas Easy... 2 2. Εγκατάσταση Arebas Easy... 3 3. Εγγραφή στον Arebas Server... 7 4. Παραμετροποίηση Arebas Easy...

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

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

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr Εγχειρίδιο Χρήσης Μελών ΔΕΠ Αναζήτηση Δημόσιου Περιεχομένου Η διεύθυνση ιστού της νεάς πλατφόρμας διαχείρισης βιντεοδιαλέξεων Δήλος είναι: http://delos.uoa.gr

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

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ

Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ Οδηγίες Χρήσης Πλατφόρμας Ασύγχρονης Τηλεκπαίδευσης (Moodle) του Τμήματος ΔΕΤ -Για τους Φοιτητές- Έκδοση 1.2 Οκτώβριος 2015 Υπεύθυνος Σύνταξης: Χρήστος Λάζαρης (lazaris@aueb.gr) Πίνακας Περιεχομένων Εισαγωγή...

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

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Εργαστήριο 1 Εισαγωγή στη C Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr Διαδικαστικά Ιστοσελίδα μαθήματος: http://eclass.uoa.gr/courses/f30/ Υποχρεωτική παρακολούθηση: Παρασκευή 14:00 16:00 στην

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

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης

ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ. της Πλατφόρμας Τηλεκατάρτισης ΕΓΧΕΙΡΙΔΙΟ ΜΑΘΗΤΗ της Πλατφόρμας Τηλεκατάρτισης ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή...2 2. Αρχική σελίδα, Εισαγωγή & Περιβάλλον Συστήματος...3 2.1. Αρχική σελίδα εισαγωγής...3 2.2. Εισαγωγή στην Πλατφόρμα Τηλε-κατάρτισης...4

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

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010

Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Τμήμα Πληροφορικής & Επικοινωνιών Τομέας Υπολογιστικών Τεχνικών & Συστημάτων Συνοπτικό εγχειρίδιο χρήσης του Microsoft Visual Studio 2010 Ιωάννης Γεωργουδάκης - Πάρις Μαστοροκώστας Σεπτέμβριος 2011 ΠΕΡΙΕΧΟΜΕΝΑ

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

ΒΟΗΘΕΙΑ για τη χρήση του ιδρυματικού αποθετηρίου ΥΠΑΤΙΑ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ LIVETRIP TRAVELLER Η εφαρμογή LiveTripTraveller διατίθεται για κινητά τηλέφωνα με λειτουργικό σύστημα Android. Στο υπο-ιστοσελίδα www.livetrips.com/sources μπορείτε να κατεβάσετε την εφαρμογή

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

Πλατφόρμα Συνεργατικότητας (Collaboration Platform) ΧΡΗΣΗΣ. MRB Hellas System Συμβουλευτική Α.Ε

Πλατφόρμα Συνεργατικότητας (Collaboration Platform) ΧΡΗΣΗΣ. MRB Hellas System Συμβουλευτική Α.Ε σχετικά με τον έλεγχο της καπνιστικής συνήθειας 1 25 Λογισμικές εφαρμογές καταγραφής και αξιοποίησης πληροφοριών σχετικά με τον έλεγχο της καπνιστικής συνήθειας Πλατφόρμα Συνεργατικότητας (Collaboration

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

PRISMA Win POS Sync Merge Replication

PRISMA Win POS Sync Merge Replication ΤΜΗΜΑ ΥΠΟΣΤΗΡΙΞΗΣ Οδηγός Ρυθμίσεων Συγχρονισμού PRISMA Win POS Sync Merge Replication Η διαδικασία του συγχρονισμού γίνεται από τον Η/Υ που έχει το Back Office. Βασική προϋπόθεση για να ενεργοποιηθεί ο

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

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client ΕΣΔ 516 Τεχνολογίες Διαδικτύου Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client Περιεχόμενα Περιεχόμενα Javascript και HTML Βασική σύνταξη Μεταβλητές Τελεστές Συναρτήσεις

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

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων

2.1. Εντολές. 2.2. Σχόλια. 2.3. Τύποι Δεδομένων 2 Βασικές Εντολές 2.1. Εντολές Οι στην Java ακολουθούν το πρότυπο της γλώσσας C. Έτσι, κάθε εντολή που γράφουμε στη Java θα πρέπει να τελειώνει με το ερωτηματικό (;). Όπως και η C έτσι και η Java επιτρέπει

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

1. Εισαγωγή στο ΟΠΣ - ΠΔΕ

1. Εισαγωγή στο ΟΠΣ - ΠΔΕ 1. Εισαγωγή στο ΟΠΣ - ΠΔΕ 1.1 Εισαγωγή 1.1.1 Σύντομη περιγραφή και σκοπός ΟΠΣ Το Ολοκληρωμένο Πληροφοριακό Σύστημα (Ο.Π.Σ.) αποτελεί ένα σύστημα πληροφόρησης και διαχείρισης, η χρήση του οποίου επιβάλλεται

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

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

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 6 ΟΥ ΚΕΦΑΛΑΙΟΥ ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ 6.1 Τι ονοµάζουµε πρόγραµµα υπολογιστή; Ένα πρόγραµµα

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

www.ikarditsa.gr Οδηγίες Χρήσης (προσθήκη νέου άρθρου σε σελίδα iκαταστήματος)

www.ikarditsa.gr Οδηγίες Χρήσης (προσθήκη νέου άρθρου σε σελίδα iκαταστήματος) www.ikarditsa.gr Οδηγίες Χρήσης (προσθήκη νέου άρθρου σε σελίδα iκαταστήματος) Το παρακάτω κείμενο περιλαμβάνει οδηγίες για την προσθήκη ενός νέου άρθρου σε σελίδα iκαταστήματος. Η προσθήκη ενός άρθρου

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

5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ

5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ 5 ο ΚΕΦΑΛΑΙΟ: ΠΡΑΚΤΙΚΟ ΚΟΜΜΑΤΙ 5.1 Εισαγωγή Το πρακτικό κομμάτι της πτυχιακής μας εργασίας αφορά την δημιουργία μιας λειτουργικής ιστοσελίδας με την χρήση της πλατφόρμας του Weebly, που αποτελεί μια σύγχρονη

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

Περιεχόμενο του μαθήματος

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Απαιτήσεις Λογισμικού Περιπτώσεις χρήσης Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 2012-2013 1 Περιεχόμενο του μαθήματος

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

Σύντομη περιγραφή 5. Για να ξεκινήσετε 6. Οι οθόνες του προγράμματος 8. Εγκατάσταση προγράμματος 6 Δημιουργία κωδικών χρήστη 7

Σύντομη περιγραφή 5. Για να ξεκινήσετε 6. Οι οθόνες του προγράμματος 8. Εγκατάσταση προγράμματος 6 Δημιουργία κωδικών χρήστη 7 Σύντομη περιγραφή 5 Για να ξεκινήσετε 6 Εγκατάσταση προγράμματος 6 Δημιουργία κωδικών χρήστη 7 Οι οθόνες του προγράμματος 8 Αρχική οθόνη 8 Στοιχεία ασθενή 9 Εργασίες - Ραντεβού 10 Εικόνες 11 Ημερολόγιο

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

Ημερομηνία Παράδοσης: 4/4/2013

Ημερομηνία Παράδοσης: 4/4/2013 Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας

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

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

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

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

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

Δημιουργία η-μαθήματος με τη. 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας Δημιουργία η-μαθήματος με τη χρήση του Moodle 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας Δημιουργία η-μαθήματος με τη χρήση του Moodle 3 ο Μέρος Εισαγωγή πληροφοριών: δημιουργία ιστοσελίδας

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

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

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

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

Περιεχόμενα. Δημιουργία σύνδεσης... 27 5. ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ... 37. Γνωριμία με μια ιστοσελίδα:... 38

Περιεχόμενα. Δημιουργία σύνδεσης... 27 5. ΤΙ ΕΙΝΑΙ ΙΣΤΟΣΕΛΙΔΕΣ ΚΑΙ ΤΙ ΤΟΠΟΘΕΣΙΕΣ ΙΣΤΟΥ... 37. Γνωριμία με μια ιστοσελίδα:... 38 Περιεχόμενα ΠΡΟΛΟΓΟΣ... 11 ΔΙΑΔΙΚΤΥΟ... 13 1. ΙΣΤΟΡΙΑ ΤΟΥ ΔΙΑΔΙΚΤΥΟΥ... 15 2. ΤΙ ΕΙΝΑΙ ΤΟ ΔΙΑΔΙΚΤΥΟ INTERNET;... 16 3. ΤΙ ΠΡΟΣΦΕΡΕΙ ΤΟ ΔΙΑΔΙΚΤΥΟ, ΤΙ ΜΠΟΡΕΙ ΝΑ ΒΡΕΙ ΚΑΝΕΙΣ... 19 4. ΤΙ ΑΠΑΙΤΕΙΤΑΙ ΓΙΑ ΝΑ

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

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Οδηγός Χρήσης Εφαρμογής Γραφείων Πρακτικής Άσκησης Αφού πιστοποιηθεί ο λογαριασμός που δημιουργήσατε στο πρόγραμμα «Άτλας» ως Γραφείο Πρακτικής,

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

Εγχειρίδιο λειτουργιών χρήστη (αποφοίτου) στο Mathiteia4u

Εγχειρίδιο λειτουργιών χρήστη (αποφοίτου) στο Mathiteia4u Εγχειρίδιο λειτουργιών χρήστη (αποφοίτου) στο Mathiteia4u Μέσω της ηλεκτρονικής πύλης www.mathiteia4u.gov.gr δίνεται πρόσβαση σε ένα νέο πρόγραμμα για την στήριξη νέων που έχουν μόλις αποφοιτήσει από την

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

Μανώλης Κιαγιάς, MSc. Aiolos Project. Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI

Μανώλης Κιαγιάς, MSc. Aiolos Project. Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI Μανώλης Κιαγιάς, MSc Aiolos Project Αρχικές Ρυθμίσεις SSH και εγκατάσταση OpenMPI Χανιά, 2015 2 (C) 2014 Μανώλης Κιαγιάς, manolis@freebsd.org Το παρόν έργο διατίθεται υπό τους όρους της Άδειας: Αναφορά

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

6 Εισαγωγή στο Wordpress 3.x

6 Εισαγωγή στο Wordpress 3.x Περιεχόμενα 1 Εγκατάσταση του WordPress... 11 Ελάχιστες απαιτήσεις... 11 Easy PHP... 12 Εγκατάσταση Easy PHP... 12 Βήματα εγκατάστασης EasyPHP με εικόνες... 13 Το EasyPHP στα Ελληνικά... 17 Κατέβασμα και

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

ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2

ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2 ΠΡΩΤΟΚΟΛΟ HTTP ΕΝΤΟΛΩΝ ΔΙΑΣΥΝΔΕΣΗΣ ΕΚΔΟΣΗ 1.2 1 ΠΕΡΙΕΧΟΜΕΝΑ Πρωτόκολο http εντολών έκδοση 1.0 Σελ:2...περιεχόμενα Σελ:3...τι θα βρείτε σε αυτό το βιβλίο Σελ:3...γενικά τεχνικά χαρακτηριστικά Σελ:4-5...πως

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

Το βιβλίο διευθύνσεων των Windows

Το βιβλίο διευθύνσεων των Windows Το βιβλίο διευθύνσεων των Windows Αν στέλνουμε email συχνά σε κάποιους, τότε για να μην πληκτρολογούμε τις διευθύνσεις τους κάθε φορά, τις αποθηκεύουμε στο Βιβλίο Διευθύνσεων. Έτσι όταν θα θέλουμε να τους

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

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις 1) Ερωτήσεις Σωστού/Λάθους (ΣΛ) Το πακέτο λογισμικού Excel της Microsoft είναι λογισμικό διαχείρισης ΒΔ (ΣΛ) Το πακέτο λογισμικού Access της Microsoft είναι λογισμικό

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

Περιεχόμενο του μαθήματος

Περιεχόμενο του μαθήματος ΤΕΧΝΟΛΟΓΙΑ ΛΟΓΙΣΜΙΚΟΥ Η Αντικειμενοστρεφής Τεχνολογία Δρ Βαγγελιώ Καβακλή Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου Εαρινό Εξάμηνο 202-203 Περιεχόμενο του μαθήματος Η έννοια

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

ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΗΡΕΣΙΑ ΑΠΟΚΤΗΣΗΣ ΑΚΑΔΗΜΑΪΚΗΣ ΤΑΥΤΟΤΗΤΑΣ

ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΗΡΕΣΙΑ ΑΠΟΚΤΗΣΗΣ ΑΚΑΔΗΜΑΪΚΗΣ ΤΑΥΤΟΤΗΤΑΣ ΗΛΕΚΤΡΟΝΙΚΗ ΥΠΗΡΕΣΙΑ ΑΠΟΚΤΗΣΗΣ ΑΚΑΔΗΜΑΪΚΗΣ ΤΑΥΤΟΤΗΤΑΣ Εγχειρίδιο Εφαρμογής Φοιτητών Πίνακας Εικόνων Εικόνα 1.1. Εκκίνηση της διαδικασία εγγραφής...5 Εικόνα 1.2. Σελίδα εγγραφής...6 Εικόνα 1.3. Είσοδος

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

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος.

10. Με πόσους και ποιους τρόπους μπορεί να αναπαρασταθεί ένα πρόβλημα; 11. Περιγράψτε τα τρία στάδια αντιμετώπισης ενός προβλήματος. 1. Δώστε τον ορισμό του προβλήματος. 2. Σι εννοούμε με τον όρο επίλυση ενός προβλήματος; 3. Σο πρόβλημα του 2000. 4. Σι εννοούμε με τον όρο κατανόηση προβλήματος; 5. Σι ονομάζουμε χώρο προβλήματος; 6.

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

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΑΝΕΠΙΣΤΗΜΙΟ

ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΑΝΕΠΙΣΤΗΜΙΟ ΕΛΛΗΝΙΚΟ ΑΝΟΙΚΤΟ ΑΝΕΠΙΣΤΗΜΙΟ Επιχειρησιακό Πρόγραμμα: Εθνικό Στρατηγικό Πλαίσιο Αναφοράς (ΕΣΠΑ) 2007-2013 Έργο: Ελληνικό Ανοικτό Πανεπιστήμιο με κωδικό ΟΠΣ296121 Υπο-έργο 5: Εργαστήριο Εκπαιδευτικού Υλικού

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

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com /

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com / ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : /www.wik id ot.com / 1. Τι είναι το wikidot Το wikidot είναι ένας δικτυακός τόπος στον οποίο κάθε χρήστης έχει το δικαίωμα να δημιουργήσει

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

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48

Εισαγωγή 6. Δημιουργία λογαριασμού 13. Εγκατάσταση και λειτουργία του Skype 28. Βασικές λειτουργίες 32. Επιλογές συνομιλίας 48 ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή 6 Δημιουργία λογαριασμού 13 Εγκατάσταση και λειτουργία του Skype 28 Βασικές λειτουργίες 32 Επιλογές συνομιλίας 48 Γενικές ρυθμίσεις Skype 64 Το Skype σε φορητές συσκευές 78 Εγγραφή

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

Δημιουργία ιστοσελίδας με Wordpress - Βασικές λειτουργίες

Δημιουργία ιστοσελίδας με Wordpress - Βασικές λειτουργίες Δημιουργία ιστοσελίδας με Wordpress - Βασικές λειτουργίες Περιεχόμενα Εγγραφή και αρχικές ρυθμίσεις Διαχείριση Ιστοσελίδας Δημιουργία Menu Δημιουργία σελίδας Δημιουργία Αρχικής Σελίδας Δημιουργία Άρθρου

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

SAP Οδηγός για τους Υπογράφοντες του DocuSign

SAP Οδηγός για τους Υπογράφοντες του DocuSign SAP Οδηγός για τους Υπογράφοντες του DocuSign Περιεχόμενα 1. SAP Οδηγός για τους Υπογράφοντες του DocuSign... 2 2. Παραλαβή Ειδοποίησης Email... 2 3. Υπογραφή Εγγράφου... 3 4. Άλλες Επιλογές... 4 4.1 Ολοκλήρωση

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

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

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

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

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet. ΩΡΕΣ ΔΙΔΑΣΚΑΛΙΑΣ: ΕΙΔΟΣ ΜΑΘΗΜΑΤΟΣ: Μικτό Γενικός σκοπός είναι να αποκτήσει ο καταρτιζόμενος τις αναγκαίες γνώσεις σχετικά με εργαλεία και τις τεχνικές για

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

Περιεχόμενα. Βήμα 4 ο... 5. Βήμα 5 ο... 6 Τι πρέπει να προσέξουμε... 6. Page 1 ΤΕΧΝΙΚΟ ΕΓΧΕΙΡΙΔΙΟ ΜΑΖΙΚΗΣ ΠΡΟΣΘΗΚΗΣ ΠΡΟΪΟΝΤΩΝ

Περιεχόμενα. Βήμα 4 ο... 5. Βήμα 5 ο... 6 Τι πρέπει να προσέξουμε... 6. Page 1 ΤΕΧΝΙΚΟ ΕΓΧΕΙΡΙΔΙΟ ΜΑΖΙΚΗΣ ΠΡΟΣΘΗΚΗΣ ΠΡΟΪΟΝΤΩΝ Περιεχόμενα ΣΤΟΙΧΕΙΑ ΕΠΙΚΟΙΝΩΝΙΑΣ... 2 Τμήμα Υποστήριξης (Help Desk and Client Support)... 2 ΕΙΣΑΓΩΓΗ... 3 Σχετικά με την εφαρμογή... 3 Περιγραφή διαδικασίας... 3 Βήμα 1 ο... 4 Βήμα 2 ο... 4 Βήμα 3 ο...

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

ANDROID Προγραμματισμός Εφαρμογών

ANDROID Προγραμματισμός Εφαρμογών ANDROID Προγραμματισμός Εφαρμογών Παναγιώτης Κρητιώτης ΑΜ 1607 Περιεχόμενα Εισαγωγή Βασικά Στοιχεία Χαρακτηριστικά Αρχιτεκτονική Εργαλεία Προγραμματισμού Eclipse IDE Android SDK - ADT Plugin Προσομοιωτής

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

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Simplifying Complexity Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Περιεχόμενα 1 Εισαγωγή... 2 2 Οδηγίες Χρήσης... 2 2.1 Πρώτη Εγγραφή στην Πλατφόρμα... 2 2.2 Είσοδος στην Πλατφόρμα... 4 2.3 Δημιουργία Καρτέλας

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

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Δρ. Κόννης Γιώργος Πανεπιστήμιο Κύπρου - Τμήμα Πληροφορικής Προγραμματισμός Στόχοι 1 Να περιγράψουμε τις έννοιες του Υπολογιστικού Προβλήματος και του Προγράμματος/Αλγορίθμου

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

public void printstatement() { System.out.println("Employee: " + name + " with salary: " + salary);

public void printstatement() { System.out.println(Employee:  + name +  with salary:  + salary); Κληρονομικότητα Η κληρονομικότητα (inheritance) αποτελεί έναν από τους χαρακτηριστικότερους μηχανισμούς των αντικειμενοστρεφών γλωσσών προγραμματισμού. Επιτρέπει την δημιουργία μιας νέας κλάσης απορροφώντας

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

Πως θα κατασκευάσω το πρώτο πρόγραμμα;

Πως θα κατασκευάσω το πρώτο πρόγραμμα; Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Να γίνει εξοικείωση το μαθητών με τον ΗΥ και το λειτουργικό σύστημα. - Επίδειξη του My Computer

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

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΕΝΟΤΗΤΑ 1.1 ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ ΔΙΔΑΚΤΙΚΟI ΣΤOΧΟΙ Στο τέλος της ενότητας αυτής πρέπει να μπορείτε: να επεξηγείτε τις έννοιες «βάση δεδομένων» και «σύστημα διαχείρισης βάσεων δεδομένων» να αναλύετε

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

Εισαγωγή στο Libre Office Παρουσιάσεις με το Impress. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ

Εισαγωγή στο Libre Office Παρουσιάσεις με το Impress. Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ Εισαγωγή στο Libre Office Παρουσιάσεις με το Impress Bάιος Κολοφωτιάς Επιστημονικός Συνεργάτης Sweng Lab A.Π.Θ Εισαγωγικά Οι παρουσιάσεις είναι μια εφαρμογή που χρησιμεύει στην παρουσίαση των εργασιών

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

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας

Simplifying Complexity. Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Simplifying Complexity Οδηγός Χρήσης Διαδικτυακής Πλατφόρμας Περιεχόμενα 1 Εισαγωγή... 2 2 Οδηγίες Χρήσης... 2 2.1 Πρώτη Εγγραφή στην Πλατφόρμα... 2 2.2 Είσοδος στην Πλατφόρμα...4 2.3 Δημιουργία Καρτέλας

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

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

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΨΗΦΙΟΥ ΕΠΑΛ Α Έκδοση 1.0, Ιούνιος 2014 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ ΠΙΝΑΚΑΣ ΠΕΡΙΕΧΟΜΕΝΩΝ

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

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

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

Οδηγός γρήγορης εκκίνησης

Οδηγός γρήγορης εκκίνησης Χρήση του Office 365 σε τηλέφωνο Windows Phone Οδηγός γρήγορης εκκίνησης Έλεγχος ηλεκτρονικού ταχυδρομείου Ρυθμίστε το Windows Phone για αποστολή και λήψη ηλεκτρονικού ταχυδρομείου από το λογαριασμό του

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

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

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΨΗΦΙΟΥ ΕΠΑΛ A Έκδοση 1.0, Ιούνιος 2015 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΟΛΙΤΙΣΜΟΥ, ΠΑΙΔΕΙΑΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ ΠΙΝΑΚΑΣ

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

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ

Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ Σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών ΕΚΤ 1 Λειτουργικές απαιτήσεις Το σύστημα υποβολής αιτήσεων υποψήφιων συνεργατών στοχεύει στο να επιτρέπει την πλήρως ηλεκτρονική υποβολή αιτήσεων από υποψήφιους

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

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college.

hel-col@otenet.gr Κωνσταντίνος Παρασκευόπουλος Καθηγητής Πληροφορικής (ΠΕ19 MSc) Ελληνικό Κολλέγιο Θεσσαλονίκης kparask@hellenic-college. Χρήση της Διεπαφής Προγραμματισμού Εφαρμογής Google Maps για τη δημιουργία διαδραστικού χάρτη με τα Μνημεία Παγκόσμιας Πολιτιστικής Κληρονομιάς της ΟΥΝΕΣΚΟ στη Θεσσαλονίκη Εμμανουήλ Τσάμης 1, Κωνσταντίνος

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

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ

Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ Σενάριο 13. Προγραμματίζοντας ένα Ρομπότ Ταυτότητα Σεναρίου Τίτλος: Προγραμματίζοντας ένα Ρομπότ Γνωστικό Αντικείμενο: Πληροφορική Διδακτική Ενότητα: Ελέγχω-Προγραμματίζω τον Υπολογιστή Τάξη: Γ Γυμνασίου

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ Dcad 1.0 20130510 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εγκατάσταση προγράμματος DCAD 2 2. Ενεργοποίηση Registration 2 3. DCAD 3 3.1 Εισαγωγή σημείων 3 3.2 Εξαγωγή σημείων 5 3.3 Στοιχεία ιδιοκτησίας

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

Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης - Παρουσίαση

Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης - Παρουσίαση Novel Tech «Μέλος του Επιστημονικού & Τεχνολογικού Πάρκου Κρήτης» http://www.noveltech.gr info@noveltech.gr Ολοκληρωμένες Δράσεις προβολής δημοσιότητας για το Δήμο Αρχανών Αστερουσίων Εγχειρίδιο Χρήσης

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

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στην επιλογή «Κενή βάση δεδομένων» στο Παράθυρο Εργασιών. Θα εμφανιστεί το

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

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1.

Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ. Έκδοση 0.1. Κομβικό Σημείο Επαφής Υπουργείου Εσωτερικών Διαδικτυακές Υπηρεσίες Αναζήτησης, Απεικόνισης και Απευθείας Πρόσβασης στα δεδομένα ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Έκδοση 0.1. Νοέμβρης 2014 Περιεχόμενα 1. ΕΙΣΑΓΩΓΗ... 2 2.

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

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

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΥΠΟΒΟΛΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟΥ ΔΕΛΤΙΟΥ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΥΠΟΨΗΦΙΟΥ ΕΠΑΛ Α Έκδοση 1.0, Ιούνιος 2011 ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΔΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ ΛΙΣΤΑ ΣΧΗΜΑΤΩΝ ΠΙΝΑΚΑΣ

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

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ

Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Σύστημα Κεντρικής Υποστήριξης της Πρακτικής Άσκησης Φοιτητών ΑΕΙ Οδηγός Χρήσης Εφαρμογής Φορέων Υποδοχής Πρακτικής Άσκησης Αφού πιστοποιηθεί ο λογαριασμός που δημιουργήσατε στο πρόγραμμα «Άτλας» ως Φορέας

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

Βάσεις δεδομένων (Access)

Βάσεις δεδομένων (Access) Βάσεις δεδομένων (Access) Όταν εκκινούμε την Access εμφανίζεται το παρακάτω παράθυρο: Κουμπί Κενή βάση δεδομένων Κουμπί του Office Για να φτιάξουμε μια νέα ΒΔ κάνουμε κλικ στο κουμπί «Κενή βάση δεδομένων»

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

Περιγραφή Εργαλείου. Παρουσίαση Πλατφόρμας

Περιγραφή Εργαλείου. Παρουσίαση Πλατφόρμας Περιγραφή Εργαλείου Είναι ένα κοινωνικό δίκτυο μάθησης, το οποίο επιτρέπει στους χρήστες του να ανακαλύπτουν, να μοιράζονται και να αποθηκεύουν όρους, ορισμούς και γλωσσάρια σε 1487 τομείς και 97 γλώσσες.

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

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ

ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ ΤΕΧΝΟΛΟΓΙΚΟ ΠΑΝΕΠΙΣΤΉΜΙΟ ΚYΠΡΟΥ ΟΔΗΓΟΣ ΣΥΝΔΕΣΗΣ ΣΤO ΔΙΚΤΥΟ ΤΟΥ ΤΠΚ ΜΕΣΩ ΤΗΣ ΥΠΗΡΕΣΙΑΣ ΑΠΟΜΑΚΡΥΣΜΕΝΗΣ ΠΡΟΣΒΑΣΗΣ VPN ΥΣΠΤ Η υπηρεσία πρόσβασης στο δίκτυο δεδομένων του ΤΠΚ μέσω εικονικού ιδιωτικού δικτύου

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

Οδηγός Εγγραφής και Χρήσης Εφαρμογής. Διαχειριστής Ιδρύματος

Οδηγός Εγγραφής και Χρήσης Εφαρμογής. Διαχειριστής Ιδρύματος Οδηγός Εγγραφής και Χρήσης Εφαρμογής Διαχειριστής Ιδρύματος 1 Δημιουργία λογαριασμού και Είσοδος στο σύστημα Για να εγγραφείτε στο Πληροφοριακό Σύστημα «Απέλλα» ως Διαχειριστής Ιδρύματος θα πρέπει να δημιουργήσετε

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

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL) Pascal- Εισαγωγή Η έννοια του προγράμματος Η επίλυση ενός προβλήματος με τον υπολογιστή περιλαμβάνει, όπως έχει ήδη αναφερθεί, τρία εξίσου

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

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS.

QEMS TUTORIAL CRM. Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS. QEMS TUTORIAL CRM Οδηγίες για το νέο πρωτοποριακό πρόγραμμα της QEMS. ΕΚΔΟΣΗ 1.0.1 + 26/6/2014 ΠΕΡΙΕΧΟΜΕΝΑ ΕΙΣΑΓΩΓΗ... 2 LOGIN... 3 δικαιωματα ΕΦΑΡΜΟΓΗς... 4 ΙΔΙΟΚΤΗΤΗΣ... 4 ADMIN / MANAGER... 4 ΥΠΑΛΗΛΟΣ...

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

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

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ ΙΣΟΖΥΓΙΩΝ ΚΡΕΑΤΟΣ 1. Γενικά ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ ΙΣΟΖΥΓΙΩΝ ΚΡΕΑΤΟΣ Η ηλεκτρονική υποβολή των ισοζυγίων κρέατος πραγματοποιείται μέσα από το λογισμικό Άρτεμις του Ελληνικού Γεωργικού Οργανισμού

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

3 Αλληλεπίδραση Αντικειμένων

3 Αλληλεπίδραση Αντικειμένων Αφαίρεση και Αρθρωσιμότητα 3 Αλληλεπίδραση Αντικειμένων Πώς συνεργάζονται τα αντικείμενα που δημιουργούμε Αφαίρεση (abstraction) είναι η δυνατότητα να αγνοούμε τις λεπτομέρειες και να εστιάζουμε την προσοχή

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

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

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

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

Ανάπτυξη Plugins για το AgentSheets

Ανάπτυξη Plugins για το AgentSheets Ανάπτυξη Plugins για το AgentSheets Thought Amplifier AgentSheets Ανάπτυξη Plugins AgentSheets 2.5 Συγγραφείς Τεκµηρίωσης: Alexander Repenning και Ronald Sudomo Εξελληνισµός Τεκµηρίωσης: Λίνος Βίγκλας,

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

1.Puzzle. ΕΠΙΜΕΛΕΙΑ: ΓΕΩΡΓΙΑ ΚΛΩΣΤΡΑΚΗ Σελίδα 1

1.Puzzle. ΕΠΙΜΕΛΕΙΑ: ΓΕΩΡΓΙΑ ΚΛΩΣΤΡΑΚΗ Σελίδα 1 1.Puzzle Μόλις ανοίξω το πρόγραμμα επιλέγω την εντολή Browse. Στη συνέχεια αναζητώ την εικόνα που έχω αποθηκεύσει σε ένα φάκελο (στην επιφάνεια εργασίας ή στα έγγραφά μου ή στο σκληρό μου δίσκο). Αφού

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή Στο εργαστήριο αυτό θα μάθουμε για τη χρήση συναρτήσεων με σκοπό την κατασκευή αυτόνομων τμημάτων προγραμμάτων που υλοποιούν μία συγκεκριμένη διαδικασία, τα οποία

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

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS WWW.OPENSMS.GR

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS WWW.OPENSMS.GR ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΠΛΑΤΦΟΡΜΑΣ OPENSMS WWW.OPENSMS.GR Τηλέφωνο: 2810-211111 Διαδικασία εισόδου στο opensms Η πρόσβαση στην πλατφόρμα του opensms πραγματοποιείται με την εισαγωγή του Ονόματος χρήστη και του

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

Οδηγός Εγγραφής και Χρήσης Εφαρμογής. Καθηγητή/Ερευνητή Ημεδαπής

Οδηγός Εγγραφής και Χρήσης Εφαρμογής. Καθηγητή/Ερευνητή Ημεδαπής Οδηγός Εγγραφής και Χρήσης Εφαρμογής Καθηγητή/Ερευνητή Ημεδαπής 1 Δημιουργία λογαριασμού και Είσοδος στο σύστημα Για να εγγραφείτε στο Γενικό Μητρώο του Πληροφοριακού Συστήματος «Απέλλα» ως Καθηγητής/Ερευνητής

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

Εγχειρίδιο Λειτουργίας Τράπεζας Χρόνου

Εγχειρίδιο Λειτουργίας Τράπεζας Χρόνου Εγχειρίδιο Λειτουργίας Τράπεζας Χρόνου Bee Group Α.Ε. [Type the company name] [Pick the date] Εγχειρίδιο λειτουργίας Τράπεζας Χρόνου 2 ΠΕΡΙΕΧΟΜΕΝΑ 1. Αρχική Σελίδα... 3 2. Δημιουργία Λογαριασμού... 3 3.

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

Εγχειρίδιο εγκατάστασης και χρήσης περιοδικών etwinning

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

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

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ. ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ Ηλεκτρονική Υποβολή Α.Π.Δ. ΠΕΡΙΕΧΟΜΕΝΑ 1) Είσοδος στην εφαρμογή 2) Δημιουργία Περιόδου Υποβολής 2.α) Ακύρωση Περιόδου Υποβολής 3) Μέθοδος Υποβολής: Συμπλήρωση Φόρμας 3.α) Συμπλήρωση

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι IEK ΟΑΕΔ ΚΑΛΑΜΑΤΑΣ ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΟΦΟΡΙΚΗΣ Εργαλεία ανάπτυξης εφαρμογών internet Ι Διδάσκουσα: Κανελλοπούλου Χριστίνα ΠΕ19 Πληροφορικής 4 φάσεις διαδικτυακών εφαρμογών 1.Εφαρμογές στατικής πληροφόρησης

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

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA

ΕΠΛ233 Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA Βιβλιοθήκες και Προσδιοριστές Πρόσβασης στην JAVA 2 «Μονάδα Μετάφρασης» 2 «Μονάδα Μετάφρασης» Όταν δημιουργείται ένα αρχείο πηγαίου κώδικα στην Java, το αρχείο καλείται µονάδα µετάφρασης (compilation unit)

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

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών Σκοπός Nα κατασκευάσουν πίνακες από δεδομένα. Να κατασκευάσουν συναρτήσεις με πίνακες. Να κάνουν χρήση

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

Οδηγίες για τη Χρήση του Εκπαιδευτικού Κοινωνικού δικτύου

Οδηγίες για τη Χρήση του Εκπαιδευτικού Κοινωνικού δικτύου Οδηγίες για τη Χρήση του Εκπαιδευτικού Κοινωνικού δικτύου Χαρπαντίδου Ζαχαρούλα Επιμορφώτρια Β επιπέδου ΠΕ 19-20 Υπεύθυνη ΚΕ.ΠΛΗ.ΝΕ.Τ. Δράμας 2014 Περιεχόμενα 1. Εισαγωγικά στοιχεία για το Edmodo.. 3 2.

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

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΑΙΤΗΣΕΩΝ ΔΙΑΔΑΝΕΙΣΜΟΥ (smille)

ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΑΙΤΗΣΕΩΝ ΔΙΑΔΑΝΕΙΣΜΟΥ (smille) ΗΛΕΚΤΡΟΝΙΚΟ ΣΥΣΤΗΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΑΙΤΗΣΕΩΝ ΔΙΑΔΑΝΕΙΣΜΟΥ (smille) Εγχειρίδιο Χρήσης ΚΕΝΤΡΙΚΗ ΒΙΒΛΙΟΘΗΚΗ Ε.Μ.Π. Το σύστημα smille αναπτύχθηκε στο Πανεπιστήμιο Μακεδονίας, Βιβλιοθήκη & Κέντρο πληροφόρησηας,

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

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΕΠΙΜΕΛΕΙΑ: ΜΑΡΙΑ Σ. ΖΙΩΓΑ ΚΑΘΗΓΗΤΡΙΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΘΕΩΡΙΑ 2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ και ΔΟΜΗ ΑΚΟΛΟΥΘΙΑΣ 2.1 Να δοθεί ο ορισμός

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

Ksyla.gr Σύντομη περιγραφή λειτουργίας

Ksyla.gr Σύντομη περιγραφή λειτουργίας Οδηγός Εφαρμογής Ksyla.gr Σύντομη περιγραφή λειτουργίας Το ksyla.gr είναι μια κοινότητα αγοραπωλησίας καύσιμου ξύλου σε οποιαδήποτε μορφή (καυσόξυλα, πέλλετ, μπρικέτες, κάρβουνα) καθώς επίσης και ειδών

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

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008

2 Ορισμός Κλάσεων. Παράδειγμα: Μηχανή για Εισιτήρια. Δομή μιας Κλάσης. Ο Σκελετός της Κλάσης για τη Μηχανή. Ορισμός Πεδίων 4/3/2008 Παράδειγμα: Μηχανή για Εισιτήρια 2 Ορισμός Κλάσεων Σύνταξη κλάσης: πεδία, κατασκευαστές, μέθοδοι Ένας αυτόματος εκδότης εισιτηρίων είναι μια μηχανή που δέχεται χρήματα και εκδίδει ένα εισιτήριο. Εκδίδει

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

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

ΠΜΣ 513 ΤΕΧΝΟΛΟΓΙΑ ΗΛΕΚΤΡΟΝ ΙΚΟΥ ΕΜΠΟΡΙΟΥ ΥΠΟΧΡΕΩΤΙΚΗ ΕΡΓΑΣΙΑ 2015 ΠΜΣ 513 ΤΕΧΝΟΛΟΓΙΑ ΗΛΕΚΤΡΟΝ ΙΚΟΥ ΕΜΠΟΡΙΟΥ ΥΠΟΧΡΕΩΤΙΚΗ ΕΡΓΑΣΙΑ 2015 19 Ιουλίου 2015 Αντικείµενο της παρούσης εργασίας είναι η ανάπτυξη ενός πληροφοριακού συστήµατος για την υποστήριξη των λειτουργιών προσφοράς/ανάθεσης

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

Εγχειρίδιο χρήσης. ΜΗΤΡΩΟ ΕΠΙΜΟΡΦΩΤΩΝ ΕΚΠΑΙΔΕΥΤΩΝ ΕΝΗΛΙΚΩΝ του ΚΑΝΕΠ ΓΣΕΕ

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

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

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014

ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ 8 ΝΟΕΜΒΡΙΟΥ 2014 8 ΝΟΕΜΒΡΙΟΥ 2014 ΑΡΧΕΙΟ ΕΚΘΕΣΕΩΝ ΠΡΑΓΜΑΤΟΓΝΩΜΟΣΥΝΗΣ ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΝΙΚΟΛΑΟΣ ΜΙΧΑΛΟΔΗΜΗΤΡΑΚΗΣ ΝΙΚΟΛΑΟΣ ΜΙΧΑΛΟΔΗΜΗΤΡΑΚΗΣ - ΠΡΟΓΡΑΜΜΑΤΙΣΤΗΣ ΥΠΗΡΕΣΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Σολωμού 41, 71306, Ηράκλειο Κρήτης τηλ/φαξ:

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

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0

Δομές Δεδομένων. Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse. 5ο εξάμηνο. v1.0 Δομές Δεδομένων 5ο εξάμηνο Σημειώσεις από το εργαστήριο για τον χειρισμό του προγράμματος Eclipse v1.0 Τις σημειώσεις κράτησαν και διαμόρφωσαν σε word οι: Κονδύλη Γαλήνη, ΑΜ 5576 Μάλλιου Χριστίνα, ΑΜ 5413

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

ΕΓΚΥΚΛΙΟΣ: 341/2013 ΘΕΜΑ: ΝΕΑ ΕΦΑΡΜΟΓΗ ΤΙΜΟΛΟΓΗΣΗΣ ΚΛΑΔΟΥ ΑΥΤΟΚΙΝΗΤΩΝ

ΕΓΚΥΚΛΙΟΣ: 341/2013 ΘΕΜΑ: ΝΕΑ ΕΦΑΡΜΟΓΗ ΤΙΜΟΛΟΓΗΣΗΣ ΚΛΑΔΟΥ ΑΥΤΟΚΙΝΗΤΩΝ ΕΓΚΥΚΛΙΟΣ: 341/2013 Αθήνα, 10/05/2013 ΠΡΟΣ: ΔΙΚΤΥΟ ΠΩΛΗΣΕΩΝ MEGA BROKERS S.A. ΘΕΜΑ: ΝΕΑ ΕΦΑΡΜΟΓΗ ΤΙΜΟΛΟΓΗΣΗΣ ΚΛΑΔΟΥ ΑΥΤΟΚΙΝΗΤΩΝ Αγαπητοί συνεργάτες, Θα θέλαμε να σας ενημερώσουμε ότι ολοκληρώθηκαν με επιτυχία

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

Εγχειρίδιο χρήσης εφαρμογής για Δικαιούχους

Εγχειρίδιο χρήσης εφαρμογής για Δικαιούχους Εγχειρίδιο χρήσης εφαρμογής για Δικαιούχους της δράσης «Ψηφιακές Υπηρεσίες Αλληλεγγύης στις 8 Περιφέρειες Αμιγούς Σύγκλισης» Πίνακας περιεχομένων Εισαγωγή... 2 Σελίδα εισόδου... 3 Εγγραφή... 4 Ι. Δικαιούχοι

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