首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >态势模式识别与求解生成

态势模式识别与求解生成
EN

Stack Overflow用户
提问于 2016-06-28 12:36:28
回答 1查看 158关注 0票数 0

我们拥有的:

  1. 我们当前系统上的本体信息(实体、属性、关系)保存在图形数据库中。
  2. 如果是关于实体、属性、关系的规则。
  3. 目前的任务。

本体信息

汤姆有辆车。

海伦有电话。

汤姆20岁了。

海伦30岁了。

汤姆是海伦的朋友。

规则(模式)

如果(X有车,Y有电话,X大于18,Y大于18,X是Y的朋友),那么->就可以开始做出租车生意了。

当前任务

为汤姆创造任何商机。特别是,系统必须识别态势模式,才能与规则相匹配。在模式基础上,必须生成解决方案(根据当前情况预测):

只要汤姆和海伦是朋友,他们都在18岁以上,汤姆有一辆车,海伦有电话,->汤姆可以和海伦一起开出租车服务公司。

我的问题是:我能用neo4j来实现它(或者将它作为这样的系统的一个模块)吗?如果是的话,我在哪里可以找到相关的用法或例子?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-29 18:49:40

您可以这样表示所描述的示例(使用Cypher):

代码语言:javascript
复制
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 (与您描述的模式匹配的路径)查询业务机会:

代码语言:javascript
复制
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

此查询返回:

代码语言:javascript
复制
╒═══╤════════════════╤═════════╤══════════════════╕
│Tom│business_partner│phone    │car               │
╞═══╪════════════════╪═════════╪══════════════════╡
│Tom│Helen           │iPhone 6s│2015 Red Honda Fit│
└───┴────────────────┴─────────┴──────────────────┘

这里是一个Neo4j控制台实例,它演示了这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38076477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档