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 ])
有关更多文档,请查看源中的文档/目录。