我在我的项目中使用带有 Go lang 和 graphql 的 neo4j。
我现在遇到的问题是我需要节点(标签)之间的继承,就像通常在 owl 或 rdf 文件中找到的一样。我不想切换到rdf-stores,我也不想使用节点之间人为的“IS_A”关系来解决这个问题。
LPG 中是否有类继承的内置功能?
在像 neo4j 这样的标记属性图中指示类继承的明显方法是在同一节点上使用多个类标签。
如果你已经有不同类的不同节点,但想避免添加很多
IS_A
关系,至少有两种方法:
将类层次结构中属于同一资源的节点合并为一个节点,保留所有原始标签、属性和关系。有 APOC 程序可以帮助解决这个问题。
创建标记为
Class
的类层次结构节点,明确指定节点标签之间的层次结构。例如:(:Class {name: 'Cat'})->[:IS_A]->(:Class {name: 'Mammal'})->[:IS_A]->(:Class {name: 'Animal'})
。然后,您可以在涉及节点 Class
、Cat
和 Mammal
.的查询中使用此显式
Animal
层次结构
在像 neo4j 这样的标记属性图中指示类继承的明显方法是在同一节点上使用多个类标签。
如果你已经有不同类的不同节点,但想避免添加很多
IS_A
关系,你可以将类层次结构中属于同一资源的节点组合成一个节点,其中包含所有原始标签、属性、和关系。有 APOC 程序可以帮助解决这个问题。