Die Fib-Multimediasprache bzw. das Fib-Multimediaformat ist das Herzstück des Fib-Multimediasystems. In ihm können Multimediaobjekte (z.B. Bilder) kodiert werden.

Das Fib-Multimediaformat dient zum Speichern von Multimediainformationen in strukturierter, funktionaler und hierarchischer Form. Die Struktur des Fib-Multimediaformats unterstützt die Objektsicht auf Dinge. Das Fib-Multimediaformat ist sehr mächtig, da Ausdrücke kombiniert und verschachtelt werden können (Baukastensystem).

Das Fib-Multimediaformat baut auf Vielfalt auf und nicht auf Spezialisierung.

Mit Fib ist die Frage nicht mehr, ob Sie etwas machen können, sondern nur noch, wie Sie etwas machen können.
Die einzige Einschränkung bezüglich der Multimediadaten, die im Fib-Multimediaformat darstellbar sind, ist, dass sie als Eigenschaften von Punkten eines endlichen, euklidischen und diskreten (es gibt kleinste Einheiten) Raumes darstellbar sind. Daher können nicht nur Bilder und Töne mit Fib abgespeichert werden, sondern beispielsweise auch Gerüche oder wie weich etwas ist.

Der Speicheraufwand eines Multimediaobjekts in Fib ist vielmehr von dessen Komplexität abhängig als von dessen Größe (im Sinne von Ausdehnung in den Dimensionen, also beispielsweise die Anzahl der Punkte bei Bildern), wie bei üblichen Speicherformaten.

Im Gegensatz zu anderen Multimediasprachen beruht die Fib-Multimediasprache nicht auf einem bestimmten Algotithmus oder Programmsystem. Dadurch wird sie unabhängiger und vielseitiger einsetzbar. Man muß nicht mehr wie bei JPEG oder MPEG auf Kosinus-Transformationen bzw. Wavelets und Entropiecodierung aufbauen, sondern kann die Vorgehensweise an die gegebenen Multimediadaten und gewünschte Verwendung anpassen.

Beispiel Fib-Struktur Bild Als Grundgerüst von Fib-Multimediadaten dient ein Baum. Die Blätter sind Endpunkte, die für die Darstellung von bzw. Zuordnung zu Punkten oder Teilmultimediaobjekten dienen. In den Ästen und der Ausrichtung dieser, welche z. B. am weitesten links stehen, werden Darstellungsparameter oder Eigenschaften der Blätter kodiert, z. B. wie oft es dargestellt wird und mit welcher Farbe.
Jeder Knoten des Baums ist ein Fib-Element. Der Baum wird von der Wurzel zu den Blättern ausgewertet, wobei die Elemente die Auswertung beeinflussen.
Ein vollständiges Fib-Objekt (Baum) repräsentiert ein Multimediaobjekt.
Ein gültiges Fib-Objekt (Baum) ist zyklenfrei, um eine endliche Verarbeitungszeit zu gewährleisten.
Die Elemente der Multimediabeschreibungssprache orientieren sich dabei etwas an den üblichen imperativen Programmiersprachen (z. B. C++, Java).

Die Fib-Sprachelemente

Die Fib-Sprachelemente oder kurz Fib-Elemente sind die Bausteine, aus denen Fib-Objekte aufgebaut sind. Dabei können verschiedene Kombinationen von Fib-Elementen dasselbe Multimediaobjekt repräsentieren.

Im Nachfolgenden werden die wichtigsten Fib-Elemente kurz vorgestellt. Eine ausführliche Beschreibung der Sprachelemente ist in der Dokumentation zu finden.

Auf der Seite Fib-Beispiel wird die Verwendung der Fib-Elemente an einem Beispiel demonstriert.

Vektoren

Vektoren dienen zum Bereitstellen von numerischen Werten. Jedes Vektorelement ist entweder eine Zahl oder eine Variable, welche weiter oben im Fib-Objekt belegt wird. Zu den Vektoren gehören Definitionsbereiche, die im Allgemeinen im root-Element definiert werden.

Variablen

Variablen werden von einigen Fib-Elementen definiert und können dann im gesamten enthaltenen (bzw. darunter liegenden) Fib-Objekt verwendet werden.

Fib-Objekte

Obj

Fib-Objekte sind aus Fib-Elementen gültig zusammengesetzte Objekte.

Punkte

Obj = p( Positionsvektor )

