python中面向本体的编程包:将owl 2.0本体作为python对象加载、修改、保存并通过hermit执行推理。包括一个优化的RDFquadstore。

Owlready2的Python项目详细描述


我可以用猫头鹰2做什么?

从本地存储库或Internet加载本体:

>>> from owlready2 import *
>>> onto_path.append("/path/to/your/local/ontology/repository")
>>> onto = get_ontology("http://www.lesfleursdunormal.fr/static/_downloads/pizza_onto.owl")
>>> onto.load()

在本体中创建新类,可能混合了owl构造和python方法:

< DL> ::
>>> with onto:
...     class NonVegetarianPizza(onto.Pizza):
...       equivalent_to = [
...         onto.Pizza
...       & ( onto.has_topping.some(onto.MeatTopping)
...         | onto.has_topping.some(onto.FishTopping)
...         ) ]
...       def eat(self): print("Beurk! I'm vegetarian!")

访问本体类,并创建新实例/个体:

>>> onto.Pizza
pizza_onto.Pizza
>>> test_pizza = onto.Pizza("test_pizza_owl_identifier")
>>> test_pizza.has_topping = [ onto.CheeseTopping(),
...                            onto.TomatoTopping(),
...                            onto.MeatTopping  () ]

导出到RDF/XML文件:

>>> test_onto.save()

进行推理,并对实例和类进行分类:

>>> test_pizza.__class__
onto.Pizza

>>> # Execute HermiT and reparent instances and classes
>>> sync_reasoner()

>>> test_pizza.__class__
onto.NonVegetarianPizza
>>> test_pizza.eat()
Beurk! I'm vegetarian !

从umls获取医学术语:

>>> from owlready2 import *
>>> from owlready2.pymedtermino2.umls import *
>>> default_world.set_backend(filename = "pym.sqlite3")
>>> import_umls("umls-2018AB-full.zip", terminologies = ["ICD10", "SNOMEDCT_US", "CUI"])
>>> default_world.save()

>>> PYM = get_ontology("http://PYM/").load()
>>> ICD10       = PYM["ICD10"]
>>> SNOMEDCT_US = PYM["SNOMEDCT_US"]

>>> SNOMEDCT_US[186675001]
SNOMEDCT_US["186675001"] # Viral pharyngoconjunctivitis

>>> SNOMEDCT_US[186675001] >> ICD10   # Map to ICD10
Concepts([
  ICD10["B30.9"] # Viral conjunctivitis, unspecified
])

有关更多文档,请查看源中的文档/目录。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Spring引导上的java Jackson数据绑定依赖项错误,AWS应用程序   java从命令行从QuickBooks API更新数据   java 8上的spring迭代值   html我们如何使用java代码解析xhtml文档?   span下的java Jsoup html解析项   java如何在类级注释之前对带有@valid注释的属性执行验证?   JavaImageView。setImageDrawable在横向模式下不工作   java并发对匹配   java python子进程调用ubuntu 14.04   如何在java中检查文件详细信息?   一串子字符串和空格,Java   java如何在CORBA服务器中识别各种CORBA客户机   java为什么Hibernate中的生命周期侦听器是可序列化的?   java HttpsServer使用curl会导致100%的CPU负载   java Maven在合并web时提供货物。xml不包括所有错误页面   java如何获取图形触摸的所有x、y坐标并将其发送给MainActivity?   如何按日期筛选多个文档中的数据Firestore、Android和Java