Networked Media Open Specifications

Extension – Ancestry

←Explanation - Timing · Index↑ · Extension - Grouping→

Ancestry is about providing the information needed to answer the question: “For a piece of content, which content was used to produce it?”

Content (and its expressions) are modelled by Sources and Flows and so ancestry is described in terms of relationships between these entities. Use cases might require different levels of fidelity. For example, the following details might be required in addition to a simple relationship between entities: qualification of an ancestry relationship with a time range over which it applies; indication of whether a transform from one entity to another was lossy or lossless; recording of changes in ancestry against a timeline.

To fully describe content (such as where it came from and how it was made) would require additional relationships that go beyond ancestry. These relationships would probably need to involve entities not included in the identity and timing model, such as Person, Programme or Contract.

Flow Ancestry

Flow ancestry explains how one Flow was created from one or more other Flows.

The illustrated example shows how Flow ancestry might be analysed:

Flow Ancestry

This is clearly a simplification. In an ideal world all information about how content was derived from other content would be retained. However, the cost of retaining and processing is likely to exceed the benefits. For example, for Flow ancestry, the full details of the function F and how it was applied to each input Data Object could be retained but for many scenarios this level of detail will not be required.

Source Ancestry

Source ancestry explains how one piece of time-based content was created from one or more other pieces of time-based content. Simplified ancestry relationships can be constructed as for Flows (but using Sources in place of Flows). These ancestry relationships then apply to all Flows that belong to each of the Sources.

Source ancestry might be less specific / detailed than Flow ancestry to allow for variations in the Data Objects and Time Values of the member Flows.

Ancestry Examples

Below are examples of ancestry relationships specified using a simple notation. The notation is intended to identify the key parts of the relationship and not suggest an implementation.

←Explanation - Timing · Index↑ · Extension - Grouping→