Αναπαράσταση Στοιχείων του AWPS με Χρήση XML

Σε αυτή την υποενότητα και έχοντας παρουσιάσει το απαιτούμενο υπόβαθρο της γλώσσας XML θα αναφερθούμε στον τρόπο περιγραφής των δεδομένων που ανταλλάσσονται μεταξύ των πελατών, παρόχων και των υπερ-κόμβων του συστήματος LibraRing. Αυτά συνίστανται στα δεδομένα που ήδη έχουν αναπαρασταθεί με τη χρήση του AWPS στην ενότητα 2.5, δηλαδή στις δημοσιεύσεις, στις επερωτήσεις και στις συνδρομές2.15.

Μία δημοσίευση μπορεί να αναπαρασταθεί με τη γλώσσα XML βάσει του μοντέλου AWPS χρησιμοποιώντας μία ετικέτα που καθορίζει την αρχή μίας δημοσίευσης και ενός αυθαίρετου αριθμού από εμφωλιασμένες ετικέτες που περιγράφουν την δημοσίευση και αντιστοιχούν στα ζεύγη γνωρίσματος-τιμής του μοντέλου AWPS. Επειδή, το σύστημα LibraRing έχει σχεδιαστεί ώστε να μην περιορίζει τον τύπο της δημοσίευσης, τα ονόματα και ο αριθμός των ετικετών δεν μπορεί να είναι προκαθορισμένος. Έτσι, κάθε πάροχος έχει τη δυνατότητα να κατασκευάσει μία περιγραφή που να αρμόζει στις επιθυμίες και τις ανάγκες του ή ακόμα να δημοσιοποιήσει οποιουδήποτε τύπου πόρους, όπως ταινίες, μουσική, βιβλία. Σε κάθε περίπτωση το σύστημα LibraRing προσφέρει δυνατότητα εξακρίβωσης της εγκυρότητας ενός XML εγγράφου, οπότε κάθε τέτοια περιγραφή θα πρέπει να συνοδεύεται και από το αντίστοιχο έγγραφο DTD.

Σύμφωνα με τα παραπάνω, θα μπορούσε ένας πάροχος να δημοσιοποιεί πόρους που να αναπαριστούν βιβλία. Αυτά τα βιβλία μπορεί να περιγράφονται από συγγραφέα, τίτλο, ημερομηνία έκδοσης, τύπος έκδοσης, εκδοτικό οίκο, κριτική, θέμα και ένα αναγνωριστικό κωδικό. Έτσι, μία δημοσίευση βιβλίου θα μπορούσε να αναπαρασταθεί με XML ως ακολούθως:

Table: Αναπαράσταση δημοσίευσης με XML
[rgb]0.8,0.8,0.8<<11442> COLSPAN=1><Book>
[rgb]0.8,0.8,0.8<<11443> COLSPAN=1>        <Author>Joseph Heller</Author>
[rgb]0.8,0.8,0.8<<11444> COLSPAN=1>        <Title>Catch</Title>
[rgb]0.8,0.8,0.8<<11445> COLSPAN=1>        <PublicationDate>09-2000</PublicationDate>
[rgb]0.8,0.8,0.8<<11446> COLSPAN=1>        <Edition>Trade</Edition>
[rgb]0.8,0.8,0.8<<11447> COLSPAN=1>        <Isbn>0684833395</Isbn>
[rgb]0.8,0.8,0.8<<11448> COLSPAN=1>        <Publisher>Simon and Schuster<Publisher>
[rgb]0.8,0.8,0.8<<11449> COLSPAN=1>        <Subject>Science Fiction</Subject>
[rgb]0.8,0.8,0.8<<11450> COLSPAN=1>        <Review>http://www.book-review.com/heller-catch22.html</Review>
[rgb]0.8,0.8,0.8<<11451> COLSPAN=1></Book>
 

Αυτός ο τύπος περιγραφής ακολουθεί τους κανόνες που ορίζει το επόμενο έγγραφο DTD:

