owlready2 Python面向本体编程软件包中文文档(5)

2019-03-29 10:29

注释(Annotation)

在Owlready2中注释可以像Python类属性(attribute)一样被访问。需要注意的是注释不可被继承。

1. 添加注释

对于一个给定的实体(类、属性或者实例),可以用以下方法添加注释:

可以看到,注释是以列表的形式出现的,默认有以下几种方式添加注释:comment、isDefinedBy、seeAlso、backwardCompatibleWith、deprecated、incompatibleWith、priorVersion、versionInfo。

Owlready2同时支持给关系三元组添加注释,使用AnnotationProperty(在这里用的是comment)以伪字典的方式添加注释(字典的key分别是定义域类实例、关系名、值域类实例,字典的value是评论文本)。

Owlready2提供特殊的伪属性以注释is-a关系(包括owl_subclassof和rdf_type)、定义域(domains,如rdf_domain)以及定义域(ranges,如rdf_range)。

注释值通常是值列表。然而在很多情况下都会使用单个值。Owlready2允许给注释属性

设置单个值。

2. 查询注释

注释值可以使用.运算符来获取就如同它们是实体的属性:

如果你希望查询结果是单个值,可以使用list类型的.first()函数,它返回列表中的首个值,如果列表为空则返回None。

3. 删除注释

只需从注释列表中将特定注释移除即可:

Drug.comment.remove(\。

或者直接给注释列表赋值一个空列表以删除全部注释:Drug.comment=[]。

4. 定制化的实体呈递

全局函数set_render_func()可以指定Owlready2如何呈递实体。例如,当打印实体时如何去将他们转换成文本。这个函数接收一个函数作为参数,做参数的函数的参数是实体,返回值是字符串。

label注释经常被用来呈递实体,下面的例子使用它们的label注释呈递实体,如果label为空则使用实体名。

下面的例子使用实体的iri呈递实体:

5. 特定语言的注释

可以使用locstr类型来指定注释的语言:

另外,值列表支持指定语言的子列表,子列表形式为‘.<语言代码>’如‘.en’、‘.fr’等。这些子列表包含普通的字符串,可以被修改。

修改指定语言的子列表会自动更新值列表,但是反过来就不会:修改值列表不会更新指定语言子列表。

6. 创建新的注释类

AnnotationProperty类可以生成子类以创建新的注释类:

你也可以为已存在的注释类创建子类。

命名空间

本体可以定义位于其他命名空间的实体。一个例子是Gene本体:本体的IRI是‘htt

p://purl.obolibrary.org/obo/go.owl’,但是本体的实体的IRI并不是如此形式‘http://purl.obolibrary.org/obo/go.owl#GO_entity’,而是‘http://purl.obolibrary.org/obo/GO_entity’。

1. 访问定义在其他命名空间的实体

实体在Owlready2中可以使用命名空间来访问。本体的.get_namespace(base_iri)方法返回一个base_iri指定的命名空间。

命名空间之后可以使用‘.’来进行使用,和本体类似。

2. 在指定命名空间中创建类

当创建一个类或者属性的时候,命名空间属性可以用来建立类的full iri并且定义在哪个本体中创建这个类。类的iri与命名空间的base iri加上类名相同。

一个本体永远可以被当成命名空间使用,见‘类和类实例’这一章。如果你想在不同的iri中建立类你可以使用命名空间对象:


owlready2 Python面向本体编程软件包中文文档(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:制药厂关于生产实习报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: