This is an old revision of the document!
Rainbow : Hourdin, Lavirotte, Tigli
LIG : Coutaz, Jouanot, Fontaine, Anis
Voir D4.1 et D4.2 : deux principes de meta-IHM :
Exemple : Je veux ouvrir les volets quand il fait jour et quand il ne fait pas froid.
Arbre :
Pg :
Intro : Je veux
Action : ouvrir les volets (action unitaire)
Boolean condition Op = et
Circonstance (when circonstance) : quand il fait jour
Circonstance (when circonstance) : quand il ne fait pas froid
Rajouter des meta données sur les devices UPnP et sur les services. Annotation en pseudo langage.
Pas d'AA dans les meta-données des Services et Devices.
Les AAs implémentent :
Trigger := When | Where |…. avec logique booléenne / temporelle (events)
Action := Méthodes …. avec logique booléenne / temporelle
Problème :: les conditions de déclenchement de l'action sont-elles des caractéristiques du contexte qui déclenche un AA ou les même conditions sont elles le membres droit de l'AA
Autre idée pour la continuité : abstraire la notion de condition (ex. il fait jour) pour la traduire par différents services ou devices.
TODO ::: envoyer la grammaire des AAs à IIHM
Cas 1 : si (vitesse > x et milieu encombré) alors disable (S1 et S2)
Dans ce cas la condition correspond vraiment à un changement de contexte et la désactivation des AAs qui utilisent S1 et S2
Idée : Cas généraux (deux cas) :
condition contexte → liste d'AA à activer / désactiver
AA : condition → action
Cas 2 : Me localiser sur la carte / Où suis-je
Comment traduire en AA
Cas 3 : Problème du rétroappel … En fait il faut aussi annoter les méthodes+getter (ou rétro appel) qui “vont bien” comme méthode possible pour le device.
Vu le nombre de getter, il faut donc le faire à la main …
exemple : checkbox pour piloter une light ⇒ l'utilisation de checkbox.setchange__getvalue pour une methode setchange()
Cas 4 : problème de l'initialisation (pas d'initialisation avec WComp avant l'émission d'events)
Cas 5 : si le casque est baissé afficher la position des points d'intérêt dans le casque
Condition (si le casque est baissé) Action : afficher les points d'intérêt dans le casque
Cas 6 : je veux regarder l'état de ma machine à laver
- alignement des terminologies (afficher, montrer)
- introduction des composants intermédiaires (insertion de composants intermédiaires : recasteur, …)
- gestion des signatures (par retroappel, …)
- deux niveaux de gestion des condition “circonstancielles” (compléments circonstanciels) : niveau contexte ou membre gauche (trigger d'action dans un AA)
1> Alignement :
Step 1 Emric fonctionne avec une grammaire et des terminaux “types” : exemple Audiosource , AudioSink dont il connait les méthodes types :
Audiosource.setaudio
Audiosink.getaudio
grâce à un “terminal” comme écouter (mots clef action).
Step 2 Ensuite il fait une requête dans la BdC sur AudioSink.setaudio et AudioSource.getaudio pour récupérer les devices avec les méthodes ou events équivalents
Step 3 Les metadonnées d'un devices devant fournir à la BdC les équivalences de ses méthodes et events en terme de méthodes et events “types” pour préparer ces requêtes et les composants intermédiaires nécessaires à ces équivalences
Attention :
- il faut que la BdC renvoie quand même un nom de “famille” de devices telle GPS* ou par convention la BdC part du principe que tous les devices GPS* (ex. GPS1, GPS2) ont la même interface.
ou
- la partie pointcut matching fait appel à la BdC
2> composants intermédiaires à rajouter pour rendre équivalentes des méthodes AudioSource.getaudio avec des méthodes concrètes du service
3> retroappel : idem que 2> mais avec le retroappel
4> gérer par redondance, si possible (ex. du disable)
Sur la base du scenario du fontainier recherche de vanne + PDA / Casque
Rainbow : Rajouter des metadonnées aux services et services pour dispositifs.
IIHM : Reprendre la grammaire du langage pseudo-naturel, définir le vocabulaire de base pour les actions et des noms terminaux de manière plus générale (type de device et méthodes et events)
Hadas : Spécifier les métadonnées dans les services et services pour dispositifs.
Vers le second démonstrateur pour février .
VideoConf le 14/01/11 à 14h