Artificial intelligence 用RDF表示自然语言

Artificial intelligence 用RDF表示自然语言,artificial-intelligence,machine-learning,rdf,semantics,owl,Artificial Intelligence,Machine Learning,Rdf,Semantics,Owl,RDF/OWL能够代表多少用自然语言表达的概念?我仍在学习RDF和其他语义技术,但据我目前的理解,信息通常表示为形式的三元组(主语、谓语、宾语)。因此,我可以想象“鲍勃有一顶帽子”这句话是如何表达的。然而,你会如何表达一个更复杂的句子,比如“鲍勃,在42街,在业主批准后将在商场工作”?表示名词/动词/所有权/因果关系/时态等的标记是否有约定 注意,我并不是在问如何将任意自然语言文本自动转换为RDF(因为目前看来这是不可能的)。我只是想了解RDF是如何被用来表示自然语言所表示的相同信息的。也许可以

RDF/OWL能够代表多少用自然语言表达的概念?我仍在学习RDF和其他语义技术,但据我目前的理解,信息通常表示为形式的三元组(主语、谓语、宾语)。因此,我可以想象“鲍勃有一顶帽子”这句话是如何表达的。然而,你会如何表达一个更复杂的句子,比如“鲍勃,在42街,在业主批准后将在商场工作”?表示名词/动词/所有权/因果关系/时态等的标记是否有约定

注意,我并不是在问如何将任意自然语言文本自动转换为RDF(因为目前看来这是不可能的)。我只是想了解RDF是如何被用来表示自然语言所表示的相同信息的。

也许可以看看它的目标是定义一个可以自动映射到一阶逻辑的英语片段。这项工作的一部分是映射到OWL2DL。见例

你的例句

Bob, over on 42nd street, will have a job at the Mall after the owner approves
可以按照以下要求用Attempto控制英语(ACE)重写

(或者类似的,取决于你到底想说什么。)

这个句子可以自动映射到axiom的OWL2子类

子类(
客观的(
反对者(
:购物中心
)
ObjectSomeValuesFrom(
:所有者
ObjectSomeValuesFrom(
:批准
客观的(
反对者(
:约翰
)
DataHasValue(
:地址
“42街”^^
)
)
)
)
)
ObjectSomeValuesFrom(
:雇用
反对者(
:约翰
)
)
)
此映射实现了有关基本单词类的某些约定:

  • 普通名词映射到OWL类名
  • 专有名称映射到OWL个人名称
  • 及物动词、及物形容词和结构映射到OWL属性名称:如果参数是数字或字符串,则映射到数据属性名称,否则映射到对象属性名称
此映射不支持ACE支持的许多词类,例如不及物动词和双及物动词、不及物形容词和副词。覆盖范围可以扩大,例如,不及物动词可以映射到OWL类(例如,“John sleeps.”可以理解为个体John属于睡眠者类。不太清楚如何处理双及物动词和副词


一般来说,英语在构建块(名词、不同类型的形容词、不同类型的动词等)方面比OWL(具有类、个体、对象和数据属性,以及(类型化的)数据项,如字符串和数字)丰富得多。这只是“文字与实体”的层次。像时态这样的东西更复杂,因为它们在英语中有许多表面表示,而且在OWL方面没有任何内置的东西。

做得好。经过一些研究,确切的APE调用是:./APE.exe-text“如果p:Mall的所有者v:approved p:John的地址是\“42街\”,那么John就是p:Mall的n:employee。”-cparapraphraseit有趣的是,ACE支持的大多数功能都不受RDF/OWL的支持,因为这些功能不支持形容词、副词、,以及其他常见的词类。试图将我的句子导出到OWL会产生一个错误,但如果我将其导出为语篇表示结构(DRS),效果会很好。@chris-s我扩展了答案,以回应您的第二条评论。
If an owner of Mall approves John whose address is "42nd street"
    then he is employed by Mall.
   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
         )
      )
   )