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

  • 知识总是以三元组形式出现: (subject, predicate, object)

    (主,谓,宾)
  • 资源和属性用URI来定义(http://demo.com/KG
  • 属性值可以一个值,或者一个资源(URI)
  • 可用命名空间替代uri来简化
<RDF>
<Description about="https://www.runoob.com//rdf">
<author>Jan Egil Refsnes</author>
<homepage>https://www.runoob.com/</homepage>
</Description>
</RDF>
<?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:RDF>

RDF序列化的方式主要有:RDF/XML,N-Triples,Turtle,RDFa,JSON-LD

N-Triples

<http://www.kg.com/person/1> <http://www.kg.com/ontology/chineseName> "罗纳尔多·路易斯·纳萨里奥·德·利马"^^string.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/career> "足球运动员"^^string.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/fullName> "Ronaldo Luís Nazário de Lima"^^string.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/birthDate> "1976-09-18"^^date.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/height> "180"^^int.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/weight> "98"^^int.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/nationality> "巴西"^^string.
<http://www.kg.com/person/1> <http://www.kg.com/ontology/hasBirthPlace> <http://www.kg.com/place/10086>.
<http://www.kg.com/place/10086> <http://www.kg.com/ontology/address> "里约热内卢"^^string.
<http://www.kg.com/place/10086> <http://www.kg.com/ontology/coordinate> "-22.908333, -43.196389"^^string.

Turtle

@prefix person: <http://www.kg.com/person/> .
@prefix place: <http://www.kg.com/place/> .
@prefix : <http://www.kg.com/ontology/> . person:1 :chineseName "罗纳尔多·路易斯·纳萨里奥·德·利马"^^string.
person:1 :career "足球运动员"^^string.
person:1 :fullName "Ronaldo Luís Nazário de Lima"^^string.
person:1 :birthDate "1976-09-18"^^date.
person:1 :height "180"^^int.
person:1 :weight "98"^^int.
person:1 :nationality "巴西"^^string.
person:1 :hasBirthPlace place:10086.
place:10086 :address "里约热内卢"^^string.
place:10086 :coordinate "-22.908333, -43.196389"^^string.

Trutle简化:

@prefix person: <http://www.kg.com/person/> .
@prefix place: <http://www.kg.com/place/> .
@prefix : <http://www.kg.com/ontology/> . person:1 :chineseName "罗纳尔多·路易斯·纳萨里奥·德·利马"^^string;
:career "足球运动员"^^string;
:fullName "Ronaldo Luís Nazário de Lima"^^string;
:birthDate "1976-09-18"^^date;
:height "180"^^int;
:weight "98"^^int;
:nationality "巴西"^^string;
:hasBirthPlace place:10086.
place:10086 :address "里约热内卢"^^string;
:coordinate "-22.908333, -43.196389"^^string.

RDFS(Resource Description Framework Schema)

是RDF的扩展,表现形式上就是RDF。常用的方式是RDF/XML,Turtle

@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <http://www.kg.com/ontology/> . ### 这里我们用词汇rdfs:Class定义了“人”和“地点”这两个类。
:Person rdf:type rdfs:Class.
:Place rdf:type rdfs:Class. ### rdfs当中不区分数据属性和对象属性,词汇rdf:Property定义了属性,即RDF的“边”。
:chineseName rdf:type rdf:Property;
rdfs:domain :Person;
rdfs:range xsd:string . :career rdf:type rdf:Property;
rdfs:domain :Person;
rdfs:range xsd:string .

常见属性:

  • rdfs:Class 用于定义类。
  • rdfs:domain 用于表示该属性属于哪个类别。
  • rdfs:range 用于描述该属性的取值类型。
  • rdfs:subClassOf 用于描述该类的父类。比如,我们可以定义一个运动员类,声明该类是人的子类。
  • rdfs:subProperty. 用于描述该属性的父属性。比如,我们可以定义一个名称属性,声明中文名称和全名是名称的子类。

借用一下知乎中的图(图片来自文章:https://zhuanlan.zhihu.com/p/32122644

OWL(Web Ontology Language)

可用于自动推理

  • 数据属性(DatatypeProperty): 指向某个值
  • 对象属性(ObjectProperty): 指向另一个实体
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix : <http://www.kg.com/ontology/> .
@prefix owl: <http://www.w3.org/2002/07/owl#> . ### 这里我们用词汇owl:Class定义了“人”和“地点”这两个类。
:Person rdf:type owl:Class.
:Place rdf:type owl:Class. ### owl区分数据属性和对象属性(对象属性表示实体和实体之间的关系)。词汇owl:DatatypeProperty定义了数据属性,owl:ObjectProperty定义了对象属性。
:chineseName rdf:type owl:DatatypeProperty;
rdfs:domain :Person;
rdfs:range xsd:string . :hasBirthPlace rdf:type owl:ObjectProperty;
rdfs:domain :Person;
rdfs:range :Place .

描述属性特征的词汇

  • owl:TransitiveProperty : 属性具有传递性质。(若A位于B,B位于C,那么A肯定位于C)
  • owl:SymmetricProperty : 属性具有对称性。(若A认识B,那么B肯定认识A)。
  • owl:FunctionalProperty : 该属性取值的唯一性。(我们定义“母亲”是具有唯一性的属性,若A的母亲是B,在其他地方我们得知A的母亲是C,那么B和C指的是同一个人)。
  • owl:inverseOf : 定义某个属性的相反关系。(A是B的父母,那么B肯定是A的子女)。

本体映射词汇(Ontology Mapping)

  • owl:equivalentClass : 表示某个类和另一个类是相同的。
  • owl:equivalentProperty : 表示某个属性和另一个属性是相同的。
  • owl:sameAs : 表示两个实体是同一个实体。

owl补充

  • owl:oneOf
  • owl:disjointWith :两个类不相交
  • unionOf : 并
  • minCadinality :
  • maxCadinality
  • InverseFunctionalProperty
  • hasValue

总结

rdfs的常见属性:

  • rdfs:Class 用于定义类。
  • rdfs:domain 用于表示该属性属于哪个类别。
  • rdfs:range 用于描述该属性的取值类型。
  • rdfs:subClassOf 用于描述该类的父类。比如,我们可以定义一个运动员类,声明该类是人的子类。
  • rdfs:subProperty. 用于描述该属性的父属性。比如,我们可以定义一个名称属性,声明中文名称和全名是名称的子类。

owl的常见属性:

描述属性特征的词汇

  • owl:TransitiveProperty : 属性具有传递性质。(若A位于B,B位于C,那么A肯定位于C)
  • owl:SymmetricProperty : 属性具有对称性。(若A认识B,那么B肯定认识A)。
  • owl:FunctionalProperty : 该属性取值的唯一性。(我们定义“母亲”是具有唯一性的属性,若A的母亲是B,在其他地方我们得知A的母亲是C,那么B和C指的是同一个人)。
  • owl:inverseOf : 定义某个属性的相反关系。(A是B的父母,那么B肯定是A的子女)。

本体映射词汇(Ontology Mapping)

  • owl:equivalentClass : 表示某个类和另一个类是相同的。
  • owl:equivalentProperty : 表示某个属性和另一个属性是相同的。
  • owl:sameAs : 表示两个实体是同一个实体。

  • rdf其实描述了数据,但是数据之间的关系不够明确;我们可以自定义一些关系,但是关系与关系之间也是有联系的,这在rdf中并无法表示出来
  • rdfs/owl是在rdf的基础上增加的约束;“边”不再是rdf中的直接定义,而也是需要用rdfs:domain, rdfs:range来描述。在拥有更清晰的语义的情况下,就可以进行推理

参考文章: https://zhuanlan.zhihu.com/p/32122644

RDF/RDFS/OWL的更多相关文章

  1. 基于AllegroGraph实现Protege设计知识库模型的存储步骤

    在 https://www.w3.org/2001/sw/wiki/Protege 网站看到以下词语: “.....The Protégé platform supports two main way ...

  2. 知识图谱基础之RDF,RDFS与OWL

    https://blog.csdn.net/u011801161/article/details/78833958 https://blog.csdn.net/baidu_15113429/artic ...

  3. 知识图谱基础之RDF,RDFS与OWL 2

    https://zhuanlan.zhihu.com/p/32122644 看过之前两篇文章([1](为什么需要知识图谱?什么是知识图谱?——KG的前世今生), [2](语义网络,语义网,链接数据和知 ...

  4. OWL,以及XML,RDF

    Ontology来源于哲学词汇:存在论(也有翻译成本体论).RDF是一种不错的本体描述方式,我们可以定义根据对现实世界的理解针对某个领域定义词汇来描述这个领域的知识.但RDF与RDF不能定义同义词.反 ...

  5. Jena将owl文件持久化到数据库中

    package cn.edu.shu.db; import java.io.File; import java.io.FileInputStream; import java.io.IOExcepti ...

  6. Jena 简介:通过 Jena Semantic Web Framework 在 Jave 应用程序中使用 RDF 模型

    简介: RDF 越来越被认为是表示和处理半结构化数据的一种极好选择.本文中,Web 开发人员 Philip McCarthy 向您展示了如何使用 Jena Semantic Web Toolkit,以 ...

  7. 语义网 (Semantic Web)和 web 3.0

    语义网=有意义的网络. "如果说 HTML 和 WEB 将整个在线文档变成了一本巨大的书,那么 RDF, schema, 和 inference languages 将会使世界上所有的数据变 ...

  8. Jena语义Web开发101

    2015/05/28更新 代码在 https://github.com/zhoujiagen/semanticWebTutorialUsingJena 前言 该手册参考和扩展“Hebeler J, F ...

  9. Jena TDB 101 Java API without Assembler

    Update on 2015/05/12 ongoing tutorials site on https://github.com/zhoujiagen/semanticWebTutorialUsin ...

随机推荐

  1. CAD二次开发(.net)优秀网站分享

    Autodesk官方网站 官方帮助文档:AutoCAD 2016 帮助: Managed .NET Developer's Guide (.NET) (autodesk.com) DXF帮助手册:DX ...

  2. 蕞短鹭(artskjid) (⭐通信题/模拟⭐)

    文章目录 题面(过于冗长,主要是对通信题的一些解释) 题解 1.通信题什么意思 2.此题题解 CODE 实现 题面(过于冗长,主要是对通信题的一些解释) 题解 1.通信题什么意思 并不是两个程序同时跑 ...

  3. 深入分析JVM执行引擎

    程序和机器沟通的桥梁 一.闲聊 相信很多朋友在出国旅游,或者与外国友人沟通的过程中,都会遇到语言不通的烦恼.这时候我们就需要掌握对应的外语或者拥有一部翻译机.而笔者只会中文,所以需要借助一部翻译器才能 ...

  4. 第九篇:vue条件语句

    好家伙,终于有个简单了的 v-if    条件判断 <div id="app"> <p v-if="seen">现在你看到我了</ ...

  5. zabbix客户端无法上传数据

    昨天发现有一台Windows服务器无法向zabbix服务端汇报数据.经过检查Windows上的客户端日志,可以看到以下错误. 31976:20200206:154445.873 active chec ...

  6. 我眼中的大数据(二)——HDFS

    Hadoop的第一个产品是HDFS,可以说分布式文件存储是分布式计算的基础,也可见分布式文件存储的重要性.如果我们将大数据计算比作烹饪,那么数据就是食材,而Hadoop分布式文件系统HDFS就是烧菜的 ...

  7. Nginx服务器性能优化与安全配置实践指南

    转载自:https://www.bilibili.com/read/cv16151784?spm_id_from=333.999.0.0 1.引言 1.1 目的 为了更好的指导部署与测试艺术升系统ng ...

  8. Kubernetes容器运行时弃用Docker转型Containerd

    文章转载自:https://i4t.com/5435.html Kubernetes社区在2020年7月份发布的版本中已经开始了dockershim的移除计划,在1.20版本中将内置的dockersh ...

  9. CentOS7使用yum方式安装Containerd

    # 安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的 yum install -y yum-utils device-m ...

  10. 第一章:模型层 - 9:查询集API

    本节将详细介绍查询集的API,它建立在下面的模型基础上,与上一节的模型相同: from django.db import models class Blog(models.Model): name = ...