对抗Virtuoso DBPedia的服务;Virtuoso S0022错误SQ200:无列



我在本地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的实时查询结果页面。

最新更新