《Clojure数据分析秘笈》——1.10节读取RDF数据_weixin_34184158的博客-程序员ITS301

技术标签: 数据库  

本节书摘来自华章社区《Clojure数据分析秘笈》一书中的第1章,第1.10节读取RDF数据,作者(美)Eric Rochester,更多章节内容可以访问云栖社区“华章社区”公众号查看

1.10 读取RDF数据
使用不同格式的链接数据越来越多地出现在互联网上:微格式(microformat)、RDFa和RDF/XML是其中的一些常见形式。链接数据提供了更大的灵活性且功能强大,但是其处理过程比较复杂。通常,为了高效处理链接数据,需要使用某种类型的三元组存储。在本方法和接下来的三种方法中,将用到Sesame(http://www.openrdf.org/)和kr Clojure库(https://github.com/drlivingston/kr)。

1.10.1 准备工作
首先,需要确保相关依赖列于project.clj文件中:


7d41a6e7304ccce5dd82b2b170f7f939886affcf

在本例中,从Telegraphis的链接数据库获取数据。将从http://telegraphis.net/data/currencies/ currencies.ttl得到货币数据库。为了安全起见,文件下载并另存为data/currencies.ttl,可以从这个目录访问它。

1.10.2 具体实现
本过程最费时的部分将是定义数据。使用的库完成这项工作。

  1. 建立三元组存储并注册数据使用的命名空间。将三元组存储名字绑定到名称tstore。


7305b61c74b3b65a75652b94464a04c531cd719c


171cbbcca9940b534f2a1cb3be662b567b1cb866

1.10.3 实现原理
首先介绍一下背景知识:资源描述格式(Resource Description Format,RDF)不是XML格式的数据,尽管RDF通常是用XML编写的(还有其他的数据格式,如N3和Turtle)。RDF将世界看成一个声明集合。每条声明至少包含三部分(三元组):主语(Subject)、谓词(predicate)和宾语(object)。主语和谓词需要是URI(URI和URL近似,但比其更通用。例如uri:7890就是一个有效的URI)。宾语可以是文本或者URI。所有的URI构成一幅图。它们相互连接并通过声明相互描述。这就是linked-in的链接数据的来源。
如果你需要链接数据的更多信息,http://linkeddata.org/guides-and-tutorials上有一些好的推荐。
回到之前介绍的方法中:从总体上来看,在这里使用的处理过程非常简单。

  1. 创建三元组存储(kb-memstore和init-kb)。
  2. 读取数据(load-data)。
  3. 查询并仅取出需要的数据(q和load-data)。
  4. 将之转换为Incanter可以使用的数据(rekey和col-map)。
  5. 创建Incanter数据集(load-data)。
    本例中使用的查询格式是个新事物。kb使用类SPARQL的领域专用语言描述查询。事实上,由于kb简单易用,因此使用它而不是直接处理未经加工的RDF数据。以“?/”开始的条目是变量;这将作为查询结果映射中的键值。其他条目格式如rdf-namespace/value。命名空间取自在init-kb中定义的已注册命名空间。这些命名空间与Clojure的不同,尽管它们的作用相同:划分和提供上下文。
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34184158/article/details/90491637

智能推荐

python-matplotlib-画柱状图并标记数字_duanyunqi0521的博客-程序员ITS301_matplotlib 画数字

def plot_bar(data_x,data_y): plt.figure(figsize=(20,6)) plt.bar(data_x, data_y) for x,y in zip(data_x, data_y): plt.text(x+0.05,y+0.05,'%i' %y, ha='center',va='bottom') # 使用matplot...

spirngboot集成elasticsearch_水瓶座的鬼才的博客-程序员ITS301

这篇文章同样可以在我自搭的小博客里看到:http://39.106.104.78:8080/blog/article.html?articleId=310准备环节第一步:在pom.xml中引入elasticsearch的依赖<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId>

CFI与物理层峰值速率的关系_CC243723的博客-程序员ITS301

CFI (Control Format Indicator):CFI是一个指示器,告诉在每个子帧有多少OFDM符号被用于携带控制信道(例如PDCCH和PHICH)。如果一个子帧的CFI被设置为1,这意味着子帧的一个符号(第一个符号)被用于PDCCH分配。如果CFI为2,则表示PDCCH使用两个符号(第一个和第二个符号)。如果CFI为3,则表示PDCCH使用三个符号(第一第二第三个符号)。如图所示:CFI由一个称为PCFICH的特定物理通道承载。PCFICH只携带CFI,没有任何.

mysql row_number吗_Mysql 里面使用row_number() 的用法和注意_屁伦的博客-程序员ITS301

虽然使用不多,但是也有情况是需要在mysql 里面写语句开发功能的。在sql server 使用惯了,习惯了使用row_number() 函数进行排序,但是mysql 确没有这样一个函数。然后找到了po主写的一篇 文章。通过变量赋值来查询的。(PS 我测试的版本是mysql 5.6)参考链接:http://www.cnblogs.com/advocate/archive/2012/03/02/23...

Docker可视化管理工具 - Portainer_94甘蓝的博客-程序员ITS301

1 简介Portainer是一个Web页面,用于管理容器中的各种资源。Portainer包括两个版本:CE:开源、免费使用 Business:商业版,基于CE版本添加了商业功能2 安装2.1 安装要求Portainer由两个元素组成:Portainer Server + Portainer Agent。这两个都要在docker容器中运行。默认情况下,Portainer会通过9000端口暴露UI页面,使用8000端口暴露TCP tunnel server。后者是可选的,除非你需要使

随便推点

忘记iPhone锁屏密码?三种方法帮你顺利解决!_m0_63254421的博客-程序员ITS301_苹果手机忘记锁屏密码10秒解决

不论是苹果手机用户还是安卓手机用户,如果开机的锁屏密码忘记的话,应该是比较麻烦的一件事情,iPhone用户如果连续尝试6次密码都不对的话,iPhone将会自动锁死,也就变成了我们常说的“砖机”,不过在iPhone锁死之前,我们还有三种方法可以尝试解锁。1.利用iTunes备份恢复这种方法是最常用的一种方法,不过它有一个必要的前提条件,就是要解锁的iPhone此前必须与iTunes同步备份过数据才可以。如果你的iPhone满足这一条件,那么可以将iPhone与此前连接过iTunes的电脑再次连接起

计算机主板启动加密码,华硕主板bios怎样设置开机启动密码(cmos密码)_weixin_39630182的博客-程序员ITS301

设置方法如下:1、计算机开机以后就慢慢的重复按Delete键,以免错过进入设置画面,进入BIOS的设置画面如图:2、按键盘向右与向下的箭头键,选择「BIOS Security Features」,按键盘的「Enter」键,准备设置开机密码。3、 按键盘向下箭头键移动到「Change Supervisor Password」,按键盘的「Enter」键,进入密码设置画面,先设置BIOS登入密码。下图所...

btree高度mysql_MySQL优化之BTree索引使用规则_weixin_39688750的博客-程序员ITS301

MySQL优化之BTree索引使用规则 从一道题开始分析: 假设某个表有一个联合索引(c1,c2,c3,c4)一下mdash;mdash;只能使用该联合索MySQL优化之BTree索引使用规则从一道题开始分析:假设某个表有一个联合索引(c1,c2,c3,c4)一下——只能使用该联合索引的c1,c2,c3部分A where c1=x and c2=x and c4>x and c3=xB wh...

VuePress+Gitee快速搭建个人博客的尝试(成功)_wsdchong之小马过河的博客-程序员ITS301

VuePress+Gitee快速搭建个人博客的尝试昨天在GitHub上看见了VuePress项目,还尝试一下,不过只是运行了一下,没有部署和修改。vuepress-theme-vdoing使用体验、我对博客网站的认识——wsdchong今天尝试一下部署。借鉴不安分的猿人的VuePress +Gitee 快速搭建个人博客文章目录VuePress+Gitee快速搭建个人博客的尝试部署实现过程重新认识vuepress项目修改过程理论基础摘要部署实现过程步骤1:本地博客快速搭建。下载项目,安装依赖(np

计算机网络的性能指标及计算例题_weixin_33728708的博客-程序员ITS301

一、速率指的是数据的传送速率,也称为数据率或者比特率, 单位是b/s 也有(千)kb/s(10的三次) (兆)Mb/s(10的六次) (吉)Gb/s(10的九次) (太)Tb/s(10的十二次) 速率往往是指额定速率或标称速率,而并非网络实际上运行的速率。二、带宽指的是某信道允许通过的信号...

vue h5转换uni-app指南(vue转uni、h5转uni)_༺༽༾ཊ方觉ཏ༿༼༻的博客-程序员ITS301_vue转uniapp

分类:uni-app转换 vue转 h5转如果你已经有了一个基于vue开发的H5站点,想转换为uni-app。首先注意2个前提:1、你的web站是适合手机屏幕的;2、你的H5代码是全后端分离的,uni-app只处理前端代码。一切从新建一个uni-app项目开始。然后依次进行文件处理把之前的vue web项目的前端代码copy到新项目下如果之前的文件后缀名是.html,需要改为.vue,并注意遵循vue单文件组件SFC规范,比如必须一级根节点为template、script、styl