2016-12-23 2 views
2

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

:s1 :p1 "v11" 
:s1 :p2 "v12" 
:s2 :p2 "v22" 
:s2 :p3 "v23" 

Я хочу, чтобы это было так

----| p1 | p2 | p3 
s1 | v11 | v12 | (null) 
s2 | (null) | v22 | v23 

Это может кажется немного странным, так как в большинстве случаев, мы должны экспортировать в другой стороне, но здесь Я хочу передать эти данные в программное обеспечение для интеллектуального анализа данных.

ответ

3

ИСПОЛЬЗОВАНИЯ ДОПОЛНИТЕЛЬНО

Если вы знаете, предикаты заранее, вы можете обернуть каждый предикат в ЗАКАЗУ, чтобы получить все предикаты в той же строке для всех субъектов - даже если некоторые из них отсутствуют. Вот example:

SELECT ?name ?birth ?death 
WHERE { 
?person foaf:name ?name . 
?person dbo:birthPlace :Berlin . 
OPTIONAL { ?person dbo:birthDate ?birth . } 
OPTIONAL { ?person dbo:deathDate ?death .} 
} 
ORDER BY ?name 
LIMIT 1000 

Я держу свой оригинальный ответ для справки:

Использование UNION (создает отдельные строки для каждого предиката)

Если вы знаете, предикаты заранее, вы можете используйте UNION, чтобы получить все предикаты для всех предметов, даже если некоторые из них отсутствуют. Вот example:

SELECT ?name ?birth ?field 
WHERE { 
?person foaf:name ?name . 
?person dbo:birthPlace :Berlin . 
{ 
?person dbo:birthDate ?birth . 
} UNION { 
?person dbo:field ?field . 
}} 
ORDER BY ?name 
LIMIT 100 
+0

Спасибо @ Рене, но в вашем примере я вижу, что каждое значение имеет отдельную строку (например, «Agnete Braestrup»), и я думал над тем, как экспортировать весь граф. И да, у меня нет нескольких значений для каждого предиката. –

+0

@Mostafaabdo \t Я обновил свой ответ решением, которое держит все в одной строке. –

+0

Все кредиты для @ René, и здесь это «измененная» версия для экспорта всех предикатов (конечно, для использования с «ограниченным» графиком). получить все предикаты 'SELECT DISTINCT? Р WHERE { \t? S? Р? О }' Экспорт их, чтобы преуспеть и использовать функцию Concat собрать запрос как в оригинальный ответ. –

Смежные вопросы