FoLiA-Linguistic-Annotation-Tool


NameFoLiA-Linguistic-Annotation-Tool JSON
Version 0.11.5 PyPI version JSON
download
home_pagehttps://github.com/proycon/flat
SummaryFLAT is a web-based linguistic annotation environment based around the FoLiA format (https://proycon.github.io/folia), a rich XML-based format for linguistic annotation. Flat allows users to view annotated FoLiA documents and enrich these documents with new annotations, a wide variety of linguistic annotation types is supported through the FoLiA paradigm.
upload_time2024-07-05 11:30:45
maintainerNone
docs_urlNone
authorMaarten van Gompel
requires_python>=3.7
licenseGPL
keywords linguistics annotation nlp computational linguistics folia
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. image:: http://readthedocs.org/projects/flat/badge/?version=latest
	:target: http://flat.readthedocs.io/en/latest/?badge=latest
	:alt: Documentation Status

.. image:: http://applejack.science.ru.nl/lamabadge.php/flat
   :target: http://applejack.science.ru.nl/languagemachines/

.. image:: https://zenodo.org/badge/15584383.svg
   :target: https://zenodo.org/badge/latestdoi/15584383

.. image:: https://www.repostatus.org/badges/latest/active.svg
   :alt: Project Status: Active – The project has reached a stable, usable state and is being actively developed.
   :target: https://www.repostatus.org/#active

.. image:: https://img.shields.io/pypi/v/FoLiA-Linguistic-Annotation-Tool?color=green
   :alt: Latest release in the Python Package Index
   :target: https://pypi.org/project/FoLiA-Linguistic-Annotation-Tool/

*****************************************
FLAT - FoLiA Linguistic Annotation Tool
*****************************************

FLAT is a web-based linguistic annotation environment based around the FoLiA
format (http://proycon.github.io/folia), a rich XML-based format for linguistic
annotation. FLAT allows users to view annotated FoLiA documents and enrich
these documents with new annotations, a wide variety of linguistic annotation
types is supported through the FoLiA paradigm. It is a document-centric tool
that fully preserves and visualises document structure.

FLAT is written in javascript with jquery on a backend of Python using the Django framework.  The FoLiA Document Server
(https://github.com/proycon/foliadocserve) , the back-end of the system, is written in Python with CherryPy and is used
as a RESTful webservice.

FLAT is open source software developed at the Centre of Language and Speech
Technology, Radboud University Nijmegen. It is licensed under the GNU Public
License v3. The project is funded in the scope of the larger `CLARIAH
<http://clariah.nl>`_ project.


=============================================
Features
=============================================

* Web-based, multi-user environment
* Server-side document storage, divided into 'namespaces', by default each user
  has his own namespace. Active documents are held in memory server-side.
  Read and write permissions to access namespaces are fully configurable.
* Concurrency (multiple users may edit the same document similtaneously)
* Full versioning control for documents (using git), allowing limitless undo operations. (in foliadocserve)
* Full provenance information, including annotator names and timestamps, is stored in the FoLiA XML and can be displayed by the interface. The git log also contains verbose information on annotations.
* Annotators can indicate their confidence for each annotation
* Highly configurable interface; interface options may be disabled on a
  per-configuration basis. Multiple configurations can be deployed on a single
  installation
* Displays and retains document structure (divisions, paragraphs, sentence, lists, etc)
* Support for corrections, of text or linguistic annotations, and alternative annotations. Corrections are never mere substitutes, originals are always preserved!
* Spelling corrections for runons, splits, insertions and deletions are supported.
* Supports FoLiA Set Definitions to display label sets. Sets are not predefined
  in FoLiA and anybody can create their own.
* Supports Token Annotation and Span Annotation
* Supports complex span annotations such as dependency relations, syntactic units (constituents), predicates and semantic roles, sentiments, stratements/attribution, observations
* Simple metadata editor for editing/adding arbitrary metadata to a document.
  Selected metadata fields can be shown in the document index as well.
* User permission model featuring groups, group namespaces, and assignable permissions
* File/document management functions (copying, moving, deleting)
* Allows converter extensions to convert from other formats to FoLiA on upload
* In-document search (CQL or FQL), advanced searches can be predefined by administrators
* Morphosyntactic tree visualisation (constituency parses and morphemes)
* Higher-order annotation: associate features, comments, descriptions with any
  linguistic annotation, also allow for arbritary relations between any type of annotation or structure

============================================
Architecture
============================================

The FLAT architecture consists of three layers:

* The **FoLiA Document Server** (https://github.com/proycon/foliadocserve)
* The **FLAT server**
* The **user-interface**

At the far back-end is the FoLiA Document Server, which loads the requested
FoLiA documents, and passes these as JSON and HTML to the middle layer, the
FLAT server, this layer in turn passes edits formulated in FoLiA Query Language
(FQL) to the Document Server. The user-interface is a modern web-application
interacting with the FLAT server and translates interface actions to FQL.

FLAT distinguishes several **modes**, between which the user can switch to get
another take of a document with different editing abilities. There are
currently three modes available, and a fourth one under construction:

* **Viewer** - Views a document and its annotations, no editing abilities
* **Editor** - Main editing environment for linguistic annotation
* **Metadata editor** - A simple editor for document-wide metadata
* **Structure Editor** - Editing environment for document structure *(rudimentary version, not done)*

In the viewer and editor mode, users may set an **annotation focus**, i.e. an
annotation type that they want to visualise or edit. All instances of that
annotation type will be coloured in the interface and offer a *global* overview.
Moreover, the editor dialog will automatically present fields for editing that
type whenever a structure element (usually a word/token) is clicked.

Whereas the annotation focus is primary, users may select what other annotation
types they want to view *locally*,  i.e. in the annotation viewer that
pops up whenever the user hovers over a structural element. Similarly, users
may select what annotation types they want to see in editor, allowing the
editing of multiple annotation types at once rather than just the annotation
focus.

FoLiA distinguishes itself from some other annotation formats by explicitly
providing support for **corrections** (on any annotation type, including text)
and **alternative annotations**. In FLAT these are categorized as **edit
forms**, as they are different forms of editing; the user can select which form
he wants to use when performing an annotation.

The site administrator can configure in great detail what options the user has
available and what defaults are selected (for annotation focus for instance),
as a full unconstrained environment (which is the default) may quickly be
daunting and confusing to the end-user. Different tasks ask for different
configurations, so multiple configurations per site are
possible; the user chooses the desired configuration, often tied to a
particular annotation project, upon login.

===========================================
Documentation
===========================================

FLAT Documentation can be found in the form of the following three guides:

* `Installation Guide <http://flat.readthedocs.io/en/latest/installation_guide.html>`_. - Explains how to install FLAT.
* `Administration Guide <http://flat.readthedocs.io/en/latest/administration_guide.html>`_. - Explains how to configure FLAT for your annotation task.
* `User Guide <http://flat.readthedocs.io/en/latest/user_guide.html>`_. - Explains how to use FLAT.

Moreover, a screencast video has been created to show FLAT in action and
offer an impression of its features:

* `FLAT Demonstration Video <https://www.youtube.com/watch?v=tYF6grtldVQ>`_.

=============================================
Screenshots
=============================================

For some impressions of FLAT, take a look at the following screenshots:

The login screen:

.. image:: https://raw.github.com/proycon/flat/master/docs/login.png
    :alt: FLAT screenshot
    :align: center

Document index, showing namespaces accessible to the user and the documents
within.

.. image:: https://raw.github.com/proycon/flat/master/docs/mydocuments.png
    :alt: FLAT screenshot
    :align: center

Hovering over words reveals annotations:

.. image:: https://raw.github.com/proycon/flat/master/docs/hover.png
    :alt: FLAT screenshot
    :align: center

A particular annotation focus can be set to highlight the most frequent
classes in that set:

.. image:: https://raw.github.com/proycon/flat/master/docs/highlight1.png
    :alt: FLAT screenshot
    :align: center

.. image:: https://raw.github.com/proycon/flat/master/docs/highlight2.png
    :alt: FLAT screenshot
    :align: center

Editing a named entity in a set for which a set definition is available:

.. image:: https://raw.github.com/proycon/flat/master/docs/edit2.png
    :alt: FLAT screenshot
    :align: center

Correcting a word in a spelling-annotation project:

.. image:: https://raw.github.com/proycon/flat/master/docs/edit1.png
    :alt: FLAT screenshot
    :align: center

Proper right-to-left support for languages such as Arabic, Farsi and Hebrew.

.. image:: https://raw.github.com/proycon/flat/master/docs/righttoleft.png
    :alt: FLAT screenshot (right to left)
    :align: center

Extensive history with limitless undo ability, git-based:

.. image:: https://raw.github.com/proycon/flat/master/docs/history.png
    :alt: FLAT screenshot
    :align: center

Advanced search queries in CQL (Corpus Query Language) or FQL (FoLiA Query Language):

.. image:: https://raw.github.com/proycon/flat/master/docs/searchcql.png
    :alt: FLAT screenshot
    :align: center

.. image:: https://raw.github.com/proycon/flat/master/docs/search.png
    :alt: FLAT screenshot
    :align: center

Tree visualisation of syntax and morphology:

.. image:: https://raw.github.com/proycon/flat/master/docs/syntree.png
    :alt: FLAT screenshot
    :align: center

.. image:: https://raw.github.com/proycon/flat/master/docs/morphtree.png
    :alt: FLAT screenshot
    :align: center


            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/proycon/flat",
    "name": "FoLiA-Linguistic-Annotation-Tool",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "linguistics, annotation, nlp, computational linguistics, folia",
    "author": "Maarten van Gompel",
    "author_email": "proycon@anaproy.nl",
    "download_url": "https://files.pythonhosted.org/packages/e0/8b/cac36da13c12fde5530a52240558889c292beabf348d465d99a7e859a7a4/FoLiA-Linguistic-Annotation-Tool-0.11.5.tar.gz",
    "platform": null,
    "description": ".. image:: http://readthedocs.org/projects/flat/badge/?version=latest\n\t:target: http://flat.readthedocs.io/en/latest/?badge=latest\n\t:alt: Documentation Status\n\n.. image:: http://applejack.science.ru.nl/lamabadge.php/flat\n   :target: http://applejack.science.ru.nl/languagemachines/\n\n.. image:: https://zenodo.org/badge/15584383.svg\n   :target: https://zenodo.org/badge/latestdoi/15584383\n\n.. image:: https://www.repostatus.org/badges/latest/active.svg\n   :alt: Project Status: Active \u2013 The project has reached a stable, usable state and is being actively developed.\n   :target: https://www.repostatus.org/#active\n\n.. image:: https://img.shields.io/pypi/v/FoLiA-Linguistic-Annotation-Tool?color=green\n   :alt: Latest release in the Python Package Index\n   :target: https://pypi.org/project/FoLiA-Linguistic-Annotation-Tool/\n\n*****************************************\nFLAT - FoLiA Linguistic Annotation Tool\n*****************************************\n\nFLAT is a web-based linguistic annotation environment based around the FoLiA\nformat (http://proycon.github.io/folia), a rich XML-based format for linguistic\nannotation. FLAT allows users to view annotated FoLiA documents and enrich\nthese documents with new annotations, a wide variety of linguistic annotation\ntypes is supported through the FoLiA paradigm. It is a document-centric tool\nthat fully preserves and visualises document structure.\n\nFLAT is written in javascript with jquery on a backend of Python using the Django framework.  The FoLiA Document Server\n(https://github.com/proycon/foliadocserve) , the back-end of the system, is written in Python with CherryPy and is used\nas a RESTful webservice.\n\nFLAT is open source software developed at the Centre of Language and Speech\nTechnology, Radboud University Nijmegen. It is licensed under the GNU Public\nLicense v3. The project is funded in the scope of the larger `CLARIAH\n<http://clariah.nl>`_ project.\n\n\n=============================================\nFeatures\n=============================================\n\n* Web-based, multi-user environment\n* Server-side document storage, divided into 'namespaces', by default each user\n  has his own namespace. Active documents are held in memory server-side.\n  Read and write permissions to access namespaces are fully configurable.\n* Concurrency (multiple users may edit the same document similtaneously)\n* Full versioning control for documents (using git), allowing limitless undo operations. (in foliadocserve)\n* Full provenance information, including annotator names and timestamps, is stored in the FoLiA XML and can be displayed by the interface. The git log also contains verbose information on annotations.\n* Annotators can indicate their confidence for each annotation\n* Highly configurable interface; interface options may be disabled on a\n  per-configuration basis. Multiple configurations can be deployed on a single\n  installation\n* Displays and retains document structure (divisions, paragraphs, sentence, lists, etc)\n* Support for corrections, of text or linguistic annotations, and alternative annotations. Corrections are never mere substitutes, originals are always preserved!\n* Spelling corrections for runons, splits, insertions and deletions are supported.\n* Supports FoLiA Set Definitions to display label sets. Sets are not predefined\n  in FoLiA and anybody can create their own.\n* Supports Token Annotation and Span Annotation\n* Supports complex span annotations such as dependency relations, syntactic units (constituents), predicates and semantic roles, sentiments, stratements/attribution, observations\n* Simple metadata editor for editing/adding arbitrary metadata to a document.\n  Selected metadata fields can be shown in the document index as well.\n* User permission model featuring groups, group namespaces, and assignable permissions\n* File/document management functions (copying, moving, deleting)\n* Allows converter extensions to convert from other formats to FoLiA on upload\n* In-document search (CQL or FQL), advanced searches can be predefined by administrators\n* Morphosyntactic tree visualisation (constituency parses and morphemes)\n* Higher-order annotation: associate features, comments, descriptions with any\n  linguistic annotation, also allow for arbritary relations between any type of annotation or structure\n\n============================================\nArchitecture\n============================================\n\nThe FLAT architecture consists of three layers:\n\n* The **FoLiA Document Server** (https://github.com/proycon/foliadocserve)\n* The **FLAT server**\n* The **user-interface**\n\nAt the far back-end is the FoLiA Document Server, which loads the requested\nFoLiA documents, and passes these as JSON and HTML to the middle layer, the\nFLAT server, this layer in turn passes edits formulated in FoLiA Query Language\n(FQL) to the Document Server. The user-interface is a modern web-application\ninteracting with the FLAT server and translates interface actions to FQL.\n\nFLAT distinguishes several **modes**, between which the user can switch to get\nanother take of a document with different editing abilities. There are\ncurrently three modes available, and a fourth one under construction:\n\n* **Viewer** - Views a document and its annotations, no editing abilities\n* **Editor** - Main editing environment for linguistic annotation\n* **Metadata editor** - A simple editor for document-wide metadata\n* **Structure Editor** - Editing environment for document structure *(rudimentary version, not done)*\n\nIn the viewer and editor mode, users may set an **annotation focus**, i.e. an\nannotation type that they want to visualise or edit. All instances of that\nannotation type will be coloured in the interface and offer a *global* overview.\nMoreover, the editor dialog will automatically present fields for editing that\ntype whenever a structure element (usually a word/token) is clicked.\n\nWhereas the annotation focus is primary, users may select what other annotation\ntypes they want to view *locally*,  i.e. in the annotation viewer that\npops up whenever the user hovers over a structural element. Similarly, users\nmay select what annotation types they want to see in editor, allowing the\nediting of multiple annotation types at once rather than just the annotation\nfocus.\n\nFoLiA distinguishes itself from some other annotation formats by explicitly\nproviding support for **corrections** (on any annotation type, including text)\nand **alternative annotations**. In FLAT these are categorized as **edit\nforms**, as they are different forms of editing; the user can select which form\nhe wants to use when performing an annotation.\n\nThe site administrator can configure in great detail what options the user has\navailable and what defaults are selected (for annotation focus for instance),\nas a full unconstrained environment (which is the default) may quickly be\ndaunting and confusing to the end-user. Different tasks ask for different\nconfigurations, so multiple configurations per site are\npossible; the user chooses the desired configuration, often tied to a\nparticular annotation project, upon login.\n\n===========================================\nDocumentation\n===========================================\n\nFLAT Documentation can be found in the form of the following three guides:\n\n* `Installation Guide <http://flat.readthedocs.io/en/latest/installation_guide.html>`_. - Explains how to install FLAT.\n* `Administration Guide <http://flat.readthedocs.io/en/latest/administration_guide.html>`_. - Explains how to configure FLAT for your annotation task.\n* `User Guide <http://flat.readthedocs.io/en/latest/user_guide.html>`_. - Explains how to use FLAT.\n\nMoreover, a screencast video has been created to show FLAT in action and\noffer an impression of its features:\n\n* `FLAT Demonstration Video <https://www.youtube.com/watch?v=tYF6grtldVQ>`_.\n\n=============================================\nScreenshots\n=============================================\n\nFor some impressions of FLAT, take a look at the following screenshots:\n\nThe login screen:\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/login.png\n    :alt: FLAT screenshot\n    :align: center\n\nDocument index, showing namespaces accessible to the user and the documents\nwithin.\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/mydocuments.png\n    :alt: FLAT screenshot\n    :align: center\n\nHovering over words reveals annotations:\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/hover.png\n    :alt: FLAT screenshot\n    :align: center\n\nA particular annotation focus can be set to highlight the most frequent\nclasses in that set:\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/highlight1.png\n    :alt: FLAT screenshot\n    :align: center\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/highlight2.png\n    :alt: FLAT screenshot\n    :align: center\n\nEditing a named entity in a set for which a set definition is available:\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/edit2.png\n    :alt: FLAT screenshot\n    :align: center\n\nCorrecting a word in a spelling-annotation project:\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/edit1.png\n    :alt: FLAT screenshot\n    :align: center\n\nProper right-to-left support for languages such as Arabic, Farsi and Hebrew.\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/righttoleft.png\n    :alt: FLAT screenshot (right to left)\n    :align: center\n\nExtensive history with limitless undo ability, git-based:\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/history.png\n    :alt: FLAT screenshot\n    :align: center\n\nAdvanced search queries in CQL (Corpus Query Language) or FQL (FoLiA Query Language):\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/searchcql.png\n    :alt: FLAT screenshot\n    :align: center\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/search.png\n    :alt: FLAT screenshot\n    :align: center\n\nTree visualisation of syntax and morphology:\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/syntree.png\n    :alt: FLAT screenshot\n    :align: center\n\n.. image:: https://raw.github.com/proycon/flat/master/docs/morphtree.png\n    :alt: FLAT screenshot\n    :align: center\n\n",
    "bugtrack_url": null,
    "license": "GPL",
    "summary": "FLAT is a web-based linguistic annotation environment based around the FoLiA format (https://proycon.github.io/folia), a rich XML-based format for linguistic annotation. Flat allows users to view annotated FoLiA documents and enrich these documents with new annotations, a wide variety of linguistic annotation types is supported through the FoLiA paradigm.",
    "version": "0.11.5",
    "project_urls": {
        "Homepage": "https://github.com/proycon/flat"
    },
    "split_keywords": [
        "linguistics",
        " annotation",
        " nlp",
        " computational linguistics",
        " folia"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e08bcac36da13c12fde5530a52240558889c292beabf348d465d99a7e859a7a4",
                "md5": "45d302c36649f0e1758d879a4249584e",
                "sha256": "9aec74811eb9c188aa8dff72c10b5aca0d361ed8abe76a1f3954265ba6731332"
            },
            "downloads": -1,
            "filename": "FoLiA-Linguistic-Annotation-Tool-0.11.5.tar.gz",
            "has_sig": false,
            "md5_digest": "45d302c36649f0e1758d879a4249584e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 7792831,
            "upload_time": "2024-07-05T11:30:45",
            "upload_time_iso_8601": "2024-07-05T11:30:45.796531Z",
            "url": "https://files.pythonhosted.org/packages/e0/8b/cac36da13c12fde5530a52240558889c292beabf348d465d99a7e859a7a4/FoLiA-Linguistic-Annotation-Tool-0.11.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-05 11:30:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "proycon",
    "github_project": "flat",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "folia-linguistic-annotation-tool"
}
        
Elapsed time: 0.45779s