About
ReWiRe is a framework for creating and deploying observable applications in a pervasive environment. It features runtime models that describe the environment and its behavior, a flexible and platform-independent architecture, a meta-UI to explore and interact with the environment and a set of tools to configure and observe the applications at runtime.

Models
Environment model. The environment is described by ontologies that are merged into a model at runtime. An upper environment ontology serves as a starting point for the environment and provides a structure upon which ontologies for specific domains can be constructed. Instances of these ontologies describe the state of the environment at a given time.

Everything in the environment (people, hardware, software, ...) is modeled as a resource. Generic resources such as users, devices, services and tasks (which are represented by user interfaces) are described in the upper ontology while domain-specific resources such as a light, media service, etc are described by domain ontologies. Resources publish context events through sensors to which other resources can subscribe. For example, a resource can subscribe to {Light1, LightStateSensor} to get notified of state changes in a light resource. Wildcards can be used to subscribe to a set of resource/sensor pairs at once, e.g. {*, LightStateSensor} or {Light1, *}.
Behavior model. The behavior model is built up from Event-Condition-Action-Action-1 (ECAA-1) rules. A behavior event corresponds to a {resource, sensor} pair; conditions and (inverse) actions refer to functions defined in e.g. a script and are invoked through ReWiRe's integrated rule engine. Inverse action allow end-users to undo actions that were executed automatically by the pervasive computing system.
Architecture
ReWiRe uses the OSGi framework to dynamically deploy components. OSGi components, also referred to as bundles, are software components implemented in Java that can be remotely installed, started, stopped and updated, even when the system is active. These components communicate with each other and with the outside world through a W2P network layer. The environment model is integrated in a semantic layer that is built using the latest open semantic Web technologies such as RDF, OWL, SPARQL, et al.
Furthermore, groundings provide the semantic glue to transform UI descriptions into concrete UIs and to instantiate proxy components on the fly to interact with services (remote application logic). For example, an OSGi grounding relates a service with an OSGi bundle which exports a software interface to remotely interact with the service.
Meta-User Interface
The ReWiRe meta-user interface provides end-users with an overview of the resources available in the environment along with the tasks these resources support. This user interface is "meta" because it serves as a generic interface from which task-specific interfaces can be requested and applications can be configured.
Tools
Different tools extend the ReWiRe application and e.g. help to configure and observe the behavior of deployed pervasive applications. For example, tools allow to inspect the message flow, query the current state of the environment and create and observe behavior rules at runtime.
License
Everything on this site is released under the terms of the LGPL, unless stated otherwise.