Table: Έγγραφο DTD για την αναπαράσταση μίας δημοσίευσης
[rgb]0.8,0.8,0.8<<11456> COLSPAN=1><!ELEMENT Book (Author?, Title, PublicationDate?, Edition?, Isbn?,  
[rgb]0.8,0.8,0.8<<11458> COLSPAN=1>Publisher?, Subject?, Review?)* >  
[rgb]0.8,0.8,0.8<<11460> COLSPAN=1><!ELEMENT Author (#PCDATA)>  
[rgb]0.8,0.8,0.8<<11462> COLSPAN=1><!ELEMENT Title (#PCDATA)>  
[rgb]0.8,0.8,0.8<<11464> COLSPAN=1><!ELEMENT PublicationDate (#PCDATA)>  
[rgb]0.8,0.8,0.8<<11466> COLSPAN=1><!ELEMENT Edition (#PCDATA)>  
[rgb]0.8,0.8,0.8<<11468> COLSPAN=1><!ELEMENT Isbn (#PCDATA)>  
[rgb]0.8,0.8,0.8<<11470> COLSPAN=1><!ELEMENT Publisher (#PCDATA)>  
[rgb]0.8,0.8,0.8<<11472> COLSPAN=1><!ELEMENT Subject (#PCDATA)>  
[rgb]0.8,0.8,0.8<<11474> COLSPAN=1><!ELEMENT Review (#PCDATA)>  
   

Όμοια, ένας πελάτης έχει τη δυνατότητα να θέσει μία επερώτηση που να αφορά σε οποιοδήποτε τύπο δημοσίευσης. Παρ' όλα αυτά, οι επερωτήσεις έχουν μία πιο καθορισμένη δομή από τις δημοσιεύσεις, όσον αφορά στις ετικέτες. Όλες οι επερωτήσεις έχουν συγκεκριμένες ετικέτες, οι οποίες αντιστοιχούν στους τελεστές του μοντέλου AWPS και είναι οι επόμενες:

equals:
αναπαριστά τον τελεστή ισότητας,
contains:
αναπαριστά τον τελεστή περιεκτικότητας,
resembles:
αναπαριστά τον τελεστή ομοιότητας.

Κάθε τέτοιος τελεστής είναι δυαδικός, δηλαδή εφαρμόζεται σε δύο τελεστέους και αναπαριστά τη σχέση τους. Κάτι τέτοιο μπορεί να εκφραστεί αν κάθε ετικέτα τελεστή φέρει ένα γνώρισμα που θα αντιστοιχεί στον πρώτο τελεστέο, ενώ ο άλλος τελεστέος θα αντιστοιχεί στη τιμή της ετικέτας. Αυτό το γνώρισμα είναι που κάνει μία επερώτηση να είναι γενική και να μπορεί να αναφερθεί σε οποιοδήποτε τύπο δημοσίευσης. Ειδικά για τον τελεστή ομοιότητας θα πρέπει να φέρει και ένα δεύτερο γνώρισμα μέσω του οποίου θα καθορίζεται το κατώφλι ομοιότητας. Επίσης, το μοντέλο AWPS παρέχει τη δυνατότητα επερώτησης της ομοιότητας και της περιεκτικότητας μίας λέξης ή ενός λεκτικού προτύπου με/σε ένα γνώρισμα. Κάτι τέτοιο, μπορεί να αναπαρασταθεί εύκολα, αν οι αντίστοιχες ετικέτες έχουν ως τιμή έναν αριθμό από ετικέτες (<word>) που έχουν ως τιμή τη λέξη ή το λεκτικό πρότυπο. Έτσι, για την επερώτηση ενός βιβλίου θα μπορούσαμε να χρησιμοποιήσουμε το επόμενο έγγραφο XML:

Table: Αναπαράσταση επερώτησης με XML
[rgb]0.8,0.8,0.8<<11484> COLSPAN=1><query>
[rgb]0.8,0.8,0.8<<11485> COLSPAN=1>        <equals attrName="Edition">Trade</equals>
[rgb]0.8,0.8,0.8<<11486> COLSPAN=1>        <contains attrName="Subject">
[rgb]0.8,0.8,0.8<<11487> COLSPAN=1>                <word>Science</word>
[rgb]0.8,0.8,0.8<<11488> COLSPAN=1>        </contains>
[rgb]0.8,0.8,0.8<<11489> COLSPAN=1>        <contains attrName="Author">
[rgb]0.8,0.8,0.8<<11490> COLSPAN=1>                <word>Joseph</word>
[rgb]0.8,0.8,0.8<<11491> COLSPAN=1>        </contains>
[rgb]0.8,0.8,0.8<<11492> COLSPAN=1>        <resembles attrName="Publisher" threshold="0.6">
[rgb]0.8,0.8,0.8<<11493> COLSPAN=1>                <word>Simon Nikolaou Schuster</word>
[rgb]0.8,0.8,0.8<<11494> COLSPAN=1>        </resembles>
[rgb]0.8,0.8,0.8<<11495> COLSPAN=1><query>
 

Το έγγραφο DTD που περιγράφει τις επερωτήσεις που ορίστηκαν είναι ο επόμενος:

Table: Έγγραφο DTD για την αναπαράσταση μίας επερώτησης
[rgb]0.8,0.8,0.8<<11500> COLSPAN=1><!ELEMENT query (equals*,contains*,resembles*)>  
[rgb]0.8,0.8,0.8<<11502> COLSPAN=1><!ELEMENT equals (#PCDATA)>  
[rgb]0.8,0.8,0.8<<11504> COLSPAN=1><!ATTLIST equals attrName CDATA #REQUIRED>  
[rgb]0.8,0.8,0.8<<11506> COLSPAN=1><!ELEMENT contains (word+)>  
[rgb]0.8,0.8,0.8<<11508> COLSPAN=1><!ATTLIST contains attrName CDATA #REQUIRED>  
[rgb]0.8,0.8,0.8<<11510> COLSPAN=1><!ELEMENT resembles (word+)>  
[rgb]0.8,0.8,0.8<<11512> COLSPAN=1><!ATTLIST resembles attrName CDATA #REQUIRED threshold CDATA #REQUIRED>  
[rgb]0.8,0.8,0.8<<11514> COLSPAN=1><!ELEMENT word (#PCDATA)>  
   

Ο τρόπος συνδρομής ενός πελάτη μπορεί να αναπαρασταθεί κατά τον ίδιο τρόπο με αυτό της επερώτησης, αφού μία συνδρομή είναι μία επερώτηση διαρκείας, δηλαδή εκτελείται κάθε φορά που μία νέα δημοσίευση καταχωρείται στο σύστημα LibraRing. Σε αυτή την περίπτωση η αναπαράσταση θα αποθηκευτεί στον υπερ-κόμβο του συστήματος LibraRing και ο πελάτης δεν θα αναμένει άμεση απάντηση.

Charalampos Nikolaou 2008-04-02