Basic constructs in MDS
References
XML manages tree structures, that is it handles 1 to many parent-child relations between elements. Since this is very limiting, Mpeg7 introduces a way to reference elements that are placed elsewhere.
This transforms the 1 to many in a many to many parent-child relation.
Here is an example of a use of reference:
And the corresponding XML:
<
mpeg7:Mpeg7
xmlns:mpeg7="
urn:mpeg:mpeg7:schema:2001"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<
mpeg7:Description
xsi:type="
mpeg7:ModelDescriptionType">
<
mpeg7:Model
xsi:type="
mpeg7:CollectionModelType">
<
mpeg7:Collection
name="
harp"
xsi:type="
mpeg7:ContentCollectionType">
<mpeg7:Content
xsi:type="mpeg7:AudioType" id="sound1">...</mpeg7:Content>
<mpeg7:Content
xsi:type="mpeg7:AudioType" id="sound3">...</mpeg7:Content>
<mpeg7:Content
xsi:type="mpeg7:AudioType" id="sound4">...</mpeg7:Content>
</
mpeg7:Collection>
</
mpeg7:Model>
<
mpeg7:Model
xsi:type="
mpeg7:CollectionModelType">
<
mpeg7:Collection
name="
strange"
xsi:type="
mpeg7:ContentCollectionType">
<mpeg7:Content
xsi:type="mpeg7:AudioType" id="hooghr">...</mpeg7:Content>
<mpeg7:Content
xsi:type="mpeg7:AudioType" id="graab">...</mpeg7:Content>
<mpeg7:ContentRef
idref="sound1"/>
</
mpeg7:Collection>
</
mpeg7:Model>
</
mpeg7:Description>
</
mpeg7:Mpeg7>
Relation graphs
In order to gain a typed many to many relationship mechanism, Mpeg7 also introduces a type called GraphType that contains arbitrary relations.
This is how it looks like in XML:
<
mpeg7:Mpeg7
xmlns:mpeg7="
urn:mpeg:mpeg7:schema:2001"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<
mpeg7:DescriptionUnit
xsi:type="
mpeg7:GraphType">
<mpeg7:Relation
source="wittg" type="rel:talking-person" target="wittgenstein"/>
<mpeg7:Relation
source="wittgenstein" type="rel:no-agree" target="kpopper" directed="false"/>
<mpeg7:Relation
source="bertrndruss" type="rel:loves" target="lovesong"/>
<mpeg7:Relation
source="wittg" type="rel:used-to-produce" target="lovesong"/>
<mpeg7:Relation
source="lovesong" type="rel:about" target="wittgenstein"/>
</
mpeg7:DescriptionUnit>
</
mpeg7:Mpeg7>
Classification schemes
Classification schemes are the way Mpeg7 manages taxonomies.
<
mpeg7:Mpeg7
xmlns:mpeg7="
urn:mpeg:mpeg7:schema:2001"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<
mpeg7:Description
xsi:type="
ClassificationSchemeDescriptionType">
<
mpeg7:ClassificationScheme
uri="
musinst">
<
mpeg7:Term
termid="
str">
<
mpeg7:Name>
String Instruments</
mpeg7:Name>
<
mpeg7:Term
termid="
vn">
<mpeg7:Name>Violin</mpeg7:Name>
</
mpeg7:Term>
<
mpeg7:Term
termid="
vl">
<mpeg7:Name>Viola</mpeg7:Name>
</
mpeg7:Term>
</
mpeg7:Term>
<
mpeg7:Term
termid="
piano">
<mpeg7:Name>Piano</mpeg7:Name>
</
mpeg7:Term>
</
mpeg7:ClassificationScheme>
</
mpeg7:Description>
</
mpeg7:Mpeg7>
Mpeg7 provides some standard classification scheme, like the File Format classificatioon scheme.
Here is an example on how it is used:
<
mpeg7:Mpeg7
xmlns:mpeg7="
urn:mpeg:mpeg7:schema:2001"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance">
<
mpeg7:Description
xsi:type="
ContentEntityType">
<
mpeg7:MultimediaContent
xsi:type="
mpeg7:AudioType">
<
mpeg7:Audio>
<
mpeg7:MediaInformation>
<
mpeg7:MediaProfile>
<
mpeg7:MediaFormat>
...
<mpeg7:FileFormat
href="urn:mpeg:mpeg7:cs:FileFormatCS:2001:4"/>
</
mpeg7:MediaFormat>
</
mpeg7:MediaProfile>
</
mpeg7:MediaInformation>
</
mpeg7:Audio>
</
mpeg7:MultimediaContent>
</
mpeg7:Description>
</
mpeg7:Mpeg7>
Audio content entities
Synopsis of an Audio type.
Audio content entities
Using the XMLSchema extension mechanism.