aplicatii web bazate pe semantica, agenti si servicii

42
Aplicatii Web bazate pe semantica, agenti si servicii Universitatea Politehnica Bucuresti Anul universitar 2008-2009, Master Adina Magda Florea http://turing.cs.pub.ro/webs_08

Upload: hinda

Post on 30-Jan-2016

71 views

Category:

Documents


0 download

DESCRIPTION

http://turing.cs.pub.ro/webs_08. Aplicatii Web bazate pe semantica, agenti si servicii. Universitatea Politehnica Bucuresti Anul universitar 2008-2009, Master Adina Magda Florea. Reguli de productie. Avantaje ale regulilor Tipuri de reguli Sisteme bazate pe reguli Web Rule Languages. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Aplicatii Web bazate pe semantica, agenti si servicii

Aplicatii Web bazate pe semantica, agenti si servicii

Universitatea Politehnica BucurestiAnul universitar 2008-2009, MasterAdina Magda Florea

http://turing.cs.pub.ro/webs_08

Page 2: Aplicatii Web bazate pe semantica, agenti si servicii

Reguli de productie

Avantaje ale regulilor Tipuri de reguli Sisteme bazate pe reguli Web Rule Languages

Page 3: Aplicatii Web bazate pe semantica, agenti si servicii

1. Reguli - avantaje

Avantaje Cunostinte procedurale in maniera

declarativa Permit atasare procedurala Se pot combina cu ontologiile:

derivare concepte Modelarea proceselor, inclusiv a

celor de business Exprimarea protocoalelor de

business Exprimarea conditiilor de exceptie

Page 4: Aplicatii Web bazate pe semantica, agenti si servicii

De ce ne intereseaza?

Utilizate de agenti pentru a descrie comportarea

Utilizate ca specificare a compunerii serviciilor

Utilizate in modelarea proceselor de business

Page 5: Aplicatii Web bazate pe semantica, agenti si servicii

2. Tipuri de reguli

Reguli reactive – forma ECA on eveniment if conditie then (executa)

actiune Utilizare

triggers in SMBD codificarea proceselor (si apoi compunerea lor) detectarea exceptiilor + ce se face reguli de integritate

In practica se vor combina cu regulile de inferenta

Page 6: Aplicatii Web bazate pe semantica, agenti si servicii

Tipuri de reguli

Reguli de inferenta if anecedent then consecinta

Antecedent: conjunctie de clauze Se permit si disjunctii de clauze caci

se pot transforma in mai multe reguli Concesinta: conjunctie de clauze

Nu se permit disjunctii

Fapte

Page 7: Aplicatii Web bazate pe semantica, agenti si servicii

Exemplu

(deftemplate person(slot first_name)(slot last_name)(slot age (type INTEGER))

)

(defrule eighteen_pers(person (first_name ?first_n)

(age ?p_age))(test (== ?p_age 18)))

=>(assert (eighteen_p (name ?first_n)))

)

Page 8: Aplicatii Web bazate pe semantica, agenti si servicii

