自然语言中表达的概念,RDF/OWL 能表示多少? 我还在学习 RDF 和其他语义技术,但根据我目前的理解,信息通常表示为三元组的形式(主语,谓语,宾语)。 所以我可以想象如何表示 “Bob 有一顶帽子” 这句话。 然而,如何表示更复杂的句子,例如 “在第 42 街的 @人名,将在老板批准后在购物中心找到一份工作”? 是否有约定俗成的标签来表示名词/动词/所有权/因果关系/时态等?
注意,我不是在问如何自动将任意自然语言文本转换为 RDF (因为这目前看来是不可能的)。 我只是想了解 RDF 如何用于表示与自然语言相同的信息。
回答:
也许可以看看 Attempto 项目,其目标是定义一个英语片段,可以自动映射到一阶逻辑。 这项工作的一部分是映射到 OWL 2 DL。 参见例如 用 ACE 编写 OWL 本体。
你的例句
Bob, over on 42nd street, will have a job at the Mall after the owner approves
可以在 Attempto 控制英语 (ACE) 中重写为
If an owner of Mall approves John whose address is "42nd street" then he is employed by Mall.
(或者类似的东西,取决于你到底想说什么。)
这个句子可以自动映射到 OWL2 SubClassOf-axiom
SubClassOf( ObjectIntersectionOf( ObjectOneOf( :Mall ) ObjectSomeValuesFrom( :owner ObjectSomeValuesFrom( :approve ObjectIntersectionOf( ObjectOneOf( :John ) DataHasValue( :address "42nd street"^^<http://www.w3.org/2001/XMLSchema#string> ) ) ) ) ) ObjectSomeValuesFrom( :employ ObjectOneOf( :John ) ) )
这种映射实现了关于基本词类的一些约定:
- 普通名词映射到 OWL 类名
- 专有名词映射到 OWL 个体名
- 及物动词、及物形容词和 of 结构映射到 OWL 属性名:如果它们的参数是数字或字符串,则映射到数据属性名,否则映射到对象属性名
ACE 支持的许多词类都不受此映射支持,例如不及物动词和双及物动词、不及物形容词和副词。 可以扩展覆盖范围,例如,不及物动词可以映射到 OWL 类(例如,“John sleeps.”可以被认为意味着个体 John 属于 睡眠者 类)。 如何处理例如双及物动词和副词则不太清楚。
一般来说,英语在它的构成要素(名词、不同类型的形容词、不同类型的动词等)方面比 OWL(它有类、个体、对象和数据属性,以及(类型化的)数据项,如字符串和数字)丰富得多。 而这仅仅是“词与实体”的层面。 时态之类的东西更复杂,因为它们在英语中有许多表面表示,并且在 OWL 方面没有任何内置的东西。