variable), value (the value stored in the meta edge
connecting the environmental variable to node
„value”), sensitivity (which can be derived
similarly to value using node „granularity” and the
appropriate meta edge), and affirmativeness, which
is a Boolean value. If its value is false then the
condition is used as if it would be negated. (Thus
the trigger will be triggered only if the condition is
not fulfilled.)
3.2 Intelligent Detection
The Intelligent Detection part consists of
Command Pre-Processor (CPP) modules and
Additional Intelligent Detector (AID) modules.
The task of the CPP modules is to detect the
command given by human users and transform it
into a whole sentence (for example, “open the
window”). The methods used to achieve this
depend on the type of the available detectors. For
example, for voice commands microphones are
required, and to be able to give command to the
iSpace via hand gestures (so users suffering from
hearing impairment or muteness can communicate
with the system as well via sign language) one or
more cameras are necessary. For the latter case, the
hand gesture detection and recognition system
proposed by (Várkonyi-Kóczy et al., 2010)can be used.
The task of the AID modules is to provide
additional information to the system, like
estimating the emotional state of the human users.
3.3 Command Processor
The modules of the Command Processor analyze
the given command and order the appropriate
executive agents to carry it out. These modules are
the Command Parser Module, the Command
Interpreter Module and the Instructor Module.
3.3.1 Command Parser Module (CPM)
The task of the CPM is to determine the type of the
command and parse it with regards to its type. Its
input is the pre-processed command in the form of
a whole sentence and its output is the parsed
command.
Two different types of commands are
distinguished: instructions and prohibitions.
Instructions are simple commands, which are
given by the user to achieve change in the
environment. The first part of instructions
describes the action that is needed to be executed,
while the second part describes the subject of the
action. After that there can be optional numerical
values.
Prohibitions are commands that are given by the
user to bound one or more commands that were
already learned, thus achieving change in the
hypotheses. Their structure is similar to instructions,
with the difference that they start with DO NOT and
have additional (at least one) text parameters, which
represent fuzzy sets. For example, in case of „DO
NOT make coffee on Saturday” prohibition command
„Saturday” means the fuzzy membership function that
can be seen in figure 3 (the input value can be
retrieved from the meta edge connecting nodes value
and day). Since the granularity of Saturday is 0.2,
early Sunday morning and late Friday night count as
“almost Saturday”.
Since the input is a whole sentence in predefined
format (since English language is quite strictly
defined), the parsing algorithm is simple. For
example, in case of instructions the first word is
always the action and (after the removal of occurrent
articles, like “the”) the second one is the subject of the
command.
3.3.2 Command Interpreter Module (CIM)
The task of the CIM is to determine which executive
agent can execute the command. Its input is the parsed
command and its output is the address/reference of an
executive agent.
The algorithm of the command interpretation is
applied only if the command is an instruction, since
prohibitions are not needed to be executed. First the
algorithm needs to find the node corresponding to the
subject of the command, with the usage of the
dictionary. Then if there is such node, the next step is
to find out what can do the action of the command to
the previously found node. This is done by searching
among the action edges. If there is one and it has an
instance (there is an instance edge to it), then the
algorithm has found the executive agent that can
execute the command. If there is none (or there is, but
it does not have any instances) then the algorithm
looks at the ancestors of the subject node (via
inheritance edges), recursively searching for an
ancestor with at least one instance. If there is at least
one, then the algorithm returns the address/reference
of the executive agent bound to that ancestor.
Otherwise, the command cannot be executed.
3.3.3 Instructor Module
The task of the Instructor Module is to instruct the
executive agents chosen by the interpreter to execute
the task to provide the desired service for the user.
INTELLIGENT HOTEL ROOM ASSISTANT
185