From d60074f2d17e01bcaf966a2e9ab801db88fb4408 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Mon, 10 Apr 2023 12:40:06 +0000 Subject: automatic import of python-rdflib --- python-rdflib.spec | 544 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 544 insertions(+) create mode 100644 python-rdflib.spec (limited to 'python-rdflib.spec') diff --git a/python-rdflib.spec b/python-rdflib.spec new file mode 100644 index 0000000..a77cbf9 --- /dev/null +++ b/python-rdflib.spec @@ -0,0 +1,544 @@ +%global _empty_manifest_terminate_build 0 +Name: python-rdflib +Version: 6.3.2 +Release: 1 +Summary: RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information. +License: BSD-3-Clause +URL: https://github.com/RDFLib/rdflib +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/c8/28/4d1f27c5d73f58e567ca1a14a4eab7d7978a09c4e117687f9f6c216d3366/rdflib-6.3.2.tar.gz +BuildArch: noarch + +Requires: python3-isodate +Requires: python3-pyparsing +Requires: python3-importlib-metadata +Requires: python3-berkeleydb +Requires: python3-networkx +Requires: python3-html5lib +Requires: python3-lxml + +%description +[![Build Status](https://github.com/RDFLib/rdflib/actions/workflows/validate.yaml/badge.svg?branch=main)](https://github.com/RDFLib/rdflib/actions?query=branch%3Amain) +[![Documentation Status](https://readthedocs.org/projects/rdflib/badge/?version=latest)](https://rdflib.readthedocs.io/en/latest/?badge=latest) +[![Coveralls branch](https://img.shields.io/coveralls/RDFLib/rdflib/main.svg)](https://coveralls.io/r/RDFLib/rdflib?branch=main) +[![GitHub stars](https://img.shields.io/github/stars/RDFLib/rdflib.svg)](https://github.com/RDFLib/rdflib/stargazers) +[![Downloads](https://pepy.tech/badge/rdflib/week)](https://pepy.tech/project/rdflib) +[![PyPI](https://img.shields.io/pypi/v/rdflib.svg)](https://pypi.python.org/pypi/rdflib) +[![PyPI](https://img.shields.io/pypi/pyversions/rdflib.svg)](https://pypi.python.org/pypi/rdflib) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6845245.svg)](https://doi.org/10.5281/zenodo.6845245) +[![Contribute with Gitpod](https://img.shields.io/badge/Contribute%20with-Gitpod-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/RDFLib/rdflib) +[![Gitter](https://badges.gitter.im/RDFLib/rdflib.svg)](https://gitter.im/RDFLib/rdflib?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Matrix](https://img.shields.io/matrix/rdflib:matrix.org?label=matrix.org%20chat)](https://matrix.to/#/#RDFLib_rdflib:gitter.im) +RDFLib is a pure Python package for working with [RDF](http://www.w3.org/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 and JSON-LD +* 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 +* 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](https://github.com/RDFLib/rdflib) - the RDFLib core +* [sparqlwrapper](https://github.com/RDFLib/sparqlwrapper) - a simple Python wrapper around a SPARQL service to remotely execute your queries +* [pyLODE](https://github.com/RDFLib/pyLODE) - An OWL ontology documentation tool using Python and templating, based on LODE. +* [pyrdfa3](https://github.com/RDFLib/pyrdfa3) - RDFa 1.1 distiller/parser library: can extract RDFa 1.1/1.0 from (X)HTML, SVG, or XML in general. +* [pymicrodata](https://github.com/RDFLib/pymicrodata) - A module to extract RDF from an HTML5 page annotated with microdata. +* [pySHACL](https://github.com/RDFLib/pySHACL) - A pure Python module which allows for the validation of RDF graphs against SHACL graphs. +* [OWL-RL](https://github.com/RDFLib/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: +* +Help with maintenance of all of the RDFLib family of packages is always welcome and appreciated. +## Versions & Releases +* `6.4.0a0` current `main` branch +* `6.x.y` current release and support Python 3.7+ only. Many improvements over 5.0.0 + * see [Releases](https://github.com/RDFLib/rdflib/releases) +* `5.x.y` supports Python 2.7 and 3.4+ and is [mostly backwards compatible with 4.2.2](https://rdflib.readthedocs.io/en/stable/upgrade4to5.html). +See for the release overview. +## Documentation +See for our documentation built from the code. Note that there are `latest`, `stable` `5.0.0` and `4.2.2` documentation versions, matching releases. +## Installation +The stable release of RDFLib may be installed with Python's package management tool *pip*: + $ pip install rdflib +Alternatively manually download the package from the Python Package +Index (PyPI) at https://pypi.python.org/pypi/rdflib +The current version of RDFLib is 6.3.2, see the ``CHANGELOG.md`` file for what's new in this release. +### Installation of the current main 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: + $ poetry install # installs into a poetry-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) ` "Nick"^^ .` +is created where the property `FOAF.givenName` is the URI `` and `XSD.string` is the +URI ``. +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: +PREFIX xsd: + 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](./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](https://github.com/RDFLib/rdflib/). RDFLib releases, current and previous +are listed on [PyPI](https://pypi.python.org/pypi/rdflib/) +Multiple other projects are contained within the RDFlib "family", see . +## Running tests +### Running the tests on the host +Run the test suite with `pytest`. +```shell +poetry install +poetry 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`. +```shell +poetry run pytest --cov +``` +### Viewing test coverage +Once tests have produced HTML output of the coverage report, view it by running: +```shell +poetry 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](https://rdflib.readthedocs.io/en/latest/CONTRIBUTING.html) and [developers guide](https://rdflib.readthedocs.io/en/latest/developers.html) to get started. +Please consider lodging Pull Requests here: +* +To get a development environment consider using Gitpod or Google Cloud Shell. +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/RDFLib/rdflib) +[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://shell.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2FRDFLib%2Frdflib&cloudshell_git_branch=main&cloudshell_open_in_editor=README.md) +You can also raise issues here: +* +## Support & Contacts +For general "how do I..." queries, please use https://stackoverflow.com and tag your question with `rdflib`. +Existing questions: +* +If you want to contact the rdflib maintainers, please do so via: +* the rdflib-dev mailing list: +* the chat, which is available at [gitter](https://gitter.im/RDFLib/rdflib) or via matrix [#RDFLib_rdflib:gitter.im](https://matrix.to/#/#RDFLib_rdflib:gitter.im) + +%package -n python3-rdflib +Summary: RDFLib is a Python library for working with RDF, a simple yet powerful language for representing information. +Provides: python-rdflib +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-rdflib +[![Build Status](https://github.com/RDFLib/rdflib/actions/workflows/validate.yaml/badge.svg?branch=main)](https://github.com/RDFLib/rdflib/actions?query=branch%3Amain) +[![Documentation Status](https://readthedocs.org/projects/rdflib/badge/?version=latest)](https://rdflib.readthedocs.io/en/latest/?badge=latest) +[![Coveralls branch](https://img.shields.io/coveralls/RDFLib/rdflib/main.svg)](https://coveralls.io/r/RDFLib/rdflib?branch=main) +[![GitHub stars](https://img.shields.io/github/stars/RDFLib/rdflib.svg)](https://github.com/RDFLib/rdflib/stargazers) +[![Downloads](https://pepy.tech/badge/rdflib/week)](https://pepy.tech/project/rdflib) +[![PyPI](https://img.shields.io/pypi/v/rdflib.svg)](https://pypi.python.org/pypi/rdflib) +[![PyPI](https://img.shields.io/pypi/pyversions/rdflib.svg)](https://pypi.python.org/pypi/rdflib) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6845245.svg)](https://doi.org/10.5281/zenodo.6845245) +[![Contribute with Gitpod](https://img.shields.io/badge/Contribute%20with-Gitpod-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/RDFLib/rdflib) +[![Gitter](https://badges.gitter.im/RDFLib/rdflib.svg)](https://gitter.im/RDFLib/rdflib?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Matrix](https://img.shields.io/matrix/rdflib:matrix.org?label=matrix.org%20chat)](https://matrix.to/#/#RDFLib_rdflib:gitter.im) +RDFLib is a pure Python package for working with [RDF](http://www.w3.org/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 and JSON-LD +* 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 +* 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](https://github.com/RDFLib/rdflib) - the RDFLib core +* [sparqlwrapper](https://github.com/RDFLib/sparqlwrapper) - a simple Python wrapper around a SPARQL service to remotely execute your queries +* [pyLODE](https://github.com/RDFLib/pyLODE) - An OWL ontology documentation tool using Python and templating, based on LODE. +* [pyrdfa3](https://github.com/RDFLib/pyrdfa3) - RDFa 1.1 distiller/parser library: can extract RDFa 1.1/1.0 from (X)HTML, SVG, or XML in general. +* [pymicrodata](https://github.com/RDFLib/pymicrodata) - A module to extract RDF from an HTML5 page annotated with microdata. +* [pySHACL](https://github.com/RDFLib/pySHACL) - A pure Python module which allows for the validation of RDF graphs against SHACL graphs. +* [OWL-RL](https://github.com/RDFLib/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: +* +Help with maintenance of all of the RDFLib family of packages is always welcome and appreciated. +## Versions & Releases +* `6.4.0a0` current `main` branch +* `6.x.y` current release and support Python 3.7+ only. Many improvements over 5.0.0 + * see [Releases](https://github.com/RDFLib/rdflib/releases) +* `5.x.y` supports Python 2.7 and 3.4+ and is [mostly backwards compatible with 4.2.2](https://rdflib.readthedocs.io/en/stable/upgrade4to5.html). +See for the release overview. +## Documentation +See for our documentation built from the code. Note that there are `latest`, `stable` `5.0.0` and `4.2.2` documentation versions, matching releases. +## Installation +The stable release of RDFLib may be installed with Python's package management tool *pip*: + $ pip install rdflib +Alternatively manually download the package from the Python Package +Index (PyPI) at https://pypi.python.org/pypi/rdflib +The current version of RDFLib is 6.3.2, see the ``CHANGELOG.md`` file for what's new in this release. +### Installation of the current main 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: + $ poetry install # installs into a poetry-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) ` "Nick"^^ .` +is created where the property `FOAF.givenName` is the URI `` and `XSD.string` is the +URI ``. +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: +PREFIX xsd: + 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](./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](https://github.com/RDFLib/rdflib/). RDFLib releases, current and previous +are listed on [PyPI](https://pypi.python.org/pypi/rdflib/) +Multiple other projects are contained within the RDFlib "family", see . +## Running tests +### Running the tests on the host +Run the test suite with `pytest`. +```shell +poetry install +poetry 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`. +```shell +poetry run pytest --cov +``` +### Viewing test coverage +Once tests have produced HTML output of the coverage report, view it by running: +```shell +poetry 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](https://rdflib.readthedocs.io/en/latest/CONTRIBUTING.html) and [developers guide](https://rdflib.readthedocs.io/en/latest/developers.html) to get started. +Please consider lodging Pull Requests here: +* +To get a development environment consider using Gitpod or Google Cloud Shell. +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/RDFLib/rdflib) +[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://shell.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2FRDFLib%2Frdflib&cloudshell_git_branch=main&cloudshell_open_in_editor=README.md) +You can also raise issues here: +* +## Support & Contacts +For general "how do I..." queries, please use https://stackoverflow.com and tag your question with `rdflib`. +Existing questions: +* +If you want to contact the rdflib maintainers, please do so via: +* the rdflib-dev mailing list: +* the chat, which is available at [gitter](https://gitter.im/RDFLib/rdflib) or via matrix [#RDFLib_rdflib:gitter.im](https://matrix.to/#/#RDFLib_rdflib:gitter.im) + +%package help +Summary: Development documents and examples for rdflib +Provides: python3-rdflib-doc +%description help +[![Build Status](https://github.com/RDFLib/rdflib/actions/workflows/validate.yaml/badge.svg?branch=main)](https://github.com/RDFLib/rdflib/actions?query=branch%3Amain) +[![Documentation Status](https://readthedocs.org/projects/rdflib/badge/?version=latest)](https://rdflib.readthedocs.io/en/latest/?badge=latest) +[![Coveralls branch](https://img.shields.io/coveralls/RDFLib/rdflib/main.svg)](https://coveralls.io/r/RDFLib/rdflib?branch=main) +[![GitHub stars](https://img.shields.io/github/stars/RDFLib/rdflib.svg)](https://github.com/RDFLib/rdflib/stargazers) +[![Downloads](https://pepy.tech/badge/rdflib/week)](https://pepy.tech/project/rdflib) +[![PyPI](https://img.shields.io/pypi/v/rdflib.svg)](https://pypi.python.org/pypi/rdflib) +[![PyPI](https://img.shields.io/pypi/pyversions/rdflib.svg)](https://pypi.python.org/pypi/rdflib) +[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6845245.svg)](https://doi.org/10.5281/zenodo.6845245) +[![Contribute with Gitpod](https://img.shields.io/badge/Contribute%20with-Gitpod-908a85?logo=gitpod)](https://gitpod.io/#https://github.com/RDFLib/rdflib) +[![Gitter](https://badges.gitter.im/RDFLib/rdflib.svg)](https://gitter.im/RDFLib/rdflib?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +[![Matrix](https://img.shields.io/matrix/rdflib:matrix.org?label=matrix.org%20chat)](https://matrix.to/#/#RDFLib_rdflib:gitter.im) +RDFLib is a pure Python package for working with [RDF](http://www.w3.org/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 and JSON-LD +* 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 +* 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](https://github.com/RDFLib/rdflib) - the RDFLib core +* [sparqlwrapper](https://github.com/RDFLib/sparqlwrapper) - a simple Python wrapper around a SPARQL service to remotely execute your queries +* [pyLODE](https://github.com/RDFLib/pyLODE) - An OWL ontology documentation tool using Python and templating, based on LODE. +* [pyrdfa3](https://github.com/RDFLib/pyrdfa3) - RDFa 1.1 distiller/parser library: can extract RDFa 1.1/1.0 from (X)HTML, SVG, or XML in general. +* [pymicrodata](https://github.com/RDFLib/pymicrodata) - A module to extract RDF from an HTML5 page annotated with microdata. +* [pySHACL](https://github.com/RDFLib/pySHACL) - A pure Python module which allows for the validation of RDF graphs against SHACL graphs. +* [OWL-RL](https://github.com/RDFLib/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: +* +Help with maintenance of all of the RDFLib family of packages is always welcome and appreciated. +## Versions & Releases +* `6.4.0a0` current `main` branch +* `6.x.y` current release and support Python 3.7+ only. Many improvements over 5.0.0 + * see [Releases](https://github.com/RDFLib/rdflib/releases) +* `5.x.y` supports Python 2.7 and 3.4+ and is [mostly backwards compatible with 4.2.2](https://rdflib.readthedocs.io/en/stable/upgrade4to5.html). +See for the release overview. +## Documentation +See for our documentation built from the code. Note that there are `latest`, `stable` `5.0.0` and `4.2.2` documentation versions, matching releases. +## Installation +The stable release of RDFLib may be installed with Python's package management tool *pip*: + $ pip install rdflib +Alternatively manually download the package from the Python Package +Index (PyPI) at https://pypi.python.org/pypi/rdflib +The current version of RDFLib is 6.3.2, see the ``CHANGELOG.md`` file for what's new in this release. +### Installation of the current main 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: + $ poetry install # installs into a poetry-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) ` "Nick"^^ .` +is created where the property `FOAF.givenName` is the URI `` and `XSD.string` is the +URI ``. +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: +PREFIX xsd: + 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](./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](https://github.com/RDFLib/rdflib/). RDFLib releases, current and previous +are listed on [PyPI](https://pypi.python.org/pypi/rdflib/) +Multiple other projects are contained within the RDFlib "family", see . +## Running tests +### Running the tests on the host +Run the test suite with `pytest`. +```shell +poetry install +poetry 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`. +```shell +poetry run pytest --cov +``` +### Viewing test coverage +Once tests have produced HTML output of the coverage report, view it by running: +```shell +poetry 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](https://rdflib.readthedocs.io/en/latest/CONTRIBUTING.html) and [developers guide](https://rdflib.readthedocs.io/en/latest/developers.html) to get started. +Please consider lodging Pull Requests here: +* +To get a development environment consider using Gitpod or Google Cloud Shell. +[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/RDFLib/rdflib) +[![Open in Cloud Shell](https://gstatic.com/cloudssh/images/open-btn.svg)](https://shell.cloud.google.com/cloudshell/editor?cloudshell_git_repo=https%3A%2F%2Fgithub.com%2FRDFLib%2Frdflib&cloudshell_git_branch=main&cloudshell_open_in_editor=README.md) +You can also raise issues here: +* +## Support & Contacts +For general "how do I..." queries, please use https://stackoverflow.com and tag your question with `rdflib`. +Existing questions: +* +If you want to contact the rdflib maintainers, please do so via: +* the rdflib-dev mailing list: +* the chat, which is available at [gitter](https://gitter.im/RDFLib/rdflib) or via matrix [#RDFLib_rdflib:gitter.im](https://matrix.to/#/#RDFLib_rdflib:gitter.im) + +%prep +%autosetup -n rdflib-6.3.2 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-rdflib -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Mon Apr 10 2023 Python_Bot - 6.3.2-1 +- Package Spec generated -- cgit v1.2.3