@prefix this: <https://w3id.org/np/RAlNA2BC5xWhd9sK-yGKeRBCLHL8vtS6_CNC1nJ6MlWus> .
@prefix sub: <https://w3id.org/np/RAlNA2BC5xWhd9sK-yGKeRBCLHL8vtS6_CNC1nJ6MlWus/> .
@prefix np: <http://www.nanopub.org/nschema#> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix npx: <http://purl.org/nanopub/x/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix orcid: <https://orcid.org/> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix fip: <https://w3id.org/fair/fip/terms/> .
@prefix prov: <http://www.w3.org/ns/prov#> .
sub:Head {
  this: np:hasAssertion sub:assertion ;
    np:hasProvenance sub:provenance ;
    np:hasPublicationInfo sub:pubinfo ;
    a np:Nanopublication .
}
sub:assertion {
  sub:Text-Fabric a fip:Available-FAIR-Supporting-Resource , fip:FAIR-Enabling-Resource , fip:FAIR-Specification , fip:Knowledge-representation-language ;
    rdfs:comment """Files in the text-fabric file format (.tf) store a column of feature values that correspond to nodes and edges in a graph, which together represent annotated text. So, one could say that .tf is a Markup format.
  Annotated Text
  In the humanities, primary research data often takes the form of texts. Many of these texts are historical artefacts and a lot of knowledge is needed to interpret them. Annotations are a preferred way to represent this knowledge. They may convey detailed linguistic information at the word level, but they can also link persons, places, materials, and concepts found in the text to external descriptions.
  Texts are always structured, and annotations need an addressing mechanism to target the specific portions in the text that they are about. The annotations tend to form bodies of knowledge in themselves, and need to be shared and distributed as separate entities.
  Data model
  Text-Fabric is a tool that facilitates this exchange of data. In order to do so, it defines a model [TF model] for annotated text. In this model, text is an annotated graph: a system of nodes and edges between nodes, where nodes and edges are linked to other information by means of features. The nodes stand for textual concepts, such as words, sentences, chapters, and the edges for relationships between these portions of text. Features are mappings from nodes or edges to values. Nodes themselves are just integer numbers, and edges are just pairs of numbers.
  This model is very close to Linguistic Annotation Framework [LAF ISO standard]. The main differences are that LAF prefers to be represented in XML and Text-Fabric is XML-free, and that a LAF dataset may reside in a single or in separate files at the choice of the corpus designer, while a Text-Fabric dataset always stores a single feature in a single file.
  Node features
  A node feature is a mapping from numbers to values: a column of values, where the position in the column corresponds to the number of the node.
  Edge features
  An edge feature can be seen as a mapping from nodes to other nodes, where a value may be supplied for each connection. Edge features are also columns of values, where the postion in the column corresponds to the number of the node where the edges start.
  File format
  Text-Fabric defines an efficient way to store features in files [TF file format]. Each feature occupies a single file. A Text-Fabric dataset is just a flat collection of feature files.
  Extension
  Feature files typically have extension .tf .
  Tools
  Text-Fabric is also a library [TF API] by which you can process text and annotations. It understands the .tf file format and offers an API to load and save feature files and to compute with the data contained in them. Text-Fabric compiles .tf files into binary .tfx files which are optimised to load very fast. These .tfx files are just a convenience but are not suitable for archiving and should not be considered a preferred or even acceptable format. They are dependent on the computer where they have been generated.
  Text-Fabric is by no means required to make sense of .tf files. The format is so transparent that several users bypass the tool Text-Fabric and have written their own programs (in languages other than Python) to ingest .tf files.
  Corpora
  A number of corpora [TF Corpora] have already been converted to Text-Fabric, such as the Hebrew Bible, various Cuneiform tablet collections, the Quran, and more. For all these corpora there are dedicated tutorials [TF tutorials] that show the practice that Text-Fabric supports.
  References
  TF model: Model – Text-Fabric (archived version)
  TF file format: Format – Text-Fabric (archived version)
  TF optimizations: Optimizations – Text-Fabric (archived version)
  TF example: Banks: convert.ipynb (archived version)
  TF API: TF – Text-Fabric (archived version)
  TF Corpora: Corpora – Text-Fabric (archived version)
  TF Tutorials: tutorials (archived version)
  LAF ISO Standard: ISO 24612:2012 – Linguistic annotation framework (LAF)
  Text-Fabric is a preferred format for file type Programming languages. """ ;
    rdfs:label "Text-Fabric" ;
    fip:has-description-source <https://dans.knaw.nl/en/file-formats/programming-languages/text-fabric/> .
}
sub:provenance {
  sub:assertion dct:creator orcid:0000-0001-6899-760X .
}
sub:pubinfo {
  this: dct:created "2025-12-04T00:17:06Z"^^xsd:dateTime ;
    dct:creator <https://fip.fair-wizard.com/wizard> ;
    dct:license <https://creativecommons.org/publicdomain/zero/1.0/> ;
    npx:introduces sub:Text-Fabric ;
    prov:wasDerivedFrom <https://w3id.org/fip/wizard/c70e0d04-f5c1-4d75-bb5f-a111435152d9> .
  sub:sig npx:hasAlgorithm "RSA" ;
    npx:hasPublicKey "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCoKFb7LKlXyBB7BUvjFF9bDJNk0WxH3Xerr4H3v/VCiRVshEDl3BZVekbMMmdRe+TOPyc8AOLd9IAL2VfVVD/T0rmCHk7Pw7DQjI96mwyeXhE7f4g0WG5UT5Pxxm0Rzy7IrYnEaaVDs7dkZUt952M6qWlHfTwCQDcXJhZfLiXoMwIDAQAB" ;
    npx:hasSignature "krRYrKv/f/vqSCO6rZS5pAMk9DJMwMOTd/hFBYto3qo4eo3WFR93dzntR3iUb6wHH9yC5xtW7px45WflssrrexJ7wP4BgaWRn8P48uX6eK+8vG9d4ceKfwBMEB+VZtZs3CijEYe1yLo+ZbfHf8zVWjTXaB6giH1V0D6QnQ8MHZk=" ;
    npx:hasSignatureTarget this: .
}