[NLP] 语义网络与知识图谱入门(二)
语义网络与知识图谱入门(二)
OWL
本体声明
owl用owl:Ontology来声明一个本体。rdf:about属性为本体提供一个名称或引用。根据标准,当rdf:about属性的值为""时,本体的名称是owl: Ontology元素的基准URI。
<owl:Ontology rdf:about="">
<rdfs:comment>An example OWL ontology</rdfs:comment>
<owl:priorVersion rdf:resource="http://www.w3.org/TR/2003/PR-owl-guide-20031215/wine"/>
<owl:imports rdf:resource="http://www.w3.org/TR/2004/REC-owl-guide-20040210/food"/>
<rdfs:label>Wine Ontology</rdfs:label>
</owl:Ontology>
rdfs:comment 提供了显然必须的为本体添加注解的能力。
owl:priorVersion 是一个为用于本体的版本控制系统提供相关信息(hook)的标准标签。
owl:imports 提供了一种嵌入机制,接受一个用rdf:resource属性标识的参数。导入另一个本体将把那个本体中的全部声引入到当前本体中.
rdfs:label对本体进行自然语言标注。
基本元素
类的定义
OWL中的所有个体都是类owl:Thing的成员。
<owl:Class rdf:ID="PotableLiquid">
<rdfs:subClassOf rdf:resource="#ConsumableThing" />
</owl:Class>
上例中PotableLiquid被定义为ConsumableThing的子类。
一个类的定义由两部分组成:引入或引用一个名称,以及一个限制列表。被直接包含在类定义中的各个表达式进一步限制了该类的实例,该类的实例属于所有这些限制的交集。(这里描述的是成为某个类的必要条件,关于描述成为某个类的充分必要条件,请参见owl:equivalentClass部分。
个体的定义
类的成员就是类的个体。
先定义类。
<owl:Class rdf:ID="Grape">
</owl:Class>
在定义本体
<owl:Class rdf:ID="WineGrape">
<rdfs:subClassOf rdf:resource="&food;Grape" />
</owl:Class>
然后就可以定义个体了
<WineGrape rdf:ID="CabernetSauvignonGrape" />
这里WineGrape为类名,rdf:ID为个体名。
定义属性
一个属性是一个二元关系。有两种类型的属性:
数据类型属性(datatype properties),类实例与RDF文字或XML Schema数据类型间的关系。
对象属性(object properties),两个类的实例间的关系。
<owl:ObjectProperty rdf:ID="madeFromGrape">
<rdfs:domain rdf:resource="#Wine"/>
<rdfs:range rdf:resource="#WineGrape"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="course">
<rdfs:domain rdf:resource="#Meal" />
<rdfs:range rdf:resource="#MealCourse" />
</owl:ObjectProperty>
上面例子可以看出,定义域为Wine,值域为WineGrape,也就是说,属性描述可以将两个类相关联,使得属性取值的key在Wine中,value在WineGrape中。
实体如何拥有定义的属性呢?
<owl:Thing rdf:ID="LindemansBin65Chardonnay">
<madeFromGrape rdf:resource="#ChardonnayGrape" />
</owl:Thing>
上面这个例子可以看出,LindemansBin65Chardonnay拥有属性madeFromGrape。并且可以根据其定义域知道他一定是葡萄酒。
例如,我们可以通过定义一个locateIn属性来将事物和他所在的地区相关联。
<owl:ObjectProperty rdf:ID="locatedIn">
<rdfs:domain rdf:resource="http://www.w3.org/2002/07/owl#Thing" />
<rdfs:range rdf:resource="#Region" />
</owl:ObjectProperty>
数据类型属性定义
<owl:Class rdf:ID="VintageYear" />
<owl:DatatypeProperty rdf:ID="yearValue">
<rdfs:domain rdf:resource="#VintageYear" />
<rdfs:range rdf:resource="&xsd;positiveInteger"/>
</owl:DatatypeProperty>
数据类型的属性定义更像是类的属性,而对象的属性更像是实例的属性。
属性限制
可以使用owl:Restriction来对属性的值域进行进一步的限制。
<owl:Class rdf:ID="Wine">
<rdfs:subClassOf rdf:resource="&food;PotableLiquid" />
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasMaker" />
<owl:allValuesFrom rdf:resource="#Winery" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
上面例子使用了owl:Restriction来对Wine类进行限制owl:onProperty表明对哪个属性进行限制,而owl:allValuesForm则表明限制的取值范围。所以上面的例子可以解释为,所有Wine实例的hasMaker属性值必须为Winery的实例。
数量限制:
<owl:Class rdf:ID="Vintage">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasVintageYear"/>
<owl:cardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:cardinality>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
使用owl:cardinality可以限制实例属性的取值数量,这里onProperty表明对hasVintageYear属性限制,owl:cardinality则限制了该属性取值为1。
其他限制还有:
owl:maxCardinality 限制数值上界
owl:minCardinality 限制数值下界
owl:hasValue 限制属性值的实例必须有hasValue的资源
<owl:Class rdf:ID="Burgundy">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#hasSugar" />
<owl:hasValue rdf:resource="#Dry" />
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
这个例子中,只有实例的hasSugar属性有Dry的资源,该实例才为Burgundy为的实例。
本体映射
表明两个类等价等价。equivalentClass两个类等价。
<owl:Class rdf:ID="TexasThings">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="#locatedIn" />
<owl:someValuesFrom rdf:resource="#TexasRegion" />
</owl:Restriction>
</owl:equivalentClass>
</owl:Class>
上例表明,TexasThings类等价于一个无名类,而这个无名类加了locatedIn限制。
[NLP] 语义网络与知识图谱入门(二)的更多相关文章
- [NLP] 语义网络与知识图谱入门(一)
语义网络与知识图谱入门(一) RDF/XML 本体:一种形式化的对于共享概念体系明确而又详细的说明.就是指一种抽象的模型,可以用来描述对象类型.属性以及关系类型所构成的世界. RDF/XML主要讲的就 ...
- Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview
Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview 知识图谱的表示和在搜索中的展1 提升Google搜索效果3 1.找到最想要的信息.3 2.提供最全面的摘要.4 ...
- 知识图谱与机器学习 | KG入门 -- Part1-b 图深度学习
介绍 我们正在定义一种新的机器学习方法,专注于一种新的范式 -- Data Fabric. 在上一篇文章中,我们对机器学习给出了新的定义: 机器学习是一种自动发现Data Fabric中隐藏的&quo ...
- 知识图谱辅助金融领域NLP任务
从人工智能学科诞生之初起,自然语言处理(NLP)就是人工智能核心的研究问题之一.NLP的重要性是毋庸置疑的,它能够实现以自然语言交流为特征的高级人机交互,使机器能“阅读”所有以文字形式记录的人类知识, ...
- C#特性知识图谱-二、事件
C#特性知识图谱-二.事件 二.事件 在事件驱动的软件系统中,符合某种预设条件的情形出现是,一个事件就会被触发. 2.1 事件三要素 事件源:激发事件的对象 事件信息:事件本身说携带的信息 事件响应者 ...
- 知识图谱与机器学习|KG入门 -- Part2 建立知识图谱
介绍 在本系列前面两篇文章中我一直在讨论Data Fabric,并给出了一些关于Data Fabric中的机器学习和深度学习的概念.并给出了我对Data Fabric的定义: Data Fabric是 ...
- 知识图谱与机器学习 | KG入门 -- Part1 Data Fabric
介绍 如果你在网上搜索机器学习,你会找到大约20500万个结果.确实是这样,但是要找到适合每个用例的描述或定义并不容易,然而会有一些非常棒的描述或定义.在这里,我将提出机器学习的另一种定义,重点介绍一 ...
- Task1:知识图谱介绍(1天)
一.知识图谱简介 "知识图谱本质上是语义网络(Semantic Network)的知识库".但这有点抽象,所以换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图( ...
- 哈工大知识图谱(Knowledge Graph)课程概述
一.什么是知识图谱 知识(Knowledge)可以理解为 精炼的数据,知识图谱(Knowledge Graph)即是对知识的图形化表示,本质上是一种大规模语义网络 (semantic network) ...
随机推荐
- 多Y轴,下拉框渲染,相同类型不同数据
放上json文件: { "2017年3月": { "outKou": "5525.86", "inKou": " ...
- selenium 模拟登陆豆瓣,爬取武林外传的短评
selenium 模拟登陆豆瓣,爬去武林外传的短评: 在最开始写爬虫的时候,抓取豆瓣评论,我们从F12里面是可以直接发现接口的,但是最近豆瓣更新,数据是JS异步加载的,所以没有找到合适的方法爬去,于是 ...
- CVE-2018-0802漏洞利用
看了一天apt报告,主流利用Office鱼叉攻击的漏洞,还是这Microsoft Office CVE-2017-8570,CVE-2017-11882和CVE-2018-0802 三个,而且都知道o ...
- linux添加开机启动项、登陆启动项、定时启动项、关机执行项等的方法
使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下: chkconfig --list 可能输出如下: network 0:off 1:o ...
- TIOBE 7月排行:Python 过分炒作,Perl 成受害者?
与上个月相比,Python 的指数又增加了不少,由 8.530% 上升到 9.260%. 我们还留意到,TIOBE 对这期榜单的标题描述是“Perl is one of the victims of ...
- 黑客正在使用美国NSA泄露的工具进行挖矿
早些年我们知道美国国家安全局囤积不少漏洞准备自己使用,结果这些漏洞以及利用工具被方程式组织获得. 随后名为影子经纪人的黑客组织获得这些漏洞和工具后又再次出售,当初的永恒之蓝漏洞就是从这里泄露的. 永恒 ...
- Python 3.8测试阶段正式开始,发布Beta 1版
上周,Python背后的团队宣布发布了Python 3.8.0b1 版本,这是Python 3.8计划的四个beta发行预览版中的第一个.此版本标志着beta阶段的开始,您可以在此阶段测试新特性,并使 ...
- centos6.8 上传文件到amazon s3
centos6.8 上传文件到amazon s3 0.参考 AWS CLI Cinnabd Reference Possible to sync a single file with aws s3 s ...
- 小程序UI设计(6)-布局分解-九宫格
今天我们来个庖丁解牛.对于一个完整的组合组件,看看通过工具是如何轻松完成的.首先看看九宫格完整的样子. 结构树是这样的.在结构树中,我们可以看到WViewColumn下面有九个WViewRow.WVi ...
- keras多gpu训练
使用multi_gpu_model即可.观察了一下GPU的利用率,非常的低,大部分时候都是0,估计在相互等待,同步更新模型: 当然了,使用多GPU最明显的好处是可以使用更大的batch size im ...