Giter VIP home page Giter VIP logo

vsm / vsm-box Goto Github PK

View Code? Open in Web Editor NEW
29.0 3.0 1.0 2.45 MB

Web-component for creating & showing VSM-sentences — Visual Syntax Method

Home Page: https://vsm.github.io

License: GNU Affero General Public License v3.0

JavaScript 66.97% Vue 25.15% HTML 7.36% CSS 0.52%
vsm knowledge-representation user-interface curation ontology-search knowledge-graph knowledge-graph-construction web-component

vsm-box's Introduction

vsm-box

Node.js CI (will become a live badge when codecov can see inside webpack-bundled code) npm version License Downloads

Intro

vsm-box is a web-component for entering and showing a VSM-sentence.  –  Explanation:

  • A VSM-sentence is a computer-understandable and potentially natural-looking statement that consists of VSM-terms and VSM-connectors. Each term is a one- or few-word text string plus a linked ID. The relation between all terms is clarified with just a small set of connectors.

  • VSM (Visual Syntax Method) is an intuitive method to represent any knowledge – on any topic, and with any amount of context details – into an elegant form that is easy to understand by both humans and computers.
    In more detail:
    VSM is the combination of a user-interface and a semantic model, that enables people to represent diverse and context-rich knowledge with precision, and that enables them to capture this knowledge in a way they find intuitive – because it closely corresponds to how a piece of knowledge is represented in the human mind.
    VSM is thus a general-purpose method for entering (or 'writing') knowledge in a structured, computable form, and for viewing (or 'reading') it in that form.
    See vsm.github.io for all info on VSM.

  • A web-component is something that can be shown in a web page by simply inserting an HTML-tag, like a <button>, <input>, or here a <vsm-box>.

Target audience:

  • For web-developers who embed a vsm-box in a web-app: there are many customization features to support the needs of various user groups.
  • For end-users: a vsm-box is an elegant and flexible interface for capturing structured information – and esp. easy when they can fill out VSM-template sentences.

Intro example – for end users

This is a vsm-box animated example. Here, a user:
• enters two terms (linked to an ID),
• checks a term's definition etc. by mousehovering so a popup appears,
• adds a second connector – but by doing so, creates an unintended meaning ('chicken with fork')
  (note also: connectors get auto-sorted for optimal layout),
• removes that connector again,
• adds the second connector correctly.

vsm-box example animation

For more examples, see vsm.github.io.


Intro example – for web developers

A concise example of how to place a vsm-box in a web-app is shown on vsm.github.io, bottom of front page.

More elaborate examples are in the 'index*.html' files in the src folder (see also Build below),
and in the vsm demo repository (which can be used live here).


Documentation

See Documentation.md for full technical details, including:

  • VSM-sentence data-model (and examples),
  • VsmBox input props (i.e. html-attributes),
  • VsmBox emitted events,
  • user interaction,
  • customized content (for term labels, term popups, and autocomplete panel items).

Build

This project's configuration (webpack + npm + Vue + testing + linting) is as described in github.com/stcruy/building-a-reusable-vue-web-component.

This makes vsm-box available as: 1) a standalone web-component, 2) a slim web-component, and 3) a Vue component.

The latest version's built files are available at unpkg:


Creators


Contributing

See Contributing.md for how to submit pull requests, and a standard text on being nice to other contributors.


License

This project is licensed under the AGPL-3.0 license.

The AGPL license gives you the right to use the vsm-box and other vsm modules for free. But if you modify the source code, the goal is that you have to contribute those modifications back to the community. So *GPL makes software stay virally for-free.

Note* however that it is NOT required that applications' code is published if, for entering and/or showing VSM-based information, they use only unchanged, not-augmented vsm modules and/or vsm data formats. The copyleft applies only to the vsm-box and other vsm modules. Your application, even though it talks to vsm-box, is a separate program and "work".
*(That is our interpretation and intention with AGPL, similar to how MongoDB does it. If you know a legally better way to achieve this goal, let us know.)

Why AGPL
With VSM, we aim for unification of science's efforts towards digital transformation of all its research findings. We want to promote community-building, and move forward with everyone together broadening the application set.
Because the vsm-box software directly reflects the core design of VSM, as a shareable semantic-data / knowledge format, we believe that modifications or enhancements to it must be made public as well. Otherwise a private actor could easily use an "embrace, extend, extinguish" approach to privatize an evolving technology that was originally meant to transform our scientific knowledge into a more open digital form.
We are inspired by the copyleft licensing that contributed to the success of Linux-based systems, for the same reason. We may revise this policy, if along the way we would learn that a most permissive license would give more benefit to society.

vsm-box's People

Contributors

bblodfon avatar stcruy 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

Watchers

 avatar  avatar  avatar

Forkers

databill86

vsm-box's Issues

Multi-line VSM-sentences

Q: Multi-line VSM-sentences would be great to have.

A: This is high on the todo-list! It's even included in a design for a 'vsm-box version 2'.

But to get a new technology like VSM off the ground, we have to alternate between phases of developing its many core components (all on GitHub now), and demonstrating it in diverse application areas. Both are essential to secure long-term funding and to further mature this groundbreaking enabling-technology.

Stand by for – or take part in enabling – the next rounds of dedicated development!

Readonly mode

After going through the great documentation of this project I have been unable to find any reference to readonly mode.
Is there any way to make the vsm-boxes readonly?, preventing the user from making any change but still able to show the popup for detailed information about the terms?

Thank you very much in advance.

Remaining to-dos

  • [Done:] Modules that support vsm-box (vsm-dictionary-*, -cacher, vsm-autocomplete, etc).
  • [Done:] TheTerms display and user-interaction.
  • [Done:] ThePopup display and user-interaction.
  • [Done:] Support for customization of Terms, ThePopup, VsmAutocomplete-Items.
  • [Done:] Design & implement TheConns.
  • [Done:] Add connector-sorting code. | - Refactor it.
  • Write tests for TheConns and its dependent components.
  • [Done:] Integrate events from TheTerms & TheConns in VsmBox, and emit change. Describe in Readme.
  • [Done:] Make demo with text-area that shows current state in JSON, and that can load from edited state.
  • [Done:] Update "index-prod-*.html" demos of the build output.

 

  • Later: Move all vsm modules' documentation into a gitbook on vsm.github.io.

  • Future: refactor to a 'vsm-box Version 2'.
    See the new design here. It describes a new vsm-to-svg module that does all the coordinate-calculations and term- and connector-drawing. This would make it doable to implement multi-line vsm-sentences, simplify tests, and more.

  • First of all: secure new funding.

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.