Bestanden in het formaat text-fabric (.tf) slaan een kolom met kenmerkwaarden op die overeenkomen met knooppunten en randen in een grafiek, die samen geannoteerde tekst vertegenwoordigen. Het kan gesteld worden dat .tf een Markup-formaat is.

Geannoteerde tekst
In de geesteswetenschappen hebben primaire onderzoeksgegevens vaak de vorm van teksten. Veel van deze teksten zijn historische artefacten en er is veel kennis nodig om ze te interpreteren. Annotaties zijn een geprefereerde manier om deze kennis te vertegenwoordigen. Ze kunnen gedetailleerde linguïstische informatie overbrengen op woordniveau, maar ze kunnen ook personen, plaatsen, materialen en concepten uit de tekst koppelen aan externe beschrijvingen.

Teksten zijn altijd gestructureerd en annotaties hebben een adresseringsmechanisme nodig om zich te richten op de specifieke gedeelten in de tekst waar ze over gaan. De annotaties hebben de neiging om in zichzelf kennisstructuren te vormen en moeten worden gedeeld en gedistribueerd als afzonderlijke entiteiten.

Gegevensmodel
Text-Fabric is een tool die deze uitwisseling van gegevens mogelijk maakt. Om dit te doen, definieert het een model [TF-model] voor geannoteerde tekst. In dit model is tekst een geannoteerde grafiek: een systeem van nodes (knooppunten) en edges (randen) tussen nodes, waarbij nodes en edges via features (eigenschappen) aan andere informatie zijn gekoppeld. De nodes staan voor tekstuele concepten, zoals woorden, zinnen, hoofdstukken; de edges staan voor relaties tussen deze tekstgedeelten. Features zijn toewijzingen van nodes of edges aan waarden. Nodes zelf zijn slechts gehele getallen en edges zijn slechts paren getallen.

Dit model ligt heel dicht bij het Linguistic Annotation Framework [LAF ISO-norm]. De belangrijkste verschillen zijn dat LAF het liefst in XML wordt weergegeven en Text-Fabric XML-vrij is; en dat een LAF-gegevensset zich kan bevinden in een enkele of in afzonderlijke bestanden naar keuze van de corpusontwerper, terwijl een Text-Fabric-gegevensset altijd een enkele functie opslaat in een enkel bestand.

Node features
Een node feature is een toewijzing van getallen aan waarden: een kolom met waarden, waarbij de positie in de kolom overeenkomt met het nummer van de node.

Edge features
Een edge feature kan worden gezien als een toewijzing van nodes aan andere nodes, waar een waarde kan worden gegeven voor elke verbinding. Edge features zijn ook kolommen met waarden, waarbij de positie in de kolom overeenkomt met het nummer van de node waar de edges beginnen.

Bestandsformaat
Text-Fabric definieert een efficiënte manier om features in bestanden op te slaan [TF-bestandsformaat]. Elke feature neemt een enkel bestand in beslag. Een Text-Fabric-gegevensset is slechts een platte verzameling feature bestanden.

Feature bestanden zijn platte tekstbestanden in Unicode met behulp van de UTF8-codering. In het begin is er een aantal regels beginnend met @. Dit zijn metadataregels en kunnen willekeurige sleutel / waarde-paren bevatten. Dan is er een lege regel. Daarna zijn alle lijnen gegevenslijnen. In een feature bestand is de inhoud van een regel gegevens de waarde van de feature voor de node die overeenkomt met het regelnummer. Hier is een gedeeltelijk feature-bestand van het voorbeeld corpusbanken [TF-voorbeeld].

@node
@compiler=Dirk Roorda
@description=the letters of a word
@name=Culture quotes from Iain Banks
@purpose=exposition
@source=Good Reads
@status=with for similarities in a separate module
@url=https://www.goodreads.com/work/quotes/14366-consider-phlebas
@valueType=str
@version=0.2
@writtenBy=Text-Fabric
@dateWritten=2019-06-03T07:30:41Z
Everything
about
us
everything
around
us
everything
we
know
and
can
know
of
is
composed
ultimately
of
patterns
of
nothing

Dit is de basis, er zijn enkele optimalisaties [TF-optimalisaties] die te maken hebben met sparse features: features die alleen waarden aan een subset van de nodes toewijzen.

Extensie
Feature-bestanden hebben meestal de extensie .tf.

Hulpmiddelen
Text-Fabric is ook een bibliotheek [TF API] waarmee u tekst en annotaties kunt verwerken. Het begrijpt het tf-bestandsformaat en biedt een API om feature bestanden te laden en op te slaan en te berekenen met de gegevens die erin staan. Text-Fabric compileert .tf-bestanden in binaire .tfx-bestanden die zijn geoptimaliseerd om zeer snel te laden. Deze .tfx-bestanden zijn slechts een gemak, maar zijn niet geschikt voor archivering en moeten niet worden beschouwd als een geprefereerd of zelfs acceptabel formaat. Ze zijn afhankelijk van de computer waarop ze zijn gegenereerd.

Text-Fabric is absoluut niet nodig om .tf-bestanden te begrijpen. Het formaat is zo transparant dat verschillende gebruikers de tool Text-Fabric omzeilen en hun eigen programma’s (in andere talen dan Python) hebben geschreven om .tf-bestanden in te nemen.

Corpora
Een aantal corpora [TF Corpora] zijn al geconverteerd naar Text-Fabric, zoals de Hebreeuwse Bijbel, verschillende Cuneiform-tabletcollecties, de Koran en meer. Voor al deze corpora zijn er speciale tutorials [TF-tutorials] die de praktijk laten zien die Text-Fabric ondersteunt.

Referenties
TF-model: Model – Text-Fabric (gearchiveerde versie)

TF-bestandsformaat: Format – Text-Fabric (gearchiveerde versie)

TF-optimalisaties: Optimalisaties – Text-Fabric (gearchiveerde versie)

Voorbeeld van TF: Banken: convert.ipynb (gearchiveerde versie)

TF API: TF – Text-Fabric (gearchiveerde versie)

TF Corpora: Corpora – Text-Fabric (gearchiveerde versie)

Tutorials TF: tutorials (gearchiveerde versie)

LAF ISO-norm: ISO 24612: 2012 – kader voor taalannotaties (LAF)

Text-Fabric is een preferred format binnen bestandstype Programmeertaal.