• Aucun résultat trouvé

Letroisièmeprototypeestbasésurlalogiquedupremierordre.Iltentederépondre àlaquestionExiste-t-iluneséquen edeservi esWebreliantlesentréesfourniespar l'utilisateur auxsorties souhaitées àpartir d'un ertain nombre d'énon és supposés vrais,ouaxiomes. Contrairementàlapré édente, ette méthodepermet d'exprimer lesrelationsentreslesentréeset lessortiesd'unservi eWebparunefon tion.

Dans ettese tion,je ommen eparprésenterPrologetsonprin iped'inféren e, puis je dé ris la représentation des messages utilisés en entrée et en sortie par les servi esWeb,jedonneensuitelamanièredereprésenterdesservi esWebenProlog,je montrelamanièredegénérerles ompositionsetjedis utedequalitéetde omplétion desrésultatsavantde on lure.

4.3.1 Présentation de Prolog

Prolog aété réé parAlain Colmeraueret Philippe Rousselvers1972 [86℄. Leur butétaitdefaireunlangagedeprogrammationquipermettaitd'utiliserl'expressivité delalogiqueaulieudedénirpasàpaslasu essiond'instru tionsquedoitexé uter unordinateur.LenomPrologestuna ronymedePROgrammationLOGique.

Prologestutilisédansdenombreuxprogrammesd'intelligen earti ielleetdans le traitement de la linguistique par ordinateur en partu ulier eux on ernant les langagesnaturels.Sa syntaxeet sa sémantiquesont onsidérées ommetrèssimples et laires.

Prologestbasésurle al uldesprédi atsdupremierordre; ependant,ilestres- treintdanssaversioninitialeàn'a epterqueles lausesdeHorn( f.2.5).Lesversions plus ré entes deProlog a eptent desprédi ats plus omplexes, notammentave le traitement de la négation par l'é he . Dans notre as, nous utiliserons uniquement des lausesHorn.

L'exé utiond'unprogrammeProlog onsiteàprouverunearmationparuni a- tionsu essiveet ré ursivedesdiérentes donnéesdelabase de onnaissan es.Une des parti ularitésde Prologest quel'on peut onstruire une base de onnaissan es dansun ordreindéterminé. Prologpeut ensuiterésoudredesséries deproblèmeslo- giquesrelatifsàune tellebasede onnaissan es.

4.3.2 Des ription des messages

Les messagesd'entrée et desortie desservi esWeb dans etteméthode sontre- présentés parunelistePrologdeprédi ats.Parexemple,unmessage omportantun geopoint etuneperiod sereprésenteparlalistedesdeuxprédi atssuivants:

[geopoint(48,2),period(20080101,20080201)℄

Dans etexemple,legeopointest déniàlalatitude48et lalongitude2;lapériode estentrelesdeuxdatesdonnées.Ilestpossiblesiné essairededénirdesparamètres sansvaleur.

4.3.3 Des ription des servi es Web

Chaque servi e Web est traduit par un ou plusieurs axiomes de la logique du premierordre qui reliesesentréesàsessorties.Dans le asgénéral, unservi eWeb sedénitparunaxiomearmantqueleservi eWebnommé

A

ayantpourentrée

I

et poursortie

O

existesi l'onpeutrelier

I

et

O

parunerelationprédénie [45℄.

Prenons l'exemple, d'un servi e Web nommé servi e3 qui fournit une série tem- porelle de température en degrés Farenheit en un lieu donné. On le dé ompose en axiomesdelamanièresuivante:

(* trouve la première o uren e de X dans la liste [A|B℄ *) find(X, [A|B℄) :-

X = A, !; find(X, B).

(* ma ro définissant une liste de températures sur une période donnée *) getseqtemperature(Period, Unit, Geopoint, [A℄) :-

Period = period(X, X),

A = temperature(X, Unit, Geopoint).

getseqtemperature(Period, Unit, Geopoint, [A|B℄) :- Period = period(Begin, End),

Begin < End, su (Begin, Next),

getseqtemperature(period(Next, End), Unit, Geopoint, B), A = temperature(Begin, Unit, Geopoint).

liste de température en degrés farhenheit *) servi e(servi e3, I, O) :-

find(period(B,E), I), find(geopoint(X,Y), I),

getseqtemperature(period(B,E), farenheit, geopoint(X,Y), O),!.

Les premiers axiomesfind(X, L) dénissentl'opérationde re her he d'un para- mètreXdanslalisteL.Lesaxiomesgetseqtemperature réentunelistequireprésente une série temporelle de température. Enn l'axiomeservi e3 représente le servi e Webetles ontraintesliantsesentréesetsessorties.Onlan elepro essusd'uni a- tionsur leprogrammeProlog.Commeil est dit danslase tion4.3.1,s'il existe une solution,alorsl'uni ation deProlog latrouveen untempsni. S'iln'existe pasde solution,ilsepeutquePrologneterminepas.Dansnotre as, ommenous her hons àobtenirplusieurs solutions(demanièreà exhiberplusieurs ompositions possibles satisfaisantlarequête),ilsepeutquel'uni ationneterminepasalorsquenousavons déjà obtenu un ensemble de solutions.L'uni ation permet de onstruiretoutes les solutionspossibles.Ainsi,surl'entrée:

[period(20080101, 20080103), geopoint(x,y)℄ nouslançonslarequête:

servi e(servi e3, [period(20080101, 20080103), geopoint(x,y)℄, O) et obtenonslasortie:

[temperature(20080101, farenheit, geopoint(x,y)), temperature(20080102, farenheit, geopoint(x,y)), temperature(20080103, farenheit, geopoint(x,y))℄

Cettesortiereprésentetouteslesvaleursobtenuessurlapériode2008-01-01,2008- 01-03 pourun lieu quel onque.Cette des ription montre bien la onstru tionde la sérietemporelledetempérature.Notonsqueladénitiondesprédi atsave leurspa- ramètresdoitêtrepré-établie:dans etexemple,temperature omporteuniquement 3paramètres :une date,une unité etune lo alisation,maisonpourraitimaginery rajouterl'altitude.

4.3.4 Réalisation de

F g

Je dénisune omposition enPrologparl'armationsuivante :Unservi e om- posé[A,B℄ayantpourentrée

I

et poursortie

O

existes'ilexisteunservi eAreliant l'entréeIàEetunservi e omposéBreliantEàO.Cettearmations'é ritenProlog parlesaxiomessuivants,oùservi e est une ompositiondeservi eet servi eest unservi eatomique:

servi e ([℄, X, X). servi e ([A|B℄, I, O) :-

servi e(A, I, E), servi e (B, E, O).

Pour générer toutes les ompositions possibles orrespondant à une requête de l'utilisateur,j'utiliseleprin iped'uni ationdePrologsurlesrèglesPrologde om- positionpré édenteset surlesaxiomesreprésentantlesservi es.

Danslarequêtesuivante,lapremièrelignedénitlaformerequisepourlessorties et lase ondelignedemande àre her herles ompositions

X

produisant ette sortie silesentréessontperiodet geopointdonnés.

getseqtemperature(period(20080101,20080110), elsius, geopoint(48,2), O),

servi e (X, [period(20080101, 20080110), geopoint(48,2)℄, O)

Aprèsuni ation,dansnotre as, ommeilexistedesservi es omposésquirelient les entréesaux sorties de la façonsouhaitée, on obtient les solutions satisfaisantla requêtesuivante: O = ... X = [servi e1℄ ; O = ... X = [servi e3, servi e2℄ ; false.

Notons que dans notre exemple,l'arbrede re her heétant ni, l'uni ationter- mine. Elle rend falsepour indiquer, quand on lui demande de trouver une autre solution,qu'iln'en existeplus.

Ces solutionssont alors utiliséespour générer les ompositions de servi es Web orrespondantes.Ces ompositionsserontensuiteexé utéesetleurrésultatrenvoyéà l'utilisateur.

4.3.5 Qualité et omplétion des résultats

Leprototypedanssaversion ourantenegèrepaslaqualitédesservi esWeb.En eet,a tuellement,lessolutionssontanalyséeslesunes aprèslesautresdansl'ordre danslequelProloglestrouve.Pourprendreen omptelaqualité,ilseraitpossiblede pro éderàuntridessolutionsparqualitédé roissante.Dansle asgénéral,lenombre de solutions étantpossiblementinni, il faudrait for er l'algorithme à terminer sur ertains ritères omme,parexemple, limiterla re her heàdes heminsimpliquant moinsde10servi esWeb.Onpeutalorsemployerlaméthodedequalitéutiliséedans leprototypepré édent.

Onren ontrelemêmeproblèmepourla omplétiondesrésultats,les ompositions arriventsansordredequalitéetleurpossibleinniténousempê hedelestrier.L'union n'estdon pasréaliséedans e prototype.

4.3.6 Dis ussion

Les règlesde omposition desservi es Webdénies par etteméthodesontplus expressives que elles de l'appro he pré édente. En eet, elle- i se ontentait de mettre enrelation desentréesave dessorties ennesebasantquesur lestypesdes valeurs, alors que la méthode basée sur Prolog expli ite les transformations de es valeurs. Prenonsl'exemple duservi e3 pré édent, nous onstatons quesa sortiea pris en ompte les valeursdes bornes de lapériode fournie en entrée, e qui serait

impossible pour la méthode pré édente. Cette méthode, en intégrant bien la façon dont les servi esWeb transforment les données, permet de diéren ier des servi es quiseraientpris ommeidentiquesparlaméthodepré édente.

Notonsque etteappro he,tout ommelapré édente,nepermetpasde ombiner deuxservi esWeband'enutiliseruntroisième.

Par ailleurs, ontrairement à l'appro he pré édente qui re her hait des hemins sansbou le, etteappro hen'éliminepaslesbou les. Certainespreuves, ommepar exemple, une preuveappliquant lamême séquen e d'axiomesen bou le [10℄, seront impossibles à obtenir. Notons que e problème est sus eptible de se produire fré- quemment. Par exemple, si nous disposons d'une onversion d'une unité vers une autre et de sa ré iproque, la solutionalternera une innité de fois le premier et le se ond servi e. Une solution pourrésoudre e problèmeserait de limiter le nombre de solutions en bornant la longueur de la séquen e de servi es Web. Ce faisant, la méthode n'exploreplustoutes lessolutions,mais ette limitationme semble malgré tout judi ieuse. Compte-tenu des laten es du réseau Internet et du temps d'exé u- tion des servi es Web, il devient primordial de ne pas utiliser un grandnombre de servi es Web an de limiter les temps de réponse. La réponse à une requête à tra- versInternet est de l'ordrede 50 fois plus lente que si elle était appelée en réseau lo al.Ainsidemander une ombinaison d'unedizainede servi esWeb débou he sur untempsd'exé ution rédhibitoire.Une autresolution onsisteraitàlimiter letemps de al ul en interrompantle pro essus de re her hede solution. De la même façon quelasolutionpré édente,laméthodenetrouverapastouteslessolutions.

L'appro he basée sur Prolog, ommeles appro hes de preuve de théorème, per- metde donnerune premièreapproximationdelamanièredontleservi eWeb fon - tionne.Cetteappro herestedi ileàrendreopérationnellepuisqu'ellené essite,pour haqueservi eWeb,l'ajoutd'informationsdetransformationdesdonnéesquinesont a tuellement pas disponibles hez les fournisseurs de servi es Web. Notons que es informationspeuventêtre omplexes àfournirmême siOWL-S[74℄et WSMO[111℄ in itentdéjàles fournisseursàune dénition plussémantiquedes fon tionsoertes. L'adoption de ette appro he implique aussi des hangements dans les te hniques de on eption a tuelles omme, par exemple, l'adoptionde standardde des ription ommeOWL-S.

Plusieurslimitesapparaissentdans etteappro he.Ladénitiondesaxiomesreste très omplexepourlesnon-programmeurs.Ilfaudraitproposerunlangagededes rip- tiondesservi esWebplusadaptésaudomainedesservi esWebetdelamétéorologie utilisantunereprésentationdesdonnéespro hedesarbresXML.