我是在撰写毕业论文中接触到知识表示方面的内容,有时需要理论与实践相结合,关于这方面的理论知识学习,除了网页资料、书籍、另外推荐一个网站:熊猫学术(https://sc.panda321.com/),可以查阅很多相关的学术论文,阅读确实能够对实践提供一些思路。
介绍
在计算机领域,本体可以在语义层次上描述知识,是描述某个学科领域知识的一个通用概念模型,这个概念模型包含了某个学科领域内的基本术语和术语之间的关系(或称为概念以及概念之间的关系)。—(这句话可以好好反复理解一下)
依据本体的层次和领域依赖度,本体可被划分为四类:顶层本体、领域本体、任务本体和应用本体。其中领域本体研究的是特定领域内概念及概念之间的关系。
OWL是Web Ontology Language(Web本体语言)的缩写,是W3C推荐的标准本体语言之一,来表示语义网的知识体系。OWL是建立在RDF和RDFS(另外两种本体语言)基础上的,不仅有类和实例的词汇表示,还增加了更多关系的表示。OWL提供快速、灵活的数据建模能力,并且支持高效的自动推理。OWL自身被分为三种子语言:OWL-lite、OWL DL和OWL Full,其中OWL-lite是OWL最有用的应用。OWL的完整词汇表使用了RDF、RDFS和OWL名称空间中的URI,并且还使用了XML模式(Schema)的文字(literal)定义,创建本体使用的重要的类和属性说明如表所示。
语法 | 含义 |
---|---|
owl:Thing | OWL里所有对象所属的基类 |
owl:Class | RDF资源的类 |
owl:DatatypeProperty | 所有具有文字(literal)范围的属性的类 |
owl:ObjectProperty | 所有具有owl:Class实例范围的属性的类 |
owl:NamedIndividual | 概念类的实例 |
owl:inverseOf | 定义某个属性的相反关系,如:“父母”的相反关系是“子女” |
rdf:about | 定义资源 |
rdf:type | 定义资源的类型 |
rdfs:subClassOf | 指定类是另一个类的子类 |
rdfs:domain | 指定属性具有指定类的定义域,描述三元组中主语的类型约束 |
rdfs:range | 指定属性具有指定类的值域,描述三元组中宾语的类型约束 |
rdfs:comment | 提供一个人类可读的有关资源的描述 |
在以上词汇的基础上,对某一领域知识进行形式化描述,构建领域本体。
另外,一些网页资料可以瞅瞅,如:
本体(Ontology)概述
Apache Jena入门
【语义网】Jena框架简介及实战
构建
(1) Protege
一款基于Java语言开发的本体编辑和本体开发工具
手动建立概念、个体、属性等信息,为概念添加属性断言,利用Protege的插件即可查看概念之间的层次关系。
(2) Ontology API
将数据(概念、个体、属性)整理到excel表中,利用相关方法可以实现本体数据的批量自动填充。
推理工具—Apache jena
Apache Jena(简称Jena)是惠普实验室开发的开放资源,用于构建语义网和链接数据应用程序。Jena是语义Web领域主要的开源框架和RDF三元组库,较好地遵循W3C标准,其功能包括:RDF数据管理、RDFS和OWL本体管理、SPARQL查询处理等。Jena的接口包括RDF API、Ontology API、SPARQL API。Jena具备一套原生存储引擎,可对RDF三元组进行基于磁盘或内存的存储管理;同时可使用不同的应用程序接口(API)与RDF数据进行交互,通过对RDF、RDFS、OWL文件(基于XML语法)的解析和推理,能实现语义信息的检索。构建的领域本体最终可保存为OWL文件,使用Jena完成解析和推理。