<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">DomoBuilder: A MultiAgent Architecture for Home Automation</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Andrea</forename><surname>Addis</surname></persName>
							<email>addis@diee.unica.it</email>
							<affiliation key="aff0">
								<orgName type="department">Dept. of Electrical and Electronical Engineering</orgName>
								<orgName type="institution">University of Cagliari</orgName>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Giuliano</forename><surname>Armano</surname></persName>
							<email>armano@diee.unica.it</email>
							<affiliation key="aff1">
								<orgName type="department">Dept. of Electrical and Electronical Engineering</orgName>
								<orgName type="institution">University of Cagliari</orgName>
							</affiliation>
						</author>
						<title level="a" type="main">DomoBuilder: A MultiAgent Architecture for Home Automation</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">5977DFBAB44B73584EC0D7678DBCA222</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T05:55+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Current technologies permit people to make use of various systems able to fulfill most of their needs while being at home. However, their use is often not intuitive and they are also difficult to integrate. In this paper we propose a solution to these issues, together with a pragmatical demonstration of its effectiveness. The architectural solution we devised, called DomoBuilder, is aimed at abstracting hardware (i.e., electronic devices) and software (i.e., applications, systems), with specific emphasis on the ability of simplifying human interaction while combining heterogeneous devices within the same application. In so doing, system integration is promoted, making it easier to devise complex devices that implement new behaviors while preserving ease of use. A case study has also been devised and implemented, which highlights the great potential of the DomoBuilder architecture.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>The new technological era has given birth to more and more powerful automatic devices for home automation, providing a huge amount of innovative devices and services. However, such systems are often not intuitive, or impossible to use, without a training phase (e.g., using a TV set typically requires to access decoders, recorders, remote controls, and configuration panels). Even a simple MP3 reader typically requires reading a short manual before beign able to use it.</p><p>Human beings feel more comfortable with describing an object throughout its properties; in fact, problems that occur with new devices and their use are often due to an imperfect or missing description of the corresponding properties.</p><p>In principle a property can be read, set, or modified. However, properties can be different in their meaning and usage. For instance, some are required to describe the internal state of a device without the need of exporting them to the user (e.g., different parameters can be checked by a car for security purposes, but the driver does not need to know them), some are made available to the user in "read-only" mode (e.g., the temperature shown by a thermostat), and others are directly changeable by the user (e.g., the state of a lamp).</p><p>In the Object Oriented paradigm, the scope of a property can be controlled with access modifiers. The visual development approach, in which complex components export just the features required for their usage, uses the so-called Properties, Methods, Events (PME) model <ref type="bibr" target="#b8">[9]</ref>. In PME, properties describe a component, methods allow to use it (modifying properties and/or its state), and events allow the system to be informed about occurring changes. Properties can be made read-only to protect them by accidental access, while methods can be used to change them, or a collection of them, including the state of the component in hand.</p><p>The simplest way to describe a device consists of exporting and clearly depicting the set of properties deemed useful for the final user <ref type="bibr" target="#b6">[7]</ref>. Encapsulating and combining those properties allows to build new interfaces and components, so that the system can be enriched with more powerful functionalities.</p><p>From a software engineering point of view, the Agent-Oriented Software Engineering (AOSE) paradigm <ref type="bibr" target="#b12">[13]</ref> allows to embed heterogeneous devices in the same architecture, also providing useful supports for communication, persistence, pro-activeness, and mobility. In particular, there are many evidences of the advantages in using MultiAgent Systems (MAS) for Home Automation (aka Domotics) and Ambient Intelligence (AmI).</p><p>Sánchez et al. <ref type="bibr" target="#b10">[11]</ref> point out that AmI investigates ubiquitous computer-based services, based on a variety of objects and devices, so that their intelligent and intuitive interfaces act as mediators through which people can interact with the ambient environment. The authors also highlight that research in context-aware systems has been moving towards reusable and adaptable architectures for managing more advanced humancomputer interfaces.</p><p>Acampora and Loia <ref type="bibr" target="#b0">[1]</ref> highlight the capability of AmI to deal with a new world, where computing devices are spread everywhere to improve the quality of the interaction between human beings and information technology and to put together a dynamic computational ecosystem capable of satisfying the user requirements. They show how the design of AmI systems depends upon psychological-and social-science aspects, able to describe and analyze the status of a human being during the process of decision making performed by a system. Also device coordination during the execution of services in AmI systems is of paramount importance, as focused in <ref type="bibr" target="#b5">[6]</ref>, where planning capabilities for MAS in the AmI context are analyzed.</p><p>According to Bergenti and Poggi <ref type="bibr" target="#b2">[3]</ref>, a real load of works presents the usefulness of the AmI in the health care context. These applications can take outstanding advantage of the intrinsic characteristics of MAS thanks to notable features that most healthcare applications share: (i) they are composed of loosely coupled (complex) systems; (ii) they are realized in terms of heterogeneous components and legacy systems; (iii) they dynamically manage distributed data and resources; and (iv) they are often accessed by remote users in (synchronous) collaboration.</p><p>Further approaches for service-oriented architectures <ref type="bibr" target="#b11">[12]</ref>, independent from a specific environment <ref type="bibr" target="#b4">[5]</ref>, or aggregators of technologies, for domestic health purposes <ref type="bibr" target="#b7">[8]</ref>, are also proposed in the literature.</p><p>This work presents DomoBuilder, a multiagent architecture for home automation, together with a case study aimed at showing how a complex system for AmI purposes can be easily built with it.</p><p>A major issue with this work is to provide really simple human interfaces. In fact, in the 21th century, human beings are expected to communicate with devices and systems mimicking the way they communicate with each other, e.g., throughout natural speech and/or gestures. People that are clueless when it comes to computer technology should be taken as target, our goal being to make the system usable also to people that are not familiar even to simple operations like selecting, dragging and clicking items with a mouse. For this reason, DomoBuilder represents every single component of the system by its properties and shows in natural language a description of the operations it can perform.</p><p>The rest of the paper is organized as follows: Section II illustrates the DomoBuilder architecture and Section III describes its "internals". The case study is then presented in Section IV. Conclusions and future work (Section V) end the paper.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. DOMOBUILDER BUILDING BLOCKS</head><p>DomoBuilder is a multiagent architecture for home automation, which promotes the abstraction of any software or hardware device. Furthermore, it allows to centralize their control and to make uniform their interface, so that interacting with them becomes very easy, also thanks to the integration of special devices explicitly devised for handling human interfaces. According to <ref type="bibr" target="#b9">[10]</ref>, in DomoBuilder each device is intended as the building block of a system -i.e., a resource or tool that has describable properties and can encapsulate some kind of functions. Moreover, thanks to a centralized control, it is possible to connect devices for building complex systems.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Devices</head><p>Let us take as examples of device a light bulb and an mp3 player. The former has one property that describes its state (i.e., on/off), and a method that allows to turn on and off (i.e., toggle) the light, whereas the latter can: (i) store the track loaded, (ii) store its state (i.e., it is playing/stopped/paused), (iii) play a particular track, (iv) search for a track, and (v) trigger an event -e.g., when a track or a playlist is finished. Other examples of common devices used in Home Automation are a thermostat, a sensor, a microwave, and a washingmachine.</p><p>The ability of mashing up heterogeneous devices and of combining their functionalities permits to give rise to complex systems. Let us consider some trivial -though clarifyingexamples that highlight this concept: (1) "when the room temperature is low and the sensor detects a movement, turn on the heat pump" and ( <ref type="formula">2</ref>) "when the current mp3 playlist has been played, turn lights on". To this end, DomoBuilder provides a support for defining devices, for combining events, and for triggering method calls from a device to another. As a result, devices can be connected together to implement new behaviors.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Interfaces</head><p>Interfaces can be seen as a particular kind of device, aimed at permitting the user to interact with the system. Due to a reflective behavior performed on top of devices, interfaces in DomoBuilder can dynamically retrieve information about features of other devices. Furthermore, each device can store visual information about its appearance and its position in the environment, thus permitting to build a 3D-like visualization of the structure of a system in terms of its embedded devices.</p><p>This approach makes it also easier to ask a device how it can be useful for our purposes. <ref type="foot" target="#foot_0">1</ref></p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Agents</head><p>Since every device hosted by DomoBuilder must be autonomous and must natively integrate social abilities to interact with the other devices, the AOSE paradigm has been adopted, as Domobuilder has been built upon the agent framework JADE <ref type="bibr" target="#b1">[2]</ref>.</p><p>In particular, DomoBuilder devices are in fact Jade agents. To define a specific kind of device one should extend the Device class of DomoBuilder, setting name, description and properties. This is the only information required to allow the user and (instances of) other devices to communicate with it (i.e., with an instance of the device being defined).</p><p>A special agent called Kernel (see section III-C) has been defined -aimed at controlling the life cycle of devices and at handling system events. In fact, according to <ref type="bibr" target="#b3">[4]</ref>, it is really useful to delegate a particular kind of agent to centralize the knowledge about the network of components embedded by a system. A GUI called Panel is also available when a DomoBuilder system starts, together with a Clock device useful to temporize actions. In DomoBuilder, devices can be added and activated at run-time. The Kernel handles the life on the system and its persistence.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D. Containers</head><p>In general, a device wraps and controls the corresponding hardware or software device. It can communicate within the system and move across JADE containers. The containers belonging to the main platform are two: (i) the "Core" container, which hosts the Kernel, and (ii) the "Devices" container, which hosts the Panel and other devices. When additional machines want to connect to the system, they must connect their own JADE container to the main platform<ref type="foot" target="#foot_1">2</ref> (see Figure <ref type="figure" target="#fig_0">1</ref>). </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>E. General-Purpose Transducers</head><p>As DomoBuilder is expected to deal with heterogeneous hardware devices, a general-purpose transducer, called Morettillo, has been devised and implemented (see Figure <ref type="figure" target="#fig_1">2</ref>). Morettillo is a small plug-and-play hardware device equipped with radio switches, which allows to interact with up to 5 output (wired or wireless) and 7 input channels. It is endowed with a transmission channel compatible with switches working on radio frequencies 433.92MHz x 1000W max, which are commonly used and not expensive (about 7 Euros x plug). Connected via USB and auto-powered, Morettillo is automatically recognized by MS Windows.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. DOMOBUILDER INTERNALS</head><p>At the first start, a default configuration is created, which includes a Panel and a Clock device. The former is a GUI that allows to interact with the system, whereas the latter is useful to create temporized rules (e.g., alarms or time events).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Communication</head><p>Since devices are JADE agents, it is possible to communicate with them using ACL performatives according to a given ontology. The Panel device (see Figure <ref type="figure">3</ref>) is a very simple graphical user interface, which allow to easily communicate with the other devices, hiding the technical details concerning communication.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Events</head><p>Events are handled by the Kernel throughout an instance of the class EventHandler, which is contained in UltraUnits, a general purpose library that has been implemented to provide a suite of tools for handling common data structures, operating system components, data sources, and multimedia. An instance of the EventHandler class is generated according to the singleton pattern, yielding the eventHandler object, which is used to dispatch asynchronous events if given conditions are reached. A condition represents the achieved state of one or more variables. When a condition is reached a corresponding action is undertaken. It is also possible to define time constraints, and the number of times an action can be executed.</p><p>As an example let us assume that one wants to create the following rule: "when the thermostat measures less than 18 degrees, the Panel must show the new temperature provided that the light is on. Activate this rule from December 20 th , 2010, at 8pm and only on Monday" we must write: </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Kernel</head><p>The Kernel is aimed at managing (i) the life cycle of the devices populating the system and (ii) the occurring events. In order to do this, the Kernel uses the following commands:</p><p>1) Commands to Manage Devices:</p><p>• KERNEL_DEVICE_ADD: adds a device to the system defining its name (e.g., Thermostat), according to the given class (e.g., domo.devs.Thermostat), and the name of an existing container (e.g., Devices). On failure (e.g., when the container does not exist) a KERNEL_DEVICE_ERROR command is issued. • KERNEL_DEVICE_REMOVE: removes a device identified by its name. • KERNEL_DEVICE_ADDED: informs the Kernel that a device has been correctly created. Then the KERNEL_EVENT_TRIGGERED command is issued (e.g., KERNEL.KERNEL_DEVICE_ADDED == Thermostat). • KERNEL_DEVICE_ERROR: informs the Kernel that an error has been triggered by a device.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2) Commands to Handle Events:</head><p>• KERNEL_EVENT_ADD: adds an event defining its properties; • KERNEL_EVENT_REMOVE: removes an event identified by its id; • KERNEL_EVENT_TRIGGERED: informs the Kernel that an event has been triggered (i.e., a device changed its state).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>D. Devices</head><p>As already pointed out, devices are agents wrapping hardware devices into DomoBuilder. Their description is set during their development by calling the methods: putDeviceDescription(String deviceDescription) putDeviceDescription(String deviceDescription, boolean deviceVisible, BufferedImage deviceImage, Point3D devicePosition) where:</p><p>• deviceDescription: a string describing the device;</p><p>• deviceVisible (optional): a boolean value indicating whether the device is visible in the control panel. In fact, a device can be removed from the Panel if not used by a user (e.g., a user may not need to interact with a speech engine, whereas it can be used by other devices to communicate with the user); • devicePosition (optional): the physical position of a device in the environment; • deviceImage (optional): the image used to represent the device. The properties of a device are identified by their name and can store a string value, optionally with the type of the value. They can be set calling the method: putDeviceProperty (String name, String description, String type, String format, String initialValue) where:</p><p>• name: the name of the property.</p><p>• description: a string that describes the property, in natural language; • type: the type of the property (it must be a Java class name); • format: the property in an EBNF-like format;</p><p>• initialValue: a string representing the initial value (it can be empty). The methods applicable to a device are identified by their name, the parameters of a method (if any) being embedded into a single string (multiple parameters can also be represented in XML format). A method can be attached to a device as follows:</p><p>putDeviceMethod (String name, String description, String type, String format) where:</p><p>• name: the name of the method;</p><p>• description: the description of the method in natural language; • type: the type of the property, i.e., the name of a Java class; • format: the property in an EBNF-like format. A device can handle the following commands:</p><p>• DEVICE_METHOD: executes a method with its parameter; • DEVICE_MOVE: moves the device to another container;</p><p>• DEVICE_DIE: turns off and remove a device from the list of devices.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>E. Requesting Information</head><p>Requests on different topics can be made to the Kernel or to a device by sending the message "INFORMA-TION REQUEST". The corresponding reply will be given throughout the message "INFORMATION INFORM".</p><p>The list of topics, with the corresponding parameters and answers, follows:</p><p>• TOPIC_DESCRIPTION: requests the description to a device (parameters = none, answer = the description of the device in text format); • TOPIC_PROPERTY: requests a specific property to a device (parameters = the name of the property, answer = the name of the property and its value);</p><p>• TOPIC_EVENTS: requests the list of the events to the Kernel (parameters = none, answer = the system events in text format). • TOPIC_DEVICELIST: requests the list of the device names to the Kernel (parameters = none, answer = the name of the devices in text format, one for each line).</p><p>To give the reader the flavor of how an information request is issued, let us consider the following examples:</p><formula xml:id="formula_0">&gt; Kernel INFORMATION REQUEST TOPIC EVENTS &gt; Thermostat INFORMATION REQUEST TOPIC PROPERTY Temperature</formula><p>The answer is issued by the device to which the request has been addressed throughout the overridden method: onAnswer(String senderLocalName, String topic, String answer).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. CASE STUDY</head><p>The case study (called DomoPro) developed in the field of home automation consists of:</p><p>• Panel: A GUI for the system • HiFi: An mp3 Reader • Clock: A system clock with alarm • Pyrotz: A device that can understand commands in natural language • Movimentio: A movement sensor that exploit a computer webcam • Nabaztag: A device to control the Nabaztag Tag 3 , a Wi-Fi enabled ambient electronic device in the shape of a rabbit • Skype: A device that interfaces the system with the Skype messenger • Talker: A text to speech synthesizer • MailReader: A device able to read e-mails • Morettillo: A device that controls the homonym generalpurpose hardware device • Piantana: A device that controls a lamp • Scaldabagno: A device that controls a house water heater Thanks to the portability of DomoBuilder and to the plugand-play capability of Morettillo, a new installation of the above set of useful home automation functionalities can be performed in less than 10 minutes.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Starting DomoPro</head><p>When DomoBuilder starts for the first time, a new configuration file (i.e., domo.xml) is created; then the Kernel, the Panel, and the Clock start running. The properties and methods of these devices can be easily inspected throughout the graphical interface of the Panel (see Figure <ref type="figure" target="#fig_2">4</ref>). In order to do this, the user must click the button with the name of the 3 See Nabaztag on Wikipedia. device to inspect. Upon clicking, the properties of the device, together with the corresponding values, will be listed on the left, whereas the method buttons will appear on the right side of the Panel.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Building a New Device</head><p>To create a device, one must extend the domo.Device DomoBuilder class. To describe the device, together with its properties and methods, the putDeviceDescription, putDevi-ceProperty, putDeviceMethod must be called as described in section III-D.</p><p>For the sake of simplicity, let us take a look at the Clock device, which is actually already available in DomoBuilder. As we can see from Figure <ref type="figure" target="#fig_2">4</ref>, the final device ought to have three properties and three methods. An example of code follows: timer.start(999); } Note that the device timer has been instantiated to run an action each second; i.e., every second the overridden method onTimer() will be called. In this particular case, the onTimer() method will (i) update the time of the clock and (ii) check whether the alarm sound has to be played.</p><p>At this point, the system knows the description of this device, its readable properties, and its callable methods. To better illustrate what happens when a user or a device in the system calls a method, let us report the following Java code, which overrides the default onMethod() method: In so doing, our Clock device is ready.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Adding Further Devices to DomoPro</head><p>The Kernel can be asked at any time to add further devices. For the sake of brevity, let us describe how to add the Morettillo device.</p><p>The following command must be sent to the Kernel through the Panel command box 4 : KERNEL KERNEL_DEVICE_ADD &lt;name&gt;Morettillo&lt;/name&gt; &lt;class&gt;domo.ultra_devices.Morettillo&lt;/class&gt; &lt;container&gt;Devices&lt;/container&gt; After that, the Morettillo button will appear on the panel, close to the buttons of other devices. Please note that this operation could be made completely automatic, being the device recognized and activated as soon as its class (e.g., jar file) is added to the program folder. D. Analysing Some Relevant Devices of DomoPro 1) Pyrotz: We prototyped Pyrotz, a device which permits to communicate with the system using natural language. We can communicate with Pyrotz by sending the command message DEVICE_METHOD device.user Hear Hello my friend! 5 as well as writing Hello my Friend! in the big yellow text field on the Panel. It will write the answer in the small yellow panel below (see Figure <ref type="figure" target="#fig_3">5</ref>). Pyrotz can understand natural language, so, it is able to translate sentences like: "turn on the light", "please could you turn the lights on?", "it is too dark, make light", with, Piantana DEVICE_COMMAND Switch ON.</p><p>Thanks to the event-triggering mechamism, when Pyrotz says something the Talker will speech it.</p><p>2) Skype: The system can be interfaced with the Web by wrapping any kind of Internet application. For instance, thanks to the Skype device, we can (i) directly send commands to DomoPro or (ii) chat with Pyrotz. Using an external voice recognition software it is also possible to talk to DomoPro.</p><p>In principle, everybody can talk and receive answers from Pyrotz, even if for obvious security reasons, only selected Skype users are allowed to send command to the house in which the system has been installed. 4 Opening the command box, a list of command templates is given. 5 The parameter device.user identifies the sender, e.g., domo.Panel. This prevents other devices to communicate with it; "Hear" is the method name, and the rest is the parameter of the command, or the sentence in this case</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>E. Adding Events to DomoPro</head><p>All DomoPro devices can be used in isolation. For instance, the talker could be asked to say "Hello", the house lights can be turned on and off (even from an Internet computer connected with Skype). More interesting is when DomoPro automatically undertakes decisions and executes complex behaviors (i.e., behaviors that involve different devices). Some examples of complex behaviors follows:</p><p>1) When Pyrotz utters or answers something, should Talker synthesize it. 2) When somebody wakes up in the morning, turn on the mp3 reader 3) When somebody gets back home in the afternoon, read the emails 4) When somebody leaves the room, turn off the lights 5) If somebody touches the ears of the Nabaztag, ask him to stop doing it</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>V. CONCLUSIONS AND FUTURE WORK</head><p>In this paper we proposed and illustrated DomoBuilder, an architectural solution aimed at abstracting hardware and software, with specific emphasis on the ability of simplifying human interaction while combining heterogeneous devices within the same application. A case study has also been illustrated, which highlights the great potential of the Do-moBuilder architecture. With DomoBuilder, it is very easy to devise, implement, and install easy-to-use and low-cost systems for Home Automation, also thanks to the uderlying multiagent architecture that facilitates the integration of, and the interaction among, heterogenous devices.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. The system at a glance</figDesc><graphic coords="3,55.24,139.23,238.50,257.58" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Morettillo, a panel for controlling electronic devices</figDesc><graphic coords="3,318.25,254.49,238.50,189.76" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. The Panel shows the Clock properties</figDesc><graphic coords="5,318.25,249.53,238.50,129.62" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. Saying hello to Pyrotz</figDesc><graphic coords="6,55.24,383.37,238.51,78.73" type="bitmap" /></figure>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="1" xml:id="foot_0">See for example http://www.alice.org/. Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing. It uses 3D graphics and a drag-anddrop interface to facilitate a more engaging, less frustrating first programming experience.</note>
			<note xmlns="http://www.tei-c.org/ns/1.0" place="foot" n="2" xml:id="foot_1">A batch file is provided to quickly and easily start a new platform.</note>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>ACKNOWLEDGMENTS</head><p>We would like to thank Marco Lai (aka Moretti) for his help in developing the Morettillo hardware device and Eloisa Vargiu for her useful suggestions about the DomoBuilder architecture.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">A dynamical cognitive multi-agent system for enhancing ambient intelligence scenarios</title>
		<author>
			<persName><forename type="first">G</forename><surname>Acampora</surname></persName>
		</author>
		<author>
			<persName><forename type="first">V</forename><surname>Loia</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">FUZZ-IEEE&apos;09: Proceedings of the 18th international conference on Fuzzy Systems</title>
				<meeting><address><addrLine>Piscataway, NJ, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Press</publisher>
			<date type="published" when="2009">2009</date>
			<biblScope unit="page" from="770" to="777" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title level="a" type="main">Developing multi-agent systems with JADE</title>
		<author>
			<persName><forename type="first">F</forename><surname>Bellifemine</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Poggi</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Rimassa</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">ATAL &apos;00: Proceedings of the 7th International Workshop on Intelligent Agents VII. Agent Theories Architectures and Languages</title>
				<meeting><address><addrLine>London, UK</addrLine></address></meeting>
		<imprint>
			<publisher>Springer-Verlag</publisher>
			<date type="published" when="2001">2001</date>
			<biblScope unit="page" from="89" to="103" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<analytic>
		<title level="a" type="main">Multi-agent systems for e-health: Recent projects and initiatives</title>
		<author>
			<persName><forename type="first">F</forename><surname>Bergenti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Poggi</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">10th Workshop dagli Oggetti agli Agenti (WOA</title>
				<imprint>
			<date type="published" when="2009">2009. 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title level="a" type="main">A novel multi-agent framework for the design of home automation</title>
		<author>
			<persName><forename type="first">W.-H</forename><surname>Chen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">W.-S</forename><surname>Tseng</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Information Technology: New Generations, Third International Conference on</title>
				<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="volume">0</biblScope>
			<biblScope unit="page" from="277" to="281" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">The intelligent butler: a virtual agent for disabled and elderly people assistance</title>
		<author>
			<persName><forename type="first">G</forename><surname>Fiol</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Arellano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">J</forename><surname>Perales</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Bassa</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Zanlongo</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">International Symposium on Distributed Computing and Artificial Intelligence</title>
				<meeting><address><addrLine>DCAI</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2008">2008. 2008. 2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Multiagent technology solutions for planning in ambient intelligence</title>
		<author>
			<persName><forename type="first">N</forename><surname>Gatti</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><surname>Amigoni</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Rolando</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the 2008 IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology</title>
				<meeting>the 2008 IEEE/WIC/ACM International Conference on Web Intelligence and Intelligent Agent Technology<address><addrLine>Washington, DC, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IEEE Computer Society</publisher>
			<date type="published" when="2008">2008</date>
			<biblScope unit="page" from="286" to="289" />
		</imprint>
	</monogr>
	<note>WI-IAT &apos;08</note>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<title level="m" type="main">Cien años de soledad</title>
		<author>
			<persName><forename type="first">G</forename><forename type="middle">G</forename><surname>Márquez</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1967">1967</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<analytic>
		<title level="a" type="main">Perceptual and intelligent domotics system for disabled people</title>
		<author>
			<persName><forename type="first">C</forename><surname>Munoz</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Arellano</surname></persName>
		</author>
		<author>
			<persName><forename type="first">F</forename><forename type="middle">J</forename><surname>Perales</surname></persName>
		</author>
		<author>
			<persName><forename type="first">G</forename><surname>Fontanet</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proceedings of the Sixth IASTED International Conference</title>
				<meeting>the Sixth IASTED International Conference</meeting>
		<imprint>
			<date type="published" when="2006">2006</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b8">
	<monogr>
		<title level="m" type="main">Borland C++ Builder</title>
		<author>
			<persName><forename type="first">K</forename><surname>Reisdorph</surname></persName>
		</author>
		<author>
			<persName><forename type="first">H</forename><surname>Ken</surname></persName>
		</author>
		<imprint>
			<date type="published" when="1997">1997</date>
			<publisher>Apogeo</publisher>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b9">
	<analytic>
		<title level="a" type="main">Give agents their artifacts: the A&amp;A approach for engineering working environments in MAS</title>
		<author>
			<persName><forename type="first">A</forename><surname>Ricci</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Viroli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Omicini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">AAMAS, 6th International Joint Conference on Autonomous Agents and Multiagent Systems (AAMAS 2007)</title>
				<editor>
			<persName><forename type="first">E</forename><forename type="middle">H</forename><surname>Durfee</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><surname>Yokoo</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">M</forename><forename type="middle">N</forename><surname>Huhns</surname></persName>
		</editor>
		<editor>
			<persName><forename type="first">O</forename><surname>Shehory</surname></persName>
		</editor>
		<meeting><address><addrLine>Honolulu, Hawaii, USA</addrLine></address></meeting>
		<imprint>
			<publisher>IFAAMAS</publisher>
			<date type="published" when="2007">May 14-18, 2007. 2007</date>
			<biblScope unit="page">150</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b10">
	<analytic>
		<title level="a" type="main">Multi-agent system (mas) applications in ambient intelligence (ami) environments</title>
		<author>
			<persName><forename type="first">N</forename><surname>Sanchez</surname></persName>
		</author>
		<author>
			<persName><forename type="first">E</forename><surname>Mangina</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Carbs</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><forename type="middle">M</forename><surname>Molina</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Trends in Practical Applications of Agents and Multiagent Systems</title>
				<imprint>
			<date type="published" when="2010">2010</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b11">
	<analytic>
		<title level="a" type="main">An ambient intelligence application integrating agent and service-oriented technologies</title>
		<author>
			<persName><forename type="first">N</forename><forename type="middle">I</forename><surname>Spanoudakis</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><surname>Moraitis</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">SGAI Conf</title>
				<imprint>
			<date type="published" when="2007">2007</date>
			<biblScope unit="page" from="393" to="398" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b12">
	<analytic>
		<title level="a" type="main">Challenges and research directions in agent-oriented software engineering</title>
		<author>
			<persName><forename type="first">F</forename><surname>Zambonelli</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Omicini</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Journal of Autonomous Agents and Multiagent Systems</title>
		<imprint>
			<biblScope unit="volume">9</biblScope>
			<biblScope unit="page" from="253" to="283" />
			<date type="published" when="2004">2004</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
