PAROT: Translating natural language to SPARQL(PAROT:将自然语言翻译成SPARQL)--08

Author:Peter Ochieng(<–这个是作者!)

考虑一下用户查询(user query):哪位女演员在《卡萨布兰卡(Casablance)》中扮演角色,并且嫁给了一位出生于罗马(Rome)的作家(Which female actor played in Casablanca and is married to a writer born in Rome?),基于(5a)式子中的规则,该查询被标记为一个复合语句(compound sentence),因此这个查询会被分成两个简单句:

  • s1= Which female actor played in Casablanca
  • s2=Which female actor is married to a writer born in Rome
  • cc = And

当GenerateTriple函数同时应用于s1和s2时,将生成以下用户三元组(user triples):

  • GenerateTriple(s1)= {actor played_in Casablanca}
  • GenerateTriple(s2)={actor married_to writer,writer born_in Rome}

然后对用户三元组进行扩展(交换位置),以预测在底层本体(undelying ontologies)中的可能位置:

  • {(actor played_in Casablanca, Casablanca played_in actor) }
  • {(actor married_to writer, writer married_to actor)(writer born_in Rome, Rome born_in writer)}

从查询(query)中生成的最终用户三元组(final user triples)如清单1(Listing 1)所示:
listing1

在底层本体(undelying ontology)中建模(model)的概念(concepts)的正确位置(correct positon)将由第3.5节(Section 3.5)中讨论的词典(lexicon)来解决。

  • Section3.5 关于词典是什么,我也不是很懂!!!唉!!>_<

在两种特殊情况下,GenerateTriple应用了公式8(equation 8)中的规则。这些规则基本上适用于不明确动词(explicit verb)连接哪个名词(nouns)的情况(scenarios)。适用的规则:

  • 当查询以who开始,比如,Who killed Ceasar?
  • 当查询包含一个不在任何两个名词noun之间的动词verb时,比如当一个动词在一个句子结尾时,In which continent does the Nile traverse

规则(8a)适用于第一种情况,(8b)适用于第二种情况。
分解式子

考虑这个查询Who killed Ceasar,并对它应用(8a),如下式所示:
8a

如上图所示生成了{?who killed Ceasar}和{Ceaser killed ?Who}两个用户三元组。再考虑查询语句In which continent does the Nile traverse,依赖关系图dependency diagram如图(Fig.5)所示。
依赖关系图

应用(8b)中的规则,如下式所示:
8b
注意:写个总结给我自己,觉得作者写了一堆规则,都是理论,虽然也有举例子,但是对我这种“能运行的都是好的”的人来说,感觉还不如直接把软件使用说明和软件或者代码发过来更让我觉得幸福!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值