Ontologies in a Pervasive Computing Environment Anand Ranganathan, Robert E. McGrath, Roy H. Campbell, M. Dennis Mickunas Department of Computer Science University of Illinois, Urbana-Champaign ranganat@uiuc.edu, mcgrath@cs.uiuc.edu, rhc@uiuc.edu, mickunas@cs.uiuc.edu Abstract computing environment. Of course, these problems are not unique to pervasive computing, but are faced by any Ontologies are entering widespread use in many multi-agent software system. We believe that our solu- areas such as knowledge and content manage- tions to some of these issues can be extended to any ment, electronic commerce and the Semantic multi-agent system. Web. In this paper we show how the use of on- This work has considered three major issues that con- tologies has helped us overcome some important front the development and deployment of Pervasive problems in the development of pervasive com- Computing Environments. These are: puting environments. We have integrated on- tologies and Semantic Web technology into our • Discovery and Matchmaking Pervasive Computing infrastructure. Our inves- • Inter-operability between different entities tigations have shown that the Semantic Web technology can be integrated into our CORBA- • Context-awareness based infrastructure to augment several impor- This section briefly describes these three tasks in the do- tant services. This work suggests a number of main of a pervasive computing environment. requirements for future research in the develop- In the future, we will extend this work to augment the ment of ontologies, reasoners, languages and in- configuration and management of multiple Spaces, and to terfaces. augment additional services, such as the Quality of Ser- vice infrastructure [Wichadakul et al., 2002]. 1 Introduction There is growing evidence for the potential value of Se- 1.1 Discovery and Matchmaking in a mantic Web technology for Web Services and other open, Pervasive Computing Environment distributed systems [Goble et al., 2002; Peer, 2002]. This paper presents a case study of the use of Semantic Web A Pervasive Computing Environment has one or more technology in a Pervasive (or Ubiquitous) Computing registries to keep a real time state of the system, i.e., the entities currently present and available; and should have Environment, GAIA [Roman et al., 2002]. Pervasive (or Ubiquitous) Computing Environments a protocol for discovering the arrival and departure of are physical environments saturated with computing and mobile entities, for advertising current availability, and for notifying interested parties of changes. A registry communication, yet gracefully integrated with human users [Lyytinen et al., 2002]. These environments involve with these protocols is termed a “Discovery Service” the construction of massively distributed computing sys- [McGrath, 2000]. Matchmaking [Trastour et al., 2001] uses the Discovery Service to discover not only what tems that feature a large number of autonomous entities (or agents). These entities could be devices, applications, entities are available, but what sets or combinations meet services, databases, users or other kinds of agents. Vari- certain criteria, i.e., the requirements and preferences of the parties. ous types of middleware (based on CORBA, Java RMI, SOAP, etc.) have been developed that enable communi- In the Discovery Service, standard schemas are needed cation between different entities. However, existing mid- to describe many kinds of entities, including people, places, and things. Furthermore, the system has policies, dleware have no facilities to ease semantic interoperabil- ity between the different entities. constraints, and relationships which may need to be dis- Ontologies have been widely used in many areas such covered as well. For a robust system, it is necessary to have a flexible mechanism for exchanging descriptive as knowledge and content management, electronic com- merce and the semantic web. In this paper we show how information of many kinds. the use of ontologies has helped us overcome some of the challenges in constructing and managing a pervasive 1.2 Inter-operability between different en- FaCT Server [Bechhofer et al., 1999; Horrocks et al., tities 1999]. Ontologies are used for describing various concepts in New entities may enter the environment at any time; the GAIA Pervasive Computing Environment. We have these new entities have to interact with existing entities. developed ontologies that describe the different kinds of The interaction must be based on common, well-defined entities and their properties. These ontologies define dif- concepts, so that there is no misunderstanding between ferent kinds of applications, services, devices, users, data the entities. The entities must have a common under- sources and other entities. They also describe various standing of the various terms and concepts used in the relations between the different entities and establish axi- interaction. oms on the properties of these entities that must always For autonomous entities to interact with one another, be satisfied. they need to know, beforehand, what kinds of interfaces A second use of ontologies is to describe different they support and what protocols or commands they un- types of contextual information in GAIA. The ontology derstand. In a truly distributed scenario, such as a perva- defines standard descriptions for locations, activities, sive computing environment, it may not be reasonable to weather information, and other information that may be assume that such agreement exists. used by context-aware applications. Similar mechanisms are needed for humans to interact The ontologies that describe the pervasive environment with different entities. Humans need to understand what greatly help in the smooth operation of the environment. various entities do, and they need to understand the rela- Some of the ways in which we use ontologies in our per- tionships between such entities. It is essential for humans vasive environment are: to form an accurate conceptual model of the environment so that they can interact with the environment easily. • Checking to see if the descriptions of different entities are consistent with the axioms defined in the ontol- 1.3 Context-Awareness ogy. This also helps ensuring that certain security and Applications in pervasive and mobile environments need safety constraints are met by the environment to be context-aware so that they can adapt themselves to • Enabling semantic discovery of entities rapidly changing situations. Applications in pervasive environments use different kinds of contexts (such as • Allowing users to gain a better understanding of the location of people, activities of individuals or groups, environment and how different pieces relate to each weather information, etc.). other The various types of contextual information that can be • Allowing both humans and automated agents to per- used in the environment must be well-defined so that form searches on different components easily different entities have a common understanding of con- text. Also, there needs to be mechanisms for humans to • Allowing both humans and automated agents to inter- specify how different applications and services should act with different entities easily (say, by sending them behave in different contexts. These mechanisms need to various commands) be based on well-defined structures of different types of • Allowing both humans and automated agents to specify context information. rules for context-sensitive behavior of different enti- 1.4 Ontologies in Pervasive Computing ties easily Environments • Enabling new entities (which follow different ontolo- In order to tackle the problems described above, we apply gies) to interact with the system easily. the technologies from the emerging “Semantic Web” In the following sections, we describe how ontologies [Berners-Lee et al., 2001; W3C, 2003a]. While the Se- are used within our Pervasive Computing Environment, mantic Web was designed to enhance Web search and GAIA. We first introduce GAIA; we then describe how agents, we show that it is well suited to some of the re- the Ontology Server fits into the GAIA framework. We quirements of Pervasive Computing Environments. then briefly describe the kinds of ontologies that have We have incorporated the use of ontologies in our pro- been developed and how they are used within GAIA. Fi- totype pervasive computing environment, GAIA [Roman nally, we evaluate our approach and suggest important et al., 2002]. The ontologies are written in DAML+OIL areas for future research. [daml.org, 2003], describing various parts of the GAIA environment. An Ontology Server manages a composite 2. GAIA: A Pervasive Computing Envi- ontology that describes the entities of the system and performs operations on the ontologies. This composite ronment ontology is built by composing different ontologies GAIA is an infrastructure for Smart Spaces, which are specified in DAML+OIL files. The ontologies are vali- pervasive computing environments that encompass dated into a Knowledge Base (KB), built on the CORBA physical spaces [Roman et al., 2002]. GAIA converts physical spaces and the devices they contain into a pro- grammable computing system. It offers services to man- described in the ontologies in the CORBA FaCT Reason- age and program a Space and its associated state. GAIA ing Engine [Bechhofer et al., 1999; Horrocks et al., 1999] is similar to traditional operating systems in that it man- to make sure that they are logically consistent and for ages the tasks common to all applications built for physi- answering logical queries. Other entities in GAIA contact cal spaces. Each Space is self-contained, but may interact the Ontology Server to retrieve descriptions of entities in with other Spaces. GAIA provides core services, includ- the environment, meta-information about context or defi- ing events, entity presence (devices, users and services), nitions of various terms used in GAIA. It is also possible discovery and naming. By specifying well-defined inter- to support semantic queries (for instance, classification faces to services, applications may be built in a generic of individuals or subsumption of concepts). Such seman- way so that they are able to run in arbitrary Smart tic queries are resolved using the FaCT Reasoning En- Spaces. The core services are started through a bootstrap gine. The Ontology Server registers with the CORBA protocol that starts the GAIA infrastructure. GAIA uses Naming Service so that it can be discovered by other en- CORBA to enable distributed entities to communicate tities in the environment. with one another. GAIA has served as our test-bed for the One of the key benefits in using ontologies is that they use of ontologies in Pervasive Computing Environments. aid interaction between users and the environment since We have used GAIA to manage rooms in our Com- they concisely describe the properties of the environment puter Science building. GAIA helps make these rooms and the various concepts used in the environment. With smart and responsive to the needs of different users. that aim in mind, we have developed an Ontology Ex- There are a wide variety of devices that exist in these plorer, which is a graphical user interface that allows rooms. These include authentication devices like finger- users to browse and search the ontologies in the Space. print sensors and smart card readers, display devices like The Ontology Explorer also allows users to interact with large plasma screens, video walls, handheld devices, other entities in the Space through it. This interaction wearable devices like smart watches and smart rings, with other entities is governed by their properties as de- various input devices such as touch screens and micro- fined in the ontology. The Ontology Explorer and Ontol- phones, etc.. In addition, there are large number of appli- ogy Server are described in more detail in [McGrath et cations and services like music-playing applications, al., 2003]. presentation applications and drawing applications. On- tologies provide a very easy way to manage this diversity 2.2. Kinds of Ontologies in Gaia in our environments. We use ontologies to describe various parts of our per- Unlike many uses of ontologies, we have tightly inte- vasive environment, GAIA. In particular, we have on- grated Semantic Web services into the infrastructure. We tologies that have meta-data about the different kinds of implemented an Ontology Server, which is a standard entities in our environment. We also have ontologies to system service that provides a generic interface to man- describe the different kinds of contextual information in age DAML+OIL ontologies, a Knowledge Base, and our environment. The ontologies used in GAIA are de- logic queries. Any entity in the system can use the Ontol- scribed in more detail in [McGrath et al., 2003]. ogy Server. We have created ontologies (in DAML+OIL) to clas- 2.2.1. Ontologies for different entities sify and describe many concepts of the Pervasive Com- Pervasive computing environments have a large number puting Environment. The ontologies include entities of of different types of entities. There are different kinds of the system (not limited to software) and context informa- devices ranging from small wearable devices and hand- tion. helds to large wall displays and powerful servers. There The ontologies and Ontology Server are used to aug- are many services that help in the functioning of the envi- ment system services, including: ronment. There are different kinds of applications such as • Configuration management music players, slide show viewers, drawing applications, etc.. Finally, there are the users of the environment who • Discovery and matchmaking have different roles (student, administrator, etc.). • Human Interfaces Ontologies help formalize and make available the in- formal and implicit taxonomy of the different kinds of • Interoperation of components entities in the system. We have developed ontologies that • Context Sensitive behavior define the different kinds of entities, provide meta-data The ontologies and Knowledge Base are tightly inte- about them and describe how they relate to each other. grated into the whole system. These ontologies are written in DAML+OIL. A Pervasive Computing Environment is very dynamic; 2.1 The Ontology Infrastructure in Gaia new kinds of entities can be added to the environment at We have integrated the use of ontologies in our smart any time. The Ontology Server allows adding new classes and properties to the existing ontologies at any time, by Spaces framework, GAIA. (Figure 1) All the ontologies in GAIA are maintained by an Ontology Server [McGrath merging new concepts into the system ontology. To do et al., 2003]. The Ontology Server asserts the concepts this, a new ontology describing the new entities is first Figure 1. The Ontology Infrastructure of GAIA developed. The new ontology is then added to the shared predicates. We follow a convention where the name of ontology using bridge concepts that relate classes and the predicate is the type of context that is being described properties in the new ontology to existing classes and (like location, temperature or time). An example of a properties in the shared ontology. These bridge concepts context predicate is Location(Chris, in, Room 2401). are typically subsumption relations that define the new This predicate is true if Chris is indeed in Room 2401. entity to be a subclass of an existing class of entities. For Ontologies essentially define the vocabulary and types of example, if a new kind of fingerprint recognizer is added arguments that may be used in the predicates. to the system, the bridge concept may state that it is a The use of ontologies to describe context information subclass of “AuthenticationDevices”. These bridge con- is helpful in checking the validity of context information. cepts are written by the developer of the ontology manu- It also makes it easier to specify the behavior of context- ally. We have no way at present of automatically generat- aware applications since we know the types of contexts ing these bridge concepts, although that would be very that are available and their structure. We can thus easily useful. construct rules governing application behavior using these well-defined context predicates. 2.2.2. Ontologies for context information 2.3. Uses of Ontologies in a Pervasive GAIA has a context infrastructure [Ranganathan et al., Computing Environment 2003] that enables applications to obtain and use differ- ent kinds of contexts. This infrastructure consists of sen- The Ontology Server can be used by any application, sors that sense various contexts, reasoners that infer new component, or service in the GAIA environment. The ontologies that describe entities and context information context information from sensed data and applications that make use of context to adapt the way they behave. are used to enable different parts of the pervasive envi- We use ontologies to describe context information. This ronment interact with each other easily. The ways in which ontologies are used in GAIA are described in more ensures that the different entities that use context have a common semantic understanding of contextual informa- detail in [McGrath et al., 2003]. tion. 2.3.1. Configuration Management There are different types of contexts that can be used A pervasive computing environment is very dynamic, the by applications. These include physical contexts (location configuration must change as activities change, and as and time), environmental contexts (weather, light and people and devices enter and leave. Configuration man- sound levels), informational contexts (stock quotes, agement is very challenging, especially because: sports scores), personal contexts (health, mood, schedule, activity), social contexts (group activity, social relation- • New entities, never before seen, may enter ships, whom one is in a room with), application contexts • Components need to automatically discover and col- (email, websites visited) and system contexts (network laborate with other components traffic, status of printers). We represent contexts as • Entities and components are heterogeneous and participants. It also has the following human- autonomous. understandable comment: Without ontologies, the GAIA environment is config- “A meeting is an activity that is performed by a group of ured with scripts and ad hoc configuration files [Roman people. A meeting involves different people coming to- et al., 2002]. Ontologies can replace these mechanisms gether at a particular time or place with a common pur- with a standard, formal XML language. pose in mind”. Each entity is associated with an XML file that de- Thus, both humans and automated entities in the envi- scribes its properties. When a new entity is introduced ronment can get a clear understanding of the term “meet- into the system, its description is checked against the ing” by looking it up in the ontology. existing ontology to see whether it is satisfiable. If the We have developed a GUI called the Ontology Ex- description is not consistent with the concepts described plorer that allows users to browse the ontology describ- in the ontology, then either the description is faulty (in ing the environment. A user can search for different which case the owner of the entity/context has to develop classes in the ontology. He can then browse the results – a correct description of the entity/context), or there are for example, he can get documentation about the classes safety or security issues with the new entity or context. returned, get properties of the class, etc.. The Ontology For example, the ontology may dictate that all electrical Explorer is similar to a class browser, but it may browse and electronic devices that are to be introduced in an en- information about all concepts in the system (like context vironment (like a smart room) must accept 110V AC information, applications, services, terms), not just the power. In that case, if somebody tries to install a new TV software objects. that is made for Europe and only takes 220V power, then 2.3.4. Improved Inter-operability between enti- the description of the new TV would be inconsistent with ties the ontology and a safety warning may be generated. The description of the properties of different classes of Formal ontologies also increase the capability to use entities thus allows both users and other automated descriptions from different, autonomous sources. The agents to interact with them more easily by performing DAML+OIL ontologies can be published, to enable searches on them or sending them various commands. autonomous developers and service providers to describe This has proved to be one of the major advantages to us- their products with the correct vocabulary. Conversely, ing ontologies in a pervasive computing environment autonomous entities can specify the correct formal vo- since it helps simplify the user’s and the agent’s interac- cabulary to be used to interpret their descriptions by re- tion with such complex systems. ferring to the relevant DAML+OIL ontology. These ac- Entities that support searches have their schemas de- tions require more than the URL: the formal semantics scribed in the ontology. The ontology also specifies defined for DAML+OIL ensures that ontologies from which fields in the query are required and which are op- different sources can be used together. tional. Thus any other entity (including users) can browse 2.3.2. Semantic Discovery and Matchmaking the ontology to learn the schema and query formats sup- In our environment, the Ontology Server performs the ported by the searchable entity. They can then frame their tasks of semantic discovery and matchmaking. It poses query and get the results. For example, we have an MP3 logical queries involving subsumption and classification Server that exposes a query interface for searching for of concepts to the FaCT Server [Bechhofer et al., 1999; MP3 files. The schema for querying contains fields like Horrocks et al., 1999], which has knowledge of all con- artist name, length of song, etc. This schema is described cepts used in the environment. Such queries are useful in in the ontology. Other entities, thus, know how to query finding appropriate matches. Other entities in the envi- the MP3 Server. ronment query the Ontology Server to discover classes of The same idea is used to let entities interact with one components that meet their requirements. another i.e. by sending commands. Different entities al- low different types of actions to be performed on them. 2.3.3. Improved Human Interfaces For example, the MP3 Server described above allows Ontologies can be used to make better user interfaces and different commands to be sent to it –start, stop, pause, allow these environments to interact with humans in a change volume, etc. In our framework, entities specify more intelligent way. Ontologies describe different parts the commands they support and the parameters of these of the system, the various terms used and how various commands in an ontology. Other entities can thus send parts interact with each other. All classes and properties commands to these entities. in the ontology also have documentation that describes 2.3.5 Context-Sensitive Behavior them in greater detail in user-understandable language. Ontologies enable semantic interoperability between us- An ontology can improve the robustness and portability ers and the system. of context-aware applications. It is not possible to design For example, we have defined the term “meeting” as a in all possible contexts—or even to know what contexts subclass of “GroupActivity”. A meeting is defined to may be used. Ontologies for context information are an have a location, a time, an agenda (optional) and a set of important mechanism for adapting to environments. The application specifies rules for context-sensitive behavior using a specific set of context concepts and events (a vo- • A standard API for DAML+OIL (or, more likely, cabulary). When the application moves to a new space, OWL [W3C, 2003b] the context may be different. This might be due to differ- ent sensors, different versions of services, or localiza- • A standard interface for generic Knowledge Base ser- tions. If the differences are terminological, an ontology vices may allow the rules to be “translated” and then work cor- Alternative logic engines and Knowledge Bases should rectly in the new environment. be wrapped in a generic interface, so they can be plugged Context-aware applications in GAIA have rules that in to infrastructure services. For example, the Open describe what actions should be taken in different con- Knowledge Base Connectivity (OKBC) [Chaudhri et al., texts. In order to write such a rule, an application devel- 1998] could be extended to support DAML (OWL). The oper must know the different kinds of contexts available Java Theorem Prover (JTP) [Fikes et al., 2003] is a prom- as well as possible actions that can be taken by the appli- ising step in this direction. cation. We have ontologies that describe the different Ontologies and semantic services will play a key role kinds of context information – location, time, tempera- as we develop more sophisticated tools to construct and ture, activities of people; and also different applications manage multiple Spaces. It will be important to simplify and what commands can be sent to them. the construction and maintenance of ontologies, perhaps These ontologies greatly simplify the task of writing with a repository of standard ontologies. It will also be rules. We have developed a tool that uses these ontolo- important to integrate ontologies with the software gen- gies to allow a developer to write rules easily. The tool eration and management, perhaps using ontologies to allows him to construct conditions out of the various pos- semi-automatically generate interfaces. In short, it will be sible types of contexts available. It then allows him to necessary to incorporate successful developments of choose the action to be performed at these contexts from Knowledge Engineering Environments into the software the list of possible commands that can be sent to this ap- engineering and configuration management tools of the plication as described in the ontology. Developers can, pervasive computing environment. thus, very quickly, impart context-sensitive behavior to A standard upper ontology for services, such as applications by associating context expressions (involv- DAML-S [Ankolekar et al., 2002] is a good first step. We ing context predicates) with actions. An example of such foresee the need for standard ontologies for many aspects a rule for a context-sensitive application is: of the Pervasive Computing Environment, including de- IF Location(Manuel, Entering, Room 2401) AND vices, software services, events, people, places, and Time(morning) THEN play a rock song. things. Merging (composing) ontologies from multiple 3. Lessons Learned autonomous sources is critical for the Pervasive Comput- ing Environment. In particular, it is necessary to incorpo- We have integrated ontologies and Semantic Web tech- rate descriptions of new classes of entities (devices, ser- nology into our Pervasive Computing infrastructure. This vices, components, and so on) and new types of context work suggests a number of requirements for future re- information (e.g., new sensors) as they are introduced. It search and development of ontologies. should be possible to develop frameworks and editors to Our investigations have shown that the Semantic Web assure that the creators of new entities can create descrip- technology can be used with CORBA-based infrastruc- tions that can be easily merged into system ontologies. ture to solve some important problems for a pervasive Successful research results in merging ontologies must be computing environment. Our Ontology Server provides a implemented in standard services and libraries, in order standard interface to a Knowledge Base and logic engine. to be integrated into the infrastructure. Ontologies for descriptions of entities and relationships A Pervasive Computing Environment poses significant are developed within a Knowledge Engineering Envi- challenges for the architecture and implementation of ronment and stored as DAML+OIL XML files. Compo- reasoners and query engines. DAML+OIL (and in the nents of the system use the CORBA-based infrastructure future, OWL [W3C, 2003b]) has proven to be quite use- to update and query the Ontology Server. In the future, ful, especially in combination with a programming inter- we will extend this work to augment the configuration face. However, it seems clear that the DAML and the and management of multiple Spaces, and to augment ad- Description Logic (DL) underlying DAML are necessary ditional services, such as Quality of Service infrastruc- but not sufficient for ubiquitous computing applications. ture [Wichadakul et al., 2002]. Specifically, Description Logics are not suited for some Our system has integrated semantic services to an critical aspects of pervasive computing: DL does not deal unprecedented degree. This was enabled partly by the well with quantitative concepts; including order, quan- availability of the CORBA FaCT server [Bechhofer et al., tity, time, or rates. Unfortunately, this kind of reasoning 1999] and the Java classes from OILed [Bechhofer et al., is essential to certain aspects of ubiquitous computing, 2001; OilEd, 2002]. These packages are a model for what including, for instance, Quality of Service management is needed in future software standards: [Wichadakul et al., 2002], resource scheduling, and loca- tion tracking. Ontologies for pervasive computing envi- ronments will require logical models that include spatial and temporal logic, geometry, and other quantitative rea- Workshop on Description Logics (DL'99), Las Vegas, soning. It is unclear whether DAML+OIL should be ex- 1999. tended to include additional logical concepts, or whether other kinds of markup languages should be developed for [Berners-Lee et al., 2001] Berners-Lee, Tim, Hendler, expressing concepts involving these quantitative aspects. James, and Lassila, Ora. The Semantic Web. Scientific The Pervasive Computing Environment is a long- American 284(5):35-43, 2001. running, open, real-time system. Maintaining an ontology in real-time as the system evolves presents important [Chaudhri et al., 1998] Chaudhri, Vinay K., Farquhar, challenges for the design and implementation of ontolo- Adam, Fikes, Richard, Karp, Peter D., and Rice, James P. gies and Knowledge Bases. In particular, the system Open Knowledge Base Connectivity 2.0.3--Proposed needs to address the issues of: Stanford Research INstitute, April 9, 1998. • Large scale (many thousands of concepts and rela- tions), many hundreds of services using the ontology [daml.org, 2003] daml.org. The DARPA Agent Markup and KB). Language Homepage, 2003. http://www.daml.org • Incremental updates (add, delete, or modify a few con- [Fikes et al., 2003] Fikes, Richard, Frank, Gleb, cepts in a large, active KB). and Jenkins, Jessica. JTP: A System Architecture and • Persistence and fault-tolerance Component Library for Hybrid Reasoning. Knowledge Systems Lab KSL-03-01 Stanford University, 2003. • Federation of multiple local Knowledge Bases http://ksl.stanford.edu/KSL_Abstracts/KSL-03-01.html Another area that requires investigation is security, pri- vacy, and access control. The Semantic Web as a whole [Goble et al., 2002] Goble, Carole, and De Roure, David. is largely conceived as a completely open system, in The Grid: An Application of the Semantic Web. ACM which everything is published for everyone to see. It is SIGMOD Report 31(4):65-70, 2002. far from clear how access control could or should be ap- plied, e.g., to the information in an ontology or a KB. [Horrocks et al., 1999] Horrocks, Ian, Sattler, Ulrike, Reasoning engines typically can’t enforce security poli- and Tobias, Stephan. Practical Reasoning for Expressive cies, and the DAML language, for instance, has no facil- Description Logics. In International Conference on Logic ity to limit visibility of concepts or attributes. This topic for Programming and Automated Reasoning (LPAR'99), must be addressed in future research. Tbilisi, 1999. Acknowledgements [IONA Technologies Inc., 2001] IONA Technologies This research is supported in part by the National Science Inc. ORBacus Trader, Version 2.0.0, 2001. Foundation grant NSF 98-70736, NSF 9970139, and NSF http://www.iona.com/products/orbacus_trader.html infrastructure grant NSF EIA 99-72884. Important as- pects of this study used software from Iona [IONA Tech- [Lyytinen et al., 2002] Lyytinen, Kalle, and Yoo, Young- nologies Inc., 2001] and University of Manchester jin. Issues and Challenges in Ubiquitous Computing. [Bechhofer et al., 1999; OilEd, 2002] Communications of the ACM 45(12):62-65, 2002. References [McGrath et al., 2003] McGrath, Robert, Ranganathan, Anand, Campbell, Roy, and Mickunas, Dennis. Use of [Ankolekar et al., 2002] Ankolekar, Anupriya, Burnstein, Ontologies in Pervasive Computing Environments Mark, Hobbs, Jerry R., Lassila, Ora, Martin, David, UIUCDCS-R-2003-2332 UILU-ENG-2003-1719 De- McDermott, Drew, McIlraith, Sheila A., Narayanan, partment of Computer Science, April, 2003. Srini, Paolucci, Massimo, Payne, Terry, and Sycara, Katia. DAML-S: Web Service Description for the Se- [McGrath, 2000] McGrath, Robert E. Discovery and Its mantic Web. In First International Semantic Web Con- Discontents: Discovery Protocols for Ubiquitous Com- ference (ISWC), Sardinia, 2002. puting UIUCDCS-R-99-2132 Department of Computer Science University of Illinois Urbana-Champaign, March [Bechhofer et al., 2001] Bechhofer, Sean, Horrocks, Ian, 25, 2000. Gable, Carole, and Stevens, Robert. OilEd: a Reason-able Ontology Editor for the Semantic Web. In KI2001: Ad- [OilEd, 2002] OilEd. OilEd, 2002. http://oiled.man.ac.uk/ vances in Artificial Intelligence, Vienna, 2001. [Peer, 2002] Peer, Joachim. Bringing Together Semantic [Bechhofer et al., 1999] Bechhofer, Sean, Horrocks, Ian, Web and Web Services. In First International Semantic Patel-Schneider, Peter F., and Tessaris, Sergio. A pro- Web Conference (ISWC), Sardinia, 2002. posal for a description logic interface. In International [Ranganathan et al., 2003] Ranganathan, Anand, and Campbell, Roy.H. A Middleware for Context-Aware Agents in Ubiquitous Computing Environments., In ACM/IFIP/USENIX International Middleware Confer- ence, Rio de Janeiro, Brazil, June 16-20, 2003. [Roman et al., 2002] Roman, Manuel, Hess, Christopher K., Cerqueira, Renato, Ranganathan, Anand, Campbell, Roy H., and Nahrstedt, Klara. GAIA: A Middleware In- frastructure to Enable Active Spaces. IEEE Pervasive Computing 1(4):74-83, 2002. [Trastour et al., 2001] Trastour, David, Bartolini, Clau- dio, and Gonzalez-Castillo, Javier. A Semantic Web Ap- proach to Service Description for Matchmaking of Ser- vices HPL-2001-183 HP Laboratories Bristol, July 30, 2001. http://www.hpl.hp.com/techreports [W3C, 2003a] W3C. The Semantic Web, 2003. http://www.w3.org/2001/sw [W3C, 2003b] W3C. Web Ontology Language (OWL) Reference Version 1.0. W3C Working Draft, 31 March, 2003. http://www.w3.org/TR/2002/WD-owl-ref- 20021112/ [Wichadakul et al., 2002] Wichadakul, Duangdao, Gu, Xiaohui, and Nahrstedt, Klara. A Programming Frame- work for Quality-Aware Ubiquitous Multimedia Applica- tions. In ACM Multimedia, Juan Les Pins, 2002.