Смешивание RDF и ORM подходов - PullRequest
4 голосов
/ 24 октября 2008

Я работаю в команде, занимающейся исследованием технологического стека для проекта по интеграции систем с «зеленым полем». Часть нашего стека избранных технологий использует Hibernate для сохранения своего внутреннего состояния и предоставляет хуки для транзакций Hibernate, так что бизнес-объекты остаются синхронизированными с состоянием этой утилиты. Отлично, за исключением того, что нам нужно хранить информацию о сущностях неизвестного типа и связывать эти данные с предопределенными типами. Нам нужно масштабируемое хранилище данных, которое не требует предварительного определения схемы. Лучшее место - смешать данные RDF и управляемые объекты Hibernate.

Сталкивались ли вы с подобным требованием и какие подходы вы можете порекомендовать?
Любая смесь RDF / ORM должна поддерживать нечастые крупномасштабные запросы для отчетов и исследования данных, а также частые целевые операции чтения и записи для поддержки транзакций.

Ответы [ 4 ]

1 голос
/ 24 октября 2008

Я использую RDF в своем проекте, и мы использовали OWL для определения онтологии для данных RDF и придания им некоторой структуры. Оттуда мы генерируем классы C # из онтологии OWL. Приятно то, что вы можете добавлять дополнительные данные о своей теме, но при этом иметь структуру классов, которая имеет смысл в большинстве случаев.

0 голосов
/ 19 января 2010

На вики-странице Tripresso есть список картографов Object-RDF, которые позволяют работать с данными RDF объектно-ориентированным способом. Я сомневаюсь, что любой из них напрямую интегрируется с Hibernate, но они, по крайней мере, обеспечивают нечто подобное.

0 голосов
/ 17 июля 2009

Рассматривали ли вы определение модели гибернации для известных данных и добавление CLOB с XML для хранения неизвестных вещей? Таким образом, вы в основном сохраняете свой обычный код гибернации и только тогда, когда вам нужен доступ к дополнительным материалам, вы загружаете XML из полей CLOB и обрабатываете его.

Взгляните здесь на похожую проблему с аналогичным решением.

0 голосов
/ 16 июля 2009

Одним из решений является сохранение объектной модели на уровне трехуровневого хранилища RDF, например, с помощью классов для

  • узлы: Uris, пробелы и литералы
  • операторы: наборы из трех или более узлов (три для тройки RDF, дополнительные узлы для мета)

Выполнение запросов в таком хранилище, по сути, выполняет тройное / n-кортежное сопоставление шаблонов для операторов.

...