微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python:使用owlready加载“爱因斯坦斑马拼图”-本体

如何解决Python:使用owlready加载“爱因斯坦斑马拼图”-本体

我想借助A. Einstein借助python的语义网络工具(最好是 owlready 解决著名的zebra puzzle

起点是在https://github.com/RDFLib/OWL-RL/issues/3链接的两个猫头鹰文件。第一个(XML语法)按预期工作。第二个(不同作者,n3 turtle语法)无法加载,或者仅在owlready中“部分”加载。为了更轻松地理解我的步骤,我在笔记本中记录了这些步骤:https://github.com/cknoll/demo-material/blob/master/expertise_system/einstein-zebra-puzzle-owlready-solution-attempt.ipynb

为便于参考,我包括了笔记本的必要部分:

import os
import owlready2 as owl2

data_path = "ontology_data"
path2 = os.path.join(data_path,"zebra.n3.txt") # original turtle Syntax
path2 = os.path.join(data_path,"zebra.n3.txt.xml") # created with ontospy
onto = owl2.get_ontology(path2).load()

list(onto.classes()) # -> empty list -> loading seems to have Failed

# Now try xml Syntax
# create a new world
owl2.default_world = owl2.World()
onto = owl2.get_ontology(path2x).load()

list(onto.classes()) # -> expected result
list(onto.properties()) # -> expected result
onto.hasPet # -> expected result


# unexpected/wrong:

onto.individuals # -> empty list

list(onto.livesIn.get_relations())  # -> KeyError 

结论:我可以加载该本体的XML版本,但是我无法确认将这些概念定义为owl:oneOf-对象,也无法找到断言之类的地方


:norwegian :livesIn :House1 .


:norwegian :livesIn [ :isNextTo [ :hasColor :Blue ] ] .

结束了。

我很高兴得到一些提示

(我认为,一旦正确表示了本体,就可以通过sync_reasoner_pellet(infer_property_values=True,infer_data_property_values=True))之类的方法来获得解决方

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。