【问题标题】:Why does Grakn use noun semantics on relations instead of verbs?为什么 Grakn 在关系上使用名词语义而不是动词?
【发布时间】:2019-09-13 14:28:41
【问题描述】:

我正在查看一些文档here

我很好奇为什么 Grakn 选择使用名词语义而不是动词语义来表示关系?在我所涵盖的大多数其他图形工作和研究中,通常认为两个实体(名词)通过动词联系起来是有意义的,例如person worked at company。实际上,对于我正在处理的一些实体,将关系推理为名词有点困难,例如 if artist remixed track

我倾向于使用动词作为关系,但我想知道在 Grakn 设置中我是否应该这样考虑它。如果我决定使用动词语义,我最终会面临哪些困难?

【问题讨论】:

    标签: graph vaticle-typedb


    【解决方案1】:

    通常,图形数据库使用有向边来表示二元关系。在这种情况下,使用动词来描述关系是有意义的,因为动词通常表示主语和宾语之间的定向动作。

    Grakn 是一个知识图谱,其工作方式不同。这是因为 Grakn 中的关系充当超边。这意味着关系中可以有两个以上的参与者(称为角色扮演者)。这非常适合灵活建模,但它可能会破坏动词命名约定。

    要根据您的示例进行操作,而不是 artist remixed track,我们可以(在这种情况下非常方便)使用名词 remix 作为关系。对域模型进行猜测,艺术家重新混合曲目,结果他们创建了新曲目。这是在 grakn 中建立三元(3 路)关系的绝佳机会。模型如下:

    define 
    remix sub relation,
       relates original-track,
       relates remixed-track,
       relates remixing-artist;
    
    track sub entity,
       plays original-track,
       plays remixed-track;
    
    artist sub entity,
       plays remixing-artist;
    

    一旦在 Grakn 中定义了上述模式,我们就可以像这样添加一个连接两个新轨道和一个新艺术家的混音实例:

    insert 
    $o isa track, has name "Brimful of Asha"; 
    $rt isa track, has name "Brimful of Asha (Norman Cook Remix)"; 
    $a isa artist, has name "Norman Cook"; 
    $r(original-track: $o, remixed-track: $rt, remixing-artist: $a) isa remix;
    

    事实证明,为关系使用名词是有用的,因为它不会以二进制方式连接它可以拥有的 3 个角色扮演者中的任何一个。相反,我们将位于两条轨道和艺术家之间的概念命名为。

    通过这种方式,我们看到关系很好地描述了任何一对角色之间的(无向)链接:

    original-track <-remix-> remixed-track
    original-track <-remix-> remixing-artist
    remixed-track  <-remix-> remixing-artist
    

    我们可以看到,使用remixed 代替remix 效果并不好,它会尝试在这些没有链接的地方添加方向。

    Grakn 的数据模型可以即时扩展。因此,即使您从二元关系开始,如果以后添加更多角色,使其成为三元或 N 元,动词命名将不再有意义。

    用名词命名关系并不总是那么容易。 我的建议是:

    • 首先尝试将动词(用作形容词)的过去或现在分词与名词一起使用。例如角色remixing-artist 使用这个。
    • 在使用名词时求助于动词真的很尴尬,和/或如果您正在处理您希望始终是二元的关系。

    【讨论】:

      【解决方案2】:

      如果您必须使用动词作为关系名称,请使用动名词形式(就实际效果而言,它的作用类似于名词)。例如

      刻面子关系, 涉及方面分配, 涉及分配方面。 列出子关系, 涉及列表分配, 关联分配列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-09
        • 1970-01-01
        • 2017-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多