Context File System
The Context File System (CFS) is a context-aware file system for Active Spaces. CFS enhances the traditional functionality of a file system for the Active Space environment by providing support for data organization and data transformation. Active Spaces may be populated by many people and the context of the space may be constantly changing. A space may be used for a conference and later for a meeting. CFS uses this context information to organize information so that it is easier to find relevant material for automatically launched or long-running applications. Personal storage is allowed to transparently follow the user. The storage of a user is made available in the current space though a mobile mount point mechanism. Personal data references can be carried via a handheld device or retrieved from a personal proxy and added to the local namespace to make data available to applications and users.
The file system operates in two modes: file mode and context mode. In file mode, the directory hierarchy can be navigated in the usual manner. When a user is detected in a space, a directory is allocated for them and their personal data is made available under "/users/<username>". Therefore, as users physically enter and leave a space, the namespace changes.
In context mode, data is organized depending on user and application-defined properties and environmental context (attributes). Attributes can be associated, or tagged, to data and they form a virtual directory hierarchy that form a simple query language. Some example contexts are:
In context mode, attributes can be attached to files or directories by simply copying data from file mode to context mode. For example, to attach the attributes of "type == pdf && situation == ubi-seminar", a file is simply copied to the "/type:/pdf/situation:/ubi-seminar" directory. Note that "type" is an application defined property and "situation" is context defined by the environment.
Appending the special keyword "current:" to a directory path shows all the data that is important to the current activity or task. The system uses the properties specified in the path together with the environmental context information to show relevant material. For example, an application running in different contexts can open a file with the same name and receive different information. That is, the contents of directories change as the activity within a space changes. Therefore, applications can run unchanged during various tasks and find the correct data.
In Active Spaces, there are often a choice of devices to run an application - "double-clicking" on the application or application data is not sufficient. We tag application configurations so that we can easily find all configurations - some maybe imported by a user - so that a user can be presented with options for launching the application.
Due to the heterogeneous environment, some devices may not be able to render data in its original format. This service uses adaptors to match content to the particular device characteristics and application requirements. The system models data as containers and the data in them as data objects. Applications gain access to data in a particular format by opening the data source as a specific container type. The system automatically adapts content to the desired format. Therefore, the system can be viewed as a dynamically typed file system. Data sources have a canonical type (i.e., the native format), but can change type based on application preference. For example, an application may open a data source holding lecture notes in text format and paste them to a display. However, a different application can retrieve the data from the same source in audio format and write the objects to an audio device. The lecture notes are transparently converted to audio translations.