Skip to content

Software implementation of semantic network storage and processing

License

Notifications You must be signed in to change notification settings

SHtress/sc-machine

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SC-machine

CI codecov license docker

Short version: SC-machine is a software package that emulates semantic computer behaviour. It uses agent-based approach to to process knowledge graphs.

SC-machine stores and processes knowledge graphs represented in the SC-code (language of the universal knowledge representation). Theoretical basis of SC-machine is provided by the OSTIS Technology.

SC-machine allows integrating problem solutions from different subject domains by using the same:

  • technology
  • programming and data representation language
  • software stack.

This project contains:

  • sc-memory - semantic storage to store graph constructions;
  • sc-event-manager - event-based processing (async program workflow handling);
  • tools to communicate with sc-memory:
    • native C++ API;
    • sc-server - a Websocket server that provides a network API to communicate with storage using JSON;
    • sc-builder loads information from SCs files into the storage (SCs-code is one of the external representation languages of the SC-code).
More info

SC-machine is a platform-independent graph database management system that can store / retrieve knowledge graphs and run tasks (agents) on them.

Both declarative (data, data structures, documentation, tasks specification, etc.) and procedural (programs, modules, systems, communication between systems) knowledge is represented using the same language: the SC-code.

Documentation

  • A brief user manual and developer docs are hosted on our GitHub Pages.

  • Full documentation, including:

    • core concepts
    • rationale behind the SC-machine
    • system design
    • software interfaces

    is redistributed in a form of the SCn-TeX document.

    or alternatively you can build sc-machine documentation only. To do that refer to the scn-latex-plugin documentation.

Quick start

SC-machine is a core of any OSTIS-system, so you can use a reference system named OSTIS Web platform to get it up and running quickly.

Installation

  • Docker: We provide a Docker image for this project. Head to Installing with Docker to learn more. It's the recommended way to deploy the SC-machine.

  • Native: If you do not have the option to deploy the system using Docker, please refer to the docs for your OS: Build on Linux or Build on macOS respectively.

    Note: currently, the SC-machine isn't natively supported on Windows.

Usage

  • Docker

    # create empty KB sources folder
    mkdir kb && cat "." > kb/repo.path
    # note: at this stage you can move your KB sources to the ./kb folder
    
    # build kb
    docker compose run --rm machine build
    # run sc-server
    docker compose up
  • Native

    #build kb
    python3 scripts/build_kb.py -c ./sc-machine.ini -b bin <path to kb folder with SCs and SCg sources (or path to repo.path file)>
    #launch sc-server
    ./bin/sc-server -c ./sc-machine.ini

Most of these commands have a help page bundled inside, so if you have any questions or want to customize the command behavior, use --help flag to learn more about them.

Config

This repository provides a default configuration for the SC-machine. To customize the SC-machine to suit your needs you can create your own config file.

Feedback

Contributions, bug reports and feature requests are welcome! Feel free to check our issues page and file a new issue (or comment in existing ones).

License

Distributed under the MIT License. Check COPYING.MIT for more information.

This repository continues the development of ostis-dev/sc-machine from version 0.6.0.

About

Software implementation of semantic network storage and processing

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 65.4%
  • C 28.3%
  • CMake 3.0%
  • Python 2.2%
  • ANTLR 0.6%
  • Shell 0.4%
  • Dockerfile 0.1%