Как вытащить соответствующую информацию из нескольких репозиториев? - PullRequest
3 голосов
/ 09 марта 2011

Постановка проблемы:

Информация распространяется по нескольким репозиториям - SAP, DB и т. Д. Теперь, когда я ищу какую-то вещь, я хочу получить соответствующие данные из всех репозиториев.,(Пока предположим, что я могу извлечь данные из всех этих репозиториев в огромном формате XML.)

Как добавить смысл в мой поиск?

Я ищуРешение на основе Java.

Поможет ли мне Jena / Semantic-Web?Могу ли я определить отношения в RDF?

Имея очень мало знаний о семантической сети, я пытаюсь понять, решает ли она мою проблему.Пожалуйста, поправьте меня, если я ошибаюсь.

Ответы [ 4 ]

7 голосов
/ 14 марта 2011

Вы задали здесь несколько вопросов (что, помимо прочего, на самом деле не является наилучшей практикой для StackOverflow), но я думаю, что ключевой вопрос, который вы задаете:

Как добавить смысл в мой поиск?

Это действительно зависит от четкого понимания ценности бизнеса или опыта пользователя, которого вы пытаетесь предоставить. «Значение» является неточным термином - я думаю, вам будет гораздо проще проанализировать, какие технологии вам нужны, если вы сможете быть более точными в категориях вопросов, которые ваши пользователи должны задавать, и какие ответы они найдут полезными.

С учетом этого предостережения мой общий ответ на ваш общий вопрос будет состоять в том, что для интеграции информации из разнородных, разнородных источников информации вы должны иметь возможность концептуально связать их вместе с точки зрения того, что ваши пользователи поймет . Таким образом, не только низкоуровневое «это поле базы данных соответствует этому элементу XML», но, например, «этот набор данных регистрирует взаимодействия клиентов с отделом продаж, это статистика пропускной способности производственной линии, и они связаны через заказы в очереди заказов ". Это немного расплывчато, но это выдуманный пример, чтобы дать представление о том, что я имею в виду. Таким образом, способ связать информацию CRM со статистикой производства состоит в том, чтобы иметь некоторую коллекцию понятий , с которой вы можете связать все. В мире семантической паутины мы называем это онтология . Разработка онтологии, охватывающей весь ваш бизнес, вероятно, будет сложной, но вы можете, грубо говоря, применять гибкие методы для постепенного развития вашего понимания и вашей онтологической модели.

Получив онтологию, вы можете использовать библиотеки, такие как Jena, для того, чтобы помочь вам разобраться в извлечении информации из разрозненных источников и сохранить ее в форме, которая может быть связана с вашей онтологией. Преимущество явного указания своей онтологии с использованием языка, такого как RDFS, или, что еще лучше, OWL, заключается в том, что вы можете использовать инструменты автоматического рассуждения, чтобы автоматически делать новые выводы из ваших данных, или же представлять некоторые из ваших отображений данных как правила. Некоторые люди считают правила более абстрактным и понятным обозначением.

Есть много способов решить проблему, которую вы описываете, и Йена не даст вам решения per se . Я думаю, что наличие подходящей онтологии будет очень важно для того, что я понимаю в вашей проблеме. То, насколько сложной должна быть эта онтология, будет зависеть от сложности данных и потребностей пользователей, которые будут зависеть от более четкого понимания проблемы на уровне бизнеса. Как только вы это сделаете, выбор правильных инструментов RDF / OWL будет относительно простым.

2 голосов
/ 09 марта 2011

Вы можете использовать такой подход, как ISO 15926. В этом стандарте у вас есть абстрактная модель (201 объект) и RDL (справочная библиотека данных) для конкретной области знаний. Чтобы использовать один глобальный запрос ко всему хранилищу, вы можете использовать сопоставление между различными приложениями и сохранять эквивалентность сопоставления в RDF. Таким образом, вы должны использовать фасад для каждого приложения.

1 голос
/ 16 марта 2011

Интересный вопрос.

Если действительно существует какая-то общая концептуальная модель, которая позволяет вам сопоставить все данные с последовательной онтологией, вы можете следовать по маршруту, который рекомендует Ян Дикинсон.Если вы используете SAP, я предполагаю, что вы говорите о больших объемах данных и об умеренно сложной бизнес-сфере.Такой проект был бы серьезным предприятием - и технический элемент - это только начало.

Я работал над таким проектом задолго до того, как родилась семантическая паутина, и это был огромный, сложный зверь проекта.Проблема была не столько технической, сколько бизнес-специалистов, у которых были противоречивые представления о значении слов, отношениях между бизнес-концепциями («все сотрудники должны принадлежать одному отделу. О, кроме Фреда, который занимается финансами»).), и ему было трудно работать с абстракциями, которые мы любили использовать.создать индекс и позволить пользователям перемещаться по этому механизму.Конечно, это может означать создание довольно сложного веб-приложения, но я думаю, что большинство людей привыкли к Google, чтобы найти то, что они хотят ...

1 голос
/ 14 марта 2011

Я вижу два подхода:

  • Извлечение данных, индексирование их (Lucene?) И поиск в вашей «копии» с использованием пользовательского индекса.Я бы избегал этого, если это возможно, поскольку перемещение большого объема данных обычно является плохой идеей.

  • Переместите некоторых агентов как можно ближе к источникам данных, выполняйте запросы локально (близко к SAP), DB и т. Д.) И переносите только ту часть результата, которая вам действительно нужна.

Рассмотрите возможность рассматривать каркасы интеграции как Apache Camel или Spring Integration.

...