ProvSense


NameProvSense JSON
Version 1.0.2 PyPI version JSON
download
home_pagehttps://github.com/sensein/ProvSense/
SummaryProvSense is a Python library for managing knowledge graph provenance. It enables efficient comparison of files, tracking changes, and enforcing provenance rules to ensure data integrity and traceability. Ideal for researchers and developers, ProvSense promotes transparency and accountability in data-driven workflows.
upload_time2025-02-07 21:13:22
maintainertekrajchhetri
docs_urlNone
authortekrajchhetri
requires_python<4.0,>=3.10
licenseApache-2.0
keywords python data-integrity file-comparison data-governance provenance knowledge-graph provenance-tracking reproducibility lineage
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ProvSense

ProvSense is a Python library for managing knowledge graph provenance. It enables efficient comparison of files, tracking changes, and enforcing provenance rules to ensure data integrity and traceability. Ideal for researchers and developers, ProvSense promotes transparency and accountability in data-driven workflows.

## Installation
Install this package via :

```sh
pip install ProvSense
```

Or get the newest development version via:

```sh
pip install git+https://github.com/sensein/ProvSense/.git
```

## Usage
For example files, see `example` directory.

### 1️⃣ Compare Two Knowledge Graph Strings
You can compare two JSON-LD/Turtle/N-Triples formatted knowledge graphs as strings.
```Python
from ProvSense.app import compare_items

# KG string comparison
src = """{ "@context": { "ex": "http://example.org/" }, "@id": "ex:Person1", "@type": "ex:Person", "ex:name": "Alice" }"""

dst = """{ "@context": { "ex": "http://example.org/" }, "@id": "ex:Person1", "@type": "ex:Person", "ex:name": "BoB" }"""

# Compare and print results
print(compare_items(src, dst))

```
**Output:**
```python
[
    {'subject': 'http://example.org/Person1',
  'property': 'http://example.org/name',
  'src_value': 'Alice',
  'dst_value': 'BoB'},
 {'subject': 'http://example.org/Person1',
  'property': 'http://example.org/name',
  'src_value': 'Alice',
  'dst_value': 'BoB'}
]
```

### 2️⃣ Compare Two Knowledge Graph Files
Pass file paths to compare JSON-LD, TTL, or NT files.

```python
from ProvSense.app import compare_items
print(compare_items("test_src.jsonld", "test_dst.jsonld"))

```
**Output:**
```python
[
    {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',
  'property': 'http://example.org/worksAt',
  'src_value': 'http://example.org/Company',
  'dst_value': 'http://example.org/CompanyY'},
 {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',
  'property': 'http://example.org/worksAt',
  'src_value': 'http://example.org/Company',
  'dst_value': 'http://example.org/CompanyY'},
 {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',
  'property': 'http://example.org/location',
  'src_value': None,
  'dst_value': 'New York'}
]

```
### 3️⃣ Compare Two Directories
Compare all JSON-LD, TTL, and NT files in two folders recursively.

Note: The source and destination folders must contain files with matching filenames for a valid comparison.
```python
from ProvSense.app import compare_items
print(compare_items("src", "dst"))
```

