问题
I have links to a number of DBpedia pages like:
http://dbpedia.org/resource/Harry_Potter
http://dbpedia.org/resource/Twilight_(series)
http://dbpedia.org/resource/Bible
http://dbpedia.org/resource/Manga
I would like to get the Abstract and Thumbnail entities for each one of them.
I can get them individually using:
For Abstract:
PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX res: <http://dbpedia.org/resource/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?label WHERE { <http://dbpedia.org/resource/Harry_Potter> dbo:abstract ?label . FILTER (lang(?label) = \'en\')}
For Thumbnail:
PREFIX dbo: <http://dbpedia.org/ontology/> PREFIX res: <http://dbpedia.org/resource/> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> SELECT ?thumbnail WHERE { <http://dbpedia.org/resource/Harry_Potter> dbo:thumbnail ?thumbnail}
Is it possible to combine the above two queries into a single one. I am very new to SPARQL and couldn't get it to work.
Additionally, is there a better way to query than my current approach?
回答1:
Of course it's possible to combine them, the trivial way to do it would be just to concatenate the bodies of the two WHERE
s and adjust the SELECT
accordingly:
SELECT ?label ?thumbnail
WHERE {
<http://dbpedia.org/resource/Harry_Potter> dbo:abstract ?label .
FILTER (lang(?label) = 'en')
<http://dbpedia.org/resource/Harry_Potter> dbo:thumbnail ?thumbnail .
}
If you want to be more succinct, you can combine two triples with the same subject using ;
:
SELECT ?label ?thumbnail
WHERE {
<http://dbpedia.org/resource/Harry_Potter>
dbo:abstract ?label ;
dbo:thumbnail ?thumbnail .
FILTER (lang(?label) = 'en')
}
And since you defined the res:
prefix, you can use that to shorten the URI:
SELECT ?label ?thumbnail
WHERE {
res:Harry_Potter
dbo:abstract ?label ;
dbo:thumbnail ?thumbnail .
FILTER (lang(?label) = 'en')
}
来源:https://stackoverflow.com/questions/35775721/how-to-query-a-particular-dbpedia-resource-page-for-multiple-entities