我在memSQL中的一个项目中工作,以确定特定的 batter
pitcher
在MLB的关系;在那里我看什么 batters
对付各种 pitchers
和 when
. 目标是建立一个热图 teams
和特定年份的阵容(集锦) batters
)对各组的 pitchers
.
我遇到了一个问题,试图查询对投手净得分为正的球队。当寻找某支球队的所有Batter时,我遇到了Grakn和这个博文。
我遇到了Grakn和这篇博文。https:/blog.grakn.aicomparing -graql -to -sql -part-2
似乎我可以利用规则然后查询这样的东西。
在规则上做了一个尝试--我想让 team performance
与...作对 pitcher
基于集合 batter performance
同 pitcher
.
我写了这个查询,它将只查询 at-bat performance
哪儿 batter
正处于 plays-for
与特定 team
. 然而查询并没有给我预期的结果?
when {
(batting: $b, pitching: $p) isa at-bat;
(playing: $b, plays-for: $t) isa team;
}, then {
(plays-for: $c, pitching: $d) isa at-bat;
};
还有谁知道这些规则是什么时候计算出来的,性能开销是多少?
只是想快速检查一下,你是否在你的模式中定义了规则?规则需要插入到Grakn中,使用一个 define
语句,因为它们被视为模式元素。如果你试图在查询中在线运行它,我会认为你会得到一个错误,但也许你不是这样做的,我误解了。
回答另一个问题,规则是在查询时计算的,我们检测哪些规则可能会改变查询的结果,并有效地使其成为查询遍历的一部分,所以理论上它的工作原理就像在图上进行正常的换向搜索。在实践中,它有一点不同。