Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
615b3ed
Added Pali.
khemarato May 5, 2026
4900829
Add orthography and tokenization sections
khemarato May 5, 2026
75c0b2f
Add root compound documentation
khemarato May 6, 2026
714d143
Add 'ti info
khemarato May 7, 2026
6291117
participles
khemarato May 7, 2026
d577cf9
verb features
khemarato May 7, 2026
458d09a
rest of prompt doc
khemarato May 7, 2026
1224999
ambiguous features
khemarato May 7, 2026
d771baf
nits
khemarato May 7, 2026
0107766
A few updates from our convo online
khemarato May 9, 2026
da4c9cf
Add a couple more decisions
khemarato May 11, 2026
2dac4aa
noun lemmas
khemarato May 17, 2026
c1a7006
Add DET reminder
khemarato May 24, 2026
a557ff4
Create documentation for 'obl:goal' relation
chiaweilinunil Jul 27, 2026
37111b9
Revise content in obl-goal.md
chiaweilinunil Jul 27, 2026
709fb2f
Create documentation for 'obl:agent' relation
chiaweilinunil Jul 27, 2026
6a945e3
Update compound-dg.md with compound examples
chiaweilinunil Jul 27, 2026
b533068
Clarify obl:agent usage in documentation
chiaweilinunil Jul 27, 2026
6383bc4
Add example for agent expression in obl-agent.md
chiaweilinunil Jul 27, 2026
5df5136
Revise 'compound' relation to 'compound:dg'
chiaweilinunil Jul 27, 2026
4b7ac3a
Update obl-goal.md
chiaweilinunil Jul 27, 2026
99524db
Create compound-dv.md for dvandva compound
chiaweilinunil Jul 27, 2026
ead6a77
Change title and definition for compound:tp
chiaweilinunil Jul 27, 2026
d62cb33
Rename compound-tp to compound-tp.md
chiaweilinunil Jul 27, 2026
7e27356
add parse for example
khemarato Jul 27, 2026
9199f88
remove redundancy
khemarato Jul 27, 2026
273eced
Create compound-kd.md
chiaweilinunil Jul 27, 2026
5219ca9
Fix compound notation from 'dg' to 'dv'
chiaweilinunil Jul 27, 2026
f7a5391
more details for dg
khemarato Jul 27, 2026
984fac0
Create compound-av.md
chiaweilinunil Jul 27, 2026
e77a5d8
Remove example from compound-av.md
chiaweilinunil Jul 27, 2026
f3d9488
more compound:dv info
khemarato Jul 27, 2026
99c1f66
Update compound-av.md with avyayībhāva example
chiaweilinunil Jul 27, 2026
15a85cd
Create compound-bv.md
chiaweilinunil Jul 27, 2026
0859be1
Fix syntax for adverbial compound notation
chiaweilinunil Jul 27, 2026
df79c8d
Create compound-na.md
chiaweilinunil Jul 27, 2026
599515d
more tp info
khemarato Jul 27, 2026
cefbe21
Update compound annotation guidelines in documentation
chiaweilinunil Jul 27, 2026
5dcfe0f
Update syntax section on participles and their roles
chiaweilinunil Jul 27, 2026
b401542
more info on compound:na
khemarato Jul 27, 2026
cc1c9f8
some additional fixes
khemarato Jul 27, 2026
ee6d6d4
A real index
khemarato Jul 28, 2026
81c08cb
Merge branch 'pages-source' into add-pali
khemarato Jul 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions _pi/dep/compound-av.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
layout: relation
title: 'compound:av'
shortdef: 'avyayībhāva compound'
udver: '2'
---

Avyayībhāva compounds are adverbial compounds whose first member is an indeclinable element.

~~~ sdparse
yathā- kamma /n according-to action

compound:av(kamma, yathā-)
compound:av(action, according-to)
~~~
16 changes: 16 additions & 0 deletions _pi/dep/compound-bv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
layout: relation
title: 'compound:bv'
shortdef: 'bahuvrīhi compound'
udver: '2'
---

Bahuvrīhi compounds are exocentric compounds indicating a possessive relationship:

~~~ sdparse
sa- devake /n with gods

compound:bv(devake, sa-)
compound:bv(gods, with)
~~~

30 changes: 30 additions & 0 deletions _pi/dep/compound-dg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
layout: relation
title: 'compound:dg'
shortdef: 'dvigu compound'
udver: '2'
---

Dvigu compounds are compounds whose first member is a numeral.

~~~ sdparse
satta- ratanāni \n seven-fold jewels

compound:dg{ratanāni, satta-}
compound:dg({jewels, seven-fold})
~~~

