我正在寻找对任何数据集运行 SPARQL 查询。我们不知道数据集中命名图的名称。
当您知道命名图的名称时,这些是大量文档和从命名图中选择的示例。有显示列出命名图的示例。
我们正在从 Java 运行 Jena,因此可以运行 2 个查询,第一个获取命名图,我们将它们注入第二个。
但是,当您不知道它们的名称时,您肯定可以编写一个从所有命名图读取的单个查询吗?
注意:我们希望避免使用默认图形,因为它们的行为似乎依赖于实现。
我正在寻找对任何数据集运行 SPARQL 查询。我们不知道数据集中命名图的名称。
当您知道命名图的名称时,这些是大量文档和从命名图中选择的示例。有显示列出命名图的示例。
我们正在从 Java 运行 Jena,因此可以运行 2 个查询,第一个获取命名图,我们将它们注入第二个。
但是,当您不知道它们的名称时,您肯定可以编写一个从所有命名图读取的单个查询吗?
注意:我们希望避免使用默认图形,因为它们的行为似乎依赖于实现。
例子:
{
?s foaf:name ?name ;
vCard:nickname ?nickName .
}
如果您希望模式在一个图表中匹配并希望尝试每个图表,请使用 GRAPH ?g 表格。
GRAPH ?g
{ ?s foaf:name ?name ;
vc:nickname ?nickName .
}
如果您想进行查询,其中模式在命名图之间匹配,例如foaf:name
在一个图和vCard:nickname
另一个相同的主题中,然后设置联合默认图tdb2:unionDefaultGraph true
,那么查询看到的默认图是联合(实际上,RDF合并 - 没有重复)所有命名的图。使用最初给出的模式。
Fuseki 配置文件提取:
:dataset_tdb2 rdf:type tdb2:DatasetTDB2 ;
tdb2:location "DB2" ;
## Optional - with union default for query and update WHERE matching.
tdb2:unionDefaultGraph true ;
.
在代码中,不是 Fuseki,应用程序可以使用Dataset.getUnionModel()
.