OWL基础

OWL基础

网络本体语言Web Ontologoy Language

OWL Lite -> OWL DL -> OWL Full 递进关系

基本元素

  1. 类(Class)

    任何东西都是类owl:Thing 的一个成员(实例);子类:Subclass;相等关系:equivalentClass

  2. 个体(Individual)

    与实例的概念差不多

    一个个体可以属于多个类(没有指名是哪个类)

    某个类的实例(指名了类)

    子类与个体是不同的东西

  3. 属性(Property)

    一个二元关系,OWL中包括两种属性:

    1. 类型属性(datatype properties):描述类与其实例之间关系的属性。
    2. 对象属性(object properties):描述两个不同类的实例之间关系的属性。

    属性有两个端点:起点和终点,都应该是两个个体(实例)

    用原集(domain)起点的实例的类,用象集(range)描述终点的实例的类.

    属性也有子属性(Subproperty)

公理和约束

rdf资源描述框架(Resource Description Framework)

W3C提出的一组标记语言的技术规范,是一种数据模型,rdf数据集的序列化方法

OWL是由DAML(DARPA Agent Markup Language)+OIL(Ontology Inference Layer)演变而来。

OWL是RDF的扩张,为我们提供了更广泛的定义RDFS词汇的功能,更广泛意指可以定义词汇之间的关系,类与类间的关系,属性与属性之间的关系等

foaf(Friend-of-a-Friend)是一种XML/RDF词汇表,不管通过那种那种方法表示数据资源,都要指定词汇表

  1. RDF/XML

    XML的技术程序;格式太冗长,不便于阅读

  2. N-Triples

    三元组表示;开放领域知识图谱DBpedia通常使用这种格式发布数据.

  3. Turtle

    使用最多的一种RDF序列化方法,比RDF/XML紧凑,可读性比N-Triples好

  4. RDFa

    The Resource Description Framework in Attributes,HTML5的一个扩展,不改变任何显示效果的情况下,然网站更容易被搜索引擎解析

  5. JSON-LD

    JSON for Linking Data,用键值对的方法来存储RDF

RDF/XML

<?xml version="1.0"?>

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cd="http://www.recshop.fake/cd#">

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Empire Burlesque">
  <cd:artist>Bob Dylan</cd:artist>
  <cd:country>USA</cd:country>
  <cd:company>Columbia</cd:company>
  <cd:price>10.90</cd:price>
  <cd:year>1985</cd:year>
</rdf:Description>

<rdf:Description
rdf:about="http://www.recshop.fake/cd/Hide your heart">
  <cd:artist>Bonnie Tyler</cd:artist>
  <cd:country>UK</cd:country>
  <cd:company>CBS Records</cd:company>
  <cd:price>9.90</cd:price>
  <cd:year>1988</cd:year>
</rdf:Description>
.
.
.
</rdf:RDF>

RDF 文档的第一行是 XML 声明。这个 XML 声明之后是 RDF 文档的根元素:。

xmlns:rdf 命名空间,规定了带有前缀 rdf 的元素来自命名空间 "http://www.w3.org/1999/02/22-rdf-syntax-ns#"。

xmlns:cd 命名空间,规定了带有前缀 cd 的元素来自命名空间 "http://www.recshop.fake/cd#"。

元素包含了对被 rdf:about 属性标识的资源的描述。

元素:、、 等是此资源的属性。

Turtle序列化方法总结

@prefix info: <http://zy.example.com/info#>
@prefix rel: <http://zy.example.com/rel#>
@prefix person: <http://zy.example.com/person#>

person:Tom info:name "Tom";
          info:job "worker";
          info:age 56;
          rel:fatherof person:Jim.

person:Jim info:name "Jim";
          info:job "programmer";
          info:age 28;
          rel:fatherof person:Cherry.

person:Cherry info:name "Cherry";
             info:age 8;
             .