Code Monkey home page Code Monkey logo

useyourmind's Introduction

useyourmind - web application framework for NLP

Веб-фреймворк для работы с естественным языком

Структура приложения

/

Модули приложения:

  • starter.os запуск приложения и управления процессами.

  • webserver.os веб-сервер.

  • showdata.os контроллер сеанса, интерфейс приложения.

  • pagedata.os интерпретатор структуры данных (обработка и формирование представления данных).

  • dataserver.os сервер данных (обработка запросов к данным).

  • dbaccess.os модуль работы с контейнерами файлов данных.

  • treedb.os модуль работы со справочником.

  • morphserver.os сервер морфологии.

/doc

Документация в формате markdown

/data

Файлы данных пользователей

/lib

Модули внешних библиотек подключаемых объектов:

  • Объекты.os объекты интерфейса

  • Функции.os функции интерпретатора данных

  • Операторы.os операторы интерпретатора данных

  • Сем.os модуль семантического анализатора

  • markdown.os парсер markdown разметки

/morph

Связи.dat - файл данных морфологии

/resource

Файлы веб-интерфейса

Для запуска локально на своем компьютере необходимо:

Скачать последнюю версию useyourmind + Uascript: https://github.com/vasvl123/useyourmind/releases

Под Windows:

Установить библиотеку .Net версии не ниже 4.5 - для Windows, а для linux mono-complete не ниже 5.2.

Перейти в папку useyourmind и выполнить команду: uascript starter.os

Открыть в браузере ссылку: http://localhost:8888

Под Linux:

Установить пакет mono-complete не ниже 5.2.

Перейти в папку useyourmind и выполнить команду: mono uascript starter.os

Открыть в браузере ссылку: http://localhost:8888

Запустить в режиме сайта на порту 8080: mono uascript starter.os site 8080

Демонстрация работы фреймворка: https://uascript.net/

Описание:

Модуль starter.os запускает процессы webserver.os, dataserver.os, morphserver.os. Отдельные процессы showdata.os запускается для каждого пользовательского соединения. Каждый процесс использует отдельный TCP порт для обмена данными.

Веб-сервер (модуль webserver.os) может запускается в локальном режиме, или в режиме веб-сайта. По умолчанию принимает подключения на порту 8888.

Файл контейнера данных (.sdb) содержит заголовки и файлы данных. Доступ к файлам данных осуществляется через отдельный процесс - сервер данных (dataserver.os). Сервер обрабатывает запросы ассинхронно, отдавая результаты по мере выполнения запросов.

Файл данных *.sd - это текстовый файл, каждая строка которого хранит один узел DOM. Свойства узлов хранятся в виде пары ключ - значение, разделенные символом табуляции. Код узла соответствует номеру строки в файле. Узел загружается в память в виде структуры, содержащей стандартные свойства: Код, Имя, Значение, и ссылки на другие узлы: Соседний, Дочерний, Атрибут, Старший, Родитель.

Модуль процесса пользователя (showdata.os) хранит текущее состояние сеанса, производит обработку запросов пользователя, содержит редактор структуры данных. Редактор запускается в отдельном окне из главного меню программы. Для изменения структуры данных нужно выбрать нужный узел и выполнить с ним действия. Узлы можно создавать, удалять, копировать, вырезать и вставлять, изменять имя и значение. Имя узла - его тип - определяет, как он будет обрабатываться внутренним интерпретатором (в модуле pagedata.os).

Модуль интерпретатора формирует представление данных для отображения в браузере. Имя узла опреляет каким образом он будет обработан интерпретатором.

  • О (Объект) - имеет структуру свойств и включает в себя другие объекты.
  • Ф (Функция) - вызывает функцию из подключаемой библиотеки. Результат выполнения функции отображается как содержимое узла и может быть интерпретирован.
  • А (Аргумент) - аргумент функции.
  • О (Оператор) - выполняет действие над вложенными узлами.
  • С (Ссылка) - устанавливает связь со свойством объекта.
  • З (Значение) - интерпретирует значение свойства объекта.
  • Свойство - получает значение свойства ссылки (структуры)
  • Атрибут - получает значение атрибута узла.
  • Первый, Соседний - передает ссылку на текущий или соседний узел.
  • Истина, Ложь, Неопределенно, Пустой, Число, Строка - передает соответствующее значение. Теги HTML передаются в виде HTML разметки.

Результат (в виде обычного HTML) передается браузеру и загружается в определяемый идентификатором узел DOM страницы. Для работы с DOM используется библиотека JQuery. В качестве шаблона используется CoreUI и BootStrap 4.

Сервер морфологии (morphserver.os) выполняет поиск грамматических форм слов и их связей в предложении. Для доступа к иерархическому справочнику Связи.dat используется модуль treedb.os. Скачать архив справочника по ссылке: https://uascript.net/resource/Связи.dat.zip Формируется скриптом morph5.os (не быстро)

Используется словарь OpenCorpora http://opencorpora.org/files/export/dict/dict.opcorpora.txt.zip

Интерпретатор uascript.exe https://github.com/vasvl123/uascript.net является форком проекта OneScript https://github.com/EvilBeaver/OneScript Различия касаются объектов сетевого обмена.

useyourmind's People

Contributors

gitter-badger avatar vasvl123 avatar

Watchers

 avatar

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.