specifications

Specifications for the DTS API

https://github.com/distributed-text-services/specifications

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.9%) to scientific vocabulary
Last synced: 7 months ago · JSON representation ·

Repository

Specifications for the DTS API

Basic Info
  • Host: GitHub
  • Owner: distributed-text-services
  • Language: HTML
  • Default Branch: master
  • Homepage: https://w3id.org/dts
  • Size: 854 KB
Statistics
  • Stars: 28
  • Watchers: 17
  • Forks: 11
  • Open Issues: 23
  • Releases: 1
Created about 10 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog Citation

README.md

Distributed Text Services (DTS)

Google group{: .btn .btn--info .btn--x--small} Raise Issues and Ask Questions{: .btn .btn--info .btn--x--small} Check Source and Propose Changes{: .btn .btn--info .btn--x--small}

Distributed Text Services 1.0 Release Candidate Published – July 11, 2025

After years of development, independent implementations, interoperability testing, and a public comment period, the Distributed Text Services Technical Committee is pleased to announce the publication of the Distributed Text Services 1.0 Release Candidate (RC1).

We strongly encourage you to implement DTS now and share your feedback. The specification is feature-complete and stable, and we expect only minor clarifications before the final 1.0 release in three months (11/10/2025). Early adoption will ensure your projects are ready and help the community validate the standard in real-world use.

What is DTS?

The Distributed Text Services (DTS) Specification defines an API for working with collections of text as machine-actionable data.

Publishers of digital text collections can use the DTS API to help them make their textual data Findable, Accessible, Interoperable and Reusable (FAIR).

DTS enables machine-consumption of digital text collections, and can be used by consumers of these collections in a variety of ways, such as for data analysis and the development of user-interfaces, tools and services.

DTS is a specification for an API and not in and of itself an implementation of that API. Reference Implementations are available (see below) and individual text publishers are encouraged to implement this API in their own projects where appropriate.

See the FAQ for more information and a list of frequently asked questions about DTS.

Supported Operations

DTS specifies 3 distinct operation endpoints:

The Collection and Navigation endpoints return JSON-LD. The Document endpoint is specified to return TEI/XML of the requested text or fragment.

Capabilities

The DTS API provides the following core capabilities to clients:

  • Retrieve lists of collection members
  • Retrieve metadata about individual collection items
  • Retrieve lists of citeable passages within a text
  • Retrieve metadata about the citation structure of a document
  • Retrieve a single text passage at any level of the citation hierarchy
  • Retrieve a range of text passages with a clearly defined start and end passage
  • Retrieve an entire text

Generic Implementations

This list includes implementations that should be generic enough to be compatible with a lot of different corpora.

  • MyDapytains is a python implementation by a member of the technical committee which uses Flask for web and SaxonC implementation for XPath, XSLT and XQuery.
  • DoTS is an implementation from Biblissima + & the Ecole nationale des chartes built on top of BaseX.

Implementation of older versions (Before 1-alpha)

The following open source libraries implement the DTS API (1.0 Draft):

  • TEI Publisher client
    • Implementation of the DTS API + a Client interface to the API
    • Currently supports browsing collections and document retrieval, but not navigation.
  • MyCapytain + Nautlius
    • MyCapytain is a Python library that implements the DTS data model and Nautlius is a Python library that implements the DTS API Endpoints backed by the MyCapytain libary. Both operate on TEI text collections that adhere to the Capitains Guidelines
  • Perseids DTS API
    • Ruby on Rails implementation of the DTS API . Operates on TEI text collections that adhere to the Capitains Guidelines

Known Corpora Accessible via the DTS API

