Block-Negative Filter
- 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.