The numeral is the dependent and the part of the compound being modified (usually the immediate next token) is the head.

Note that "hundreds" and "thousands" in Pāli are done in the reverse order, with the number as the substantive and quantified noun in a case relation. For such cases, use the [compound:tp]().

For cases with both kinds of numbers, use both:

~~~ sdparse
asīti- vassa- sahassāni \n 80 rains thousands

compound:dg{sahassāni, asīti-}
compound:tp{sahassāni, vassa-}
compound:dg{thousands, 80}
compound:tp{thousands, rains}
~~~
28 changes: 28 additions & 0 deletions _pi/dep/compound-dv.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
layout: relation
title: 'compound:dv'
shortdef: 'dvandva compound'
udver: '2'
---

Dvandva compounds are those that express a coordinative relation.

For example "the sun and moon":

~~~ sdparse
candima- sūriyā \n moon sun

compound:dv{sūriyā, candima-}
compound:dv{sun, moon}
~~~

Note that the `compound:dv` relation takes the first element as the dependent and the last element of the coordination as the head. So, in the case of more than two, co-equal members:

~~~ sdparse
jāti- jarā- maraṇa \n birth aging and-death

compound:dv{maraṇa, jarā-}
compound:dv{maraṇa, jāti-}
compound:dv{and-death, aging}
compound:dv{and-death, birth}
~~~
16 changes: 16 additions & 0 deletions _pi/dep/compound-kd.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
---
layout: relation
title: 'compound:kd'
shortdef: 'karmadhāraya compound'
udver: '2'
---

Karmadhāraya compounds are compounds whose first member qualifies the target member:

~~~ sdparse
khīṇā- āsavānaṃ \n destroyed inflows

compound:kd(asavānaṃ, khīṇā-)
compound:kd(inflows, destroyed)
~~~

40 changes: 40 additions & 0 deletions _pi/dep/compound-na.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
---
layout: relation
title: 'compound:na'
shortdef: 'nañtatpuruṣa compound'
udver: '2'
---

Nañtatpuruṣa compounds are complex compounds whose first member is a negation.

## When not to use `compound:na`

Words that would only be compounds because they are *na-* negated should **not** be treated as compounds!

If the *na-* is in "n'" form (such as on a verb like "*nānubhava*" = "doesn't accomplish"), that should be treated as simple *sandhi*.

If the *na-* is an "a-" prefix (on a adjective/participle, such as "*amakkhito*" = "undefiled"), then you should treat the entire negated word as a single token and use the `Polarity=Neg` feature to mark the negation. This also holds for e.g. [tatpuruṣa compounds](./compound-tp) whose first part is negated:

~~~ sdparse
adhamma-/NOUN[Polarity=Neg] savaṇa/NOUN \n false-teaching listening

compound:tp(savaṇa, adhamma-)
compound:tp(listening, false-teaching)
~~~

Despite being a tatpuruṣa with a negation, *adhammasavaṇa* is not a nañtatpuruṣa.

## When to use `compound:na`

If, however, the negated word is a compound even without the negation and the negation is applied to the compound as a whole, then the *na* should be treated as a compound part and given the `compound:na` relation:

~~~ sdparse
a- nindā- rosa \n NEG blaming offense

compound:na(rosa, a-)
compound:dv(rosa, nindā-)
compound:na(offense, NEG)
compound:dv(offense, blaming)
~~~


27 changes: 27 additions & 0 deletions _pi/dep/compound-tp.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
---
layout: relation
title: 'compound:tp'
shortdef: 'tatpuruṣa compound'
udver: '2'
---

Tatpuruṣa compounds are compounds whose first member is in an oblique case relationship with its head. For example, a genitive relation:

~~~ sdparse
bodhisatta- mātā \n the-Bodhisattva's mother

