A vocabulary with composite terms
A possible approach is to define a property in your vocabulary, say "isComposedOf" that can be used to associate a particular term t_0 with multiple terms t_1, ..., t_n. Using the ORR vocabulary creator, it would look something like this:
| term | hasDefinition | isComposedOf |
| direction_of_sea_water_velocity | ... | |
| sea_water_speed | ... | |
| upward_sea_water_velocity | ... | |
| currents | ... | direction_of_sea_water_velocity, sea_water_speed, upward_sea_water_velocity |
Since the vocabulary creator capabilities are limited to datatype properties with no mechanism to link together multiple terms in some kind of combined meaning, the semantics of the isComposedOf property above relies entirely on the human user.
In the spirit of the Semantic Web, however, the goal would be to capture such a concept in the RDF representation itself such that it can be exploited by ontology-enabled tools and reasoners. In this case, the vocabulary can be defined using an external ontology editor and then be registered at the ORR.
This ontology file (created with Protégé 3.4) shows a possible approach. It defines two classes, Term and CompositeTerm (subclass of Term). A datatype property hasDefinition (with domain Term and range string) allows to capture a human-readable definition for terms. The object property isComposedOf (with domain CompositeTerm and range Term) allows to indicate the terms associated with a composite term. The ontology also includes the four terms (instances) in our example above. Graphically, the ontology looks like this:

In particular, the triples that define the composite term "currents" are:
- compterm:currents compterm:isComposedOf compterm:direction_of_sea_water_velocity
- compterm:currents compterm:isComposedOf compterm:sea_water_speed
- compterm:currents compterm:isComposedOf compterm:upward_sea_water_velocity
(where compterm refers to the namespace http://mmisw.org/ont/testing/compterm/ in the ontology).
Remarks
The above exercise shows the basics of a possible approach to capture a concept like "A is a composition of C, D and E" in vocabularies (and ontologies in general). However, although we have made more explicit the concept via the property compterm:isComposedOf, this does not imply that the goal of allowing external ontology tools and reasoners to exploit this concept has been thoroughly accomplished. Our compterm:isComposedOf will need to be related (via appropriate semantic web mechanisms) with concepts that those tools can understand. Alternatively, we could directly use an existing property that typical tools can handle. For example, TopBraid Composer seems to provide support for a form of the composite concept. In general, capturing the desired meaning may require adequate elaboration and depends on the application at hand. Some relevant links:
- http://www.obofoundry.org/ro/ - OBO Relation Ontology; defines relations like part_of, proper_part_of, integral_part_of, etc.
- http://www.w3.org/2001/sw/BestPractices/OEP/SimplePartWhole/ - This is about part-whole relations in OWL
- http://www.conradbock.org/compkind.html - Six Different Kinds of Composition.
| Attachment | Size |
|---|---|
| compterm.png | 39.87 KB |
| compterm.owl | 2.7 KB |
possible source of input
I wonder if SWEET considered this and how they resolved it? Worth a look.
do we need to be more concrete ?
The solution seems very general. Not sure how practical it is. We want to make sure that if an application is going to query a vector or its components, that it will have all the information to determine that: