我需要在三元组存储中保存和删除JSON-LD树。这些树通常具有表示为空白节点的子树。将它们转换为RDF并使用SPARQL保存它们很容易。但是,当我需要检索/删除它们时,不可能获得所有空白节点。我正在使用以下查询来获取所有空白节点(但最多只能达到3个级别):
CONSTRUCT {
<instanceURI> ?p ?o.
?o ?p1 ?o1.
?o1 ?p2 ?o2.
}
WHERE {
<instanceURI> ?p ?o.
OPTIONAL {
FILTER (isBlank(?o))
?o ?p1 ?o1.
OPTIONAL {
FILTER (isBlank(?o1))
?o1 ?p2 ?o2.
}
}
}
在另一个问题(How to recursively expand blank nodes in SPARQL construct query?)中,他们建议使用DESCRIBE。但是DESCRIBE返回的东西比我想要的更多。我可以对图形DESCRIBE返回进行子查询吗?如果可以,怎么办?
对于用JSON-LD的人来说,这种用例(检索/删除具有任意空白节点的JSON-LD实例)似乎很常见。一个解决方案应该不难实现。难道我做错了什么?有这样做的标准方法吗?