VSM(Visual Syntax Method)
Representing any knowledge in a computable form, made easy.
VSM enables people to put knowledge in a computable form, ‘like they think’.
• VSM’s semantic model reflects how knowledge is represented in the human mind;
• and its user interface enables one to read & enter knowledge in that intuitive form.
VSM is thus a human-centered method for creating
context-rich, multi-topic, computable knowledge – and
a gateway to any other format and to computation.
VSM’s elegant knowledge representation may also
serve as a practical basis in the design of semantic machine learning.
Here we collect all information on VSM:
-
Intros:
-
How VSM works:
-
‘Intuitive Representation of Computable Knowledge’
(Main Paper — Preprint, 2020)
Scientific progress is increasingly dependent on knowledge in computation-ready
forms. In the life sciences, among others, many scientists therefore extract and
structure knowledge from the literature. In a process called manual curation,
they enter knowledge into spreadsheets, or into databases where it serves their
and many others' research. Valuable as these curation efforts are, the range and
detail of what can practically be captured and shared remains limited, because
of the constraints of current curation tools. Many important contextual aspects
of observations described in literature simply do not fit in the form defined by
these tools, and thus cannot be captured. Here we present the design of an easy-
to-use, general-purpose method and interface, that enables the precise semantic
capture of virtually unlimited types of information and details, using only a
minimal set of building blocks. Scientists from any discipline can use this to
convert any complex knowledge into a form that is easily readable and meaningful
for both humans and computers. The method VSM forms a universal and high-level
language for encoding ideas, and for interacting with digital knowledge.
-
Animated demo/intro, see below.
-
Many explained VSM examples
(using an earlier vsm-box prototype).
-
Demos:
-
Live Demo + Toolkit of vsm-box
(= the user interface enabling VSM semantics).
↪ It has examples, a JSON view, RDF export, and PNG and SVG image export.
-
Many editable, explained examples.
-
Customizable templates for knowledge entry: see causalBuilder, below.
-
Animated video:
How NLP may someday automatically encode knowledge into computable statements
(‘From natural language to VSM semantic structures’).
-
Code:
-
vsm-box :
the user interface of VSM
(as a <vsm-box> HTML-element)
(GitHub)
-
Code-use demo/intro,
see below.
-
vsm
organization on GitHub : VSM's core enabling modules. See their Readme:
-
Use in other projects:
-
causalBuilder:
A web app that generates VSM-templates that follow the
MI2CAST
standard,
for molecular biologists who are creating structured knowledge about
causal molecular interactions.
(Uses VSM-box).
-
UniBioDicts organization:
A collection of modules for Unified access to Biological
Dictionary data, served from disparate terminology providers.
(For use in VSM-boxes).
-
SciCura:
-
SciCura v1, see demo section
(← select a template at the top left there);
used for a collaborative curation project at NTNU university.
-
SciCura v1 to v2:
draft description.
-
Connection to other technologies:
-
VSM to RDF:
translation of VSM-sentences to RDF
(draft, work in progress).
-
E.g. output to the
PSI-MITAB2.8
format
(via causalBuilder).
-
NLP to VSM:
‘From natural language to VSM semantic structures’, with a
live demo page
(ongoing work).
-
Funding:
NO FUNDING currently.
A
determination to create something new
is often met with great uncertainty of making a living.
This is especially so in modern science, where also
brutal conditions for fundraising can leave little time to do actual research.
Despite this reality,
Dr. Steven V.
chose to dedicate
the many years of deep work it required,
to develop a new way forward to handle complex, contextualized knowledge—as this plays a central role in systems biology,
science in general, and AI.
His results are now receiving excellent feedback from peers,
but it naturally leaves him
without funding: since Dec 2019, as in 2011–2016.
He is now writing grant proposals—without salary—for just
5–9% chances of funding.
It is unfortunate for society as a whole,
that its dedicated scientists must spend so much of their brain-power like this.
So to speed up the development of VSM and its applications:
► Include Steven Vercruysse or VSM
in your next grant proposals !
Overview and examples: how to create and read computable knowledge in a vsm-box.
It is easy to use a vsm-box in your project.
For example: paste this in a file called 'test.html', and open it in your browser:
<!doctype html>
<html>
<head>
<!-- 1) Load the vsm-box module, and a vsm-dictionary to provide terms+identifiers. -->
<script src="https://unpkg.com/vsm-box@^1.0.0/dist/vsm-box.standalone.min.js"></script>
<script src="https://unpkg.com/vsm-dictionary-local@^2.6.0/dist/vsm-dictionary-local.min.js"></script>
</head>
<body>
<!-- 2) Place a vsm-box element on the web page. -->
<vsm-box id=vsmbox autofocus=true></vsm-box>
<br> <textarea id=textarea readonly rows=31 cols=45></textarea> <!-- (Textfield to show vsm-box data). -->
</body>
<script>
// 3) Connect the vsm-box to a vsm-dictionary. Here we make one that provides demo-data.
// Or we could use online vocabulary data, like with vsm-dictionary-bioportal etc.
vsmbox.vsmDictionary = new VsmDictionaryLocal({
dictData: [
{ id: 'http://dem.o/A', name: 'Demo dictionary A',
entries: [
{ id: 'http://dem.o/A/A:01', terms: [{ str: 'Jo' }, { str: 'Joanna' }] }, // Synonyms.
{ id: 'http://dem.o/A/A:02', terms: [{ str: 'eats' }], descr: 'an eating activity' }
]
}
],
refTerms: ['it']
});
// 4) Optional: Fill the vsm-box with a VSM-template. Uncomment this to do so:
/*vsmbox.initialValue = {
terms: [ { placeholder: 'name' }, { str: 'eats', classID: 'http://dem.o/A/A:02', instID: null }, {} ],
conns: [ { type: 'T', pos: [ 0, 1, 2 ] } ]
};*/
// 5) Receive vsm-box content updates. Here we show its data-content live in the textfield below it.
vsmbox.addEventListener('change', showData);
function showData(event) { textarea.value = JSON.stringify(event.detail[0], null, 2) }
showData({ detail: [vsmbox.initialValue || { terms: [], conns: [] }] });
</script>
</html>