Curs 9 MyDiary Inferences
Arhitectura sistemului
Module 1. LOCALISATION 2. MOVEMENT 3. FACES 4. SOUNDS&VOICES 5. INFERENCES 6. BEHAVIOUR 7. TEXT GENERATION 8. QUESTION-ANSWERING 9. INTERFACES 10. CLIENT-SERVER 11. STANDARDS AND EVALUATION
Interfețe și comunicații MyDiary Localisation Inferences COMM GPS activități zilnice Movement COMM vibrații Faces imagini COMM Sounds/Voices sunete COMM
Interfețe și comunicații Diary repr. Inferences Text generation SIT SIT Diary NL query QUE dialogul de seară MyDiary Question answering NL
Interfețe și comunicații Diary repr. Inferences Text generation SIT SIT NL answer SIT dialogul de seară MyDiary Question answering NL Diary
Communication standards: Localisation <COMM module=“LOC” time=“…” location=“…” proximity=“…”> <COMM module=“LOC” time=“7:30” location=“home” proximity=“bedroom”> TIME=7:30, PROXIMITY = bedroom, CLOCK = awake_time, SOUND = awake_ringing, GG:LIGHT = intensity_raise, WiFi_WAVE = movement, ACCELERATION = zero, GPS = null, GEO_POSITION = home(remember_last_position)
Communication standards: Situation Representation <SITUATION module=“INF” time=“…” situationID=“…” instanceOf=“…” location=“…” proximity=“…”> <SITUATION module=“INF” time=“2014/11/03/23:18” situationID=“sleeping048” instanceOf=“sleeping” location=“home” proximity=“bedroom”> <SITUATION module=“INF” time=“2014/11/04/7:30” situationID=“awake049” instanceOf=“awake” location=“home” proximity=“bedroom”> MyDiary output: Astă dimineață am fost trezit de alarmă la ora 7:30 în dormitorul meu.
Un graf al situațiilor – ierarhie de clase alive awake sleeping at_home moving shopping in_park in_theater driving walking jogging driving_in_town driving_outside
Semnale speciale în bază La pornirea contului: prima înregistrare din bază <SIGN-IN userName=“…” pwd=“…” time=“…” contractType=“…” contractDuration=“…” /> La expirarea contractului: ultima înregistrare <SIGN-OUT userName=“…” time=“…” liveDuration=“…” /> La log-in cu succes: <LOG-IN userName=“…” time=“…” /> La log-out: <LOG-OUT userName=“…” time=“…” />
Situații în graful ierarhic: alive <situation name="alive" kind-of="" > <!-- The most general situation--> <variables> <variable type=“static” name=”*aliveID” /> </variables> <triggering-conditions> <condition eventType=”SIGN-IN” /> <condition eventType=”LOG-IN” /> <!- atentie ca LOG-IN-ul sa fie al aceluiasi user ca si SIGN-IN-ul… /> </triggering-conditions> <actions> <action action-type=”on-enter" toDo=”asignValue(*aliveID, generateId())” /> …
Situații în graful ierarhic: alive Output to be generated: <ENTER-SITUATION module=“INF” time=“…” situationID=“alive013” instanceOf=“alive” /> … <action action-type=”on-enter" toDo=”generateXML( ENTER-SITUATION, (module, INF), (time, time()), (situationID, *aliveID), (instanceOf, alive))” /> <!– Generates an ENTER-SITUATION signal when the initiation of the alive situation is recognised -->
Situații în graful ierarhic: alive Output to be generated on exit: <EXIT-SITUATION time=“…” situationID=“alive013” /> … <ending-conditions> <OR> <condition input=”SIGN-OUT” /> <condition input=”LOG-OUT” /> </OR> </ending-conditions> <action action-type=”on-exit" toDo=”generateXML( EXIT-SITUATION, (time, time()), (situationID, *aliveID))” /> <!– Generates an EXIT-SITUATION signal when the exit from an alive situation is recognised --> </actions> </situation>
Situații în graful ierarhic: awake <situation name="awake" kind-of="alive" > <!– daughter of "alive" --> <variables> <variable type=“static” name=”*awakeID” /> </variables> <triggering-conditions> <OR> <AND> <condition eventType=“COMM” module=”LOC” location=“home” proximity=“bedroom" /> <condition eventType=“COMM” module=”S&V” sound=“awakeRinking” /> </AND> <AND>… </AND> </OR> </triggering-conditions>
Situații în graful ierarhic: awake Output to be generated: <ENTER-SITUATION module=“INF” time=“2014/11/04/7:30” situationID=“awake048” instanceOf=“awake” location=“home” proximity=“bedroom” /> … <actions> <action action-type=”on-enter" toDo=”asignValue(*awakeID, generateId())” /> <action action-type=”on-enter" toDo=”generateXML( ENTER-SITUATION, (module, INF), (time, time()), (situationID, *awakeID), (instanceOf, awake)) (location, home), (proximity, bedroom)” /> <! Atentie la specificitatea actiunilor pe conditii… /> </actions> </situation>
BEHAVIOUR codes <BEHAVIOUR behID=“…” beg=“…” end=“…” enterSituation=“…” prob=“…” /> Ion merge la culcare de obicei la ora 11 seara… <BEHAVIOUR behID=“beh43” beg=“22:30” end=“23:25” enterSituation=“sleeping” prob=“0.9” />
Situații în graful ierarhic: awake Output to be generated: <EXIT-SITUATION module=“INF” time=“2014/11/04/7:30” situationID=“awake048” instanceOf=“awake” /> … <ending-conditions> <actions> <action action-type=”???" toDo=”asignValue(*prob, getAtribValue(BEVAVIOUR, prob))” /> <action action-type=”???" toDo=”asignValue(*beg, getAtribValue(BEVAVIOUR, beg))” /> <action action-type=”???" toDo=”asignValue(*end, getAtribValue(BEVAVIOUR, end))” /> <action action-type=”???" toDo=”asignValue(*behID, getAtribValue(BEVAVIOUR, behID))” /> </actions>
Output to be generated: <EXIT-SITUATION module=“INF” time=“2014/11/04/7:30” situationID=“awake048” instanceOf=“awake” /> <condition prob=“*prob”> <BEHAVIOUR enterSituation=“sleeping” behID=“*behID” /> <IF var=time() oper=“>=” val=“*beg” /> <IF var=time() oper=“<=” val=“*end” /> <! Nu am mai sesizat nicio miscare un timp T /> <NOT> <ENTER-SITUATION time=… /> </NOT> </condition> </ending-conditions> <actions> <action action-type=”on-exit" toDo=”generateXML( EXIT-SITUATION, (module, INF), (time, time()), (situationID, *awakeID), (instanceOf, awake))” /> </actions> </situation>
Se generează similar un ENTER-SITUATION de tip sleeping…