slide1
Download
Skip this Video
Download Presentation
Flex

Loading in 2 Seconds...

play fullscreen
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

Flex

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

Expert System Shell

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

slide2
Τι είναι το Flex;
  • Το Flex είναι ένα ισχυρό εργαλείο ανάπτυξης εμπείρων συστημάτων.
    • Κέλυφος εμπείρων συστημάτων (expert system shell)
  • Στηρίζεται πάνω στη γλώσσα LPA WinProlog
  • Aποτελείται από:
    • Πρόσθετα κατηγορήματα στην Prolog.
    • Τη γλώσσα αναπαράστασης γνώσης KSL (Knowledge Specification Language)
    • Ένα μετα-διερμηνέα που μεταφράζει την KSL Prolog.
slide3
Βασικά Χαρακτηριστικά Flex
  • Ορθή ακολουθία εκτέλεσης
  • Ανάστροφη ακολουθία εκτέλεσης
  • Πλαίσια και κληρονομικότητα
  • Ερωτήσεις και απαντήσεις
  • Επεξηγήσεις
  • Προγραμματισμός οδηγούμενος από τα δεδομένα
forward chaining
Ορθή ακολουθία εκτέλεσης Forwardchaining
  • Οι κανόνες παραγωγής ακολουθούν την κλασσική μορφή "εάν-τότε" (IF-THEN).
    • Πολλαπλά συμπεράσματα ή ενέργειες στο THEN μέρος.
  • Δυνατότητα επεξήγησης.
  • Υποστηρίζονται πολλοί αλγόριθμοι επίλυσης συγκρούσεων (conflictresolution) κανόνων.
    • Υπάρχει δυνατότητα ορισμού νέων αλγορίθμων.
    • Μηχανισμός δυναμικής βαθμολόγησης των κανόνων (scoring mechanism) για την επίλυση συγκρούσεων κατά την πυροδότησή τους.
backward chaining
Ανάστροφη ακολουθία εκτέλεσηςBackward chaining
  • Κανόνες ανάλογοι των κανόνων της Prolog.
  • Ονομάζονται συσχετίσεις (relations)
  • Έχουν ένα μόνο συμπέρασμα το οποίο αληθεύει αν όλες οι συνθήκες είναι δυνατό να αποδειχθούν.
frames inheritance
Πλαίσια και κληρονομικότηταFrames, Inheritance
  • Το Flex υποστηρίζει ιεραρχίες πλαισίων επιτρέποντας στις ιδιότητες τους να κληρονομούνται.
  • Κάθε πλαίσιο ή στιγμιότυπο (instance) έχει ένα σύνολο από ιδιότητες (slots) που περιγράφουν τα χαρακτηριστικά των πλαισίων.
  • Τα πλαίσια κληρονομούντις τιμές των ιδιοτήτων άλλων πλαισίων σύμφωνα με τη θέση τους στην ιεραρχία.
  • Αποφεύγεται η επανάληψη πληροφοριών και απλοποιείται σημαντικά ο κώδικας.
  • Η κληρονομικότητα γίνεται αυτόματα και είναι δυνατό να ελεγχθεί με διάφορες οδηγίες (directives).
slide7
Ερωτήσεις και απαντήσεις
  • Ενσωματωμένο υποσύστημα ερωταπαντήσεων.
  • Τα προγράμματα που αναπτύσσονται με το Flex μπορούν να ζητήσουν από το χρήστη να εισάγει δεδομένα μέσω παραθύρων διαλόγου.
slide8
Επεξηγήσεις
  • Ενσωματωμένο σύστημαεπεξήγησης το οποίο υποστηρίζει τις επεξηγήσεις πώς (how) και γιατί (why).
    • How: πώς έφτασες σε αυτό το συμπέρασμα;
    • Why: Γιατί μου κάνεις αυτή την ερώτηση;
  • Οι επεξηγήσεις μπορούν να ενσωματωθούν στους κανόνες και στις ερωτήσεις.
slide9
Προγραμματισμός οδηγούμενος από τα δεδομένα
  • Eιδικές διαδικασίες οι οποίες μπορούν να προσαρτηθούν σε πλαίσια.
  • Παραμένουν αδρανείς έως ότου ενεργοποιηθούν από την προσπέλαση ή την τροποποίηση των πλαισίων στα οποία έχουν προσαρτηθεί.
  • Υπάρχουν 4 τύποι διαδικασιών:
    • διαδικασίες αρχικοποίησης (launches)
    • δαίμονες (demons)
    • φύλακες (watchdogs)
    • περιορισμοί (constraints)
ksl knowledge specification language
Η Γλώσσα KSLKnowledgeSpecificationLanguage
  • Χρησιμοποιείται για τον ορισμό κανόνων, πλαισίων, διαδικασιών κλπ.
  • Υποστηρίζει μαθηματικές, λογικές και υποθετικές εκφράσεις
  • Είναι επεκτάσιμη με τη χρήση των συνωνύμων και των προτύπων.
  • Βασικά στοιχεία:
    • όροι (terms)
    • αντικείμενα (objects)
    • αριθμητικέςεκφράσεις(numerical expressions)
    • λογικές και διαδικαστικές εκφράσεις (formulae)
    • δομέςελέγχου(control structures)
    • προτάσεις(sentences)
slide11
Προτάσεις
  • Καθορίζουν τι μπορεί να δηλωθεί σε ένα πρόγραμμα.
  • Αρχίζουν με μια από τις ακόλουθες λέξεις-κλειδιά και τερματίζουν με ένα διάστημα ακολουθούμενο από μια τελεία.
    • frame, instance
    • rule, ruleset
    • relation
    • action, function
    • launch, constraint, demon, watchdog
    • question
    • data, do
    • group
    • synonym, template
