现在我想用Neo4j 做本体推论,根据这个教程,我可以用这个教程做推论。
https://neo4j.com/labs/neosemantics/4.0/inference
我可以用如下代码做推理,但这只限于一级路程
MATCH (cat:LCSHTopic { authoritativeLabel: "Crystallography"}) CALL n10s.inference.nodesInCategory(cat, { inCatRel: "HAS_SUBJECT", subCatRel: "NARROWER_THAN"}) yield node return node.title as work;
在我的情况下,我需要做超过一级路程的推理。具体情况如下所示
我需要在红色的本体中,通过推理找到蓝色的实例'PressToolFunction'。 起始的本体是 ‘Pressing’,我下面的代码不起作用。
MATCH (x:Concept { name: "Pressing"})
CALL n10s.inference.nodesInCategory(x, { inCatRel: "InstanceCapability", subCatRel: "SCO" ,"SCO_RESTRICTION"}) yield node AS capability
WITH capability, d MATCH (capability)-[:isTheCapabilityOf]->(dev:Devices)
那应该如何写呢?