Giter Site home page Giter Site logo

aksw / ontopad Goto Github PK

View Code? Open in Web Editor NEW
27.0 4.0 5.0 560 KB

Simple RDF Editor with SHACL support

Home Page: https://ontopad.aksw.org/

License: GNU General Public License v3.0

HTML 7.13% Vue 68.91% JavaScript 23.26% Dockerfile 0.64% Shell 0.06%
rdf sparql shacl shacl-editor rdf-editor

ontopad's Introduction

OntoPad

OntoPad is a simple editor for RDF data, e.g. Resources, Classes, and Properties. On top of the simple RDF layer it provides ways to visually interact with SHACL shapes.

OntoPad is designed to run in you web browser (with JavaScript support) and to be connected to a SPARQL Endpoint. To be able to share the data you create it works best with the Quit Store (actually currently only supported SPARQL Endpoint cf. #18).

To build the code and get it running in your development environment you need a recent version of node (node.js) and npm (https://nodejs.org/). You can also get it running in a docker environment with our docker image aksw/ontopad.

Project setup

npm install

Compiles and hot-reloads for development

npm run serve

Now the OntoPad should be locally available at http://localhost:8080/ or some other port, if port 8080 is used already.

Compiles and minifies for production

npm run build

This will set APP_CONFIG to null. To set APP_CONFIG now the configuration can be injected. If APP_CONFIG remains null OntoPad will fail to load, this might change in the future (#19).

Inject configuration

You can adjust src/config/config.json or set the following environment variables

  • QUIT_URL the URL of a running Quit Store
  • SPARQL_QUERY the URL of a SPARQL Query Endpoint (currently only Quit Store cf. #18)
  • SPARQL_UPDATE the URL of a SPARQL Update Endpoint (currently only Quit Store cf. #18)
  • PRESELECTED_GRAPH_IRI the IRI of the RDF Graph to select per default
  • PRESELECTED_RESOURCE_IRI the IRI of the RDF Resource to select per default

Now run the following to inject the configuration:

node docker-inject-config.js

Compile and build for serving locally

NODE_ENV=dev npm run build

(NODE_ENV just must not be production.) This includes the default configuration from src/config/config.json to set APP_CONFIG. This configuration expects the SPARQL-Endpoint to be a Quit Store running at http://localhost:5000.

The result can be served with a local HTTP server

cd dist
python3 -m http.server 8080

Run your tests

npm run test

Lints and fixes files

npm run lint

Customize configuration

See Configuration Reference.

ontopad's People

Contributors

rmeissn avatar white-gecko avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ontopad's Issues

Drag and drop does not work in Firefox

I don't know what has changed, but suddenly the drag & drop does not work in my Firefox anymore, but in Chromium.
Could someone please reproduce this.

Requirements on read-me file

The read-me file should contain a reserved place specifying the requirements to use the application.
Example:

Requirements:

  • Docker
  • WebBrowser compatible with HTML and javaScript.
  • NPM
  • QUIT store

etc...

`npm run dev` does not work

According to https://github.com/AKSW/OntoPad/blob/master/README.md, I can run OntoPad using npm run dev, however that results in npm ERR! missing script: dev.

QUIT store in the read-me file

Should have a section reserved to explain how to set up the QUIT store(at least the docker version) and a link to the QUIT store GitHub for further configurations.

Dynamically set configuration (SPARQL Endpoint, …)

The OntoPad currently fails, if no config is set. Which is fine. At some point in the future, it might be cool to allow users to dynamically set the configuration with a wizard and store in in local config or something like that.

How to create SHACL constraints and enforce them on new data?

Hi,

I'm interested in the project and was curious if it's possible to both define shacl constraints and enforce them on newly added data. Is this possible? I don't completely understand where the shapes end up and what they do after creating them in the vocabulary tab.

Am I missing something?

Kr,
Timon

npm install on MacBook Pro

npm install does not work and need sudo rights to work. Thus, instead of "npm install" should be "sudo npm install".

How to serve output of npm build?

As npm run dev did not work for me, I successfully built the project using npm run build, however I cannot figure out how to start it then.
I tried opening dist/index.html on Firefox Developer 87.0b8 and Chromium 89.0.4289.82 even with the CORS addon activated but there is just a white screen.

The console shows the error message:

Loading failed for the module with source “file:///js/chunk-vendors.63bccdb5.js”. index.html:1:1
Loading failed for the module with source “file:///js/app.22d9930c.js”. index.html:1:1

I also deployed it on a local webserver using $ python -m http.server . but that failed as well.

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.