https://github.com/semantic-machines/veda
Veda - ontology driven application development platform
https://github.com/semantic-machines/veda
enterprise-software javascript ontology platform rust-lang storage tarantool veda xapian
Last synced: 6 months ago
JSON representation
Veda - ontology driven application development platform
- Host: GitHub
- URL: https://github.com/semantic-machines/veda
- Owner: semantic-machines
- License: other
- Created: 2012-08-15T15:05:06.000Z (about 13 years ago)
- Default Branch: master
- Last Pushed: 2024-04-13T16:57:42.000Z (over 1 year ago)
- Last Synced: 2024-04-14T07:09:26.199Z (over 1 year ago)
- Topics: enterprise-software, javascript, ontology, platform, rust-lang, storage, tarantool, veda, xapian
- Language: JavaScript
- Homepage:
- Size: 159 MB
- Stars: 31
- Watchers: 13
- Forks: 8
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-starred - semantic-machines/veda - Veda - ontology driven application development platform (javascript)
README
[](https://www.repostatus.org/#active)
[](https://github.com/semantic-machines/veda/actions/workflows/main.yml)# Veda - ontology driven application development platform

## I. Overview
**1. Driven by Semantic Web methodology**
- Veda platform pursues Semantic Web methodology for data description, storage and exchange (https://en.wikipedia.org/wiki/Semantic_Web).**2. Two-tier architecture**
- Thin server written in Rust (stateless).
- Rich browser-side web-client written as HTML5 SPA (stateful).**3. Server components**
- Tarantool database (https://www.tarantool.io)
- Integrated Xapian search engine library. Used for data indexing & querying (http://xapian.org).
- Integrated V8 javascript engine library. Used for workflow execution engine and other server-side logic (https://code.google.com/p/v8).
- Actix based web server.
- Nanomsg - light-weight messaging protocol library.**4. Client components**
- Bootstrap HTML, CSS, and JS framework for developing responsive, mobile first web applications (http://getbootstrap.com).- Riot.js a React-like user interface micro-library. Used for implementing MVC pattern & client-side routing (http://riotjs.com).
- jQuery general purpose client-side javascript library. Used for client-server interaction, event handling, DOM traversal & manipulation (https://jquery.com).
- jsPlumb visual connectivity library for webapps. Used for workflow viewer/editor (http://jsplumbtoolkit.com).
- Various visualization libraries & plugins.
## II. System requirements
- OS - Ubuntu 18.04, 20.04, 22.04 LTS 64-Bit. For run on common Linux-based operating systems, use Veda-x86_64.AppImage.X.Y.Z- RAM - 1Gb
## III. How to install and run
There are two ways to install the application. The first is to use a pre-built application, the second is to build the application from source code.
**Installing a pre-built system**
You can download pre-built platform release from GitHub. To install the latest version, follow the link https://github.com/semantic-machines/veda/releases and download the Veda-x86_64.AppImage file into a separate folder. This file contains the packed platform binaries and required dependencies.
Make the file executable:
chmod +x Veda-x86_64.AppImage
and run it.At the the first run, additional files will appear in the folder where the Veda-x86_64.AppImage file is located for subsequent start and stop of the application. A folder for the database will be created and the ontology will be unpacked. The ./install-tools/install-tarantool.sh file will also appear. If the Tarantool database has not been installed before, install it using install-tarantool.sh before the first start.
**Building from sources**
The sources for the project can be downloaded from the GitHub. To do this, run the command:
git clone https://github.com/semantic-machines/veda.gitThe server side modules will require components from other developers. They are open source and can be installed by running the script:
```sh
$ ./control-install.sh
```After installing all of the dependencies, you can build the executable files:
```sh
$ ./build.sh
```**Setting up and running**
Settings for configuring the server are in the ./veda.properties file.
At the first, you may need to make changes to the tcp port settings. By default, the server will interact with the client using ports 8080 and 8088. If necessary, you can reconfigure them.
Web-application port is set by the *http_port* parameter (8080 by default). The second port is used for sending notifications of data changes to the client application and is set by the *ccus_port* parameter (8088 by default). The server is started with the command:
```sh
$ ./control-start.sh
```At the first start, when the database is empty, it may take some time (about a minute), during which the platform ontology located in the ./ontology folder will be loaded to the database. Subsequent launches will take place without any delay, almost instantly. After the server side has started, you can go to the browser at http://localhost:8080.
The server can be stopped with the command:
```sh
$ ./control-stop.sh
```