https://github.com/acdh-oeaw/noske-ubi9

Building NoSkE for and with UBI9

https://github.com/acdh-oeaw/noske-ubi9

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    2 of 2 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.2%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

Building NoSkE for and with UBI9

Basic Info
  • Host: GitHub
  • Owner: acdh-oeaw
  • License: mit
  • Language: Python
  • Default Branch: main
  • Size: 1.26 MB
Statistics
  • Stars: 1
  • Watchers: 6
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Created over 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

Container image providing the NoSketchEngine

NoSketchEngine

NoSketch Engine is an open-source project combining Manatee and Bonito and Crystal into a powerful and free corpus management and search system. It does not provide however word sketches, thesaurus, keyword computation etc. like the commercial offering https://www.sketchengine.eu/ .

For further information, source and binary packages see https://nlp.fi.muni.cz/trac/noske

How to use

You need to provide the verticals for your corpus or corpora and configuration files. On startup the process for compiling the verticals into data files NoSkE uses is automatically triggered. The list of the corpora that should be compiled on startup is supplied using CORPLIST environment variable.

You usually mount them into the container like

powershell docker run --rm -it -v Q:\path\to\your\verticals:/var/lib/manatee/data/verticals -v Q:\path\to\your\configuration-files:/var/lib/manatee/registry -p 8080:8080 -e CORPLIST=my_corpus ghcr.io/acdh-oeaw/noske-ubi9/noske:5.71.15-2.225.8-2-open or on Linux/MacOS bash docker run --rm -it -v $(pwd)/verticals:/var/lib/manatee/data/verticals -v $(pwd)/configuration-files:/var/lib/manatee/registry -p 8080:8080 -e CORPLIST=my_corpus ghcr.io/acdh-oeaw/noske-ubi9/noske:5.71.15-2.225.8-2-open

On Kubernetes you can use a Persistent Volume Claim for the verticals and a config map for the configuration/registry for example. You probably need to populate the verticals using some service pod or initializer.

A corpus registry/configuration file could start with something like the following: ``` NAME "my_corpus"

Path where to store the index files

PATH "/var/lib/manatee/data/my_corpus"

Path where to find vertical files

VERTICAL "| ls /var/lib/manatee/data/verticals/my_corpus/*.txt | xargs cat" [... Attribute definitions etc. ] ```

Environment variables

List the configured corpora

  • CORPLIST: The list of corpora you configured and want to serve (space separated).

Logging:

If you want to define where to put log files you can set two environment variables * HTTPD_ERROR_LOGFILE: path to some log file * HTTPD_ACCESS_LOGFILE: path to some log file

Note that /dev/stdout and /dev/stderr do not work. Something similar to /dev/stdout is the default for the access log.

Authentication

If you need authentication you can configure BASIC authentication by creating first and then mounting a htpasswd file. These two environment variables need to be set: * HTPASSWD_FILE: where lighttpd will find that file. For example/var/lib/bonito/htpasswd * PASSWD_REALM: Something that identifies this instance (will show in the password prompt of browsers)

If you enable authentication then every user can have their own settings for the UI. Also this enables users to create their own private subcorpora in the UI. These have to be saved somewhere so two additional directories need to be mounted to the container:

powershell docker run --rm -it -v Q:\path\to\your\verticals:/var/lib/manatee/data/verticals ` -v Q:\path\to\your\configuration-files:/var/lib/manatee/registry ` -v Q:\path\to\your\htpasswd:/var/lib/bonito/htpasswd ` -v Q:\path\to\your\users-subcorpora:/var/lib/bonito/subcorp ` -v Q:\path\to\your\users-options:/var/lib/bonito/options ` -p 8080:8080 -e CORPLIST=my_corpus ` -e HTPASSWD_FILE=/var/lib/bonito/htpasswd -e PASSWD_REALM=my_noske ` ghcr.io/acdh-oeaw/noske-ubi9/noske:5.71.15-2.225.8-2-open or on Linux/MacOS bash docker run --rm -it -v $(pwd)/verticals:/var/lib/manatee/data/verticals \ -v $(pwd)/configuration-files:/var/lib/manatee/registry \ -v $(pwd)/htpasswd:/var/lib/bonito/htpasswd \ -v $(pwd)/users-subcorpora:/var/lib/bonito/subcorp \ -v $(pwd)/users-options:/var/lib/bonito/options \ -p 8080:8080 -e CORPLIST=my_corpus \ -e HTPASSWD_FILE=/var/lib/bonito/htpasswd -e PASSWD_REALM=my_noske \ ghcr.io/acdh-oeaw/noske-ubi9/noske:5.71.15-2.225.8-2-open

CORS

Bonito now is an API only. This container is set up in a way that favours API access over CORS security. It mirrors every Origin request header back as Access-Control-Allow-Origin header in the response.

Similar Projects

A container based on Debian with NoSkE built from its source is available from ELTE-DH/NoSketch-Engine-Docker

Credits

RYCHLÝ, Pavel. Manatee/Bonito-A Modular Corpus Manager. In: RASLAN. 2007. p. 65-70.

KILGARRIFF, Adam, et al. The Sketch Engine: Ten Years on. Lexicography, 2014, 1.1: 7-36.

We would like to thank everyone that made these remarkable piece of software possible.

Sources

The sources used to build this container are available in the https://github.com/acdh-oeaw/noske-ubi9 repository.

The Dockerfile just automates installing dependencies, downloading of the official SRC rpms and rebuilding it in a EL 9 environment (Rocky 9 and UBI9).

Owner

  • Name: Austrian Centre for Digital Humanities & Cultural Heritage
  • Login: acdh-oeaw
  • Kind: organization
  • Email: acdh@oeaw.ac.at
  • Location: Vienna, Austria

GitHub Events

Total
  • Release event: 1
  • Push event: 5
  • Create event: 2
Last Year
  • Release event: 1
  • Push event: 5
  • Create event: 2

Committers

Last synced: about 1 year ago

All Time
  • Total Commits: 22
  • Total Committers: 2
  • Avg Commits per committer: 11.0
  • Development Distribution Score (DDS): 0.136
Past Year
  • Commits: 7
  • Committers: 2
  • Avg Commits per committer: 3.5
  • Development Distribution Score (DDS): 0.143
Top Committers
Name Email Commits
Omar Siam O****m@o****t 19
Pirker, Hannes h****r@o****t 3
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: about 1 year ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.github/workflows/starter.yaml actions
Dockerfile docker
  • registry.access.redhat.com/ubi9 latest build
  • registry.access.redhat.com/ubi9-minimal latest build
openapi/package-lock.json npm
  • swagger-ui-dist 5.9.1
openapi/package.json npm
  • swagger-ui-dist ^5.9.1
openapi/environment.yaml conda