diff --git a/lib/inference.py b/lib/inference.py new file mode 100644 index 0000000000000000000000000000000000000000..368659c9160fb146a34e938844fc17be4b86fa72 --- /dev/null +++ b/lib/inference.py @@ -0,0 +1,100 @@ +from subprocess import Popen, PIPE, STDOUT +from rdflib import Graph, Namespace, URIRef + +####################################################################################################### +# Parameters +####################################################################################################### +shaclBase = 'shacl-1.3.2/bin' + + +####################################################################################################### +# Inference Run +####################################################################################################### + +def run_command(cmd): + with Popen(cmd, stdout=PIPE, stderr=PIPE, universal_newlines=True) as p: + p.poll() + p.stdout.flush() + p.stderr.flush() + stdout, stderr = p.communicate() + return p.returncode, stdout, stderr + +# Run SHACL infer sh script. mode argument can take the values 'infer' or 'validate' +def shaclInfer(ttlPath, mode, ttlRulesPath = ''): + if ttlRulesPath == '': + cmd = ['sh', shaclBase+'/shacl'+mode+'.sh', '-datafile', ttlPath] + else: + cmd = ['sh', shaclBase+'/shacl'+mode+'.sh', '-datafile', ttlPath, '-shapesfile', ttlRulesPath] + #cmd = ' '.join(cmd) + #!{cmd} + code, out, err = run_command(cmd) + if code != 0: + print("Error in SHACL script: \n\n"+err) + else: + return(out) + + + +####################################################################################################### +# Inference Step +####################################################################################################### + +clearExecutionInstances = """ + PREFIX cts: <https://unsel.tetras-libre.fr/tenet/transduction-schemes#> + PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + + DELETE {?x rdf:type ?c} + WHERE { + ?c rdfs:subClassOf* cts:Transduction_Schemes . + ?x rdf:type ?c . + } +""" + +addExecutionInstance = """ + PREFIX cts: <https://unsel.tetras-libre.fr/tenet/transduction-schemes#> + PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> + + INSERT DATA {{<exec_instance> rdf:type {}}} +""" + + +def applyInferStep(uuidStr, graph, step): + step_ref = "cts:" + step + dest_file = uuidStr + '-' + step + ".ttl" + print("[DEV] destfile = " + dest_file) + base_ref = "http://" + uuidStr + '/' + step + graph.update(clearExecutionInstances) + graph.update(addExecutionInstance.format(step_ref)) # ex. : step = 'cts:generation' + graph.serialize(destination=dest_file, base=base_ref, format='turtle') # serialize graph before inference + work_file = dest_file + print("[DEV] workfile = " + work_file) + inferResult = shaclInfer(work_file, 'infer') # apply SHACL inference + graph.parse(data=inferResult) # update graph with inference + graph.serialize(destination=dest_file, base=base_ref, format='turtle') # serialize graph after inference + return graph, inferResult + + +#============================================================================== +# Execution +#============================================================================== + +if __name__ == '__main__': + + uuidStr = "test" + output = "result-graph.ttl" + + # -- Working Graph + graph = Graph() + graph.parse("starting-graph.ttl") + + # -- Extraction + #graph, _ = applyInferStep(uuidStr, graph, 'preprocessing') + #graph, _ = applyInferStep(uuidStr, graph, 'net_extension') + graph, finalInferResult = applyInferStep(uuidStr, graph, 'generation_dga_patch') + # -- Write result + factoidPath = uuidStr+'_factoid.ttl' + with open(factoidPath, 'w') as outfile: + outfile.write(finalInferResult) + outfile.close() diff --git a/tools/shacl-1.3.2/LICENSE b/tools/shacl-1.3.2/LICENSE new file mode 100644 index 0000000000000000000000000000000000000000..c0ee81299bd368b4c38a7947d1651a1e32348313 --- /dev/null +++ b/tools/shacl-1.3.2/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/tools/shacl-1.3.2/README.md b/tools/shacl-1.3.2/README.md new file mode 100644 index 0000000000000000000000000000000000000000..0f687996ca7e3b0da3dc60aeef8a832e7671735c --- /dev/null +++ b/tools/shacl-1.3.2/README.md @@ -0,0 +1,76 @@ +# TopBraid SHACL API + +**An open source implementation of the W3C Shapes Constraint Language (SHACL) based on Apache Jena.** + +Contact: Holger Knublauch (holger@topquadrant.com) + +Can be used to perform SHACL constraint checking and rule inferencing in any Jena-based Java application. +This API also serves as a reference implementation of the SHACL spec. + +Coverage: +* [SHACL Core and SHACL-SPARQL validation](https://www.w3.org/TR/shacl/) +* [SHACL Advanced Features (Rules etc)](https://www.w3.org/TR/shacl-af/) +* [SHACL JavaScript Extensions](https://www.w3.org/TR/shacl-js/) +* [SHACL Compact Syntax](https://w3c.github.io/shacl/shacl-compact-syntax/) + +See [SHACL-JS](https://github.com/TopQuadrant/shacl-js) for a pure JavaScript implementation. + +The same code is used in the TopBraid products (currently aligned with the TopBraid 6.3 release). + +Feedback and questions should become GitHub issues or sent to TopBraid Users mailing list: +https://groups.google.com/forum/#!forum/topbraid-users +Please prefix your messages with [SHACL API] + +To get started, look at the class ValidationUtil in +the package org.topbraid.shacl.validation. +There is also an [Example Test Case](../master/src/test/java/org/topbraid/shacl/ValidationExample.java) + +## Application dependency + +Releases are available in the central maven repository: + +``` +<dependency> + <groupId>org.topbraid</groupId> + <artifactId>shacl</artifactId> + <version>*VER*</version> +</dependency> +``` +## Command Line Usage + +Download the latest release from: + +`https://repo1.maven.org/maven2/org/topbraid/shacl/` + +The binary distribution is: + +`https://repo1.maven.org/maven2/org/topbraid/shacl/*VER*/shacl-*VER*-bin.zip`. + +Two command line utilities are included: validate (performs constraint validation) and infer (performs SHACL rule inferencing). + +To use them, set up your environment similar to https://jena.apache.org/documentation/tools/ (note that the SHACL download includes Jena). + +For example, on Windows: + +``` +SET SHACLROOT=C:\Users\Holger\Desktop\shacl-1.0.0-bin +SET PATH=%PATH%;%SHACLROOT%\bin +``` + +As another example, for Linux, add to .bashrc these lines: + +``` +# for shacl +export SHACLROOT=/home/holger/shacl/shacl-1.0.0-bin/shacl-1.0.0/bin +export PATH=$SHACLROOT:$PATH +``` + +Both tools take the following parameters, for example: + +`shaclvalidate.bat -datafile myfile.ttl -shapesfile myshapes.ttl` + +where `-shapesfile` is optional and falls back to using the data graph as shapes graph. + +Currently only Turtle (.ttl) files and SHACL Compact Syntax (.shaclc) files are supported. + +The tools print the validation report or the inferences graph to the output screen. diff --git a/tools/shacl-1.3.2/bin/shaclinfer.bat b/tools/shacl-1.3.2/bin/shaclinfer.bat new file mode 100755 index 0000000000000000000000000000000000000000..344801d4db7212c0432bf6e4f617896b9b9dce2c --- /dev/null +++ b/tools/shacl-1.3.2/bin/shaclinfer.bat @@ -0,0 +1,18 @@ +@echo off +@rem Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0 + +if "%SHACLROOT%" == "" goto :rootNotSet +set SHACL_HOME=%SHACLROOT% +:rootNotSet + +if NOT "%SHACL_HOME%" == "" goto :okHome +echo SHACL_HOME not set +exit /B + +:okHome +set SHACL_CP=%SHACL_HOME%\lib\*; +set LOGGING=file:%SHACL_HOME%/log4j.properties + +@rem JVM_ARGS comes from the environment. +java %JVM_ARGS% -Dlog4j.configuration="%LOGGING%" -cp "%SHACL_CP%" org.topbraid.shacl.tools.Infer %* +exit /B diff --git a/tools/shacl-1.3.2/bin/shaclinfer.sh b/tools/shacl-1.3.2/bin/shaclinfer.sh new file mode 100755 index 0000000000000000000000000000000000000000..f107dd7a5a5ff286fd365d8bc8786bf1d35f3a88 --- /dev/null +++ b/tools/shacl-1.3.2/bin/shaclinfer.sh @@ -0,0 +1,89 @@ +#!/bin/sh +## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0 + +resolveLink() { + local NAME=$1 + + if [ -L "$NAME" ]; then + case "$OSTYPE" in + darwin*|bsd*) + # BSD style readlink behaves differently to GNU readlink + # Have to manually follow links + while [ -L "$NAME" ]; do + NAME=$( cd $NAME && pwd -P ) ; + done + ;; + *) + # Assuming standard GNU readlink with -f for + # canonicalize and follow + NAME=$(readlink -f "$NAME") + ;; + esac + fi + + echo "$NAME" +} + +# If SHACL_HOME is empty +if [ -z "$SHACL_HOME" ]; then + SCRIPT="$0" + # Catch common issue: script has been symlinked + if [ -L "$SCRIPT" ]; then + SCRIPT=$(resolveLink "$0") + # If link is relative + case "$SCRIPT" in + /*) + # Already absolute + ;; + *) + # Relative, make absolute + SCRIPT=$( dirname "$0" )/$SCRIPT + ;; + esac + fi + + # Work out root from script location + SHACL_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )" + export SHACL_HOME +fi + +# If SHACL_HOME is a symbolic link need to resolve +if [ -L "${SHACL_HOME}" ]; then + SHACL_HOME=$(resolveLink "$SHACL_HOME") + # If link is relative + case "$SHACL_HOME" in + /*) + # Already absolute + ;; + *) + # Relative, make absolute + SHACL_HOME=$(dirname "$SHACL_HOME") + ;; + esac + export SHACL_HOME +fi + +# ---- Setup +# JVM_ARGS : don't set here but it can be set in the environment. +# Expand SHACL_HOME but literal * +SHACL_CP="$SHACL_HOME"'/lib/*' +SOCKS= +LOGGING="${LOGGING:--Dlog4j.configuration=file:$SHACL_HOME/log4j.properties}" + +# Platform specific fixup +# On CYGWIN convert path and end with a ';' +case "$(uname)" in + CYGWIN*) SHACL_CP="$(cygpath -wp "$SHACL_CP");";; +esac + +# Respect TMPDIR or TMP (windows?) if present +# important for tdbloader spill +if [ -n "$TMPDIR" ] + then + JVM_ARGS="$JVM_ARGS -Djava.io.tmpdir=\"$TMPDIR\"" +elif [ -n "$TMP" ] + then + JVM_ARGS="$JVM_ARGS -Djava.io.tmpdir=\"$TMP\"" +fi + +java $JVM_ARGS $LOGGING -cp "$SHACL_CP" org.topbraid.shacl.tools.Infer "$@" diff --git a/tools/shacl-1.3.2/bin/shaclvalidate.bat b/tools/shacl-1.3.2/bin/shaclvalidate.bat new file mode 100644 index 0000000000000000000000000000000000000000..e7e5bfd5fdb3a6a34507258f002057a4e359b7ba --- /dev/null +++ b/tools/shacl-1.3.2/bin/shaclvalidate.bat @@ -0,0 +1,18 @@ +@echo off +@rem Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0 + +if "%SHACLROOT%" == "" goto :rootNotSet +set SHACL_HOME=%SHACLROOT% +:rootNotSet + +if NOT "%SHACL_HOME%" == "" goto :okHome +echo SHACL_HOME not set +exit /B + +:okHome +set SHACL_CP=%SHACL_HOME%\lib\*; +set LOGGING=file:%SHACL_HOME%/log4j.properties + +@rem JVM_ARGS comes from the environment. +java %JVM_ARGS% -Dlog4j.configuration="%LOGGING%" -cp "%SHACL_CP%" org.topbraid.shacl.tools.Validate %* +exit /B diff --git a/tools/shacl-1.3.2/bin/shaclvalidate.sh b/tools/shacl-1.3.2/bin/shaclvalidate.sh new file mode 100644 index 0000000000000000000000000000000000000000..2bcd3e98e92e01a8aa7372925eef4bcdb168ba27 --- /dev/null +++ b/tools/shacl-1.3.2/bin/shaclvalidate.sh @@ -0,0 +1,89 @@ +#!/bin/sh +## Licensed under the terms of http://www.apache.org/licenses/LICENSE-2.0 + +resolveLink() { + local NAME=$1 + + if [ -L "$NAME" ]; then + case "$OSTYPE" in + darwin*|bsd*) + # BSD style readlink behaves differently to GNU readlink + # Have to manually follow links + while [ -L "$NAME" ]; do + NAME=$( cd $NAME && pwd -P ) ; + done + ;; + *) + # Assuming standard GNU readlink with -f for + # canonicalize and follow + NAME=$(readlink -f "$NAME") + ;; + esac + fi + + echo "$NAME" +} + +# If SHACL_HOME is empty +if [ -z "$SHACL_HOME" ]; then + SCRIPT="$0" + # Catch common issue: script has been symlinked + if [ -L "$SCRIPT" ]; then + SCRIPT=$(resolveLink "$0") + # If link is relative + case "$SCRIPT" in + /*) + # Already absolute + ;; + *) + # Relative, make absolute + SCRIPT=$( dirname "$0" )/$SCRIPT + ;; + esac + fi + + # Work out root from script location + SHACL_HOME="$( cd "$( dirname "$SCRIPT" )/.." && pwd )" + export SHACL_HOME +fi + +# If SHACL_HOME is a symbolic link need to resolve +if [ -L "${SHACL_HOME}" ]; then + SHACL_HOME=$(resolveLink "$SHACL_HOME") + # If link is relative + case "$SHACL_HOME" in + /*) + # Already absolute + ;; + *) + # Relative, make absolute + SHACL_HOME=$(dirname "$SHACL_HOME") + ;; + esac + export SHACL_HOME +fi + +# ---- Setup +# JVM_ARGS : don't set here but it can be set in the environment. +# Expand SHACL_HOME but literal * +SHACL_CP="$SHACL_HOME"'/lib/*' +SOCKS= +LOGGING="${LOGGING:--Dlog4j.configuration=file:$SHACL_HOME/log4j.properties}" + +# Platform specific fixup +# On CYGWIN convert path and end with a ';' +case "$(uname)" in + CYGWIN*) SHACL_CP="$(cygpath -wp "$SHACL_CP");";; +esac + +# Respect TMPDIR or TMP (windows?) if present +# important for tdbloader spill +if [ -n "$TMPDIR" ] + then + JVM_ARGS="$JVM_ARGS -Djava.io.tmpdir=\"$TMPDIR\"" +elif [ -n "$TMP" ] + then + JVM_ARGS="$JVM_ARGS -Djava.io.tmpdir=\"$TMP\"" +fi + +java $JVM_ARGS $LOGGING -cp "$SHACL_CP" org.topbraid.shacl.tools.Validate "$@" diff --git a/tools/shacl-1.3.2/lib/antlr4-runtime-4.5.3.jar b/tools/shacl-1.3.2/lib/antlr4-runtime-4.5.3.jar new file mode 100644 index 0000000000000000000000000000000000000000..44353757ebdad9d7f594045118143536e8e5691a Binary files /dev/null and b/tools/shacl-1.3.2/lib/antlr4-runtime-4.5.3.jar differ diff --git a/tools/shacl-1.3.2/lib/collection-0.7.jar b/tools/shacl-1.3.2/lib/collection-0.7.jar new file mode 100644 index 0000000000000000000000000000000000000000..aa5de6b95fa45dd3ca55b4e9441db7f79ce7e8ab Binary files /dev/null and b/tools/shacl-1.3.2/lib/collection-0.7.jar differ diff --git a/tools/shacl-1.3.2/lib/commons-cli-1.4.jar b/tools/shacl-1.3.2/lib/commons-cli-1.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..22deb3089e2f79a983406bd13a75a3e6238afdcf Binary files /dev/null and b/tools/shacl-1.3.2/lib/commons-cli-1.4.jar differ diff --git a/tools/shacl-1.3.2/lib/commons-codec-1.13.jar b/tools/shacl-1.3.2/lib/commons-codec-1.13.jar new file mode 100644 index 0000000000000000000000000000000000000000..bf6ccb385d5f6cfc0930565fc88a049544cd7cd4 Binary files /dev/null and b/tools/shacl-1.3.2/lib/commons-codec-1.13.jar differ diff --git a/tools/shacl-1.3.2/lib/commons-compress-1.19.jar b/tools/shacl-1.3.2/lib/commons-compress-1.19.jar new file mode 100644 index 0000000000000000000000000000000000000000..5c9f52a2903d826c5f69ab8e342eac00d33264aa Binary files /dev/null and b/tools/shacl-1.3.2/lib/commons-compress-1.19.jar differ diff --git a/tools/shacl-1.3.2/lib/commons-csv-1.7.jar b/tools/shacl-1.3.2/lib/commons-csv-1.7.jar new file mode 100644 index 0000000000000000000000000000000000000000..e27c527405c3ec5c68e5f3f5b5ac276ddaeff268 Binary files /dev/null and b/tools/shacl-1.3.2/lib/commons-csv-1.7.jar differ diff --git a/tools/shacl-1.3.2/lib/commons-io-2.6.jar b/tools/shacl-1.3.2/lib/commons-io-2.6.jar new file mode 100644 index 0000000000000000000000000000000000000000..00556b119d45dd85a3c3073b1826916c3c60b9c4 Binary files /dev/null and b/tools/shacl-1.3.2/lib/commons-io-2.6.jar differ diff --git a/tools/shacl-1.3.2/lib/commons-lang3-3.9.jar b/tools/shacl-1.3.2/lib/commons-lang3-3.9.jar new file mode 100644 index 0000000000000000000000000000000000000000..0d896939269b3bf1ce6208a872db1fcabe40e0df Binary files /dev/null and b/tools/shacl-1.3.2/lib/commons-lang3-3.9.jar differ diff --git a/tools/shacl-1.3.2/lib/httpclient-4.5.10.jar b/tools/shacl-1.3.2/lib/httpclient-4.5.10.jar new file mode 100644 index 0000000000000000000000000000000000000000..d0c7821c82a3d7a3a9566fee9e77d9d90a2ce14d Binary files /dev/null and b/tools/shacl-1.3.2/lib/httpclient-4.5.10.jar differ diff --git a/tools/shacl-1.3.2/lib/httpclient-cache-4.5.10.jar b/tools/shacl-1.3.2/lib/httpclient-cache-4.5.10.jar new file mode 100644 index 0000000000000000000000000000000000000000..2fdb8fcb5538ef13639b478011ac5086f3e3fd85 Binary files /dev/null and b/tools/shacl-1.3.2/lib/httpclient-cache-4.5.10.jar differ diff --git a/tools/shacl-1.3.2/lib/httpcore-4.4.12.jar b/tools/shacl-1.3.2/lib/httpcore-4.4.12.jar new file mode 100644 index 0000000000000000000000000000000000000000..1838672ac35d3af009a62e0d94af7c61c4d08952 Binary files /dev/null and b/tools/shacl-1.3.2/lib/httpcore-4.4.12.jar differ diff --git a/tools/shacl-1.3.2/lib/jackson-annotations-2.9.10.jar b/tools/shacl-1.3.2/lib/jackson-annotations-2.9.10.jar new file mode 100644 index 0000000000000000000000000000000000000000..de054c66b25e559d868336a9ca85c1ce663673b1 Binary files /dev/null and b/tools/shacl-1.3.2/lib/jackson-annotations-2.9.10.jar differ diff --git a/tools/shacl-1.3.2/lib/jackson-core-2.9.10.jar b/tools/shacl-1.3.2/lib/jackson-core-2.9.10.jar new file mode 100644 index 0000000000000000000000000000000000000000..1b5e87ccc0adde69fc1499539a29e87a0f416832 Binary files /dev/null and b/tools/shacl-1.3.2/lib/jackson-core-2.9.10.jar differ diff --git a/tools/shacl-1.3.2/lib/jackson-databind-2.9.10.jar b/tools/shacl-1.3.2/lib/jackson-databind-2.9.10.jar new file mode 100644 index 0000000000000000000000000000000000000000..2b71c3afb24e9d75fcc9758657efbd7ae6a41f31 Binary files /dev/null and b/tools/shacl-1.3.2/lib/jackson-databind-2.9.10.jar differ diff --git a/tools/shacl-1.3.2/lib/jcl-over-slf4j-1.7.26.jar b/tools/shacl-1.3.2/lib/jcl-over-slf4j-1.7.26.jar new file mode 100644 index 0000000000000000000000000000000000000000..b060a0db4b0f7102b8039cea84d3cf09b9af5b8b Binary files /dev/null and b/tools/shacl-1.3.2/lib/jcl-over-slf4j-1.7.26.jar differ diff --git a/tools/shacl-1.3.2/lib/jena-arq-3.13.1.jar b/tools/shacl-1.3.2/lib/jena-arq-3.13.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..22746289c25060f28072345da58fb0a056544cce Binary files /dev/null and b/tools/shacl-1.3.2/lib/jena-arq-3.13.1.jar differ diff --git a/tools/shacl-1.3.2/lib/jena-base-3.13.1.jar b/tools/shacl-1.3.2/lib/jena-base-3.13.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..56d6133ecf3eb3439e01da5ec4608acd3b50818c Binary files /dev/null and b/tools/shacl-1.3.2/lib/jena-base-3.13.1.jar differ diff --git a/tools/shacl-1.3.2/lib/jena-core-3.13.1.jar b/tools/shacl-1.3.2/lib/jena-core-3.13.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..5a99d5b5193853530eab4b25813bb7be6c79a2a2 Binary files /dev/null and b/tools/shacl-1.3.2/lib/jena-core-3.13.1.jar differ diff --git a/tools/shacl-1.3.2/lib/jena-iri-3.13.1.jar b/tools/shacl-1.3.2/lib/jena-iri-3.13.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..3ff189f5f5f03944ce75f06546ad0b87af872707 Binary files /dev/null and b/tools/shacl-1.3.2/lib/jena-iri-3.13.1.jar differ diff --git a/tools/shacl-1.3.2/lib/jena-shaded-guava-3.13.1.jar b/tools/shacl-1.3.2/lib/jena-shaded-guava-3.13.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..42b5dadde4f23765899a335974ac550bca6bc8f0 Binary files /dev/null and b/tools/shacl-1.3.2/lib/jena-shaded-guava-3.13.1.jar differ diff --git a/tools/shacl-1.3.2/lib/jsonld-java-0.12.5.jar b/tools/shacl-1.3.2/lib/jsonld-java-0.12.5.jar new file mode 100644 index 0000000000000000000000000000000000000000..3c57c0b98f5d9d95d43492373acc71405280a4a5 Binary files /dev/null and b/tools/shacl-1.3.2/lib/jsonld-java-0.12.5.jar differ diff --git a/tools/shacl-1.3.2/lib/libthrift-0.12.0.jar b/tools/shacl-1.3.2/lib/libthrift-0.12.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..f5f0446c73752a1e373d16cedd1ff42badd13aae Binary files /dev/null and b/tools/shacl-1.3.2/lib/libthrift-0.12.0.jar differ diff --git a/tools/shacl-1.3.2/lib/shacl-1.3.2.jar b/tools/shacl-1.3.2/lib/shacl-1.3.2.jar new file mode 100644 index 0000000000000000000000000000000000000000..ca17efcdf1848f5a624c4ee364c50f44e324bfc0 Binary files /dev/null and b/tools/shacl-1.3.2/lib/shacl-1.3.2.jar differ diff --git a/tools/shacl-1.3.2/lib/slf4j-api-1.7.26.jar b/tools/shacl-1.3.2/lib/slf4j-api-1.7.26.jar new file mode 100644 index 0000000000000000000000000000000000000000..d2f27aceabc93c899bc4a39ba393aa74ec41d7b9 Binary files /dev/null and b/tools/shacl-1.3.2/lib/slf4j-api-1.7.26.jar differ diff --git a/tools/shacl-1.3.2/log4j.properties b/tools/shacl-1.3.2/log4j.properties new file mode 100644 index 0000000000000000000000000000000000000000..0d7f9720d4b99fdd9ed40f424ae3c1990fb04709 --- /dev/null +++ b/tools/shacl-1.3.2/log4j.properties @@ -0,0 +1,13 @@ +log4j.rootLogger=INFO, stdlog + +log4j.appender.stdlog=org.apache.log4j.ConsoleAppender +log4j.appender.stdlog.target=System.err +log4j.appender.stdlog.layout=org.apache.log4j.PatternLayout +log4j.appender.stdlog.layout.ConversionPattern=%d{HH:mm:ss} %-5p %-20c{1} :: %m%n + +## Everything else in Jena +log4j.logger.org.apache.jena=INFO + +## Execution logging +log4j.logger.org.apache.jena.arq.info=INFO +log4j.logger.org.apache.jena.arq.exec=INFO diff --git a/tools/shacl-1.3.2/test-shacl-construct.shapes.ttl b/tools/shacl-1.3.2/test-shacl-construct.shapes.ttl new file mode 100644 index 0000000000000000000000000000000000000000..178b12463c159d1737e75be6c157265ef3ff75f2 --- /dev/null +++ b/tools/shacl-1.3.2/test-shacl-construct.shapes.ttl @@ -0,0 +1,38 @@ +# baseURI: http://unsel.unl-rdf.org/test-shacl-construct +# imports: http://datashapes.org/dash + +@prefix : <http://unsel.unl-rdf.org/test-shacl-construct#> . +@prefix dash: <http://datashapes.org/dash#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix sh: <http://www.w3.org/ns/shacl#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . + +<http://unsel.unl-rdf.org/test-shacl-construct> + rdf:type owl:Ontology ; + owl:imports <http://datashapes.org/dash> ; + owl:versionInfo "Created with TopBraid Composer" ; +. +:add-comment + rdf:type owl:Class ; + rdf:type sh:NodeShape ; + sh:rule :add-comment-Rule_1 ; +. +:add-comment-Rule_1 + rdf:type sh:SPARQLRule ; + sh:construct """PREFIX owl: <http://www.w3.org/2002/07/owl#> +PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> +PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> + +CONSTRUCT { + ?this rdfs:comment \"Execution de la regle OK\" +} +WHERE { +?this rdfs:label \"test\" +}""" ; +. +:test-instance + rdf:type :add-comment ; + rdfs:label "test" ; +.