The following open source libraries implement the DTS API (1.0 Draft):

  • Dracor https://dev.dracor.org/api/v1/dts
  • Ecole Nationale des Chartes http://dev.chartes.psl.eu/api/nautilus/dts and http://http://dev.chartes.psl.eu/dts-demo/
    • A small collection of contemporaneous and medieval French literature. The contemporaneous texts are lightly marked up, and the medieval texts are finely annotated. Uses the MyCapytain/Nautilus libraries.
  • Alpheios http://texts.alpheios.net/api/dts
    • A small collection of Latin and Greek texts that have been aligned with linguistic annotations for learning ancient languages. Uses the MyCapytain/Nautilus libraries.
  • Perseids https://dts.perseids.org/
    • Serves all textual resources available from Perseus within the Ancient Greek and Latin corpora as well as some resources in Hebrew and Farsi.
  • Beta maṣāḥǝft http://betamasaheft.eu/
    • Collection of written artefacts from the highlands of Ethiopia and Eritrea mainly in Gǝʿǝz (Classical Ethiopic). In the collection are present both transcriptions of manuscripts and editions of textual units. The scarce availability of transcriptions as well as available editions means that the actual text contents are few in comparison with the textual units and written artefacts identified and described.
  • Epigraphische Datenbank Heidelberg https://edh-www.adw.uni-heidelberg.de/api/dts/
    • A corpus of 80,000 short texts from the Latin epigraphic databases.

Owner

  • Name: Distributed Text Services
  • Login: distributed-text-services
  • Kind: organization
  • Email: distributed-text-services@googlegroups.com

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: Distributed Text Services Specifications
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Hugh
    family-names: Cayless
    affiliation: Duke University
  - family-names: Clérice
    given-names: Thibault
    affiliation: Inria
  - given-names: Robie
    family-names: Jonathan
  - given-names: Ian
    family-names: Scott
    affiliation: Michigan State University
  - given-names: Bridget
    family-names: Almas
identifiers:
  - type: url
    value: 'https://www.w3id.org/dts'
repository-code: >-
  https://github.com/distributed-text-services/specifications
url: 'https://w3id.org'
license: CC-BY-4.0
version: 1-alpha

GitHub Events

Total
  • Issues event: 9
  • Issue comment event: 19
  • Push event: 10
  • Pull request event: 5
  • Fork event: 1
  • Create event: 1
Last Year
  • Issues event: 9
  • Issue comment event: 19
  • Push event: 10
  • Pull request event: 5
  • Fork event: 1
  • Create event: 1

Issues and Pull Requests

Last synced: 7 months ago

All Time
  • Total issues: 4
  • Total pull requests: 1
  • Average time to close issues: 3 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 2
  • Total pull request authors: 1
  • Average comments per issue: 2.75
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 4
  • Pull requests: 1
  • Average time to close issues: 3 months
  • Average time to close pull requests: 7 days
  • Issue authors: 2
  • Pull request authors: 1
  • Average comments per issue: 2.75
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • PonteIneptique (14)
  • monotasker (9)
  • balmas (8)
  • geoffroy-noel-ddh (7)
  • kbrueckmann (5)
  • mromanello (4)
  • hcayless (3)
  • jonathanrobie (3)
  • philippepons (2)
  • ingoboerner (2)
  • rerouj (2)
  • PietroLiuzzo (2)
  • robcast (1)
  • mhucka (1)
Pull Request Authors
  • monotasker (10)
  • PonteIneptique (4)
  • dependabot[bot] (3)
  • ingoboerner (1)
  • mromanello (1)
Top Labels
Issue Labels
Navigation Endpoint (9) Documentation (8) Question (7) DTS Scheme (6) Document Endpoint (5) Collection Endpoint (5) multiple-tree (4) New Feature (3) wontfix (3) Context JSON (3) User Story (2) GO (2) Meta (1) Future (1) outreach (1) Cookbook (1)
Pull Request Labels
dependencies (3) Documentation (1)

Dependencies

Gemfile rubygems
  • github-pages >= 0 development
  • jekyll-algolia >= 0 development
  • jekyll-feed >= 0 development
  • jekyll-gist >= 0 development
  • jekyll-include-cache >= 0 development
  • jekyll-octicons >= 0 development
  • jekyll-paginate >= 0 development
  • jekyll-sitemap >= 0 development
  • jemoji >= 0 development
  • pkg-config ~> 1.3
  • tzinfo-data >= 0