Die Punkte sind die darstellenden Elemente. An ihnen werden die gesetzten Eigenschaften ausgewertet. Der leere Punkt hat keine Auswirkungen p(). Punkte mit leerem Positionsvektor p(()) erzeugen den Hintergrund.

Eigenschaftselement

Obj = pr( Eigenschaftsvektorname, Obj1 )

Mit dem Eigenschaftselement werden Eigenschaften (vom Type name) für Fib-Objekte gesetzt.

Listenelement

Obj = l( Obj1, …, Objn ); mit n ∈ Ν und 2 ≤ n

Mit dem Listenelement können mehrere Fib-Objekte zu einem Objekt zusammengefügt werden.

Anmerkungselement

Obj = c( Key , Value , Obj1)

Das Anmerkungselement (comment) dient zum Benennen oder Beschreiben von Unterobjekten.

Bereichselement

Obj = for( Variable, ( B1, B2,…, Bn), Obj1)

Das Bereichselement legt für eine Variable die Werte aus dem Bereich der ganzen Zahlen (diskrete Bereiche) fest, welche sie einnimmt. Das Bereichselement enthält eine Liste von Unterbereichen Bi, welche die Variable annimmt.

Funktionen

Obj = f( Variable ,UF ,Obj1 )

Funktionen sind Fib-Elemente, welche einer Variable einen Wert zuordnen, der mit Hilfe einer Formel berechnet wird. Eine Funktion enthält dafür eine Unterfunktion UF.

Externe Objekte aufrufen

Obj = obj( Identifierer , inVar1 , … , inVarn , ( outVar1, … ,outVarv1, Obj1), … , ( outVar1, … ,outVarvm, Objm) )

Externe Objekte sind Fib-Objekte, welche nicht im aktuellen Fib-Teilobjekt definiert werden. Diese können aus dem Wurzelelement (root-Element) oder der Fib-Objektdatenbank kommen. Auf diese Weise können Teile von Fib-Objekten im gleichen Fib-Objekt mehrfach verwendet oder von verschiedenen Fib-Objekten wiederverwendet werden.

Externe Unterobjekte

Obj = sub( Number , (var1, … , varv) )

Externe Unterobjekte sind Objekte, die beim Auswerten des aktuellen Fib-Objekts schon bereitgestellt werden (z. B. über externe Objekte).

If-Element

Obj=if( Condition, Obj1, Obj2)

Das If-Element dient dazu Entscheidungen zu treffen. Abhängig vom Wahrheitswert einer Bedingung (Condition) wird vom If-Element nur das erste (Obj1) oder nur das zweite Unterobjekt (Obj2) ausgewertet.

Set-Element

Obj = set( (Variable1, …, Variablen), [DomainNr,] ( (W1.1, …, Wn.1), …,(W1.k, …, Wn.k) ), Obj1)

Mit dem Set-Element können viele Daten einfach und konzentriert gehandhabt werden. Dabei wird eine Anzahl von Variablen (Variablei) hintereinander mit Sätze von Werten (Wn.k) belegt.

Matrixelement

Obj = matrix( (Variable1, …, Variabled, Variabled+1, …, Variabld+i), [DomainNr,] ( (Startvalue1, Endvalue1), …, (Startvalued, Endvalued) ), ( (W1.1, …, Wi.1), …, (W1.k, …, Wi.k) ), Obj1)

Über das Matrixelement können Matritzen erstellt und genutzt werden. Dabei wird eine Anzahl von Variablen (Variablei) hintereinander mit Sätze von Werten (Wn.k) belegt. Wobei die ersten d Variablen als Zählvariablen (jeweils im Bereich von Startvaluei bis Endvaluei) verwendet werden.

Das root-Element

Rootobj = root( [Multimediainformation], [Domains], [DomainsValues], [((inVar1, S1), … , (inVarv, Sv) )], [( outVarNum1, … , outVarNumm)], Obj , [((Identifier1, Rootobj1) , … , (Identifiern, Rootobjn))], [( DB_Identifier1, … , DB_Identifierd)], [Optionalpart] )

Das root-Element dient als Wurzelelement eines Fib-Objekts. Es sollte alle (Umgebungs-)Informationen, welche für die Auswertung des Fib-Objekts benötigt werden, bereitstellen. Das root-Element selbst kann in keinem Fib-Element, außer einem anderem root-Element, enthalten sein.