Skip to main content

Python COTTAS library for compressing and querying RDF.

Project description

3xmap-studio

License DOI Latest PyPI version Python Version PyPI status Documentation Status

pycottas is a library for working with compressed RDF files in the COTTAS format. COTTAS stores triples as a triple table in Apache Parquet. It is built on top of DuckDB and provides an HDT-like interface.

Features :sparkles:

Documentation :bookmark_tabs:

Read the documentation.

Getting Started :rocket:

PyPI is the fastest way to install pycottas:

pip install pycottas

We recommend to use virtual environments to install pycottas.

import pycottas
from rdflib import Graph, URIRef

pycottas.rdf2cottas('my_file.ttl', 'my_file.cottas', index='spo')
res = pycottas.search('my_file.cottas', '?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?o')
print(res)
pycottas.cottas2rdf('my_file.cottas', 'my_file.nt')

# COTTASDocument class for querying with triple patterns
cottas_doc = pycottas.COTTASDocument('my_file.cottas')
# the triple pattern can be a string (below) or a tuple of RDFLib terms
res = cottas_doc.search('?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> ?o')

# COTTASStore class for querying with SPARQL
graph = Graph(store=pycottas.COTTASStore('my_file.cottas'))
res = graph.query('''
  PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
  SELECT DISTINCT ?s ?o WHERE {
    ?s rdf:type ?o .
  } LIMIT 10''')
for row in res:
    print(row)

To execute via command line check the docs. It is also possible to serve COTTAS files as an SPARQL endpoint with pycottas-endpoint.

License :unlock:

pycottas is available under the Apache License 2.0.

Author & Contact :mailbox_with_mail:

Universidad Politécnica de Madrid.

Citing :speech_balloon:

If you used pycottas in your work, please cite the ISWC paper:

@inproceedings{arenas2026cottas,
  title     = {{COTTAS: Columnar Triple Table Storage for Efficient and Compressed RDF Management}},
  author    = {Arenas-Guerrero, Julián and Ferrada, Sebastián},
  booktitle = {Proceedings of the 24th International Semantic Web Conference},
  year      = {2026},
  publisher = {Springer Nature Switzerland},
  isbn      = {978-3-032-09530-5},
  pages     = {313--331},
  doi       = {10.1007/978-3-032-09530-5_18},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pycottas-1.1.0.tar.gz (557.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pycottas-1.1.0-py3-none-any.whl (16.3 kB view details)

Uploaded Python 3

File details

Details for the file pycottas-1.1.0.tar.gz.

File metadata

  • Download URL: pycottas-1.1.0.tar.gz
  • Upload date:
  • Size: 557.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pycottas-1.1.0.tar.gz
Algorithm Hash digest
SHA256 6232aa0410bfff36afd07a745b834b46460dd4b6b766c9da53c1f26c73d8883d
MD5 112747e5ebb8afd7747f55920f3acad7
BLAKE2b-256 4fdef0d14c4c434c0577331277105aac154d368d98279bdcb14fc8bbd324dfcc

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycottas-1.1.0.tar.gz:

Publisher: pypi-publish.yml on arenas-guerrero-julian/pycottas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pycottas-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: pycottas-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 16.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pycottas-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed63bf0a2ee7ebc5bd36db3b4954af6ee0dc652f35e2ab5e4eb974a48adfa98a
MD5 249e64483fdd2bdcb4858cd97db6d4d4
BLAKE2b-256 61064f4b2de72eeccec08c4ac4381e506a154d3fd4f9916fdad890b128f91353

See more details on using hashes here.

Provenance

The following attestation bundles were made for pycottas-1.1.0-py3-none-any.whl:

Publisher: pypi-publish.yml on arenas-guerrero-julian/pycottas

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page