-
Da
momentan Multimedia-Anwendungen immer mehr an Bedeutung gewinnen,
wird der Zugriff auf digitalisierte Datenquellen in Form von Audio,
Video oder Bild immer wichtiger. Die Motion Picture Experts Group
(MPEG) hat beispielsweise einen Standard entwickelt, um die unterschiedlichsten
Typen des digitalisierten Materials einheitlich beschreiben zu können. Dies
wurde mit dem MPEG-7-Standard [1] realisiert, dessen Ziel es ist,
Suche und Zugriff auf solche Daten zu vereinfachen.
-
Eine
MPEG7-Beschreibung wird mit Hilfe der Extensible Markup Language
(XML) erstellt und kann in mehrere Einheiten (Access Units) aufgeteilt
werden, welche ihrerseits wiederum aus mehreren Fragmenten (Fragment
Update Units) bestehen. Diese Einheiten können mit Hilfe eines Encoders
codiert und bei Bedarf an einen oder mehrere Empfänger versandt
werden. In den Empfängern
können
die Einheiten dann mit einem entsprechenden Decoder wieder decodiert
werden.
-
Es
tritt häufig
der Fall auf, dass ein Empfänger
mehrere MPEG7-Beschreibungen erhält,
aus denen nur bestimmte Inhalte für einen Benutzer interessant
sind. Mit Hilfe einer Abfragesprache – wie beispielsweise XPath – kann ein
Benutzer bewerten, ob er in einer Beschreibung die benötigten Informationen
findet, und er kann gegebenenfalls auf diese zugreifen. Damit eine
Beschreibung aber nicht erst decodiert werden muss, um einen Filterprozess
zur Ermittlung der benötigten
Informationen anwenden zu können,
wird häufig
ein Indexsystem verwendet, mit dem Pfade in der übertragenen Dokumentenstruktur indiziert
werden. Ein solches System sollte aber eine hinreichende Funktionalität aufweisen.
Insbesondere genügt
es nicht, nur einfache Pfadausdrücke
zu unterstützen,
sondern es sollten auch komplexere Strukturen realisiert werden.
XPath unterstützt
beispielsweise Wildcards ("//" und "*"), mit deren Hilfe Abfragen formuliert
werden können,
bei denen die genaue Dokumentstruktur nicht bekannt ist.
-
Neben
Wildcards sollte ein Indexsystem auch sog. Multiple-Key-Queries unterstützen. Darunter
versteht man das Vorhandensein von mehreren Bedingungen in einer
Abfrage, wie beispielsweise: „Gib
mir jeden Autor zurück,
der mit Nachnamen Müller
heißt
und im Jahre 1960 geboren wurde".
Eine solche Abfrage setzt sich aus einem sog. Präfixpfad (alles bis zum Autor)
und mehreren Bedingungen (Nachname = Müller und Geburtsdatum = 1960)
zusammen.
-
Die
beschriebenen Probleme treten aber nicht nur im Zusammenhang von
MPEG-7-Beschreibungen auf. Die vorliegende Erfindung lässt sich
insbesondere in sämtlichen
Bereichen anwenden, welche eine Indizierung von strukturierten Dokumenten erfordern.
-
Aus
dem Stand der Technik sind bereits zahlreiche Index-Systeme für XML-Dokumente
bekannt. Viele davon unterstützen
nur einfache Pfadabfragen, einige ermöglichen komplexere Abfragen,
bieten aber trotzdem nur eine eingeschränkte Funktionalität. Im folgenden
werden bekannte Index-Systeme diskutiert, die sowohl Wildcards als
auch Multiple-Key-Queries unterstützen, wobei insbesondere auf
die Abarbeitung von Multiple-Key-Queries eingegangen wird.
-
In
XISS (XML Indexing and Storage System) werden Elemente und Attribute
mit sog. B-Bäumen indiziert.
Zusätzlich
wird für
ein XML-Dokument ein sog. „Numbering-Scheme" aufgebaut. Dabei
werden für
jeden Knoten des Dokumentenbaumes zwei Zahlen gespeichert: eine
Ordnungsnummer und eine Gewichtung. Es kann mit Hilfe dieser Nummern
mittels einer „Nachfolger-Funktion" bestimmt werden,
ob ein bestimmtes Element ein direkter oder ein erweiterter Nachfolger
eines anderen Elementes, d. h. Kind, Enkel, Urenkel usw. ist. Bei
einer Abfrage wird für
jedes im Abfrage-Pfad angegebene Element eine Suche im B-Baum durchgeführt. Für jeden
unterschiedlichen Elementnamen wird eine Teilliste zurückgeliefert. Diese
Teilliste enthält
eine Reihe von Zahlenpaaren bestehend aus Ordnungsnummer und Gewichtung. Mit
Hilfe der „Nachfolger-Funktion" werden aus den Teillisten
der Elementnamen wieder vollständige
Pfade erstellt. Bei einer Multiple-Key-Query werden zuerst die Teillisten
für die
Elemente des Präfixpfades und
eine erste Ergebnisliste aller Nachfolger erstellt. Bei der oben
erläuterten
Suchabfrage nach Autoren mit Nachnahmen Müller und Geburtsjahr 1960 werden
z. B. folgende Listen erstellt: XX/autor1, XX/autor2, XX/autor3, ...,
wobei „XX" für einen
beliebigen Teilpfad im XML-Dokument steht. Dann wird eine Liste
mit allen Nachnamen erstellt, welche den Wert Müller haben (nachname1, nachname2, ....).
Mit Hilfe des Nummernschemas werden dann jene Teilpfade aussortiert,
die keinen Nachfolger in der Liste mit den Nachnamen haben. Schließlich wird
eine Liste generiert, die alle Geburtsdaten mit dem Wert, 1960' enthalten und die
Autorenliste nochmal entsprechend reduziert. In der Ergebnisliste
befinden sich dadurch alle Pfade bis zum Autoren-Element, die als
Nachfolger sowohl ein Nachname-Element mit dem Wert Müller als
auch ein Geburtsdatum-Element
mit dem Wert 1960 haben.
-
In
einem Technical Report von Bremer und Gertz wird ein Index-System
für XML-Daten
angegeben, bei dem zunächst
ein sog. „Dataguide" von dem XML-Dokument
abgeleitet wird. Darunter versteht man eine Schemazusammenfassung,
in der jeder unterschiedliche Pfad genau einmal enthalten ist. Jeder
Knoten in diesem Dataguide erhält
einen eindeutigen Bezeichner (ID), mit dessen Hilfe nicht nur ein Element,
sondern auch der Pfad von der Wurzel zum identifizierten Knoten
dargestellt wird. Zusätzlich
zu den Bezeichnern werden gegebenenfalls auch Po sitionsnummern abgelegt,
falls ein Element öfters
vorkommt. Die Positionsnummern werden dabei mit so wenig Bits wie
möglich
gespeichert. Die Positionsnummern werden nach dem Knotenbezeichner
in Serie abgelegt, d. h. ID, pos1...posn. Diese Kombination wird als PID (path identifier)
bezeichnet. Zusätzlich
zum Data-Guide werden zwei B-Bäume
aufgebaut: der T-Index
und der P-Index. Der T-Index (term index) liefert eine Liste von
PIDs zu einem entsprechenden Knotenbezeichner (ID). Der P-Index
(path index) übersetzt
solche PIDs in die physikalische Adresse des indizierten Elements.
Eine Abfrage beginnt im Data-Guide. Bei einer Multiple-Key-Query wird
mit Hilfe des Data-Guides zunächst
der Knotenbezeichner des Elementes am Ende des Präfixes der Suchabfrage
ermittelt. Bei der oben dargestellten Suchabfrage wird somit der
Knotenbezeichner für „Autor" ermittelt. Mit der
Knotennummer wird dann im T-Index die Liste der dazugehörigen PIDs
generiert. Gemäß der oben
genannten Abfrage werden somit ausgehend vom vorher im Data-Guide
identifizierten Autor-Element die ID des Elementes "Nachname" mit dem Wert Müller gesucht.
Für diese
ID werden alle PIDs aus dem B-Baum gefiltert. Der gleiche Vorgang wird
für den
Nachfolger "Geburtsdatum" mit dem Wert 1960
wiederholt. In einem letzten Schritt wird die Liste der Autoren-PIDs
reduziert. Dazu werden alle PIDs aus der Autoren-Liste gestrichen,
deren Positionsnummern nicht als Präfix einer Positionsnummernfolge
in der Nachnamen-Liste vorhanden sind. Durch das Vergleichen der
Positionsnummern aus der Geburtsdatum-Liste mit denen der Autoren-Liste wird
letztere noch einmal verkleinert und liefert dann die endgültigen PIDs,
mit deren Hilfe die physikalische Adresse im P-Index gewonnen wird.
-
Alle
oben genannten Verfahren zur Erzeugung einer Indexstruktur haben
den Nachteil, dass die Erstellung der Index-Struktur sehr aufwändig ist und der Index ein
beträchtliches
Datenvolumen benötigt.
-
Aufgabe
der Erfindung ist es deshalb, ein Verfahren zur Indizierung eines
strukturierten Dokuments zu schaffen, mit dem auf einfache Weise
eine Indexstruktur für
Suchabfragen in dem Dokument generiert wird.
-
Diese
Aufgabe wird durch die unabhängigen Patentansprüche gelöst. Bevorzugte
Ausführungsformen
der Erfindung sind in den abhängigen
Ansprüchen
definiert.
-
Durch
das erfindungsgemäße Verfahren
wird ein strukturiertes Dokument indiziert, welches eine Vielzahl
von Instanzen enthält,
wobei mindestens einer Instanz im Dokument ein Pfad und eine textuelle Pfadbeschreibung
zugeordnet wird und mindestens ein Pfad eine Positionsnummer oder
eine mehrere Positionsnummern umfassende Positionsnummernfolge als
Unterscheidungsmerkmal für
Instanzen mit unterschiedlichen Pfaden und gleichen textuellen Pfadbeschreibungen
umfasst. Mit dem erfindungsgemäßen Verfahren
wird ein Indizierungsbaum oder eine Indizierungsliste, welche eine
Vielzahl von Einträgen
umfasst, derart erzeugt, dass Instanzen, denen Pfade zugeordnet
sind, die sich ausschließlich
in ihren Positionsnummern oder Positionsnummernfolgen unterscheiden,
dem gleichen Eintrag zugeordnet werden, und die Einträge jeweils
die Positionsnummern oder die Positionsnummerfolgen der den Instanzen
zugeordneten Pfade umfassen. Der Indizierungsbaum oder die Indizierungsliste
wird schließlich mit
einem das strukturierte Dokument enthaltenden Datenstrom verknüpft, insbesondere
in den Datenstrom eingefügt
oder dem Datenstrom zugewiesen und separat übertragen oder gespeichert.
-
Durch
die Kopplung von Einträgen
im Indizierungsbaum bzw. in der Indizierungsliste mit Positionsnummern
bzw. Positionsnummernfolgen können effektiv
schnelle Abfragen nach Inhalten des strukturierten Dokuments durchgeführt werden.
-
In
einer bevorzugten Ausführungsform
werden in dem Indizierungsbaum oder der Indizierungsliste den Instanzen
zugewiesene Instanzwerte oder Referenzen auf diese Instanzwerte
zugeordnet. Vorzugsweise wird die Existenz von Positionsnummern mit
Hilfe einer Schemadefinition ermittelt, wobei es sich hier bevorzugt
um eine XML-Schema-Definition handelt, die zur Codierung von strukturierten XML-Dokumenten
verwendet wird.
-
In
einer bevorzugten Ausgestaltung des erfindungsgemäßen Verfahrens
ist der Indizierungsbaum ein B-Baum, mit dem eine logarithmische
Suche nach Inhalten im Dokument ermöglicht wird.
-
Das
für die
Indizierung herangezogene strukturierte Dokument ist in einer besonders
bevorzugten Ausführungsform
der Erfindung ein XML-Dokument.
-
Die
Erfindung betrifft neben einem Indizierungsverfahren auch ein Verfahren
zur Codierung eines strukturierten Dokuments, wobei das Dokument mit
dem erfindungsgemäßen Indizierungsverfahren indiziert
wird und anschließend
mit einem Codierverfahren, insbesondere mit einem MPEG7-Verfahren codiert
wird, wodurch ein codierter Datenstrom erzeugt wird. Der codierte
Datenstrom enthält
hierbei vorzugsweise Offsets, mit denen die Positionen von Einträgen des
Indizierungsbaums oder der Indizierungsliste im Datenstrom signalisiert
werden. Eine spezielle Ausgestaltung solcher Offsets findet sich
in der deutschen Patentanmeldung 102 53 275.3, wobei mit diesen
Offsets erreicht wird, dass bei einer Suche nach Inhalten nicht
alle codierten Informationen aus dem Datenstrom ausgelesen werden
müssen.
-
Neben
den oben beschriebenen Codierverfahren umfasst die Erfindung ferner
ein Decodierverfahren zur Decodierung eines strukturierten Dokuments,
wobei das Verfahren derart ausgestaltet ist, dass ein gemäß dem erfindungsgemäßen Codierverfahren
codiertes Dokument decodiert wird.
-
Darüber hinaus
betrifft die Erfindung ein Verfahren zur Codierung und Decodierung
eines strukturierten Dokuments, welches die oben beschriebenen erfindungsgemäßen Codier-
und Decodierverfahren umfasst.
-
Die
Erfindung betrifft ferner eine Codiervorrichtung bzw. eine Decodiervorrichtung,
mit dem das erfindungsgemäße Codierverfahren
bzw. Decodierverfahren durchführbar
sind. Ferner betrifft die Erfindung eine Kombination aus dieser
Codiervorrichtung und dieser Decodiervorrichtung.
-
Ausführungsbeispiele
der Erfindung werden nachfolgend anhand der Zeichnung dargestellt
und erläutert.
-
Es
zeigt:
-
1 ein Beispiel des schematischen
Aufbaus eines strukturierten XML-Dokuments, das mit dem erfindungsgemäßen Verfahren
indiziert werden kann.
-
In
der nachfolgend beschriebenen Ausführungsform der Erfindung wird
die Indizierung und Codierung eines XML-Dokuments beschrieben. Ein XML-Dokument
wird durch einen Dokumentenbaum beschrieben, wie er in 1 dargestellt ist. Ein solcher
Baum enthält
eine Vielzahl von Knoten, wobei in den Blattknoten, die im folgenden
als Instanzen bezeichnet werden, die Inhalte des Dokuments abgelegt
sind. Die restlichen Knoten sind die textuellen Beschreibung des
Pfades zu den einzelnen Instanzen, wobei unterschiedliche Pfade
die gleiche texuelle Beschreibung aufweisen können. Der Dokumentenbaum der 1 betrifft die Informationen
in einer Bibliothek. Darin sind zwei Artikel abgelegt, für die u.a.
der Titel, die Autoren und das Erscheinungsjahr festgelegt sind.
Aus der 1 ist ersichtlich,
dass zu jedem Blattknoten ein eindeutiger Pfad führt, der in der hier beschriebenen
Ausführungsform
mit dem MPEG-7-Codierverfahren codiert wird.
-
Zur
Erstellung binärer
codierter Pfade werden sog. XML-Schema-Definitionen
verwendet, wobei solche Schema-Definitionen
dem Fachmann hinlänglich
bekannt sind und vom Encoder und vom Decoder zum Codieren bzw. Decodieren
des XML-Dokuments
verwendet werden. Die dem Baum der 1 zugrunde
liegende Schema-Definition lautet wie folgt: In der Bibliothek können mehrere
Artikel vorkommen. Jeder Artikel hat genau einen Titel und mindestens
einen Autor. Eventuell wird die Konferenz, wo der Artikel eingereicht
wurde, eingetragen. Ferner wird noch das Erscheinungsjahr mit angegeben.
Ein Autor hat genau einen Nachnamen und er kann maximal drei Vornamen
haben. Ein Vorname muss aber nicht notwendiger Weise angegeben werden.
-
Auf
eine genaue Ausführung
der Erzeugung der codierten Pfade wird hier verzichtet, da diese
Codierung nicht wesentlich für
das Verständnis
der Erfindung ist.
-
Ein
mit dem erfindungsgemäßen Verfahren codierter
binärer
Pfad enthält
für jeden
Knoten im Pfad ein binäres
Codewort, welches von den Schemainformationen abgeleitet wird. Für Knoten,
die häufiger
auftreten können,
wird am Ende eine Positionsnummer bzw. eine Positionsnummernfolge
mit codiert, die als Unterscheidungsmerkmal für Instanzen mit unterschiedlichen
Pfaden und gleichen textuellen Pfadbeschreibungen dienen. Ähnlich wie
bei der Lösung
von Bremer und Gertz werden diese Nummern zum Zusammenführen von
Teillisten verwendet.
-
Damit
die weiteren Ausführungen
verständlich
sind, wird zunächst
das Konzept der binären
Pfade erklärt.
-
Zur
Erstellung eines binären
Pfades werden die Schema-Informationen
verwendet und somit für jedes
Element ein Codewort bestimmt, welches durch eine möglichst
kleine Binärzahl dargestellt wird.
Auf genauere Ausführungen
bezüglich
dieser Bestimmung wird hier verzichtet, da dies nicht Bestandteil
der Erfindung ist. Die Codewörter
erhalten in der hier beschriebenen Ausführungsform Bezeichner wie Cbibliothek oder Cartikel usw..
Nachdem alle Codewörter
eines Pfades bestimmt wurden, werden hinten die Positionen der Knoten
der Pfades im Dokumentenbaum an den binären Pfad angefügt. Positionen
werden nur für
jene Knoten codiert, welche öfters
vorkommen können.
Die Binärcodierung
von Pfaden soll mit folgendem Beispiel veranschaulicht werden.
-
Aus
dem Dokumentenbaum der 1 wird eine
Teilliste der vollständigen
Pfade angeführt,
welche sich aus dem Dokument generieren lassen:
bibliothek
[1]/artikel [1]/titel [1]
bibliothek [1]/artikel [1]/autor
[1]/vorname [1]
bibliothek [1]/artikel [1]/autor [1]/nachname
[1]
bibliothek [1]/artikel [1]/autor [2]/vorname [1]...
bibliothek
[1]/artikel [2]/year [1]
-
Die
Zahlen in den eckigen Klammern stellen die Positionen der Knoten
dar, d. h. sie bezeichnen Geschwisterknoten mit demselben Namen
in der gleichen Hierarchieebene des Dokumentenbaums und dienen somit
als Unterscheidungsmerkmal von Instanzen mit gleicher textueller
Pfadbeschreibung.
-
Bei
der Übersetzung
der textuellen Pfade ins Binäre,
werden zunächst
alle nötigen
Codewörter
bestimmt und anschließend
die Positionen in Form von Positionsnummern codiert. Der Pfad bibliothek[1]/artikel[1]/titel[1]
würde binär in etwa
so aussehen: Cbibliothek/Cartikel/Ctitel,1. Dabei wird nur für den Knotennamen „artikel" eine Positionsnummer
verwendet, da die anderen beiden Knotennamen in diesem Kontext nur
einmal auftreten können.
-
Es
wird schließlich
ein Indizierungsbaum erzeugt, wobei dessen Einträge, d.h. die Schlüsselwerte,
nach denen im Baum gesucht werden kann, nicht hinsichtlich der Positionsnummern
bzw. beim Auftreten von mehreren Positionsnummern im Pfad hinsichtlich
der Positionsnummernfolgen unterscheidbar sind. Dadurch gibt es
für Pfade,
die sich nur aufgrund ihrer Positionsnummer bzw. Positionsnummernfolge unterscheiden,
nur einen Eintrag im Indizierungsbaum. Wird nach diesem Eintrag
gesucht, erhält
man gegebenenfalls eine Liste von Instanzen bestehend aus Positionsnummern
und Wert zurück.
Zum Beispiel würde
die Suche nach dem Schlüsselwert „Cbibliothek/Cartikel/Cautor/Cvorname" folgende Ergebnisse
liefern:
1,1,1 = Brain W. (1. Artikel, 1. Autor, 1. Vorname)
1,2,1
= Christopher (1. Artikel, 2. Autor, 1. Vorname)
-
Die
Erfindung wird an einem einfachen Beispiel erläutert. Gesucht werden alle
Artikel, die im Jahre 1996 erschienen sind und die zumindest von dem
Autor mit dem Nachnamen Kaufmann mitverfasst wurden. Da nur vollständige Pfade
indiziert werden, wird zunächst
für jede
Bedingung eine Abfrage in Form eines vollständigen Pfades generiert. Für das konkrete
Beispiel werden folgende zwei Abfragen erstellt : Cbibliothek/Cartikel/Cjahr = 1996
und Cbibliothek/Cartikel/Cautor/Cnachname =
Kaufmann. Die erste Abfrage sucht nach dem Suchbegriff „Artikel" und die zweite Abfrage
sucht nach dem Suchbegriff „Autor". Die Abfragen werden
getrennt ausgeführt,
wobei von den beiden Abfragen jeweils die Positionsnummern bzw.
Positionsnummernfolgen der jeweiligen Suchbegriffe in Form von zwei
Teillisten (Listejahr und Listenachname) ausgegeben
werden:
- 1. Abfrage:
Listejahr = (1.
Artikel und 2. Artikel → 2
Einträge)
- 2. Abfrage
Listenachname = (3.
Autor des 2 Artikels → 1 Eintrag)
-
Hierbei
sind die grau hinterlegten Positionsnummern jeweils eine einzelne
gefundene Positionsnummer bzw. die erste Positionsnummer einer gefundenen
Positionsnummernfolge. Als Suchergebnis soll ein bestimmter Artikel
aufgefunden werden. Deshalb müssen
die Positionsnummern für
die Artikel in den Einträge
der Teillisten übereinstimmen.
Eine Vergleichsoperation der obigen Teillisten ergibt, dass als übereinstimmende
Positionsnummern für
die Artikel lediglich die Nummer „2" gefunden wird. Das endgültige Ergebnis
besteht also nur aus dem zweiten Artikel.
-
Die
beschriebene Lösung
hat im Vergleich zu den Systemen nach dem Stand der Technik mehrere Vorteile.
Diese Systeme weisen zwar eine hinreichende Funktionalität auf, der
Index benötigt
aber ein beträchtliches
Datenvolumen und kann oft nur durch erheblichen Aufwand erstellt
werden. XISS beispielsweise benötigt
einen B-Baum für
Element- und Attributnamen und einen weiteren B-Baum, mit dem Werte
indiziert werden. Zusätzlich
muss das Numbering-Scheme generiert und übertragen werden. Die von Bremer
und Gertz vorgestellte Lösung
erfordert zunächst
die Generierung eines Data-Guides. Zusätzlich muss der T-Index und
der P-Index erstellt und gegebenenfalls übertragen werden.
-
Bei
der erfindungsgemäßen Lösung wird
nur der B-Baum, der alle nötigen
Informationen enthält, übertragen.
Durch die Verwendung von Byte-Offsets werden auch nur jene Knoten,
die eine Suche beeinflussen, aus dem Strom ausgelesen.
-
Das
PID-Schema benötigt
für die
Angabe der Positionen zwar unter Umständen weniger Bits als die hier
beschriebene Lösung,
weil nur tatsächlich
im Dokument vorhandene Elemente berücksichtigt werden, während bei
der erfindungsgemäßen Lösung die
Länge der
Positionen von der potentiell möglichen
Anzahl an Elementen abhängt.
So genügt
für die
Darstellung der PID für
das Element „artikel" ein Bit für die Angabe
der Positionsnummer, weil nur zwei Elemente vorhanden sind. In der
Erfindung werden dafür
mindestens fünf
Bits verwendet, weil das Element laut Schemadefinition beliebig
oft auftreten kann. Da eine MPEG-7-Beschreibung vor dem Versenden
aber in AccessUnits aufgeteilt wird, würde das im Falle des PID-Schemas bedeuten,
dass die gesamten Informationen zuerst übertragen und decodiert werden
müssen,
um die Positionsnummern korrekt auslesen zu können. Dadurch wäre ein Index überflüssig, weil
dieser einen wahlfreien Zugriff auf gewünschte Informationen bieten
sollte und es ermöglichen
sollte, nur diese zu decodieren, während uninteressante Teile
ignoriert werden. In MPEG-7 kommt es auch häufig vor, dass nicht ein gesamtes Dokument übertragen
wird, sondern nur Teilbäume des
Dokumentenbaumes. In diesem Falle ist es unmöglich, die Positionsnummern
des PID-Schemas vollständig
zu decodieren, weil nicht alle benötigten Informationen übertragen
wurden. Bei der erfindungsgemäßen Lösung muss
dem Decoder das Schema auf jeden Fall zur Verfügung stehen, da es auch für das Decodieren
der Beschreibung benötigt wird.
Mit Hilfe des Schemas können
alle Positionsnummern eindeutig den jeweiligen Elementen zugeordnet
werden.
-
Literaturverzeichnis:
-
- [1] ISO/IEC 15938 "Multimedia
Content Description Interface",
Genf 2001–2003;