ΗΥ566 RDF ΟΝΤΟΛΟΓΙΑ Football Championship Αλεβίζου Βασιλική Σερφιώτης Γεώργιος Τριανταφυλλίδου Δέσποινα
Οντολογία: Football Championship
Περιγραφή κλάσεων
League Περιγράφει τις κατηγορίες του πρωταθλήματος Τα βασικά χαρακτηριστικά μιας κατηγορίας που μας ενδιαφέρει να μοντελοποιήσουμε στο σχήμα είναι: hasName: το όνομα της κατηγορίας, string teamsNo: ο αριθμός των ομάδων που συμμετέχουν στο πρωτάθλημα, integer
FootballClub Συμμετέχουν οι ομάδες του πρωταθλήματος Τα βασικά χαρακτηριστικά μιας ομάδας που μας ενδιαφέρει να μοντελοποιήσουμε στο σχήμα είναι: officialName: το όνομα της ομάδας, string foundationYear: το έτος ίδρυσης του συλλόγου, dateTime homeCourt: το γήπεδο της ομάδας, string points: οι βαθμοί που έχει συνολικά από τους αγώνες της, integer
FootballClub Σχέσεις της ομάδας με άλλες οντότητες του πρωταθλήματος: participates: η σχέση συνδέει την ομάδα με τη (μοναδική) κατηγορία στην οποία παίζει Occupies: δηλώνει το γεγονός ότι μία ομάδα στελεχώνεται από πρόσωπα. Τα πρόσωπα, εν γένει, συμμετέχουν με διαφορετικούς ρόλους στην ομάδα (π.χ. οι παίκτες λειτουργούν διαφορετικά στην ομάδα από τον πρόεδρο). Οι παρακάτω σχέσεις εξειδικεύουν την ιδιότητα occupies: hasPlayers: συνδέει την ομάδα με τους παίκτες της TrainedBy: συνδέει την ομάδα με τον προπονητή της managedBy: συνδέει την ομάδα με τον πρόεδρό της.
Person Περιγράφει όλους τους ανθρώπους που (δια)πλέκονται στο πρωτάθλημα. Το βασικό γνώρισμα: name: το όνομα κάθε ανθρώπου, string.
ClubPersonnel Συμμετέχουν οι άνθρωποι που δουλεύουν για την ομάδα. Κάθε κατηγορία τέτοιων έχει διαφορετικά καθήκοντα.
ClubPersonnel Υποκλάσεις σχετικές με τις κατηγορίες των απασχολουμένων στην ομάδα. Coach Player Administrator TechnicalStaff Το γνώρισμα που μας ενδιαφέρει είναι η ηλικία τους: born: η ημερομηνία γέννησης των απασχολούμενων στην ομάδα, dateTime. Η ημερομηνία αυτή πρέπει να είναι μικρότερη από τη σημερινή, περιορισμός που δεν μπορούμε να μοντελοποιήσουμε σε RDFS. Με την ClubPersonnel συνδέεται η FootballClub με τη σχέση occupies.
Administrator Ανήκει ο πρόεδρος της ομάδας. Η κλάση μπορεί να έχει μόνο ένα στιγμιότυπο Η FootballClub συνδέεται με αυτή με την managedBy.
Coach Ανήκει ο προπονητής ομάδας. Η ομάδα συνδέεται με αυτόν με τη σχέση trainedBy.
Player Μοντελοποιεί τους παίκτες της ομάδας. Τα ειδικά γνωρίσματα των παικτών είναι: position: η θέση που παίζει καθένας και μπορεί να έχει τιμές: επιθετικός (F), αμυντικός (D), μέσος (M), τερματοφύλακας (G), string. goals: τα τέρματα που έχει επιτύχει κάθε παίκτης συνολικά στο πρωτάθλημα.
Player Ιδιότητες που αφορούν σε σχέσεις των παικτών με άλλες οντότητες του πρωταθλήματος είναι: previousTeam: οι προηγούμενες ομάδες του παίκτη PlayerHasStatistics: τα στατιστικά του παίκτη, ανά αγώνα. Συνδέει τον παίκτη με την κλάση StatsPlayerMatch. Με τον παίκτη συνδέεται η ομάδα με τη σχέση hasPlayer.
TechnicalStaff Ανήκει το τεχνικό προσωπικό της ομάδας. Το γνώρισμα για κάθε στιγμιότυπο είναι η περιγραφή του description: περιγραφή των καθηκόντων του τεχνικού προσωπικού, string
Referee Υποκλάση της Person και σ’ αυτή ανήκουν οι διαιτητές του πρωταθλήματος.
Match Μοντελοποιούνται όλοι οι αγώνες που γίνονται κατά τη διάρκεια του πρωταθλήματος. Οι σχέσεις: home/visitor: η γηπεδούχος/φιλοξενούμενη ομάδα OfficiatedBy/assistantReferee: ο διαιτητής και οι βοηθοί του matchHasStatistics: τα στατιστικά που αντιστοιχούν σε ένα συγκεκριμένο αγώνα
StatsPlayerMatch Περιέχει τα στατιστικά για τους παίκτες αναφορικά με τους αγώνες που έχουν παίξει.
StatsPlayerMatch Επιτρέπεται μόνο μία εγγραφή ανά παίκτη, για κάθε αγώνα. Ο περιορισμός αυτός δε μοντελοποιείται στο σχήμα. Οι πληροφορίες αυτών των στατιστικών είναι: scoredGoals: τα γκολ για ένα παίκτη σε ένα αγώνα, integer yellowCard: TRUE, αν ο παίκτης έχει δεχτεί κίτρινη κάρτα σε ένα αγώνα, FALSE, διαφορετικά, boolean redCard: TRUE, αν ο παίκτης έχει δεχτεί κόκκινη κάρτα σε ένα αγώνα, FALSE, διαφορετικά, boolean. Η κλάση συνδέεται με τις Player και Match με τις αντίστροφες των σχέσεων playerHasStatistics και matchHasStatistics, αντίστοιχα.
Προβλήματα της RDF (1/2) Δεν προβλέπει περιορισμούς πληθικότητας στα γνωρίσματα/σχέσεις των κλάσεων. Έπειτα, δεδομένης μιας σχέσης έχουμε τη δυνατότητα να προσπελάσουμε τα δεδομένα μόνο της μιας κλάσης. Πρέπει να ορίσουμε τις αντίστοιχες αντίστροφες, ώστε να έχουμε πρόσβαση και στα δεδομένα της άλλης. Δεν μπορούμε να περιορίσουμε το πεδίο τιμών μιας κλάσης σε συγκεκριμένες τιμές (π.χ. η θέση ενός παίκτη)
Προβλήματα της RDF Δεν μπορούμε να περιορίσουμε την παρουσία κάποιου μεταδεδομένου σε μία, μόνο, κλάση. Σχετικό παράδειγμα είναι αυτό του Administrator της ομάδας, που πρέπει να μην είναι, για παράδειγμα, και παίκτης της. Είναι γνωστό ότι οι παραπάνω περιορισμοί της RDF αναιρούνται παρουσία άλλων μοντέλων αναπαράστασης οντολογιών. Στην επόμενη φάση της εργασίας μας θα μοντελοποιήσουμε το Football Championship σε ένα από αυτά.
Επερωτήσεις στο Σχήμα (1/2) Ποιες είναι οι κύριες κλάσεις της οντολογίας; topclass Να βρεθεί ο μέσος όρος των άμεσων υποκλάσεων; avg(select count(subclassof^(C)) from Class{C} where C != Resource )
Επερωτήσεις στο Σχήμα (2/2) Να βρεθεί ο μέγιστος αριθμός των άμεσων υποκλάσεων max(select count(subclassof^(C)) from Class{C} where C != Resource) Να βρεθεί ο μέσος αριθμός ιδιοτήτων ανά κλάση (άμεσες ή κληρονομούμενες) avg(select from from Class{C})
Επερωτήσεις στα δεδομένα (1/4) Ποιοι πρώην παίκτες του Ολυμπιακού συμμετέχουν στο πρωτάθλημα με τα χρώματα άλλης ομάδας; SELECTY FROMhasPlayer{Y}. previousTeam.officialName{W} WHEREW=”Olympiakos”
Επερωτήσεις στα δεδομένα (2/4) Ποιος είναι ο πρώτος σκόρερ του Αιγάλεω στο πρωτάθλημα; SELECTY FROM{B}hasPlayer{Y}.goals{W}, {L}officialName{N} WHEREN = "Aegaleo" AND B = L AND W = max(SELECTZ FROM{A}hasPlayer.goals{Z} WHEREA = L )
Επερωτήσεις στα δεδομένα (3/4) Σε πόσους αγώνες έχει εκτελέσει χρέη βοηθού διαιτητή ο Κύρος Βασσάρας; SELECTCOUNT(X) FROM{X}assistantReferee.name{Y} WHEREY=”Kyros Bassaras”
Επερωτήσεις στα δεδομένα (4/4) Ποιοι αγώνες έχουν γίνει στην Α Εθνική; SELECTX FROM{X}home.participates.hasName{Y} WHEREY=“A-National”