前言:最近做的项目是自然语言处理相关的,看了一本书《语义web技术基础》,总的来看,接触自然语言处理,语义理解也有差不多一年的时间了。这两天想了一想,自己究竟学到了什么,掌握了哪些新的知识和技能,可是人的大脑总是有限的,可能有些你学到的东西真正到了需要用的时候才会发现它,平时根本记不起来,这也导致了容易遗忘的特点。尤其是我自己,感觉记忆力不是很好,所以对我而言,学到知识之后,多做笔记,多归纳总结,才是比较好的学习方法。

一、语义web是什么

  很多人都听过语义网的概念,那究竟什么是语义网呢?这里是来自维基百科的定义:

  语义网(Semantic Web)是由万维网联盟蒂姆·伯纳斯-李(Tim Berners-Lee)在1998年提出的一个概念,它的核心是:通过给万维网上的文档(如: HTML)蒂姆加能够被计算机所理解的语义(Meta data),从而使整个互联网成为一个通用的信息交换媒介。

可以看出,之所以和现在的万维网区别开来,就是现在的网上很多信息,但是计算机无法理解这些信息的具体含义,也就是语义。现在计算机的运算能力越来越强大,如果额昂计算机能够理解网上如此巨大体量的的信息资源,再结合上一定的推理能力,将获得难以想象的知识。这里就乐意联想到机器学习和大数据相关知识,想要让机器获得智能,很大一部分也就是像人一样有决策能力、推理能力,肯定需要给它大量的数据来学习,万维网就是一个巨大的数据来源,但是想要让这些数据转化为机器可以利用可以读懂的数据,就需要在万维网的基础上构建语义网,将这些数据变为机器可以阅读的形式。所以也有人说语义网就是建立一个巨大的数据库,机器可以使用并且通过这个数据库来完成很多功能。比如说搜索一个领域的知识可能就不是返回一大堆网页,二是结构良好的图形组织的知识。

二、如何实现语义网

  要想实线这样的一个网络,肯定需要一系列的协议规约,相关的软件支持等,这里主要参考书上的三个方面主题:

1.建立模型:寻求用抽象的术语来描述一个复杂的世界,来得到对复杂世界的更加容易的理解。

  这里说的很抽象,就是建模。对客观复杂的世界建模,这里就需要引入几个相关的概念,本体,本体描述语言,RDF。

  本体:(ontology)在哲学上,本体论主要研究一切现实事物的基本特征,到底哪些名词代表真实的存在实体,哪些只是一种概念。从哲学上到计算机学科,也产生了本体的概念。在计算机领域,本体是关于一个领域的知识的描述,核心是机器可处理的说明和形式化的定义。通俗的说,就是对一个领域的知识使用计算机能理解的方式来表示。底层还是和哲学一样,和实体和实体之间的关系。

  有了本体,那么怎么描述本体呢?这就产生了资源描述框架RDF,和本体语言比如RDFS,OWL...

  RDF:对实体和实体之间的关系来刻画。

  从上面的图形可以看出,RDF,resource description framework,资源描述框架实际上就是定义了一种如何表示实体和实体之间关系的标准,他有时候也被称作一种语言。具体RDF语法细节这里就不给出了,以后有时间再单独写一个。贴出一个W3School的教程链接,http://www.w3school.com.cn/rdf/index.asp

  本体描述语言:有了RDF和RDFS的确可以表示一些实体和关系,但是无法表示很复杂的关系,这时候就需要本体语言OWL出场了,特点就是有更强的刻画能力,能够对一些问题进行精确建模。用OWL表示本体,也就是用OWL表示领域 的知识,能够更好的被计算机理解和识别。但是还是基于RDF的顶端的。

2.知识计算

  将互联网上的杂乱无章的信息归纳整理,用计算机好理解的方式标识之后,就成了一系列的知识。用这些知识进行归纳、推理,产生一些新的结果,这就是知识计算。比如:

  这就是一个简单的推理过程,计算机一旦拥有和人一样的推理能力,将会产生巨大的效应。

3.交换信息

  这个很好理解,就是在网上传递内容,本体语言也可以借助XML等传递信息。

三、语义网有哪些应用

  这个有时间再来填。。。

  

