1

Тема: Семантическое программирование

В настоящий момент ищу людей, готовых поддержать проект idobi.ru.

Он отличается от известных систем семантического моделирования, тем что узлы сети имеют не только название и связи, но и содержат данные или программный код. Множественность онтологий. Создание онтологий по ходу моделирования. Схема:

http://idobi.ru/?entity_id=_275ede08fc5 … bd31025484

Сам сайт создан с использованием семантического программирования.

Thumbs up +1 Thumbs down

2

Re: Семантическое программирование

В firefox не отображается почему то сайт, в хроме все ок. Перенесу сообщение в блог.  cool

3

Re: Семантическое программирование

Спасибо! smile

В таком случае помогает перезагрузка страницы в браузере. F5

Похоже, у меня проблемы с хостингом. Бывает страница генерируется за 0,01 секунды, но иногда на сборку страницы уходит до 5 секунд. В коде узлов типа "страница" выполняется поиск смежных узлов, которые хранят данные о заголовках, о параграфах и проч. Функция поиска имеет ограничение: она ищет узлы, если прошло не более 5 секунд с начала запуска скрипта. Объекты узлов хранятся в виде текстовых файлов. Возможно, когда эти файлы уходят из оперативной памяти сервера исполнение скрипта замедляется, так как ему нужно подгружать много файлов с диска. Надо что-то сэтим делать. Пока не знаю, правда, что именно...

Демонстрационное видео на английском есть здесь:

http://www.youtube.com/watch?v=zug4mkHRt9A

Thumbs up Thumbs down

4

Re: Семантическое программирование

Увеличил ограничение по времени до 10 секунд. Надеюсь, это решит проблему.

Thumbs up Thumbs down

5

Re: Семантическое программирование

Да, уже лучше значительно. А с какими системами семантического моделирования вы сравниваете свою разработку?

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

6

Re: Семантическое программирование

Сравнивал с XML, RDF, OWL. Недавно, наткнулся в интернете на сайт со статьёй о семантическом программировании: www.semantic-programming.org. Автор Oli Sharpe критикует подходы к программированию вообще, так как они сложились в 60-е годы прошлого века и исходя из возможностей того времени. Он пердлагает ставить программы в один ряд с данными и представлять их в виде единого графа. Предлагаемый проект чем-то напоминает такой подход, однако он не направлен на изменение парадигмы программирования как таковой, а только той её части, которая касается интернета.

Если Oli Sharpe исходил, вероятно, из проблем взаимодействия человека с современным программным обеспечением, настройка которого уже сродни программированию, то в данном проекте отправной точкой была задача, сделать модель, скажем, дома, и представить её на сайте.

Использование направленного графа для хранения данных казалось само собой разумеющимся. Эта структура уже прочно прижилась в компьютерном мире (например,UML). Также она широко используется в лингвистике. Предложение "Коля красит забор синей краской" естесственным образом раскладывается на рёбра графа, организованный вокруг сказуемых (явных или неявных): "красит-> Коля", "красит -> забор", "красит -> краской", "краской -> синей".  Можно выстроить и по-другому (менее затейливо): "Коля -> красит -> забор -> синей -> краской". По мере добавления узлов и связей, которые моделируют конкретные предметы, автоматически создаётся онтология (как схемя связи понятий). Так если в данном случае "забор" связан с "красит", то в другом случае "забор" будет связан с "ломает". На уровне онтологии получится, что понятие "забор" связано с обоими действиями. При поиске можно будет вибрать цепочки узлов, где забор красят или его ломают.

Представляемая система предназначена не только для структурирования данных, но и для организации программного кода. Создав однажны узел "часы" и присоединив к нему код для их отображения на экране (PHP+CSS+JavaScript+HTML), в последующем достаточно просто создать узел с именем "часы", программный код подтянется автоматически. Более того программный код можно брать с другого сайта.

Помимо связей, которые жёстко прописаны в структуре узлов направленного графа, существуют "связи через программный код", который может быть подключен к любому из узлов. Эти небольшие программки анализируют окружение узла, в котором они расположены и выдают результат в зависимости от того, что они обнаруживают вокруг себя. Например, узел "параграфЫ" содержит код, который просматривает дочерние узлы, находит среди них узлы с названием "параграф", извлекает из них данные (текст параграфа), обёртывает в HTML-тэг "<p>", выстраивает их руг за другом и в виде такой строки возвращает в браузер. Сегодня у вас три параграфа, завтра вы добавите ещё пять. Код внутри родительского узла "параграфЫ" менять не нужно, он сам всё поймёт.

Онтология используется для подсказки, какие узлы могут быть в качестве дочерних или родительских у вновь созданного узла того или иного типа. Онтологии ограничены. То есть, создаём папку "дом", в ней потом автоматически появится папка с объектами элементов дома и папка с названиями этих элементов. Так выделяются предметные области и обходится поблема синонимов.

Представление процессов также выполнено иначе. Если в известных системах создаётся узел с названием действия, то в данном случае это справедливо только для статических глаголов (находится, содержать, зеленеть). Прочие процессы существуют в виде узлов только ограниченное время. Когда к ним происходит обращение, они меняют имеющийся граф и затем самоуничтожаются. Перед началом действия мы видим связь "забор - жёлтый". По окончании действия мы видим связь "забор - синий".


Очень интересно узнать, что делают упомянутые авторы.

Отредактировано mem-memov (2011-01-22 14:07:26)

Thumbs up Thumbs down

7

Re: Семантическое программирование

решают различные задачи по машинному обучению и искусственному интеллекту с использованием такого представлений - подобных вашему интерфейсу - видел пару статей и одну диссертацию - был на защите. сразу не обратил внимание на схожесть; было это лет 6 назад, а может и 7;

Динамические семантические сети как раз позволяют это сделать. был забор желтый, стал зеленый или еще какой нибудь.

я тут не давно как раз писал по поводу операционной семантики в OWL.
sysML  c OWL и почти тоже что у вас, но может в реализации чуть позже. Или что-то не верно я понял?

ЗЫ что делать если в вашей сети у меня часы лучше ваших работают, то есть их механизм совершеннее, а ваш универсальный механизм, мне не подойдет?

идея semprog мне напоминает linkeddata c поддержкой операционной семантики. и ничего военного  cool

8

Re: Семантическое программирование

Спасибо за информацию. Очень ценно. Век живи, век учись, как говорится.

Представленная система является скорее прототипом, чем готовым продуктом. Его цель продемонстрировать, что семантический поход можно применять для создания сайтов. Эта задача выполнена: есть модель текстового сайта и модель "предметного" сайта.

Что касается часов, то в узле не обязательно использовать код по умолчанию. По хорошему, нужно добавить возможность перелистывания всех имеющихся реализаций для слова "часы".

Отредактировано mem-memov (2011-01-23 21:31:40)

Thumbs up Thumbs down

9

Re: Семантическое программирование

Начал обсуждение в w3.org Semantic Web Interest Group:

http://lists.w3.org/Archives/Public/sem … /0185.html

Thumbs up Thumbs down

10

Re: Семантическое программирование

Shcherbak пишет:

я тут не давно как раз писал по поводу операционной семантики в OWL.

я бы почитал. можно ссылку?

Thumbs up Thumbs down