Создание запроса тройного хранилища с использованием SQL - как найти все тройки, имеющие общий предикат и объект - PullRequest
2 голосов
/ 21 апреля 2010

У меня есть база данных, которая работает как тройное хранилище, за исключением того, что это просто простая база данных MySQL.

Я хочу выбрать все тройки, имеющие общий предикат и объект. Информация о RDF и тройках

Кажется, я не могу обработать SQL.

Если бы у меня был только один предикат и сопоставляемый объект, я бы сделал:

select TRIPLE from TRIPLES where PREDICATE="predicateName" and OBJECT="objectName"

Но если у меня есть список (HashMap) из множества пар (Предикат_имя, имя_объекта), я не уверен, что мне нужно делать.

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

Ответы [ 2 ]

1 голос
/ 21 апреля 2010

Вероятно, загрузите вашу хэш-карту во временную таблицу и введите JOIN в ваш тройной магазин.

0 голосов
/ 23 апреля 2010

выберите TRIPLE из TRIPLES, где предикат в (?,?,?, ........) и OBJECT в (?,?,?,?, .....)

Заполните `? ', Используя HashMap.keys и HashMap.values. В зависимости от языка и метода доступа к данным, используйте либо связанные параметры (ODBC и другие методы), либо сами расширяйте параметры, создавая sql.

...