如何使用 GraphQL 实现加权边图?

问题描述 投票:0回答:0

我正在构建一个系统来分析句子并存储单词彼此跟随的频率。思路是在分析下面的句子后:

  • 现在几点了
  • 时间是下午四点

数据库将包含:

  [start of sentence]: followed by ("what": 1 time, "the": 1 time)
  "what": followed by............. ("is": 1 time)
  "is": followed by................("the": 1 time, "4pm": 1 time)
  "the": followed by...............("time": 1 time)
  "time": followed by..............([end of sentence]: 1 time, "is": 1 time)
  "4pm": followed by...............([end of sentence]: 1 time)

我可以用 RDBMS 来做,但似乎图形数据库应该更合适,所以我正在尝试用 Dgraph 来做。我用过这个模式:

type Word {
  text: String! @id
}
type Transition {
  from: Word 
  to: Word
  count: Int!
}

Transition
中,我在 from 和 中使用空值分别表示句子的开始和结束标记。

我设法写了一个查询来获取句子开头的单词:

  query GetFirstWords {
    queryTransition(filter: {not: {has: from}}) {
      to {
        text
      }
      count
    }
  }

虽然我还没有设法得到其他词。基于以上内容,(对我而言)最合乎逻辑的是:

  query GetNextWords {
    queryTransition(filter: {from: {text: {eq: "what"}}}) {
      to {
        text
      }
      count
    }
  }

但是那(以及我尝试过的大多数其他事情)最终会出现如下错误:

Field 'from' is not defined by type 'TransitionFilter'.

您可能已经知道我是 Dgraph 和 GraphQL 的初学者,所以我使用的模式很可能不合适。我也尝试向它添加一个 ID 参数,以防缺少非字符串 ID 是问题所在,但没有任何乐趣。我也很困惑,我看到的很多 GraphQL 示例看起来不像 Dgraph 的,而且也不起作用,例如没有

queryTransition
部分什么都不起作用,并且在定义
TransitionFilter
等的地方是否有额外的模式?

graphql adjacency-list markov-chains weighted-graph dgraph
© www.soinside.com 2019 - 2024. All rights reserved.