Flex Κέλυφος Εμπείρων Συστημάτων Expert System Shell Νίκος Βασιλειάδης, Άνοιξη 2003.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Τι είναι ο προγραμματισμός
Advertisements

Κληρονομικότητα. Εισαγωγή  Κληρονομικότητα (Inheritance) καλείται ο μηχανισμός με τον οποίο μία νέα κλάση που ονομάζεται παράγωγη (derived class) δημιουργείται.
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Προγραμματισμός Ι (αποφύγετέ τον!) 3) Διακοπτόμενος βρόχος: (αποφύγετέ τον!) float energy;......while(TRUE){drink_water(); if(energy
7.3.8 Μεταφραστές Ελληνογαλλική Σχολή Καλαμαρί - Τίκβα Χριστίνα.
Τι είναι ο υπολογιστής; Τι είναι ο προγραμματισμός
PROLOG.
Εργαστήριο μαθήματος «Τεχνολογία Γνώσης» Σαντιπαντάκης Γιώργος
Εισαγωγή στους Η/Υ Πίνακες.
Εκτέλεση Αλγορίθμων σε ψευδογλώσσα
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
Μήτρες (templates)  Μία μήτρα είναι ένα κομμάτι κώδικα που περιέχει παραμέτρους οι οποίες δέχονται ως τιμές τύπους δεδομένων.  Είναι ένας μηχανισμός.
Βρόχος με συνθήκη εισόδου στη C, οδηγούμενος από μετρητή: for
Resource Description Framework
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Στατικές μέθοδοι και μεταβλητές Εσωτερικές κλάσεις.
Εισαγωγή στις Αρχές της Επιστήμης των Η/Υ» Β΄ τάξης Γενικού Λυκείου
Η ΓΛΩΣΣΑ C ΜΑΘΗΜΑ 2.
ΒΡΟΧΟΙ ΜΑΘΗΜΑ 5. ΒΡΟΧΟΙΒΡΟΧΟΙ Ο Βρόχος (loop) αποτελείται από προτάσεις επανάληψης. Οι προτάσεις επανάληψης είναι οι προτάσεις που επαναλαμβάνουν ένα.
ΣΥΝΑΡΤΗΣΕΙΣ.
ΗΥ302 Διδακτική της Πληροφορικής Η γλώσσα προγραμματισμού LOGO Writer Ομάδα Εργασία: Αλεβίζου Βασιλική (Α.Μ.:1029) Κοφφινά Ιωάννα (Α.Μ.:1035) Τριανταφυλλίδου.
Μεταβλητές – εντολές εκχώρησης- δομή ακολουθίας
Ενότητα Α.4. Δομημένος Προγραμματισμός
Η αλληλουχία των ενεργειών δεν είναι πάντα μία και μοναδική!!!
Επικοινωνία Ανθρώπου Μηχανής HTML CGI JAVASCRIPT Κουμπούλης Χρήστος Α.Μ. 921 Χαλαβαζής Βασίλης Α.Μ. 988.
Βάσεις Δεδομένων Εργαστήριο ΙΙ Τμήμα Πληροφορικής ΑΠΘ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 3 Η Σημασιολογία των Γλωσσών Προγραμματισμού Προπτυχιακό.
ΑΝΑΚΕΦΑΛΑΙΩΣΗ 26 Οκτωβρίου Αντικειμενοστρεφής Προγραμματισμός Ένα νέο προγραμματιστικό μοντέλο (paradigm) το οποίο στηρίζεται στις κλάσεις και τα.
ΘΕΜΑΤΙΚΗ ΕΝΟΤΗΤΑ 2: ΘΕΜΑΤΑ ΘΕΩΡΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ Η/Υ
Εθνικό και Καποδιστριακό Πανεπιστήμιο Αθηνών – Τμήμα Πληροφορικής και Τηλεπικοινωνιών 1 Κεφάλαιο 4 Σημασιολογία μιας Απλής Προστακτικής Γλώσσας Προπτυχιακό.
Κεφάλαιο 10 – Υποπρογράμματα
Network Inference Μπαλάφα Κασιανή - Αδριανή Πλασταρά Κατερίνα.
1 ΤΜΗΜΑ ΜΠΕΣ Αλγόριθμοι Αναζήτησης Εργασία 1 Τυφλή Αναζήτηση.
Δομές Δεδομένων 1 Θέματα Απόδοσης. Δομές Δεδομένων 2 Οργανώνοντας τα Δεδομένα  Η επιλογή της δομής δεδομένων και του αλγορίθμου επηρεάζουν το χρόνο εκτέλεσης.
Γραφικό Περιβάλλον Συγγραφής Κανόνων στο Σημασιολογικό Διαδίκτυο Διπλωματική Εργασία της Βασιλικής Ζερβάκη Επιβλέπων Καθηγητής: Νικόλαος Βασιλειάδης Θεσσαλονίκη.
ΚΕΦΑΛΑΙΟ Τι είναι αλγόριθμος
ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Διδάσκοντες:Γιάννης Μαΐστρος Στάθης Ζάχος Νίκος Παπασπύρου
Επιστημονικός Υπολογισμός Ι Πρώτο Εργαστήριο Εισαγωγή στο matlab 15 Οκτωβρίου 2010 Γιώργος Δρακόπουλος ΤΜΗΥΠ.
Τεχνολογία ΛογισμικούSlide 1 Εξειδίκευση Βασισμένη σε Μοντέλο u Τυπική εξειδίκευση λογισμικού με ανάπτυξη μαθηματικού μοντέλου για το σύστημα.
Βασικά στοιχεία της Java
On user-defined features Christoph M Hoffmann and Robert Joan-Arinyo Ανδρέας Φωτίου.
Εφαρμογές Πολυμέσων: Εισαγωγή στην HTML (1)
Εισαγωγή στην Έννοια του Αλγορίθμου και στον Προγραμματισμό
ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα.
Συνδετικότητα γραφήματος (graph connectivity). α β Υπάρχει μονοπάτι μεταξύ α και β; Παραδείγματα: υπολογιστές ενός δικτύου ιστοσελίδες ισοδύναμες μεταβλητές.
Απόκτηση και Αναπαράσταση Γνώσης. Μηχανική Γνώσης (Knowledge Engineering) Η Μηχανική Γνώσης μπορεί να εξετασθεί από δύο διαφορετικές απόψεις. Αυτή που.
Prolog Επεξεργασία και Αναπαράσταση Γνώσης ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολογίας Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο: Τεχνητή Νοημοσύνη.
1 State Diagrams. 2 Τα διαγράμματα καταστάσεων (State diagrams) χρησιμοποιούνται: Για να βοηθήσουν στην ανάπτυξη ενός συστήματος Για να βοηθήσουν στην.
Αντικειμενοστραφής Προγραμματισμός ΙΙ
ΜΕΤΑΒΛΗΤΕΣ-ΣΤΑΘΕΡΕΣ -ΕΚΦΡΑΣΕΙΣ
ΚΕΦΑΛΑΙΟ 2ο - ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΛΓΟΡΙΘΜΩΝ
Βρόχος Do … Loop Σκοπός Μαθήματος Χρήση Do… Loop για την εκτέλεση μιας ομάδας εντολών μέχρι να εκπληρωθεί μια συγκεκριμένη συνθήκη.
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ
ΑΛΓΟΡΙΘΜΟΣ ΠΡΟΒΛΗΜΑ ΑΛΓΟΡΙΘΜΟΣ ΛΥΣΗ
Java DataBase Connectivity
Κλάσεις και αντικείμενα
Wrapper Classes, Abstract Classes and Interfaces
Ενισχυτική διδασκαλία
Αρχεσ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Η/Υ ΤΑξη Β΄
ΔΟΜΕΣ ΕΛΕΓΧΟΥ(if-else, switch) και Λογικοί τελεστές / παραστάσεις
Η Γλώσσα Pascal Υποπρογράμματα
Εισαγωγή στον Προγ/μό Υπολογιστών
Ειδικά Θέματα στον προγραμματισμό Υπολογιστών
Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον ΑΕΠΠ
ΤΕΧΝΙΚΕΣ Αντικειμενοστραφουσ προγραμματισμου
ΥΛΟΠΟΙΗΣΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΑ ΠΕΡΙΒΑΛΛΟΝΤΑ
ΠΛΗΡΟΦΟΡΙΚΗ Γ΄ Γυμνασίου Α΄ Τρίμηνο
Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου
UNIT 1 Τα Πρώτα Προγράμματα.
Μεταγράφημα παρουσίασης:

Flex Κέλυφος Εμπείρων Συστημάτων Expert System Shell Νίκος Βασιλειάδης, Άνοιξη 2003

Τι είναι το Flex;  Το Flex είναι ένα ισχυρό εργαλείο ανάπτυξης εμπείρων συστημάτων. Κέλυφος εμπείρων συστημάτων (expert system shell)  Στηρίζεται πάνω στη γλώσσα LPA WinProlog  Aποτελείται από: Πρόσθετα κατηγορήματα στην Prolog. Τη γλώσσα αναπαράστασης γνώσης KSL (Knowledge Specification Language) Ένα μετα-διερμηνέα που μεταφράζει την KSL Prolog.

Βασικά Χαρακτηριστικά Flex Ορθή ακολουθία εκτέλεσης Ανάστροφη ακολουθία εκτέλεσης Πλαίσια και κληρονομικότητα Ερωτήσεις και απαντήσεις Επεξηγήσεις Προγραμματισμός οδηγούμενος από τα δεδομένα

Ορθή ακολουθία εκτέλεσης Forward chaining  Οι κανόνες παραγωγής ακολουθούν την κλασσική μορφή "εάν-τότε" (IF-THEN). Πολλαπλά συμπεράσματα ή ενέργειες στο THEN μέρος.  Δυνατότητα επεξήγησης.  Υποστηρίζονται πολλοί αλγόριθμοι επίλυσης συγκρούσεων (conflict resolution) κανόνων. Υπάρχει δυνατότητα ορισμού νέων αλγορίθμων. Μηχανισμός δυναμικής βαθμολόγησης των κανόνων (scoring mechanism) για την επίλυση συγκρούσεων κατά την πυροδότησή τους.

Ανάστροφη ακολουθία εκτέλεσης Backward chaining  Κανόνες ανάλογοι των κανόνων της Prolog.  Ονομάζονται συσχετίσεις (relations)  Έχουν ένα μόνο συμπέρασμα το οποίο αληθεύει αν όλες οι συνθήκες είναι δυνατό να αποδειχθούν.

Πλαίσια και κληρονομικότητα Frames, Inheritance  Το Flex υποστηρίζει ιεραρχίες πλαισίων επιτρέποντας στις ιδιότητες τους να κληρονομούνται.  Κάθε πλαίσιο ή στιγμιότυπο (instance) έχει ένα σύνολο από ιδιότητες (slots) που περιγράφουν τα χαρακτηριστικά των πλαισίων.  Τα πλαίσια κληρονομούν τις τιμές των ιδιοτήτων άλλων πλαισίων σύμφωνα με τη θέση τους στην ιεραρχία.  Αποφεύγεται η επανάληψη πληροφοριών και απλοποιείται σημαντικά ο κώδικας.  Η κληρονομικότητα γίνεται αυτόματα και είναι δυνατό να ελεγχθεί με διάφορες οδηγίες (directives).

Ερωτήσεις και απαντήσεις  Ενσωματωμένο υποσύστημα ερωταπαντήσεων.  Τα προγράμματα που αναπτύσσονται με το Flex μπορούν να ζητήσουν από το χρήστη να εισάγει δεδομένα μέσω παραθύρων διαλόγου.

Επεξηγήσεις  Ενσωματωμένο σύστημα επεξήγησης το οποίο υποστηρίζει τις επεξηγήσεις πώς (how) και γιατί (why). How: πώς έφτασες σε αυτό το συμπέρασμα; Why: Γιατί μου κάνεις αυτή την ερώτηση;  Οι επεξηγήσεις μπορούν να ενσωματωθούν στους κανόνες και στις ερωτήσεις.

Προγραμματισμός οδηγούμενος από τα δεδομένα  Eιδικές διαδικασίες οι οποίες μπορούν να προσαρτηθούν σε πλαίσια.  Παραμένουν αδρανείς έως ότου ενεργοποιηθούν από την προσπέλαση ή την τροποποίηση των πλαισίων στα οποία έχουν προσαρτηθεί.  Υπάρχουν 4 τύποι διαδικασιών: διαδικασίες αρχικοποίησης (launches) δαίμονες (demons) φύλακες (watchdogs) περιορισμοί (constraints)

Η Γλώσσα KSL Knowledge Specification Language  Χρησιμοποιείται για τον ορισμό κανόνων, πλαισίων, διαδικασιών κλπ.  Υποστηρίζει μαθηματικές, λογικές και υποθετικές εκφράσεις  Είναι επεκτάσιμη με τη χρήση των συνωνύμων και των προτύπων.  Βασικά στοιχεία: όροι (terms) αντικείμενα (objects) αριθμητικές εκφράσεις (numerical expressions) λογικές και διαδικαστικές εκφράσεις (formulae) δομές ελέγχου (control structures) προτάσεις (sentences) προτάσεις (sentences)

Προτάσεις  Καθορίζουν τι μπορεί να δηλωθεί σε ένα πρόγραμμα.  Αρχίζουν με μια από τις ακόλουθες λέξεις-κλειδιά και τερματίζουν με ένα διάστημα ακολουθούμενο από μια τελεία. frame, instance rule, ruleset relation action, function launch, constraint, demon, watchdog question data, do group synonym, template

Πλαίσια και στιγμιότυπα  Υπάρχουν 3 μέρη στον καθορισμό ενός πλαισίου. Το 1ο καθορίζει σε ποιο σημείο της ιεραρχίας βρίσκεται το πλαίσιο.  Αυτό επιτυγχάνεται με τον καθορισμό των πλαισίων-γονέων (αν υπάρχουν). Το 2ο και καθορίζει ποιες είναι οι ιδιότητες του πλαισίου και οι προκαθορισμένες τιμές τους. Στο 3ο επαναπροσδιορίζεται η ιεραρχία της κληρονομικότητας.  Ορισμένα πλαίσια μπορούν να γίνουν πλαίσια- γονείς για κάποιο άλλο πλαίσιο προκειμένου να κληρονομήσει ορισμένες ιδιότητές τους  Συγκεκριμένες ιδιότητες μπορούν να δηλωθούν έτσι ώστε να μην κληρονομηθούν.

frame Name is a kind of Frame1, Frame2, … ; default Attribute1 is Value; inherit Attribute2 from Frame; do not inherit Attribute3 from Frame. Γενική σύνταξη πλαισίου 1 2 3

Παράδειγμα frame wedge is a kind of block, toy ; do not inherit shape and inherit volume from block and inherit density from pyramid, toy.

Στιγμιότυπα  Διαφέρουν από τα πλαίσια: Μπορούν να έχουν μόνο ένα πλαίσιο- γονέα Δεν μπορούν να έχουν παιδιά Κληρονομούν όλες τις ιδιότητες του πλαισίου-γονέας Δεν υπάρχει δυνατότητα ορισμού νέων ιδιοτήτων Όλες οι τιμές των ιδιοτήτων τους θεωρούνται τρέχουσες (current values)

Δήλωση στιγμιότυπου  Σύνταξη: instance Instance is a Frame ; Attribute is Value.  Παράδειγμα: instance tweety is a kind of bird ; habitat is a cage and predator is sylvester; do not inherit motions.

Παράδειγμα ζωικού βασιλείου

Αρχικό πλαίσιο animal  Ορισμός ιδιότητας blood frame animal ; default blood is warm.

Πλαίσια mammal, bird  Κληρονόμηση ιδιότητας blood frame mammal is a kind of animal; default skin is fur and default habitat is the land and default motions are { walk and swim }. frame bird is a kind of animal; default skin is feather and default habitat is a tree and default motions are { fly }.

Πλαίσιο fish  Αλλαγή τιμής για την ιδιότητα blood frame fish is a kind of animal; default skin is scale and default habitat is the water and default motions are { swim } and default blood is cold.

Πλαίσια carnivore, herbivore  Δε συνδέονται στην υπάρχουσα ιεραρχία frame carnivore; default meal is meat. frame herbivore; default meal is plant.

Πλαίσιο penguin  Αλλαγή τιμής για τις ιδιότητες habitat, motions  Ορισμός ιδιότητας size frame penguin is a bird; default habitat is the land and default motions are { walk and swim } and default size is medium.

Πλαίσια 'sea water fish‘, 'fresh water fish'  Αλλαγή τιμής (εξειδίκευση) για την ιδιότητα habitat frame 'sea water fish' is a fish; default habitat is the sea. frame 'fresh water fish' is a fish; default habitat is a river.

Πλαίσιο salmon  Πολλαπλή κληρονομικότητα (2 πλαίσια-γονείς) frame salmon is a 'sea water fish', 'fresh water fish'.

Πλαίσιο feline  Κληρονομεί την ιδιότητα meal από το πλαίσιο carnivore  Ορίζει 3 νέες ιδιότητες tail, speed, legs frame feline is a mammal; default tail is { long and furry } and default speed is 'very fast' and default legs are 4 ; inherit meal from carnivore.

Πλαίσια tiger, cat  Η ιδιότητα size έχει οριστεί ξανά στο πλαίσιο penguin frame tiger is a feline; default size is large and default state is predator and default habitat is the jungle and default meal is human. frame cat is a feline; default size is medium.

Πλαίσια manx, moggy  Η κολοβή γάτα δεν κληρονομεί την ιδιότητα tail! frame manx is a cat; do not inherit tail.  Η κουτσή γάτα έχει άλλη τιμή για την ιδιότητα legs! frame moggy is a cat; default legs are 3.5.

Πλαίσιο rodent  Ορίζει 2 νέες ιδιότητες tail (ξανά), status  Κληρονομεί την ιδιότητα meal από το herbivore frame rodent is a mammal; default tail is { short and thin } and default status is pest and default habitat is sewer; inherit meal from herbivore.

Πλαίσιο squirrel  Ορίζει την ιδιότητα size (ξανά)  Δίνει άλλη τιμή στην ιδιότητα tail  Δεν κληρονομεί την ιδιότητα habitat frame squirrel is a rodent; default size is small and default tail is { long and bushy } ; do not inherit habitat.

Πλαίσιο whale  Δεν ορίζεται ως «θαλάσσιο ψάρι» γιατί το μόνο κοινό με αυτά είναι το habitat frame whale is a mammal; default habitat is the sea.

Διάφορα στιγμιότυπα (cat, tiger)  Οι τιμές που θέτουμε στις ιδιότητες υπερισχύουν των default τιμών instance arthur is a cat ; skin is shaggy and meal is 'kit-e-kat' and habitat is 'my house'. instance shere_khan is a tiger ; speed is 'quite slow' and legs are 3.5.

Διάφορα στιγμιότυπα (tiger, bird)  Η τιμή μιας ιδιότητας μπορεί να είναι το όνομα ενός άλλου πλαισίου ή στιγμιότυπου instance my_other_tig is a tiger ; meal is my_pusscat.  Παίρνει όλες τις default τιμές instance joey is a bird.

Ορισμός στιγμιότυπου με εντολή data  Δημιουργία στιγμιότυπου του πλαισίου salmon κατά τη διάρκεια του compilation data new_freddie do freddie is a new salmon whose size is large and whose habitat is fish_tank and echo('freddie has been created') and nl. Εμφάνιση μηνύματος σε παράθυρο

Δεδομένα και δηλώσεις  Τα δεδομένα (data) είναι μία σειρά εντολών Δημιουργούν νέα στιγμιότυπα Αντιστοιχίζουν τιμές σε ιδιότητες Τροποποιούν τα γεγονότα μιας βάση δεδομένων  Χρησιμοποιούνται για την αρχικοποίηση του προβλήματος, αφού εκτελούνται Κατά τη στιγμή της μεταγλώττισης Κάθε φορά που καλείται η ρουτίνα restart/0.  Σύνταξη: data data_name do directive(s)

Παράδειγμα data data start_up_configuration do the contents of jugA becomes 2 and jugB`s contents becomes jugB`s capacity-2 and remember that danger_level(yellow) Κάνει “assert” κάτι στη βάση δεδομένων Αλλάζει την τιμή του slot

Πρόταση do  Συντάσσεται παρόμοια με μια πρόταση data  Εκτελεί τις εντολές της μόνο κατά τη στιγμή της μεταγλώττισης.  Σύνταξη: do directive(s).

Παράδειγμα do do c1 is a new car whose engine_size is 1100 and c1`s model := ‘Whizzo’ and c1`s colour := metallic_blue Δημιουργεί νέο στιγμιότυπο Αλλάζει τιμές ιδιοτήτων Θα μπορούμε να γραφεί και ως: the colour of c1 becomes metallic_blue

Χρήση πλαισίων  Τα πλαίσια αναπαριστούν με ευέλικτο τρόπο τα αντικείμενα και τις έννοιες του φυσικού κόσμου  Από μόνα τους τα πλαίσια είναι δομές δεδομένων  Δεν αποτελούν κάτι το εκτελέσιμο  Το ρόλο του προγράμματος παίζουν οι κανόνες, forward ή backward

Παράδειγμα ζωικού βασιλείου ANIMAL.KSL  Θέλουμε να ορίσουμε μία «ρουτίνα» η οποία να επιστρέφει το πλαίσιο στο οποίο «ταιριάζει» ένα ζώο, δίνοντας ιδιότητες που αυτό έχει (θετικά παραδείγματα) ιδιότητες που σίγουρα δεν έχει (αρνητικά παραδείγματα) ?- identify( Class, [habitat-land,size-medium], [meal-meat]).

Αλγόριθμος εύρεσης πλαισίου  Επέλεξε κάποιο τυχαίο πλαίσιο  Έλεγξε αν έχει όλα τα θετικά παραδείγματα  Έλεγξε αν δεν έχει όλα τα αρνητικά παραδείγματα  Αν τα παραπάνω ισχύουν, τότε το αρχικό πλαίσιο πρέπει να επιστραφεί, αλλιώς επέστρεψε στο πρώτο βήμα

Χρήση πλαισίων μέσα από relation relation identify(Frame,PosAtts,NegAtts) if isa_frame( Frame, _ ) and for every PosAttr-PosVal is included in PosAtts do [ check the PosAttr of Frame includes PosVal or check the PosAttr of Frame is equal to PosVal ] end for and for every NegAttr-NegVal is included in NegAtts do check the NegAttr of Frame does not include NegVal and check the NegAttr of Frame is not equal to NegVal end for. Ενσωματωμένο κατηγόρημα Prolog που προσθέτει το Flex Βρόχος επανάληψης για όλα τα στοιχεία μιας λίστας Έλεγχος συνθήκης

Συσχετίσεις (relations)  Κανόνες ανάστροφης ακολουθίας εκτέλεσης, αντίστοιχοι της Prolog.  Μια συσχέτιση καθορίζεται από μια συλλογή προτάσεων.  Σύνταξη: relation relation_name if condition(s).  Παράδειγμα: relation is_leaf( Node ) if the links_out of Node is empty.