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

  • 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标准文件

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