Metadata-Version: 2.4
Name: oc-graphenricher
Version: 1.0.1
Summary: A tool to enrich any OCDM compliant Knowledge Graph, finding new identifiers and deduplicating entities
Author: Gabriele Pisciotta, Arcangelo Massari, Elia Rizzetto, Arianna Moretti, Ilaria De Dominicis, Silvio Peroni, Simone Persiani, Davide Brembilla
Author-email: Gabriele Pisciotta <ga.pisciotta@gmail.com>, Arcangelo Massari <arcangelo.massari@unibo.it>, Elia Rizzetto <elia.rizzetto@studio.unibo.it>, Arianna Moretti <arianna.moretti4@unibo.it>, Ilaria De Dominicis <ilaria.dedominicis2@studio.unibo.it>, Silvio Peroni <silvio.peroni@unibo.it>, Davide Brembilla <davide.brembilla@studio.unibo.it>
License-Expression: ISC
Requires-Dist: tqdm>=4.68.3
Requires-Dist: requests>=2.34.2
Requires-Dist: networkx>=3.4.2
Requires-Dist: oc-ocdm>=11.0.17
Requires-Dist: requests-cache>=1.3.2
Requires-Dist: rdflib>=7.6.0
Requires-Dist: levenshtein>=0.27.3
Requires-Python: >=3.10, <3.14
Description-Content-Type: text/markdown

<!--
SPDX-FileCopyrightText: 2021 Gabriele Pisciotta <ga.pisciotta@gmail.com>
SPDX-FileCopyrightText: 2021 Silvio Peroni <silvio.peroni@unibo.it>
SPDX-FileCopyrightText: 2023 Arianna Moretti <arianna.moretti4@unibo.it>
SPDX-FileCopyrightText: 2024 Elia Rizzetto <elia.rizzetto@studio.unibo.it>
SPDX-FileCopyrightText: 2026 Arcangelo Massari <arcangelo.massari@unibo.it>

SPDX-License-Identifier: ISC
-->

[![Tests](https://github.com/opencitations/oc_graphenricher/actions/workflows/test.yml/badge.svg)](https://github.com/opencitations/oc_graphenricher/actions/workflows/test.yml)
[![Pyright](https://github.com/opencitations/oc_graphenricher/actions/workflows/pyright.yml/badge.svg)](https://github.com/opencitations/oc_graphenricher/actions/workflows/pyright.yml)
[![Ruff](https://github.com/opencitations/oc_graphenricher/actions/workflows/ruff.yml/badge.svg)](https://github.com/opencitations/oc_graphenricher/actions/workflows/ruff.yml)
[![Coverage](https://opencitations.github.io/oc_graphenricher/coverage/coverage-badge.svg)](https://opencitations.github.io/oc_graphenricher/coverage/)
[![REUSE status](https://api.reuse.software/badge/github.com/opencitations/oc_graphenricher)](https://api.reuse.software/info/github.com/opencitations/oc_graphenricher)

# OC GraphEnricher

OC GraphEnricher enriches [OpenCitations Data Model (OCDM)](https://doi.org/10.6084/m9.figshare.3443876) compliant knowledge graphs by finding missing identifiers and deduplicating entities.

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

## Quick start

```bash
pip install oc-graphenricher
```

```python
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.instancematching import InstanceMatching
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(
    g_set=graph_set,
    storage=single_file_storage(
        graph_path="enriched.json",
        provenance_path="provenance.json",
    ),
).enrich()
InstanceMatching(
    g_set=graph_set,
    storage=single_file_storage(
        graph_path="matched.json",
        provenance_path="provenance.json",
    ),
).match()
```

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

For configuration options and usage details, see the documentation.

## License

Distributed under the ISC License. See [LICENSE](LICENSE).