Alt exemplu(deftemplate student

(slot name)(slot sex)(slot placed_in)(slot special_considerations (default no))

(deftemplate room(slot nember)(slot capacity (type INTEGER)(default 4))(slot sexes_are)(slot vacancies (type INTEGER))(multislot occupants))

(defrule assign-student-empty-room?unplaced_student (student (name ?stud_name)

(placed_in nil) (sex ?gender))

?empty_room (room (number ?room_no) (capacity ?room_cap) (vacancies ?max_size))

=>(modify ?unplaced_student (placed_in ?room_no))(modify ?empty_room (occupants ?stud_name) (sexes_are ?gender)

(vacancies (-- ?max_size)))

Page 9: Aplicatii Web bazate pe semantica, agenti si servicii

Inlantuirea regulilor

Inlantuire inainte (forward chaining)

Inlantuire inapoi (backward chaining)

Page 10: Aplicatii Web bazate pe semantica, agenti si servicii

3. Sisteme bazate pe reguli

Ciclul recunoastere-actiune: Match Select Act

WME = working memory element Identificat printr-un "time tag"

Instantiere: multime de WME care satisface o regula

Multime de conflicte (CS) Rezolvarea conflictelor

Page 11: Aplicatii Web bazate pe semantica, agenti si servicii

Ciclul recunoastere-actiune

WMEs..

Instantiations..

1 Instantiation

Conflict resolution

Match Act

Working MemoryRules

.

.

Rule Base

Facts

Conflict set

Page 12: Aplicatii Web bazate pe semantica, agenti si servicii

Ciclul recunoastere-actiune

Match O regula se poate aplica daca conditiile

din antecedent sunt satisfacute de WMEs din WM

Procesul are 2 aspecte: match intra-element match inter-element

(defrule teenager(person (firstName ?name) (age ?age))

=> (printout t ?name " is " ?age " years old." crlf))

Page 13: Aplicatii Web bazate pe semantica, agenti si servicii

Ciclul recunoastere-actiune

match inter-element(defrule assign-private-room

(student (name ?stud_name)

(placed_in nil)

(special_consideration yes))

(room (number ?room_no)

(capacity 1)

(vacancies 1)

=> …

WMEs41 (student name Mary sex F placed_in nil

special_consideration yes)52 (student name Peter sex M placed_in nil

special_consideration yes)9 (room number 221 capacity 1 vacancies 1)12 (room number 346 capacity 2 vacancies 1)17 (room number 761 capacity 1 vacancies 1)

Instantiations (CS)assign-private-room 41 9assign-private-room 41 17assign-private-room 52 9assign-private-room 52 17

Page 14: Aplicatii Web bazate pe semantica, agenti si servicii

Rezolvarea conflictelor

Diferite strategii Refractie = o aceeasi instantiere nu este

executata de mai multe ori (2 instantieri sunt la fel daca au acelasi nume de regula si aceleasi time tags, in aceeasi ordine)

Momentu utilizarii = Se prefera instantierile care au identificat cu WMEs cu cele mai recente time tags sau invers

Specificitate = Au prioritate instantierile cu LHS mai specifice = nr de valori testate in LHS

teste asupra: nume clasa, predicat cu 1 arg constanta, predicat cu un operator variabila legata

Page 15: Aplicatii Web bazate pe semantica, agenti si servicii

Rezolvarea conflictelor

Strategia LEX Elimina din CS instantierile care au

fost deja executate Ordoneaza instantierile pe baza

momentului utilizarii Daca mai multe instantieri au aceleasi

time tags, utilizeaza specificitate Daca mai multe instantieri au aceeasi

specificitate alege arbitrar Strategia MEA – aceeasi dar

utilizeaza primul time tag

Page 16: Aplicatii Web bazate pe semantica, agenti si servicii

Eficienta executiei

Match – cam 80% din timpul ciclului recunoastere-actiune

Fiecare WME este comparat cu fiecare conditie din fiecare regula O(R*FP), R – nr de reguli, P nr mediu de conditii

in LHS regula, F – nr WME RETE match algorithm – OPS5

Salveaza starea de match intre 2 cicluri recunoastere-actiune

La crearea unui WME, acesta este comparat cu toate elementele conditie din program si este memorat impreuna cu fiecare element conditie cu care a identificat =>

Numai schimbarile incrementale din WM sunt identificate in fiecare ciclu

O(R*F*P) aprox

Page 17: Aplicatii Web bazate pe semantica, agenti si servicii

Compilarea regulilor Se compileaza conditiile regulilor intr-o retea de noduri de

test Un test este un predicat cu o constanta sau variabila legata

sau o disjunctie Procesul de match are loc numai la adaugarea sau la

eliminarea unui WME (modify este retract urmat de assert)(gate (type or) (value true))(gate (type or) (value false))

Node sharing1 = gate

type = or

value = true value = false

Page 18: Aplicatii Web bazate pe semantica, agenti si servicii

Compilarea regulilor Un pointer la noul WME este trecut prin retea,

incepand de la nodul radacina Fiecare nod actioneaza ca un switch Cand un nod primeste un pointer la un WME, testeaza

WME asociat. Daca testul reuseste, nodul se deschide si WME trece mai departe

Altfel nu se intampla nimic Daca un WME va trece prin retea, va fi combinat cu

alte WME care trec pentru a forma o instantiere in CS Pointerii la WME sunt trimisi prin reteaua RETE ca

tokens = pointer + stare (assert sau retract)

Page 19: Aplicatii Web bazate pe semantica, agenti si servicii

Tipuri de noduri in retea

Nod cu 1 intrare = test intra-element realizat de noduri cu 1 intrare feicare nod efectueaza un test corespunzator unei

conditii Testarea aceleiasi variabile – tot noduri cu 1 intrare

1 = gate

type = or

value = true value = false

Page 20: Aplicatii Web bazate pe semantica, agenti si servicii

Sisteme bazate pe reguli

Foarte multe cele mai influente

OPS5 ART CLIPS Jess Familia Web Rule languages

In special RuleML si SWRL Interoperabilitatea regulilor

Page 21: Aplicatii Web bazate pe semantica, agenti si servicii

RuleML

RuleML Initiative - August 2000 Pacific Rim International Conference on Artificial Intelligence.

RuleML Initiative dezvolta limbaje bazate pe reguli deschise XML/RDF

Aceasta permite schimbul de reguli intre diferite sisteme, inclusiv componete software distribuite pe Web si sisteme client-server eterogene

Limbajul RuleML – sintaxa XML pentru reprezentarea cunostintelor sub forma de reguli

Integrarea cu ontologii: sistemul de reguli trebuie sa deriveze/utilizeze cunostinte din ontologie

Page 22: Aplicatii Web bazate pe semantica, agenti si servicii

RuleML

RuleML – se bazeaza pe Datalog Datalog = limbaj de interogare si reguli pentru

baze de date deductive Subset al Prolog cu restrictii:

argumente ne-functionale (constante sau variabile)

limitari in nivelul de apeluri recursive variabilele din concluzie trebuie sa apara in

predicate ne-negate din ipoteza Hornlog – Datalog extins cu variabile functionale

(termeni generali)

Page 23: Aplicatii Web bazate pe semantica, agenti si servicii

RuleML

Reguli reactive = Observa/verifica anumite evenimente/conditii si executa o actiune – numai forward

Constrangeri de integritate = reguli speciale care semnaleaza inconistente cand se indeplinesc anumite conditii – numai forward

Reguli de inferenta (derivare) = reguli reactive speciale cu actiuni care adauga o concluzie daca conditiile (premisele sunt adevarate) - Se pot aplica atat forward cat si backward

Fapte = reguli de inferenta particulare cu premise

Regui reactive

Constangeri deintegritate

Reguli dederivare

Fapte

Page 24: Aplicatii Web bazate pe semantica, agenti si servicii

RuleML Reguli reactive<rule> <_body> <and> prem1 ... premN </and> </_body>

<_head> action </_head></rule>

Constrangeri de integritate<ic> <_head> inconsistency </_head>

<_body> <and> prem1 ... premN </and> </_body></ic>

implementate ca

<rule> <_body> <and> prem1 ... premN </and> </_body> <_head> <signal> inconsistency </signal> </_head>

</rule>

Page 25: Aplicatii Web bazate pe semantica, agenti si servicii

RuleML Reguli de inferenta/derivare

<imp> <_head> conc </_head> <_body> <and> prem1 ... premN </and> </_body>

</imp >

implementate prin<rule> <_body> <and> prem1 ... premN </and> </_body>

<_head> <assert> conc </assert> </_head></rule>

Fapte<atom> <_head> conc </_head> </atom> implementate prin<imp> <_head> conc </_head>

<_body> <and> </and> </_body> </imp>

Page 26: Aplicatii Web bazate pe semantica, agenti si servicii

RuleMLFapte

<atom> <rel>spending</rel> <ind>Peter Miller</ind> <ind>min 5000 euro</ind> <ind>previous year</ind>

</atom>

spending(petterMiller, min5000euro, previousYear).spending(petterMiller, min5000euro, previousYear).

Page 27: Aplicatii Web bazate pe semantica, agenti si servicii

Reguli de inferenta/derivare<imp> <head> <atom>

<rel>discount</rel> <var>customer</var>

<var>product</var> <ind>7.5 percent</ind> </atom>

</head> <body> <and> <atom>

<rel>premium</rel> <var>customer</var> </atom> <atom> <rel>luxury</rel> <var>product</var> </atom>

</and> </body></imp>

discount(Customer, Product, 7.5_percent):-discount(Customer, Product, 7.5_percent):-premium(Customer), luxury(Product).premium(Customer), luxury(Product).

Page 28: Aplicatii Web bazate pe semantica, agenti si servicii

SWRL

SWRL = Semantic Web Rule Language Propunere W3C in 2004 http://www.w3.org/Submission/SWRL/ Combina OWL DL si OWL Lite cu RuleML Regulile sunt exprimate in termenii conceptelor

OWL (classe, proprietati, indivizi, …). SWRL – sintaxa abstracta pt "Horn-like rules" Regulile sunt salvate ca parte a ontologiei Implementari in: Bossam, R2ML, Hoolet, Pellet,

KAON2, RacerPro, SWRLTab

Page 29: Aplicatii Web bazate pe semantica, agenti si servicii

SWRLhasParent(?x, ?y) ^ hasBrother(?y, ?z) -> hasUncle(?x,

?z)<ruleml:imp> <ruleml:_rlab ruleml:href="#example1"/> <ruleml:_body> <swrlx:individualPropertyAtom swrlx:property="hasParent"> <ruleml:var>x</ruleml:var> <ruleml:var>y</ruleml:var> </swrlx:individualPropertyAtom> <swrlx:individualPropertyAtom swrlx:property="hasBrother"> <ruleml:var>y</ruleml:var> <ruleml:var>z</ruleml:var> </swrlx:individualPropertyAtom> </ruleml:_body> <ruleml:_head> <swrlx:individualPropertyAtom swrlx:property="hasUncle"> <ruleml:var>x</ruleml:var> <ruleml:var>z</ruleml:var> </swrlx:individualPropertyAtom> </ruleml:_head> </ruleml:imp>

Page 30: Aplicatii Web bazate pe semantica, agenti si servicii

Editorul SWRL

Editorul SWRL – extensie a Protegé OWL care permite editarea de reguli SWRL;

Inclus in Protégé OWL Accesibil ca un tab Ofera un Java API pentru

interoperabilitate cu motoare de inferenta

Page 31: Aplicatii Web bazate pe semantica, agenti si servicii
Page 32: Aplicatii Web bazate pe semantica, agenti si servicii
Page 33: Aplicatii Web bazate pe semantica, agenti si servicii
Page 34: Aplicatii Web bazate pe semantica, agenti si servicii

Verificari ale editorului

Numai regulile sintactic valide sunt salvate si care se leaga de entitati OWL

Se face o verificare semantica de baza:orice variabila referita in concluzie trebuie sa fie referita si in ipoteza

Cu toate acestea, regulile pot contrazice restrictiile din ontolgia OWL

Page 35: Aplicatii Web bazate pe semantica, agenti si servicii

Cum se salveaza regulile Regulile sunt salvate ca indivizi OWL Clasele care descriu acesti indivizi se gasesc in

ontologia SWRL

http://www.daml.org/rules/proposal/swrl.orl

Aceste clase includ: swrl:Imp – reprezinta o regula SWRL swrl:Atom – reprezinta un atom in regula swrl:AtomList – reprezinta o lista de atomi

Motoare de inferenta bazate pe reguli pot folosi aceste reguli

Page 36: Aplicatii Web bazate pe semantica, agenti si servicii

Interactiunea cu reguli in Protege

Prin fisiere – regulile SWRL sunt salvate in format standard

SWRL API – crearea si manipularea regulilor SWRL Utilizata de editorul SWRL Accesibila dezvoltatorilor

Se pot adauga motoare de inferenta; de ex Jess

Page 37: Aplicatii Web bazate pe semantica, agenti si servicii

Interactiunea cu MI

Extrage cunostintele OWL relevante pentru inferente

Nu toate cunostintele trebuie extrase Cunostintele necesare pot fi determinate din

fiecare regula

Exemplu:Man(Fred) ^ Man(?y) ^ hasParent(Fred, ?y) ^ hasBrother(?y,?z)

-> hasUncle(Fred, ?z)

necesita: Individul Fred Toti indivizii din clasa Man si subclase Proprietatile hasProperty ale lui Fred si toate sub-

proprietatile acestora Toti indivizii cu proprietatea hasBrother si sub-proprietati

asociate

Page 38: Aplicatii Web bazate pe semantica, agenti si servicii
Page 39: Aplicatii Web bazate pe semantica, agenti si servicii
Page 40: Aplicatii Web bazate pe semantica, agenti si servicii
Page 41: Aplicatii Web bazate pe semantica, agenti si servicii
Page 42: Aplicatii Web bazate pe semantica, agenti si servicii