0

为了从我的三元存储库( OpenLink Virtuoso v6.1 )中的命名图中获取所有三元组,我编写了 SPARQL 查询:

SELECT ?s ?p ?o
WHERE {
    GRAPH eg:myGraph {
        ?s ?p ?o.
    }
}

但似乎我无法在 GRAPH 声明中定义图形 URI;查询不返回任何三元组。

如果我使用中间变量?g而不是图形的 URI,则请求有效:

SELECT ?s ?p ?o
WHERE {
    FILTER(?g = eg:myGraph).
    GRAPH ?g {
        ?s ?p ?o.
    }
}

我看不出这两个查询之间的区别。

我的第一个语法是错误的查询吗?这是Virtuoso的微妙之处吗?

4

1 回答 1

0

你可以尝试运行

SELECT ?s ?p ?o
FROM NAMED eg:myGraph
WHERE {
    GRAPH eg:myGraph {
        ?s ?p ?o.
    }
}

或者

SELECT ?s ?p ?o
FROM eg:myGraph
WHERE {
        ?s ?p ?o.
    }
于 2015-05-06T13:06:09.137 回答