slide12
Πλαίσια και στιγμιότυπα
  • Υπάρχουν 3 μέρη στον καθορισμό ενός πλαισίου.
    • Το 1ο καθορίζει σε ποιο σημείο της ιεραρχίας βρίσκεται το πλαίσιο.
      • Αυτό επιτυγχάνεται με τον καθορισμό των πλαισίων-γονέων (αν υπάρχουν).
    • Το 2ο και καθορίζει ποιες είναι οι ιδιότητες του πλαισίου και οι προκαθορισμένες τιμές τους.
    • Στο 3ο επαναπροσδιορίζεται η ιεραρχία της κληρονομικότητας.
      • Ορισμένα πλαίσια μπορούν να γίνουν πλαίσια-γονείς για κάποιο άλλο πλαίσιο προκειμένου να κληρονομήσει ορισμένες ιδιότητές τους
      • Συγκεκριμένες ιδιότητες μπορούν να δηλωθούν έτσι ώστε να μην κληρονομηθούν.
slide13
Γενική σύνταξη πλαισίου

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
Παράδειγμα

frame wedge is a kind of block, toy ;

do not inherit shape and

inherit volume from block and

inherit density from pyramid, toy .

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

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
Αρχικό πλαίσιο animal
  • Ορισμός ιδιότητας blood

frame animal ;

default blood is warm .

mammal bird
Πλαίσια 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
Πλαίσιο 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
Πλαίσια carnivore, herbivore
  • Δε συνδέονται στην υπάρχουσα ιεραρχία

frame carnivore;

default meal is meat .

frame herbivore;

default meal is plant .

penguin
Πλαίσιο 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
Πλαίσια \'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
Πλαίσιο salmon
  • Πολλαπλή κληρονομικότητα (2 πλαίσια-γονείς)

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

feline
Πλαίσιο 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
Πλαίσια 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
Πλαίσια manx, moggy
  • Η κολοβή γάτα δεν κληρονομεί την ιδιότητα tail!

frame manx is a cat;

do not inherit tail .

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

frame moggy is a cat;

default legs are 3.5 .

rodent
Πλαίσιο 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
Πλαίσιο 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
Πλαίσιο whale
  • Δεν ορίζεται ως «θαλάσσιο ψάρι» γιατί το μόνο κοινό με αυτά είναι το habitat

frame whale is a mammal;

default habitat is the sea .

cat tiger
Διάφορα στιγμιότυπα (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
Διάφορα στιγμιότυπα (tiger, bird)
  • Η τιμή μιας ιδιότητας μπορεί να είναι το όνομα ενός άλλου πλαισίου ή στιγμιότυπου

instance my_other_tig is a tiger ;

meal is my_pusscat .

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

instance joey is a bird .

slide33
Ορισμός στιγμιότυπου με εντολή 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
Δεδομένα και δηλώσεις
  • Τα δεδομένα (data) είναι μία σειρά εντολών
    • Δημιουργούν νέα στιγμιότυπα
    • Αντιστοιχίζουν τιμές σε ιδιότητες
    • Τροποποιούν τα γεγονότα μιας βάση δεδομένων
  • Χρησιμοποιούνται για την αρχικοποίηση του προβλήματος, αφού εκτελούνται
    • Κατά τη στιγμή της μεταγλώττισης
    • Κάθε φορά που καλείται η ρουτίνα restart/0.
  • Σύνταξη:

data data_name

do directive(s)

slide35
Παράδειγμα 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
Πρόταση do
  • Συντάσσεται παρόμοια με μια πρόταση data
  • Εκτελεί τις εντολές της μόνο κατά τη στιγμή της μεταγλώττισης.
  • Σύνταξη:

do directive(s).

slide37
Παράδειγμα 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
Χρήση πλαισίων
  • Τα πλαίσια αναπαριστούν με ευέλικτο τρόπο τα αντικείμενα και τις έννοιες του φυσικού κόσμου
  • Από μόνα τους τα πλαίσια είναι δομές δεδομένων
  • Δεν αποτελούν κάτι το εκτελέσιμο
  • Το ρόλο του προγράμματος παίζουν οι κανόνες, forward ή backward
animal ksl
Παράδειγμα ζωικού βασιλείουANIMAL.KSL
  • Θέλουμε να ορίσουμε μία «ρουτίνα» η οποία να επιστρέφει το πλαίσιο στο οποίο «ταιριάζει» ένα ζώο, δίνοντας
    • ιδιότητες που αυτό έχει (θετικά παραδείγματα)
    • ιδιότητες που σίγουρα δεν έχει (αρνητικά παραδείγματα)

?- identify( Class,

[habitat-land,size-medium],

[meal-meat]).

slide40
Αλγόριθμος εύρεσης πλαισίου
  • Επέλεξε κάποιο τυχαίο πλαίσιο
  • Έλεγξε αν έχει όλα τα θετικά παραδείγματα
  • Έλεγξε αν δεν έχει όλα τα αρνητικά παραδείγματα
  • Αν τα παραπάνω ισχύουν, τότε το αρχικό πλαίσιο πρέπει να επιστραφεί, αλλιώς επέστρεψε στο πρώτο βήμα
relation
Χρήση πλαισίων μέσα από 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
Συσχετίσεις (relations)
  • Κανόνες ανάστροφης ακολουθίας εκτέλεσης, αντίστοιχοι της Prolog.
  • Μια συσχέτιση καθορίζεται από μια συλλογή προτάσεων.
  • Σύνταξη:

relation relation_name

if condition(s) .

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

relation is_leaf( Node )

if the links_out of Node is empty .

ad