https://github.com/dasch-swiss/dsp-api

DaSCH Service Platform API

https://github.com/dasch-swiss/dsp-api

Science Score: 26.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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (11.7%) to scientific vocabulary

Keywords

humanities ontologies rdf triplestore
Last synced: 5 months ago · JSON representation

Repository

DaSCH Service Platform API

Basic Info
Statistics
  • Stars: 75
  • Watchers: 15
  • Forks: 18
  • Open Issues: 204
  • Releases: 0
Topics
humanities ontologies rdf triplestore
Created about 10 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog License Codeowners Agents

README.md

DSP-API — DaSCH Service Platform API

Github Docker CI Codacy Badge Codacy Badge

DSP is a server application for storing, sharing, and working with primary sources and data in the humanities.

It is developed by the Swiss National Data and Service Center for the Humanities at the University of Basel, and is supported by the Swiss Academy of Humanities and Social Sciences and the Swiss National Science Foundation.

DSP-API is free software, released under the Apache License, Version 2.0.

Features

  • Stores humanities data as industry-standard RDF graphs, plus files for binary data such as digitized primary sources.
    • Designed to work with any standards-compliant RDF triplestore. Tested with Jena Fuseki.
  • Based on OWL ontologies that express abstract, cross-disciplinary commonalities in the structure and semantics of research data.
  • Offers a generic HTTP-based API, implemented in Scala, for querying, annotating, and linking together heterogeneous data in a unified way.
    • Handles authentication and authorization.
    • Provides automatic versioning of data.
  • Uses Sipi, a high-performance media server implemented in C++.
  • Designed to be be used with DSP-APP, a general-purpose, browser-based virtual research environment, as well as with custom user interfaces.

Requirements

For developing and testing DSP-API

Each developer machine should have the following prerequisites installed:

JDK Temurin 21

Follow the steps described on https://sdkman.io/ to install SDKMAN. Then, follow these steps:

shell sdk ls java # choose the latest version of Temurin 21 sdk install java 21.x.y-tem

SDKMAN will take care of the environment variable JAVA_HOME.

EditorConfig

This repository contains a root-level .editorconfig to keep Markdown and YAML formatting consistent (e.g., 4-space list indents in Markdown, 2-space YAML). Most editors support EditorConfig natively or via a plugin; consider enabling it and format-on-save for consistent diffs.

For building the documentation

See docs/Readme.md.

Try it out

Run DSP-API

Create a test repository, load some test data into the triplestore, and start DSP-API:

shell just stack-init-test

Open http://localhost:4200/ in a web browser.

On first installation, errors similar to the following can come up:

text error decoding 'Volumes[0]': invalid spec: :/fuseki:delegated: empty section between colons

To solve this, you need to deactivate Docker Compose V2. This can be done in Docker Desktop either by unchecking the "Use Docker Compose V2" flag under "Preferences > General" or by running

text docker-compose disable-v2

Shut down DSP-API:

shell just stack-stop

Run the automated tests

Automated tests are split into different modules: fast unit tests, integration tests (service/repo/Sipi tests using Testcontainers), and end-to-end HTTP API tests.

Run unit tests:

shell sbt test

Run integration tests:

shell make test-it

Run end-to-end tests:

shell make test-e2e

Run all tests:

shell make test-all

Release Versioning Convention

The DSP-API release versioning follows the Semantic Versioning convention:

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards-compatible manner, and
  • PATCH version when you make backwards-compatible bug fixes.

Additionally, we will also increment the MAJOR version in the case when any kind of changes to existing data would be necessary, e.g., any changes to the knora-base ontology which are not backwards compatible.

Owner

  • Name: DaSCH - Swiss National Data and Service Center for the Humanities
  • Login: dasch-swiss
  • Kind: organization
  • Email: info@dasch.swiss
  • Location: Switzerland

Development repositories of the DaSCH.

Issues and Pull Requests

Last synced: 5 months ago

All Time
  • Total issues: 85
  • Total pull requests: 707
  • Average time to close issues: about 7 years
  • Average time to close pull requests: 6 days
  • Total issue authors: 9
  • Total pull request authors: 10
  • Average comments per issue: 3.21
  • Average comments per pull request: 0.8
  • Merged pull requests: 508
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 333
  • Average time to close issues: 3 days
  • Average time to close pull requests: 3 days
  • Issue authors: 2
  • Pull request authors: 8
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.54
  • Merged pull requests: 229
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • tobiasschweizer (29)
  • benjamingeer (27)
  • mrivoal (8)
  • subotic (7)
  • seakayone (4)
  • jroland01 (4)
  • loicjaouen (4)
  • mpro7 (1)
  • daschbot (1)
Pull Request Authors
  • seakayone (331)
  • daschbot (143)
  • BalduinLandolt (100)
  • mpro7 (53)
  • siers (49)
  • subotic (16)
  • jnussbaum (11)
  • Nora-Olivia-Ammann (2)
  • SepidehAlassi (1)
  • alexellis (1)
Top Labels
Issue Labels
enhancement (29) question (19) bug (16) clientapi (14) API/V1 (6) user requirement (6) Sipi (3) API/Admin (2) API/V2 (2) bulk-import (2) autorelease: pending (1) documentation (1) chore (1) standoff (1) breaking (1) ontology (1)
Pull Request Labels
autorelease: pending (46) do-not-merge (2) STALE-do-not-merge (2) breaking (1) API/V1 (1) API/V2 (1) v15 (1)

Dependencies

.github/actions/preparation/action.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
.github/workflows/build-and-test.yml actions
  • actions/checkout v3 composite
  • codacy/codacy-coverage-reporter-action v1 composite
  • codecov/codecov-action v3 composite
  • dasch-swiss/dsp-api/.github/actions/preparation main composite
  • dorny/test-reporter v1 composite
  • jwalton/gh-docker-logs v1 composite
.github/workflows/create-release.yml actions
  • google-github-actions/release-please-action v3 composite
.github/workflows/dependency-graph.yml actions
  • actions/checkout v3 composite
  • scalacenter/sbt-dependency-submission v2 composite
.github/workflows/publish-from-branch.yml actions
  • dasch-swiss/dsp-api/.github/actions/preparation main composite
  • docker/setup-buildx-action v2 composite
.github/workflows/publish-release.yml actions
  • actions/download-artifact v3 composite
  • actions/upload-artifact v3 composite
  • dasch-swiss/dsp-api/.github/actions/preparation main composite
  • docker/setup-buildx-action v2 composite
  • lakto/google-chat-action main composite
  • svenstaro/upload-release-action v2 composite
.github/workflows/scala-steward.yml actions
  • actions/setup-java v3 composite
  • scala-steward-org/scala-steward-action v2 composite
docker-compose.yml docker
  • daschswiss/apache-jena-fuseki 2.0.11
  • daschswiss/dsp-app latest
  • daschswiss/knora-api latest
  • daschswiss/knora-sipi latest
docs/requirements.txt pypi
  • mike *
  • mkdocs *
  • mkdocs-git-revision-date-plugin *
  • mkdocs-include-markdown-plugin *
  • mkdocs-material *
  • mkdocs-monorepo-plugin *