What is JATS?

JATS is a NISO standard for Journal Article Tags Schema, which is a way to define the XML structure of a scientific article semantically. This includes the front-matter (authors, funding, title, abstract, etc.), the body of the article (sections, figures, equations, tables, etc.), and back-matter (references, footnotes, etc.). The JATS can also contain sub-articles.

The standard documents are hosted by the NIH https://jats.nlm.nih.gov/. There are three flavours, this library currently uses in most cases the most prescriptive tag set (for article authoring). Another helpful resource is https://jats4r.org/, which provides other examples and recommendations for JATS.

Note that most publishers do not provide the XML as a first class output - they should, it is an important part of open-science to have the content programmatically accessible and interoperable. It is only FAIR 😉.

Installation

Package is available as an NPM package:

npm install jats-xml

Working in Typescript

All tags are accessible as types/enums. There is also documentation from each node-type

import { Tags } from 'jats-xml';

Tags.journalId;

Reading JATS in Node

import 'fs' from 'fs';
import { Inventory, toDate } from 'jats-xml';
import { select, selectAll } from 'unist-util-select';

const data = fs.readFileSync('article.jats').toString();
const jats = new JATS(data);
// Easy access to properties
jats.doi
jats.body // A tree of the body (or front/back)
toDate(jats.publicationDate) // as a Javascript Date object
select('[id=fig1]', jats.body) // select a figure by an ID
selectAll('fig', jats.body) // Or selectAll figures

Write JATS in Node

TODO!

Curvenote OrgCurvenote Org
Open Infrastructure for Science Communication