我的团队正在实施一个变体Ceusters 的参照物追踪。在我们的实现中,实体的原始 URI 可以更改(更改为包含 UUID 的内容),但始终保留原始 URI 的链接。
例如:
:Joey rdf:type :person .
:New_York_City rdf:type :locality .
:Joey :hometown :New_York_City .
可能会变成:
:Joey :replacedWith :ABC123 .
:ABC123 rdf:type :person .
:New_York_City :replacedWith :FFF555 .
:FFF555 rdf:type :locality .
:ABC123 :hometown :FFF555 .
我正在编写一些 Scala 集成测试,以查看我们的软件是否正确进行引用跟踪。
具体来说,我知道我应该期待这个CorrectPattern
:
:Joey :replacedWith ?person .
?person rdf:type :person .
:New_York_City :replacedWith ?locale .
?locale rdf:type :locality .
?person :hometown ?locale .
但我不知道什么是价值观?person
and ?locale
将。
I can SPARQL ASK
for CorrectPattern
...这会告诉我该模式是否存在。但我也想确认一下没有添加任何其他内容.
我以为我可以CONSTRUCT { ?s ?p ?o }
, MINUS
out CorrectPattern
,并检查是否有空结果,但 Blazegraph 说:
java.util.concurrent.ExecutionException: org.openrdf.query.MalformedQueryException: CONSTRUCT WHERE 仅允许 WHERE 子句中的语句模式。
有任何想法吗?我想检查整个三重存储是否包含更多或更少内容CorrectPattern
, 但我觉得CorrectPattern
必须包含变量。