链接数据的轻量级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
贡献/学分
随时向http://github.com/dmr/Ldtools/issues提交想法和错误,我很乐意接受新功能的请求。
感谢您Travis CI运行测试:)
感谢Django、Flask、Peewee和Sentry对模型结构的启发!