有没有办法列出TDB存储中包含的模型?

问题描述

| 创建一个TDB存储,并在其中存储各种命名的模型。 该API是否可以列出TDB中包含的所有命名模型(以便您选择一个可以使用的模型),还是必须事先知道要使用的模型的名称? 我在APi文档中找不到有关此内容(仅用于创建模型)或谷歌搜索的信息。     

解决方法

您可以使用sparql查询来做到这一点:
[/tmp]
ian@rowan-15 $ cat > test.nq
<http://example.org/a> <http://example.org/p> \"in graph one\" <http://example.org/graph/one> .
<http://example.org/a> <http://example.org/p> \"in graph two\" <http://example.org/graph/two> .
[/tmp]
ian@rowan-15 $ mkdir tdb
[/tmp]
ian@rowan-15 $ tdbloader --loc=tdb test.nq
-- Start triples data phase
** Load empty triples table
-- Start quads data phase
** Load empty quads table
Load: test.nq -- 2011/05/27 08:55:59 BST
-- Finish triples data phase
-- Finish quads data phase
2 quads loaded in 0.05 seconds [Rate: 37.74 per second]
-- Start quads index phase
** Index GSPO->GPOS: 2 slots indexed
** Index GSPO->GOSP: 2 slots indexed in 0.00 seconds [Rate: 2,000.00 per second]
** Index GSPO->POSG: 2 slots indexed
** Index GSPO->OSPG: 2 slots indexed
** Index GSPO->SPOG: 2 slots indexed
-- Finish quads index phase
** 2 quads indexed in 0.01 seconds [Rate: 153.85 per second]
-- Finish triples load
-- Finish quads load
** Completed: 2 quads loaded in 0.09 seconds [Rate: 23.26 per second]
[/tmp]
ian@rowan-15 $ tdbquery --loc=tdb \"select ?g where {graph ?g {?s ?p ?o}}\"
----------------------------------
| g                              |
==================================
| <http://example.org/graph/one> |
| <http://example.org/graph/two> |
----------------------------------
编辑 抱歉,刚刚意识到您特别要求从API列出命名图。因此,作为上述替代方案:
String directory = \"./tdb\";
Dataset dataset = TDBFactory.createDataset(directory);
Iterator<String> graphNames = dataset.listNames();
while (graphNames.hasNext()) {
    String graphName = graphNames.next();
    ....
}
    ,此SPARQL查询应该工作:
SELECT DISTINCT ?g WHERE { GRAPH ?g { } }
    

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...