语义web相关概念的更多相关文章

  1. Jena语义Web开发101

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

  2. 语义Web和本体开发相关技术

    在技术实现方面,语义Web和本体理论的研究日趋成熟,已经有许多成熟的工具或程序接口,诸如Jena.OWL API等API是系统实现的关键技术.这里介绍系统的可行性分析以及系统开发设计的关键技术. 1 ...

  3. 语义web基础知识学习

    最近找了一本书,<语义web技术基础>----Pascal Hitzler等编著的.因为最近在看关于自然语言处理的一些东西,就顺带翻了一下,做一点学习笔记,方便以后查看. 本书的作者 Pa ...

  4. 从基于 SQL 的 CURD 操作转移到基于语义 Web 的 CURD 操作

    中文名称 CURD 含义 数据库技术中的缩写词 操作对象 一般的项目开发的各种参数 作用 用于处理数据的基本原子操作     它代表创建(Create).更新(Update).读取(Retrieve) ...

  5. web相关概念

    1.web概念:web1.0:静态页面为主(传统企业的页面)特点:由网站提供方来更新和维护内容web2.0:以动态页面为主,以用户为中心,网站由用户参与或编辑web3.0:智能化人与人与机器的交流(各 ...

  6. WEB相关概念、Tomcat初识、Servlet、基本知识。

    /* * 一.web的概念? * 1.web就是在http协议基础之上, 利用浏览器进行访问的网站. * Web Page指网站内的网页. 我们常说的WWW(World Wide Web 万维网)就是 ...

  7. Go Web 编程 第一章 Web相关概念

    第一章 Go与Web应用 Go学习群:415660935 1.1 Web应用 在计算机的世界里,应用(application)是一个与用户进行交互,并完成用户特定任务的软件程序.而Web应用则是部署在 ...

  8. Java Web相关概念调查

  9. Java 之 web 相关概念

    一.软件架构 1.C/S:客户端/服务器端 2.B/S:浏览器/服务器端(目前常用) 二.网络资源 1.静态资源 静态资源:所有用户访问后,得到的结果都是一样的,称为静态资源,静态资源可以直接被浏览器 ...

随机推荐

  1. GDB调试,转载一位大牛的东西

    http://www.wuzesheng.com/?p=1327 手把手教你玩转GDB(一)——牛刀小试:启动GDB开始调试 写在最前面:GDB是unix相关操作系统中C/C++程序开发必不可少的工具 ...

  2. day15数据类型

    一.浮点数 之前讲过的,有序 : 列表 元组 字符串 数字类 :int flost complex bool 散列累 :集合和字典 浮点数:--包含所有小数 和复数 复数:a +bj   实部和虚部 ...

  3. Kotlin——中级篇(一):类(class)详解

    在任何一门面向对象编程的语言里,类(class)是非常基础.但也是非常重要的一项组成,通俗的说就是万般皆对象,而所说的对象就是我们生成的类.Kotlin也是如此,下面详细为大家介绍Kotlin中的类的 ...

  4. 【转】哈希(Hash)与加密(Encrypt)的基本原理、区别及工程应用

    0.摘要 今天看到吉日嘎拉的一篇关于管理软件中信息加密和安全的文章,感觉非常有实际意义.文中作者从实践经验出发,讨论了信息管理软件中如何通过哈希和加密进行数据保护.但是从文章评论中也可以看出很多朋友对 ...

  5. JS HTML DOM---Document对象

    Document 对象 当浏览器载入 HTML 文档, 它就会成为 document 对象. document 对象是HTML文档的根节点与所有其他节点(元素节点,文本节点,属性节点, 注释节点). ...

  6. Introduction to Mathematical Thinking - Week 4

    否定的逻辑 应该思考符号背后表示的逻辑,而不是像操作算术运算符一样操作逻辑符号. 比如 对于任意的 x,x属于自然数,那么 x 是偶数或者奇数:这是对的 如果使用“乘法分配律”拆分,变成“对于任意的x ...

  7. C#反射 程序域

    1:加载dll到当前应用程序域: public static void LoadAllAssembly(string bindir) //bindir是dll所在的完整路径 { List<Ass ...

  8. Linux Debian 如何部署 Qt?

    Linux Debian 如何部署 Qt? 在这里以 HelloWorld 为例 目录结构如下: . ├── HelloWorld ├── HelloWorld.sh ├── imageformats ...

  9. Codeforces 240F. TorCoder 线段树

    线段树统计和维护某一区间内的字母个数.. . . F. TorCoder time limit per test 3 seconds memory limit per test 256 megabyt ...

  10. 使用Kotlin开发Android应用(I):简介

    Kotlin是一门基于JVM的编程语言,它正成长为Android开发中用于替代Java语言的继承者.Java是世界上使用最多的编程语言之一,当其他编程语言为更加便于开发者使用而不断进化时,Java并没 ...