Science Score: 62.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found 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
8 of 13 committers (61.5%) from academic institutions -
✓Institutional organization owner
Organization kit-data-manager has institutional domain (www.scc.kit.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.0%) to scientific vocabulary
Keywords
Keywords from Contributors
Repository
EVOKS (Editor for Vocabularies to Know Semantics)
Basic Info
Statistics
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 114
- Releases: 2
Topics
Metadata Files
README.md
EVOKS repository
EVOKS (Editor for Vocabularies to Know Semantics) is a software for creating and publishing SKOS vocabularies and thesauri. It allows you to: - create a SKOS vocabulary from scratch - import SKOS vocabularies in RDF/XML or Turtle format - edit SKOS vocabularies without using its textual representation - work collaboratively - publish the vocabulary with a single click in the vocabulary browser SKOSMOS
Note
Caution Use of this software in a production environment or with external access is at your own risk. No warranties, guarantees, or liabilities are provided, and the software is offered as-is.
Know issues
- See github issues of this repo for all known issues.
Installation
The main way to install EVOKS and its depending services is to build and run the docker images locally using docker compose.
Prerequisites
- Unix-based system (e.g. Linux, MacOS, Windows using WSL (untested))
- Installation of most recent versions of
Installation procedure:
Clone this repository:
user@localhost:/home/user/$ git clone https://github.com/kit-data-manager/EVOKS.git Clone to 'EVOKS' [...] user@localhost:/home/user/$ cd EVOKS user@localhost:/home/user/EVOKS$Copy .example.env and rename to .env
Open .env and change the variables if desired, see Overview of variables.
Caution Change of Fuseki and Postgres credentials is strongly recommended, especially if it will be accessible from outside
Open evoks/evoks/settings.py and change the SECRET_KEY. Use of a key generator like https://djecrety.ir/ is strongly recommended.
Run
docker compose buildRun
docker compose upOpen PUBLICURL:PROXYPORT/EVOKS_URL (as set in .env), with default values http://localhost:9000/ in your browser (opening in Firefox not working currently)
To open the vocabulary browser Skosmos, open PUBLICURL:PROXYPORT/skosmos-dev or PUBLICURL:PROXYPORT/skosmos-live
To stop the services, run
docker compose downand to restartdocker compose up
Variables
| VAR NAME | Default value | Description | Change recommended | | |-------------------|--------------------|----------------------------------------------------------------------------------------------------------------------------|--------------------|---| | INSTANCENAME | defaultinstance | Prefix of docker container names | no | | | PROXYPORT | 9000 | Port where the proxy is located | no | | | PUBLICURL | localhost | (public) base URL under which the services will be reached ("http://" resp. "https://" is added automatically) | no | | | EVOKSMAIL | example@example.de | Mailaddress for automatically sending notifications to the instance admin (typically the person who installed the service) | no | | | FUSEKIPASSWORD | insecurechangeme | Default fuseki password, change especially if not used locally | yes | | | POSTGRESUSER | postgres | Default postgres username, change especially if not used locally | yes | | | POSTGRESPASSWORD | insecurechangeme | Default postgres password, change especially if not used locally | yes | | | EVOKSURL | / | path directory under which the web app (evoks) will be reached | no | | | POSTGRESPORT | 8005 | (Developers only) Port of Postgres DB, service not forwarded to host if unset | no | | | FUSEKIDEVPORT | 8003 | (Developers only) Port of Fuseki Triple Store, service not forwarded directly to host if unset | no | | | FUSEKILIVEPORT | 8004 | (Developers only) Port of Fuseki Triple Store (of published vocabularies), service not forwarded directly to host if unset | no | | | EVOKSPORT | 8000 | (Developers only) Port of EVOKS, service not forwarded directly to host if unset | no | | | SKOSMOSDEVPORT | 8001 | (Developers only) Port of Skosmos for vocabulary development, service not forwarded directly to host if unset | no | | | SKOSMOSLIVE_PORT | 8002 | (Developers only) Port of Skosmos for published vocabularies, , service not forwarded directly to host if unset | no | |
Create an administrator
You need to create an administrator account for EVOKS by performing the following steps:
- Run
docker ps, look for<container_prefix>_web(or...web_1) container - Run
docker exec -it <container_prefix>_web bash(or...web1accordingly) - Now you are within the container. Run:
python evoks/manage.py createsuperuser - Follow instructions to create a superuser. You can choose whatever username, password and (arbitary) mailaddress you like
- Log into EVOKS using the email as username and the chosen password
Note on running the service in production state (e.g. available from the www)
Apply the Django deployment checklist.
Most of it is already implemented, you should at least do the following:
- Setup https using the provided reverse proxy nginx
- Log into the web container and run python evoks/manage.py check --deploy and check & solve all issues
- Make sure to set / change all variables in .env where it is recommended
Further settings (not needed for initial setup)
Configure Mail Server
- Open .env file
- Fill out
EMAIL_HOST_USER=your-email EMAIL_HOST_PASSWORD=your-passwordin this file. Caution: Be aware that the password is stored as plain text! - Open
evoks/evoks/settings.pyand configure the SMTP server. E.g. for gmailEMAIL_HOST = 'smtp.gmail.com' EMAIL_PORT = 587 EMAIL_USE_TLS = TRUE
Most of the email providers (e.g. Gmail) do not accept Less Secure Apps by default, so you have to accept Less Secure Apps in the settings of the email you are using.
Optional: Monitoring
You can optionally enable monitoring to be able to collect some insights on the number of stored vocabularies and terms, as well as the number of unique and total accesses. These can be collected with Prometheus and used with your monitoring setup.
To detect unique accesses, a hashed version of the users IP will be stored in memory (non-persistent) if monitoring is explicitly activated. Apart from the hashed IP, no sensitive user information is recorded. You can collect metrics yourself from the /metrics endpoint. Metrics will never be sent anywhere.
The metrics endpoint is secured with HTTP Basic Authentication, the credentials can be set using environment variables (see the table below).
The following environment variables are used to configure monitoring. Note that the monitoring endpoint is disabled by default
and must be activated by setting METRICS_ENABLED=true in your environment variables.
| VAR NAME | Default value | Description | Change recommended | |
|-------------------|--------------------|-----------------------------------------------------------|--------------------|---|
| METRICSENABLED | false | Set to true to enable the metrics endpoint | only if needed | |
| METRICSUSER | metrics | Username for metrics endpoint (HTTP Basic Authentication) | yes | |
| METRICS_PASS | metricsPass | Password for metrics endpoint (HTTP Basic Authentication) | yes | |
For Developers
Bypass proxy setup for direct access to services and enable Django debug mode:
- Open .env file
- Adjust all variables marked as "(Developers only)" in the Overview of variables.
docker compose -f docker-compose.yml -f docker-compose.dev.yml up
Execution of Tests (only for developers needed)
Run the tests:
docker compose -f docker-compose.yml -f docker-compose.test.yml up --abort-on-container-exit --exit-code-from web
Run tests within container (e.g. for test bug fixing):
Log into web container, cd to evoks, execute python manage.py test tests/model/ tests/migration/ tests/skosmos/ tests/fuseki/ tests/views/ tests/evoks
License
EVOKS is licensed under the Apache License, Version 2.0. License owner: Karlsruhe Institute of Technology (KIT)
Acknowledgement Development of this software product was funded by the German Research Foundation (DFG)—CRC 980 Episteme in Motion, Project-ID 191249397, and by the research program “Engineering Digital Futures” of the Helmholtz Association of German Research Centers.
Owner
- Name: KIT Data Manager
- Login: kit-data-manager
- Kind: organization
- Email: webmaster@datamanger.kit.edu
- Location: Karlsruhe, Germany
- Website: https://www.scc.kit.edu/ueberuns/dem.php
- Repositories: 56
- Profile: https://github.com/kit-data-manager
Generic software and recommendations for FAIR research data management by DEM.
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Kraus" given-names: "Felix" affiliation: Karlsruhe Institute of Technology email: felix.kraus@kit.edu orcid: "https://orcid.org/0000-0002-2102-4170" title: "EVOKS" type: software abstract: EVOKS allows to create, import, edit, curate and publish controlled vocabularies. It uses the SKOS data model and supports RDF/XML and JSON-LD. url: "https://github.com/kit-data-manager/EVOKS" repository-code: "https://github.com/kit-data-manager/EVOKS" license: Apache-2.0
GitHub Events
Total
- Issues event: 33
- Watch event: 3
- Delete event: 22
- Issue comment event: 100
- Push event: 61
- Pull request review event: 64
- Pull request review comment event: 53
- Pull request event: 82
- Fork event: 1
- Create event: 25
Last Year
- Issues event: 33
- Watch event: 3
- Delete event: 22
- Issue comment event: 100
- Push event: 61
- Pull request review event: 64
- Pull request review comment event: 53
- Pull request event: 82
- Fork event: 1
- Create event: 25
Committers
Last synced: 8 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Felix Ernst (macbook) | f****t@k****u | 160 |
| evoksontologe | 8****e | 42 |
| Jonas Scholz | j****z@b****e | 40 |
| felix@vocabulary.datamanger.kit.edu | f****x@v****u | 29 |
| Jan | j****y@g****e | 25 |
| umut ulaş cin | u****3@g****m | 17 |
| dependabot[bot] | 4****] | 14 |
| Jonas Scholz | j****2@s****u | 12 |
| Klara Eckhardt | k****t@s****u | 10 |
| ufrum | u****m@s****u | 10 |
| uhzsg | u****g@s****u | 6 |
| uvsfa | u****a@s****u | 3 |
| danah.tonne | d****e@k****u | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 59
- Total pull requests: 118
- Average time to close issues: 5 months
- Average time to close pull requests: 6 days
- Total issue authors: 6
- Total pull request authors: 4
- Average comments per issue: 0.54
- Average comments per pull request: 1.19
- Merged pull requests: 91
- Bot issues: 0
- Bot pull requests: 20
Past Year
- Issues: 29
- Pull requests: 77
- Average time to close issues: 2 months
- Average time to close pull requests: 9 days
- Issue authors: 4
- Pull request authors: 4
- Average comments per issue: 0.34
- Average comments per pull request: 1.6
- Merged pull requests: 59
- Bot issues: 0
- Bot pull requests: 8
Top Authors
Issue Authors
- FelixFrizzy (48)
- philipphegel (12)
- ToegelP (2)
- lillyosburg (2)
- gulzaure (1)
- jschnasse (1)
Pull Request Authors
- FelixFrizzy (152)
- dependabot[bot] (40)
- craquet (2)
- VolkerHartmann (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v3 composite
- actions/configure-pages v3 composite
- actions/deploy-pages v2 composite
- actions/upload-pages-artifact v1 composite
- ruby/setup-ruby v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v4.0.1 composite
- docker/setup-buildx-action v1 composite
- docker 20.10.7 docker
- python 3.9.2-slim-buster build
- postgres latest
- secoresearch/fuseki latest
- postgres latest
- secoresearch/fuseki latest
- 444 dependencies
- @tailwindcss/aspect-ratio ^0.2.0 development
- @tailwindcss/forms ^0.3.2 development
- @tailwindcss/line-clamp ^0.2.0 development
- @tailwindcss/typography ^0.4.0 development
- autoprefixer ^10.2.5 development
- browser-sync ^2.26.14 development
- clean-css-cli ^5.2.2 development
- cross-env ^7.0.3 development
- nodemon ^2.0.7 development
- npm-run-all ^4.1.5 development
- postcss ^8.2.9 development
- postcss-cli ^8.3.1 development
- postcss-import ^14.0.1 development
- postcss-nested ^5.0.5 development
- postcss-simple-vars ^6.0.3 development
- rimraf ^3.0.2 development
- tailwindcss ^2.2 development
- Django >=3.0,<4.0
- coverage *
- django-environ *
- django-stubs *
- django-tailwind *
- langcodes *
- language_data *
- psycopg2-binary >=2.8
- rdflib *
- rdflib-jsonld *
- requests *
- skosify *
- sparqlwrapper *
- sty *
- unidecode *
- jekyll ~> 4.3.3
- just-the-docs = 0.8.2
- addressable 2.8.6
- bundler 2.5.9
- colorator 1.1.0
- concurrent-ruby 1.2.3
- em-websocket 0.5.3
- eventmachine 1.2.7
- ffi 1.16.3
- forwardable-extended 2.6.0
- google-protobuf 4.26.1
- http_parser.rb 0.8.0
- i18n 1.14.4
- jekyll 4.3.3
- jekyll-include-cache 0.2.1
- jekyll-sass-converter 3.0.0
- jekyll-seo-tag 2.8.0
- jekyll-watch 2.2.1
- just-the-docs 0.8.2
- kramdown 2.4.0
- kramdown-parser-gfm 1.1.0
- liquid 4.0.4
- listen 3.9.0
- mercenary 0.4.0
- pathutil 0.16.2
- public_suffix 5.0.5
- rake 13.2.1
- rb-fsevent 0.11.2
- rb-inotify 0.10.1
- rexml 3.2.6
- rouge 4.2.1
- safe_yaml 1.0.5
- sass-embedded 1.75.0
- terminal-table 3.0.2
- unicode-display_width 2.5.0
- webrick 1.8.1