语义技术简介

23-01-04 banq

想象一个网络,其中所有数据都是用户可以免费使用的节点,并且所有信息都可以通过简单的技术组合在一起。这就是语义网试图实现的。

语义技术
英国计算机科学家蒂姆·伯纳斯-李 ( Tim Berners-Lee ) 对网络有一个愿景,即所有数据都可以进行分析。机器与人之间的内容、链接、交易。他的愿景是“语义网”。

语义技术是根据这一愿景创造的,它对数据和内容背后的含义进行编码,与应用程序分开。这使得人类和机器可以在运行时共享和推理数据。

该技术提供了一个通用框架,使跨应用程序使用和重用数据成为可能。这些技术的开发由万维网联盟(W3C) 与几位科学家和开发人员合作领导。

语义技术的基础是资源描述框架(RDF)。

资源描述框架
将数据视为有向图,所有事物都与其他事物相关。



  • RDF 将数据描述为有向图。这意味着图形的所有边都指向某个方向。
  • 数据被描述为三元组,由主语、谓语和宾语组成。
  • 三元组可能被称为事实陈述。
  • 三元组(主语、谓语和宾语)的所有元素都是资源。
  • 我们使用统一资源标识符(URI) 来表示彼此之间的资源。


统一资源标识符
URI只是一个名称。它不需要指向任何东西。

scheme:[//[user:password@]host[:port]][/]path[?query][fragment]


我们通常在HTTP域下创建 URI ,其中包含一些对该特定资源唯一的路径和片段。一个例子可能是

http://example.org/birdsEurasian_blue_tit


数据作为有向图



在此示例中,我们看到资源Eurasian blue tit (主题)与Paridae (客体)有某种关系。该关系是命名边属于家族(谓词)。我们看到边沿一个方向移动,这对于用 RDF 描述的每个关系都是正确的。让我们看一下这个用 RDF 语法之一编写的示例。

句法
请记住,RDF 只是一种将数据描述为有向图的标准。遵循 RDF 编写图形有多种语法。传统上RDF/XML被广泛使用。然而,XML 有点过时且难以阅读,所以幸运的是还有其他几种选择。今天最常用的是Turtle语法,这是您在阅读描述 RDF 中数据的语义技术的论文时会遇到的语法。其他流行的选项是JSON-LDN-Triples。我将主要在这个博客上使用 Turtle,有时使用 JSON-LD。

http://example.org/birdsEurasian_blue_tit
http://example.org/birds/family http://example.org/birdsParidae



上面的三个 URI 将来自先前图像的有向图描述为 RDF Turtle。Turtle 的一个好处是我们不必在每次要描述一个资源时都编写完整的名称空间 ( http://example.org/ )。

@prefix :<http://example.org/birds>
birds:Eurasian_blue_tit birds:family birds:Paridae 


通过将命名空间作为某个名称的前缀,我们每次只能使用该名称而不是整个 URI。为我们节省了一些击键!

字面值
在三元组的对象位置,可能有资源(对象)或文字(数据值)。谓词可以指向五个可能的字面值。

birds:Eurasian_blue_tit birds:latinName "Cyanistes caeruleus" .
birds:Eurasian_blue_tit birds:name "Blåmeis"@no .
birds:Eurasian_blue_tit birds:firstDescribed "1555"^^xsd:year .
birds:Eurasian_blue_tit birds:avgWeight 11 .
birds:Eurasian_blue_tit birds:isABird true .

  1. 首先我们有一个纯字符串值。
  2. 带有挪威语语言标记@no 的字符串值。
  3. “1555”^^xsd:year 是一个类型文字。从 XSD 词汇表中键入年份。
  4. 普通整数值。
  5. 布尔值,真或假。


共享元素
在关于字面值的部分,我们看到我们必须连续写五次主题的名字。幸运的是,我们可以通过在主题上共享谓词来避免这种情况。这对于在谓词上共享对象也是可能的。

birds:Eurasian_blue_tit 
  birds:latinName "Cyanistes caeruleus" ;
  birds:firstDescribed "1555"^^xsd:year ;
  birds:avgWeight 11 ;
  birds:name "Blåmeis"@no, "Blaumeise"@de, "Eurasian blue tit"@en 



一个主语的多个谓词用分号(;)列出,一个谓词的多个宾语用逗号(,)列出。主题描述总是以句号 (.) 结尾。