如何列出Virtuoso中的所有图表?

时间:2016-11-28 21:48:37

标签: sparql virtuoso

当我转到 InitialContext ctx = new InitialContext(); DataSource dataSource = (DataSource) ctx.lookup("java:/PostgresDS"); myConnection = dataSource.getConnection(); 时,有两个字段:http://localhost:8890/sparql/Default Data Set Name (Graph IRI)。如何列出我的数据库中所有图形(前一个字段中都有)的内容?该字段不是必需的,我可以只针对所有名称空间运行查询。但我想知道如何列出可用的图表。

我能够运行的唯一非空图表是query

例如,在关系数据库环境中,我相信可以从系统表中检索这种信息。

2 个答案:

答案 0 :(得分:6)

如评论中所述,this query将为您提供目标商店中所有命名图表的列表(其中也指出,与“名称空间”不同) -

  SELECT  DISTINCT ?g 
   WHERE  { GRAPH ?g {?s ?p ?o} } 
ORDER BY  ?g

您可以在DBpedia endpoint(一个非常短的列表,如您所料)和URIBurner(更长,更多样的列表)上查看实时结果(此处限制为100个图表名称)

答案 1 :(得分:0)

我知道这是一个老问题,但是我面临着同样的问题,并认为其他人可能会从我找到的解决方案中受益。

我正在尝试执行此查询以列出所有图形,并且返回结果大约需要5分钟:

SELECT DISTINCT ?g 
WHERE { 
  GRAPH ?g {?s ?p ?o}
} 

相反,您应该尝试使用this documentation from Virtuoso中建议的以下查询:

SELECT DISTINCT ?g 
WHERE { 
  GRAPH ?g {?s a ?o}
} 

此查询在不到1秒的时间内完成,并返回了商店中的图形列表。当然,该查询只会返回谓词为rdf:type的图至少具有三倍的图,但是与TallTed建议的图相比,这仍然是一个很大的改进。