compound:tp(mātā, bodhisatta-)
compound:tp(mother, the-Bodhisattva's)
~~~

Always point the dependent to the head of the relation, which may or may not be the head of the whole compound:

~~~ sdparse
kāma- guṇ- ūpasaṃhitaṃ \n sensual quality concern

compound:tp(guṇ-, kāma-)
compound:tp(ūpasaṃhitaṃ, guṇ-)
compound:tp(quality, sensual)
compound:tp(concern, quality)
~~~

24 changes: 24 additions & 0 deletions _pi/dep/compound.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
---
layout: relation
title: 'compound'
shortdef: 'compound'
udver: '2'
---

The `compound` relation subtypes are used for Pāli compounds to show how the compound's parts relate to each other.

A Pāli compound is identified through the fact that only the final member of the compound is grammatically inflected, and the earlier part(s) of the compound are in their uninflected form(s).
For example, *rukkhapatito* "tree-fallen" has *rukkha* "tree" in its stem form and only "fallen" *patito* declined.

Because the last part of the compound is inflected, we treat that part as the root of the compound which relates to the rest of the sentence and the earlier part(s) of the compound receive dependency relations (directly or indirectly) to that final part. The dependency relation to be used for this purpose is `compound` with the specific subtype for the kind of compound it is according to traditional (Pāṇinian) Sanskritic analysis:

* [compound:dg]() — *dvigu* (a numerical relation)
* [compound:dv]() — *dvandva* (a coordinative relation)
* [compound:kd]() — *karmadhāraya* (an adjectival relation)
* [compound:tp]() — *tatpuruṣa* (a case relation)
* [compound:na]() - *nañtatpuruṣa* (a negative relation)
* [compound:bv]() - *bahuvrīhi* (a compound used adjectively, e.g. *sa-*)
* [compound:av]() — *avyayībhāva* (a compound used adverbially, e.g. *anu-*)

Compounds should always be annotated with a token range (e.g. `10-12`). The `compound` relations should only be used for such tokens. Sandhi should not be treated as a token range but should be treated instead as two separate tokens with the first token getting `SpaceAfter=No` to mark the lack of a space after it. Pāli UD expresses the difference between sandhi and compounds in this way.

15 changes: 15 additions & 0 deletions _pi/dep/obl-agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
---
layout: relation
title: 'obl:agent'
shortdef: 'oblique argument expressing the goal'
udver: '2'
---

Used for a noun expressing the agent of an action.

~~~ sdparse
Anatikkamanīyā bodhisattamātā hoti kenaci purisena rattacittena \n Not-violatable Bodhisattva-mother is by-any by-man with-lustful-intent
obl:agent(Anatikkamanīyā, purisena)
obl:agent(Not-violatable, by-man)
~~~
17 changes: 17 additions & 0 deletions _pi/dep/obl-goal.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
layout: relation
title: 'obl:goal'
shortdef: 'oblique argument expressing the goal'
udver: '2'
---

Used for a noun expressing the goal or direction of a movement.

We wish to go to your dwellings (RV 1.154.6a).
~~~ sdparse
bodhisatto mātukucchiṃ okkami \n bodhisattva-NOM.M.SG mother-womb-AKK.SG.M descend.PST.3SG
'Bodisattva descended into the womb of his mother.'
obl:goal(mātukucchiṃ)
~~~
133 changes: 133 additions & 0 deletions _pi/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
---
layout: base
title: 'Pali UD'
udver: '2'
---

# UD for Pali <span class="flagspan"><img class="flag" src="../../flags/svg/IN.svg" /></span>

Pāli is an Indo-Aryan language, widely studied as the liturgical language of Theravāda Buddhism.

## Orthography

* While Pāli can traditionally be written with a variety of scripts, for UD we use [the IAST Romanization standard](https://en.wikipedia.org/wiki/International_Alphabet_of_Sanskrit_Transliteration).
* If your corpus or text is in another script or alternate Romanization, you can use a tool like [aksharamukha](https://aksharamukha.com/python) to automatically convert it to IAST.
* As different scripts use different, and sometimes no, punctuation, we further standardize our orthography by **removing all punctuation** from our texts.
* IAST is case insensitive. Here, we use lowercase, with the first letter of each sentence capitalized by convention.

## Sentence Segmentation

While we strip out punctuation in our `# text` rows, we do recommend using any punctuation in your source to help segment into sentences. In the Pāli Text Society and Mahāsaṅgīti editions, you should generally use both semicolons (`;`) and periods (`.`) to split sentences. However, be aware that Pāli verses may sometimes use semicolons to mark *pāda* "line" boundaries which are not semantic. Always segment sentences by syntax.

## Tokenization and Word Segmentation

* Words are generally delimited by spaces.
* Compounds are split and sandhi undone as it is the custom in Sanskritic linguistics.
* Compounds receive token ranges (e.g. `10-12`) and should get the appropriate [compound]() relation subtype.
* Sandhi should be marked with a `SpaceAfter=No` in the earlier token's `MISC` and should not get a range id.
* Multi-word tokens are generally not used. Parts of a multi-word name (e.g. "Saccaka Nigaṇṭhāputta") should get the [flat:name]() dependency relation.

## Morphology

### Lemmatization

The `LEMMA` for all verb forms is the 3rd-person singular present indicative of the underlying verb.
For example, the past participle *gata* "gone" gets the `LEMMA` *gacchati*.

#### Noun Lemmas

Lemmas are always lowercase, even for proper nouns.

For personal pronouns, collapse the cases down to the nominative. For example, *amhākaṃ* gets *mayaṃ* and *te* gets *tvaṃ*. Keep first and second, singular and plural separate.

For demonstrative pronouns, collapse the cases, gender, and number to the nominative, singular, neuter form:

* Use *tad* for all *ta-* forms: *sā*, *sa*, *taṃ*, *tena*, etc.
* Use *yad* for all *ya-* forms: *yo*, *yā*, *yaṃ*, *yamhi*, etc.
* Use *idaṃ* for its various forms: *ayaṃ*, *imaṃ*, *imāni*, *imehi*, *anena*, etc.

Substantives and adjectives should get the stem form as their lemma. For example, *itthiyo* has the lemma `itthi`, *bhikkhave* gets the lemma `bhikkhu`, *rasso* the lemma `rassa`, *rāja* the lemma `rājan`, *bhagavato* `bhagavant`, etc.

### Part of Speech Tags

Participles are tagged as `VERB`s and not `ADJ`s or `ADV`s.
This means that they cannot get the `amod` dependency relation when used to modify a noun, so we use `acl` instead to attach it to its target noun.

Because Pāli is originally an oral language, we are stripping out symbols and punctuation, meaning we do not use the `SYM` or `PUNCT` tags.

#### Determiners

If a pronoun such as *imaṃ* is used as a determiner (i.e. it gets deprel `det` pointing to a substantive) then it should get the UPOS `DET` instead of `PRON`.

#### Particles

The following particles get the `PART` `UPOS`:

* The quote-ending particle *ti*
* `LEMMA`: *iti*
* `DEPREL`: `mark` to the head of the quoted clause
* The preceding token should usually get `SpaceAfter=No` (as appropriate)
* The negation particle *na* / *n'*
* The lemma is *na*
* Mark it as `Polarity=Neg` in `FEATS`
* Give it the [advmod]() relation to the negated head.
* *api* / *pi*
* The lemma is *api*
* It should normally get the [discourse]() dependency relation when used rhetorically, but can get `advmod` if used conjunctively.
* *eva* and *kho*
* Normally get the `discourse` dependency, except in `fixed` phrases
* *kira*
* When used as "apparently" it should also get the `discourse` relation.
* Note that "*kira*" is not a particle but a `VERB` if it is the imperative 2nd sg or the reflexive aorist 1st sg of *kirati*.

---
**Instruction**: Specify any unused tags. Explain what words are tagged as PART. Describe how the AUX-VERB and DET-PRON distinctions are drawn, and specify whether there are (de)verbal forms tagged as ADJ, ADV or NOUN. Include links to language-specific tag definitions if any.

---

### Features

Some forms in Pāli are ambiguous. For example, a feminine noun of the `-ā` class with a `-āya` suffix might be Singular Instrumental, Ablative, Genitive, Dative, or Locative! When `Case` can be inferred from context, feel free to mark just the semantically correct case. If multiple parses are reasonable in a given context, list all the semantically plausible values in alphabetical order, separated by commas (e.g. if you have an *-āya* noun, and all but instrumental are reasonable parses, mark it `Case=Abl,Dat,Gen,Loc|Gender=Fem|Number=Sing`).

#### Verbs

All verb forms in Pāli should get the `VERB` `UPOS`.

##### Finite Verbs

Should have the `VerbForm=Fin` along with `Mood`, `Tense`, `Person`, `Number`, and `Voice`.

##### Absolutives

Absolutives (sometimes called "gerunds") formed in Pāli with *-tvā* / *-ya* get the `VerbForm=Conv` feature and are attached to the main verb via `advcl`.

##### Infinitives

Infinitives in Pāli end in *-tuṃ*, have the `VerbForm=Inf` and are typically `xcomp`.

##### Participles

Participles have the following `FEATS`:
* `VerbForm=Part`
* `Voice=Act` or `Voice=Pass`
* Full nominal agreement features (Case, Gender, Number)

---
**Instruction**: Describe inherent and inflectional features for major word classes (at least NOUN and VERB). Describe other noteworthy features. Include links to language-specific feature definitions if any.

---

## Syntax

Since all the participles have VERB in UPOS, they cannot be used as amod. They are either `acl` if they modify a noun or `advcl` if they modify a verb or a clause.

---
**Instruction**: Give criteria for identifying core arguments (subjects and objects), and describe the range of copula constructions in nonverbal clauses. List all subtype relations used. Include links to language-specific relations definitions if any.

---

## Treebanks

There is one Pāli UD treebank:

* [Pali-PaliCanon](https://github.com/UniversalDependencies/UD_Pali-PaliCanon)