diff --git a/.github/workflows/install.yml b/.github/workflows/install.yml index 03ad6c69..2ce4dd08 100644 --- a/.github/workflows/install.yml +++ b/.github/workflows/install.yml @@ -37,4 +37,4 @@ jobs: run: | cd scripts ./set_vars.sh - ./install_platform.sh + ./install_submodules.sh diff --git a/.github/workflows/minimal_install.yml b/.github/workflows/minimal_install.yml index dea5d6c0..802b878e 100644 --- a/.github/workflows/minimal_install.yml +++ b/.github/workflows/minimal_install.yml @@ -37,5 +37,4 @@ jobs: run: | cd scripts ./set_vars.sh - ./install_minimal_platform.sh - ./run_sc_machine.sh -t + ./install_minimal_submodules.sh diff --git a/.gitignore b/.gitignore index f1e59279..6dde61d9 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ build .idea __pycache__ .vscode +.DS_Store # texstudio *.aux diff --git a/LICENSE b/LICENSE index 59875b9c..11d7dd17 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ Unless otherwise indicated, the Source Code is licensed under the MIT license. -Copyright (c) 2010-2024 OSTIS +Copyright (c) 2010-2025 OSTIS Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 3c564207..8bca09b1 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![license](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) -It is the repository of the Platform of the [OSTIS Technology](https://github.com/ostis-ai). Platform OSTIS is intended to be a solid framework to help you deploy existing and create new ostis-systems. +It is the repository of the Platform of the [OSTIS Technology](https://github.com/ostis-ai). The OSTIS Platform is intended to be a solid framework to help you deploy existing and create new ostis-systems. OSTIS Platform contains: @@ -39,7 +39,7 @@ To learn more about the platform, check out our [documentation](https://github.c # download images from Docker Hub docker compose pull # build knowledge base - docker compose run machine build + docker compose run --rm machine build # launch web platform stack docker compose up ``` @@ -59,33 +59,53 @@ To learn more about the platform, check out our [documentation](https://github.c ```sh git clone https://github.com/ostis-ai/ostis-web-platform --recursive cd ostis-web-platform - ./scripts/install_submodules.sh # download all submodules without compilation. + # download all submodules + ./scripts/install_submodules.sh + # build sc-machine, scp-machine and sc-component-manager docker compose build ``` -- Natively (using sc-component-manager) - - ```sh - git clone https://github.com/ostis-ai/ostis-web-platform - cd ostis-web-platform - ./scripts/install_minimal_platform.sh - ./scripts/run_sc_machine.sh - # and write write the following commands in the terminal: - # components init - # components install sc_web - # components install knowledge_base_ims - ``` - - Natively - Note: Currently, only Linux (Ubuntu-20.04, Ubuntu-22.04) and macOS are supported by this installation method. If you're going to use it, it might take a while to download dependencies and compile the components. Use it only if you know what you're doing! + Note: Currently, only Linux (Ubuntu-22.04, Ubuntu-24.04) and macOS are supported by this installation method. ```sh git clone https://github.com/ostis-ai/ostis-web-platform --recursive cd ostis-web-platform - ./scripts/install_platform.sh + ./scripts/install_submodules.sh + + # to build sc-machine, see https://ostis-ai.github.io/sc-machine/build/quick_start/#start-develop-sc-machine-with-conan + cd sc-machine + # make sure, that you have `conan`, updated `cmake` and `ninja` + cmake --preset release-conan + cmake --build --preset release + conan install . --build=missing + conan export-pkg . + cd .. + + # to build scp-machine, see https://ostis-ai.github.io/scp-machine/build/quick_start/#start-develop-scp-machine-with-conan + cd scp-machine + conan install . -s build_type=Debug --build=missing + cmake --preset debug-conan + cmake --build --preset debug + cd .. + + # to build sc-component-manager, see https://ostis-ai.github.io/sc-component-manager/build/quick_start/#start-develop-sc-component-manager-with-conan + cd sc-component-manager + conan install . -s build_type=Debug --build=missing + cmake --preset debug-conan + cmake --build --preset debug + cd .. + + # to build sc-web, see https://github.com/ostis-ai/sc-web/blob/main/README.md + cd interface/sc-web + ./scripts/install_dependencies.sh + npm run build + cd ../.. + + # after building projects there should be `build/Release` folder in sc-machine and `build/Debug` folders in scp-machine and sc-component-manager ``` ## Usage @@ -94,20 +114,29 @@ To learn more about the platform, check out our [documentation](https://github.c ```sh # build the knowledge base - # required before the first startup (or if you've made updates to KB sources) - docker compose run machine build + # required before the first startup + # (or if you've made updates to knowledge base sources) + docker compose run --rm machine build # start platform services and run web interface at localhost:8000 docker compose up ``` -- Native installation +- Native + + Run in the first terminal: + + ```sh + # to run sc-machine, see https://ostis-ai.github.io/sc-machine/build/quick_start/#run-sc-machine-in-release + ./sc-machine/build/Release/bin/sc-builder -i repo.path -o kb.bin --clear + ./sc-machine/build/Release/bin/sc-machine -s kb.bin -c ostis-web-platform.ini \ + -e "sc-machine/build/Release/lib/extensions;scp-machine/build/Debug/lib/extensions;sc-component-manager/build/Debug/lib/extensions" + ``` + + Run in the second terminal: ```sh - # launch semantic network processing machine - ./scripts/run_sc_machine.sh - # *in another terminal* - # launch semantic interfaces interpreter at localhost:8000 - ./scripts/run_sc_web.sh + cd interface/sc-web + source .venv/bin/activate && python3 server/app.py ``` ## Documentation @@ -117,8 +146,7 @@ to provide opportunity to use it in information processing and knowledge generat You can access the current version of the documentation in [docs/main.pdf](docs/main.pdf) file of this project. -Documentation is written with -the help of LaTeX tools in SCn-code representation. To build documentation manually, you'll need a LaTeX distribution installed on your computer. Alternatively, we provide a Docker image to build the documentation in case you can't / don't want to install LaTeX on your PC. +Documentation is written with the help of LaTeX tools in SCn-code representation. To build documentation manually, you'll need a LaTeX distribution installed on your computer. Alternatively, we provide a Docker image to build the documentation in case you can't / don't want to install LaTeX on your PC. ### Download scn-tex-plugin and documentation for subprojects diff --git a/docker-compose.yml b/docker-compose.yml index 966d136e..a72acdb7 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,6 +1,6 @@ services: web: - image: ostis/sc-web:0.8.1-Unlock + image: ostis/sc-web:0.9.0 build: context: ./interface/sc-web restart: unless-stopped @@ -15,12 +15,13 @@ services: condition: service_healthy machine: - image: ostis/sc-machine:0.9.0-Unlock + image: ostis/sc-machine:0.10.0 build: context: ./sc-machine restart: unless-stopped volumes: - - ./:/kb + # TODO(NikitaZotov): Don't load all project sources to volume to build knowledge-base. + - ./:/knowledge-base - kb-binary:/kb.bin networks: - sc-machine @@ -31,13 +32,15 @@ services: interval: 5s timeout: 10s retries: 3 - start_period: 120s + # start_period: 120s environment: - # Use the commented env variable if you need to rebuild KB every startup. + # Use the commented env variable if you need to rebuild KB every startup. Also, use commented start period. #- "REBUILD_KB=1" - - "KB_PATH=/kb/repo.path" - - "BINARY_PATH=/sc-machine/bin" - - "CONFIG_PATH=/kb/ostis-web-platform.ini" + - "KB_PATH=/knowledge-base/repo.path" + - "BINARY_PATH=/sc-machine/build/Release/bin" + - "EXTENSIONS_PATH=/sc-machine/build/Release/lib/extensions" + - "CONFIG_PATH=/knowledge-base/ostis-web-platform.ini" + - "SC_SERVER_HOST=0.0.0.0" command: - "run" diff --git a/docs/changelog.md b/docs/changelog.md index c065ab0a..ecf1dcfe 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,15 +6,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Breaking changes + +- All build and run scripts have been removed. This was done due to changes in the build system of the sc-machine. So now this repository is most suitable for developers, not for consumers. + ### Added -- Script `run_sc_machine.sh` -- Script `build_scp_machine.sh` - Install scp-machine -- Script `install_minimal_platform.sh` -- Script `build_platform.sh` +- Script `install_minimal_submodules.sh` - Script `update_submodules.sh` -- Script `build_sc_component_manager.sh` - Install sc-component-manager ### Changed @@ -26,6 +26,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Option `--update` in `install_submodules.sh` +### Removed + +- Script `run_sc_server.sh` +- Script `run_sc_web.sh` +- Script `build_kb.sh` +- Script `build_sc_machine.sh` +- Script `install_dependencies.sh` +- Script `install_platform.sh` + ## [0.9.0-Unlock] - 22.01.2024 ### Changes diff --git a/ellipsis.yaml b/ellipsis.yaml new file mode 100644 index 00000000..648b8b2f --- /dev/null +++ b/ellipsis.yaml @@ -0,0 +1,22 @@ +version: 1.3 +about: + - "The OSTIS Platform is a solid framework to deploy existing and create new ostis-systems" + - "The OSTIS Platform is a robust framework that emphasizes semantic compatibility and modularity for intelligent computer systems" + +pr_review: + rules: + - "Code should be DRY (Don't Repeat Yourself)" + - "There should be no secrets or credentials in the code" + - "Extremely Complicated Code Needs Comments" + - "Use Descriptive Variable and Constant Names" + - "Don't log sensitive data" + - "Follow the Single Responsibility Principle" + - "Function and Method Naming Should Follow Consistent Patterns" + summary_rules: + - "Don't mention changes if the change is only whitespace" + - "When a rename occurs, mention the old and new file names, but don't mention every single spot where the file renamed occurred" + auto_review_enabled: true + enable_approve_prs: true + +pr_address_comments: + delivery: "new_commit" diff --git a/kb/ostis-web-platform-components-specification.scs b/knowledge-base/ostis-web-platform-components-specification.scs similarity index 100% rename from kb/ostis-web-platform-components-specification.scs rename to knowledge-base/ostis-web-platform-components-specification.scs diff --git a/ostis-web-platform.ini b/ostis-web-platform.ini index f98beca5..ae9cb90a 100644 --- a/ostis-web-platform.ini +++ b/ostis-web-platform.ini @@ -9,8 +9,7 @@ dump_memory_period = 3600 dump_memory_statistics = false dump_memory_statistics_period = 1200 -repo_path = kb.bin -extensions_path = sc-machine/bin/extensions +storage = kb.bin log_type = Console log_file = sc-machine/sc-memory.log @@ -35,11 +34,10 @@ log_file = sc-machine/sc-server.log log_level = Info [sc-builder] -log_file = sc-machine/scripts/sc_builder.log - -input_path = repo.path +input = repo.path +output = kb.bin [sc-component-manager] -knowledge_base_components_path = kb +knowledge_base_components_path = knowledge-base problem_solver_components_path = problem-solver interface_components_path = interface diff --git a/repo.path b/repo.path index 15e3deef..69d8219a 100644 --- a/repo.path +++ b/repo.path @@ -1,5 +1,5 @@ # ostis-web-platform -kb +knowledge-base # component manager -sc-component-manager/kb +sc-component-manager/knowledge-base diff --git a/scripts/build_kb.sh b/scripts/build_kb.sh deleted file mode 100755 index e97e3b1a..00000000 --- a/scripts/build_kb.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -if [ -z "${SC_MACHINE_PATH}" ]; -then - source "$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)/set_vars.sh" -fi - -"${SC_MACHINE_PATH}/scripts/build_kb.sh" "$@" diff --git a/scripts/build_platform.sh b/scripts/build_platform.sh deleted file mode 100755 index 102ed78b..00000000 --- a/scripts/build_platform.sh +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -CURRENT_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd) -source "${CURRENT_DIR}/formats.sh" - -stage "Build ostis-web-platform" - -"${CURRENT_DIR}/build_sc_machine.sh" "$@" -"${CURRENT_DIR}/build_scp_machine.sh" "$@" -"${CURRENT_DIR}/build_sc_component_manager.sh" "$@" -"${CURRENT_DIR}/build_sc_web.sh" "$@" - -stage "ostis-web-platform is built successfully" diff --git a/scripts/build_sc_component_manager.sh b/scripts/build_sc_component_manager.sh deleted file mode 100755 index a9718404..00000000 --- a/scripts/build_sc_component_manager.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -if [ -z "${SC_COMPONENT_MANAGER_PATH}" ]; -then - source "$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)/set_vars.sh" -fi - -"${SC_COMPONENT_MANAGER_PATH}/scripts/build_sc_component_manager.sh" "$@" diff --git a/scripts/build_sc_machine.sh b/scripts/build_sc_machine.sh deleted file mode 100755 index 9fdbabcd..00000000 --- a/scripts/build_sc_machine.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -if [ -z "${SC_MACHINE_PATH}" ]; -then - source "$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)/set_vars.sh" -fi - -"${SC_MACHINE_PATH}/scripts/build_sc_machine.sh" "$@" diff --git a/scripts/build_sc_web.sh b/scripts/build_sc_web.sh deleted file mode 100755 index 8d7ecae8..00000000 --- a/scripts/build_sc_web.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -if [ -z "${SC_WEB_PATH}" ]; -then - source "$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)/set_vars.sh" -fi - -"${SC_WEB_PATH}/scripts/build_sc_web.sh" "$@" diff --git a/scripts/build_scp_machine.sh b/scripts/build_scp_machine.sh deleted file mode 100755 index c8f966c7..00000000 --- a/scripts/build_scp_machine.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -if [ -z "${SCP_MACHINE_PATH}" ]; -then - source "$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)/set_vars.sh" -fi - -"${SCP_MACHINE_PATH}/scripts/build_scp_machine.sh" "$@" diff --git a/scripts/install_dependencies.sh b/scripts/install_dependencies.sh deleted file mode 100755 index 922f0252..00000000 --- a/scripts/install_dependencies.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -SCRIPTS_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd) -source "${SCRIPTS_DIR}/formats.sh" - -if [[ -z "${SC_MACHINE_PATH}" || -z "${SC_WEB_PATH}" ]]; -then - source "${SCRIPTS_DIR}/set_vars.sh" -fi - -function usage() { - cat </dev/null 2>&1 && pwd) SUBMODULE_SCRIPTS_DIR="${SCRIPTS_DIR}/submodule-scripts" source "${SCRIPTS_DIR}/formats.sh" -stage "Install ostis-web-platform" +stage "Clone submodules" "${SUBMODULE_SCRIPTS_DIR}/install_sc_machine.sh" -"${SCRIPTS_DIR}/install_sc_machine_dependencies.sh" --dev "${SUBMODULE_SCRIPTS_DIR}/install_scp_machine.sh" "${SUBMODULE_SCRIPTS_DIR}/install_sc_component_manager.sh" -"${SCRIPTS_DIR}/build_sc_machine.sh" -"${SCRIPTS_DIR}/build_scp_machine.sh" -"${SCRIPTS_DIR}/build_sc_component_manager.sh" -"${SCRIPTS_DIR}/build_kb.sh" -stage "ostis-web-platform is installed successfully" +stage "Submodules cloned successfully" diff --git a/scripts/install_platform.sh b/scripts/install_platform.sh deleted file mode 100755 index 95b4d4e7..00000000 --- a/scripts/install_platform.sh +++ /dev/null @@ -1,17 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -SCRIPTS_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd) -source "${SCRIPTS_DIR}/formats.sh" - -stage "Install ostis-web-platform" - -"${SCRIPTS_DIR}/install_submodules.sh" -"${SCRIPTS_DIR}/install_dependencies.sh" --dev -"${SCRIPTS_DIR}/build_sc_machine.sh" -"${SCRIPTS_DIR}/build_scp_machine.sh" -"${SCRIPTS_DIR}/build_sc_component_manager.sh" -"${SCRIPTS_DIR}/build_sc_web.sh" -"${SCRIPTS_DIR}/build_kb.sh" - -stage "ostis-web-platform is installed successfully" diff --git a/scripts/install_sc_machine_dependencies.sh b/scripts/install_sc_machine_dependencies.sh deleted file mode 100755 index 0236a3b3..00000000 --- a/scripts/install_sc_machine_dependencies.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -SCRIPTS_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd) -source "${SCRIPTS_DIR}/formats.sh" - -if [ -z "${SC_MACHINE_PATH}" ]; -then - source "${SCRIPTS_DIR}/set_vars.sh" -fi - -stage "Install sc-machine dependencies" - -"${SC_MACHINE_PATH}/scripts/install_dependencies.sh" "$@" - -stage "Dependencies of sc-machine installed successfully" diff --git a/scripts/install_sc_web_dependencies.sh b/scripts/install_sc_web_dependencies.sh deleted file mode 100755 index 86abd080..00000000 --- a/scripts/install_sc_web_dependencies.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -SCRIPTS_DIR=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd) -source "${SCRIPTS_DIR}/formats.sh" - -if [ -z "${SC_WEB_PATH}" ]; -then - source "${SCRIPTS_DIR}/set_vars.sh" -fi - -stage "Install sc-web dependencies" - -"${SC_WEB_PATH}/scripts/install_dependencies.sh" "$@" - -stage "Dependencies of sc-web installed successfully" diff --git a/scripts/run_sc_machine.sh b/scripts/run_sc_machine.sh deleted file mode 100755 index 94f54e91..00000000 --- a/scripts/run_sc_machine.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -if [ -z "${SC_MACHINE_PATH}" ]; -then - source "$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)/set_vars.sh" -fi - -"${SC_MACHINE_PATH}/scripts/run_sc_machine.sh" "$@" diff --git a/scripts/run_sc_server.sh b/scripts/run_sc_server.sh deleted file mode 100755 index 41f5185f..00000000 --- a/scripts/run_sc_server.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -if [ -z "${SC_MACHINE_PATH}" ]; -then - source "$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)/set_vars.sh" -fi - -"${SC_MACHINE_PATH}/scripts/run_sc_server.sh" "$@" diff --git a/scripts/run_sc_web.sh b/scripts/run_sc_web.sh deleted file mode 100755 index fadc1f59..00000000 --- a/scripts/run_sc_web.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash -set -eo pipefail - -if [ -z "${SC_WEB_PATH}" ]; -then - source "$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd)/set_vars.sh" -fi - -"${SC_WEB_PATH}/scripts/run_sc_web.sh" "$@" diff --git a/scripts/set_vars.sh b/scripts/set_vars.sh index 0fcd6b76..9477af4c 100755 --- a/scripts/set_vars.sh +++ b/scripts/set_vars.sh @@ -5,9 +5,6 @@ ROOT_PATH=$(cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && cd .. && pw export PLATFORM_PATH="${PLATFORM_PATH:-${ROOT_PATH}}" -export CONFIG_PATH="${CONFIG_PATH:-${PLATFORM_PATH}/ostis-web-platform.ini}" -export REPO_PATH="${REPO_PATH:-${PLATFORM_PATH}/repo.path}" - export SC_MACHINE_REPO="${SC_MACHINE_REPO:-https://github.com/ostis-ai/sc-machine.git}" export SC_MACHINE_BRANCH="${SC_MACHINE_BRANCH:-main}" export SC_MACHINE_COMMIT="${SC_MACHINE_COMMIT:-""}" @@ -31,24 +28,4 @@ export SC_WEB_PATH="${SC_WEB_PATH:-${PLATFORM_PATH}/interface/sc-web}" export IMS_KB_REPO="${IMS_KB_REPO:-https://github.com/ostis-ai/ims.ostis.kb.git}" export IMS_KB_BRANCH="${IMS_KB_BRANCH:-main}" export IMS_KB_COMMIT="${IMS_KB_COMMIT:-""}" -export IMS_KB_PATH="${IMS_KB_PATH:-${PLATFORM_PATH}/kb/ims.ostis.kb}" - -if [ -d "${SC_MACHINE_PATH}" ]; -then - source "${SC_MACHINE_PATH}/scripts/set_vars.sh" -fi - -if [ -d "${SCP_MACHINE_PATH}" ]; -then - source "${SCP_MACHINE_PATH}/scripts/set_vars.sh" -fi - -if [ -d "${SC_COMPONENT_MANAGER_PATH}" ]; -then - source "${SC_COMPONENT_MANAGER_PATH}/scripts/set_vars.sh" -fi - -if [ -d "${SC_WEB_PATH}" ]; -then - source "${SC_WEB_PATH}/scripts/set_vars.sh" -fi +export IMS_KB_PATH="${IMS_KB_PATH:-${PLATFORM_PATH}/knowledge-base/ims.ostis.kb}"