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序列化方法总结

  • URI用 <> 描述

    <http://example.org/path/>
    <http://example.org/path/#fragment>
    
  • 前缀缩写(类似于RDF/XML的命名空间)

    @prefix foo:<http://example.org/ns#>
    @prefix  : <http://example.org/ns1#>
    :a :b :c
    
  • 字面量

    一行或者多行, @en限定其语言, ^^xsd:decimal限定其数据类型

    "string"
    """
    many lines of string
    many lines of string
    many lines of string
    """
    "chat"@en
    "chat"@fr
    "10"^^xsd:decimal
    
  • 空节点(RDF模型可能会存在未命名的空节点)

    _:me,_a1234分别代表一个空节点

    _:me
    _:a1234
    
  • base URI

    base URI定义后,接下来的URI, 前缀缩写,qualified names 和base URI都要受其作用

    # this is a complete turtle document
    
    @base <http://example.org/ns/> .
    # base URIs 是 http://example.org/ns/
    
    @base <foo/> .
    # base URI 是 http://example.org/ns/foo/
    
    @prefix : <bar#> .
    :a4 :b4 :c4.
    
  • 对三元组进行缩写

    :a :b :c,
          :d.
    #the last triple is :a :b :d.
    
  • 一个简单的完整turtle标准文件

    img

@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;
             .