2013-12-19 3 views
0

У меня есть сценарий, когда пользователь может выбрать несколько классов, и мне нужно создать динамический запрос SPARQL для извлечения всех данных, которые удовлетворяют всем существующим отношениям (если они есть) между всеми выбранными классами. Как мне это достичь?Как получить все семантические данные, которые являются общими для трех классов с использованием SPARQL?

Предположим, что пользователь выбирает три класса - Население, Имя лекарственного средства, побочные эффекты. Теперь он пытается найти все общие данные, которые существуют между этими тремя классами. Как создать запрос SPARQL для достижения этого? Мне нужен образец запроса SPARQL, который объединяет эти три класса.

+0

Что именно вы подразумеваете под «общим между»? Вы имеете в виду, что все они имеют одинаковое значение для некоторого свойства (или все значения какого-либо свойства какого-либо другого ресурса)? –

ответ

2

Если вы хотите, чтобы получить свойства, для которых некоторые ресурсы имеют одинаковое значение (и поэтому вы, вероятно, хотите, чтобы получить это значение, тоже), вы можете использовать запрос следующим образом:

select ?p ?o where { 
    dbpedia:Bob_Dylan ?p ?o . 
    dbpedia:Tom_Waits ?p ?o . 
    dbpedia:The_Byrds ?p ?o . 
} 

SPARQL results from DBpedia

p            o 
-------------------------------------------------------------------------------------------------------------------------- 
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://www.w3.org/2002/07/owl#Thing 
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/ontology/Agent 
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://schema.org/MusicGroup 
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/class/yago/YagoLegalActor 
http://www.w3.org/1999/02/22-rdf-syntax-ns#type http://dbpedia.org/class/yago/YagoLegalActorGeo 
http://purl.org/dc/terms/subject     http://dbpedia.org/resource/Category:Rock_and_Roll_Hall_of_Fame_inductees 
http://dbpedia.org/ontology/recordLabel   http://dbpedia.org/resource/Asylum_Records 
http://dbpedia.org/ontology/genre    http://dbpedia.org/resource/Rock_music 
http://dbpedia.org/property/genre    http://dbpedia.org/resource/Rock_music 
http://dbpedia.org/property/label    http://dbpedia.org/resource/Asylum_Records 
http://dbpedia.org/property/wordnet_type   http://www.w3.org/2006/03/wn/wn20/instances/synset-musician-noun-1 

Можно также использовать запрос, чтобы это найти предметы, которые связаны со всеми тремя из этих лиц, по той или иной собственности (но на DBpedia он не имеет никаких ответов):

select ?s ?p where { 
    ?s ?p dbpedia:Bob_Dylan, dbpedia:Tom_Waits, dbpedia:The_Byrds . 
} 
Смежные вопросы