Flex
Download
1 / 42

Flex - PowerPoint PPT Presentation


  • 316 Views
  • Uploaded on

instance tweety is a kind of bird ; habitat is a cage and. predator is sylvester; do not ... motions are { walk and swim } . frame bird is a kind of animal; ...

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Flex' - Kelvin_Ajay


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Slide1 l.jpg

Flex

Κέλυφος Εμπείρων Συστημάτων

Expert System Shell

Νίκος Βασιλειάδης, Άνοιξη 2003


Slide2 l.jpg
Τι είναι το Flex;

  • Το Flex είναι ένα ισχυρό εργαλείο ανάπτυξης εμπείρων συστημάτων.

    • Κέλυφος εμπείρων συστημάτων (expert system shell)

  • Στηρίζεται πάνω στη γλώσσα LPA WinProlog

  • Aποτελείται από:

    • Πρόσθετα κατηγορήματα στην Prolog.

    • Τη γλώσσα αναπαράστασης γνώσης KSL (Knowledge Specification Language)

    • Ένα μετα-διερμηνέα που μεταφράζει την KSL Prolog.


Slide3 l.jpg
Βασικά Χαρακτηριστικά Flex

  • Ορθή ακολουθία εκτέλεσης

  • Ανάστροφη ακολουθία εκτέλεσης

  • Πλαίσια και κληρονομικότητα

  • Ερωτήσεις και απαντήσεις

  • Επεξηγήσεις

  • Προγραμματισμός οδηγούμενος από τα δεδομένα


Forward chaining l.jpg
Ορθή ακολουθία εκτέλεσης Forwardchaining

  • Οι κανόνες παραγωγής ακολουθούν την κλασσική μορφή "εάν-τότε" (IF-THEN).

    • Πολλαπλά συμπεράσματα ή ενέργειες στο THEN μέρος.

  • Δυνατότητα επεξήγησης.

  • Υποστηρίζονται πολλοί αλγόριθμοι επίλυσης συγκρούσεων (conflictresolution) κανόνων.

    • Υπάρχει δυνατότητα ορισμού νέων αλγορίθμων.

    • Μηχανισμός δυναμικής βαθμολόγησης των κανόνων (scoring mechanism) για την επίλυση συγκρούσεων κατά την πυροδότησή τους.


Backward chaining l.jpg
Ανάστροφη ακολουθία εκτέλεσηςBackward chaining

  • Κανόνες ανάλογοι των κανόνων της Prolog.

  • Ονομάζονται συσχετίσεις (relations)

  • Έχουν ένα μόνο συμπέρασμα το οποίο αληθεύει αν όλες οι συνθήκες είναι δυνατό να αποδειχθούν.


Frames inheritance l.jpg
Πλαίσια και κληρονομικότηταFrames, Inheritance

  • Το Flex υποστηρίζει ιεραρχίες πλαισίων επιτρέποντας στις ιδιότητες τους να κληρονομούνται.

  • Κάθε πλαίσιο ή στιγμιότυπο (instance) έχει ένα σύνολο από ιδιότητες (slots) που περιγράφουν τα χαρακτηριστικά των πλαισίων.

  • Τα πλαίσια κληρονομούντις τιμές των ιδιοτήτων άλλων πλαισίων σύμφωνα με τη θέση τους στην ιεραρχία.

  • Αποφεύγεται η επανάληψη πληροφοριών και απλοποιείται σημαντικά ο κώδικας.

  • Η κληρονομικότητα γίνεται αυτόματα και είναι δυνατό να ελεγχθεί με διάφορες οδηγίες (directives).


Slide7 l.jpg
Ερωτήσεις και απαντήσεις

  • Ενσωματωμένο υποσύστημα ερωταπαντήσεων.

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


Slide8 l.jpg
Επεξηγήσεις

  • Ενσωματωμένο σύστημαεπεξήγησης το οποίο υποστηρίζει τις επεξηγήσεις πώς (how) και γιατί (why).

    • How: πώς έφτασες σε αυτό το συμπέρασμα;

    • Why: Γιατί μου κάνεις αυτή την ερώτηση;

  • Οι επεξηγήσεις μπορούν να ενσωματωθούν στους κανόνες και στις ερωτήσεις.


Slide9 l.jpg
Προγραμματισμός οδηγούμενος από τα δεδομένα

  • Eιδικές διαδικασίες οι οποίες μπορούν να προσαρτηθούν σε πλαίσια.

  • Παραμένουν αδρανείς έως ότου ενεργοποιηθούν από την προσπέλαση ή την τροποποίηση των πλαισίων στα οποία έχουν προσαρτηθεί.

  • Υπάρχουν 4 τύποι διαδικασιών:

    • διαδικασίες αρχικοποίησης (launches)

    • δαίμονες (demons)

    • φύλακες (watchdogs)

    • περιορισμοί (constraints)