**Output:**
```python

{'test_file.jsonld': [{'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',
   'property': 'http://example.org/worksAt',
   'src_value': 'http://example.org/CompanyX',
   'dst_value': 'http://example.org/CompanyY'},
  {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',
   'property': 'http://example.org/location',
   'src_value': None,
   'dst_value': 'New York'},
  {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',
   'property': 'http://example.org/worksAt',
   'src_value': 'http://example.org/CompanyX',
   'dst_value': 'http://example.org/CompanyY'}],
 'test_file_b.jsonld': [{'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/Princeton_University',
   'dst_value': 'http://dbpedia.org/resource/ETH_Zurich'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/Princeton_University',
   'dst_value': 'http://dbpedia.org/resource/University_of_Berlin'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/ETH_Zurich',
   'dst_value': 'http://dbpedia.org/resource/Princeton_University'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/ETH_Zurich',
   'dst_value': 'http://dbpedia.org/resource/University_of_Berlin'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/Switzerland',
   'dst_value': 'http://dbpedia.org/resource/Germany'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/Switzerland',
   'dst_value': 'http://dbpedia.org/resource/United_States'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Quantum_mechanics',
   'dst_value': 'http://dbpedia.org/resource/Brownian_motion'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Quantum_mechanics',
   'dst_value': 'http://dbpedia.org/resource/Theory_of_relativity'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/University_of_Berlin',
   'dst_value': 'http://dbpedia.org/resource/Princeton_University'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/University_of_Berlin',
   'dst_value': 'http://dbpedia.org/resource/ETH_Zurich'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/sameAs',
   'src_value': 'https://www.wikidata.org/wiki/Q937',
   'dst_value': 'https://en.wikipedia.org/wiki/Albert_Einstein'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/Germany',
   'dst_value': 'http://dbpedia.org/resource/Switzerland'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/Germany',
   'dst_value': 'http://dbpedia.org/resource/United_States'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Brownian_motion',
   'dst_value': 'http://dbpedia.org/resource/Quantum_mechanics'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Brownian_motion',
   'dst_value': 'http://dbpedia.org/resource/Theory_of_relativity'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/alternateName',
   'src_value': 'Einstein',
   'dst_value': 'Prof. Einstein'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/alternateName',
   'src_value': 'Prof. Einstein',
   'dst_value': 'Einstein'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Theory_of_relativity',
   'dst_value': 'http://dbpedia.org/resource/Quantum_mechanics'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Theory_of_relativity',
   'dst_value': 'http://dbpedia.org/resource/Brownian_motion'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/United_States',
   'dst_value': 'http://dbpedia.org/resource/Switzerland'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/United_States',
   'dst_value': 'http://dbpedia.org/resource/Germany'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/sameAs',
   'src_value': 'https://en.wikipedia.org/wiki/Albert_Einstein',
   'dst_value': 'https://www.wikidata.org/wiki/Q937'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/ETH_Zurich',
   'dst_value': 'http://dbpedia.org/resource/Princeton_University'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/University_of_Berlin',
   'dst_value': 'http://dbpedia.org/resource/Princeton_University'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/Princeton_University',
   'dst_value': 'http://dbpedia.org/resource/ETH_Zurich'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/University_of_Berlin',
   'dst_value': 'http://dbpedia.org/resource/ETH_Zurich'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/Germany',
   'dst_value': 'http://dbpedia.org/resource/Switzerland'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/United_States',
   'dst_value': 'http://dbpedia.org/resource/Switzerland'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Brownian_motion',
   'dst_value': 'http://dbpedia.org/resource/Quantum_mechanics'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Theory_of_relativity',
   'dst_value': 'http://dbpedia.org/resource/Quantum_mechanics'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/Princeton_University',
   'dst_value': 'http://dbpedia.org/resource/University_of_Berlin'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/affiliation',
   'src_value': 'http://dbpedia.org/resource/ETH_Zurich',
   'dst_value': 'http://dbpedia.org/resource/University_of_Berlin'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/sameAs',
   'src_value': 'https://en.wikipedia.org/wiki/Albert_Einstein',
   'dst_value': 'https://www.wikidata.org/wiki/Q937'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/Switzerland',
   'dst_value': 'http://dbpedia.org/resource/Germany'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/United_States',
   'dst_value': 'http://dbpedia.org/resource/Germany'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Quantum_mechanics',
   'dst_value': 'http://dbpedia.org/resource/Brownian_motion'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Theory_of_relativity',
   'dst_value': 'http://dbpedia.org/resource/Brownian_motion'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/alternateName',
   'src_value': 'Prof. Einstein',
   'dst_value': 'Einstein'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/alternateName',
   'src_value': 'Einstein',
   'dst_value': 'Prof. Einstein'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Quantum_mechanics',
   'dst_value': 'http://dbpedia.org/resource/Theory_of_relativity'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/knowsAbout',
   'src_value': 'http://dbpedia.org/resource/Brownian_motion',
   'dst_value': 'http://dbpedia.org/resource/Theory_of_relativity'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/Switzerland',
   'dst_value': 'http://dbpedia.org/resource/United_States'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/nationality',
   'src_value': 'http://dbpedia.org/resource/Germany',
   'dst_value': 'http://dbpedia.org/resource/United_States'},
  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',
   'property': 'http://schema.org/sameAs',
   'src_value': 'https://www.wikidata.org/wiki/Q937',
   'dst_value': 'https://en.wikipedia.org/wiki/Albert_Einstein'},
  {'subject': 'http://dbpedia.org/resource/Brownian_motion',
   'property': 'http://schema.org/name',
   'src_value': 'Brownian',
   'dst_value': 'Brownian Motion'},
  {'subject': 'http://dbpedia.org/resource/Brownian_motion',
   'property': 'http://schema.org/name',
   'src_value': 'Brownian',
   'dst_value': 'Brownian Motion'},
  {'subject': 'http://dbpedia.org/resource/Theory_of_relativity',
   'property': 'http://schema.org/name',
   'src_value': 'Relativity',
   'dst_value': 'Theory of Relativity'},
  {'subject': 'http://dbpedia.org/resource/Theory_of_relativity',
   'property': 'http://schema.org/name',
   'src_value': 'Relativity',
   'dst_value': 'Theory of Relativity'}]}
```

