我可以检查形状图吗
Can I inspect the shape graph
我按照 https://graphdb.ontotext.com/documentation/9.4/free/shacl-validation.html 上的说明进行操作,结果如文档所示。但是,完成此操作后,我发现无法检查为我的存储库配置的形状图。
特殊图<http://rdf4j.org/schema/rdf4j#SHACLShapeGraph>
无处可寻;它不会出现在“图表概览”屏幕中,无法通过 SPARQL 查询访问。
目前无法在 GraphDB 中使用 SPARQL 查询形状图,因为它不是数据的一部分。检查图形的一种方法是使用 RDF4J 客户端连接到 GraphDB 存储库。您可以使用以下代码片段找到形状图中的所有语句:
HTTPRepository repository = new HTTPRepository("http://address:port/", "repositoryname");
try (RepositoryConnection connection = repository.getConnection()) {
Model statementsCollector = new LinkedHashModel(connection.getStatements(null, null, null, RDF4J.SHACL_SHAPE_GRAPH)
.stream()
.collect(Collectors.toList()));
}
有关访问和更新 Shacl 形状图的更多信息,您还可以在此处查看 https://rdf4j.org/documentation/programming/shacl/。
我按照 https://graphdb.ontotext.com/documentation/9.4/free/shacl-validation.html 上的说明进行操作,结果如文档所示。但是,完成此操作后,我发现无法检查为我的存储库配置的形状图。
特殊图<http://rdf4j.org/schema/rdf4j#SHACLShapeGraph>
无处可寻;它不会出现在“图表概览”屏幕中,无法通过 SPARQL 查询访问。
目前无法在 GraphDB 中使用 SPARQL 查询形状图,因为它不是数据的一部分。检查图形的一种方法是使用 RDF4J 客户端连接到 GraphDB 存储库。您可以使用以下代码片段找到形状图中的所有语句:
HTTPRepository repository = new HTTPRepository("http://address:port/", "repositoryname");
try (RepositoryConnection connection = repository.getConnection()) {
Model statementsCollector = new LinkedHashModel(connection.getStatements(null, null, null, RDF4J.SHACL_SHAPE_GRAPH)
.stream()
.collect(Collectors.toList()));
}
有关访问和更新 Shacl 形状图的更多信息,您还可以在此处查看 https://rdf4j.org/documentation/programming/shacl/。