# 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"
}