链接数据的轻量级orm:使用链接数据资源、修改图形并将更改写回其原始源

Ldtools的Python项目详细描述


ldtools是一个简单的库,可以方便地处理rdf数据。 它可以用作链接数据资源及其来源的简单orm。 资源“http://dbpedia.org/resource/Karlsruhe”可能由不同的来源提到。 ldtools有助于跟踪有关资源的已验证语句(权威),并提供一个api来查询有关资源的更多信息。

为检索到的数据提供了不同的rdf三重存储后端:restbackend、filebackend或memorybackend

cli ldtools可用于检索有关链接数据资源的信息。

安装

只需使用pip:

pip install Ldtools

这将安装所需的所有依赖项(argparse、rdflib),并提供命令行实用程序“ldtools”。

或者,执行git克隆并执行python setup.py安装/开发。

如何使用?

通过命令行,可以通过执行以下操作来检索链接数据资源中的所有信息:

ldtools http://dbpedia.org/resource/Karlsruhe

可以利用进一步的选项来影响是否应遵循在原点内发现的uri以及uri的深度。尝试:

ldtools --help

了解更多使用信息。

或者,可以使用python控制台:

首先,我们创建一个origin对象:

import pprint, rdflib
from ldtools.resource import Resource
from ldtools.origin import Origin

uri = "http://dbpedia.org/resource/Karlsruhe"
origin, created = Origin.objects.get_or_create(uri)

处理它,希望能发现更多的起源(rdfs:seealso,owl:sameas…):

origin.GET(only_follow_uris=[rdflib.OWL.sameAs,rdflib.RDFS.seeAlso])

如果一切顺利,现在我们的uri有一个资源对象:

resource, created = Resource.objects.get_or_create(uri, origin=origin)
pprint.pprint(resource.__dict__)

处理我们知道的所有其他来源:

Origin.objects.GET_all()

结果:已爬网5个uri,发现并处理了500个资源。

为什么?

  • 语义网已经存在,而且还没有足够的工具来处理链接的数据
  • 不需要从资源中获取原始数据的LIQSPARQL,这个库说明了这一点。只需要基本的链接数据堆栈:uri、内容协商、所需的rdf
  • ldtools旨在使处理从uri获取的数据变得容易,并跟踪您发现的链接
  • 基于此,您可以修改对象并将其放回原点

测试

要运行测试,请安装spec和/或nose和run nose:

pip install spec coverage
nosetests --with-coverage --cover-package=ldtools
nosetests --with-specplugin

Build Statusstatus_image

贡献/学分

随时向http://github.com/dmr/Ldtools/issues提交想法和错误,我很乐意接受新功能的请求。

感谢您Travis CI运行测试:)

感谢Django、Flask、Peewee和Sentry对模型结构的启发!

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
爪哇太阳报。安全验证器。ValidatorException:PKIX路径生成失败   java理解为什么在onDispatchTouchEvent()返回True后仍调用onClick()   java如何在资源包中使用JSF标记/如何在资源包中重写URL?   java什么是流控制异常的替代方案?   java使用Spring数据JPA/MongoDB交叉存储,一个查询可以跨越两个数据库吗?   Apache Sling/felix中的java OSGi slf4j日志记录   为什么当我们想要水平/垂直旋转矩阵时,我们要把这个项除以2?   尝试从外部网页接收JSON字符串时出现安卓 Java NullPointerException   java执行异常:从Callable调用方法时   java在jetty上以调试模式运行webapp,使用maven jetty插件在intellij中构建成功(应用程序应在调试模式下启动)   带有内存数据库的linux Java应用程序的构建时间太长   基于java的随机数单元测试算法   java类型javax。摆动JComponent无法解析   Google日历API和UI小部件Java   java tomcat没有突然和任意地响应   java无法使用jsoup在html中获取图像src   我无法让Java接受键盘输入字符串   java如何开始使用Bambol而不让部署永远继续?   java如何使用另一个类的actionPerformed方法删除一个类/组件中的按钮?   java JSON反序列化brakets{}中的一系列对象