Coder Social home page Coder Social logo

schimatos / schimatos.org Goto Github PK

View Code? Open in Web Editor NEW
47.0 13.0 4.0 42.27 MB

A SHACL-based Web-Form Generator for Knowledge Graph Editing

License: Other

JavaScript 99.13% CSS 0.61% HTML 0.26%
shapes-graphs shacl knowledge-graphs data-graphs rdf owl gui web-forms

schimatos.org's Introduction

Schímatos

A SHACL-based Web-Form Generator for Knowledge Graph Editing

Knowledge graph creation and maintenance is typically inaccessible to naïve users. One barrier is the paucity of user-friendly publishing tools that separate schema modeling from the data creation.

The Shapes Constraint Language (SHACL) is a W3C standard for validating RDF-based knowledge graphs against a set of conditions provided as shapes. This enables structure, i.e. domain-relevant patterns, to be enforced on data graphs built against pre-defined shapes.

Schímatos is a form-based Web application with which users can create and edit data against such shapes graphs. Forms are generated from and stored as shapes graphs. These graphs may either be handcrafted within the tool (using a form building GUI), assembled by aggregating existing shapes graphs (also available as a GUI), or automatically generated with machine learning techniques.

During data-entry, the tool uses entity relationships and attribute requirements to generate a Web-form for end-users. Attribute constraints are then used to perform client-side validation. Thus, this tool enables end-users to create and edit complex data graphs abstracted in an easy-to-use GUI. Additionally, validation procedures reduce the introduction of erroneous data.

Demo

The demo is currently running at schimatos.github.io. The downloadable distribution is also preconfigured for the demo; it can be run by downloading the distribution and then opening the index.html.

Data entry

To perform data entry on the entity open the sidebar and use the dropdown in the sidebar header to navigate to Target Selections. In this demo, the entity of interest is Sergio José Rodríguez Méndez and so can be found by searching for 'Sergio'. In the dropdown, select wd:Q88056610, this is the identifier for Sergio José Rodríguez Méndez. Once selected, you will see that the value has been automatically entered as the focus of the form. Details about the entity are provided in the sidebar. This can be used to confirm that one is working with the correct entity.

Now use the dropdown in the sidebar header to navigate to SHACL Selections and search for the 'wikidataHumanShapeDemo'; as the label is "Wikidata human shape demo" simply searching for 'human' will return it as a result. Select the shape and click the Apply button to generate the form.

Any values that are already submitted will be prefilled into the form. Note that since multiple users can access the demo; this may either be empty, partially or fully complete depending on what others have submitted. If this is the case you can remove these entries from the database by selecting the x next to the entry. To create more fields in any section click the + button at the top right of the section. To ensure that values are validated and ready for submission, press ENTER after completing a field.

To submit entries, click the Submit button at the bottom of the form. This will submit all entries that have passed validation.

SHACL Creation

Open the SHACL selection panel and search 'human' and select the humanWikidataShape. Repeat this process with 'university' an and select the shape wikidataUniversityTeacher. You should see a screen similar to this Select apply to create a form with the merged SHACL constraints. To add the ORCID property, select the add new property path button here Then fill out the settings as shown here to give it a name and datatype. Press submit to add it to the form. Click the save button at the bottom of the screen to see a screen like this From here you can download the shape and add additional annotation such as an rdfs:label and correct naming. The SHACL can then be uploaded to the SHACL store as shown here

License

Content submitted to schimatos.org is MIT licensed, as found in the LICENSE.md file.

schimatos.org's People

Contributors

jeswr avatar jmacleay avatar sockmonkeyhandpuppet 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

schimatos.org's Issues

Show handling of unspecified classes and datatypes

When a SHACL constraint does not specify a class or datatype we can infer this from domain/range properties. Currently we are doing this silently. Add a popup to ask users if they want the instance/value to be set with the inferred class/datatype or not.

connecting to local SPARQL endpoint

Could you, if possible, provide documentation for connecting Schimatos with a local triplestore? I would be interested in loading and updating type and SHACL shape stores from the same endpoint via their corresponding named graphs. I have tried adding a new triplestore, filling only the field 'sparql endpoint' with http://localhost:7200/repositories/<repo_name> pointing to the GraphDB sparql endpoint, but no individuals from my repo can be retrieved.

Fix firefox display bug

In Firefox the text describing an entity in the sidebar is overlapped - I think this issue is related to how the browser handles flex-boxes.

I'll resolve this ASAP after my exams (~15 Nov).

File not found error while recompiling

I am able to start the application using npm run client. However, after making any change in the code (e.g. removing a newline), the following error is thrown while recompiling:

ℹ 「wdm」: Compiling...
fs.js:646
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open 'path_to_schimatos/dist/e6359d3bb586980af860.hot-update.json'
    at Object.fs.openSync (fs.js:646:18)
    at Object.fs.readFileSync (fs.js:551:33)
    at Object.getOwnPropertyNames.forEach.asset (path_to_schimatos/source/node_modules/webpack-war-plugin/dist/WebpackWarPlugin.js:30:37)
    at Array.forEach (<anonymous>)
    at compiler.plugin (path_to_schimatos/source/node_modules/webpack-war-plugin/dist/WebpackWarPlugin.js:28:60)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (path_to_schimatos/source/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:7:1)
    at asyncLib.forEachLimit.err (path_to_schimatos/source/node_modules/webpack/lib/Compiler.js:482:27)
    at path_to_schimatos/source/node_modules/neo-async/async.js:2818:7
    at done (path_to_schimatos/source/node_modules/neo-async/async.js:3522:9)
    at AsyncSeriesHook.eval [as callAsync] (eval at create (path_to_schimatos/source/node_modules/tapable/lib/HookCodeFactory.js:33:10), <anonymous>:6:1)

It seems quite unexpected to need a file from dist/ while trying to recompile the code, especially since compilation works in the first place.

Colour bars for violation

Colour bars for violation can be removed and the colours green/yellow/red can be used on the triangle that indicates the violation degree. A tool tip can be included that indicates the level of severity for the property.

Simplify the dropdown box for entity/shacl selection

The navigation option and the upload/edit.ttl options could be put in other parts of the user interface to make this dropdown box simpler. The upload SHACL functionality can be added to the form where one can edit SHACL (as accessible from the path symbol) and the navigation can become part of the menu on the left top corner.

SHACL Selection and Target Selection could be renamed to SHACL Search and Entity Search

Default values for regular expressions

Although not supported in SHACL directly, regular expressions should be qualified and one should be able to add a default value and/or suggested value to the SHACL file that is then represented as a greyed out value in the regular expression and/or a tool tip.

Submit selector

Is the submit function working properly? I have configured an item, all configuration areas have a green border, but cannot generate the SHACL code. I toggle the submit button, the button blinks, but no result. What am i doing wrong?

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.