Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx55 / note1.docx
Скачиваний:
19
Добавлен:
01.08.2013
Размер:
138.2 Кб
Скачать

4.1 Введение

Sc-web — программная реализация web-ориентированного интерпретатора sc-моделей.

Данная реализация включает в себя следующие подсистемы:

  • программная реализация sc-памяти (sc-хранилище) ориентированная на обработку и хранение знаний в web;

  • программная реализация интерпретатора языка SCp;

  • программная реализация компонентов ядра пользовательских интерфейсов;

  • базовый набор операций для обработки знаний и навигации по ним;

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

Основная цель, которая преследуется при разработке этого набора программных средств — это предоставить разработчикам средства, которые позволят интерпретировать sc-модели интеллектуальных систем в web-ориентированном варианте.

4.2 Общая структура

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

  • база знаний;

  • машина обработки знаний;

  • пользовательский интерфейс.

За хранение знаний и ассоциативный доступ к ним отвечает программная реализация sc-памяти (sc-хранилища). Она включает в себя все необходимые для этого средства, а также реализацию различных программных интерфейсов для работы с БЗ.

Машина обработки знаний в большей своей части реализуется с помощью языка SCp. Но благодаря различным программным интерфейсам доступа к БЗ в sc-памяти, многие из sc-агентов могут быть реализованы на различных языках программирования. А с использованием сетевого интерфейса доступа к БЗ sc-агенты могут выполняться и на других серверах.

Центральным звеном всей системы является sc-память, так как взаимодействие между различными подсистемами (пользовательский интерфейс, машина обработки знаний и др.) происходит путем внесения изменений в состояние базы знаний.

                  1. 4.3 Программная реализация sc-памяти

Программная реализация sc-памяти в данном случае используется с сетевой реализацией интерфейса доступа. В качестве протокола для передачи данных по сети используется SCTP (Semantic Code Transport Protocol) [http://github.com/deniskoronchik/sc-machine/wiki/sctp].

В данный момент на языке Ptyhon, существует реализация данного протокола и сервера, который его поддерживает [http://github.com/deniskoronchik/sc-machine/tree/master/sc-network].

        1. 4.4 Программная реализация интерпретатора языка sCp

    1. 4.5 Программная реализация компонентов ядра пользовательских интерфейсов

Пользовательский интерфейс sc-системы строится по тем же принципам, что и сама система. По сути пользовательский интерфейс — это интеллектуальная система, которая решает задачу обеспечения диалога пользователя с системой. В машине обработки знаний пользовательского интерфейса есть особенности: помимо sc-операций, которые работают только с базой знаний появляются так называемые «эффекторные» и «рецепторные» операции. «Эффекторные» операции реагируя на изменения в БЗ производят некоторые изменения во внешней среде (вывод). «Рецепторные» операции реагируя на изменения во внешней среде, производят изменения состояния базы знаний (ввод).

При построении пользовательского интерфейса используется компонентный подход. Каждый компонент представляет собой некоторый фрагмент базы знаний и набор sc-операций.

Пользовательский интерфейс системы требует достаточно больших вычислительных мощностей, а если еще учесть, что с системой в web могут работать сотни и тысячи пользователей одновременно, то от того каким образом будет реализован пользовательский интерфейс будет зависеть и время отклика системы и необходимые для её работы ресурсы.

Важно помнить, что при работе в web часть необходимых вычислений могут выполняться на клиентской части. Мы исходим из того, что запрос пользователя не должен обрабатываться более 100 миллисекунд. Но этого очень сложно достичь при достаточно сложных задачах. Поэтому предлагается использовать ajax запросы со стороны клиента. Чтобы пользователь видел результаты по мере их формирования. В качестве яркого примера можно посмотреть на сайт http://www.wolframalpha.com/input/?i=x*y. Это позволяет пользователю приступить к поиску необходимой для него информации не дожидаясь полного ответа.

Схема организации пользовательского интерфейса выглядит следующим образом:

Важно, что при такой организации интерфейс строится на основе компонентного подхода, при этом серверная часть может быть физически разделена на множество серверов, которые параллельно решают различные задачи, что позволяет масштабировать систему. Речь идет о том, что различные задачи трансляции могут выполняться на разных серверах. Важно лишь то, что компоненты ядра пользовательских интерфейсов реализуются на одном сервере, который по сути своей отвечает за распределение задач по серверам, которые обеспечивают трансляцию.

Таким образом клиентская часть является очень “тонкой”, по сути на стороне клиента происходит лишь отображение некоторых внешних конструкций, которые уже сформированы сервером или же редактирование внешних конструкций и отправка их на сервер для дальнейшей обработки. Каждый компонент визуализации и редактирования внешних конструкций на стороне клиента представляет собой некоторое приложение написанное на JS. Данные между этим приложением и сервером передаются с помощью JSON. Важно: для каждого внешнего языка необходим свой формат кодирования информации в JSON.

Таким образом, необходимо реализовать следующие подсистемы:

  • компоненты ядра пользовательского интерфейса. Данную подсистему планируется реализовывать на языке Python с использованием Django. В её задачу входит получение (отправка) сообщений от клиента и запуск необходимых трансляторов;

  • реализовать транслятор компоненты трансляции с SCg-кода в SC-код и обратно. Реализуются также на язке Python + Django (для работы с JSON);

  • реализовать транслятор компоненты трансляции с SCn-кода в SC-код и обратно. Реализуются также на язке Python + Django (для работы с JSON).

Соседние файлы в папке docx55