2014-11-30 1 views
0

Я работаю в DBPedia. У меня проблема при использовании группы в Sparql.Группа Не работает в DBPedia

У меня есть этот код:

SELECT ?res ?titulo 
     WHERE { 
      ?res rdf:type <http://dbpedia.org/class/yago/JaguaresDeChiapasFootballers> . 
      ?res rdfs:label ?titulo . 
     }  
GROUP BY (?res) 
LIMIT 15 

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

Может кто-нибудь мне помочь?

ответ

5

Ваш исходный запрос не является законным SPARQL. Если вставить его в валидатора запроса SPARQL в sparql.org, вы получите следующее сообщение: переменная ключа

негрупповой в SELECT:? Título

Если группа по Рез? , то вы не можете выбрать негрупповую переменную titulo. Если вам просто нужно одно значение titulo per? Res, то вы можете использовать & hellip;

select ?res (sample(?titulo) as ?title) 
… 

SPARQL results

Если вы хотите получить список названий, то вы можете использовать GROUP_CONCAT конкатенировать названия:

select ?res (group_concat(?titulo;separator=', ') as ?title) 
… 

SPARQL results

+1

Другой подход заключается в ЗАКАЗА BY? Res, так что связанные элементы смежны в потоке результатов, а затем обрабатывают их, зная этот факт. – AndyS