我们拥有的:
本体信息
汤姆有辆车。
海伦有电话。
汤姆20岁了。
海伦30岁了。
汤姆是海伦的朋友。
规则(模式)
如果(X有车,Y有电话,X大于18,Y大于18,X是Y的朋友),那么->就可以开始做出租车生意了。
当前任务
为汤姆创造任何商机。特别是,系统必须识别态势模式,才能与规则相匹配。在模式基础上,必须生成解决方案(根据当前情况预测):
只要汤姆和海伦是朋友,他们都在18岁以上,汤姆有一辆车,海伦有电话,->汤姆可以和海伦一起开出租车服务公司。
我的问题是:我能用neo4j来实现它(或者将它作为这样的系统的一个模块)吗?如果是的话,我在哪里可以找到相关的用法或例子?
发布于 2016-06-29 18:49:40
您可以这样表示所描述的示例(使用Cypher):
CREATE (tom:Person)
SET tom.name = "Tom",
tom.age = 20
CREATE (helen:Person)
SET helen.name = "Helen",
helen.age = 30
CREATE (tom)-[:FRIENDS_WITH]->(helen)
CREATE (c:Car {desc: "2015 Red Honda Fit"})
CREATE (tom)-[:HAS_CAR]->(c)
CREATE (p:Phone {desc: "iPhone 6s"})
CREATE (helen)-[:HAS_PHONE]->(p)这将产生一个如下所示的图形:

您可以如下所示为Tom (与您描述的模式匹配的路径)查询业务机会:
MATCH (p:Phone)<-[:HAS_PHONE]-(friend:Person)-[:FRIENDS_WITH]-(t:Person {name: "Tom"})-[:HAS_CAR]->(c:Car)
WHERE t.age > 18 AND friend.age > 18
RETURN t.name AS Tom, friend.name AS business_partner,
p.desc AS phone, c.desc AS car此查询返回:
╒═══╤════════════════╤═════════╤══════════════════╕
│Tom│business_partner│phone │car │
╞═══╪════════════════╪═════════╪══════════════════╡
│Tom│Helen │iPhone 6s│2015 Red Honda Fit│
└───┴────────────────┴─────────┴──────────────────┘这里是一个Neo4j控制台实例,它演示了这一点。
https://stackoverflow.com/questions/38076477
复制相似问题