Skip to main content

A tool to enrich any OCDM compliant Knowledge Graph, finding new identifiers and deduplicating entities

Project description

Tests Pyright Ruff Coverage REUSE status

OC GraphEnricher

OC GraphEnricher enriches OpenCitations Data Model (OCDM) compliant knowledge graphs by finding missing identifiers and deduplicating entities.

Documentation: https://opencitations.github.io/oc_graphenricher/

Quick start

pip install oc-graphenricher
from oc_ocdm.graph.graph_set import GraphSet
from oc_ocdm.reader import Reader
from rdflib import Graph

from oc_graphenricher.enricher import GraphEnricher
from oc_graphenricher.deduplication import GraphDeduplicator
from oc_graphenricher.storage import single_file_storage

graph = Graph().parse("data/input.nt", format="nt11")

reader = Reader()
graph_set = GraphSet(base_iri="https://w3id.org/oc/meta/")
reader.import_entities_from_graph(
    graph_set,
    graph,
    enable_validation=False,
    resp_agent="https://w3id.org/oc/meta/prov/pa/2",
)

GraphEnricher(
    graph_set=graph_set,
    storage=single_file_storage(
        graph_path="enriched.json",
        provenance_path="provenance.json",
    ),
).enrich()
GraphDeduplicator(
    graph_set=graph_set,
    storage=single_file_storage(
        graph_path="deduplicated.json",
        provenance_path="provenance.json",
    ),
).deduplicate_and_save()

By default, GraphDeduplicator does not merge contributor roles only because author names are similar. To enable that opt-in behavior, pass merge_similar_named_contributors=True.

Use deduplicate() instead of deduplicate_and_save() when another application needs to manage storage or provenance output itself. Use preferred_survivors with a set of entity URIs to keep selected entities when duplicate clusters are merged. Without a preferred survivor, duplicate clusters keep the entity with more functional metadata. Ties use URI order. Use merge_clusters() when another application has already selected the merge clusters, for example from a reviewed CSV. The mapping key is the surviving entity URI and the values are the URIs to merge into it. This method does not discover or merge any extra duplicates outside the provided mapping.

For configuration options and usage details, see the documentation.

License

Distributed under the ISC License. See LICENSE.

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

oc_graphenricher-2.1.3.tar.gz (21.6 kB view details)

Uploaded Source

Built Distribution

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

oc_graphenricher-2.1.3-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

File details

Details for the file oc_graphenricher-2.1.3.tar.gz.

File metadata

  • Download URL: oc_graphenricher-2.1.3.tar.gz
  • Upload date:
  • Size: 21.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for oc_graphenricher-2.1.3.tar.gz
Algorithm Hash digest
SHA256 985f8e6c0b554769b3af471e6e960cec82c296c6a2ab03b68b416b8596ade874
MD5 6fbc93b7129744eb92d896065f7fdb21
BLAKE2b-256 efa9d459ac06337a2f83f7c39ffe16a46a53768a188a3124191ee64d59e9fbb7

See more details on using hashes here.

File details

Details for the file oc_graphenricher-2.1.3-py3-none-any.whl.

File metadata

  • Download URL: oc_graphenricher-2.1.3-py3-none-any.whl
  • Upload date:
  • Size: 24.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.26 {"installer":{"name":"uv","version":"0.11.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for oc_graphenricher-2.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 543d8e33a12862d6c26730f8600b69903aa543d7eff3b19a0ea874c38b034630
MD5 8154073548af88c04336b20269f49f8b
BLAKE2b-256 ecea5f2ee126991c4aaf7c88571b6fd989e57afd176e46e4730037f08aa6e17b

See more details on using hashes here.

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