con --> contact ( no input )
per --> perception
sem --> semantics
und --> pragmatic
acc --> acceptance
accom --> accommodation
db --> database done
noa --> not specified
answering --> communicate attribute value
asking --> ask attribute value
noaction --> not specified
quiting --> ends conversation
executing --> transactional query
feedback --> feedback about previous intervention
gree --> begin conversation
confirmation --> confirm an attribute value (yes or not is expected)
clarify --> asks for two or more possible interpretations.
for all the actions in the subplan
- if the action is still in the plan -> if the condition is not valid remove it
- if the action is not in the plan -> if the condition is valid and it has not been still solved then push it
There is a relevant answer for the question in the queue
4:forall(latest_moves/elem = Answer(A'), not fst(/shared/qud, Q) and domain :: relevant(A',Q) )
from select.cpp: no answer is relevant to any question on QUD
There is a relevant answer for the question in the queue
4:forall(latest_moves/elem = Answer(A'), not fst(/shared/qud, Q) and domain :: relevant(A',Q) )
from select.cpp: no answer is relevant to any question on QUD
AttributesTaxonomy.java
CLASS AttributesTaxonomy is used by the OG for get information about the attributes
The information stored is:
- correspondency name between LG and DM
incompatible attributes: same name, different values
except for those attributes that accept more than one value
-> requesteddata
-> object
-> queryfocus
try accommodate rules with the first in the NIM
accommodateIssues2QUD( a );
accommodateQUD2Issues( a );
accommodatePlan2Issues( a );
accommodateCom2Issues( a );
accommodateCom2IssuesDependent( a );
accommodateDependentIssue( );
accommodateAction ( );
PrevMove=ask(Q) or (PrevMove=icm:und*int:DP*C and Q=und(DP*C))
not Moves/ELEM=ask(Q') and domain::depends(Q,Q')
no move performed in the latest utterance is ( relevant to Q neither by
answering it not by ) asking a question on which Q pedens
from update.cpp - irrelevant followup
function for collecting the queryfocus values for the BE
get the queryfocus, title, date, price, location, channelname
s'hauria de canviar la funciķ i fer-la més general
generates 3 sentence : open, directed, help
The attribute used for generating the help messag is the help_attribute parameter
Open and directed messages are generated with fillFreeResponseData.
Generation of list-of-things page
This is the way for matching a general not ending page with a list-of-results
The next_moves stach containg a pagination action.
Returns the Greeting depending on the system hour and the language
- Good Morning (6..12)
- Good Afternoon (13..17)
- Good Evening (18..21)
- Good Night (22..6)
Get Manual Tagged
at least one task covered
number of tasks
number of covered tasks
total user torns
mitjana de torns per task
number DI message
% DI messages respecte torns
# DI messages per tasks
ratio DI messages / task
number Parser error
% Parser errors respecte torns
# Parser errors per tasks
ratio Parser errors / task
number spelling
% spelling errors respecte torns
# spelling errors per tasks
ratio spelling errors / task
number DM error
% DM error respecte torns
# DM error per tasks
ratio DM error / task
number DB error
% DB error respecte torns
# DB error per tasks
ratio DB error / task
number errors
% Error respecte torns
# Error per tasks
ratio Error / task
number USER recovery
% User recove respecte torns
# User recove per tasks
ratio User recove / task
number DM recovery
% DM recov respecte torns
# DM recov per tasks
ratio DM recov / task
number Implicit recovery
% implic recov respecte torns
# implic recov per tasks
ratio implic recov / task
number Ambiguous message
% AMB mess respecte torns
# AMB mess per tasks
ratio AMB mess / task
Information about the feedback action
Arguments
if L=per --> Args = String
if L=sem --> Args = Move
if L=und --> Args = Participant + attribute_value
if L=acc --> Args = attribute_value
Allowed information is:
- actionlevel --> type of feedback
- polarity --> agree or not the feedback
- turn --> who did the action
- attrval --> attribute related to the feedback
- actionset --> type of action related to the feedback
- input --> the last input string
- altQ --> alternative question, used in clarify moves
obtain all the taskid-values plans where there is a questions
for which the answer is relevant
2:setof ( Q', domain::plan(Q',Plan) and // constructs the set of dependent issues
in(Plan, findout(SomeQ)) and
domain:: relevant(A, someQ),
QSet')
obtain the proposition in the propstack that solves a qud in the qudstack
in(/shared/qud, Q)
not in(/private/bel, P) and domain::resolves(P,Q)
from update ( recover_plan )
Search the proposition that solves the question
in(/private/agenda, respond(Q))
not in(private/bel,P) and domain::resolves(P,Q)
if not found, return an empty prop, and the first qud in the stack
from update ( findPlan )
obtain all the questions in the qudstack that are solved by the propositions in the propstack
in(/private/Plan, Q)
in(/shared/issues, P) and domain::resolves(P,Q)
from integrate.cpp ( downdateissues3 )
search a Qud in the stack that solves the prop in the last position of the QUD stak
in(shared/ISSUES,IssueQ)
fst(shared/ISSUES,Q)
domain :: resolves(Q,IssueQ)
from integrate ( downdateISSUES2 )
Search all the answers in the queue that are relevant for the quesiton in the second parameter
5:not ( first(shared/qud, und(usr*C)) and
in(Moves,answer(D)) and
domain::relevant(D,und(usr*C)))
Search all the answers in the queue that are relevant for the quesiton in the second parameter
not A/elem = answer(A) and domain::relevant(A,Q)
the latest utterance is relevant to Q neither by answering it not by asking a question on which Q pedens
Search a proposition in the stack that is relevant for the prop in the second parameter
4:in(/shared/issues, Q) // the answer is relevant to an issues with is on
6:domain::relevant(A,Q)
Search all the questions in the stack that are relevant for the prop in the second parameter
setof(C,in(/private/plan, findout(Q)) and domain::relevant(A,Q), QSet)
there is more than one question in the plan to which the answer is relevant
Search all the questions in the stack that are relevant for the prop in the second parameter
setof(C,in(/private/plan, findout(Q)) and domain::relevant(A,Q), QSet)
there is more than one question in the plan to which the answer is relevant
3:domain::question(Q)
4:domain::relevant(A,Q)
5:domain::relevant(P,Q)
Stores the knows plans and dependent attributes
Reads the plans from input file
Dependet attribute are those that change the value its other attribute value
has change, as database queries.
relevant content to qud if the same attribute and has value
relevant(A,Q) if resolves(A,Q) and A:Proposition and Q:question
negative answer to wh-questions and alt-Questions are relevant but no resolving
Not executing Q if its question is already shared
rule remove_Findout
class exec_plan
pre fst(private/plan,findout(Q))
in(shared/com,P)
Domain :: resolves(P,Q)
eff pop(private/plan)
void selection(IS &actualstate) selects next system movement: ask or answer
It involves two parts: first selects an agenda item (by either selecting to respond to an issue or taking the topmost
action from the plan); second, selects a move which realizes this action
< backupshared,
if not in (/private/agenda, A) and q_raising_action(A)
then try select_action,
repeat ( select_icm orelse select_move ) >
Converts a stackp to a RecognitionObject of HopsAttributes
static private RecognitionObject toRecognitionObject( stackp stackin ){
RecognitionObject ro = new RecognitionObject();
HopsAttribute ha;
for ( int i=0; isellpoint -
Variable in class org.hops.ext.ca_db.Event
sem -
Static variable in class org.hops.dm.tad.constantsdef.actionlevel
0 -> SI LTC
1 -> SI CA
2 -> A LTC
3 -> A CA
4 -> UI LTC
5 -> UI CA
{ {0,1,2,3}, {1,0,3,2}, {2,3,0,1}, {3,2,1,0}, {4,5,2,3}, {5,4,3,2}, {2,3,4,5}, {3,2,5,4} };
subs subsumes sumed if there is a plan P represented by subs
that it is more concrete that the one represented by sumed
ONLY used with ASK propositions ( tasks )
sys -
Static variable in class org.hops.dm.tad.constantsdef.turn
quan hi hagi un error el missatge sigui sempre tancat, independentment del programa d'ajustament
Els comptadors NO s'inicialitzen en cada nou diāleg
Els increments estan acotats
Adaptaciķ s'inicialitza en cada nou diāleg a [1,2] si adaptaciķ ha acabat > 3
Converts the XML page from parser to dm_tad action-moves
Example:
parsererroresintacticesemanticunknownunallistadevalueselexicsunaaltrellistaanswercompletexpectedvaluecoveragevalueothervalue