# conllup

> Javascript library for converting conll sentence to json format and vice-versa.

Latest version **3.1.4** (published 2025-11-02) · ISC license · 0 weekly downloads

## Install

```sh
npm install conllup
pnpm add conllup
yarn add conllup
bun add conllup
```

## Health

**Score 55/100 (C)** — status: stable.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

## Facts

| | |
|---|---|
| Version | 3.1.4 |
| Published | 2025-11-02 |
| First published | 2020-12-08 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 59.3 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 7 |
| Author | Kirian Guiller |
| Maintainers | bguil, kirianguiller |
| Keywords | conllup, conllu, syntax, nlp |

## Links

- npm: https://www.npmjs.com/package/conllup
- Repository: https://github.com/kirianguiller/conllup-js
- Homepage: https://github.com/kirianguiller/conllup-js#readme
- Issues: https://github.com/kirianguiller/conllup-js/issues
- npm.io page: https://npm.io/package/conllup

## Alternatives

- [@oh-my-pi/pi-natives](https://npm.io/package/@oh-my-pi/pi-natives.md) — 51.8K weekly downloads
- [@capgo/capacitor-light-sensor](https://npm.io/package/@capgo/capacitor-light-sensor.md) — 3.0K weekly downloads
- [@heyhuynhgiabuu/pi-diff](https://npm.io/package/@heyhuynhgiabuu/pi-diff.md) — 492 weekly downloads
- [@lotsa/verdant-lang-asm](https://npm.io/package/@lotsa/verdant-lang-asm.md) — 38 weekly downloads
- [new-era-syntax](https://npm.io/package/new-era-syntax.md) — 20 weekly downloads

## Recent versions

- 3.1.4 (latest) — 2025-11-02
- 3.1.3 — 2023-09-15
- 3.1.2 — 2023-09-15
- 3.1.1 — 2023-09-11
- 3.1.0 — 2023-09-10
- 3.0.0 — 2023-06-16
- 2.1.0 — 2023-01-16
- 2.0.3 — 2023-01-16
- 2.0.2 — 2022-12-11
- 2.0.1 — 2022-11-11
- 2.0.0 — 2022-09-27
- 1.1.7 — 2021-11-23
- 1.1.6 — 2021-09-23
- 1.1.5 — 2021-09-23
- 1.1.4 — 2021-06-21
- … 15 more at https://npm.io/package/conllup/versions

## README

# Conllup JS
Javascript library for converting conll sentence to json format and vice-versa. The code include some test and is written in TS !

## Who need that ?
Linguist, NLP researcher/engineer and computer scientist who want to show dependency tree in the browser. 
It is currently being used in :
- [Arborator-Grew](https://arboratorgrew.elizia.net/#/) : A web-app for online collaborative dependency parsing.
- [Reactive-Dep-Tree](https://github.com/kirianguiller/reactive-dep-tree) : An html plugin made with Vue.js for showing interactive dependency tree in the browser
- [Surface Syntactic SUD](https://surfacesyntacticud.github.io) : A guideline on Surface Syntactic Universal Dependencies (SUD). Just check the website and try to interact with the dependency trees to have a live demo :D.

## Updates history
### 3.1.3
- minor change: getNodeFromTreeJson() (previously implemented) throw error in case of non existance of token only if specified 
### 3.1.2
- add: getNodeFromTreeJson() function that returns a node from a tree given it's index that can be a enhanced, group or normal token (indices have different format)
### 3.1.1
- add: returnTokensInOrder() function that returns tokens of a tree in correct (UD) order (according to group, enhanced and normal tokens rules)
### 3.1
- add support to Enhanced UD specifications ([link here](https://universaldependencies.org/u/overview/enhanced-syntax.html#ellipsis))
### 3.0
- Change most of variables name to better suit with conllup-py porting 
- modify _featuresConllToJson() so it order features in the order [specified by UD](https://universaldependencies.org/format.html) (thank you @bguil): 
> In sorting, uppercase letters are considered identical to their lowercase counterparts.
### 2.1
- add : smart behavior for `replaceArrayOfTokens()` when a token split is detected. New tokens get their feats replicated from original splitted token, and preserve incoming governors relations
### 2.0.3
- fix : when tokens are replaced/deleted with `replaceArrayOfTokens()` method, the tokens pointing to these tokens only got the HEAD deleted but not the DEPREL. It now delet both of them so the outputted conllu is valid
### 2.0.1 
add compatibility for node import (from 3rd party codebase)
### 2.0.0
(Still in development)
- Refactor the SentenceJson type to move the Group tokens in their own property (SentenceJson.GroupsToken)
- Add support of UDPipe SpacesAfter (=//n ; //t ; //v, //f, //r, /s) MISC logic

### 1.1.7
- add better error information when importing conll with less or more than 10 columns

### 1.1.6
- add public `constructTextFromTreeJson` method (that take into account the SpaceAfter=No misc)
### 1.1.4
- Fix aggressive normalization of hyphens in FORM and LEMMA


### 1.1.0
- Support for group token
```tsv
1-2 it's  _ _ _ _ _ _ _ _
1 it  _ _ _ _ _ _ _ _
2 's  _ _ _ _ _ _ _ _
```

---
_Source: https://npm.io/package/conllup · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
