Я хотел бы знать, как лучше всего sparql получить все породы собак и все их информационные данные из dbpedia. Я пробовал это:
SELECT * WHERE { { <http://dbpedia.org/resource/Dog_type> ?p ?o } UNION { ?s ?p <http://dbpedia.org/resource/Dog_type> . ?s ?p ?o . ?p ?p2 ?o2 } }
Но результат далек от ожидаемого, как:
http://dbpedia.org/resource/Basque_Shepherd_Dog dbpedia2:coat "moderately long"^^rdf:langString
Во-первых, обратите внимание, что <http://dbpedia.org/resource/Dog_type> не относится к классу собак пород.
<http://dbpedia.org/resource/Dog_type>
По нескольким причинам я предлагаю вам выполнить эту работу на DBpedia Live ,вместо DBpedia [снимок] .
Начните с описания вашего примера породы, http://dbpedia.org/resource/Basque_Shepherd_Dog.
http://dbpedia.org/resource/Basque_Shepherd_Dog
Затем рассмотрите даст ли *1017* запрос, подобный следующему, , что вы хотите -
SELECT DISTINCT * WHERE { ?breed a <http://dbpedia.org/class/yago/DogBreeds> ; ?p ?o } ORDER BY ?breed ?p ?o LIMIT 1000