Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
R

rdflib

> 编程语言
Open source

RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.

2.5K stars0 likes1 views
WebsiteGitHub

About

RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information.

RDFLib

RDFLib is a pure Python package for working with RDF. RDFLib contains most things you need to work with RDF, including:

  • parsers and serializers for RDF/XML, N3, NTriples, N-Quads, Turtle, TriX, Trig, JSON-LD and even HexTuples
  • a Graph interface which can be backed by any one of a number of Store implementations
  • Store implementations for in-memory, persistent on disk (Berkeley DB) and remote SPARQL endpoints
    • additional Stores can be supplied via plugins
  • a SPARQL 1.1 implementation - supporting SPARQL 1.1 Queries and Update statements
  • SPARQL function extension mechanisms

RDFlib Family of packages

The RDFlib community maintains many RDF-related Python code repositories with different purposes. For example:

  • rdflib - the RDFLib core
  • sparqlwrapper - a simple Python wrapper around a SPARQL service to remotely execute your queries
  • pyLODE - An OWL ontology documentation tool using Python and templating, based on LODE.
  • pyrdfa3 - RDFa 1.1 distiller/parser library: can extract RDFa 1.1/1.0 from (X)HTML, SVG, or XML in general.
  • pymicrodata - A module to extract RDF from an HTML5 page annotated with microdata.
  • pySHACL - A pure Python module which allows for the validation of RDF graphs against SHACL graphs.
  • OWL-RL - A simple implementation of the OWL2 RL Profile which expands the graph with all possible triples that OWL RL defines.

Please see the list for all packages/repositories here:

  • https://github.com/RDFLib

Help with maintenance of all of the RDFLib family of packages is always welcome and appreciated.

Versions & Releases

  • main branch in this repository is the current major release development branch for backwards-compatible fixes and features
  • next branch in this repository is the next major release development branch
  • 7.6.0 GraphDB Client, and many improvements and fixes. See changelog for details
  • 7.5.0 RDF4J Store integration, RDF4J Client, and other improvements. See changelog for details
  • 7.4.0 a few small fixes, add test matrix for active python versions, and move v7 documentation to MkDocs
  • 7.3.0 many fixes and usability improvements, particularly for the Dataset class. See changelog for details
  • 7.2.1 tiny clean up release, relaxes Python version requirement
  • 7.2.0 general fixes and usability improvements, see changelog for details
  • 7.1.4 tidy-up release, possibly last 7.x release
  • 7.1.3 current stable release, small improvements to 7.1.1
  • 7.1.2 previously deleted release
  • 7.1.1 previous stable release
    • see https://github.com/RDFLib/rdflib/releases/tag/7.1.1
  • 7.0.0 previous stable release, supports Python 3.8.1+ only.
    • see Releases
  • 6.x.y supports Python 3.7+ only. Many improvements over 5.0.0
    • see Releases
  • 5.x.y supports Python 2.7 and 3.4+ and is mostly backwards compatible with 4.2.2.

See https://github.com/RDFLib/rdflib/releases/ for the release details.

Documentation

See https://rdflib.readthedocs.io for our documentation built from the code. Note that there are latest, stable and versioned builds, such as 5.0.0, matching releases.

Installation

The stable release of RDFLib may be installed with Python's package management tool pip:

$ pip install rdflib

Some features of RDFLib require optional dependencies which may be installed using pip extras:

$ pip install rdflib[berkeleydb,networkx,html,lxml,orjson]

Alternatively manually download the package from the Python Package Index (PyPI) at https://pypi.python.org/pypi/rdflib

Installation from the current development branch (for developers)

With pip you can also install rdflib from the git repository with one of the following options:

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

or

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

or from your locally cloned repository you can install it with one of the following options:

$ uv sync  # installs into a uv-managed venv

or

$ pip install -e .

Getting Started

RDFLib aims to be a pythonic RDF API. RDFLib's main data object is a Graph which is a Python collection of RDF Subject, Predicate, Object Triples:

To create graph and load it with RDF data from DBPedia then print the results:

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

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

The components of the triples are URIs (resources) or Literals (values).

URIs are grouped together by namespace, common namespaces are included in RDFLib:

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

You can use them like this:

python
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)

Where RDFS is the RDFS namespace, XSD the XML Schema Datatypes namespace and g.value returns an object of the triple-pattern given (or an arbitrary one if multiple exist).

Or like this, adding a triple to a graph g:

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

The triple (in n-triples notation) <http://example.com/person/nick> <http://xmlns.com/foaf/0.1/givenName> "Nick"^^<http://www.w3.org/2001/XMLSchema#string> . is created where the property FOAF.givenName is the URI <http://xmlns.com/foaf/0.1/givenName> and XSD.string is the URI <http://www.w3.org/2001/XMLSchema#string>.

You can bind namespaces to prefixes to shorten the URIs for RDF/XML, Turtle, N3, TriG, TriX & JSON-LD serializations:

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

This will allow the n-triples triple above to be serialised like this:

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

With these results:

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 .

New Namespaces can also be defined:

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

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

See also ./examples

Features

The library contains parsers and serializers for RDF/XML, N3, NTriples, N-Quads, Turtle, TriX, JSON-LD, RDFa and Microdata.

The library presents a Graph interface which can be backed by any one of a number of Store implementations.

This core RDFLib package includes store implementations for in-memory storage and persistent storage on top of the Berkeley DB.

A SPARQL 1.1 implementation is included - supporting SPARQL 1.1 Queries and Update statements.

RDFLib is open source and is maintained on GitHub. RDFLib releases, current and previous are listed on PyPI

Multiple other projects are contained within the RDFlib "family", see https://github.com/RDFLib/.

Running tests

Running the tests on the host

Run the test suite with pytest.

bash
uv sync --group tests
uv run pytest

Running test coverage on the host with coverage report

Run the test suite and generate a HTML coverage report with pytest and pytest-cov.

bash
uv run pytest --cov

Viewing test coverage

Once tests have produced HTML output of the coverage report, view it by running:

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

Contributing

RDFLib survives and grows via user contributions! Please read our contributing guide and developers guide to get started. Please consider lodging Pull Requests here:

  • https://github.com/RDFLib/rdflib/pulls

To get a development environment consider using Gitpod or Google Cloud Shell. You can also raise issues here:

  • https://github.com/RDFLib/rdflib/issues

Support & Contacts

For general "how do I..." queries, please use https://stackoverflow.com and tag your question with rdflib. Existing questions:

  • https://stackoverflow.com/questions/tagged/rdflib

If you want to contact the rdflib maintainers, please do so via:

  • the rdflib-dev mailing list: https://groups.google.com/group/rdflib-dev
  • the chat, which is available at gitter or via matrix #RDFLib_rdflib:gitter.im

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Pythongraphjson-ldlinked-datan3

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言