From Device Description Working Group Wiki
Jump to: navigation, search

Delivery Context Ontology

The Delivery Context Ontology is a formal description of the characteristics of devices, networks, user preferences and other characteristics that affect the delivery of web pages and applications to devices. This set of characteristics is termed the delivery context. The W3C Device Description Working Group's (DDWG) CoreVocabulary is a subset of the delivery context. DDWG together with the W3C Ubiquitous Web Applications Working Group (UWAWG) and the DCAP sub-working group of the Open Mobile Alliance Browser Technologies working group are contributing to the entire ontology.

The result will be a set of definitions that can be used and shared by all the groups. Though initially each group will be most interested in the entries that it submitted, over time we expect to see more and more sharing of entries.


The ontology is being constructed using the Web Ontology Language, OWL. The Protege tool is being used to create and maintain the ontology. Information is extracted from the ontology using specially written Protege plugins. Initially, the extracted information is in a format suitable for inclusion within W3C specifications. The W3C UWAWG plans to publish the full ontology as a W3C specification.

Contents of the Ontology

The ontology primarily consists of classes and properties. Classes describe individual things within the ontology, while properties describe relationships. Classes typically have names such as Device and Display. Properties typically have names such as hasDisplayAspectRatio and hasDisplayBitsPerPixel. So, for example, the Display class will have a property hasDisplayBitsPerPixel that defines the number of bits per pixel supported by a particular display. Instances of the Display class, which describe a particular display on a particular device, would have a specific value for this property.

Properties can have base data types, such as integer, or can themselves be classes. The hasDisplayBitsPerPixel property is a positive integer. It is said to be a datatype property because positive integer is a base type. The hasDisplay property of a device is of type Display. This is said to be an object property because Display is a class.

Device characteristics naturally form a tree structure. For example, a device has a display which has pixels which have a particular aspect ratio. A device also has a CPU which has a name. The leaf nodes of the tree are datatype properties. The tree structure leads naturally to the ability to refer to particular characteristics using path styles of notation, if required.

Naming Entries

While names such as hasDisplayBitsPerPixel are natural for use in ontologies, they are not necessarily ideal for use in programming interfaces. The ontology provides the ability to associate alternative names for classes and properties. By retaining the basic form of the name from the ontology, names suitable for use in different contexts can be created. For example, it might be advantageous to refer to the ontology property hasDisplayBitsPerPixel as displayBitsPerPixel in an object-oriented language, such as Java. The same property might be known as display-bits-per-pixel in a different context.

Adding Items to the Ontology

The current mechanism is intended for people who have authority to edit Wiki pages on this site. Later, we anticipate introducing mechanisms that will allow others to submit proposals.

Items are submitted for inclusion in the ontology using a standardized OntologyProforma. This allows details of new entries to be captured and discussed before they are added to the ontology.

To create a new submission, make a new page whose name is !OntologyEntry followed by the name of the characteristic you are submitting. Copy the markup from OntologyProformaEmpty into your new page and replace the text in curly brackets {} with the appropriate values according to the notes and the description in OntologyProforma. Remove the curly brackets themselves too, of course.


Suppose we want to add an entry for the number of soft keys supported by the device. We copy the markup from the property part of OntologyProformaEmpty by going into edit and copying the appropriate contents of the input text box. Then we create a new Wiki page called OntologyEntryNumberOfSoftKeys by navigating to it. (The page already exists, by the way, so you can take a look at the results. ) We select Create New Empty Page. Then we paste the copied contents into the edit box and replace the text in curly brackets with the appropriate material. Unfortunately, !MoinMoin chooses to treat anything in camel case as a link (sigh), which is why you'll need to prefix names with ! (!!NumberOfSoftKeys in this case) or just ignore the fact that the name of the entry and the name of the UAProf attribute may appear as links.

Finally, link the new page into the OntologySubmissions page and tell the group so that the debate can begin.

This particular entry is already in the ontology, by the way.