理解URI的概念和写法
在学习jena RDF时,对三元组的书写格式不太理解,为什么都要写成http://somewhere/JohnSmith这种uri形式,下面把我对uri的学习坐下记录:
URI :Uniform Resource Identifier,统一资源标识符;
URL:Uniform Resource Locator,统一资源定位符;
URN:Uniform Resource Name,统一资源名称。
其中,URL,URN是URI的子集。
在电脑术语中,统一资源标识符(Uniform Resource Identifier,或URI)是一个用于标识某一互联网资源名称的字符串。 该种标识允许用户对任何(包括本地和互联网)的资源通过特定的协议进行交互操作。URI由包括确定语法和相关协议的方案所定义。
Web上可用的每种资源 -HTML文档、图像、视频片段、程序等 - 由一个通用资源标识符(Uniform Resource Identifier, 简称"URI")进行定位。
URI一般由三部分组成:
一、主机名。
存放资源的自身的名称,由路径表示。
参考下面的URI,它符合当前的RFC4395规范:协议名称://域名.根域名/目录/文件名.后缀
例如http://b.c/d/e.f (假设b.c是一个可用的域名,e.f是一个标准的文件)
这个URI是这样的:这是一个可通过HTTP协议访问的资源,位于主机b.c上,通过URI中的字符串“/d”访问主机上的“d”文件夹,通过“e.f”请求访问主机上“/d/e.f”这个文件。
这是URI的另一个例子,指向一个用户的邮箱:mailto:名称@域名
注:大多数读者可能熟悉"URL",而不是URI。URL是URI命名机制的一个子集。
二、标志符
有的URI指向一个资源的内部。 这种URI以"#"结束,并跟着一个anchor标志符(称为片段标志符)。例如,下面是一个指向section_2的URI:
协议://域名/目录/文件#片段标示符(例如:/a/b.php#a)
三、相对URI
相对URI不包含任何命名规范信息。它的路径通常指同一台机器上的资源。相对URI可能含有相对路径(如,“..”表示上一层路径),还可能包含片段标志符。
为了说明相对URI,假设我们有一个基本的URI:
协议://域名/目录a/目录b/文件c
下面的链接中使用了相对URI:
../文件D
它扩展成完全的URI就是 "协议://域名/目录a/文件D",
下面是一个图像的相对URI:
<IMG src="../icons/logo.gif" alt="logo">
它扩展成完全的URI就是 "协议://域名/目录a/icons/logo.gif"。
在HTML中,URI被用来:
链接到另一个文档或资源(参看A和LINK元素)。
链接到一个外部样式表或脚本(参看LINK和SCRIPT元素)。
在页内包含图像、对象或applet(参看IMAGE、OBJECT、APPLET和INPUT元素)。
引用一个外部参考(参看Q、BLOCKQUOTE,INS和DEL元素)。
指向一个描述文档的metadata(参看HEAD元素)。
RDF-语义网体系的基础技术
RDF(Resource Description Framework)即资源描述框架,是W3C提倡的一个数据模型,用来描述万维网上的资源及其相互间的关系。
RDF数据模型的核心包括资源(resource)、属性(property)、RDF陈述(RDF statement)等,最核心的就是三元组,资源——关系——资源,接下来简单介绍。
资源
这里的资源可以是具体的事物也可以是抽象的概念,比如书(具体)、计算机(具体)、量子力学(抽象)等。
在RDF中,每个资源拥有一个统一资源标识符(URI)来标识,URI是一个用来标识资源的字符串,它是万维网体系结构的重要组成部分。我们常用的网址叫做统一资源定位符(URL)是URI的一种。
RDF中是允许引入不包含任何URI标识的资源,被称为空白节点或匿名资源,用于表示一种存在变量,空白节点不能用URI来全局处理,所以为了区分不同的空白节点RDF解析器一般会为每个空白节点分配一个系统生成的内部名。
属性
属性用来描述资源之间的联系,比如父子、包含等,RDF中的属性同样也使用URI来标识,这使得万维网环境下全局性的标识资源以及资源间的联系成为可能。
陈述
陈述描述了某个资源特定属性及其属性值,表达为(主语、谓语、宾语)的三元组结构,RDF图是一个由RDF三元组构成的集合,可以用一个URI来标识这个RDF图,RDF三元组可以看成是“节点——边——节点”的结构,它和万维网的图结构(文档——超链接——文档)相吻合,本质上,RDF图是节点和边均带有标签的有向图结构,
RDF图
RDF图是一个由RDF三元组构成的集合,可以用一个URI来标识这个RDF图,称为具名图。词汇表通常是指在某个命名空间中的一组URI。RDF词汇表是一组以“http://www.w3.org/1999/02/22-rdf-syntax-nx#”为XML命名空间的URI
RDF的表示方法
表示方法指的是怎么存储和传输RDF数据,目前,RDF序列化的方式主要有RDF/XML,N-Triples,Turtle,RDFa,JSON-LD等几种。
下面直接给出一个例子看看RDF怎么写:
N-Triples表示:
<http://www.kg.com/person/2> <http://www.kg.com/ontology/chineseName> "川普"^^string.
<http://www.kg.com/person/2> <http://www.kg.com/ontology/position> "美利坚第45任总统"^^string.
<http://www.kg.com/person/2> <http://www.kg.com/ontology/wife> "梅拉尼娅-特朗普"^^string.
<http://www.kg.com/person/2> <http://www.kg.com/ontology/nation> "USA"^^string.
<http://www.kg.com/person/2> <http://www.kg.com/ontology/age> "72"^^int.
<http://www.kg.com/person/2> <http://www.kg.com/ontology/belongparty> <http://www.kg.com/Party/2018>.
<http://www.kg.com/party/2018> <http://www.kg.com/ontology/name> "republic"^^string.
<http://www.kg.com/party/2018> <http://www.kg.com/ontology/fonder> "汉尼巴尔·哈姆林"^^string.
<http://www.kg.com/party/2018> <http://www.kg.com/ontology/born> "1854"^^data.
同一个实体拥有多个属性(数据属性)或关系(对象属性),我们可以只用一个subject来表示,使其更紧凑。我们可以将上面的Triples改为:
@prefix person: <http://www.kg.com/person/> .
@prefix party: <http://www.kg.com/party/> .
@prefix : <http://www.kg.com/ontology/> .
person:1 :chineseName "川普"^^string;
:position "美利坚第45任总统"^^string;
:wife "梅拉尼娅-特朗普"^^string;
:nation "USA"^^string;
:age "72"^^int;
party:2018 :name "汉尼巴尔·哈姆林"^^string;
:born "1854"^^data.
转自: