TravSHACL


NameTravSHACL JSON
Version 1.7.2 PyPI version JSON
download
home_pagehttps://github.com/SDM-TIB/Trav-SHACL
SummaryA SHACL validator capable of planning the traversal and execution of the validation of a shape schema to detect violations early.
upload_time2024-09-09 08:04:02
maintainerNone
docs_urlNone
authorMónica Figuera, Philipp D. Rohde
requires_python>=3.8
licenseGNU/GPLv3
keywords
VCS
bugtrack_url
requirements SPARQLWrapper Flask rdflib
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Tests](https://github.com/SDM-TIB/Trav-SHACL/actions/workflows/test.yml/badge.svg)](https://github.com/SDM-TIB/Trav-SHACL/actions/workflows/test.yml)
[![Latest Release](http://img.shields.io/github/release/SDM-TIB/Trav-SHACL.svg?logo=github)](https://github.com/SDM-TIB/Trav-SHACL/releases)
[![Docker Image](https://img.shields.io/badge/Docker%20Image-sdmtib/travshacl-blue?logo=Docker)](https://hub.docker.com/r/sdmtib/travshacl)
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)

[![Python Versions](https://img.shields.io/pypi/pyversions/TravSHACL)](https://pypi.org/project/TravSHACL)
[![Package Format](https://img.shields.io/pypi/format/TravSHACL)](https://pypi.org/project/TravSHACL)
[![Package Status](https://img.shields.io/pypi/status/TravSHACL)](https://pypi.org/project/TravSHACL)
[![Package Version](https://img.shields.io/pypi/v/TravSHACL)](https://pypi.org/project/TravSHACL)

[![Publication](https://img.shields.io/badge/Publication-10.1145/3442381.3449877-green.svg)](https://doi.org/10.1145/3442381.3449877)
[![Data](https://img.shields.io/badge/Data-10.25835/0035739-green.svg)](https://doi.org/10.25835/0035739)
[![Experiment Scripts](https://img.shields.io/badge/Experiment%20Scripts-eval--www2021-green.svg)](https://github.com/SDM-TIB/Trav-SHACL/tree/eval-www2021)

# ![Logo](https://raw.githubusercontent.com/SDM-TIB/Trav-SHACL/master/images/logo.png "Logo")

We present Trav-SHACL, a SHACL engine capable of planning the traversal and execution of a shape schema in a way that invalid entities are detected early and needless validations are minimized.
Trav-SHACL reorders the shapes in a shape schema for efficient validation and rewrites target and constraint queries for fast detection of invalid entities.
The shape schema is validated against an RDF graph accessible via a SPARQL endpoint.

![Trav-SHACL Architecture](https://raw.githubusercontent.com/SDM-TIB/Trav-SHACL/master/docs/_images/architecture.png)
Fig. 1: **The Trav-SHACL Architecture (from [1])**

Fig. 1 shows the architecture of Trav-SHACL.
Trav-SHACL receives a SHACL shape schema S and an RDF graph G.
The output of Trav-SHACL are the entities of G that satisfy the shapes in S.
The inter-shape planner uses graph metrics computed over the dependency graph of the shape schema.
It orders the shapes in S in a way that invalid entities are identified as soon as possible.
The intra-shape planner and execution optimizes the target and constraint queries at the time the shape schema is traversed.
So-far (in)validated entities are considered to filter out entities linked to these entities; query rewriting decisions (e.g., pushing filters, partitioning of non-selective queries, and query reordering) are made based on invalid entities' cardinalities and query selectivity.
The rewritten queries are executed against SPARQL endpoints.
The answers of the target and constraint queries as well as the truth value assignments are exchanged during query rewriting and interleaved execution.
They are utilized — in a bottom-up fashion — for constraint rule grounding and saturation.
The intra-shape planner and execution component runs until a fixed-point in the truth value assignments is reached.

If you want to know more, check out the [documentation](https://sdm-tib.github.io/Trav-SHACL/).
The documentation also lists the current [features and limitations](https://sdm-tib.github.io/Trav-SHACL/feature.html).

## How to run Trav-SHACL?
You can use Trav-SHACL as a Python3 library or a Web-based service using Docker.
The documentation includes detailed examples for both scenarios.

* [Trav-SHACL as a Library](https://sdm-tib.github.io/Trav-SHACL/library.html)
* [Trav-SHACL as a Service](https://sdm-tib.github.io/Trav-SHACL/service.html)

## WWW 2021 Evaluation
Trav-SHACL is presented in [1]. If you want to **reproduce the results** reported in our WWW '21 paper, checkout the [**eval-www2021**](https://github.com/SDM-TIB/Trav-SHACL/tree/eval-www2021) **branch**.

## License
Trav-SHACL is licensed under GPL-3.0.

## Publications
1. Mónica Figuera, Philipp D. Rohde, Maria-Esther Vidal. Trav-SHACL: Efficiently Validating Networks of SHACL Constraints. In _Proceedings of the Web Conference 2021 (WWW '21), April 19-23, 2021, Ljubljana, Slovenia_. [https://doi.org/10.1145/3442381.3449877](https://doi.org/10.1145/3442381.3449877), [Experiment Scripts](https://github.com/SDM-TIB/Trav-SHACL/tree/eval-www2021), [Preprint](https://arxiv.org/abs/2101.07136)

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/SDM-TIB/Trav-SHACL",
    "name": "TravSHACL",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "M\u00f3nica Figuera, Philipp D. Rohde",
    "author_email": "philipp.rohde@tib.eu",
    "download_url": "https://files.pythonhosted.org/packages/49/eb/6c9faf09a9119f35ced6ef8b77a7015dbdf9d5e516c3f461130074721b20/travshacl-1.7.2.tar.gz",
    "platform": null,
    "description": "[![Tests](https://github.com/SDM-TIB/Trav-SHACL/actions/workflows/test.yml/badge.svg)](https://github.com/SDM-TIB/Trav-SHACL/actions/workflows/test.yml)\n[![Latest Release](http://img.shields.io/github/release/SDM-TIB/Trav-SHACL.svg?logo=github)](https://github.com/SDM-TIB/Trav-SHACL/releases)\n[![Docker Image](https://img.shields.io/badge/Docker%20Image-sdmtib/travshacl-blue?logo=Docker)](https://hub.docker.com/r/sdmtib/travshacl)\n[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](LICENSE)\n\n[![Python Versions](https://img.shields.io/pypi/pyversions/TravSHACL)](https://pypi.org/project/TravSHACL)\n[![Package Format](https://img.shields.io/pypi/format/TravSHACL)](https://pypi.org/project/TravSHACL)\n[![Package Status](https://img.shields.io/pypi/status/TravSHACL)](https://pypi.org/project/TravSHACL)\n[![Package Version](https://img.shields.io/pypi/v/TravSHACL)](https://pypi.org/project/TravSHACL)\n\n[![Publication](https://img.shields.io/badge/Publication-10.1145/3442381.3449877-green.svg)](https://doi.org/10.1145/3442381.3449877)\n[![Data](https://img.shields.io/badge/Data-10.25835/0035739-green.svg)](https://doi.org/10.25835/0035739)\n[![Experiment Scripts](https://img.shields.io/badge/Experiment%20Scripts-eval--www2021-green.svg)](https://github.com/SDM-TIB/Trav-SHACL/tree/eval-www2021)\n\n# ![Logo](https://raw.githubusercontent.com/SDM-TIB/Trav-SHACL/master/images/logo.png \"Logo\")\n\nWe present Trav-SHACL, a SHACL engine capable of planning the traversal and execution of a shape schema in a way that invalid entities are detected early and needless validations are minimized.\nTrav-SHACL reorders the shapes in a shape schema for efficient validation and rewrites target and constraint queries for fast detection of invalid entities.\nThe shape schema is validated against an RDF graph accessible via a SPARQL endpoint.\n\n![Trav-SHACL Architecture](https://raw.githubusercontent.com/SDM-TIB/Trav-SHACL/master/docs/_images/architecture.png)\nFig. 1: **The Trav-SHACL Architecture (from [1])**\n\nFig. 1 shows the architecture of Trav-SHACL.\nTrav-SHACL receives a SHACL shape schema S and an RDF graph G.\nThe output of Trav-SHACL are the entities of G that satisfy the shapes in S.\nThe inter-shape planner uses graph metrics computed over the dependency graph of the shape schema.\nIt orders the shapes in S in a way that invalid entities are identified as soon as possible.\nThe intra-shape planner and execution optimizes the target and constraint queries at the time the shape schema is traversed.\nSo-far (in)validated entities are considered to filter out entities linked to these entities; query rewriting decisions (e.g., pushing filters, partitioning of non-selective queries, and query reordering) are made based on invalid entities' cardinalities and query selectivity.\nThe rewritten queries are executed against SPARQL endpoints.\nThe answers of the target and constraint queries as well as the truth value assignments are exchanged during query rewriting and interleaved execution.\nThey are utilized \u2014 in a bottom-up fashion \u2014 for constraint rule grounding and saturation.\nThe intra-shape planner and execution component runs until a fixed-point in the truth value assignments is reached.\n\nIf you want to know more, check out the [documentation](https://sdm-tib.github.io/Trav-SHACL/).\nThe documentation also lists the current [features and limitations](https://sdm-tib.github.io/Trav-SHACL/feature.html).\n\n## How to run Trav-SHACL?\nYou can use Trav-SHACL as a Python3 library or a Web-based service using Docker.\nThe documentation includes detailed examples for both scenarios.\n\n* [Trav-SHACL as a Library](https://sdm-tib.github.io/Trav-SHACL/library.html)\n* [Trav-SHACL as a Service](https://sdm-tib.github.io/Trav-SHACL/service.html)\n\n## WWW 2021 Evaluation\nTrav-SHACL is presented in [1]. If you want to **reproduce the results** reported in our WWW '21 paper, checkout the [**eval-www2021**](https://github.com/SDM-TIB/Trav-SHACL/tree/eval-www2021) **branch**.\n\n## License\nTrav-SHACL is licensed under GPL-3.0.\n\n## Publications\n1. M\u00f3nica Figuera, Philipp D. Rohde, Maria-Esther Vidal. Trav-SHACL: Efficiently Validating Networks of SHACL Constraints. In _Proceedings of the Web Conference 2021 (WWW '21), April 19-23, 2021, Ljubljana, Slovenia_. [https://doi.org/10.1145/3442381.3449877](https://doi.org/10.1145/3442381.3449877), [Experiment Scripts](https://github.com/SDM-TIB/Trav-SHACL/tree/eval-www2021), [Preprint](https://arxiv.org/abs/2101.07136)\n",
    "bugtrack_url": null,
    "license": "GNU/GPLv3",
    "summary": "A SHACL validator capable of planning the traversal and execution of the validation of a shape schema to detect violations early.",
    "version": "1.7.2",
    "project_urls": {
        "Changes": "https://sdm-tib.github.io/Trav-SHACL/changelog.html",
        "Documentation": "https://sdm-tib.github.io/Trav-SHACL/",
        "Download": "https://github.com/SDM-TIB/Trav-SHACL/archive/refs/tags/v1.7.2.tar.gz",
        "Homepage": "https://github.com/SDM-TIB/Trav-SHACL",
        "Issue Tracker": "https://github.com/SDM-TIB/Trav-SHACL/issues",
        "Source Code": "https://github.com/SDM-TIB/Trav-SHACL"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8e27ce2806726142b8b2cb859d5447bab09406210ded28637c070abdfb35436b",
                "md5": "25ae87bef4213b90b55f427ce2f07e16",
                "sha256": "1bfa26ab9041704f78af788f3766a132d966ec2ece3488ca4cde5c504df93e2f"
            },
            "downloads": -1,
            "filename": "TravSHACL-1.7.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "25ae87bef4213b90b55f427ce2f07e16",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 53860,
            "upload_time": "2024-09-09T08:04:01",
            "upload_time_iso_8601": "2024-09-09T08:04:01.204487Z",
            "url": "https://files.pythonhosted.org/packages/8e/27/ce2806726142b8b2cb859d5447bab09406210ded28637c070abdfb35436b/TravSHACL-1.7.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "49eb6c9faf09a9119f35ced6ef8b77a7015dbdf9d5e516c3f461130074721b20",
                "md5": "4217285ece1ff6855e584b1e2d502672",
                "sha256": "97e4dddf141564c38fd288200cee427750a2340dbd47046b4eb9b0213688baf0"
            },
            "downloads": -1,
            "filename": "travshacl-1.7.2.tar.gz",
            "has_sig": false,
            "md5_digest": "4217285ece1ff6855e584b1e2d502672",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 48142,
            "upload_time": "2024-09-09T08:04:02",
            "upload_time_iso_8601": "2024-09-09T08:04:02.690752Z",
            "url": "https://files.pythonhosted.org/packages/49/eb/6c9faf09a9119f35ced6ef8b77a7015dbdf9d5e516c3f461130074721b20/travshacl-1.7.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-09 08:04:02",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "SDM-TIB",
    "github_project": "Trav-SHACL",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "SPARQLWrapper",
            "specs": [
                [
                    "==",
                    "2.0.0"
                ]
            ]
        },
        {
            "name": "Flask",
            "specs": [
                [
                    "==",
                    "3.0.3"
                ]
            ]
        },
        {
            "name": "rdflib",
            "specs": [
                [
                    "==",
                    "6.3.2"
                ]
            ]
        }
    ],
    "lcname": "travshacl"
}
        
Elapsed time: 0.30344s