Каковы лучшие практики в разработке семантических приложений с использованием Jena & RDF - PullRequest
7 голосов
/ 05 октября 2011

Семантическая сеть: лучшие практики

Я новичок в Semantic Web, в моем приложении я использую Protege, RDF, SPARQL, Jena, Virtuaso. Меня беспокоит то, что в популярных Java Frameworks (таких как Hibernate) у нас есть слой POJO, в этом семантическом веб-приложении я могу иметь то же самое? это хорошая практика? Я хочу знать, Jena предоставляет мне соединение RDF и Model, но каковы наилучшие методы для проектирования всего приложения? Во внешнем интерфейсе я буду использовать простой HTML и JS, так что сервлеты будут там , Кроме того, я хочу знать стандарты представления онтологии, созданной в Protege в Java (без использования OntModel, потому что я не использую OWL).

Ответы [ 2 ]

1 голос
/ 10 апреля 2012

Как и в любом веб-приложении, вам придется принимать архитектурные решения для трех и более слоев.

Уровень хранения

Большинство инструментов для манипулирования онтологией (ЙенаVirtuoso, Sesame, Protege) предлагает несколько способов хранения ваших данных: внутрипроцессные (в памяти) модели, модель RDB (в выбранной вами RDBMS), хранилище в собственном формате.Выбор зависит от ограничений вашей среды и требований к производительности / масштабируемости.

Уровень манипуляции

Выбор решения здесь всегда приносит компромисс между уровнем абстракции и выразительностью.Это потому, что сложно сопоставить все онтологические конструкции с объектно-ориентированными конструкциями.

Учитывая, что вы можете выбирать между:

  • Jastor или JenaBean, который генерирует классы Java POJO, соответствующие вашим классам онтологии, и
  • Jena Model / OntModel или Protege API для минимизации RDF, OWL и онтологий на основе фреймовна более низком уровне.

Джастор оборачивает Джену OntModel или Model, но скрывает от вас внутренние органы Йены, поэтому, если вы обнаружите, что она ограничена, вы всегда можете ее расширить.Обратите внимание, что Jastor, похоже, больше не поддерживается.

Уровень представления

Технологии уровня манипуляции позволяют скрывать внутренние элементы онтологии от представления представления, поэтому вы можете использовать традиционные технологиикак JSP, чтобы произвести вывод HTML.Тем не менее, для некоторых проблем может быть удобно испустить модель в формате RDF / XML и применить к ней XSL (T) -подобное преобразование.Я нашел rx4RDF , инструмент на основе Python, полезный для поддержки такого рода преобразований.

Отказ от ответственности: Я работал 6 лет назад с упомянутыми технологиями.Вещи, возможно, изменились за это время.Следовательно:

  • Я рекомендую вам посмотреть архитектуры различных существующих семантических веб-приложений и найти ту, которая соответствует вашей проблеме.Например, здесь .
  • Несмотря на то, что была проделана большая работа в области инструментов семантической паутины, эта технология все еще не разработана.Чтобы лучше нацелиться на свой вопрос, вы можете попытаться задать свой вопрос в списках рассылки продуктов и на исследовательских форумах.
  • Кроме того, W3C поддерживает довольно длинный список инструментов для обработки RDF.
1 голос
/ 22 ноября 2011

Я бы предложил книгу, написанную профессиональным практикующим для других практиков:

Она полнапримеров, которые раскрывают Jena и связанные с ней технологии семантической паутины.

...