{"id":18455615,"url":"https://github.com/memowe/lemmatchers","last_synced_at":"2025-08-08T17:45:13.722Z","repository":{"id":205039789,"uuid":"702395774","full_name":"memowe/lemmatchers","owner":"memowe","description":"Tag sequences domain specific language with CLI and web interface for CSV data","archived":false,"fork":false,"pushed_at":"2023-11-02T07:03:12.000Z","size":358,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-02-16T14:56:56.711Z","etag":null,"topics":["csv","domain-specific-language","lemmatization","linguistics"],"latest_commit_sha":null,"homepage":"http://mirko.westermeier.de/lemmatchers/","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/memowe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-09T08:39:09.000Z","updated_at":"2023-11-02T07:04:09.000Z","dependencies_parsed_at":null,"dependency_job_id":"fdd6e01b-1e3e-4998-bf13-7ea9be0b2ceb","html_url":"https://github.com/memowe/lemmatchers","commit_stats":null,"previous_names":["memowe/lemmatchers"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memowe%2Flemmatchers","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memowe%2Flemmatchers/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memowe%2Flemmatchers/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/memowe%2Flemmatchers/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/memowe","download_url":"https://codeload.github.com/memowe/lemmatchers/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250285719,"owners_count":21405297,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csv","domain-specific-language","lemmatization","linguistics"],"created_at":"2024-11-06T08:08:34.779Z","updated_at":"2025-04-22T17:12:51.586Z","avatar_url":"https://github.com/memowe.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# *Lemma*tchers\n\n**Tag sequences domain specific language with CLI and web interface for CSV data**\n\n[![build, test, docs](https://github.com/memowe/lemmatchers/actions/workflows/haskell-ci.yml/badge.svg)](https://github.com/memowe/lemmatchers/actions/workflows/haskell-ci.yml)\n[![API docs](https://img.shields.io/badge/API_docs-Haddock-mediumorchid?logo=bookstack\u0026logoColor=lightgrey\u0026labelColor=333)](https://mirko.westermeier.de/lemmatchers/)\n\n## Requirements\n\n- Standard Haskell environment (GHC, cabal)\n\n## Build \u0026 Run\n\nThis package uses standard cabal procedures like these to build, test and run the executables as well as a `ghci` with the `Lemmatchers` library pre-loaded:\n\n```\n$ cabal build --enable-tests\n$ cabal test --test-show-details=direct\n$ cabal run -v0 lemmatchers-cli matchers_file \u003c input.csv \u003e results.csv\n$ cabal run -v0 lemmatchers-web\n$ cabal repl\n```\n\nbut there's also a [Makefile](Makefile) to make it easy to compile the programs `lemmatchers-cli` and `lemmatchers-web` as executable files in the `compiled` directory with `make install`:\n\nThe command line interface expects a matchers file as command line argument, reads CSV from STDIN and writes CSV to STDOUT:\n\n```\n$ compiled/lemmatchers-cli data/matchers.txt \u003c data/data.csv \u003e results.csv\n```\n\nTo have the web interface at `http://localhost:4217/`, just call the web backend without arguments:\n\n```\n$ compiled/lemmatchers-web\nServing Lemmatchers from port 4217...\n```\n\n## Dockerized web interface\n\nThis repository contains a Dockerfile, so you can built and run a container with standard docker procedures:\n\n```\n$ docker build -t lemmatchers-web .\n$ docker run -dp 8080:4217 lemmatchers-web\n```\n\nto run the web interface at `http://localhost:8080`.\n\n## Matcher\n\nDie Matcher sind mit `---` und Leerzeilen getrennt und können mehrere Pattern enthalten:\n\n```\nmatcher Two Tier\nPN N DET PN\n\n---\n\nmatcher Three Tier\nPN N DET PN N LN\n\n---\n\nmatcher Probleme\n(N PN) CNJ\nPN -(DN N) * -PN\n```\n\nDiese Matcher \"treffen\" genau die dort durch Leerzeichen getrennten Lemmata in der definierten Reihenfolge. Jede durch Leerzeichen getrennte Stelle entspricht einem Lemma, es kann nichts übersprungen werden. Es sind jedoch äußerst flexible Prädikate für einzelne Lemmata möglich:\n\n- `CNJ` trifft nur den Tag `CNJ`.\n- `-PN` trifft alles bis auf den Tag `PN`.\n- `(N PN)` trifft die Tags `N` **oder** `PN`. (Beliebige Länge erlaubt.)\n- `-(DN N)` trifft alle Tags, die **nicht** `DN` **und nicht** `N` sind. (Beliebige Länge erlaubt.)\n- `*` trifft alle Tags.\n\nEine Analyse der Beispieldaten hat folgende erlaubte Tags ergeben:\n\n```haskell\ndata Tag\n  = AJ | AV | CNJ | DET | DN | DP | EN | GN | IP | J | LN\n  | MN | MOD | N | NA | NU | PN | PRP | QN | QP | REL | RN\n  | SN | TN | V | WN | XP\n```\n\n## Contributors and License\n\n\u0026copy; 2023 Mirko Westermeier  \nService Center for Digital Humanities  \nUniversity of Münster\n\nReleased under the MIT license (see LICENSE for details).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemowe%2Flemmatchers","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmemowe%2Flemmatchers","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmemowe%2Flemmatchers/lists"}