## Running Tests

To run all tests in the project:
```sh
python -m unittest discover src/tests
```

To run a specific test file:
```sh
python -m unittest src/tests/test_ttl_conversion.py
```

To run tests with verbose output:
```sh
python -m unittest -v src/tests/test_ttl_conversion.py
```

## To do:
- [ ] Add LLM for advanced comparison 
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/sensein/ProvSense/",
    "name": "ProvSense",
    "maintainer": "tekrajchhetri",
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": "tekraj@mit.edu",
    "keywords": "python, data-integrity, file-comparison, data-governance, provenance, knowledge-graph, provenance-tracking, reproducibility, lineage",
    "author": "tekrajchhetri",
    "author_email": "tekraj@mit.edu",
    "download_url": "https://files.pythonhosted.org/packages/86/de/1380ea32f89b94127c891846a5b67374e7909516ffdfb1abfbc18143db23/provsense-1.0.2.tar.gz",
    "platform": null,
    "description": "# ProvSense\n\nProvSense is a Python library for managing knowledge graph provenance. It enables efficient comparison of files, tracking changes, and enforcing provenance rules to ensure data integrity and traceability. Ideal for researchers and developers, ProvSense promotes transparency and accountability in data-driven workflows.\n\n## Installation\nInstall this package via :\n\n```sh\npip install ProvSense\n```\n\nOr get the newest development version via:\n\n```sh\npip install git+https://github.com/sensein/ProvSense/.git\n```\n\n## Usage\nFor example files, see `example` directory.\n\n### 1\ufe0f\u20e3 Compare Two Knowledge Graph Strings\nYou can compare two JSON-LD/Turtle/N-Triples formatted knowledge graphs as strings.\n```Python\nfrom ProvSense.app import compare_items\n\n# KG string comparison\nsrc = \"\"\"{ \"@context\": { \"ex\": \"http://example.org/\" }, \"@id\": \"ex:Person1\", \"@type\": \"ex:Person\", \"ex:name\": \"Alice\" }\"\"\"\n\ndst = \"\"\"{ \"@context\": { \"ex\": \"http://example.org/\" }, \"@id\": \"ex:Person1\", \"@type\": \"ex:Person\", \"ex:name\": \"BoB\" }\"\"\"\n\n# Compare and print results\nprint(compare_items(src, dst))\n\n```\n**Output:**\n```python\n[\n    {'subject': 'http://example.org/Person1',\n  'property': 'http://example.org/name',\n  'src_value': 'Alice',\n  'dst_value': 'BoB'},\n {'subject': 'http://example.org/Person1',\n  'property': 'http://example.org/name',\n  'src_value': 'Alice',\n  'dst_value': 'BoB'}\n]\n```\n\n### 2\ufe0f\u20e3 Compare Two Knowledge Graph Files\nPass file paths to compare JSON-LD, TTL, or NT files.\n\n```python\nfrom ProvSense.app import compare_items\nprint(compare_items(\"test_src.jsonld\", \"test_dst.jsonld\"))\n\n```\n**Output:**\n```python\n[\n    {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',\n  'property': 'http://example.org/worksAt',\n  'src_value': 'http://example.org/Company',\n  'dst_value': 'http://example.org/CompanyY'},\n {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',\n  'property': 'http://example.org/worksAt',\n  'src_value': 'http://example.org/Company',\n  'dst_value': 'http://example.org/CompanyY'},\n {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',\n  'property': 'http://example.org/location',\n  'src_value': None,\n  'dst_value': 'New York'}\n]\n\n```\n### 3\ufe0f\u20e3 Compare Two Directories\nCompare all JSON-LD, TTL, and NT files in two folders recursively.\n\nNote: The source and destination folders must contain files with matching filenames for a valid comparison.\n```python\nfrom ProvSense.app import compare_items\nprint(compare_items(\"src\", \"dst\"))\n```\n\n**Output:**\n```python\n\n{'test_file.jsonld': [{'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',\n   'property': 'http://example.org/worksAt',\n   'src_value': 'http://example.org/CompanyX',\n   'dst_value': 'http://example.org/CompanyY'},\n  {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',\n   'property': 'http://example.org/location',\n   'src_value': None,\n   'dst_value': 'New York'},\n  {'subject': 'urn:uuid:550e8400-e29b-41d4-a716-446655440000',\n   'property': 'http://example.org/worksAt',\n   'src_value': 'http://example.org/CompanyX',\n   'dst_value': 'http://example.org/CompanyY'}],\n 'test_file_b.jsonld': [{'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/Princeton_University',\n   'dst_value': 'http://dbpedia.org/resource/ETH_Zurich'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/Princeton_University',\n   'dst_value': 'http://dbpedia.org/resource/University_of_Berlin'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/ETH_Zurich',\n   'dst_value': 'http://dbpedia.org/resource/Princeton_University'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/ETH_Zurich',\n   'dst_value': 'http://dbpedia.org/resource/University_of_Berlin'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/Switzerland',\n   'dst_value': 'http://dbpedia.org/resource/Germany'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/Switzerland',\n   'dst_value': 'http://dbpedia.org/resource/United_States'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Quantum_mechanics',\n   'dst_value': 'http://dbpedia.org/resource/Brownian_motion'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Quantum_mechanics',\n   'dst_value': 'http://dbpedia.org/resource/Theory_of_relativity'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/University_of_Berlin',\n   'dst_value': 'http://dbpedia.org/resource/Princeton_University'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/University_of_Berlin',\n   'dst_value': 'http://dbpedia.org/resource/ETH_Zurich'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/sameAs',\n   'src_value': 'https://www.wikidata.org/wiki/Q937',\n   'dst_value': 'https://en.wikipedia.org/wiki/Albert_Einstein'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/Germany',\n   'dst_value': 'http://dbpedia.org/resource/Switzerland'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/Germany',\n   'dst_value': 'http://dbpedia.org/resource/United_States'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Brownian_motion',\n   'dst_value': 'http://dbpedia.org/resource/Quantum_mechanics'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Brownian_motion',\n   'dst_value': 'http://dbpedia.org/resource/Theory_of_relativity'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/alternateName',\n   'src_value': 'Einstein',\n   'dst_value': 'Prof. Einstein'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/alternateName',\n   'src_value': 'Prof. Einstein',\n   'dst_value': 'Einstein'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Theory_of_relativity',\n   'dst_value': 'http://dbpedia.org/resource/Quantum_mechanics'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Theory_of_relativity',\n   'dst_value': 'http://dbpedia.org/resource/Brownian_motion'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/United_States',\n   'dst_value': 'http://dbpedia.org/resource/Switzerland'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/United_States',\n   'dst_value': 'http://dbpedia.org/resource/Germany'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/sameAs',\n   'src_value': 'https://en.wikipedia.org/wiki/Albert_Einstein',\n   'dst_value': 'https://www.wikidata.org/wiki/Q937'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/ETH_Zurich',\n   'dst_value': 'http://dbpedia.org/resource/Princeton_University'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/University_of_Berlin',\n   'dst_value': 'http://dbpedia.org/resource/Princeton_University'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/Princeton_University',\n   'dst_value': 'http://dbpedia.org/resource/ETH_Zurich'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/University_of_Berlin',\n   'dst_value': 'http://dbpedia.org/resource/ETH_Zurich'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/Germany',\n   'dst_value': 'http://dbpedia.org/resource/Switzerland'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/United_States',\n   'dst_value': 'http://dbpedia.org/resource/Switzerland'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Brownian_motion',\n   'dst_value': 'http://dbpedia.org/resource/Quantum_mechanics'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Theory_of_relativity',\n   'dst_value': 'http://dbpedia.org/resource/Quantum_mechanics'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/Princeton_University',\n   'dst_value': 'http://dbpedia.org/resource/University_of_Berlin'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/affiliation',\n   'src_value': 'http://dbpedia.org/resource/ETH_Zurich',\n   'dst_value': 'http://dbpedia.org/resource/University_of_Berlin'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/sameAs',\n   'src_value': 'https://en.wikipedia.org/wiki/Albert_Einstein',\n   'dst_value': 'https://www.wikidata.org/wiki/Q937'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/Switzerland',\n   'dst_value': 'http://dbpedia.org/resource/Germany'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/United_States',\n   'dst_value': 'http://dbpedia.org/resource/Germany'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Quantum_mechanics',\n   'dst_value': 'http://dbpedia.org/resource/Brownian_motion'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Theory_of_relativity',\n   'dst_value': 'http://dbpedia.org/resource/Brownian_motion'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/alternateName',\n   'src_value': 'Prof. Einstein',\n   'dst_value': 'Einstein'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/alternateName',\n   'src_value': 'Einstein',\n   'dst_value': 'Prof. Einstein'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Quantum_mechanics',\n   'dst_value': 'http://dbpedia.org/resource/Theory_of_relativity'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/knowsAbout',\n   'src_value': 'http://dbpedia.org/resource/Brownian_motion',\n   'dst_value': 'http://dbpedia.org/resource/Theory_of_relativity'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/Switzerland',\n   'dst_value': 'http://dbpedia.org/resource/United_States'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/nationality',\n   'src_value': 'http://dbpedia.org/resource/Germany',\n   'dst_value': 'http://dbpedia.org/resource/United_States'},\n  {'subject': 'http://dbpedia.org/resource/Albert_Einstein',\n   'property': 'http://schema.org/sameAs',\n   'src_value': 'https://www.wikidata.org/wiki/Q937',\n   'dst_value': 'https://en.wikipedia.org/wiki/Albert_Einstein'},\n  {'subject': 'http://dbpedia.org/resource/Brownian_motion',\n   'property': 'http://schema.org/name',\n   'src_value': 'Brownian',\n   'dst_value': 'Brownian Motion'},\n  {'subject': 'http://dbpedia.org/resource/Brownian_motion',\n   'property': 'http://schema.org/name',\n   'src_value': 'Brownian',\n   'dst_value': 'Brownian Motion'},\n  {'subject': 'http://dbpedia.org/resource/Theory_of_relativity',\n   'property': 'http://schema.org/name',\n   'src_value': 'Relativity',\n   'dst_value': 'Theory of Relativity'},\n  {'subject': 'http://dbpedia.org/resource/Theory_of_relativity',\n   'property': 'http://schema.org/name',\n   'src_value': 'Relativity',\n   'dst_value': 'Theory of Relativity'}]}\n```\n\n## Running Tests\n\nTo run all tests in the project:\n```sh\npython -m unittest discover src/tests\n```\n\nTo run a specific test file:\n```sh\npython -m unittest src/tests/test_ttl_conversion.py\n```\n\nTo run tests with verbose output:\n```sh\npython -m unittest -v src/tests/test_ttl_conversion.py\n```\n\n## To do:\n- [ ] Add LLM for advanced comparison ",
    "bugtrack_url": null,
    "license": "Apache-2.0",
    "summary": "ProvSense is a Python library for managing knowledge graph provenance. It enables efficient comparison of files, tracking changes, and enforcing provenance rules to ensure data integrity and traceability. Ideal for researchers and developers, ProvSense promotes transparency and accountability in data-driven workflows.",
    "version": "1.0.2",
    "project_urls": {
        "Documentation": "https://sensein.group/brainkbdocs/",
        "Homepage": "https://github.com/sensein/ProvSense/",
        "Repository": "https://github.com/sensein/ProvSense/"
    },
    "split_keywords": [
        "python",
        " data-integrity",
        " file-comparison",
        " data-governance",
        " provenance",
        " knowledge-graph",
        " provenance-tracking",
        " reproducibility",
        " lineage"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d34f28b1f5b25e150a4a8fbfd10cba98135d8daf3273373671720b5023500b3a",
                "md5": "b9b2f474809102fa222fecf00888b221",
                "sha256": "71472789607ee7602fcbbf31dbae387ffcc933bca2863ef8a91c3e4b1b539b27"
            },
            "downloads": -1,
            "filename": "provsense-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "b9b2f474809102fa222fecf00888b221",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 13259,
            "upload_time": "2025-02-07T21:13:19",
            "upload_time_iso_8601": "2025-02-07T21:13:19.861208Z",
            "url": "https://files.pythonhosted.org/packages/d3/4f/28b1f5b25e150a4a8fbfd10cba98135d8daf3273373671720b5023500b3a/provsense-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "86de1380ea32f89b94127c891846a5b67374e7909516ffdfb1abfbc18143db23",
                "md5": "8bff1abf47b94aac60f8b0ed6b558c7d",
                "sha256": "4ef43c7b30bfab89c71ca566772ba7815054d6c471f39ecf819ee3d15a06732b"
            },
            "downloads": -1,
            "filename": "provsense-1.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "8bff1abf47b94aac60f8b0ed6b558c7d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 13205,
            "upload_time": "2025-02-07T21:13:22",
            "upload_time_iso_8601": "2025-02-07T21:13:22.267630Z",
            "url": "https://files.pythonhosted.org/packages/86/de/1380ea32f89b94127c891846a5b67374e7909516ffdfb1abfbc18143db23/provsense-1.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-07 21:13:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "sensein",
    "github_project": "ProvSense",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "provsense"
}
        
Elapsed time: 0.43201s