【发布时间】:2012-07-08 05:41:06
【问题描述】:
我用许多命名模型构建了一个TDB数据集,所有这些模型都包含大量数据。我知道我可以从TDB数据集中获取特定模型,然后查询这个模型,但是这样,需要大内存。
有了这个:select ?s ?p ?o where {graph ?g {?s ?p ?o}.},我可以查询出所有命名模型的数据。有什么方法可以查询具体的吗?
【问题讨论】:
我用许多命名模型构建了一个TDB数据集,所有这些模型都包含大量数据。我知道我可以从TDB数据集中获取特定模型,然后查询这个模型,但是这样,需要大内存。
有了这个:select ?s ?p ?o where {graph ?g {?s ?p ?o}.},我可以查询出所有命名模型的数据。有什么方法可以查询具体的吗?
【问题讨论】:
是的,只需将 ?g 替换为命名模型的 URI,例如
SELECT * WHERE
{
GRAPH <http://example.org/graph>
{ ?s ?p ?o }
}
另一种选择是保留?g,而是在查询中添加一些FROM NAMED 子句,以限制GRAPH 子句考虑的命名图,例如
SELECT
FROM NAMED <http://graph/1>
FROM NAMED <http://graph/2>
WHERE
{
GRAPH ?g { ?s ?p ?o }
}
【讨论】: