DOC PREVIEW
Columbia COMS W4115 - Wizard of HOuse Management (WHOM)

This preview shows page 1-2 out of 5 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 5 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 5 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 5 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

(GROUP LEADER) - Rui Kuang ([email protected]) Andrey Butov ([email protected], [email protected]) Arvid Bessen ([email protected], [email protected]) Svetlana Starshinina ([email protected]) Wizard of HOuse Management (WHOM) The WHOM language is designed to allow developers to simulate the creation and management of a household. Using WHOM, it is possible to define a household as well as a set of rules to govern the automatic operations of that household. WHOM is designed to be a simple but powerful, object-oriented, event-driven, flexible, and robust language. Overview Many sci-fi writers envision a future world in which most of the household tasks would be performed by machines. Even today many objects exist that have the capacity of being programmed. Examples include VCRs, alarm clocks, etc. It is not so hard to imagine that in the future many household objects, from windows to full-featured security systems will come with built-in computers capable of controlling various built-in functionalities. A simple window, equipped with the right mechanism, can be easily opened or closed, and locked or unlocked automatically without requiring any action by a human. The possibilities are virtually endless, and could involve not only windows that open and close, but doors that lock and unlock, and refrigerators that automatically restock themselves by contacting the nearest supermarket and ordering the necessary foods to be delivered at a certain time. With a slight stretch of imagination, it is also possible to imagine that in the future objects would be able to perform more complicated tasks, such as windows washing themselves, beds making themselves, and entire households being able to implement internal security and ambiance features. We have assumed that our objects are “futuristic” with complex mechanisms that enable them to perform a variety of function. All objects in the house are connected to a single Household Management System (HMS), which allows them to communicate. The WHOM language allows to define the behavior of these objects. Instead of issuing commands to each of these objects, the WHOM language is intended to provide a uniform and easy-to-use programming interface to the objects in the house. This way the objects will be able to act even when the owner of the house is not present at all. Thus, rather than going into the trouble of issuing direct commands, the user would be able to write a program in the WHOM language to specify what the objects should do, and in response to what events. Considering the fact that a majority of the population has no programming experience, we had to make the language very simple to use. In order to use the language, first the house itself needs to be defined and then all the objects inside the house need to be “plugged in”. This may be done by a WHOM system programmer, similar to how some things get installed by the electrician currently. However, the language is simple enough for the user,to be able to define behavior by first issuing simple commands (such as “close window when temperature < 70”), which can be combined to compose a more intelligent household management system. The key characteristics of the language are outlined in greater detail below. Simple: WHOM is very easy to use for users, even those that have minimal programming experience. The commands are very close to the English language and the syntax is very intuitive. The language provides several built-in classes, which can be very easily manipulated by the user by issuing commands such as “close”, “lock”, etc. The object status is periodically examined and appropriate functions can be performed to change the status of the object. Behavior intrinsic to the various objects allows the user to be able to perform simple household tasks with great ease. Additionally the language supports the measurement of several environmental variables, such as temperature, light intensity, etc, and allows the user to specify the appropriate preset or customized response to changes in the environment. // define house Window northWindow; Window southWindow; Window eastWindow; Window westWindow; all(Window).close; Group somewindows = { northWindow, eastWindow, westWindow }; somewindows.open; Powerful: WHOM is very powerful even for beginners. For more advanced users WHOM presents virtually no limits. In addition to the built-in classes, the users can specify their own classes, with their own set of parameters and commands. Adding a new object type to the household management system will be equivalent to including a library class in a Java program, and then all the commands to manipulate the object will automatically become available to the user. The users can also create new functions in order to simplify more frequent tasks. It is possible to program the HMS to respond to such complicated events like when the kids come home from school,, or to program the system so that the house cares for itself while the family leaves for vacation. // define house Window northWindow; Window southWindow; Security alarmif ( any(Window).broken ) { alarm.activate; phone.callPolice; } Object-oriented: The language is heavily object-oriented, since most of the commands in WHOM are commands to objects to perform certain actions. In order for an object to execute a command, it has to be defined for that object. If a certain command does not exist, an error message will be issued. The various objects in a system will be “plugged-in” into the house management system. The objects will be either standard and predefined or customized and defined by the user, similar to existing libraries and self-defined classes in Java. The standard objects, such as windows, doors, TVs will have a predefined set of actions that could be performed on them. The customized objects may come with a more complex set of actions that need to be specified by the user. Extendible: The user can specify any kind of house, with any number of rooms, windows, doors and other objects. Any object can be added or removed from the home management system at any time. The actions performed by objects


View Full Document

Columbia COMS W4115 - Wizard of HOuse Management (WHOM)

Documents in this Course
YOLT

YOLT

13 pages

Lattakia

Lattakia

15 pages

EasyQL

EasyQL

14 pages

Photogram

Photogram

163 pages

Espresso

Espresso

27 pages

NumLang

NumLang

6 pages

EMPATH

EMPATH

14 pages

La Mesa

La Mesa

9 pages

JTemplate

JTemplate

238 pages

MATVEC

MATVEC

4 pages

TONEDEF

TONEDEF

14 pages

SASSi

SASSi

16 pages

JTemplate

JTemplate

39 pages

BATS

BATS

10 pages

Synapse

Synapse

11 pages

c.def

c.def

116 pages

TweaXML

TweaXML

108 pages

Load more
Download Wizard of HOuse Management (WHOM)
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Wizard of HOuse Management (WHOM) and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Wizard of HOuse Management (WHOM) 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?