apertium / apertium/lexd

Block-Negative Filter

Open
#36 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
15
Forks
3
PR merge metrics
No merged PRs in 30d

Description

Yet another idea to make filters less annoying (which hopefully makes more sense than #21):

We keep ending up with constructions like
```
PATTERNS
Verbs

PATTERN Verbs
( V-Stems(1) [:] V-Stems(2) [:] V-Pres )[^[Var,Ver,Vir]]

LEXICON V-Pres
:>o[Var]
:>o[Ver]
:>o[Vir]
:>as[Var]
:>es[Ver]
:>es[Vir]
:>a[Var]
:>e[Ver]
:>e[Vir]

LEXICON V-Stems(2)
preguntar:pregunt[Var] :[Var] # "ask"
deber:deb[Ver] :[Ver] # "owe"
escribir:escrib[Vir] :[Vir] # "write"
```

Where the inflections get duplicated in order for the xor filter to work (the stems get duplicated too, but that's far rarer).

My idea is to add a filter which cancels negative tags, so that `( A B[~[x,y]] ) = ( A B )` but `( A B[~[x,y]] )[-x,-y,-z] = ( A[-x,-y,-z] B[-z] )`

Given such a filter, the above example could become:

```
PATTERNS
Verbs

PATTERN Verbs
( V-Stems(1) [:] V-Stems(2) [:] V-Pres[~[Var,Ver,Vir]] )[^[Var,Ver,Vir]]

LEXICON V-Pres
:>o[Var,Ver,Vir]
:>as[Var]
:>es[Ver,Vir]
:>a[Var]
:>e[Ver,Vir]

LEXICON V-Stems(2)
preguntar:pregunt[Var] :[Var] # "ask"
deber:deb[Ver] :[Ver] # "owe"
escribir:escrib[Vir] :[Vir] # "write"
```

@jonorthwash @nlhowell thoughts?

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.