Git Product home page Git Product logo

vocabseditor's Introduction

Vocabseditor

Publish and Deploy flake8 Lint Test

About

The purpose of the Vocabseditor is to provide a service for collaborative work on controlled vocabularies development.

The editor follows SKOS data model for the main elements of a vocabulary. The Dublin core schema is used to capture the metadata (such as date created, date modified, creator, contributor, source and other) about each element. Each concept scheme can be downloaded in RDF/XML and Turtle format as well as each individual concept.

The user management system allows a user to share a concept scheme she/he created with other users (called 'curators') to create new, edit and delete concepts and collections within this concept scheme. Each user can find a summary of their latest activity on user's page.

Technical setup

The application is implemented using Python and Django. It uses modules developed within DjangoBaseProject. It also provides REST API implemented with Django Rest Framework.

Install

  1. Clone the repo

  2. Create and activate virtual environment, run pip install -r requirements.txt

  3. Evaluate and adapt environement variables used in vocabseditor/settings.py

  4. Run

    python manage.py makemigrations

    python manage.py migrate

    python manage.py runserver

  5. Development server runs at localhost:8000

  6. Create admin user

    python manage.py createsuperuser

Usage

Import via cmd-line

Import an existing skos vocabulary (accepted formats are ttl, rdf): specify the file name, main language of the vocabulary, file format, your username

Run e.g.

python manage.py import_skos_vocab your_vocabulary.ttl en ttl your_username

Export via cmd-line

Run e.g.

  • python manage.py dl_scheme --scheme-id 5 --filename hansi --format rdf

Serializes all SkosConcepts related to SkosConceptScheme with ID 5 as RDF/XML to a file named hansi.rdf

  • python manage.py dl_scheme --scheme-id 5

Serializes all SkosConcepts related to SkosConceptScheme with ID 5 as turtle to a file named dump.ttl

More information on how to use the tool in the Vocabs editor Wiki.

Testing

Tests are located in /tests directory in an individual app folder.

Run tests for the whole project:

python manage.py test

Run tests with coverage:

coverage run manage.py test

coverage html

Docker

At the ACDH-CH we use a centralized database-server. So instead of spawning a database for each service our services are talking to a database on this centralized db-server. This setup is reflected in the dockerized setting as well, meaning it expects an already existing database (either on your host, e.g. accessible via 'localhost' or some remote one)

building the image

  • docker build -t vocabseditor:latest .
  • docker build -t vocabseditor:latest --no-cache .

using published image

Docker images are publshed via GitHubs container registry: https://github.com/acdh-oeaw/vocabseditor/pkgs/container/vocabseditor

To use them run e.g. docker run -it -p 8020:8020 --name vocabseditor --env-file .env_local_docker ghcr.io/acdh-oeaw/vocabseditor:lates

running the image

To run the image you should provide an .env file to pass in needed environment variables; see example below:

DB_NAME=vocabs
DB_USER=postgres
DB_PASSWORD=postgres
DB_HOST=localhost
PROJECT_NAME=vocabseditor
SECRET_KEY=randomstring
DEBUG=True
DJANGO_SUPERUSER_USERNAME=user_name
DJANGO_SUPERUSER_PASSWORD=user_pw
VOCABS_DEFAULT_PEFIX=myvocabs
VOCABS_DEFAULT_PEFIX=de
REDMINE_ID=12345
MIGRATE=yes

docker run -it -p 8020:8020 --rm --name vocabseditor --env-file .env vocabseditor

docker-compose (using external database)

docker-compose up

docker-compose-db (spawns own database)

docker-compose -f docker-compose-db.yml up

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.