dataspecer

A tool for management of semantic data specifications

https://github.com/dataspecer/dataspecer

Science Score: 44.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
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

A tool for management of semantic data specifications

Basic Info
  • Host: GitHub
  • Owner: dataspecer
  • License: mit
  • Language: TypeScript
  • Default Branch: main
  • Homepage: https://dataspecer.com
  • Size: 27.9 MB
Statistics
  • Stars: 33
  • Watchers: 4
  • Forks: 11
  • Open Issues: 229
  • Releases: 0
Created over 5 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

Dataspecer GitHub last commit GitHub contributors test dataspecer.com

A set of tools for effortless management and creation of data specifications.

Check our website dataspecer.com for more information.

Docker container

You can easily run the whole application in a Docker container.

If you just want to try it out for a while and don't care where the data is stored, use following command and then go open http://localhost:3000/.

bash docker run -p3000:80 ghcr.io/dataspecer/ws


  • The container exposes port 80.
  • Mount /usr/src/app/database directory to your local directory that will be filled with database.db file and stores directory. If the directory is empty, files would be created. You need to mkdir the mounted directory with the correct user.
  • If you want to run the Dataspecer under specific user, use --user with desired UID.
  • You can specify base URL using BASE_URL env if you are hosting Dataspecer from a sub directory. If you are using reverse proxy, it is expected that the base path is preserved. (For example, https://example.com/dataspecer-instance-1/schema should point to http://localhost:3001/dataspecer-instance-1/schema)

Use the following docker run command: bash docker run -it --name dataspecer -eBASE_URL=http://localhost/ --user "1000:1000" -v ./database:/usr/src/app/database -p80:80 ghcr.io/dataspecer/ws

Or use following docker-compose file yaml services: dataspecer: image: ghcr.io/dataspecer/ws environment: BASE_URL: http://localhost user: "1000:1000" ports: - 80:80 # Change the first number to your desired port volumes: - ./database:/usr/src/app/database

Tags

  • latest (default) follows the stable branch
  • branch-main follows the main branch with the latest updates. May contain unstable features!

Documentation

Check what to learn - a simple guide on how to start working on the project.

How to build locally

This repository is a monorepo - consisting of several packages, applications, and services that are build and developed separately, but depends on each other.

For more information about individual packages, applications, and services, please see the given directory. Each contains a README.md file with build instructions and additional documentation.

  • applications - web clients
  • packages - core and helper packages and individual generators
  • services - backend service (used by both web and cli clients)

The monorepo is managed by npm workspaces and Turborepo. Please see the individual packages for their build instructions.

You can check the Cloudflare's build script that deploys all applications. We use Cloudflare Pages for that. Any commit pushed to GitHub into the repository is automatically built, and changes are deployed to the internet. Commits to other branches are also deployed as previews.

In general

Your node -v should be at least v22.

After cloning the repository you should create local config files. Please see individual applications or packages what to do.

Then - Run npm install to install all external packages (including TypeScript for typechecking and Turborepo for building) and link all dependencies between local packages. - Run npm run build to build everything. This will execute turbo build under the hood. This will build packages, which are necessary for the development of other packages and applications; and it also build applications themselves, which is not necessary for development (see the next step). (If you want to build only packages necessary for a specific package or application, use npx turbo run build --filter=<package-name>. Obtain the name of the package from package.json file.)

To develop a concrete package or application, there is usually an npm run dev script that will run live server, which updates everything. See individual packages for more details.

Acknowledgments

EOSC CZ Logo


This project output was developed with financial contributions from the EOSC CZ initiative through the project National Repository Platform for Research Data (CZ.02.01.01/00/23_014/0008787) founded by Programme Johannes Amos Comenius (P JAC) of the Ministry of Education, Youth and Sports of the Czech Republic (MEYS).


EU and MŠMT Logos

Owner

  • Name: Dataspecer
  • Login: dataspecer
  • Kind: organization
  • Location: Czech Republic

Tools for data specification modeling, management, and evolution.

Citation (CITATION.cff)

cff-version: 1.2.0
title: Dataspecer
message: 'If you use this software, please cite it as below.'
type: software
authors:
  - family-names: Stenchlák
    given-names: Štěpán
    orcid: 'https://orcid.org/0000-0003-4843-2470'
  - family-names: Nečaský
    given-names: Martin
    orcid: 'https://orcid.org/0000-0002-5186-7734'
  - family-names: Škoda
    given-names: Petr
    orcid: 'https://orcid.org/0000-0002-2732-9370'
  - family-names: Klímek
    given-names: Jakub
    orcid: 'https://orcid.org/0000-0001-7234-3051'
  - given-names: Marek
    family-names: Čermák
  - given-names: Jan
    family-names: Janda
  - given-names: Tereza
    family-names: Miklóšová
  - given-names: Martin
    family-names: Gora
  - given-names: Adam
    family-names: Polický
  - given-names: Viktor
    family-names: Bujko
  - given-names: Radek
    family-names: Strýček
  - given-names: Anastasia
    family-names: Akhvlediani
repository-code: 'https://github.com/dataspecer/dataspecer'
url: 'https://dataspecer.com'
keywords:
  - data specification
  - data driven modeling
  - semantic interoperability
  - technical interoperability
license: MIT
preferred-citation:
  type: conference-paper
  authors:
    - family-names: Stenchlák
      given-names: Štěpán
      orcid: 'https://orcid.org/0000-0003-4843-2470'
    - family-names: Nečaský
      given-names: Martin
      orcid: 'https://orcid.org/0000-0002-5186-7734'
    - family-names: Škoda
      given-names: Petr
      orcid: 'https://orcid.org/0000-0002-2732-9370'
    - family-names: Klímek
      given-names: Jakub
      orcid: 'https://orcid.org/0000-0001-7234-3051'
  editors:
    - family-names: Groth
      given-names: Paul
    - family-names: Rula
      given-names: Anisa
    - family-names: Schneider
      given-names: Jodi
    - family-names: Tiddi
      given-names: Ilaria
    - family-names: Simperl
      given-names: Elena
    - family-names: Alexopoulos
      given-names: Panos
    - family-names: Hoekstra
      given-names: Rinke
    - family-names: Alam
      given-names: Mehwish
    - family-names: Dimou
      given-names: Anastasia
    - family-names: Tamper
      given-names: Minna
  doi: 10.1007/978-3-031-11609-4_10
  title: "DataSpecer: A Model-Driven Approach to Managing Data Specifications"
  conference:
    name: "Lecture Notes in Computer Science"
  collection-title: "The Semantic Web: ESWC 2022 Satellite Events - Hersonissos, Crete, Greece, May 29 - June 2, 2022, Proceedings"
  url: https://doi.org/10.1007/978-3-031-11609-4_10
  publisher:
    name: Springer
  month: 5
  start: 52
  end: 56
  volume: 13384
  year: 2022

GitHub Events

Total
  • Create event: 1
  • Commit comment event: 1
  • Issues event: 50
  • Issue comment event: 23
  • Push event: 48
  • Pull request event: 3
  • Fork event: 1
Last Year
  • Create event: 1
  • Commit comment event: 1
  • Issues event: 50
  • Issue comment event: 23
  • Push event: 48
  • Pull request event: 3
  • Fork event: 1

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 37
  • Total pull requests: 3
  • Average time to close issues: 16 days
  • Average time to close pull requests: 1 day
  • Total issue authors: 5
  • Total pull request authors: 2
  • Average comments per issue: 0.16
  • Average comments per pull request: 0.67
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 37
  • Pull requests: 3
  • Average time to close issues: 16 days
  • Average time to close pull requests: 1 day
  • Issue authors: 5
  • Pull request authors: 2
  • Average comments per issue: 0.16
  • Average comments per pull request: 0.67
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • jakubklimek (31)
  • MichalMed (2)
  • sstenchlak (2)
  • pylyp01 (1)
  • bindeali (1)
Pull Request Authors
  • RadStr (2)
  • martinnec (1)
Top Labels
Issue Labels
documentation-generators (10) asap (10) cme (9) shacl-generators (6) psm-editor (3) json-generators (2) manager (1) cim-rdfs-owl (1) infrastructure (1)
Pull Request Labels
codex (1)

Dependencies

applications/cli/package-lock.json npm
  • 159 dependencies
applications/cli/package.json npm
  • dotenv-webpack ^7.1.0 development
  • ts-loader ^9.2.8 development
  • typescript ^4.6.3 development
  • webpack ^5.70.0 development
  • webpack-cli ^4.9.2 development
  • webpack-shebang-plugin ^1.1.7 development
  • @dataspecer/backend-utils ^0.0.0
  • @dataspecer/core ^0.0.0
  • @types/yargs ^17.0.10
  • chalk ^5.0.1
  • yargs ^17.4.0
package-lock.json npm
  • 590 dependencies
package.json npm
  • lerna ^4.0.0 development
packages/backend-utils/package-lock.json npm
  • typescript 4.5.5 development
packages/backend-utils/package.json npm
  • typescript ^4.5.5 development
  • @dataspecer/core ^0.0.0
packages/core/package-lock.json npm
  • 408 dependencies
packages/core/package.json npm
  • @types/jest ^28.1.1 development
  • @typescript-eslint/eslint-plugin ^5.10.2 development
  • @typescript-eslint/parser ^5.10.2 development
  • eslint ^8.8.0 development
  • eslint-plugin-jest ^26.0.0 development
  • eslint-plugin-unused-imports ^2.0.0 development
  • jest ^28.1.1 development
  • prettier ^2.5.1 development
  • ts-jest ^28.0.4 development
  • typescript ^4.5.5 development
  • @types/jsonld ^1.5.6
  • @types/n3 ^1.10.4
  • js-string-escape ^1.0.1
  • jsonld ^5.2.0
  • minipass-fetch ^1.4.1
  • n3 ^1.13.0
  • rdflib ^2.2.17
  • uri-js ^4.4.1
packages/federated-observable-store/package-lock.json npm
  • 432 dependencies
packages/federated-observable-store/package.json npm
  • @babel/preset-env ^7.16.11 development
  • @babel/preset-typescript ^7.16.7 development
  • @types/jest ^27.4.1 development
  • @types/lodash ^4.14.180 development
  • babel ^6.23.0 development
  • babel-jest ^27.5.1 development
  • jest ^27.5.1 development
  • typescript ^4.5.5 development
  • @dataspecer/core ^0.0.0
  • lodash ^4.17.21
packages/federated-observable-store-react/package-lock.json npm
  • @types/prop-types 15.7.4 development
  • @types/react 17.0.41 development
  • @types/scheduler 0.16.2 development
  • csstype 3.0.11 development
  • typescript 4.6.2 development
packages/federated-observable-store-react/package.json npm
  • @types/react ^17.0.40 development
  • typescript ^4.5.5 development
  • @dataspecer/core ^0.0.0
  • @dataspecer/federated-observable-store ^0.0.0
services/backend/package-lock.json npm
  • 226 dependencies
services/backend/package.json npm
  • @types/body-parser ^1.19.2 development
  • @types/cors ^2.8.12 development
  • @types/express ^4.17.13 development
  • @types/rimraf ^3.0.2 development
  • @types/temp ^0.9.1 development
  • @types/uuid ^8.3.1 development
  • prisma ^3.4.2 development
  • ts-loader ^9.3.0 development
  • typescript ^4.4.4 development
  • webpack ^5.73.0 development
  • webpack-cli ^4.9.2 development
  • @dataspecer/backend-utils ^0.0.0
  • @dataspecer/core ^0.0.0
  • @prisma/client ^3.4.2
  • body-parser ^1.19.0
  • cors ^2.8.5
  • dotenv-defaults ^5.0.0
  • express ^4.17.1
  • rimraf ^3.0.2
  • temp ^0.9.4
  • uuid ^8.3.2
.github/workflows/schemas.yml actions
  • actions/checkout v3 composite
  • actions/configure-pages v2 composite
  • actions/deploy-pages v1 composite
  • actions/upload-pages-artifact v1 composite
.github/workflows/test.yml actions
  • actions/checkout v2 composite
  • actions/setup-node v2 composite
utils/testing-environment/Dockerfile docker
  • node 18-bullseye build
applications/client/package-lock.json npm
  • 1427 dependencies
applications/client/package.json npm
  • @dataspecer/backend-utils *
  • @dataspecer/bikeshed *
  • @dataspecer/core *
  • @dataspecer/csv *
  • @dataspecer/federated-observable-store *
  • @dataspecer/federated-observable-store-react *
  • @dataspecer/json *
  • @dataspecer/plant-uml *
  • @dataspecer/rdfs-adapter *
  • @dataspecer/sgov-adapter *
  • @dataspecer/sparql-query *
  • @dataspecer/xml *
  • @emotion/css ^11.10.5
  • @emotion/react ^11.10.5
  • @emotion/styled ^11.10.5
  • @kkirbatski/parcel-resolver-require-resolve ^1.0.4
  • @mui/icons-material ^5.11.0
  • @mui/lab ^5.0.0-alpha.114
  • @mui/material ^5.11.2
  • @mui/styles ^5.11.2
  • @types/file-saver ^2.0.5
  • @types/lodash ^4.14.191
  • @types/mime ^3.0.1
  • @types/node ^18.11.18
  • @types/pako ^2.0.0
  • @types/react ^18.0.26
  • @types/react-beautiful-dnd ^13.1.3
  • @types/react-dom ^18.0.10
  • @types/react-syntax-highlighter ^15.5.5
  • @types/react-transition-group ^4.4.5
  • @types/webpack-env ^1.18.0
  • copy-to-clipboard ^3.3.3
  • file-saver ^2.0.5
  • history ^5.3.0
  • i18next ^22.4.6
  • i18next-browser-languagedetector ^7.0.1
  • i18next-parser ^7.1.0
  • jszip ^3.10.1
  • lodash ^4.17.21
  • mime ^3.0.0
  • notistack ^2.0.8
  • pako ^2.1.0
  • react ^18.2.0
  • react-app-rewired ^2.2.1
  • react-beautiful-dnd ^13.1.1
  • react-dom ^18.2.0
  • react-i18next ^12.1.1
  • react-router-dom ^6.6.1
  • react-scripts 5.0.1
  • react-syntax-highlighter ^15.5.0
  • react-transition-group ^4.4.5
  • typescript ^4.9.4
  • usehooks-ts ^2.9.1
packages/bikeshed/package-lock.json npm
  • 284 dependencies
packages/bikeshed/package.json npm
  • @types/jest ^29.2.5 development
  • jest ^29.1.2 development
  • rimraf ^3.0.2 development
  • ts-jest ^29.0.3 development
  • typescript ^4.9.4 development
  • @dataspecer/core *
packages/csv/package-lock.json npm
  • 284 dependencies
packages/csv/package.json npm
  • @types/jest ^29.2.5 development
  • jest ^29.1.2 development
  • rimraf ^3.0.2 development
  • ts-jest ^29.0.3 development
  • typescript ^4.9.4 development
  • @dataspecer/core *
  • @dataspecer/sparql-query *
packages/json/package-lock.json npm
  • 284 dependencies
packages/json/package.json npm
  • @types/jest ^29.2.5 development
  • jest ^29.3.1 development
  • rimraf ^3.0.2 development
  • ts-jest ^29.0.3 development
  • typescript ^4.9.4 development
  • @dataspecer/bikeshed *
  • @dataspecer/core *
packages/plant-uml/package-lock.json npm
  • 284 dependencies
packages/plant-uml/package.json npm
  • @types/jest ^29.2.5 development
  • jest ^29.3.1 development
  • rimraf ^3.0.2 development
  • ts-jest ^29.0.3 development
  • typescript ^4.9.4 development
  • @dataspecer/core *
packages/rdfs-adapter/package-lock.json npm
  • 285 dependencies
packages/rdfs-adapter/package.json npm
  • @types/jest ^29.2.5 development
  • jest ^29.3.1 development
  • rimraf ^3.0.2 development
  • ts-jest ^29.0.3 development
  • typescript ^4.9.4 development
  • @dataspecer/core *
  • js-string-escape ^1.0.1
packages/sgov-adapter/package-lock.json npm
  • 285 dependencies
packages/sgov-adapter/package.json npm
  • @types/jest ^29.2.5 development
  • jest ^29.1.2 development
  • rimraf ^3.0.2 development
  • ts-jest ^29.0.3 development
  • typescript ^4.8.4 development
  • @dataspecer/core *
  • js-string-escape ^1.0.1
packages/sparql-query/package-lock.json npm
  • 284 dependencies
packages/sparql-query/package.json npm
  • @types/jest ^29.2.5 development
  • jest ^29.3.1 development
  • rimraf ^3.0.2 development
  • ts-jest ^29.0.3 development
  • typescript ^4.9.4 development
  • @dataspecer/core *
  • @dataspecer/xml *
packages/xml/package-lock.json npm
  • 284 dependencies
packages/xml/package.json npm
  • @types/jest ^29.2.5 development
  • jest ^29.3.1 development
  • rimraf ^3.0.2 development
  • ts-jest ^29.0.3 development
  • typescript ^4.9.4 development
  • @dataspecer/bikeshed *
  • @dataspecer/core *
applications/conceptual-model-editor/package-lock.json npm
  • 343 dependencies
applications/conceptual-model-editor/package.json npm
  • @types/eslint ^8.21.3 development
  • @types/node ^18.15.5 development
  • @types/prettier ^2.7.2 development
  • @types/react ^18.0.28 development
  • @types/react-dom ^18.0.11 development
  • @typescript-eslint/eslint-plugin ^5.56.0 development
  • @typescript-eslint/parser ^5.56.0 development
  • autoprefixer ^10.4.14 development
  • eslint ^8.36.0 development
  • eslint-config-next ^13.2.4 development
  • postcss ^8.4.21 development
  • prettier ^2.8.6 development
  • prettier-plugin-tailwindcss ^0.2.6 development
  • tailwindcss ^3.3.0 development
  • typescript ^5.0.2 development
  • @dataspecer/core *
  • @dataspecer/rdfs-adapter *
  • @dataspecer/sgov-adapter ^0.0.0
  • jointjs ^3.7.0
  • next ^13.2.4
  • react 18.2.0
  • react-dom 18.2.0
  • zod ^3.21.4
packages/core-v2/package-lock.json npm
  • @isaacs/cliui 8.0.2 development
  • @pkgjs/parseargs 0.11.0 development
  • ansi-regex 5.0.1 development
  • ansi-regex 6.0.1 development
  • ansi-styles 6.2.1 development
  • ansi-styles 4.3.0 development
  • balanced-match 1.0.2 development
  • brace-expansion 2.0.1 development
  • color-convert 2.0.1 development
  • color-name 1.1.4 development
  • cross-spawn 7.0.3 development
  • eastasianwidth 0.2.0 development
  • emoji-regex 8.0.0 development
  • emoji-regex 9.2.2 development
  • foreground-child 3.1.1 development
  • glob 10.3.3 development
  • is-fullwidth-code-point 3.0.0 development
  • isexe 2.0.0 development
  • jackspeak 2.2.3 development
  • lru-cache 10.0.1 development
  • minimatch 9.0.3 development
  • minipass 7.0.3 development
  • path-key 3.1.1 development
  • path-scurry 1.10.1 development
  • rimraf 5.0.1 development
  • shebang-command 2.0.0 development
  • shebang-regex 3.0.0 development
  • signal-exit 4.1.0 development
  • string-width 5.1.2 development
  • string-width 4.2.3 development
  • string-width-cjs 4.2.3 development
  • strip-ansi 6.0.1 development
  • strip-ansi 7.1.0 development
  • strip-ansi-cjs 6.0.1 development
  • typescript 5.1.6 development
  • which 2.0.2 development
  • wrap-ansi 8.1.0 development
  • wrap-ansi-cjs 7.0.0 development
packages/core-v2/package.json npm
  • rimraf ^5.0.1 development
  • typescript ^5.1.6 development
  • @dataspecer/backend-utils *
  • @dataspecer/core *
  • @dataspecer/rdfs-adapter *
  • @dataspecer/sgov-adapter *
packages/shacl/package-lock.json npm
  • 492 dependencies
packages/shacl/package.json npm
  • @babel/core ^7.22.9 development
  • @babel/preset-env ^7.22.9 development
  • @types/jest ^29.5.0 development
  • @types/rdf-ext ^2.0.1 development
  • @types/rdf-validate-shacl ^0.4.2 development
  • babel-jest ^29.6.1 development
  • jest ^29.5.0 development
  • rimraf ^4.4.1 development
  • ts-jest ^29.1.0 development
  • typescript ^5.0.4 development
  • @babel/preset-env ^7.22.9
  • @babel/preset-typescript ^7.22.5
  • @dataspecer/core *
  • @dataspecer/json *
  • @rdfjs/parser-jsonld ^2.1.0
  • @rdfjs/parser-n3 ^2.0.1
  • @rdfjs/serializer-turtle ^1.1.1
  • cuid ^3.0.0
  • faker ^6.6.6
  • fs ^0.0.1-security
  • json-schema-faker ^0.5.3
  • n3 ^1.16.4
  • path ^0.12.7
  • rdf-ext ^2.2.0
  • rdf-validate-shacl ^0.4.5
  • turtle-validator ^1.1.1
packages/wikidata-experimental-adapter/package-lock.json npm
  • 307 dependencies
packages/wikidata-experimental-adapter/package.json npm
  • @types/jest ^29.5.0 development
  • jest ^29.5.0 development
  • rimraf ^5.0.1 development
  • ts-jest ^29.1.0 development
  • typescript 5.0.4 development
  • @dataspecer/core *
  • js-string-escape ^1.0.1