cyc term的自然语言词(词组)
Natural language word (phrase) for cyc term
我正在处理自然语言生成任务,需要检索相当于 Cyc 术语的自然语言单词或短语。例如。 "#$EatingEvent" -> "eat" 或 "#$Coyote-Animal" -> "coyote".
如何通过 Java Api 或 SubL 函数实现?
我正在使用 Research Cyc 4.0q KB 和 Cyc Core API Suite v1.0.0-rc4。
至少可以通过三种不同的方式实现:
使用循环查询。以下是 运行 查询的 SubL 形式,但可以通过 Java API 或通过 Cyc 浏览器轻松使用查询:
(new-cyc-query '(#$termPhrases #$Coyote-Animal #$CharacterString ?X) #$InferencePSC '(:max-number 1))
这个returns:
(((?X . "prairie wolf")))
如果您不只要求一个答案,您可以获得很多答案:
(new-cyc-query '(#$termPhrases #$Coyote-Animal #$CharacterString ?X) #$InferencePSC )
这个returns:
(((?X . "Canis latrans"))
((?X . "coyote (C. latrans)"))
((?X . "C. latrans"))
((?X . "prairie wolves"))
((?X . "coyotes"))
((?X . "coyote"))
((?X . "prairie wolf")))
使用SubL生成形式:
(generate-phrase#$Coyote-Animal)
这个returns:
"prairie wolf"
#$singular
使用Java API:
Paraphraser termParaphraser = getTermParaphraser();
KbObject coyote = KbCollectionFactory.get("Coyote-Animal");
String nl = termParaphraser.paraphrase(coyote).getString());
在此代码的末尾,nl 应设置为字符串 "prairie wolf"。
我不确定这个解释器代码是否是 API 的 1.0.0-Rrc4,但肯定是 1.0.0-rc5,目前可从 dev.cyc.com 下载.
其他读者可能会受益,因为您还可以在 OpenCyc 中获得一些与 Cyc 项等效的 NL,而不仅仅是 ResearchCyc。
例如,如果您调用以下 SubL...
(generate-phrase#$狗)
...例如交互器,您将获得此作为输出:
"dog"
prettyString-Canonical
零
(#( 0 无))
请注意,在(我的)OpenCyc 中,#$prettyString 和#$prettyString-Canonical 有很多断言。正如 DaveS 所建议的,您应该能够使用 new-cyc-query 查询这些。
ResearchCyc 似乎没有#$prettyString 或#$prettyString-Canonical,但似乎使用更微妙的ontology(一组谓词)来生成 NL。我怀疑 RCyc 中 NL 生成知识的覆盖范围和灵活性优于 OCyc。
我在
上获得了这些结果
CycL 修订级别:10.140388
当前知识库:5022
我正在处理自然语言生成任务,需要检索相当于 Cyc 术语的自然语言单词或短语。例如。 "#$EatingEvent" -> "eat" 或 "#$Coyote-Animal" -> "coyote".
如何通过 Java Api 或 SubL 函数实现?
我正在使用 Research Cyc 4.0q KB 和 Cyc Core API Suite v1.0.0-rc4。
至少可以通过三种不同的方式实现:
使用循环查询。以下是 运行 查询的 SubL 形式,但可以通过 Java API 或通过 Cyc 浏览器轻松使用查询:
(new-cyc-query '(#$termPhrases #$Coyote-Animal #$CharacterString ?X) #$InferencePSC '(:max-number 1))
这个returns:
(((?X . "prairie wolf")))
如果您不只要求一个答案,您可以获得很多答案:
(new-cyc-query '(#$termPhrases #$Coyote-Animal #$CharacterString ?X) #$InferencePSC )
这个returns:
(((?X . "Canis latrans"))
((?X . "coyote (C. latrans)"))
((?X . "C. latrans"))
((?X . "prairie wolves"))
((?X . "coyotes"))
((?X . "coyote"))
((?X . "prairie wolf")))
使用SubL生成形式:
(generate-phrase#$Coyote-Animal)
这个returns:
"prairie wolf"
#$singular
使用Java API:
Paraphraser termParaphraser = getTermParaphraser(); KbObject coyote = KbCollectionFactory.get("Coyote-Animal"); String nl = termParaphraser.paraphrase(coyote).getString());
在此代码的末尾,nl 应设置为字符串 "prairie wolf"。
我不确定这个解释器代码是否是 API 的 1.0.0-Rrc4,但肯定是 1.0.0-rc5,目前可从 dev.cyc.com 下载.
其他读者可能会受益,因为您还可以在 OpenCyc 中获得一些与 Cyc 项等效的 NL,而不仅仅是 ResearchCyc。
例如,如果您调用以下 SubL...
(generate-phrase#$狗)
...例如交互器,您将获得此作为输出:
"dog" prettyString-Canonical 零 (#( 0 无))
请注意,在(我的)OpenCyc 中,#$prettyString 和#$prettyString-Canonical 有很多断言。正如 DaveS 所建议的,您应该能够使用 new-cyc-query 查询这些。
ResearchCyc 似乎没有#$prettyString 或#$prettyString-Canonical,但似乎使用更微妙的ontology(一组谓词)来生成 NL。我怀疑 RCyc 中 NL 生成知识的覆盖范围和灵活性优于 OCyc。
我在
上获得了这些结果CycL 修订级别:10.140388 当前知识库:5022