当我转到 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
例如,在关系数据库环境中,我相信可以从系统表中检索这种信息。
答案 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建议的图相比,这仍然是一个很大的改进。