我在本地GraphDB三元组存储中运行一个SPARQL查询,该存储包含一个指向DBPedia-Virtuoso的SERVICE子句。查询基本上直接从DBPedia获取一些DBPedia URI的标签(注意,在将这些结果传递给SERVICE子句之前,首先执行子查询以获取本地结果(:
SELECT DISTINCT ?uri (STR(?theLabel) AS ?label)
WHERE {
{
SELECT DISTINCT ?uri
WHERE {
?domain a <http://xmlns.com/foaf/0.1/Person> .
?domain <http://virtual-assembly.org/pair#hasKeyword> ?uri .
}
}
SERVICE <http://dbpedia.org/sparql> {
?uri <http://www.w3.org/2000/01/rdf-schema#label> ?theLabel .
FILTER(lang(?theLabel) = 'fr')
}
}
ORDER BY ?label
我在评估服务条款时从Virtuoso得到以下错误VirtuosoS0022错误SQ200:
Query evaluation error: org.eclipse.rdf4j.query.QueryEvaluationException: Virtuoso S0022 Error SQ200: No column uri.
SPARQL query:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sesame: <http://www.openrdf.org/schema/sesame#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
SELECT ?theLabel ?__rowIdx WHERE {
?uri <http://www.w3.org/2000/01/rdf-schema#label> ?theLabel .
FILTER(lang(?theLabel) = 'fr')
}
VALUES (?__rowIdx ?uri) { ("0" <http://dbpedia.org/resource/Semantic_Web> ) ("1" <http://dbpedia.org/resource/Peer-to-peer> ) ("2" <http://dbpedia.org/resource/Collaboration> ) ("3" <http://dbpedia.org/resource/Free_software> ) ("4" <http://dbpedia.org/resource/Social_transformation> ) ("5" <http://dbpedia.org/resource/Social_network> ) ("6" <http://dbpedia.org/resource/Ecology> ) ("7" <http://dbpedia.org/resource/Activism> ) ("8" <http://dbpedia.org/resource/Supernatural> ) ("9" <http://dbpedia.org/resource/Sociology> ) ("10" <http://dbpedia.org/resource/Natural_science> ) ("11" <http://dbpedia.org/resource/Popular_science> ) ("12" <http://dbpedia.org/resource/Cooperation> ) ("13" <http://dbpedia.org/resource/Wikimedia_Commons> ) ("14" <http://dbpedia.org/resource/Musician> ) }
(HTTP status 500)
发送给Virtuoso的SPARQL查询在我看来是有效的。
当然,我不知道GraphDB是如何生成查询的,但有什么方法可以重写原始查询来解决这个问题吗?
感谢
好的,我在这里纠正了,因为WHERE子句后面的VALUES子句确实是有效的SPARQL。例如:
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX : <http://example.org/book/>
PREFIX ns: <http://example.org/ns#>
SELECT ?book ?title ?price
{
?book dc:title ?title ;
ns:price ?price .
}
VALUES (?book ?title)
{ (UNDEF "SPARQL Tutorial")
(:book2 UNDEF)
}
实时查询结果示例。
以下返回一个空结果集,指示不正确的解决方案,即错误:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sesame: <http://www.openrdf.org/schema/sesame#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
SELECT ?theLabel ?rowIdx
WHERE {
?uri <http://www.w3.org/2000/01/rdf-schema#label> ?theLabel .
FILTER (?uri = <http://dbpedia.org/resource/Semantic_Web>)
FILTER (lang(?theLabel) = "en")
}
VALUES (?rowIdx ?uri)
{ ("0" <http://dbpedia.org/resource/Semantic_Web> )
("1" <http://dbpedia.org/resource/Peer-to-peer> )
("2" <http://dbpedia.org/resource/Collaboration> )
("3" <http://dbpedia.org/resource/Free_software> )
("4" <http://dbpedia.org/resource/Social_transformation> )
("5" <http://dbpedia.org/resource/Social_network> )
("6" <http://dbpedia.org/resource/Ecology> )
("7" <http://dbpedia.org/resource/Activism> )
("8" <http://dbpedia.org/resource/Supernatural> )
("9" <http://dbpedia.org/resource/Sociology> )
("10" <http://dbpedia.org/resource/Natural_science> )
("11" <http://dbpedia.org/resource/Popular_science> )
("12" <http://dbpedia.org/resource/Cooperation> )
("13" <http://dbpedia.org/resource/Wikimedia_Commons> )
("14" <http://dbpedia.org/resource/Musician> )
}
实时查询结果链接。
以下工作,揭示了初始示例的结构问题。
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX sesame: <http://www.openrdf.org/schema/sesame#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX fn: <http://www.w3.org/2005/xpath-functions#>
SELECT ?theLabel ?__rowIdx
WHERE {
?uri <http://www.w3.org/2000/01/rdf-schema#label> ?theLabel .
FILTER(lang(?theLabel) = 'fr')
VALUES (?__rowIdx ?uri) { ("0" <http://dbpedia.org/resource/Semantic_Web> ) ("1" <http://dbpedia.org/resource/Peer-to-peer> ) ("2" <http://dbpedia.org/resource/Collaboration> ) ("3" <http://dbpedia.org/resource/Free_software> ) ("4" <http://dbpedia.org/resource/Social_transformation> ) ("5" <http://dbpedia.org/resource/Social_network> ) ("6" <http://dbpedia.org/resource/Ecology> ) ("7" <http://dbpedia.org/resource/Activism> ) ("8" <http://dbpedia.org/resource/Supernatural> ) ("9" <http://dbpedia.org/resource/Sociology> ) ("10" <http://dbpedia.org/resource/Natural_science> ) ("11" <http://dbpedia.org/resource/Popular_science> ) ("12" <http://dbpedia.org/resource/Cooperation> ) ("13" <http://dbpedia.org/resource/Wikimedia_Commons> ) ("14" <http://dbpedia.org/resource/Musician> ) }
}
DBpedia的实时查询结果页面。