edelweiss and services
TRANSCRIPT
mémoiresmémoires collectives collectivesmatérialiser et utiliser des
•hybrides : documents-représentations•intrawebs sémantiques, communautés•représentations et traitements à base de graphes•serveurs de connaissances distribué(e)s•utilisation et interaction
cube(x) cube(y) cube(z)
couleur(x, bleu)
couleur(y, jaune)
couleur(z, rouge)
droite(z, y) droite(y, x)
ontologie:ontologie:o cube() couleur(,) gauche(,)cube() couleur(,) gauche(,)o cube(?a)cube(?a)⇒⇒objet(?a)objet(?a)o gauche(?a,?b)gauche(?a,?b)⇔⇔droite(?b,?a)droite(?b,?a)
chercher(x) réserver(z)
entrée(x, ISBN)
entrée(y, BOOK_TITLE)
sortie(y, ISBN)
composable(y, x)
ontologie:ontologie:o service() entrée(,) sortie(,)service() entrée(,) sortie(,)o chercher(?a)chercher(?a)⇒⇒service(?a)service(?a)o sortie(?a,?v) sortie(?a,?v) ∧∧ entrée(?b,?v) entrée(?b,?v) ⇒⇒ composable (?a,?b) composable (?a,?b)
web services sémantiques
• gestion de connaissances
• gestion de ressources
• intégration d’applications
• services distribués
• des ressources comme les autres
service Webservice Webapplication accessible à travers les protocoles du Web
fournisseurservice
annuaire moteur de recherche
1
clientdemandeur
2
3
sémantiquementsémantiquementservices annotés et recherchés
fournisseurserviceclientdemandeur
annuaire
3
12
Service description (OWL-S)<service:Service rdf:ID="PosteService_Secretaire"> <service:presents rdf:resource="#Profile_Poste_Service_Secretaire"/> <service:describedBy rdf:resource="#PosteSecretaire"/> <service:supports rdf:resource="#PosteGrounding_Secretaire"/></service:Service>
<profile:Profile rdf:ID="Profile_Poste_Service_Secretaire"> <service:presentedBy rdf:resource="#PosteService_Secretaire"/> <profile:has_process rdf:resource="#PosteSecretaire"/> <profile:serviceName>PosteSecretaire</profile:serviceName> <profile:hasInput rdf:resource="#PosteSecr_input"/> <profile:hasOutput rdf:resource="#PosteSecr_output"/></profile:Profile>
Service description (OWL-S)<process:AtomicProcess rdf:ID="PosteSecretaire"> <process:hasInput> <process:Input rdf:ID="PosteSecr_input"> <process:parameterType>&xsd;#string</process:parameterType> <process:semanticType rdf:resource="&doc;#EmployeeName"/> </process:Input> </process:hasInput> <process:hasOutput> <process:Output rdf:ID="PosteSecr_output"> <process:parameterType>&xsd;#string</process:parameterType> <process:semanticType rdf:resource="&doc;#AssistantPhone"/> </process:Output> </process:hasOutput> </process:AtomicProcess>
composable !
?s1 rdf:type proc:Process?s2 rdf:type proc:Process?s1 proc:hasInput ?input ?s2 proc:hasOutput ?output ?input sawsdl:modelRef ?inType?output sawsdl:modelRef ?outType?outType rdfs:subPropertyOf ?inType⇒?s2 proc:composable ?s1
composable ?
?s1 all::proc:composable[4] ?s2?s1 proc:hasInput ?param1 ?s2 proc:hasOutput ?param2 ?param1 sawsdl:modelRef c:employeeName?param2 sawsdl:modelRef c:assistantName
services for memory & memory for servicesservices for memory & memory for services
• intelligence: composing services and knowledge
• mapping input types to queries
• corese as a semantic web service itself
Input description & extension
<process:AtomicProcess rdf:ID="PosteSecretaire"> <service:describes rdf:resource="#PosteService_Secretaire"/> <process:hasInput> <process:Input rdf:ID="PosteSecr_input"> <process:parameterType>&xsd;#string</process:parameterType> <process:semanticType rdf:resource="&doc;#EmployeeName"/> </process:Input> </process:hasInput>
<process:hasOutput> <process:Output rdf:ID="PosteSecr_output"> <process:parameterType>&xsd;#string</process:parameterType> <process:semanticType rdf:resource="&doc;#AssistantPhone"/> </process:Output> </process:hasOutput> </process:AtomicProcess>
<cos:rule> <cos:if> ?x rdf:type c:Employee
?x c:Name ?n </cos:if> <cos:then> ?x c:EmployeeName ?n </cos:then></cos:rule>
<c:Employee rdf:ID='ML'><c:Name>Moussa Lo</c:Name>
</c:Employee>
rule defining the predicaterule defining the predicate
Directory FacilitatorAgent (FIPA)
Agent ManagementAgent (FIPA)
FIP
A A
CL
messages an
d O
WL
Con
tent
User InteractionAgent
e-Wallet Manager Agent
Ontologist Agent
Task-Specific Agents JADE platform
e-e-
Déclarer besoins élémentaires en information et
autorisations nécessaires
Pré-vérification des autorisations
Post-vérification des autorisations
Faire appel connaissances
locales
Application règlesde révision
Déclarer contexte requête
Requête
Assertionconnaissance autorisée
Résultat
Faire appel services personnels /
publics
Exemple: Norman demande la position géographique de Fabien1- "l’expéditeur de la requête est Norman", "requête arrivée à 15H34"
2- besoins = "où se trouve Fabien" + autorisation accès localisation
3- (a) Norman peut-il demander à localiser Fabien d’après ce que l’on sait?
(b) "mes collègues de travail peuvent connaître le bâtiment où je me trouve,lorsque je suis sur le campus"
(c) Norman est-il un collègue de travail? Oui
4- Pas de réponse dans les connaissances statiques / locales.
5- Règles= le réseau sans-fil permet localisation; champ ‘lieu’ de l’agenda
6- Fabien est-il sur le campus? Oui
7- Fabien n'est disposé à révéler que le bâtiment où il se trouve
8- “Fabien est dans le bâtiment Borel”
<wowl:ServiceRule wowl:salience="50"> <rdfs:label>provide location for IP Address</rdfs:label> <wowl:output> <mc:Entity rdf:ID="&variable;#entity"> <mc:location rdf:resource="&variable;#location" /> </mc:Entity> </wowl:output> <wowl:precondition> <mc:Entity rdf:ID="&variable;#entity"><mc:ip>&variable;#ip</mc:ip> </mc:Entity> </wowl:precondition> <wowl:call> <wowl:Service wowl:name="call-web-service"> <wowl:qname>http://mycampus/WiFiService#</wowl:qname> <wowl:endpoint>http://128.2.68.34:7788</wowl:endpoint> <wowl:method>GetLocation</wowl:method> <wowl:ip>&variable;#ip</wowl:ip> </wowl:Service> </wowl:call></wowl:ServiceRule>
SAWSDLSAWSDLsemantic annotation of WSDL (W3C Rec. 2007)
http://www.w3.org/2002/ws/sawsdl/
GRDDL profile for SAWSDLhttp://ns.inria.fr/grddl/sawsdl/
SAWSDL RDFGRDDL