Ksl knowledge specification language l.jpg
Η Γλώσσα τα δεδομέναKSLKnowledgeSpecificationLanguage

  • Χρησιμοποιείται για τον ορισμό κανόνων, πλαισίων, διαδικασιών κλπ.

  • Υποστηρίζει μαθηματικές, λογικές και υποθετικές εκφράσεις

  • Είναι επεκτάσιμη με τη χρήση των συνωνύμων και των προτύπων.

  • Βασικά στοιχεία:

    • όροι (terms)

    • αντικείμενα (objects)

    • αριθμητικέςεκφράσεις(numerical expressions)

    • λογικές και διαδικαστικές εκφράσεις (formulae)

    • δομέςελέγχου(control structures)

    • προτάσεις(sentences)


Slide11 l.jpg
Προτάσεις τα δεδομένα

  • Καθορίζουν τι μπορεί να δηλωθεί σε ένα πρόγραμμα.

  • Αρχίζουν με μια από τις ακόλουθες λέξεις-κλειδιά και τερματίζουν με ένα διάστημα ακολουθούμενο από μια τελεία.

    • frame, instance

    • rule, ruleset

    • relation

    • action, function

    • launch, constraint, demon, watchdog

    • question

    • data, do

    • group

    • synonym, template


Slide12 l.jpg
Πλαίσια και στιγμιότυπα τα δεδομένα

  • Υπάρχουν 3 μέρη στον καθορισμό ενός πλαισίου.

    • Το 1ο καθορίζει σε ποιο σημείο της ιεραρχίας βρίσκεται το πλαίσιο.

      • Αυτό επιτυγχάνεται με τον καθορισμό των πλαισίων-γονέων (αν υπάρχουν).

    • Το 2ο και καθορίζει ποιες είναι οι ιδιότητες του πλαισίου και οι προκαθορισμένες τιμές τους.

    • Στο 3ο επαναπροσδιορίζεται η ιεραρχία της κληρονομικότητας.

      • Ορισμένα πλαίσια μπορούν να γίνουν πλαίσια-γονείς για κάποιο άλλο πλαίσιο προκειμένου να κληρονομήσει ορισμένες ιδιότητές τους

      • Συγκεκριμένες ιδιότητες μπορούν να δηλωθούν έτσι ώστε να μην κληρονομηθούν.


Slide13 l.jpg
Γενική σύνταξη πλαισίου τα δεδομένα

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


Slide14 l.jpg
Παράδειγμα τα δεδομένα

frame wedge is a kind of block, toy ;

do not inherit shape and

inherit volume from block and

inherit density from pyramid, toy .


Slide15 l.jpg
Στιγμιότυπα τα δεδομένα

  • Διαφέρουν από τα πλαίσια:

    • Μπορούν να έχουν μόνο ένα πλαίσιο-γονέα

    • Δεν μπορούν να έχουν παιδιά

    • Κληρονομούν όλες τις ιδιότητες του πλαισίου-γονέας

    • Δεν υπάρχει δυνατότητα ορισμού νέων ιδιοτήτων

    • Όλες οι τιμές των ιδιοτήτων τους θεωρούνται τρέχουσες (current values)


Slide16 l.jpg
Δήλωση στιγμιότυπου τα δεδομένα

  • Σύνταξη:

    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 l.jpg
Αρχικό πλαίσιο τα δεδομέναanimal

  • Ορισμός ιδιότητας blood

    frame animal ;

    default blood is warm .


Mammal bird l.jpg
Πλαίσια τα δεδομένα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 } .


Slide20 l.jpg
Πλαίσιο τα δεδομένα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 l.jpg
Πλαίσια τα δεδομέναcarnivore, herbivore

  • Δε συνδέονται στην υπάρχουσα ιεραρχία

    frame carnivore;

    default meal is meat .

    frame herbivore;

    default meal is plant .


Penguin l.jpg
Πλαίσιο τα δεδομένα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 l.jpg
Πλαίσια τα δεδομένα'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 l.jpg
Πλαίσιο τα δεδομέναsalmon

  • Πολλαπλή κληρονομικότητα (2 πλαίσια-γονείς)

    frame salmon is a 'sea water fish', 'fresh water fish' .


Feline l.jpg
Πλαίσιο τα δεδομένα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 l.jpg
Πλαίσια τα δεδομένα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 l.jpg
Πλαίσια τα δεδομέναmanx, moggy

  • Η κολοβή γάτα δεν κληρονομεί την ιδιότητα tail!

    frame manx is a cat;

    do not inherit tail .

  • Η κουτσή γάτα έχει άλλη τιμή για την ιδιότητα legs!

    frame moggy is a cat;

    default legs are 3.5 .


