让我知道你对此的想法..
目标:提取正在传递的标签的URI(叶子URI)。
Leaf URI 被定义为没有消除歧义或重定向到另一个URI的URI。
以下查询适用于所有情况,除了URI具有重定向且重定向URI已消除歧义的情况。
查询:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?termURI ?redirects ?term ?disambiguates
WHERE
{
?termURI rdfs:label ?term .
OPTIONAL{ ?termURI <http://dbpedia.org/ontology/wikiPageRedirects> ?redirects .}
OPTIONAL{ ?termURI <http://dbpedia.org/ontology/wikiPageDisambiguates> ?disambiguates .}
OPTIONAL{ ?redirects <http://dbpedia.org/ontology/wikiPageDisambiguates> ?disambiguates .}
FILTER((?term = 'Build ups'@en))
}
任何想法我该如何解决这个问题?
答案 0 :(得分:1)
您应该可以使用FILTER NOT EXIST
来实现目标:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbpedia: <http://dbpedia.org/ontology/>
SELECT ?termURI ?term
WHERE
{
?termURI rdfs:label ?term .
FILTER NOT EXISTS
{
{ ?termURI dbpedia:wikiPageRedirects [] }
UNION
{ ?termURI dbpedia:wikiPageDisambiguates [] }
}
FILTER((?term = 'Build ups'@en))
}
此查询表达的是您要消除任何重定向或消除链接歧义的匹配。
有关这些语法元素的更多详细信息,请参阅SPARQL规范中的Filtering Using Graph Patterns。