Bristol Wearable Computing

[ Home | Plans | Meetings | Members | Search | Papers | Links | CyberWear | LocoSoft]

The LocoMedia Note & Domain Project

.[ To be extended to include a domain server and note management interface -jbr]



A note is the essential information element in our Cyberjacket. A note has two parts: content and context. The content can be pretty much any type of media: audio, text, images, whatever. The context describes anything you like about the note. It might be simple things like the time when it was created, the name of the author or the place where it was recorded. The context might refer to the topic of the note like a painting in a gallery that you are visiting. The context could even be used to describe the conditions under which the associated note is to be rendered, perhaps only if you are near a certain place and the weather is good (in which case the note will tell you that you will have a magnificent view from the top of Cabot's tower), or only Saturday's at 5pm (when the cookie shop is closing for the weekend and selling their cookies at half price).


Domains are used to represent real world objects and concepts. They may represent the author of a note, the topic of a note, the name of the place where the note was recorded or anything else. In some cases it is convenient to describe things using numbers, in this case the domain is used to define what the number means. For example a number may be used to represent the visibility in yards.

The LocoMedia system allows notes to be tagged with contextual information expressed in terms of references to domains and optional numeric values. A reference to a domain appears like a file pathname (eg /location/name/uk/bristol). Here are some examples of contextual information:

Domains provide a common way of representing context information. They are maintained in public directories. Any user can define a new domain and place it in the a domain hierarchy. The CyberJacket manages domain references as abstract data types - it has no understanding of the meaning of any individual domain reference.

A note can be tagged with as many different pieces of contextual information as you like. The information may be picked up automatically by sensors on the cyberjacket (eg temperature:20) or manually by a user (eg /topic/hobbies/tennis). In order that this contextual information can be utilised


The Note Server and Note Buffer both serve as databases for storing notes. The Note Server is a non mobile database, stored somewhere on the Internet. The Note Buffer is a database providing temporary storage for notes while they need to be on the wearable. Eventually notes are either discarded or moved to more permanents storage on a Note Server. Inspite of these different roles the source code for the Note Sever and Note Buffer may well be very similar (see below)!

The note server has operations to store notes, retrieve notes, and select notes given some (incomplete) selection criteria.


Store a note :: Database -> Note -> (Database, NoteID)
Retrieve a note :: Database -> NoteID -> Note
Select a note :: Database -> [ Domain ] -> [ NoteID ]
Where Database and NoteID are locally defined types, Note and Domain are global types, specified in more detail below.

A Note is a type consists of two parts; an information part (containing video, audio or text), and a domain part (specifying the context of the note). The note contents are MIME encoded. Initially, we will just have one mime encoded part in a note, but we might switch to ``multipart/alternative'' encoding. Domains are added upfront using a Domain: field. So for example a note might read:

Domain: weather/visibility:3000
Domain: place/absolute/longitude:52,02,37,12
Domain: place/absolute/latitude:02,01,12,445
Domain: place/name/Cabots Tower
Content-type: text/ascii

I like cabots tower; you have a magnificent view over the city of Bristol. You can go up to cabots tower.

The note server simply accepts notes on a UNIX-port, and queries on another port.

The note buffer accepts additional requests to push a note to a specific server, or to pull notes from a specific server. Note that the note server and note buffer need not be different; but only one of them needs persistent storage.

Push a note :: Database -> NoteID -> ServerID -> Database
Pull a note :: Database -> [ Domain ] -> ServerID -> Database
Store a note :: Database -> Note -> (Database, NoteID)
Retrieve a note :: Database -> NoteID -> Note
Select a note :: Database -> [ Domain ] -> [ NoteID ]

unicrest.gif (4191 bytes)

The material displayed is provided 'as is' and is subject to use restrictions.
For problems or questions regarding this web contact Cliff Randell.
Last updated: January 14, 2000.
logoep.gif (1404 bytes)
ęCopyright Hewlett-Packard 1997-2000.