Rodent l.jpg
Πλαίσιο τα δεδομένα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 l.jpg
Πλαίσιο τα δεδομένα 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 l.jpg
Πλαίσιο τα δεδομέναwhale

  • Δεν ορίζεται ως «θαλάσσιο ψάρι» γιατί το μόνο κοινό με αυτά είναι το habitat

    frame whale is a mammal;

    default habitat is the sea .


Cat tiger l.jpg
Διάφορα στιγμιότυπα ( τα δεδομένα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 l.jpg
Διάφορα στιγμιότυπα ( τα δεδομέναtiger, bird)

  • Η τιμή μιας ιδιότητας μπορεί να είναι το όνομα ενός άλλου πλαισίου ή στιγμιότυπου

    instance my_other_tig is a tiger ;

    meal is my_pusscat .

  • Παίρνει όλες τις default τιμές

    instance joey is a bird .


Slide33 l.jpg
Ορισμός στιγμιότυπου με εντολή τα δεδομένα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 .

Εμφάνιση μηνύματος σε παράθυρο


Slide34 l.jpg
Δεδομένα και δηλώσεις τα δεδομένα

  • Τα δεδομένα (data) είναι μία σειρά εντολών

    • Δημιουργούν νέα στιγμιότυπα

    • Αντιστοιχίζουν τιμές σε ιδιότητες

    • Τροποποιούν τα γεγονότα μιας βάση δεδομένων

  • Χρησιμοποιούνται για την αρχικοποίηση του προβλήματος, αφού εκτελούνται

    • Κατά τη στιγμή της μεταγλώττισης

    • Κάθε φορά που καλείται η ρουτίνα restart/0.

  • Σύνταξη:

    data data_name

    do directive(s)


Slide35 l.jpg
Παράδειγμα τα δεδομέναdata

Αλλάζει την τιμή του slot

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” κάτι στη βάση δεδομένων


Slide36 l.jpg
Πρόταση τα δεδομέναdo

  • Συντάσσεται παρόμοια με μια πρόταση data

  • Εκτελεί τις εντολές της μόνο κατά τη στιγμή της μεταγλώττισης.

  • Σύνταξη:

    do directive(s).


Slide37 l.jpg
Παράδειγμα τα δεδομένα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


Slide38 l.jpg
Χρήση πλαισίων τα δεδομένα

  • Τα πλαίσια αναπαριστούν με ευέλικτο τρόπο τα αντικείμενα και τις έννοιες του φυσικού κόσμου

  • Από μόνα τους τα πλαίσια είναι δομές δεδομένων

  • Δεν αποτελούν κάτι το εκτελέσιμο

  • Το ρόλο του προγράμματος παίζουν οι κανόνες, forward ή backward


Animal ksl l.jpg
Παράδειγμα ζωικού βασιλείου τα δεδομέναANIMAL.KSL

  • Θέλουμε να ορίσουμε μία «ρουτίνα» η οποία να επιστρέφει το πλαίσιο στο οποίο «ταιριάζει» ένα ζώο, δίνοντας

    • ιδιότητες που αυτό έχει (θετικά παραδείγματα)

    • ιδιότητες που σίγουρα δεν έχει (αρνητικά παραδείγματα)

      ?- identify( Class,

      [habitat-land,size-medium],

      [meal-meat]).


Slide40 l.jpg
Αλγόριθμος εύρεσης πλαισίου τα δεδομένα

  • Επέλεξε κάποιο τυχαίο πλαίσιο

  • Έλεγξε αν έχει όλα τα θετικά παραδείγματα

  • Έλεγξε αν δεν έχει όλα τα αρνητικά παραδείγματα

  • Αν τα παραπάνω ισχύουν, τότε το αρχικό πλαίσιο πρέπει να επιστραφεί, αλλιώς επέστρεψε στο πρώτο βήμα


Relation l.jpg
Χρήση πλαισίων μέσα από τα δεδομέναrelation

Ενσωματωμένο κατηγόρημα Prolog που προσθέτει το Flex

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

toNegVal

end for .

Έλεγχος συνθήκης

Βρόχος επανάληψης για όλα τα στοιχεία μιας λίστας


Relations l.jpg
Συσχετίσεις τα δεδομένα(relations)

  • Κανόνες ανάστροφης ακολουθίας εκτέλεσης, αντίστοιχοι της Prolog.

  • Μια συσχέτιση καθορίζεται από μια συλλογή προτάσεων.

  • Σύνταξη:

    relation relation_name

    if condition(s) .

  • Παράδειγμα:

    relation is_leaf( Node )

    if the links_out of Node is empty .


ad