Δράση 9.14 / Υπηρεσία εντοπισμού λογοκλοπής Κυρίως Παραδοτέο / Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) Επιμέρους Παραδοτέο 9.14.1.4 / Πληροφοριακό σύστημα υπηρεσίας λογοκλοπής. Χρονικό διάστημα Ιανουάριος 2013 Μάρτιος 2013 Υπεύθυνο Ίδρυμα Πάντειο Πανεπιστήμιο Ημερομηνία Παράδοσης: 4/4/2013 Έκδοση (τελική) Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 1
Εμπλεκόμενοι στην υλοποίηση του Ενδιάμεσου Παραδοτέου 9.14.1.4: Συγγραφείς Δημήτρης Γαβρίλης Δημήτρης Αντωνάκης Υπεύθυνος Δράσης Κωνσταντία Κακάλη Επιθεωρητές Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 2
Πίνακας Περιεχομένων Συνοπτικά στοιχεία κυρίως παραδοτέου 9.14.1... 4 Επιμέρους Παραδοτέο 9.14.1.4... 5 1.1 Περίληψη... 5 1.2 Εισαγωγή... 5 Περιβάλλον Διεπαφής χρηστη... 6 1.3 Εισαγωγή... 6 1.4 Λειτουργικότητες... 6 Εγγραφή... 6 Σύνδεση... 6 Προβολή / καθορισμός ρυθμίσεων... 7 Καταχώρηση εργασίας... 7 Προβολή εργασιών... 7 Αναζήτηση εργασιών... 7 Διεπαφή Μηχανής... 9 1.5 Εισαγωγή... 9 1.6 Προδιαγραφές API... 9 Καταχώριση τεκμηρίου... 9 Ανεύρεση τεκμηρίου... 10 Προβολή τεκμηρίων... 11 1.7 Πρόσβαση μέσω API... 12 Παράρτημα Ι... 13 Παράρτημα ΙΙ... 18 Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 3
ΣΥΝΟΠΤΙΚΑ ΣΤΟΙΧΕΙΑ ΚΥΡΙΩΣ ΠΑΡΑΔΟΤΕΟΥ 9.14.1 Περιγραφή - Εξέλιξη Το κυρίως παραδοτέο της δράσης αφορά στο σχεδιασμό και ανάπτυξη του λογισμικού και της βάσης δεδομένων για τη λογοκλοπή σε επιστημονικά άρθρα και εργασίες. Στόχοι του παραδοτέου αυτού είναι: η επιλογή των τεχνολογιών εκείνων που θα επιτρέψουν την αρτιότερη ανάπτυξη του αντίστοιχου λογισμικού η μελέτη της βιβλιογραφίας για την επιλογή του βέλτιστου αλγορίθμου ο οποίος θα αποτελέσει την καρδιά του συστήματος. ο καθορισμός των ροών εργασίας που εμπλέκονται έτσι ώστε να ενσωματωθεί η διαδικασία εντοπισμού της λογοκλοπής με όσο το δυνατόν πιο ανώδυνο τρόπο στις διαδικασίες κατάθεσης εργασιών των Ακαδημαϊκών ιδρυμάτων. Ο κύριος κορμός του συστήματος θα αποτελείται από μια βάση δεδομένων και ένα αποθετήριο στο οποίο θα κατατίθενται οι σχετικές εργασίες από τα Ακαδημαϊκά Ιδρύματα που εμπλέκονται. Η διαδικασία κατάθεσης θα μπορεί να γίνει χειροκίνητα (μέσω web based φορμών) ή αυτόματα (με χρήση web services τα οποία θα συνδεθούν με τις ροές εργασίας των ιδρυμάτων). Η διαδικασία αναγνώρισης λογοκλοπής θα πραγματοποιείται από ειδικό λογισμικό το οποίο θα υλοποιεί κάποιο σχετικό αλγόριθμο ο οποίος θα επιλεγεί από τη βιβλιογραφία. Θα πρέπει να σημειωθεί δε, ότι το παρόν έργο δεν αποτελεί ερευνητικό έργο αλλά αναπτυξιακό το οποίο θα πρέπει να κάνει χρήση δοκιμασμένων τεχνολογιών. Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 4
ΕΠΙΜΕΡΟΥΣ ΠΑΡΑΔΟΤΕΟ 9.14.1.4 1.1 Περίληψη Το παρόν επιμέρους παραδοτέο αφορά το πληροφοριακό σύστημα του συστήματος λογοκλοπής. Το πληροφοριακό σύστημα αποτελεί το βασικό σημείο αλληλεπίδρασης των χρηστών του συστήματος (τους χειριστές των βιβλιοθηκών των Ακαδημαϊκών Ιδρυμάτων που θα χρησιμοποιούν την υπηρεσία) μέσω του οποίου οι χρήστες μπορούν να υποβάλλουν εργασίες, να ελέγχουν ήδη καταχωρισμένες και γενικά να περιηγόυνται στα περιεχόμενα του συστήματος. 1.2 Εισαγωγή Το πληροφοριακό σύστημα αποτελείται από δύο διεπαφές: 1. Διεπαφή χρήστη (μέσω web browser) 2. Διεπαφή μηχανής (μέσω API) Αναφορικά με την πρώτη περίπτωση, το σύστημα είναι πλήρως προσβάσιμο μέσω web, είναι υλοποιημένο με την τεχνολογία PHP ενώ η βάση δεδομένων που χρησιμοποιεί είναι η MySQL. Ο χρήστης μπορεί να εκτελέσει ένα σύνολο λειτουργιών όπως θα αναλυθούν σε επόμενη ενότητα. Αναφορικά με την δεύτερη περίπτωση, το σύστημα επιτρέπει τη χρήση της υπηρεσίας μέσω ενός REST API το οποίο μπορεί να χρησιμοποιηθεί για καταχώρηση εργασιών, ή για ανεύρεση εργασίας όπως θα δούμε σε επόμενη ενότητα. Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 5
ΠΕΡΙΒΑΛΛΟΝ ΔΙΕΠΑΦΗΣ ΧΡΗΣΤΗ 1.3 Εισαγωγή Το περιβάλλον διεπαφής χρήστη είναι υλοποιημένο με την τεχνολογία PHP και είναι πλήρως προσβάσιμο μέσω Web. Είναι ιδιαίτερα απλό στη χρήση και εύχρηστο μη απαιτώντας εκπαίδευση (ιδιαίτερα σε εξοικειωμένους με Η/Υ χρήστες). Χρησιμοποιεί Javascript (και ειδικότερα βιβλιοθήκες JQuery), HTML5 και CSS3 και μπορεί να χρησιμοποιηθεί και από φορητές συσκευές. Μπορείτε να δείτε screenshots της εφαρμογής στο παράρτημα στο τέλος του παραδοτέου. 1.4 Λειτουργικότητες Οι λειτουργικότητες του συστήματος συνοψίζονται στις εξής: Εγγραφή Σύνδεση Προβολή / καθορισμός ρυθμίσεων Καταχώρηση εργασίας Προβολή εργασιών Αναζήτηση εργασιών ΕΓΓΡΑΦΗ Το σύστημα παρέχει πρόσβαση μόνο σε εξουσιοδοτημένους χρήστες. Για τη λήψη κωδικού πρόσβασης υπάρχει η διαδικασία εγγραφής μέσω της οποίας ο χρήστης εισάγει τα στοιχεία του και τα υποβάλλει. Οι διαχειριστές αφού επεξεργαστούν τα στοιχεία αυτά, δημιουργούν τον κωδικό πρόσβασης και αποστέλλουν τα στοιχεία στον χρήστη. Ο κάθε χρήστης πρέπει να ταχτοποιηθεί και να συσχετιστεί με Ακαδημαϊκό Ίδρυμα. ΣΥΝΔΕΣΗ Η διαδικασία σύνδεσης είναι απαραίτητη για την είσοδο στο σύστημα. Το κουμπί σύνδεσης βρίσκεται επάνω δεξιά. Όταν ο χρήστης συνδεθεί επιτυχώς, το κουμπί «Σύνδεση» αντικαθίσταται με το «Αποσύνδεση». Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 6
ΠΡΟΒΟΛΗ / ΚΑΘΟΡΙΣΜΟΣ ΡΥΘΜΙΣΕΩΝ Μέσω της προβολής ρυθμίσεων, ο χρήστης μπορεί να αλλάξει τον κωδικό πρόσβασης που έχει ή το email του. Επιπλέον, μπορεί να δει τα στοιχεία πρόσβασης μηχανής τα οποία είναι απαραίτητα για την πρόσβαση μέσω του API που δίνει το σύστημα. ΚΑΤΑΧΩΡΗΣΗ ΕΡΓΑΣΙΑΣ Η επιλογή καταχώρησης εργασίας επιτρέπει στον χρήστη να καταχωρήσει χειροκίνητα μια εργασία στο σύστημα. Η εργασία αφού καταχωρηθεί, μπαίνει σε μια ουρά επεξεργασίας και αναμένει να ελεγχθεί για λογοκλοπή. Μια εργασία θα για να μπορέσει να καταχωρηθεί θα πρέπει απαραιτήτως να περιλαμβάνει τα εξής στοιχεία: Τίτλο Ίδρυμα Θεματική κατηγορία Γλώσσα Στοιχεία συγγραφέα Πλήρες κείμενο σε επεξεργάσιμη plain text μορφή Ημερομηνία ΠΡΟΒΟΛΗ ΕΡΓΑΣΙΩΝ Η επιλογή προβολής εργασιών δίνει τη δυνατότητα στο χρήστη να δεί τις εργασίες που έχει καταχωρήσει στο σύστημα. Οι εργασίες αυτές είναι χωρισμένες σε δύο βασικές κατηγορίες: Σε εκκρεμότητα Καταχωρημένες Η πρώτη περίπτωση αφορά εργασίες που καταχωρήθηκαν πρόσφατα και δεν έχουν προλάβει να επεξεργαστούν από το σύστημα (δηλαδή να ελεγχθούν για λογοκλοπή). Οι εργασίες σε εκκρεμότητα φαίνονται πάντοτε επάνω. Επιπλέον, μέσα από την επιλογή προβολής εργασιών, ο χρήστης μπορεί εκτός από τις δικές του εργασίες να δει και τις εργασίες του ιδρύματος στο οποίο ανήκει (πατώντας στην αντίστοιχη επιλογή). ΑΝΑΖΗΤΗΣΗ ΕΡΓΑΣΙΩΝ Η αναζήτηση εργασιών επιτρέπει στον χρήστη να αναζητήσει εργασίες που βρίσκονται καταχωρημένες στο σύστημα. Η αναζήτηση γίνεται με τα πεδία: τίτλος, όνομα συγγραφέα, περιγραφή, αναγνωριστικό. Η αναζήτηση επιστρέφει σε πίνακα Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 7
και σελιδοποιημένα τα αποτελέσματα. Επιλέγοντας σε ένα τεκμήριο, ο χρήστης μπορεί να δει λεπτομέρειες για αυτό (τα πλήρη στοιχεία με βάση τα οποία καταχωρήθηκε). Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 8
ΔΙΕΠΑΦΗ ΜΗΧΑΝΗΣ 1.5 Εισαγωγή Η διεπαφή μηχανής αποσκοπεί στην αυτοματοποίηση και ενσωμάτωση της μηχανής αναγνώρισης λογοκλοπής με τα υπάρχοντα Ακαδημαϊκά αποθετήρια. Μέσω του API καθίσταται δυνατή η ενσωμάτωση στις ροές εργασίας του κάθε ιδρύματος της διαδικασίας αναγνώρισης λογοκλοπής. 1.6 Προδιαγραφές API Το παρεχόμενο API δίνει τις εξής δυνατότητες: Καταχώρηση τεκμηρίου Ανεύρεση τεκμηρίου με βάση αναγνωριστικό Προβολή τεκμηρίων ανά Ακαδημαϊκό Ίδρυμα Προβολή αποτελεσμάτων αναγνώρισης λογοκλοπής ανά τεκμήριο (με βάση αναγνωριστικό) Προβολή αποτελεσμάτων αναγνώρισης λογοκλοπής (ανά Ακαδημαϊκό Ίδρυμα) Παρακάτω μπορείτε να δείτε αναλυτικά παραδείγματα για κάθε λειτουργικότητα. Επιπλέον, στο Παράρτημα ΙΙ φαίνονται και ορισμένα παραδείγματα. ΚΑΤΑΧΩΡΙΣΗ ΤΕΚΜΗΡΙΟΥ Όνομα υπηρεσίας: - put (http://my.domain.gr/api/put) Μεταβλητές εισόδου GET: - key [υποχρεωτικό] Μεταβλητές εισόδου POST (όλα [υποχρεωτικά]): - fname - lname - email - item_title - item_lang - item_subject - item_text - creation_date - item_comments Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 9
Επιστρεφόμενες τιμές: - XML έγγραφο το οποίο περιέχει το id το οποίο μόλις ανατέθηκε στο έγγραφο. o Αυτό το id χρησιμοποιείται ως σημείο αναφοράς για μελλοντικούς ελέγχους. o Το institution_id δίδεται αυτόματα από το σύστημα (με βάση το key το οποίο αντιστοιχεί σε ένα μοναδικό Ακαδημαϊκό Ίδρυμα). o Το match περιέχει ένα ποσοστό (σε δεκαδική μορφή από 0-1) αναγνώρισης λογοκλοπής. Όσο μεγαλύτερο τόσο μεγαλύτερη η πιθανότητα να υπάρχει λογοκλοπή στο τεκμήριο. <?xml version="1.0" encoding="utf-8"?> <item id= XXX institution_id= [INSTITUTION_ID] title= [ITEM_TITLE] status= pending match= XX.XX /> ΑΝΕΥΡΕΣΗ ΤΕΚΜΗΡΙΟΥ Όνομα υπηρεσίας: - view (http://my.domain.gr/api/view) Μεταβλητές εισόδου GET: - key [υποχρεωτικό] - id [υποχρεωτικό] Επιστρεφόμενες τιμές: - XML έγγραφο το οποίο περιέχει το id το οποίο μόλις ανατέθηκε στο έγγραφο. Αυτό το id χρησιμοποιείται ως σημείο αναφοράς για μελλοντικούς ελέγχους. <?xml version="1.0" encoding="utf-8"?> <item id= XXX institution_id= [INSTITUTION_ID] title= [ITEM_TITLE] status= pending match= XX.XX > <item_title> </item_title> <item_lang> </item_lang> <item_subject> </item_subject> <item_text> </item_text> <item_comments> </item_comments> Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 10
<creation_date> </creation_date> <author_fname> </author_fname> <author_lname> </author_lname> <author_email> </author_email> <institution id= XX > </institution> </item> ΠΡΟΒΟΛΗ ΤΕΚΜΗΡΙΩΝ Όνομα υπηρεσίας: - get (http://my.domain.gr/api/get) Μεταβλητές εισόδου GET: - key [υποχρεωτικό] - id [προεραιτικό] Επιστρεφόμενες τιμές: - XML έγγραφο το οποίο περιέχει μια λίστα με τα έγγραφα τα οποία βρέθηκαν. o Αν έχει δοθεί id εισόδου τότε επιστρέφεται το πολύ 1, o Aν η μεταβλητή εισόδου id είναι κενή τότε επιστρέφονται όλα τα τεκμήρια του φορέα. <?xml version="1.0" encoding="utf-8"?> <items> <item id= XXX institution_id= [INSTITUTION_ID] title= [ITEM_TITLE] status= completed match= XX.XX /> <item id= XXX institution_id= [INSTITUTION_ID] title= [ITEM_TITLE] status= completed match= XX.XX /> <item id= XXX institution_id= [INSTITUTION_ID] title= [ITEM_TITLE] status= completed match= XX.XX /> </items> Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 11
1.7 Πρόσβαση μέσω API Για την προστασία του συστήματος, η πρόσβαση μέσω API απαιτεί κλειδί πρόσβασης. Το κλειδί πρόσβασης είναι ένα αλφαριθμητικό το οποίο είναι μοναδικό ανά Ακαδημαϊκό Ίδρυμα και λειτουργεί σε συνδυασμό με κάποιο domain name. Για παράδειγμα, για το Πάντειο Πανεπιστήμιο: - Κλειδί: XQU425FGS23ER - Domain: panteion.gr Κάθε Ακαδημαϊκό Ίδρυμα έχει οριστεί ένα τυχαίο κλειδί και έχει συσχετιστεί με ένα domain πρόσβασης. Οι πληροφορίες αυτές (το κλειδί πρόσβασης και το ορισμένο domain) είναι διαθέσιμες σε πιστοποιημένους χρήστες από την επιλογή Ρυθμίσεις. Οι χρήστες δεν μπορούν να τροποποιήσουν το κλειδί ούτε να αλλάξουν το συσχετισμένο domain πρόσβασης. Για κάτι τέτοιο απαιτείται απευθείας αποστολή email στους διαχειριστές του συστήματος. Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 12
ΠΑΡΑΡΤΗΜΑ Ι Screenshots συστήματος Εικόνα 1 Η αρχική σελίδα της Υπηρεσίας Εντοπισμού Λογοκλοπής Εικόνα 2 Προβολή σε tablet Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 13
Εικόνα 3 Δυνατότητα Εγγραφής Εικόνα 4 Δυνατότητα Σύνδεσης Εικόνα 5 Αλλαγή ρυθμίσεων πελάτη - Βιβλιοθήκης Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 14
Εικόνα 6 Αναζήτηση τεκμηρίων στην Βάση Δεδομένων Εικόνα 7 Φόρμα υποβολής νέων τεκμηρίων για έλεγχο λογοκλοπής Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 15
Εικόνα 8 Δυνατότητα κύλισης και αναζήτησης στις διαθέσιμες επιλογές Εικόνα 9 Προσθήκη άνω της μια γλώσσας και αφαίρεσή τους Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 16
Εικόνα 10 Επιλογή ημερομηνίας από το διαθέσιμο ημερολόγιο Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 17
ΠΑΡΑΡΤΗΜΑ ΙΙ Παραδείγματα πρόσβασης μέσω API Έστω ότι: - key=ad35flk34 - Η υπηρεσία βρίσκεται στο: http://pl.panteion.gr/api/ Καταχώρηση τεκμηρίου http://pl.panteion.gr/api/put?key=ad35flk34 [POST] - fname - lname - email - item_title - item_lang - item_subject - item_text - creation_date - item_comments Η κλήση επιστρέφει τεκμήριο με id=5 Προβολή τεκμηρίου http://pl.panteion.gr/api/view?key=ad35flk34&id=5 Η κλήση επιστρέφει ένα XML έγγραφο με τα πλήρη στοιχεία του τεκμηρίου Ανεύρεση τεκμηρίου http://pl.panteion.gr/api/get?key=ad35flk34&id=5 Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 18
Η κλήση επιστρέφει ένα XML έγγραφο όπου μπορούμε να ελέγξουμε αν έχει ολοκληρωθεί η διαδικασία αναγνώρισης (status= completed ) και αν ναι, τότε να δούμε το ποσοστό αναγνώρισης (match= XX.XX ). Σχεδιασμός και ανάπτυξη λογισμικού (λογοκλοπής) και βάσης δεδομένων (αποθετηρίου) / 9.14.1 ΣΕΛΙΔΑ 19