在dbpedia SPARQL查询的结果中获取URI

时间:2014-09-24 15:37:40

标签: sparql dbpedia

我有一个dbpedia URI的列表,我想在一个查询中获得关于每个URI的一些信息(类别,标签):

SELECT ?category ?label where {
    {
        dbpedia:Financial_Times dcterms:subject ?category .
        dbpedia:Financial_Times rdfs:label ?label .
        FILTER ( lang(?label) = 'en' )
    }
    UNION
    {
        dbpedia:London dcterms:subject ?category .
        dbpedia:London rdfs:label ?label .
        FILTER ( lang(?label) = 'en' )
    }
}

这个查询工作正常,但是我需要将URI自己添加到结果中,以便能够识别哪个结果行是哪个URI。

1 个答案:

答案 0 :(得分:1)

你可以做点什么

SELECT distinct ?who  ?category ?label where {
{
    ?who dcterms:subject ?category .
    ?who rdfs:label ?label .
    FILTER ( lang(?label) = 'en' ).
    FILTER(?who =  dbpedia:Financial_Times or ?who =  dbpedia:London )
}}

或使用像这样的技巧

 SELECT ?who  ?category ?label where {
{
    dbpedia:Financial_Times dcterms:subject ?category .
    dbpedia:Financial_Times rdfs:label ?label .
    FILTER ( lang(?label) = 'en' ).
    VALUES ?who { dbpedia:Financial_Times}

}
UNION
{
    dbpedia:London dcterms:subject ?category .
    dbpedia:London rdfs:label ?label .
    FILTER ( lang(?label) = 'en' ) . 
    VALUES ?who { dbpedia:London }
}}

第二个可能更快,但需要SPARQL 1.1