# An Ontology for Spatio-Temporal Media Management and an Interactive Application
## 3 The Software-Defined Media Ontology
### **Geometry** and **CoordinateSystem** Classes  
Since spatio-temporal coordinate information is essential among the metadata handled by the SDM Ontology, we defined the **Geometry** class and the **CoordinateSystem** class separately from the **Context** class, as shown in Figure 2. Primary class objects in the SDM Ontology can express position and time information by linking **Geometry** object through the **geometryAt** property. The **geometryOf** property indicates a link from the **Geometry** object to the referenced object. The **CoordinateSystem** class defines the coordinate axes of the position and time information described in the **Geometry** class. Based on this definition, users can interpret the meaning of values expressed in **Geometry** objects. The **measures** property expresses the link in the reverse direction. A derived coordinate system can be defined by linking **CoordinateSystem** objects with the **measuredBy** property.  
When a **CoordinateSystem** object is linked to a **Recorder** object with the **measuredBy** property, the linked Recorder object defines the coordinate system of the **CoordinateSystem** object. For example, consider the case in which the internal clock of the video camera used for recording is not correctly set. As a result, the timestamps of the media files recorded by the video camera will be recorded incorrectly. If this media file is edited together with the media files recorded by other equipment, it will not be correctly processed. It is necessary to correct the time information before editing. The design policy of the SDM Ontology is to describe events in the real space as they are in the real world as much as possible. If the recorder's clock was wrong, we believe that we should describe the state of the recorder as it is to demonstrate that the internal clock of the **Recorder** object with the wrong clock defines the time axis of the **CoordinateSystem** object and links the **Recorder** object from the **CoordinateSystem** object with the **measuredBy** property. It is also possible to link a **CoordinateSystem** object to a **Media** object using the **measuredBy** property. This case also indicates that the time information in the **Media** object is defined in the linked **CoordinateSystem** object. Suppose that the linked **CoordinateSystem** object is defined by the internal clock of the **Recorder** object with the wrong clock, as described above. In this case, the time information in the **Media** object is also recorded using the wrong clock.  
It is necessary to measure the error of the recorder's clock to correct the timestamps in the subsequent process. If the clock's error is known, we can define a **CoordinateSystem** object with the correct clock. Then, the time information of **Geometry** objects, **Media** objects, and other objects can be linked by the **measures** property from the **CoordinateSystem** object defined by the wrong clock for correction. Finally, the time information correction process is completed by replacing the **measuredBy** property of these objects with the **CoordinateSystem** defined by the correct clock. The time correction process can also be described by writing the time correction program in a **Processor** object and linking the objects before and after correction with the **inputFrom** and **outputTo** properties.