跳转到主要内容

RDFLib是一个用于处理RDF(一种简单而强大的表示信息语言)的Python库。

项目描述

RDFLib

Build Status Documentation Status Coveralls branch

GitHub stars Downloads PyPI PyPI DOI

Contribute with Gitpod Gitter Matrix

RDFLib是一个用于处理RDF的纯Python包。RDFLib包含处理RDF所需的大部分功能,包括

  • RDF/XML、N3、NTriples、N-Quads、Turtle、TriX、Trig和JSON-LD的解析器和序列化器
  • 一个可以由多种存储实现之一支持的图形界面
  • 内存、持久存储(Berkeley DB)和远程SPARQL端点的存储实现
  • SPARQL 1.1实现 - 支持SPARQL 1.1查询和更新语句
  • SPARQL函数扩展机制

RDFlib系列包

RDFlib社区维护了许多具有不同目的的RDF相关Python代码仓库。例如

  • rdflib - RDFLib核心
  • sparqlwrapper - 简单的Python包装器,用于远程执行SPARQL服务查询
  • pyLODE - 基于LODE的OWL本体文档工具,使用Python和模板
  • pyrdfa3 - RDFa 1.1蒸馏/解析库:可以从(X)HTML、SVG或XML中提取RDFa 1.1/1.0。
  • pymicrodata - 从带有微数据的HTML5页面中提取RDF的模块
  • pySHACL - 一个纯Python模块,允许对RDF图进行SHACL图的验证
  • OWL-RL - OWL2 RL配置文件的简单实现,通过所有OWL RL定义的可能三元组扩展图

请在此处查看所有包/仓库列表

欢迎并感谢对RDFLib系列包的维护支持。

版本 & 发布

  • 7.1.0a0 当前 main 分支。
  • 7.x.y 当前发布版本,仅支持Python 3.8.1+。
  • 6.x.y 仅支持Python 3.7+。相较于5.0.0版本有很多改进
  • 5.x.y 支持Python 2.7和3.4+,与4.2.2版本基本兼容。

请参阅https://rdflib.dev了解发布概览。

文档

请参阅https://rdflib.readthedocs.io查看从代码构建的文档。请注意,有lateststable 5.0.04.2.2文档版本,与发布版本相匹配。

安装

可以使用Python的包管理工具pip安装RDFLib的稳定发布版本

$ pip install rdflib

或者,您可以手动从Python包索引(PyPI)下载包,地址为https://pypi.python.org/pypi/rdflib

RDFLib当前版本为7.0.0,请参阅CHANGELOG.md文件了解本版本的更新内容。

安装当前主分支(适用于开发者)

您可以使用pip通过以下任一选项从git仓库安装rdflib:

$ pip install git+https://github.com/rdflib/rdflib@main

或者

$ pip install -e git+https://github.com/rdflib/rdflib@main#egg=rdflib

或者从您本地克隆的仓库,您可以使用以下任一选项安装它:

$ poetry install  # installs into a poetry-managed venv

或者

$ pip install -e .

入门

RDFLib旨在成为一个Pythonic的RDF API。RDFLib的主要数据对象是Graph,它是一个包含RDF Subject, Predicate, Object 三元组的Python集合

创建图,然后从DBPedia加载数据,最后打印结果

from rdflib import Graph
g = Graph()
g.parse('http://dbpedia.org/resource/Semantic_Web')

for s, p, o in g:
    print(s, p, o)

三元组的组件是URI(资源)或文字(值)。

URI通过命名空间分组,RDFLib包含了常见的命名空间

from rdflib.namespace import DC, DCTERMS, DOAP, FOAF, SKOS, OWL, RDF, RDFS, VOID, XMLNS, XSD

您可以使用它们这样做

from rdflib import Graph, URIRef, Literal
from rdflib.namespace import RDFS, XSD

g = Graph()
semweb = URIRef('http://dbpedia.org/resource/Semantic_Web')
type = g.value(semweb, RDFS.label)

其中RDFS是RDFS命名空间,XSD是XML Schema Datatypes命名空间,g.value返回给定三元组模式的对象(如果有多个,则为任意一个)。

或者这样做,向图g添加一个三元组

g.add((
    URIRef("http://example.com/person/nick"),
    FOAF.givenName,
    Literal("Nick", datatype=XSD.string)
))

以下三元组(以n-triples格式表示)<http://example.com/person/nick> <http://xmlns.com/foaf/0.1/givenName> "Nick"^^<http://www.w3.org/2001/XMLSchema#string> . 已创建,其中属性 FOAF.givenName 的URI为 <http://xmlns.com/foaf/0.1/givenName>,而 XSD.string 的URI为 <http://www.w3.org/2001/XMLSchema#string>

您可以将命名空间绑定到前缀,以缩短RDF/XML、Turtle、N3、TriG、TriX和JSON-LD序列化的URI。

g.bind("foaf", FOAF)
g.bind("xsd", XSD)

这将允许上述n-triples三元组以如下方式序列化

print(g.serialize(format="turtle"))

得到以下结果

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>

<http://example.com/person/nick> foaf:givenName "Nick"^^xsd:string .

还可以定义新的命名空间

dbpedia = Namespace('http://dbpedia.org/ontology/')

abstracts = list(x for x in g.objects(semweb, dbpedia['abstract']) if x.language=='en')

另请参阅 ./examples

特性

该库包含RDF/XML、N3、NTriples、N-Quads、Turtle、TriX、JSON-LD、RDFa和Microdata的解析器和序列化器。

该库提供了一个Graph接口,该接口可以由任何一种Store实现支持。

此核心RDFLib包包括内存存储和基于Berkeley DB的持久存储的store实现。

包括SPARQL 1.1实现,支持SPARQL 1.1查询和更新语句。

RDFLib是开源的,并由GitHub维护。RDFLib的当前和以前版本在PyPI上列出。

RDFlib "家族"中包含多个其他项目,请参阅https://github.com/RDFLib/

运行测试

在主机上运行测试

使用pytest运行测试套件。

poetry install
poetry run pytest

在主机上运行测试覆盖率并生成覆盖率报告

使用pytestpytest-cov运行测试套件并生成HTML覆盖率报告。

poetry run pytest --cov

查看测试覆盖率

一旦测试生成了覆盖率报告的HTML输出,通过运行以下命令查看它

poetry run pytest --cov --cov-report term --cov-report html
python -m http.server --directory=htmlcov

贡献

RDFLib通过用户贡献而生存和成长!请阅读我们的贡献指南开发者指南以开始。请考虑在这里提交Pull Requests

要获取开发环境,请考虑使用Gitpod或Google Cloud Shell。

Open in Gitpod Open in Cloud Shell

您还可以在这里提出问题

支持 & 联系方式

对于一般的“我该如何...”查询,请使用https://stackoverflow.com并在您的问题中添加rdflib标签。现有问题

如果您想联系rdflib维护者,请通过以下方式联系

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

rdflib-7.0.0.tar.gz (4.8 MB 查看哈希值)

上传时间 源代码

构建分发

rdflib-7.0.0-py3-none-any.whl (531.9 kB 查看哈希值)

上传时间 Python 3

支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页