Gemfile.lock rubygems
  • activesupport 4.2.11.1
  • addressable 2.8.0
  • algolia_html_extractor 2.6.4
  • algoliasearch 1.27.1
  • coffee-script 2.4.1
  • coffee-script-source 1.11.1
  • colorator 1.1.0
  • commonmarker 0.17.13
  • concurrent-ruby 1.1.9
  • dnsruby 1.61.3
  • em-websocket 0.5.1
  • ethon 0.12.0
  • eventmachine 1.2.7
  • execjs 2.7.0
  • faraday 0.17.0
  • ffi 1.11.1
  • filesize 0.2.0
  • forwardable-extended 2.6.0
  • gemoji 3.0.1
  • github-pages 201
  • github-pages-health-check 1.16.1
  • html-pipeline 2.14.0
  • http_parser.rb 0.6.0
  • httpclient 2.8.3
  • i18n 0.9.5
  • jekyll 3.8.5
  • jekyll-algolia 1.5.0
  • jekyll-avatar 0.6.0
  • jekyll-coffeescript 1.1.1
  • jekyll-commonmark 1.3.1
  • jekyll-commonmark-ghpages 0.1.6
  • jekyll-default-layout 0.1.4
  • jekyll-feed 0.11.0
  • jekyll-gist 1.5.0
  • jekyll-github-metadata 2.12.1
  • jekyll-include-cache 0.2.0
  • jekyll-mentions 1.4.1
  • jekyll-octicons 9.1.1
  • jekyll-optional-front-matter 0.3.0
  • jekyll-paginate 1.1.0
  • jekyll-readme-index 0.2.0
  • jekyll-redirect-from 0.14.0
  • jekyll-relative-links 0.6.0
  • jekyll-remote-theme 0.4.0
  • jekyll-sass-converter 1.5.2
  • jekyll-seo-tag 2.5.0
  • jekyll-sitemap 1.2.0
  • jekyll-swiss 0.4.0
  • jekyll-theme-architect 0.1.1
  • jekyll-theme-cayman 0.1.1
  • jekyll-theme-dinky 0.1.1
  • jekyll-theme-hacker 0.1.1
  • jekyll-theme-leap-day 0.1.1
  • jekyll-theme-merlot 0.1.1
  • jekyll-theme-midnight 0.1.1
  • jekyll-theme-minimal 0.1.1
  • jekyll-theme-modernist 0.1.1
  • jekyll-theme-primer 0.5.3
  • jekyll-theme-slate 0.1.1
  • jekyll-theme-tactile 0.1.1
  • jekyll-theme-time-machine 0.1.1
  • jekyll-titles-from-headings 0.5.1
  • jekyll-watch 2.2.1
  • jemoji 0.10.2
  • json 2.6.1
  • kramdown 1.17.0
  • liquid 4.0.0
  • listen 3.1.5
  • mercenary 0.3.6
  • mini_portile2 2.6.1
  • minima 2.5.0
  • minitest 5.14.4
  • multipart-post 2.1.1
  • nokogiri 1.12.5
  • octicons 9.1.1
  • octokit 4.14.0
  • pathutil 0.16.2
  • pkg-config 1.3.9
  • progressbar 1.10.1
  • public_suffix 3.1.1
  • racc 1.6.0
  • rb-fsevent 0.10.3
  • rb-inotify 0.10.0
  • rouge 3.11.0
  • ruby-enum 0.7.2
  • ruby_dep 1.5.0
  • rubyzip 2.0.0
  • safe_yaml 1.0.5
  • sass 3.7.4
  • sass-listen 4.0.0
  • sawyer 0.8.2
  • terminal-table 1.8.0
  • thread_safe 0.3.6
  • typhoeus 1.3.1
  • tzinfo 1.2.9
  • tzinfo-data 1.2019.3
  • unicode-display_width 1.6.0
  • verbal_expressions 0.1.5