neo4j 新语义:加载模型约束

问题描述 投票:0回答:2

我想使用新语义来验证 Neo4j 中的图形,但我在将模型约束加载到最小示例上时遇到困难:

假设我有以下图表:

CREATE (n:Person {name: 'Andy'})

然后,我按如下方式初始化新语义:

CALL n10s.graphconfig.init();

现在我应该可以去验证图表了。根据我在这里找到的内容(https://neo4j.com/labs/neosemantics/4.0/validation/), 我认为以下模式应该作为第一种方法:

call n10s.validation.shacl.import.inline('

@prefix neo4j: <http://neo4j.com/myvoc#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

neo4j:PersonShape a sh:NodeShape ;
  sh:targetClass neo4j:Person ;
  sh:property [
    sh:path neo4j:name ;
    sh:datatype xsd:string ;
  ];
.','Turtle')

但是,这给了我:

Failed to invoke procedure `n10s.validation.shacl.import.inline`: Caused by: n10s.utils.UriUtils$UriNamespaceHasNoAssociatedPrefix: Prefix Undefined: No prefix defined for namespace <http://neo4j.com/myvoc#Person>. Use n10s.nsprefixes.add(...) procedure.

感觉很奇怪,但为了匹配该错误消息,我尝试添加该行

@prefix neo4jPerson: <http://neo4j.com/myvoc#Person> .

但这并没有帮助。

然后我尝试了以下方法:

CALL n10s.graphconfig.init({handleVocabUris:"IGNORE"});

然后,验证规则被接受,但它看起来并没有真正与任何东西相关:

target  propertyOrRelationshipPath  param   value
"__NONE__"  "__NONE__"  "datatype"  "string"

我认为删除命名空间的东西会很有帮助。所以我也尝试过

call n10s.validation.shacl.import.inline('

@prefix neo4j: <http://neo4j.com/myvoc#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .

PersonShape a sh:NodeShape ;
  sh:targetClass Person ;
  sh:property [
    sh:path name ;
    sh:datatype xsd:string ;
  ];
.','Turtle')

但这也不起作用,因为解析器坚持让命名空间的东西发挥作用:

Failed to invoke procedure `n10s.validation.shacl.import.inline`: Caused by: org.eclipse.rdf4j.rio.RDFParseException: Expected ':', found ' ' [line 6]

我有点不知所措。我给出的代码或多或少取自新语义用户指南(https://neo4j.com/labs/neosemantics/4.0/)。 并且只是稍微适应了。他们的单元测试似乎也没有添加任何魔法https://github.com/neo4j-labs/neosemantics/blob/4.0/src/test/java/n10s/validation/SHACLValidationProceduresTest.java#L59。我仍然收到上面列出的错误消息。我缺少什么?有没有人的 MWE 可以让 Neo4j 图形验证工作?

neo4j cypher neosemantics
2个回答
0
投票

回答我自己的问题,neo4j命名空间已更改为

<neo4j://graph.schema#>
https://github.com/neo4j-labs/neosemantics/issues/229


0
投票

我也遇到过类似的问题。在这里您有什么建议吗? https://community.neo4j.com/t/failed-to-import-shacl-with-neosemantics/64181

© www.soinside.com 2019 - 2024. All rights reserved.