├── .github ├── pull_request_template.md └── workflows │ ├── auto-publish-shacl12-core.yml │ └── auto-publish-shacl12-sparql.yml ├── .gitignore ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── admin ├── agenda-2025-01-20 ├── agenda-2025-02-03 └── agenda-2025-02-10.md ├── data-shapes-test-suite ├── .gitignore ├── .project ├── README.md ├── index.html ├── javascripts │ ├── codemirror-compressed.js │ └── scale.fix.js ├── makefile ├── reports │ ├── SHACLEX_EarlReport_SHACL.ttl │ ├── alltests.ttl │ ├── corese-shacl-earl.ttl │ ├── dotnetrdf-shacl-earl.ttl │ ├── earl.ttl │ ├── earlreport.ui.ttlx │ ├── netage-shacl-earl.ttl │ ├── pyshacl-earl.ttl │ ├── rdfunit-shacl-earl.ttl │ ├── shawell_report.ttl │ └── topbraid-shacl-earl.ttl ├── stylesheets │ ├── codemirror.css │ ├── pygment_trac.css │ └── styles.css └── tests │ ├── core │ ├── complex │ │ ├── manifest.ttl │ │ ├── personexample.ttl │ │ ├── shacl-shacl-data-shapes.ttl │ │ └── shacl-shacl.ttl │ ├── manifest.ttl │ ├── misc │ │ ├── deactivated-001.ttl │ │ ├── deactivated-002.ttl │ │ ├── manifest.ttl │ │ ├── message-001.ttl │ │ ├── severity-001.ttl │ │ └── severity-002.ttl │ ├── node │ │ ├── and-001.ttl │ │ ├── and-002.ttl │ │ ├── class-001.ttl │ │ ├── class-002.ttl │ │ ├── class-003.ttl │ │ ├── closed-001.ttl │ │ ├── closed-002.ttl │ │ ├── datatype-001.ttl │ │ ├── datatype-002.ttl │ │ ├── disjoint-001.ttl │ │ ├── equals-001.ttl │ │ ├── hasValue-001.ttl │ │ ├── in-001.ttl │ │ ├── languageIn-001.ttl │ │ ├── manifest.ttl │ │ ├── maxExclusive-001.ttl │ │ ├── maxInclusive-001.ttl │ │ ├── maxLength-001.ttl │ │ ├── minExclusive-001.ttl │ │ ├── minInclusive-001.ttl │ │ ├── minInclusive-002.ttl │ │ ├── minInclusive-003.ttl │ │ ├── minLength-001.ttl │ │ ├── node-001.ttl │ │ ├── nodeKind-001.ttl │ │ ├── not-001.ttl │ │ ├── not-002.ttl │ │ ├── or-001.ttl │ │ ├── pattern-001.ttl │ │ ├── pattern-002.ttl │ │ ├── qualified-001-data.ttl │ │ ├── qualified-001-shapes.ttl │ │ ├── qualified-001.ttl │ │ ├── xone-001.ttl │ │ ├── xone-duplicate-data.ttl │ │ ├── xone-duplicate-shapes.ttl │ │ └── xone-duplicate.ttl │ ├── path │ │ ├── manifest.ttl │ │ ├── path-alternative-001.ttl │ │ ├── path-complex-001.ttl │ │ ├── path-complex-002-data.ttl │ │ ├── path-complex-002-shapes.ttl │ │ ├── path-complex-002.ttl │ │ ├── path-inverse-001.ttl │ │ ├── path-oneOrMore-001.ttl │ │ ├── path-sequence-001.ttl │ │ ├── path-sequence-002.ttl │ │ ├── path-sequence-duplicate-001.ttl │ │ ├── path-strange-001.ttl │ │ ├── path-strange-002.ttl │ │ ├── path-unused-001-data.ttl │ │ ├── path-unused-001-shapes.ttl │ │ ├── path-unused-001.ttl │ │ ├── path-zeroOrMore-001.ttl │ │ └── path-zeroOrOne-001.ttl │ ├── property │ │ ├── and-001.ttl │ │ ├── class-001.ttl │ │ ├── datatype-001.ttl │ │ ├── datatype-002.ttl │ │ ├── datatype-003.ttl │ │ ├── datatype-ill-formed-data.ttl │ │ ├── datatype-ill-formed-shapes.ttl │ │ ├── datatype-ill-formed.ttl │ │ ├── disjoint-001.ttl │ │ ├── equals-001.ttl │ │ ├── hasValue-001.ttl │ │ ├── in-001.ttl │ │ ├── languageIn-001.ttl │ │ ├── lessThan-001.ttl │ │ ├── lessThan-002.ttl │ │ ├── lessThanOrEquals-001.ttl │ │ ├── manifest.ttl │ │ ├── maxCount-001.ttl │ │ ├── maxCount-002.ttl │ │ ├── maxExclusive-001.ttl │ │ ├── maxInclusive-001.ttl │ │ ├── maxLength-001.ttl │ │ ├── minCount-001.ttl │ │ ├── minCount-002.ttl │ │ ├── minExclusive-001.ttl │ │ ├── minExclusive-002.ttl │ │ ├── minLength-001.ttl │ │ ├── node-001.ttl │ │ ├── node-002.ttl │ │ ├── nodeKind-001.ttl │ │ ├── not-001.ttl │ │ ├── or-001.ttl │ │ ├── or-datatypes-001.ttl │ │ ├── pattern-001.ttl │ │ ├── pattern-002.ttl │ │ ├── property-001.ttl │ │ ├── qualifiedMinCountDisjoint-001.ttl │ │ ├── qualifiedValueShape-001.ttl │ │ ├── qualifiedValueShapesDisjoint-001.ttl │ │ ├── uniqueLang-001.ttl │ │ ├── uniqueLang-002-data.ttl │ │ ├── uniqueLang-002-shapes.ttl │ │ └── uniqueLang-002.ttl │ ├── targets │ │ ├── manifest.ttl │ │ ├── multipleTargets-001.ttl │ │ ├── targetClass-001.ttl │ │ ├── targetClassImplicit-001.ttl │ │ ├── targetNode-001.ttl │ │ ├── targetObjectsOf-001.ttl │ │ ├── targetSubjectsOf-001.ttl │ │ └── targetSubjectsOf-002.ttl │ └── validation-reports │ │ ├── manifest.ttl │ │ ├── shared-data.ttl │ │ ├── shared-shapes.ttl │ │ └── shared.ttl │ ├── manifest.ttl │ └── sparql │ ├── component │ ├── manifest.ttl │ ├── nodeValidator-001.ttl │ ├── optional-001.ttl │ ├── propertyValidator-select-001.ttl │ └── validator-001.ttl │ ├── manifest.ttl │ ├── node │ ├── manifest.ttl │ ├── prefixes-001.ttl │ ├── sparql-001.ttl │ ├── sparql-002.ttl │ └── sparql-003.ttl │ ├── pre-binding │ ├── manifest.ttl │ ├── pre-binding-001.ttl │ ├── pre-binding-002.ttl │ ├── pre-binding-003.ttl │ ├── pre-binding-004.ttl │ ├── pre-binding-005.ttl │ ├── pre-binding-006.ttl │ ├── pre-binding-007.ttl │ ├── shapesGraph-001.ttl │ ├── unsupported-sparql-001.ttl │ ├── unsupported-sparql-002.ttl │ ├── unsupported-sparql-003.ttl │ ├── unsupported-sparql-004.ttl │ ├── unsupported-sparql-005.ttl │ └── unsupported-sparql-006.ttl │ └── property │ ├── manifest.ttl │ └── sparql-001.ttl ├── data-shapes-ucr ├── ECHIDNA ├── index.html ├── js │ └── organictabs.jquery.js └── under construction │ ├── Overview.html │ ├── Overview_new.html │ ├── codestyle.txt │ ├── http _www.w3.org_TR_2013_NOTE-prov-sem-20130430_-Dateien │ └── viewsource.css │ ├── http _www.w3.org_TR_2013_NOTE-prov-sem-20130430_.htm │ ├── index.html │ ├── index21-4.html │ ├── indexReorg.html │ ├── index_215.html │ ├── index_dump24_9.html │ ├── index_dump29_6.html │ ├── index_dump4_6.html │ ├── indextabs.html │ ├── storiesUCs.html │ ├── tabtest.html │ └── ucusr.html ├── shacl-abstract-syntax └── index.html ├── shacl-af └── index.html ├── shacl-compact-syntax ├── SHACLC.g4 ├── index.html └── tests │ └── valid │ ├── array-in.shaclc │ ├── array-in.ttl │ ├── basic-shape-iri.shaclc │ ├── basic-shape-iri.ttl │ ├── basic-shape-with-target.shaclc │ ├── basic-shape-with-target.ttl │ ├── basic-shape-with-targets.shaclc │ ├── basic-shape-with-targets.ttl │ ├── basic-shape.shaclc │ ├── basic-shape.ttl │ ├── class.shaclc │ ├── class.ttl │ ├── comment.shaclc │ ├── comment.ttl │ ├── complex1.shaclc │ ├── complex1.ttl │ ├── complex2.shaclc │ ├── complex2.ttl │ ├── count-0-1.shaclc │ ├── count-0-1.ttl │ ├── count-0-unlimited.shaclc │ ├── count-0-unlimited.ttl │ ├── count-1-2.shaclc │ ├── count-1-2.ttl │ ├── count-1-unlimited.shaclc │ ├── count-1-unlimited.ttl │ ├── datatype.shaclc │ ├── datatype.ttl │ ├── directives.shaclc │ ├── directives.ttl │ ├── empty.shaclc │ ├── empty.ttl │ ├── nestedShape.shaclc │ ├── nestedShape.ttl │ ├── node-or-2.shaclc │ ├── node-or-2.ttl │ ├── node-or-3-not.shaclc │ ├── node-or-3-not.ttl │ ├── nodeKind.shaclc │ ├── nodeKind.ttl │ ├── path-alternative.shaclc │ ├── path-alternative.ttl │ ├── path-complex.shaclc │ ├── path-complex.ttl │ ├── path-inverse.shaclc │ ├── path-inverse.ttl │ ├── path-oneOrMore.shaclc │ ├── path-oneOrMore.ttl │ ├── path-sequence.shaclc │ ├── path-sequence.ttl │ ├── path-zeroOrMore.shaclc │ ├── path-zeroOrMore.ttl │ ├── path-zeroOrOne.shaclc │ ├── path-zeroOrOne.ttl │ ├── property-empty.shaclc │ ├── property-empty.ttl │ ├── property-not.shaclc │ ├── property-not.ttl │ ├── property-or-2.shaclc │ ├── property-or-2.ttl │ ├── property-or-3.shaclc │ ├── property-or-3.ttl │ ├── shapeRef.shaclc │ └── shapeRef.ttl ├── shacl-js └── index.html ├── shacl-jsonld-context ├── discussion.md ├── examples │ ├── jsonld-examples.ld.json │ └── jsonld-examples.ttl └── shacl.context.ld.json ├── shacl ├── ECHIDNA ├── images │ ├── Class-Diagram-Arrows.png │ ├── SHACL-Validation-Process.png │ └── shacl-class-metamodel.png ├── index.html ├── lib │ └── swdoc │ │ └── css │ │ └── swdoc.css ├── shacl-shacl.ttl └── shacl.ttl ├── shacl12-core ├── images │ ├── Class-Diagram-Arrows.png │ └── SHACL-Validation-Process.png └── index.html ├── shacl12-inf-rules ├── .prettierrc └── index.html ├── shacl12-node-expr ├── .prettierrc └── index.html ├── shacl12-shacl-shacl └── index.html ├── shacl12-sparql └── index.html ├── shacl12-test-suite ├── README.md └── tests │ ├── core │ ├── complex │ │ ├── manifest.ttl │ │ ├── personexample.ttl │ │ ├── shacl-shacl-data-shapes.ttl │ │ └── shacl-shacl.ttl │ ├── manifest.ttl │ ├── misc │ │ ├── deactivated-001.ttl │ │ ├── deactivated-002.ttl │ │ ├── manifest.ttl │ │ ├── message-001.ttl │ │ ├── severity-001.ttl │ │ └── severity-002.ttl │ ├── node │ │ ├── and-001.ttl │ │ ├── and-002.ttl │ │ ├── class-001.ttl │ │ ├── class-002.ttl │ │ ├── class-003.ttl │ │ ├── closed-001.ttl │ │ ├── closed-002.ttl │ │ ├── datatype-001.ttl │ │ ├── datatype-002.ttl │ │ ├── disjoint-001.ttl │ │ ├── equals-001.ttl │ │ ├── expression-001.ttl │ │ ├── hasValue-001.ttl │ │ ├── in-001.ttl │ │ ├── languageIn-001.ttl │ │ ├── manifest.ttl │ │ ├── maxExclusive-001.ttl │ │ ├── maxInclusive-001.ttl │ │ ├── maxLength-001.ttl │ │ ├── minExclusive-001.ttl │ │ ├── minInclusive-001.ttl │ │ ├── minInclusive-002.ttl │ │ ├── minInclusive-003.ttl │ │ ├── minLength-001.ttl │ │ ├── node-001.ttl │ │ ├── nodeKind-001.ttl │ │ ├── not-001.ttl │ │ ├── not-002.ttl │ │ ├── or-001.ttl │ │ ├── pattern-001.ttl │ │ ├── pattern-002.ttl │ │ ├── qualified-001-data.ttl │ │ ├── qualified-001-shapes.ttl │ │ ├── qualified-001.ttl │ │ ├── xone-001.ttl │ │ ├── xone-duplicate-data.ttl │ │ ├── xone-duplicate-shapes.ttl │ │ └── xone-duplicate.ttl │ ├── path │ │ ├── manifest.ttl │ │ ├── path-alternative-001.ttl │ │ ├── path-complex-001.ttl │ │ ├── path-complex-002-data.ttl │ │ ├── path-complex-002-shapes.ttl │ │ ├── path-complex-002.ttl │ │ ├── path-inverse-001.ttl │ │ ├── path-oneOrMore-001.ttl │ │ ├── path-sequence-001.ttl │ │ ├── path-sequence-002.ttl │ │ ├── path-sequence-duplicate-001.ttl │ │ ├── path-strange-001.ttl │ │ ├── path-strange-002.ttl │ │ ├── path-unused-001-data.ttl │ │ ├── path-unused-001-shapes.ttl │ │ ├── path-unused-001.ttl │ │ ├── path-zeroOrMore-001.ttl │ │ └── path-zeroOrOne-001.ttl │ ├── property │ │ ├── and-001.ttl │ │ ├── class-001.ttl │ │ ├── datatype-001.ttl │ │ ├── datatype-002.ttl │ │ ├── datatype-003.ttl │ │ ├── datatype-ill-formed-data.ttl │ │ ├── datatype-ill-formed-shapes.ttl │ │ ├── datatype-ill-formed.ttl │ │ ├── disjoint-001.ttl │ │ ├── equals-001.ttl │ │ ├── hasValue-001.ttl │ │ ├── in-001.ttl │ │ ├── languageIn-001.ttl │ │ ├── lessThan-001.ttl │ │ ├── lessThan-002.ttl │ │ ├── lessThanOrEquals-001.ttl │ │ ├── manifest.ttl │ │ ├── maxCount-001.ttl │ │ ├── maxCount-002.ttl │ │ ├── maxExclusive-001.ttl │ │ ├── maxInclusive-001.ttl │ │ ├── maxLength-001.ttl │ │ ├── minCount-001.ttl │ │ ├── minCount-002.ttl │ │ ├── minExclusive-001.ttl │ │ ├── minExclusive-002.ttl │ │ ├── minLength-001.ttl │ │ ├── node-001.ttl │ │ ├── node-002.ttl │ │ ├── nodeKind-001.ttl │ │ ├── not-001.ttl │ │ ├── or-001.ttl │ │ ├── or-datatypes-001.ttl │ │ ├── pattern-001.ttl │ │ ├── pattern-002.ttl │ │ ├── property-001.ttl │ │ ├── qualifiedMinCountDisjoint-001.ttl │ │ ├── qualifiedValueShape-001.ttl │ │ ├── qualifiedValueShapesDisjoint-001.ttl │ │ ├── singleLine-001.ttl │ │ ├── uniqueLang-001.ttl │ │ ├── uniqueLang-002-data.ttl │ │ ├── uniqueLang-002-shapes.ttl │ │ └── uniqueLang-002.ttl │ ├── targets │ │ ├── manifest.ttl │ │ ├── multipleTargets-001.ttl │ │ ├── targetClass-001.ttl │ │ ├── targetClassImplicit-001.ttl │ │ ├── targetClassImplicit-002.ttl │ │ ├── targetNode-001.ttl │ │ ├── targetObjectsOf-001.ttl │ │ ├── targetSubjectsOf-001.ttl │ │ └── targetSubjectsOf-002.ttl │ └── validation-reports │ │ ├── manifest.ttl │ │ ├── shared-data.ttl │ │ ├── shared-shapes.ttl │ │ └── shared.ttl │ ├── manifest.ttl │ └── sparql │ ├── component │ ├── manifest.ttl │ ├── nodeValidator-001.ttl │ ├── optional-001.ttl │ ├── propertyValidator-select-001.ttl │ └── validator-001.ttl │ ├── manifest.ttl │ ├── node │ ├── manifest.ttl │ ├── prefixes-001.ttl │ ├── sparql-001.ttl │ ├── sparql-002.ttl │ └── sparql-003.ttl │ ├── pre-binding │ ├── manifest.ttl │ ├── pre-binding-001.ttl │ ├── pre-binding-002.ttl │ ├── pre-binding-003.ttl │ ├── pre-binding-004.ttl │ ├── pre-binding-005.ttl │ ├── pre-binding-006.ttl │ ├── pre-binding-007.ttl │ ├── shapesGraph-001.ttl │ ├── unsupported-sparql-001.ttl │ ├── unsupported-sparql-002.ttl │ ├── unsupported-sparql-003.ttl │ ├── unsupported-sparql-004.ttl │ ├── unsupported-sparql-005.ttl │ └── unsupported-sparql-006.ttl │ ├── property │ ├── manifest.ttl │ ├── property-select-001.ttl │ ├── property-sparqlExpr-001.ttl │ └── sparql-001.ttl │ └── targets │ ├── manifest.ttl │ └── targetNode-select-001.ttl ├── shacl12-vocabularies ├── shacl-shacl.ttl └── shacl.ttl ├── unmaintained ├── data-shapes-primer │ ├── images │ │ ├── computeArea-function.png │ │ ├── primer-images.pptx │ │ └── square-class-diagram.png │ ├── index.html │ ├── issue.ttl │ ├── ldom-primer.html │ ├── ldomsquare.ldom.ttl │ ├── primer.md │ ├── shacl.shex │ ├── shacl.ttl │ └── templates.html ├── data-shapes-shexc │ ├── index.html │ └── local.css ├── semantics │ ├── .project │ ├── Axiomatic.html │ ├── SPARQL.html │ ├── html-handmade-images │ │ ├── inference-inverse-rule.png │ │ ├── inference-oneof-rule.png │ │ ├── inference-rules.png │ │ ├── inference-simple-schema.png │ │ ├── rule-choice.png │ │ ├── rule-disj.png │ │ ├── rule-empty.png │ │ ├── rule-group.png │ │ └── rule-triple-constraint.png │ ├── img1.png │ ├── img3.png │ ├── img4.png │ ├── img5.png │ ├── img6.png │ ├── img7.png │ ├── img8.png │ ├── img9.png │ ├── index.html │ ├── local.css │ └── parse.rq └── shacl-abstract-syntax │ ├── index.html │ ├── local.css │ └── shex-to-shacl.html ├── w3c-no-bars.svg └── w3c.json /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | 10 | 11 | Closes #{ISSUE_NUMBER} 12 | 13 | * [See this document rendered online here](https://raw.githack.com/w3c/data-shapes/{BRANCH_NAME}/{FOLDER}/index.html) 14 | -------------------------------------------------------------------------------- /.github/workflows/auto-publish-shacl12-core.yml: -------------------------------------------------------------------------------- 1 | # Autopublish configuration for shacl12-core 2 | name: CI (shacl12-core) 3 | on: 4 | push: 5 | branches: [gh-pages] 6 | paths: ["shacl12-core/**"] 7 | 8 | jobs: 9 | main: 10 | name: Build, Validate and Deploy 11 | runs-on: ubuntu-latest 12 | permissions: 13 | contents: write 14 | steps: 15 | - uses: actions/checkout@v4 16 | - uses: w3c/spec-prod@v2 17 | with: 18 | TOOLCHAIN: respec 19 | SOURCE: shacl12-core/index.html 20 | W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN }} 21 | W3C_WG_DECISION_URL: "https://lists.w3.org/Archives/Public/public-shacl/2025May/0026.html" 22 | W3C_BUILD_OVERRIDE: | 23 | specStatus: WD 24 | shortName: shacl12-core 25 | -------------------------------------------------------------------------------- /.github/workflows/auto-publish-shacl12-sparql.yml: -------------------------------------------------------------------------------- 1 | # Autopublish configuration for shacl12-sparql 2 | name: CI (shacl12-sparql) 3 | on: 4 | push: 5 | branches: [gh-pages] 6 | paths: ["shacl12-sparql/**"] 7 | 8 | jobs: 9 | main: 10 | name: Build, Validate and Deploy 11 | runs-on: ubuntu-latest 12 | permissions: 13 | contents: write 14 | steps: 15 | - uses: actions/checkout@v4 16 | - uses: w3c/spec-prod@v2 17 | with: 18 | TOOLCHAIN: respec 19 | SOURCE: shacl12-sparql/index.html 20 | W3C_ECHIDNA_TOKEN: ${{ secrets.ECHIDNA_TOKEN }} 21 | W3C_WG_DECISION_URL: "https://lists.w3.org/Archives/Public/public-shacl/2025May/0026.html" 22 | W3C_BUILD_OVERRIDE: | 23 | specStatus: WD 24 | shortName: shacl12-sparql 25 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### JetBrains template 2 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio 3 | 4 | *.iml 5 | 6 | ## Directory-based project format: 7 | .idea/ 8 | # if you remove the above rule, at least ignore the following: 9 | 10 | # User-specific stuff: 11 | # .idea/workspace.xml 12 | # .idea/tasks.xml 13 | # .idea/dictionaries 14 | 15 | # Sensitive or high-churn files: 16 | # .idea/dataSources.ids 17 | # .idea/dataSources.xml 18 | # .idea/sqlDataSources.xml 19 | # .idea/dynamic.xml 20 | # .idea/uiDesigner.xml 21 | 22 | # Gradle: 23 | # .idea/gradle.xml 24 | # .idea/libraries 25 | 26 | # Mongo Explorer plugin: 27 | # .idea/mongoSettings.xml 28 | 29 | ## File-based project format: 30 | *.ipr 31 | *.iws 32 | 33 | ## Plugin-specific files: 34 | 35 | # IntelliJ 36 | /out/ 37 | 38 | # mpeltonen/sbt-idea plugin 39 | .idea_modules/ 40 | 41 | # JIRA plugin 42 | atlassian-ide-plugin.xml 43 | 44 | # Crashlytics plugin (for Android Studio and IntelliJ) 45 | com_crashlytics_export_strings.xml 46 | crashlytics.properties 47 | crashlytics-build.properties 48 | 49 | # Created by .ignore support plugin (hsz.mobi) 50 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Code of Conduct 2 | 3 | All documentation, code and communication under this repository are covered by the [W3C Code of Ethics and Professional Conduct](https://www.w3.org/Consortium/cepc/). 4 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Data Shapes Working Group 2 | 3 | Contributions to this repository are intended to become part of Recommendation-track documents governed by the 4 | [W3C Patent Policy](https://www.w3.org/Consortium/Patent-Policy/) and 5 | [Software and Document License](https://www.w3.org/copyright/software-license/). To make substantive contributions to specifications, you must either participate 6 | in the relevant W3C Working Group or make a non-member patent licensing commitment. 7 | 8 | If you are not the sole contributor to a contribution (pull request), please identify all 9 | contributors in the pull request comment. 10 | 11 | To add a contributor (other than yourself, that's automatic), mark them one per line as follows: 12 | 13 | ``` 14 | +@github_username 15 | ``` 16 | 17 | If you added a contributor by mistake, you can remove them in a comment with: 18 | 19 | ``` 20 | -@github_username 21 | ``` 22 | 23 | If you are making a pull request on behalf of someone else but you had no part in designing the 24 | feature, you can remove yourself with the above syntax. 25 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | All documents in this Repository are licensed by contributors 2 | under the 3 | [W3C Software and Document License](http://www.w3.org/Consortium/Legal/copyright-software). 4 | -------------------------------------------------------------------------------- /admin/agenda-2025-01-20: -------------------------------------------------------------------------------- 1 | Agenda for 20 January, 2025 Telecon 2 | 3 | - Round of member presentations 4 | - Tools (Github, IRC...) 5 | - Charters 6 | - Editors 7 | - Getting issues from the SHACL repository 8 | - Q&A 9 | -------------------------------------------------------------------------------- /admin/agenda-2025-02-03: -------------------------------------------------------------------------------- 1 | Agenda for 3 February, 2025 Telecon 2 | 3 | - Drafts and publications 4 | - Editor nominations (issue #217) 5 | - Q&A 6 | -------------------------------------------------------------------------------- /admin/agenda-2025-02-10.md: -------------------------------------------------------------------------------- 1 | Agenda for 10 February, 2025 Telecon 2 | 3 | 4 | - Spec version / URIs (#224) 5 | - Way of working (see also discussion under #230) 6 | 7 | Proposed items: 8 | - Proposed Resolution: Adopt the working drafts https://github.com/w3c/data-shapes/pull/167 9 | Commit [6450347](https://github.com/w3c/data-shapes/commit/6450347139cadca258d8d4474ff063f62d37c292) 10 | - Processes 11 | - How does the WG make formal resolutions with alternating meeting times? 12 | - What is the necessary review for PR's to get merged? Over what timeframe? 13 | - Scribe rotation (one rotation for each meeting?) 14 | -------------------------------------------------------------------------------- /data-shapes-test-suite/.gitignore: -------------------------------------------------------------------------------- 1 | *.class 2 | *.log 3 | 4 | # sbt specific 5 | .cache/ 6 | .history/ 7 | .lib/ 8 | dist/* 9 | lib_managed/ 10 | src_managed/ 11 | project/boot/ 12 | project/plugins/project/ 13 | 14 | # Scala-IDE specific 15 | .scala_dependencies 16 | .worksheet 17 | -------------------------------------------------------------------------------- /data-shapes-test-suite/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | data-shapes-test-suite 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.xtext.ui.shared.xtextBuilder 10 | 11 | 12 | 13 | 14 | 15 | org.eclipse.xtext.ui.shared.xtextNature 16 | 17 | 18 | -------------------------------------------------------------------------------- /data-shapes-test-suite/README.md: -------------------------------------------------------------------------------- 1 | # SHACL test-suite 2 | 3 | This repository contains the SHACL test-suite. 4 | 5 | The test-suite follows the W3c convention used for Turtle tests. 6 | It consists of a manifest file manifest.ttl which enumerates all the tests. 7 | 8 | The folder "contrib" contains some tests that have been contributed but haven't been edited yet. 9 | 10 | More information: http://w3c.github.io/data-shapes/data-shapes-test-suite/ 11 | 12 | 13 | -------------------------------------------------------------------------------- /data-shapes-test-suite/javascripts/scale.fix.js: -------------------------------------------------------------------------------- 1 | var metas = document.getElementsByTagName('meta'); 2 | var i; 3 | if (navigator.userAgent.match(/iPhone/i)) { 4 | for (i=0; i . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/complex" ; 8 | mf:include ; 9 | mf:include ; 10 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/complex/shacl-shacl.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix xsd: . 4 | @prefix sh: . 5 | @prefix sht: . 6 | 7 | <> a mf:Manifest ; 8 | mf:entries ( 9 | 10 | ) . 11 | 12 | a sht:Validate ; 13 | rdfs:label "frozen eat your own ( eat your own frozen dogfood )" ; 14 | mf:action [ 15 | sht:dataGraph ; 16 | sht:shapesGraph ] ; 17 | mf:result [a sh:ValidationReport ; 18 | sh:conforms "true"^^xsd:boolean ] ; 19 | mf:status sht:approved . 20 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/misc/deactivated-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource 12 | rdf:type rdfs:Resource ; 13 | . 14 | ex:TestShape 15 | rdf:type sh:NodeShape ; 16 | sh:datatype xsd:boolean ; 17 | sh:deactivated "true"^^xsd:boolean ; 18 | sh:property ex:TestShape2 ; 19 | sh:targetNode ex:InvalidResource ; 20 | . 21 | ex:TestShape2 22 | rdf:type sh:PropertyShape ; 23 | sh:path ex:property ; 24 | sh:minCount 1 ; 25 | . 26 | <> 27 | rdf:type mf:Manifest ; 28 | mf:entries ( 29 | 30 | ) ; 31 | . 32 | 33 | rdf:type sht:Validate ; 34 | rdfs:label "Test of sh:deactivated 001" ; 35 | mf:action [ 36 | sht:dataGraph <> ; 37 | sht:shapesGraph <> ; 38 | ] ; 39 | mf:result [ 40 | rdf:type sh:ValidationReport ; 41 | sh:conforms "true"^^xsd:boolean ; 42 | ] ; 43 | mf:status sht:approved ; 44 | . 45 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/misc/deactivated-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:datatype xsd:boolean ; 14 | sh:deactivated "false"^^xsd:boolean ; 15 | sh:targetNode 32 ; 16 | . 17 | <> 18 | rdf:type mf:Manifest ; 19 | mf:entries ( 20 | 21 | ) ; 22 | . 23 | 24 | rdf:type sht:Validate ; 25 | rdfs:label "Test of sh:deactivated 002" ; 26 | mf:action [ 27 | sht:dataGraph <> ; 28 | sht:shapesGraph <> ; 29 | ] ; 30 | mf:result [ 31 | rdf:type sh:ValidationReport ; 32 | sh:conforms "false"^^xsd:boolean ; 33 | sh:result [ 34 | rdf:type sh:ValidationResult ; 35 | sh:focusNode 32 ; 36 | sh:resultSeverity sh:Violation ; 37 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; 38 | sh:sourceShape ex:TestShape ; 39 | sh:value 32 ; 40 | ] ; 41 | ] ; 42 | mf:status sht:approved ; 43 | . 44 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/misc/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/misc" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/misc/message-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:datatype xsd:integer ; 14 | sh:message "Test message"@en ; 15 | sh:targetNode ex:InvalidNode ; 16 | . 17 | <> 18 | rdf:type mf:Manifest ; 19 | mf:entries ( 20 | 21 | ) ; 22 | . 23 | 24 | rdf:type sht:Validate ; 25 | rdfs:label "Test of custom sh:message 001" ; 26 | rdfs:comment """ 27 | Note: This test verifies that the sh:message is copied into sh:resultMessage. 28 | To pass this test, the test harness needs to preserve all sh:resultMessage triples 29 | that are mentioned in the 'expected' results graph.""" ; 30 | mf:action [ 31 | sht:dataGraph <> ; 32 | sht:shapesGraph <> ; 33 | ] ; 34 | mf:result [ 35 | rdf:type sh:ValidationReport ; 36 | sh:conforms "false"^^xsd:boolean ; 37 | sh:result [ 38 | rdf:type sh:ValidationResult ; 39 | sh:focusNode ex:InvalidNode ; 40 | sh:resultMessage "Test message"@en ; 41 | sh:resultSeverity sh:Violation ; 42 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; 43 | sh:sourceShape ex:TestShape ; 44 | sh:value ex:InvalidNode ; 45 | ] ; 46 | ] ; 47 | mf:status sht:approved ; 48 | . 49 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/misc/severity-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:datatype xsd:integer ; 14 | sh:severity sh:Warning ; 15 | sh:targetNode "Hello" ; 16 | . 17 | <> 18 | rdf:type mf:Manifest ; 19 | mf:entries ( 20 | 21 | ) ; 22 | . 23 | 24 | rdf:type sht:Validate ; 25 | rdfs:label "Test of sh:severity 001" ; 26 | mf:action [ 27 | sht:dataGraph <> ; 28 | sht:shapesGraph <> ; 29 | ] ; 30 | mf:result [ 31 | rdf:type sh:ValidationReport ; 32 | sh:conforms "false"^^xsd:boolean ; 33 | sh:result [ 34 | rdf:type sh:ValidationResult ; 35 | sh:focusNode "Hello" ; 36 | sh:resultSeverity sh:Warning ; 37 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; 38 | sh:sourceShape ex:TestShape ; 39 | sh:value "Hello" ; 40 | ] ; 41 | ] ; 42 | mf:status sht:approved ; 43 | . 44 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/closed-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance1 12 | ex:otherProperty 4 ; 13 | ex:someProperty 3 ; 14 | . 15 | ex:MyShape 16 | rdf:type sh:NodeShape ; 17 | sh:closed "true"^^xsd:boolean ; 18 | sh:ignoredProperties ( 19 | rdf:type 20 | ) ; 21 | sh:property [ 22 | sh:path ex:someProperty ; 23 | ] ; 24 | sh:targetNode ex:InvalidInstance1 ; 25 | sh:targetNode ex:ValidInstance1 ; 26 | . 27 | ex:ValidInstance1 28 | rdf:type ex:SomeClass ; 29 | ex:someProperty 3 ; 30 | . 31 | <> 32 | rdf:type mf:Manifest ; 33 | mf:entries ( 34 | 35 | ) ; 36 | . 37 | 38 | rdf:type sht:Validate ; 39 | rdfs:label "Test of sh:closed at node shape 002" ; 40 | mf:action [ 41 | sht:dataGraph <> ; 42 | sht:shapesGraph <> ; 43 | ] ; 44 | mf:result [ 45 | rdf:type sh:ValidationReport ; 46 | sh:conforms "false"^^xsd:boolean ; 47 | sh:result [ 48 | rdf:type sh:ValidationResult ; 49 | sh:focusNode ex:InvalidInstance1 ; 50 | sh:resultPath ex:otherProperty ; 51 | sh:resultSeverity sh:Violation ; 52 | sh:sourceConstraintComponent sh:ClosedConstraintComponent ; 53 | sh:sourceShape ex:MyShape ; 54 | sh:value 4 ; 55 | ] ; 56 | ] ; 57 | mf:status sht:approved ; 58 | . 59 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/disjoint-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | ex:property ex:InvalidResource1 ; 13 | ex:property ex:ValidResource1 ; 14 | . 15 | ex:TestShape 16 | rdf:type sh:NodeShape ; 17 | rdfs:label "Test shape" ; 18 | sh:disjoint ex:property ; 19 | sh:targetNode ex:InvalidResource1 ; 20 | sh:targetNode ex:ValidResource1 ; 21 | . 22 | ex:ValidResource1 23 | ex:property ex:InvalidResource1 ; 24 | . 25 | <> 26 | rdf:type mf:Manifest ; 27 | mf:entries ( 28 | 29 | ) ; 30 | . 31 | 32 | rdf:type sht:Validate ; 33 | rdfs:label "Test of sh:disjoint at node shape 001" ; 34 | mf:action [ 35 | sht:dataGraph <> ; 36 | sht:shapesGraph <> ; 37 | ] ; 38 | mf:result [ 39 | rdf:type sh:ValidationReport ; 40 | sh:conforms "false"^^xsd:boolean ; 41 | sh:result [ 42 | rdf:type sh:ValidationResult ; 43 | sh:focusNode ex:InvalidResource1 ; 44 | sh:resultSeverity sh:Violation ; 45 | sh:sourceConstraintComponent sh:DisjointConstraintComponent ; 46 | sh:sourceShape ex:TestShape ; 47 | sh:value ex:InvalidResource1 ; 48 | ] ; 49 | ] ; 50 | mf:status sht:approved ; 51 | . 52 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/hasValue-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | rdfs:label "Test shape" ; 14 | sh:hasValue "Test" ; 15 | sh:targetNode "Invalid String" ; 16 | sh:targetNode "Test" ; 17 | . 18 | <> 19 | rdf:type mf:Manifest ; 20 | mf:entries ( 21 | 22 | ) ; 23 | . 24 | 25 | rdf:type sht:Validate ; 26 | rdfs:label "Test of sh:hasValue at node shape 001" ; 27 | mf:action [ 28 | sht:dataGraph <> ; 29 | sht:shapesGraph <> ; 30 | ] ; 31 | mf:result [ 32 | rdf:type sh:ValidationReport ; 33 | sh:conforms "false"^^xsd:boolean ; 34 | sh:result [ 35 | rdf:type sh:ValidationResult ; 36 | sh:focusNode "Invalid String" ; 37 | sh:resultSeverity sh:Violation ; 38 | sh:sourceConstraintComponent sh:HasValueConstraintComponent ; 39 | sh:sourceShape ex:TestShape ; 40 | # See See https://github.com/w3c/data-shapes/issues/111: don't create sh:value "Invalid String" ; 41 | ] ; 42 | ] ; 43 | mf:status sht:approved ; 44 | . 45 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/in-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:Green 12 | rdf:type ex:TestShape ; 13 | rdfs:label "Green" ; 14 | . 15 | ex:InvalidInstance 16 | rdf:type ex:TestShape ; 17 | rdfs:label "Invalid instance" ; 18 | . 19 | ex:Red 20 | rdf:type ex:TestShape ; 21 | rdfs:label "Red" ; 22 | . 23 | ex:TestShape 24 | rdf:type rdfs:Class ; 25 | rdf:type sh:NodeShape ; 26 | rdfs:label "Test shape" ; 27 | sh:in ( 28 | ex:Green 29 | ex:Red 30 | ex:Yellow 31 | ) ; 32 | . 33 | ex:Yellow 34 | rdf:type ex:TestShape ; 35 | rdfs:label "Yellow" ; 36 | . 37 | <> 38 | rdf:type mf:Manifest ; 39 | mf:entries ( 40 | 41 | ) ; 42 | . 43 | 44 | rdf:type sht:Validate ; 45 | rdfs:label "Test of sh:in at node shape 001" ; 46 | mf:action [ 47 | sht:dataGraph <> ; 48 | sht:shapesGraph <> ; 49 | ] ; 50 | mf:result [ 51 | rdf:type sh:ValidationReport ; 52 | sh:conforms "false"^^xsd:boolean ; 53 | sh:result [ 54 | rdf:type sh:ValidationResult ; 55 | sh:focusNode ex:InvalidInstance ; 56 | sh:resultSeverity sh:Violation ; 57 | sh:sourceConstraintComponent sh:InConstraintComponent ; 58 | sh:sourceShape ex:TestShape ; 59 | sh:value ex:InvalidInstance ; 60 | ] ; 61 | ] ; 62 | mf:status sht:approved ; 63 | . 64 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/node" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | mf:include ; 16 | mf:include ; 17 | mf:include ; 18 | mf:include ; 19 | mf:include ; 20 | mf:include ; 21 | mf:include ; 22 | mf:include ; 23 | mf:include ; 24 | mf:include ; 25 | mf:include ; 26 | mf:include ; 27 | mf:include ; 28 | mf:include ; 29 | mf:include ; 30 | mf:include ; 31 | mf:include ; 32 | mf:include ; 33 | mf:include ; 34 | mf:include ; 35 | mf:include ; 36 | mf:include ; 37 | mf:include ; 38 | mf:include ; 39 | mf:include ; 40 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/minInclusive-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:minInclusive 8 ; 14 | sh:targetNode 7 ; 15 | sh:targetNode 8 ; 16 | sh:targetNode 9 ; 17 | . 18 | <> 19 | rdf:type mf:Manifest ; 20 | mf:entries ( 21 | 22 | ) ; 23 | . 24 | 25 | rdf:type sht:Validate ; 26 | rdfs:label "Test of sh:minInclusive at node shape 001" ; 27 | mf:action [ 28 | sht:dataGraph <> ; 29 | sht:shapesGraph <> ; 30 | ] ; 31 | mf:result [ 32 | rdf:type sh:ValidationReport ; 33 | sh:conforms "false"^^xsd:boolean ; 34 | sh:result [ 35 | rdf:type sh:ValidationResult ; 36 | sh:focusNode 7 ; 37 | sh:resultSeverity sh:Violation ; 38 | sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; 39 | sh:sourceShape ex:TestShape ; 40 | sh:value 7 ; 41 | ] ; 42 | ] ; 43 | mf:status sht:approved ; 44 | . 45 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/node-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance 12 | rdf:type ex:TestClass ; 13 | rdfs:label "Invalid instance" ; 14 | . 15 | ex:TestClass 16 | rdf:type rdfs:Class ; 17 | rdf:type sh:NodeShape ; 18 | rdfs:label "Test class" ; 19 | rdfs:subClassOf rdfs:Resource ; 20 | sh:node [ 21 | sh:class ex:OtherClass ; 22 | ] ; 23 | . 24 | ex:ValidInstance 25 | rdf:type ex:OtherClass ; 26 | rdf:type ex:TestClass ; 27 | rdfs:label "Valid instance" ; 28 | . 29 | <> 30 | rdf:type mf:Manifest ; 31 | mf:entries ( 32 | 33 | ) ; 34 | . 35 | 36 | rdf:type sht:Validate ; 37 | rdfs:label "Test of sh:node at node shape 001" ; 38 | mf:action [ 39 | sht:dataGraph <> ; 40 | sht:shapesGraph <> ; 41 | ] ; 42 | mf:result [ 43 | rdf:type sh:ValidationReport ; 44 | sh:conforms "false"^^xsd:boolean ; 45 | sh:result [ 46 | rdf:type sh:ValidationResult ; 47 | sh:focusNode ex:InvalidInstance ; 48 | sh:resultSeverity sh:Violation ; 49 | sh:sourceConstraintComponent sh:NodeConstraintComponent ; 50 | sh:sourceShape ex:TestClass ; 51 | sh:value ex:InvalidInstance ; 52 | ] ; 53 | ] ; 54 | mf:status sht:approved ; 55 | . 56 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/nodeKind-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:IRITestShape 12 | rdf:type sh:NodeShape ; 13 | sh:nodeKind sh:IRI ; 14 | sh:targetNode ex:John ; 15 | sh:targetNode "true"^^xsd:boolean ; 16 | . 17 | <> 18 | rdf:type mf:Manifest ; 19 | mf:entries ( 20 | 21 | ) ; 22 | . 23 | 24 | rdf:type sht:Validate ; 25 | rdfs:label "Test of sh:nodeKind at node shape 001" ; 26 | mf:action [ 27 | sht:dataGraph <> ; 28 | sht:shapesGraph <> ; 29 | ] ; 30 | mf:result [ 31 | rdf:type sh:ValidationReport ; 32 | sh:conforms "false"^^xsd:boolean ; 33 | sh:result [ 34 | rdf:type sh:ValidationResult ; 35 | sh:focusNode "true"^^xsd:boolean ; 36 | sh:resultSeverity sh:Violation ; 37 | sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; 38 | sh:sourceShape ex:IRITestShape ; 39 | sh:value "true"^^xsd:boolean ; 40 | ] ; 41 | ] ; 42 | mf:status sht:approved ; 43 | . 44 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/not-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance1 12 | ex:property "Some value" ; 13 | . 14 | ex:NotExampleShape 15 | rdf:type sh:NodeShape ; 16 | sh:not [ 17 | rdf:type sh:NodeShape ; 18 | sh:property [ 19 | sh:path ex:property ; 20 | sh:minCount 1 ; 21 | ] ; 22 | ] ; 23 | sh:targetNode ex:InvalidInstance1 ; 24 | sh:targetNode ex:ValidInstance1 ; 25 | . 26 | <> 27 | rdf:type mf:Manifest ; 28 | mf:entries ( 29 | 30 | ) ; 31 | . 32 | 33 | rdf:type sht:Validate ; 34 | rdfs:label "Test of sh:not at node shape 002" ; 35 | mf:action [ 36 | sht:dataGraph <> ; 37 | sht:shapesGraph <> ; 38 | ] ; 39 | mf:result [ 40 | rdf:type sh:ValidationReport ; 41 | sh:conforms "false"^^xsd:boolean ; 42 | sh:result [ 43 | rdf:type sh:ValidationResult ; 44 | sh:focusNode ex:InvalidInstance1 ; 45 | sh:resultSeverity sh:Violation ; 46 | sh:sourceConstraintComponent sh:NotConstraintComponent ; 47 | sh:sourceShape ex:NotExampleShape ; 48 | sh:value ex:InvalidInstance1 ; 49 | ] ; 50 | ] ; 51 | mf:status sht:approved ; 52 | . 53 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/pattern-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:flags "i" ; 14 | sh:pattern "Aldi" ; 15 | sh:targetNode "Aldi" ; 16 | sh:targetNode "Alti" ; 17 | sh:targetNode "aLdI" ; 18 | . 19 | <> 20 | rdf:type mf:Manifest ; 21 | mf:entries ( 22 | 23 | ) ; 24 | . 25 | 26 | rdf:type sht:Validate ; 27 | rdfs:label "Test of sh:pattern at node shape 002" ; 28 | mf:action [ 29 | sht:dataGraph <> ; 30 | sht:shapesGraph <> ; 31 | ] ; 32 | mf:result [ 33 | rdf:type sh:ValidationReport ; 34 | sh:conforms "false"^^xsd:boolean ; 35 | sh:result [ 36 | rdf:type sh:ValidationResult ; 37 | sh:focusNode "Alti" ; 38 | sh:resultSeverity sh:Violation ; 39 | sh:sourceConstraintComponent sh:PatternConstraintComponent ; 40 | sh:sourceShape ex:TestShape ; 41 | sh:value "Alti" ; 42 | ] ; 43 | ] ; 44 | mf:status sht:approved ; 45 | . 46 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/qualified-001-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i a ex:C1 . 4 | ex:j a ex:C1 , ex:C2 . 5 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/qualified-001-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix xsd: . 2 | @prefix sh: . 3 | @prefix ex: . 4 | 5 | ex:s1 a sh:NodeShape ; 6 | sh:targetClass ex:C1 ; 7 | sh:class ex:C2 ; 8 | sh:qualifiedValueShapesDisjoint "1"^^xsd:boolean ; 9 | sh:qualifiedMinCount 5 ; 10 | sh:qualifiedMaxCount 2 . 11 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/qualified-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | @prefix ex: . 10 | 11 | <> a mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | a sht:Validate; 17 | rdfs:label "Test of qualified parameters allowed in node shapes" ; 18 | mf:action [ sht:dataGraph ; 19 | sht:shapesGraph ] ; 20 | mf:result [ rdf:type sh:ValidationReport ; 21 | sh:conforms "false"^^xsd:boolean ; 22 | sh:result [ rdf:type sh:ValidationResult ; 23 | sh:resultSeverity sh:Violation ; 24 | sh:focusNode ex:i ; 25 | sh:value ex:i ; 26 | sh:sourceShape ex:s1 ; 27 | sh:sourceConstraintComponent sh:ClassConstraintComponent ] ] ; 28 | mf:status sht:approved . 29 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/xone-duplicate-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i a ex:C1 . 4 | ex:j a ex:C1 , ex:C2 . 5 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/xone-duplicate-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | 4 | ex:s1 a sh:NodeShape ; 5 | sh:targetClass ex:C1 ; 6 | sh:xone ( ex:s2 ex:s2 ) . 7 | ex:s2 sh:class ex:C2 . 8 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/node/xone-duplicate.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | @prefix ex: . 10 | 11 | <> a mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | a sht:Validate; 17 | rdfs:label "Test of validation report for shape xone-duplicate by property constraints" ; 18 | mf:action [ sht:dataGraph ; 19 | sht:shapesGraph ] ; 20 | mf:result [ rdf:type sh:ValidationReport ; 21 | sh:conforms "false"^^xsd:boolean ; 22 | sh:result [ rdf:type sh:ValidationResult ; 23 | sh:resultSeverity sh:Violation ; 24 | sh:focusNode ex:i ; 25 | sh:value ex:i ; 26 | sh:sourceShape ex:s1 ; 27 | sh:sourceConstraintComponent sh:XoneConstraintComponent ] ; 28 | sh:result [ rdf:type sh:ValidationResult ; 29 | sh:resultSeverity sh:Violation ; 30 | sh:focusNode ex:j ; 31 | sh:value ex:j ; 32 | sh:sourceShape ex:s1 ; 33 | sh:sourceConstraintComponent sh:XoneConstraintComponent ] ] ; 34 | mf:status sht:approved . 35 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/path" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | mf:include ; 16 | mf:include ; 17 | mf:include ; 18 | mf:include ; 19 | mf:include ; 20 | mf:include ; 21 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-complex-002-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:j ex:p ex:i . 4 | 5 | ex:k ex:p ex:j . 6 | 7 | ex:l ex:p ex:j . 8 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-complex-002-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | 4 | ex:s1 a sh:PropertyShape ; 5 | sh:targetNode ex:i ; 6 | sh:path ( _:pinv _:pinv ) ; 7 | sh:class ex:C . 8 | 9 | _:pinv sh:inversePath ex:p . 10 | 11 | ex:s2 a sh:PropertyShape ; 12 | sh:targetNode ex:i ; 13 | sh:path ( [ sh:inversePath ex:p ] [ sh:inversePath ex:p ] ) ; 14 | sh:class ex:C . 15 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-sequence-duplicate-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:A 12 | ex:p1 [ 13 | ex:p2 "value" ; 14 | ] ; 15 | ex:p1 [ 16 | ex:p2 "value" ; 17 | ] ; 18 | . 19 | ex:S 20 | rdf:type sh:NodeShape ; 21 | sh:property ex:SP ; 22 | sh:targetNode ex:A ; 23 | . 24 | ex:SP 25 | rdf:type sh:PropertyShape ; 26 | sh:path ( 27 | ex:p1 28 | ex:p2 29 | ) ; 30 | sh:maxCount 1 ; 31 | sh:nodeKind sh:IRI ; 32 | . 33 | <> 34 | rdf:type mf:Manifest ; 35 | mf:entries ( 36 | 37 | ) ; 38 | . 39 | 40 | rdf:type sht:Validate ; 41 | rdfs:label "Test of path sequence with duplicate 001" ; 42 | mf:action [ 43 | sht:dataGraph <> ; 44 | sht:shapesGraph <> ; 45 | ] ; 46 | mf:result [ 47 | rdf:type sh:ValidationReport ; 48 | sh:conforms "false"^^xsd:boolean ; 49 | sh:result [ 50 | rdf:type sh:ValidationResult ; 51 | sh:focusNode ex:A ; 52 | sh:resultPath ( 53 | ex:p1 54 | ex:p2 55 | ) ; 56 | sh:resultSeverity sh:Violation ; 57 | sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; 58 | sh:sourceShape ex:SP ; 59 | sh:value "value" ; 60 | ] ; 61 | ] ; 62 | mf:status sht:approved ; 63 | . 64 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-strange-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | ex:i a ex:C ; 10 | ex:p ex:ip . 11 | ex:ip ex:q ex:ipq . 12 | ex:ipq a ex:C . 13 | ex:pi ex:p ex:i . 14 | 15 | ex:j a ex:C ; 16 | ex:p ex:jp . 17 | ex:jp ex:q ex:jpq . 18 | 19 | ex:s1 a sh:PropertyShape ; 20 | sh:targetClass ex:C ; 21 | sh:path [ rdf:first ex:p ; rdf:rest [ rdf:first ex:q ; rdf:rest rdf:nil ] ; 22 | sh:inversePath ex:p ] ; 23 | sh:class ex:C . 24 | 25 | <> 26 | rdf:type mf:Manifest ; 27 | mf:entries ( 28 | 29 | ) ; 30 | . 31 | 32 | 33 | rdf:type sht:Validate ; 34 | rdfs:label "Test of strange path 001 two valid paths together" ; 35 | mf:action [ 36 | sht:dataGraph <> ; 37 | sht:shapesGraph <> ; 38 | ] ; 39 | mf:result [ 40 | rdf:type sh:ValidationReport ; 41 | sh:conforms "false"^^xsd:boolean ; 42 | sh:result [ a sh:ValidationResult ; 43 | sh:focusNode ex:j ; 44 | sh:value ex:jpq ; 45 | sh:resultPath ( ex:p ex:q ) ; 46 | sh:resultSeverity sh:Violation ; 47 | sh:sourceConstraintComponent sh:ClassConstraintComponent ; 48 | sh:sourceShape ex:s1 ; 49 | ] ; 50 | ] ; 51 | mf:status sht:approved ; 52 | . 53 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-strange-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | ex:i a ex:C ; 10 | ex:p ex:ip . 11 | ex:ip ex:q ex:ipq . 12 | ex:ipq a ex:C . 13 | ex:pi ex:p ex:i . 14 | 15 | ex:j a ex:C ; 16 | ex:p ex:jp . 17 | ex:jp ex:q ex:jpq . 18 | 19 | ex:s1 a sh:PropertyShape ; 20 | sh:targetClass ex:C ; 21 | sh:path [ rdf:first ex:p ; rdf:rest [ rdf:first ex:q ; rdf:rest rdf:nil ] ; 22 | sh:inversePath ( ex:p ) ] ; 23 | sh:class ex:C . 24 | 25 | <> 26 | rdf:type mf:Manifest ; 27 | mf:entries ( 28 | 29 | ) ; 30 | . 31 | 32 | 33 | rdf:type sht:Validate ; 34 | rdfs:label "Test of strange path 002 valid and invalid paths together" ; 35 | mf:action [ 36 | sht:dataGraph <> ; 37 | sht:shapesGraph <> ; 38 | ] ; 39 | mf:result [ 40 | rdf:type sh:ValidationReport ; 41 | sh:conforms "false"^^xsd:boolean ; 42 | sh:result [ a sh:ValidationResult ; 43 | sh:focusNode ex:j ; 44 | sh:value ex:jpq ; 45 | sh:resultPath ( ex:p ex:q ) ; 46 | sh:resultSeverity sh:Violation ; 47 | sh:sourceConstraintComponent sh:ClassConstraintComponent ; 48 | sh:sourceShape ex:s1 ; 49 | ] ; 50 | ] ; 51 | mf:status sht:approved ; 52 | . 53 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-unused-001-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i a ex:C . 4 | 5 | ex:j a ex:D . 6 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-unused-001-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | 6 | ex:s1 a sh:NodeShape ; 7 | sh:targetNode ex:j, ex:i ; 8 | sh:class ex:C . 9 | 10 | _:p1 sh:inversePath _:p2 . 11 | 12 | _:p2 sh:zeroOrMorePath ( _:p2 ) . 13 | 14 | _:p2 sh:zeroOrOnePath [ rdf:rest rdf:nil ] . 15 | 16 | _:p3 sh:alternativePath ( ex:p ) ; 17 | rdfs:comment "invalid path" . 18 | 19 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-unused-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | <> a mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | a sht:Validate ; 17 | rdfs:label "Test with unused ill-formed path" ; 18 | mf:action [ 19 | sht:dataGraph ; 20 | sht:shapesGraph ] ; 21 | mf:result [ a sh:ValidationReport ; 22 | sh:conforms "false"^^xsd:boolean ; 23 | sh:result [ a sh:ValidationResult ; 24 | sh:focusNode ex:j ; 25 | sh:value ex:j ; 26 | sh:resultSeverity sh:Violation ; 27 | sh:sourceShape ex:s1 ; 28 | sh:sourceConstraintComponent sh:ClassConstraintComponent ] ] ; 29 | mf:status sht:approved . 30 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-zeroOrMore-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | rdf:type rdfs:Resource ; 13 | . 14 | ex:Person2 15 | ex:child ex:Person3 ; 16 | . 17 | ex:TestShape 18 | rdf:type sh:PropertyShape ; 19 | sh:path [ 20 | sh:zeroOrMorePath ex:child ; 21 | ] ; 22 | sh:minCount 2 ; 23 | sh:targetNode ex:InvalidResource1 ; 24 | sh:targetNode ex:ValidResource1 ; 25 | sh:targetNode ex:ValidResource2 ; 26 | . 27 | ex:ValidResource1 28 | ex:child ex:Person1 ; 29 | . 30 | ex:ValidResource2 31 | ex:child ex:Person2 ; 32 | . 33 | <> 34 | rdf:type mf:Manifest ; 35 | mf:entries ( 36 | 37 | ) ; 38 | . 39 | 40 | rdf:type sht:Validate ; 41 | rdfs:label "Test of path sh:zeroOrMorePath 001" ; 42 | mf:action [ 43 | sht:dataGraph <> ; 44 | sht:shapesGraph <> ; 45 | ] ; 46 | mf:result [ 47 | rdf:type sh:ValidationReport ; 48 | sh:conforms "false"^^xsd:boolean ; 49 | sh:result [ 50 | rdf:type sh:ValidationResult ; 51 | sh:focusNode ex:InvalidResource1 ; 52 | sh:resultPath [ 53 | sh:zeroOrMorePath ex:child ; 54 | ] ; 55 | sh:resultSeverity sh:Violation ; 56 | sh:sourceConstraintComponent sh:MinCountConstraintComponent ; 57 | sh:sourceShape ex:TestShape ; 58 | ] ; 59 | ] ; 60 | mf:status sht:approved ; 61 | . 62 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/path/path-zeroOrOne-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | rdf:type rdfs:Resource ; 13 | . 14 | ex:Person2 15 | ex:child ex:Person3 ; 16 | . 17 | ex:TestShape 18 | rdf:type sh:PropertyShape ; 19 | sh:path [ 20 | sh:zeroOrOnePath ex:child ; 21 | ] ; 22 | sh:minCount 2 ; 23 | sh:targetNode ex:InvalidResource1 ; 24 | sh:targetNode ex:ValidResource1 ; 25 | sh:targetNode ex:ValidResource2 ; 26 | . 27 | ex:ValidResource1 28 | ex:child ex:Person1 ; 29 | . 30 | ex:ValidResource2 31 | ex:child ex:Person2 ; 32 | . 33 | <> 34 | rdf:type mf:Manifest ; 35 | mf:entries ( 36 | 37 | ) ; 38 | . 39 | 40 | rdf:type sht:Validate ; 41 | rdfs:label "Test of path sh:zeroOrOnePath 001" ; 42 | mf:action [ 43 | sht:dataGraph <> ; 44 | sht:shapesGraph <> ; 45 | ] ; 46 | mf:result [ 47 | rdf:type sh:ValidationReport ; 48 | sh:conforms "false"^^xsd:boolean ; 49 | sh:result [ 50 | rdf:type sh:ValidationResult ; 51 | sh:focusNode ex:InvalidResource1 ; 52 | sh:resultPath [ 53 | sh:zeroOrOnePath ex:child ; 54 | ] ; 55 | sh:resultSeverity sh:Violation ; 56 | sh:sourceConstraintComponent sh:MinCountConstraintComponent ; 57 | sh:sourceShape ex:TestShape ; 58 | ] ; 59 | ] ; 60 | mf:status sht:approved ; 61 | . 62 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/property/datatype-ill-formed-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix xsd: . 2 | @prefix ex: . 3 | 4 | ex:i ex:p "300"^^xsd:byte . 5 | ex:i ex:p "55"^^xsd:integer . 6 | ex:i ex:p "c"^^xsd:byte . 7 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/property/datatype-ill-formed-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix xsd: . 3 | @prefix ex: . 4 | 5 | ex:s a sh:PropertyShape ; 6 | sh:targetNode ex:i ; 7 | sh:path ex:p ; 8 | sh:datatype xsd:byte . 9 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/property/datatype-ill-formed.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | @prefix ex: . 10 | 11 | <> rdf:type mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | rdf:type sht:Validate; 17 | rdfs:label "Test of validation report for ill-formed literals" ; 18 | mf:action [ sht:dataGraph ; 19 | sht:shapesGraph ] ; 20 | mf:result [ rdf:type sh:ValidationReport ; 21 | sh:conforms "false"^^xsd:boolean ; 22 | sh:result [ rdf:type sh:ValidationResult ; 23 | sh:resultSeverity sh:Violation ; 24 | sh:focusNode ex:i ; 25 | sh:value "300"^^xsd:byte ; 26 | sh:resultPath ex:p ; 27 | sh:sourceShape ex:s ; 28 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ] ; 29 | sh:result [ rdf:type sh:ValidationResult ; 30 | sh:resultSeverity sh:Violation ; 31 | sh:focusNode ex:i ; 32 | sh:value "c"^^xsd:byte ; 33 | sh:resultPath ex:p ; 34 | sh:sourceShape ex:s ; 35 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ] ; 36 | sh:result [ rdf:type sh:ValidationResult ; 37 | sh:resultSeverity sh:Violation ; 38 | sh:focusNode ex:i ; 39 | sh:value "55"^^xsd:integer ; 40 | sh:resultPath ex:p ; 41 | sh:sourceShape ex:s ; 42 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ] ] ; 43 | mf:status sht:approved . 44 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/property/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/property" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | mf:include ; 16 | mf:include ; 17 | mf:include ; 18 | mf:include ; 19 | mf:include ; 20 | mf:include ; 21 | mf:include ; 22 | mf:include ; 23 | mf:include ; 24 | mf:include ; 25 | mf:include ; 26 | mf:include ; 27 | mf:include ; 28 | mf:include ; 29 | mf:include ; 30 | mf:include ; 31 | mf:include ; 32 | mf:include ; 33 | mf:include ; 34 | mf:include ; 35 | mf:include ; 36 | mf:include ; 37 | mf:include ; 38 | mf:include ; 39 | mf:include ; 40 | mf:include ; 41 | mf:include ; 42 | mf:include ; 43 | mf:include ; 44 | mf:include ; 45 | mf:include ; 46 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/property/minCount-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:property [ 14 | sh:path ex:property ; 15 | sh:minCount 0 ; 16 | sh:name "property" ; 17 | ] ; 18 | sh:targetNode ex:ValidResource1 ; 19 | . 20 | ex:ValidResource1 21 | rdf:type rdfs:Resource ; 22 | . 23 | <> 24 | rdf:type mf:Manifest ; 25 | mf:entries ( 26 | 27 | ) ; 28 | . 29 | 30 | rdf:type sht:Validate ; 31 | rdfs:label "Test of sh:minCount at property shape 001" ; 32 | mf:action [ 33 | sht:dataGraph <> ; 34 | sht:shapesGraph <> ; 35 | ] ; 36 | mf:result [ 37 | rdf:type sh:ValidationReport ; 38 | sh:conforms "true"^^xsd:boolean ; 39 | ] ; 40 | mf:status sht:approved ; 41 | . 42 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/property/uniqueLang-002-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i ex:message "HI"@en, "Hi"@en . 4 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/property/uniqueLang-002-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | @prefix xsd: . 4 | 5 | ex:s1 a sh:PropertyShape ; 6 | sh:targetNode ex:i ; 7 | sh:path ex:message ; 8 | sh:uniqueLang "1"^^xsd:boolean . 9 | 10 | # Note that the value above is "1"^^xsd:boolean, which is distinct from "true"^^xsd:boolean. 11 | # Only true is mentioned in the spec, meaning that "1" will not activate the constraint 12 | # and the constraint is being ignored. 13 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/property/uniqueLang-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | <> a mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | a sht:Validate ; 17 | rdfs:label "Test uniqueLang with other boolean literal for true" ; 18 | mf:action [ 19 | sht:dataGraph ; 20 | sht:shapesGraph ] ; 21 | mf:result [ a sh:ValidationReport ; 22 | sh:conforms "true"^^xsd:boolean ] ; 23 | mf:status sht:approved . 24 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/targets/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/targets" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/targets/multipleTargets-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | ex:property1 "Also a value" ; 13 | . 14 | ex:TestShape 15 | rdf:type sh:NodeShape ; 16 | rdfs:label "Test shape" ; 17 | sh:in ( 18 | ex:ValidResource1 19 | ex:ValidResource2 20 | ) ; 21 | sh:targetSubjectsOf ex:property1 ; 22 | sh:targetSubjectsOf ex:property2 ; 23 | . 24 | ex:ValidResource1 25 | ex:property1 "Some value" ; 26 | . 27 | ex:ValidResource2 28 | ex:property2 "Other value" ; 29 | . 30 | <> 31 | rdf:type mf:Manifest ; 32 | mf:entries ( 33 | 34 | ) ; 35 | . 36 | 37 | rdf:type sht:Validate ; 38 | rdfs:label "Test of multiple targets 001" ; 39 | mf:action [ 40 | sht:dataGraph <> ; 41 | sht:shapesGraph <> ; 42 | ] ; 43 | mf:result [ 44 | rdf:type sh:ValidationReport ; 45 | sh:conforms "false"^^xsd:boolean ; 46 | sh:result [ 47 | rdf:type sh:ValidationResult ; 48 | sh:focusNode ex:InvalidResource1 ; 49 | sh:resultSeverity sh:Violation ; 50 | sh:sourceConstraintComponent sh:InConstraintComponent ; 51 | sh:sourceShape ex:TestShape ; 52 | sh:value ex:InvalidResource1 ; 53 | ] ; 54 | ] ; 55 | mf:status sht:approved ; 56 | . 57 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/targets/targetClassImplicit-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance 12 | rdf:type ex:SubClass ; 13 | rdfs:label "Invalid instance" ; 14 | . 15 | ex:SubClass 16 | rdf:type rdfs:Class ; 17 | rdfs:label "Sub class" ; 18 | rdfs:subClassOf ex:SuperClass ; 19 | . 20 | ex:SuperClass 21 | rdf:type rdfs:Class ; 22 | rdf:type sh:NodeShape ; 23 | rdfs:label "Super class" ; 24 | sh:in ( 25 | ex:ValidInstance 26 | ) ; 27 | . 28 | ex:ValidInstance 29 | rdf:type ex:SubClass ; 30 | rdfs:label "Valid instance" ; 31 | . 32 | <> 33 | rdf:type mf:Manifest ; 34 | mf:entries ( 35 | 36 | ) ; 37 | . 38 | 39 | rdf:type sht:Validate ; 40 | rdfs:label "Test of implicit sh:targetClass 001" ; 41 | mf:action [ 42 | sht:dataGraph <> ; 43 | sht:shapesGraph <> ; 44 | ] ; 45 | mf:result [ 46 | rdf:type sh:ValidationReport ; 47 | sh:conforms "false"^^xsd:boolean ; 48 | sh:result [ 49 | rdf:type sh:ValidationResult ; 50 | sh:focusNode ex:InvalidInstance ; 51 | sh:resultSeverity sh:Violation ; 52 | sh:sourceConstraintComponent sh:InConstraintComponent ; 53 | sh:sourceShape ex:SuperClass ; 54 | sh:value ex:InvalidInstance ; 55 | ] ; 56 | ] ; 57 | mf:status sht:approved ; 58 | . 59 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/targets/targetNode-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | rdf:type rdfs:Resource ; 13 | rdfs:label "Invalid resource 1" ; 14 | . 15 | ex:TestShape 16 | rdf:type sh:NodeShape ; 17 | rdfs:label "Test shape" ; 18 | sh:property ex:TestShape-label ; 19 | sh:targetNode ex:InvalidResource1 ; 20 | sh:targetNode ex:ValidResource1 ; 21 | . 22 | ex:TestShape-label 23 | sh:path rdfs:label ; 24 | rdfs:label "label" ; 25 | sh:datatype xsd:string ; 26 | sh:maxCount 0 ; 27 | . 28 | ex:ValidResource1 29 | rdf:type rdfs:Resource ; 30 | . 31 | <> 32 | rdf:type mf:Manifest ; 33 | mf:entries ( 34 | 35 | ) ; 36 | . 37 | 38 | rdf:type sht:Validate ; 39 | rdfs:label "Test of sh:targetNode 001" ; 40 | mf:action [ 41 | sht:dataGraph <> ; 42 | sht:shapesGraph <> ; 43 | ] ; 44 | mf:result [ 45 | rdf:type sh:ValidationReport ; 46 | sh:conforms "false"^^xsd:boolean ; 47 | sh:result [ 48 | rdf:type sh:ValidationResult ; 49 | sh:focusNode ex:InvalidResource1 ; 50 | sh:resultPath rdfs:label ; 51 | sh:resultSeverity sh:Violation ; 52 | sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; 53 | sh:sourceShape ex:TestShape-label ; 54 | ] ; 55 | ] ; 56 | mf:status sht:approved ; 57 | . 58 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/targets/targetSubjectsOf-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance1 12 | ex:myProperty "A" ; 13 | ex:myProperty "B" ; 14 | . 15 | ex:MyClass 16 | rdf:type rdfs:Class ; 17 | . 18 | ex:TestShape 19 | rdf:type sh:NodeShape ; 20 | sh:property ex:TestShape-myProperty ; 21 | sh:targetSubjectsOf ex:myProperty ; 22 | . 23 | ex:TestShape-myProperty 24 | rdf:type sh:PropertyShape ; 25 | sh:path ex:myProperty ; 26 | sh:maxCount 1 ; 27 | . 28 | ex:ValidInstance1 29 | ex:myProperty "A" ; 30 | . 31 | <> 32 | rdf:type mf:Manifest ; 33 | mf:entries ( 34 | 35 | ) ; 36 | . 37 | 38 | rdf:type sht:Validate ; 39 | rdfs:label "Test of sh:targetSubjectsOf 001" ; 40 | mf:action [ 41 | sht:dataGraph <> ; 42 | sht:shapesGraph <> ; 43 | ] ; 44 | mf:result [ 45 | rdf:type sh:ValidationReport ; 46 | sh:conforms "false"^^xsd:boolean ; 47 | sh:result [ 48 | rdf:type sh:ValidationResult ; 49 | sh:focusNode ex:InvalidInstance1 ; 50 | sh:resultPath ex:myProperty ; 51 | sh:resultSeverity sh:Violation ; 52 | sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; 53 | sh:sourceShape ex:TestShape-myProperty ; 54 | ] ; 55 | ] ; 56 | mf:status sht:approved ; 57 | . 58 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/validation-reports/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests for validation reports" ; 8 | mf:include ; 9 | . 10 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/validation-reports/shared-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | ex:i ex:p ex:j . 3 | ex:i ex:q ex:j . 4 | ex:j ex:r ex:k . 5 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/validation-reports/shared-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | 4 | ex:s1 a sh:NodeShape ; 5 | sh:targetNode ex:i ; 6 | sh:property ex:s2 ; 7 | sh:property ex:s3 . 8 | 9 | ex:s2 sh:path ex:p ; 10 | sh:property ex:s4 . 11 | 12 | ex:s3 sh:path ex:q ; 13 | sh:property ex:s4 . 14 | 15 | ex:s4 sh:path ex:r ; 16 | sh:class ex:C . 17 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/core/validation-reports/shared.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | @prefix ex: . 10 | 11 | # This test case is under discussion, as there are different interpretations 12 | # on whether the nested sh:property constraint that is reached twice should 13 | # also be reported twice. 14 | 15 | <> 16 | rdf:type mf:Manifest ; 17 | mf:entries ( 18 | 19 | ) ; 20 | . 21 | 22 | 23 | rdf:type sht:Validate; 24 | rdfs:label "Test of validation report for shape shared by property constraints" ; 25 | mf:action [ 26 | sht:dataGraph ; 27 | sht:shapesGraph 28 | ] ; 29 | mf:result [ 30 | rdf:type sh:ValidationReport ; 31 | sh:conforms "false"^^xsd:boolean ; 32 | sh:result [ 33 | rdf:type sh:ValidationResult ; 34 | sh:resultSeverity sh:Violation ; 35 | sh:focusNode ex:j ; 36 | sh:value ex:k ; 37 | sh:resultPath ex:r ; 38 | sh:sourceShape ex:s4 ; 39 | sh:sourceConstraintComponent sh:ClassConstraintComponent 40 | ] ; 41 | sh:result [ 42 | rdf:type sh:ValidationResult ; 43 | sh:resultSeverity sh:Violation ; 44 | sh:focusNode ex:j ; 45 | sh:value ex:k ; 46 | sh:resultPath ex:r ; 47 | sh:sourceShape ex:s4 ; 48 | sh:sourceConstraintComponent sh:ClassConstraintComponent 49 | ] 50 | ] ; 51 | mf:status sht:approved . 52 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/component/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/component" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | . 12 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/node/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/node" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | . -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/pre-binding/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests for pre-binding" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | mf:include ; 16 | mf:include ; 17 | mf:include ; 18 | mf:include ; 19 | mf:include ; 20 | mf:include ; 21 | mf:include ; 22 | . 23 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/pre-binding/pre-binding-006.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex: 12 | sh:declare [ 13 | sh:prefix "ex" ; 14 | sh:namespace "http://datashapes.org/sh/tests/sparql/pre-binding/pre-binding-006.test#"^^xsd:anyURI ; 15 | ] . 16 | 17 | ex:TestShape 18 | rdf:type sh:NodeShape ; 19 | rdfs:label "Test shape" ; 20 | sh:sparql ex:TestShape-sparql ; 21 | sh:targetNode ex:InvalidResource ; 22 | . 23 | ex:TestShape-sparql 24 | sh:prefixes ex: ; 25 | sh:select """ 26 | SELECT $this 27 | WHERE { 28 | { 29 | SELECT * 30 | WHERE { 31 | FILTER ($this = ex:InvalidResource) . 32 | } 33 | } 34 | }""" ; 35 | . 36 | ex:ValidResource1 37 | rdf:type rdfs:Resource ; 38 | . 39 | <> 40 | rdf:type mf:Manifest ; 41 | mf:entries ( 42 | 43 | ) ; 44 | . 45 | 46 | rdf:type sht:Validate ; 47 | rdfs:label "Test of pre-binding in nested SELECT" ; 48 | mf:action [ 49 | sht:dataGraph <> ; 50 | sht:shapesGraph <> ; 51 | ] ; 52 | mf:result sht:Failure ; 53 | mf:status sht:approved ; 54 | . 55 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported MINUS" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | $this ?x ?any . 32 | MINUS { $this ?x "Value" } 33 | }""" ; 34 | ] . 35 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported VALUES" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | VALUES ?any { true } 32 | }""" ; 33 | ] . 34 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-003.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported SERVICE" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | $this ?x ?any . 32 | SERVICE { 33 | ?a ?b ?c . 34 | } 35 | }""" ; 36 | ] . 37 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-004.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported SELECT" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | $this ?x ?any . 32 | { 33 | SELECT ?other ?b 34 | WHERE { 35 | ?other ?b ?c . 36 | } 37 | } 38 | }""" ; 39 | ] . 40 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/pre-binding/unsupported-sparql-005.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported AS ?prebound" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | BIND (true AS $this) . 32 | }""" ; 33 | ] . 34 | -------------------------------------------------------------------------------- /data-shapes-test-suite/tests/sparql/property/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/property" ; 8 | mf:include ; 9 | . -------------------------------------------------------------------------------- /data-shapes-ucr/ECHIDNA: -------------------------------------------------------------------------------- 1 | index.html?specStatus=WD;shortName=shacl-ucr respec 2 | -------------------------------------------------------------------------------- /shacl-abstract-syntax/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |

As of January 2017 and the resolution to ISSUE-177, the Abstract Syntax is currently unmaintained. 7 | The most recent snapshot can be found here. 8 |

9 | 10 | -------------------------------------------------------------------------------- /shacl-compact-syntax/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | SHACL Compact Syntax 5 | 6 | 7 | 8 |

9 | This Editors Draft is intentionally left blank. 10 | It is intended to overwrite the earlier editor's draft which documented a proposed design. 11 | That proposal did not reach consensus within the Working Group and should not be used. 12 |

13 |

14 | The definition of a SHACL Compact Syntax is being continued by the 15 | SHACL Community Group. 16 |

17 | 18 | 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/array-in.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property in=[ex:Instance1 true "string" 42] . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/array-in.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | sh:in ( ex:Instance1 true "string" 42 ) ; 18 | ] ; 19 | . 20 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/basic-shape-iri.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | shape { 4 | } 5 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/basic-shape-iri.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix xsd: . 7 | 8 | 9 | a owl:Ontology ; 10 | . 11 | 12 | 13 | a sh:NodeShape ; 14 | . 15 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/basic-shape-with-target.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape -> ex:TestClass { 6 | } 7 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/basic-shape-with-target.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:targetClass ex:TestClass ; 16 | . 17 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/basic-shape-with-targets.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape -> ex:TestClass1 ex:TestClass2 { 6 | targetNode=ex:TestNode targetSubjectsOf=ex:subjectProperty targetObjectsOf=ex:objectProperty . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/basic-shape-with-targets.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:targetClass ex:TestClass1, ex:TestClass2 ; 16 | sh:targetNode ex:TestNode ; 17 | sh:targetObjectsOf ex:objectProperty ; 18 | sh:targetSubjectsOf ex:subjectProperty ; 19 | . 20 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/basic-shape.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | } 7 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/basic-shape.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | . 16 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/class.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property ex:TestClass . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/class.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | sh:class ex:TestClass ; 18 | ] ; 19 | . 20 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/comment.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { # Rest is a comment 6 | } 7 | 8 | # Another comment -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/comment.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | . 16 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/complex1.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | IMPORTS 4 | 5 | PREFIX ex: 6 | 7 | shape ex:PersonShape -> ex:Person { 8 | closed=true ignoredProperties=[rdf:type] . 9 | ex:ssn xsd:string [0..1] pattern="^\\d{3}-\\d{2}-\\d{4}$" . 10 | ex:worksFor IRI ex:Company [0..*] . 11 | ex:address BlankNode [0..1] { 12 | ex:city xsd:string [1..1] . 13 | ex:postalCode xsd:integer|xsd:string [1..1] maxLength=5 . 14 | } . 15 | } -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/complex1.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | 10 | rdf:type owl:Ontology ; 11 | owl:imports . 12 | 13 | ex:PersonShape 14 | a sh:NodeShape ; 15 | sh:targetClass ex:Person ; 16 | sh:closed true ; 17 | sh:ignoredProperties ( rdf:type ) ; 18 | sh:property [ 19 | sh:path ex:ssn ; 20 | sh:maxCount 1 ; 21 | sh:datatype xsd:string ; 22 | sh:pattern "^\\d{3}-\\d{2}-\\d{4}$" ; 23 | ] ; 24 | sh:property [ 25 | sh:path ex:worksFor ; 26 | sh:class ex:Company ; 27 | sh:nodeKind sh:IRI ; 28 | ] ; 29 | sh:property [ 30 | sh:path ex:address ; 31 | sh:maxCount 1 ; 32 | sh:nodeKind sh:BlankNode ; 33 | sh:node [ 34 | sh:property [ 35 | sh:path ex:city ; 36 | sh:datatype xsd:string ; 37 | sh:minCount 1 ; 38 | sh:maxCount 1 ; 39 | ] ; 40 | sh:property [ 41 | sh:path ex:postalCode ; 42 | sh:or ( [ sh:datatype xsd:integer ] [ sh:datatype xsd:string ] ) ; 43 | sh:minCount 1 ; 44 | sh:maxCount 1 ; 45 | sh:maxLength 5 ; 46 | ] ; 47 | ] ; 48 | ] . -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/complex2.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | IMPORTS 4 | 5 | PREFIX ex: 6 | 7 | shapeClass ex:Person { 8 | closed=true ignoredProperties=[rdf:type] . 9 | ex:ssn xsd:string [0..1] pattern="^\\d{3}-\\d{2}-\\d{4}$" . 10 | ex:worksFor IRI ex:Company [0..*] . 11 | ex:address BlankNode [0..1] { 12 | ex:city xsd:string [1..1] . 13 | ex:postalCode xsd:integer|xsd:string [1..1] maxLength=5 . 14 | } . 15 | } 16 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/complex2.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | 10 | rdf:type owl:Ontology ; 11 | owl:imports . 12 | 13 | ex:Person 14 | a sh:NodeShape, rdfs:Class ; 15 | sh:closed true ; 16 | sh:ignoredProperties ( rdf:type ) ; 17 | sh:property [ 18 | sh:path ex:ssn ; 19 | sh:maxCount 1 ; 20 | sh:datatype xsd:string ; 21 | sh:pattern "^\\d{3}-\\d{2}-\\d{4}$" ; 22 | ] ; 23 | sh:property [ 24 | sh:path ex:worksFor ; 25 | sh:class ex:Company ; 26 | sh:nodeKind sh:IRI ; 27 | ] ; 28 | sh:property [ 29 | sh:path ex:address ; 30 | sh:maxCount 1 ; 31 | sh:nodeKind sh:BlankNode ; 32 | sh:node [ 33 | sh:property [ 34 | sh:path ex:city ; 35 | sh:datatype xsd:string ; 36 | sh:minCount 1 ; 37 | sh:maxCount 1 ; 38 | ] ; 39 | sh:property [ 40 | sh:path ex:postalCode ; 41 | sh:or ( [ sh:datatype xsd:integer ] [ sh:datatype xsd:string ] ) ; 42 | sh:minCount 1 ; 43 | sh:maxCount 1 ; 44 | sh:maxLength 5 ; 45 | ] ; 46 | ] ; 47 | ] . -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/count-0-1.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property [0..1] . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/count-0-1.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | sh:maxCount 1 ; 18 | ] ; 19 | . 20 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/count-0-unlimited.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property [0..*] . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/count-0-unlimited.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | ] ; 18 | . 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/count-1-2.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property [1..2] . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/count-1-2.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | sh:minCount 1 ; 18 | sh:maxCount 2 ; 19 | ] ; 20 | . 21 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/count-1-unlimited.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property [1..*] . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/count-1-unlimited.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | sh:minCount 1 ; 18 | ] ; 19 | . 20 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/datatype.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:stringProperty xsd:string . 7 | ex:langProperty rdf:langString . 8 | } 9 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/datatype.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:stringProperty ; 17 | sh:datatype xsd:string ; 18 | ] ; 19 | sh:property [ 20 | sh:path ex:langProperty ; 21 | sh:datatype rdf:langString ; 22 | ] ; 23 | . 24 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/directives.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | IMPORTS 4 | IMPORTS 5 | 6 | PREFIX ex: 7 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/directives.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | 10 | a owl:Ontology ; 11 | owl:imports ; 12 | owl:imports ; 13 | . 14 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/empty.shaclc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/shacl-compact-syntax/tests/valid/empty.shaclc -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/empty.ttl: -------------------------------------------------------------------------------- 1 | @prefix owl: . 2 | @prefix rdf: . 3 | @prefix rdfs: . 4 | @prefix sh: . 5 | @prefix xsd: . 6 | 7 | 8 | a owl:Ontology ; 9 | . -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/nestedShape.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property IRI { 7 | ex:nestedProperty [1..1] . 8 | } . 9 | } 10 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/nestedShape.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | sh:nodeKind sh:IRI ; 18 | sh:node [ 19 | sh:property [ 20 | sh:path ex:nestedProperty ; 21 | sh:minCount 1 ; 22 | sh:maxCount 1 ; 23 | ] ; 24 | ] ; 25 | ] ; 26 | . 27 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/node-or-2.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | datatype=xsd:string|datatype=rdf:langString . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/node-or-2.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:or ( [ sh:datatype xsd:string ] [ sh:datatype rdf:langString ] ) ; 16 | . 17 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/node-or-3-not.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | datatype=xsd:string|!datatype=rdf:langString | class = ex:TestClass . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/node-or-3-not.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:or ( 16 | [ sh:datatype xsd:string ] 17 | [ sh:not [ sh:datatype rdf:langString ] ] 18 | [ sh:class ex:TestClass ] 19 | ) ; 20 | . 21 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/nodeKind.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:iriProperty IRI . 7 | ex:literalProperty Literal . 8 | } 9 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/nodeKind.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:iriProperty ; 17 | sh:nodeKind sh:IRI ; 18 | ] ; 19 | sh:property [ 20 | sh:path ex:literalProperty ; 21 | sh:nodeKind sh:Literal ; 22 | ] ; 23 | . 24 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-alternative.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property1|ex:property2 . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-alternative.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path [ sh:alternativePath ( ex:property1 ex:property2 ) ] ; 17 | ] ; 18 | . 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-complex.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | (rdf:type/rdfs:subClassOf*)|ex:property . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-complex.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path [ sh:alternativePath ( ( rdf:type [ sh:zeroOrMorePath rdfs:subClassOf ] ) ex:property ) ] ; 17 | ] ; 18 | . 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-inverse.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ^ex:property . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-inverse.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path [ sh:inversePath ex:property ] ; 17 | ] ; 18 | . 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-oneOrMore.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property+ . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-oneOrMore.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path [ sh:oneOrMorePath ex:property ] ; 17 | ] ; 18 | . 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-sequence.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property1/ex:property2 . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-sequence.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ( ex:property1 ex:property2 ) ; 17 | ] ; 18 | . 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-zeroOrMore.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property* . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-zeroOrMore.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path [ sh:zeroOrMorePath ex:property ] ; 17 | ] ; 18 | . 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-zeroOrOne.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property? . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/path-zeroOrOne.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path [ sh:zeroOrOnePath ex:property ] ; 17 | ] ; 18 | . 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/property-empty.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/property-empty.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | ] ; 18 | . 19 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/property-not.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property !ex:Person . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/property-not.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | sh:not [ sh:class ex:Person ] ; 18 | ] ; 19 | . 20 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/property-or-2.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property1 xsd:string|rdf:langString . 7 | ex:property2 xsd:string|ex:TestClass . 8 | } 9 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/property-or-2.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property1 ; 17 | sh:or ( [ sh:datatype xsd:string ] [ sh:datatype rdf:langString ] ) ; 18 | ] ; 19 | sh:property [ 20 | sh:path ex:property2 ; 21 | sh:or ( [ sh:datatype xsd:string ] [ sh:class ex:TestClass ] ) ; 22 | ] ; 23 | . 24 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/property-or-3.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property xsd:string|rdf:langString|@ex:OtherShape . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/property-or-3.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | sh:or ( [ sh:datatype xsd:string ] [ sh:datatype rdf:langString ] [ sh:node ex:OtherShape ] ) ; 18 | ] ; 19 | . 20 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/shapeRef.shaclc: -------------------------------------------------------------------------------- 1 | BASE 2 | 3 | PREFIX ex: 4 | 5 | shape ex:TestShape { 6 | ex:property @ @ex:OtherShape2 . 7 | } 8 | -------------------------------------------------------------------------------- /shacl-compact-syntax/tests/valid/shapeRef.ttl: -------------------------------------------------------------------------------- 1 | @base . 2 | @prefix ex: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix xsd: . 8 | 9 | <> 10 | a owl:Ontology ; 11 | . 12 | 13 | ex:TestShape 14 | a sh:NodeShape ; 15 | sh:property [ 16 | sh:path ex:property ; 17 | sh:node ex:OtherShape1, ex:OtherShape2 ; 18 | ] ; 19 | . 20 | -------------------------------------------------------------------------------- /shacl/ECHIDNA: -------------------------------------------------------------------------------- 1 | index.html?specStatus=WD;shortName=shacl respec 2 | images/shacl-class-metamodel.png 3 | images/SHACL-Validation-Process.png 4 | shacl.ttl 5 | -------------------------------------------------------------------------------- /shacl/images/Class-Diagram-Arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/shacl/images/Class-Diagram-Arrows.png -------------------------------------------------------------------------------- /shacl/images/SHACL-Validation-Process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/shacl/images/SHACL-Validation-Process.png -------------------------------------------------------------------------------- /shacl/images/shacl-class-metamodel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/shacl/images/shacl-class-metamodel.png -------------------------------------------------------------------------------- /shacl12-core/images/Class-Diagram-Arrows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/shacl12-core/images/Class-Diagram-Arrows.png -------------------------------------------------------------------------------- /shacl12-core/images/SHACL-Validation-Process.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/shacl12-core/images/SHACL-Validation-Process.png -------------------------------------------------------------------------------- /shacl12-inf-rules/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "printWidth": 150, 4 | "semi": true, 5 | "singleQuote": false, 6 | "quoteProps": "as-needed", 7 | "jsxSingleQuote": false, 8 | "trailingComma": "none", 9 | "bracketSpacing": true, 10 | "jsxBracketSameLine": false, 11 | "htmlWhitespaceSensitivity": "ignore", 12 | "arrowParens": "always", 13 | "endOfLine": "lf" 14 | } -------------------------------------------------------------------------------- /shacl12-node-expr/.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "useTabs": true, 3 | "printWidth": 150, 4 | "semi": true, 5 | "singleQuote": false, 6 | "quoteProps": "as-needed", 7 | "jsxSingleQuote": false, 8 | "trailingComma": "none", 9 | "bracketSpacing": true, 10 | "jsxBracketSameLine": false, 11 | "htmlWhitespaceSensitivity": "ignore", 12 | "arrowParens": "always", 13 | "endOfLine": "lf" 14 | } -------------------------------------------------------------------------------- /shacl12-test-suite/README.md: -------------------------------------------------------------------------------- 1 | # SHACL 1.2 test-suite 2 | 3 | This repository contains the SHACL test-suite for SHACL 1.2. 4 | 5 | The format follows the previously published 6 | http://w3c.github.io/data-shapes/data-shapes-test-suite/ 7 | 8 | The content from the data-shapes-test-suite folder remains unaffected, for SHACL 1.0. -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/complex/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/complex" ; 8 | mf:include ; 9 | mf:include ; 10 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/complex/shacl-shacl.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix xsd: . 4 | @prefix sh: . 5 | @prefix sht: . 6 | 7 | <> a mf:Manifest ; 8 | mf:entries ( 9 | 10 | ) . 11 | 12 | a sht:Validate ; 13 | rdfs:label "frozen eat your own ( eat your own frozen dogfood )" ; 14 | mf:action [ 15 | sht:dataGraph ; 16 | sht:shapesGraph ] ; 17 | mf:result [a sh:ValidationReport ; 18 | sh:conforms "true"^^xsd:boolean ] ; 19 | mf:status sht:approved . 20 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/misc/deactivated-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource 12 | rdf:type rdfs:Resource ; 13 | . 14 | ex:TestShape 15 | rdf:type sh:NodeShape ; 16 | sh:datatype xsd:boolean ; 17 | sh:deactivated "true"^^xsd:boolean ; 18 | sh:property ex:TestShape2 ; 19 | sh:targetNode ex:InvalidResource ; 20 | . 21 | ex:TestShape2 22 | rdf:type sh:PropertyShape ; 23 | sh:path ex:property ; 24 | sh:minCount 1 ; 25 | . 26 | <> 27 | rdf:type mf:Manifest ; 28 | mf:entries ( 29 | 30 | ) ; 31 | . 32 | 33 | rdf:type sht:Validate ; 34 | rdfs:label "Test of sh:deactivated 001" ; 35 | mf:action [ 36 | sht:dataGraph <> ; 37 | sht:shapesGraph <> ; 38 | ] ; 39 | mf:result [ 40 | rdf:type sh:ValidationReport ; 41 | sh:conforms "true"^^xsd:boolean ; 42 | ] ; 43 | mf:status sht:approved ; 44 | . 45 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/misc/deactivated-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:datatype xsd:boolean ; 14 | sh:deactivated "false"^^xsd:boolean ; 15 | sh:targetNode 32 ; 16 | . 17 | <> 18 | rdf:type mf:Manifest ; 19 | mf:entries ( 20 | 21 | ) ; 22 | . 23 | 24 | rdf:type sht:Validate ; 25 | rdfs:label "Test of sh:deactivated 002" ; 26 | mf:action [ 27 | sht:dataGraph <> ; 28 | sht:shapesGraph <> ; 29 | ] ; 30 | mf:result [ 31 | rdf:type sh:ValidationReport ; 32 | sh:conforms "false"^^xsd:boolean ; 33 | sh:result [ 34 | rdf:type sh:ValidationResult ; 35 | sh:focusNode 32 ; 36 | sh:resultSeverity sh:Violation ; 37 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; 38 | sh:sourceShape ex:TestShape ; 39 | sh:value 32 ; 40 | ] ; 41 | ] ; 42 | mf:status sht:approved ; 43 | . 44 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/misc/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/misc" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/misc/message-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:datatype xsd:integer ; 14 | sh:message "Test message"@en ; 15 | sh:targetNode ex:InvalidNode ; 16 | . 17 | <> 18 | rdf:type mf:Manifest ; 19 | mf:entries ( 20 | 21 | ) ; 22 | . 23 | 24 | rdf:type sht:Validate ; 25 | rdfs:label "Test of custom sh:message 001" ; 26 | rdfs:comment """ 27 | Note: This test verifies that the sh:message is copied into sh:resultMessage. 28 | To pass this test, the test harness needs to preserve all sh:resultMessage triples 29 | that are mentioned in the 'expected' results graph.""" ; 30 | mf:action [ 31 | sht:dataGraph <> ; 32 | sht:shapesGraph <> ; 33 | ] ; 34 | mf:result [ 35 | rdf:type sh:ValidationReport ; 36 | sh:conforms "false"^^xsd:boolean ; 37 | sh:result [ 38 | rdf:type sh:ValidationResult ; 39 | sh:focusNode ex:InvalidNode ; 40 | sh:resultMessage "Test message"@en ; 41 | sh:resultSeverity sh:Violation ; 42 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; 43 | sh:sourceShape ex:TestShape ; 44 | sh:value ex:InvalidNode ; 45 | ] ; 46 | ] ; 47 | mf:status sht:approved ; 48 | . 49 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/misc/severity-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:datatype xsd:integer ; 14 | sh:severity sh:Warning ; 15 | sh:targetNode "Hello" ; 16 | . 17 | <> 18 | rdf:type mf:Manifest ; 19 | mf:entries ( 20 | 21 | ) ; 22 | . 23 | 24 | rdf:type sht:Validate ; 25 | rdfs:label "Test of sh:severity 001" ; 26 | mf:action [ 27 | sht:dataGraph <> ; 28 | sht:shapesGraph <> ; 29 | ] ; 30 | mf:result [ 31 | rdf:type sh:ValidationReport ; 32 | sh:conforms "false"^^xsd:boolean ; 33 | sh:result [ 34 | rdf:type sh:ValidationResult ; 35 | sh:focusNode "Hello" ; 36 | sh:resultSeverity sh:Warning ; 37 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; 38 | sh:sourceShape ex:TestShape ; 39 | sh:value "Hello" ; 40 | ] ; 41 | ] ; 42 | mf:status sht:approved ; 43 | . 44 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/closed-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance1 12 | ex:otherProperty 4 ; 13 | ex:someProperty 3 ; 14 | . 15 | ex:MyShape 16 | rdf:type sh:NodeShape ; 17 | sh:closed "true"^^xsd:boolean ; 18 | sh:ignoredProperties ( 19 | rdf:type 20 | ) ; 21 | sh:property [ 22 | sh:path ex:someProperty ; 23 | ] ; 24 | sh:targetNode ex:InvalidInstance1 ; 25 | sh:targetNode ex:ValidInstance1 ; 26 | . 27 | ex:ValidInstance1 28 | rdf:type ex:SomeClass ; 29 | ex:someProperty 3 ; 30 | . 31 | <> 32 | rdf:type mf:Manifest ; 33 | mf:entries ( 34 | 35 | ) ; 36 | . 37 | 38 | rdf:type sht:Validate ; 39 | rdfs:label "Test of sh:closed at node shape 002" ; 40 | mf:action [ 41 | sht:dataGraph <> ; 42 | sht:shapesGraph <> ; 43 | ] ; 44 | mf:result [ 45 | rdf:type sh:ValidationReport ; 46 | sh:conforms "false"^^xsd:boolean ; 47 | sh:result [ 48 | rdf:type sh:ValidationResult ; 49 | sh:focusNode ex:InvalidInstance1 ; 50 | sh:resultPath ex:otherProperty ; 51 | sh:resultSeverity sh:Violation ; 52 | sh:sourceConstraintComponent sh:ClosedConstraintComponent ; 53 | sh:sourceShape ex:MyShape ; 54 | sh:value 4 ; 55 | ] ; 56 | ] ; 57 | mf:status sht:approved ; 58 | . 59 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/datatype-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:datatype rdf:langString ; 14 | sh:targetNode "Hello"^^rdf:HTML ; 15 | sh:targetNode "G'day"@en-AU ; 16 | sh:targetNode "Hallo"@de ; 17 | sh:targetNode "Hello" ; 18 | . 19 | <> 20 | rdf:type mf:Manifest ; 21 | mf:entries ( 22 | 23 | ) ; 24 | . 25 | 26 | rdf:type sht:Validate ; 27 | rdfs:label "Test of sh:datatype at node shape 002" ; 28 | mf:action [ 29 | sht:dataGraph <> ; 30 | sht:shapesGraph <> ; 31 | ] ; 32 | mf:result [ 33 | rdf:type sh:ValidationReport ; 34 | sh:conforms "false"^^xsd:boolean ; 35 | sh:result [ 36 | rdf:type sh:ValidationResult ; 37 | sh:focusNode "Hello"^^rdf:HTML ; 38 | sh:resultSeverity sh:Violation ; 39 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; 40 | sh:sourceShape ex:TestShape ; 41 | sh:value "Hello"^^rdf:HTML ; 42 | ] ; 43 | sh:result [ 44 | rdf:type sh:ValidationResult ; 45 | sh:focusNode "Hello" ; 46 | sh:resultSeverity sh:Violation ; 47 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ; 48 | sh:sourceShape ex:TestShape ; 49 | sh:value "Hello" ; 50 | ] ; 51 | ] ; 52 | mf:status sht:approved ; 53 | . 54 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/disjoint-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | ex:property ex:InvalidResource1 ; 13 | ex:property ex:ValidResource1 ; 14 | . 15 | ex:TestShape 16 | rdf:type sh:NodeShape ; 17 | rdfs:label "Test shape" ; 18 | sh:disjoint ex:property ; 19 | sh:targetNode ex:InvalidResource1 ; 20 | sh:targetNode ex:ValidResource1 ; 21 | . 22 | ex:ValidResource1 23 | ex:property ex:InvalidResource1 ; 24 | . 25 | <> 26 | rdf:type mf:Manifest ; 27 | mf:entries ( 28 | 29 | ) ; 30 | . 31 | 32 | rdf:type sht:Validate ; 33 | rdfs:label "Test of sh:disjoint at node shape 001" ; 34 | mf:action [ 35 | sht:dataGraph <> ; 36 | sht:shapesGraph <> ; 37 | ] ; 38 | mf:result [ 39 | rdf:type sh:ValidationReport ; 40 | sh:conforms "false"^^xsd:boolean ; 41 | sh:result [ 42 | rdf:type sh:ValidationResult ; 43 | sh:focusNode ex:InvalidResource1 ; 44 | sh:resultSeverity sh:Violation ; 45 | sh:sourceConstraintComponent sh:DisjointConstraintComponent ; 46 | sh:sourceShape ex:TestShape ; 47 | sh:value ex:InvalidResource1 ; 48 | ] ; 49 | ] ; 50 | mf:status sht:approved ; 51 | . 52 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/expression-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance 12 | rdf:type ex:TestShape ; 13 | rdfs:label "Invalid instance" ; 14 | . 15 | ex:TestShape 16 | rdf:type rdfs:Class ; 17 | rdf:type sh:NodeShape ; 18 | rdfs:label "Test shape" ; 19 | sh:expression false ; # Only using constant false here because Core doesn't define interesting node expressions 20 | . 21 | <> 22 | rdf:type mf:Manifest ; 23 | mf:entries ( 24 | 25 | ) ; 26 | . 27 | 28 | rdf:type sht:Validate ; 29 | rdfs:label "Test of sh:expression at node shape 001" ; 30 | mf:action [ 31 | sht:dataGraph <> ; 32 | sht:shapesGraph <> ; 33 | ] ; 34 | mf:result [ 35 | rdf:type sh:ValidationReport ; 36 | sh:conforms "false"^^xsd:boolean ; 37 | sh:result [ 38 | rdf:type sh:ValidationResult ; 39 | sh:focusNode ex:InvalidInstance ; 40 | sh:resultSeverity sh:Violation ; 41 | sh:sourceConstraint false ; 42 | sh:sourceConstraintComponent sh:ExpressionConstraintComponent ; 43 | sh:sourceShape ex:TestShape ; 44 | sh:value ex:InvalidInstance ; 45 | ] ; 46 | ] ; 47 | mf:status sht:approved ; 48 | . 49 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/hasValue-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | rdfs:label "Test shape" ; 14 | sh:hasValue "Test" ; 15 | sh:targetNode "Invalid String" ; 16 | sh:targetNode "Test" ; 17 | . 18 | <> 19 | rdf:type mf:Manifest ; 20 | mf:entries ( 21 | 22 | ) ; 23 | . 24 | 25 | rdf:type sht:Validate ; 26 | rdfs:label "Test of sh:hasValue at node shape 001" ; 27 | mf:action [ 28 | sht:dataGraph <> ; 29 | sht:shapesGraph <> ; 30 | ] ; 31 | mf:result [ 32 | rdf:type sh:ValidationReport ; 33 | sh:conforms "false"^^xsd:boolean ; 34 | sh:result [ 35 | rdf:type sh:ValidationResult ; 36 | sh:focusNode "Invalid String" ; 37 | sh:resultSeverity sh:Violation ; 38 | sh:sourceConstraintComponent sh:HasValueConstraintComponent ; 39 | sh:sourceShape ex:TestShape ; 40 | # See See https://github.com/w3c/data-shapes/issues/111: don't create sh:value "Invalid String" ; 41 | ] ; 42 | ] ; 43 | mf:status sht:approved ; 44 | . 45 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/in-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:Green 12 | rdf:type ex:TestShape ; 13 | rdfs:label "Green" ; 14 | . 15 | ex:InvalidInstance 16 | rdf:type ex:TestShape ; 17 | rdfs:label "Invalid instance" ; 18 | . 19 | ex:Red 20 | rdf:type ex:TestShape ; 21 | rdfs:label "Red" ; 22 | . 23 | ex:TestShape 24 | rdf:type rdfs:Class ; 25 | rdf:type sh:NodeShape ; 26 | rdfs:label "Test shape" ; 27 | sh:in ( 28 | ex:Green 29 | ex:Red 30 | ex:Yellow 31 | ) ; 32 | . 33 | ex:Yellow 34 | rdf:type ex:TestShape ; 35 | rdfs:label "Yellow" ; 36 | . 37 | <> 38 | rdf:type mf:Manifest ; 39 | mf:entries ( 40 | 41 | ) ; 42 | . 43 | 44 | rdf:type sht:Validate ; 45 | rdfs:label "Test of sh:in at node shape 001" ; 46 | mf:action [ 47 | sht:dataGraph <> ; 48 | sht:shapesGraph <> ; 49 | ] ; 50 | mf:result [ 51 | rdf:type sh:ValidationReport ; 52 | sh:conforms "false"^^xsd:boolean ; 53 | sh:result [ 54 | rdf:type sh:ValidationResult ; 55 | sh:focusNode ex:InvalidInstance ; 56 | sh:resultSeverity sh:Violation ; 57 | sh:sourceConstraintComponent sh:InConstraintComponent ; 58 | sh:sourceShape ex:TestShape ; 59 | sh:value ex:InvalidInstance ; 60 | ] ; 61 | ] ; 62 | mf:status sht:approved ; 63 | . 64 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/node" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | mf:include ; 16 | mf:include ; 17 | mf:include ; 18 | mf:include ; 19 | mf:include ; 20 | mf:include ; 21 | mf:include ; 22 | mf:include ; 23 | mf:include ; 24 | mf:include ; 25 | mf:include ; 26 | mf:include ; 27 | mf:include ; 28 | mf:include ; 29 | mf:include ; 30 | mf:include ; 31 | mf:include ; 32 | mf:include ; 33 | mf:include ; 34 | mf:include ; 35 | mf:include ; 36 | mf:include ; 37 | mf:include ; 38 | mf:include ; 39 | mf:include ; 40 | mf:include ; 41 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/minInclusive-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:minInclusive 8 ; 14 | sh:targetNode 7 ; 15 | sh:targetNode 8 ; 16 | sh:targetNode 9 ; 17 | . 18 | <> 19 | rdf:type mf:Manifest ; 20 | mf:entries ( 21 | 22 | ) ; 23 | . 24 | 25 | rdf:type sht:Validate ; 26 | rdfs:label "Test of sh:minInclusive at node shape 001" ; 27 | mf:action [ 28 | sht:dataGraph <> ; 29 | sht:shapesGraph <> ; 30 | ] ; 31 | mf:result [ 32 | rdf:type sh:ValidationReport ; 33 | sh:conforms "false"^^xsd:boolean ; 34 | sh:result [ 35 | rdf:type sh:ValidationResult ; 36 | sh:focusNode 7 ; 37 | sh:resultSeverity sh:Violation ; 38 | sh:sourceConstraintComponent sh:MinInclusiveConstraintComponent ; 39 | sh:sourceShape ex:TestShape ; 40 | sh:value 7 ; 41 | ] ; 42 | ] ; 43 | mf:status sht:approved ; 44 | . 45 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/node-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance 12 | rdf:type ex:TestClass ; 13 | rdfs:label "Invalid instance" ; 14 | . 15 | ex:TestClass 16 | rdf:type rdfs:Class ; 17 | rdf:type sh:NodeShape ; 18 | rdfs:label "Test class" ; 19 | rdfs:subClassOf rdfs:Resource ; 20 | sh:node [ 21 | sh:class ex:OtherClass ; 22 | ] ; 23 | . 24 | ex:ValidInstance 25 | rdf:type ex:OtherClass ; 26 | rdf:type ex:TestClass ; 27 | rdfs:label "Valid instance" ; 28 | . 29 | <> 30 | rdf:type mf:Manifest ; 31 | mf:entries ( 32 | 33 | ) ; 34 | . 35 | 36 | rdf:type sht:Validate ; 37 | rdfs:label "Test of sh:node at node shape 001" ; 38 | mf:action [ 39 | sht:dataGraph <> ; 40 | sht:shapesGraph <> ; 41 | ] ; 42 | mf:result [ 43 | rdf:type sh:ValidationReport ; 44 | sh:conforms "false"^^xsd:boolean ; 45 | sh:result [ 46 | rdf:type sh:ValidationResult ; 47 | sh:focusNode ex:InvalidInstance ; 48 | sh:resultSeverity sh:Violation ; 49 | sh:sourceConstraintComponent sh:NodeConstraintComponent ; 50 | sh:sourceShape ex:TestClass ; 51 | sh:value ex:InvalidInstance ; 52 | ] ; 53 | ] ; 54 | mf:status sht:approved ; 55 | . 56 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/nodeKind-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:IRITestShape 12 | rdf:type sh:NodeShape ; 13 | sh:nodeKind sh:IRI ; 14 | sh:targetNode ex:John ; 15 | sh:targetNode "true"^^xsd:boolean ; 16 | . 17 | <> 18 | rdf:type mf:Manifest ; 19 | mf:entries ( 20 | 21 | ) ; 22 | . 23 | 24 | rdf:type sht:Validate ; 25 | rdfs:label "Test of sh:nodeKind at node shape 001" ; 26 | mf:action [ 27 | sht:dataGraph <> ; 28 | sht:shapesGraph <> ; 29 | ] ; 30 | mf:result [ 31 | rdf:type sh:ValidationReport ; 32 | sh:conforms "false"^^xsd:boolean ; 33 | sh:result [ 34 | rdf:type sh:ValidationResult ; 35 | sh:focusNode "true"^^xsd:boolean ; 36 | sh:resultSeverity sh:Violation ; 37 | sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; 38 | sh:sourceShape ex:IRITestShape ; 39 | sh:value "true"^^xsd:boolean ; 40 | ] ; 41 | ] ; 42 | mf:status sht:approved ; 43 | . 44 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/not-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | rdf:type rdfs:Resource ; 13 | ex:property "some value" ; 14 | . 15 | ex:TestShape 16 | rdf:type rdfs:Class ; 17 | rdf:type sh:NodeShape ; 18 | rdfs:label "Test shape" ; 19 | rdfs:subClassOf rdfs:Resource ; 20 | sh:not [ 21 | rdf:type sh:NodeShape ; 22 | sh:property [ 23 | sh:path ex:property ; 24 | sh:minCount 1 ; 25 | ] ; 26 | ] ; 27 | sh:targetNode ex:InvalidResource1 ; 28 | sh:targetNode ex:ValidResource1 ; 29 | . 30 | ex:ValidResource1 31 | rdf:type rdfs:Resource ; 32 | . 33 | <> 34 | rdf:type mf:Manifest ; 35 | mf:entries ( 36 | 37 | ) ; 38 | . 39 | 40 | rdf:type sht:Validate ; 41 | rdfs:label "Test of sh:not at node shape 001" ; 42 | mf:action [ 43 | sht:dataGraph <> ; 44 | sht:shapesGraph <> ; 45 | ] ; 46 | mf:result [ 47 | rdf:type sh:ValidationReport ; 48 | sh:conforms "false"^^xsd:boolean ; 49 | sh:result [ 50 | rdf:type sh:ValidationResult ; 51 | sh:focusNode ex:InvalidResource1 ; 52 | sh:resultSeverity sh:Violation ; 53 | sh:sourceConstraintComponent sh:NotConstraintComponent ; 54 | sh:sourceShape ex:TestShape ; 55 | sh:value ex:InvalidResource1 ; 56 | ] ; 57 | ] ; 58 | mf:status sht:approved ; 59 | . 60 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/not-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance1 12 | ex:property "Some value" ; 13 | . 14 | ex:NotExampleShape 15 | rdf:type sh:NodeShape ; 16 | sh:not [ 17 | rdf:type sh:NodeShape ; 18 | sh:property [ 19 | sh:path ex:property ; 20 | sh:minCount 1 ; 21 | ] ; 22 | ] ; 23 | sh:targetNode ex:InvalidInstance1 ; 24 | sh:targetNode ex:ValidInstance1 ; 25 | . 26 | <> 27 | rdf:type mf:Manifest ; 28 | mf:entries ( 29 | 30 | ) ; 31 | . 32 | 33 | rdf:type sht:Validate ; 34 | rdfs:label "Test of sh:not at node shape 002" ; 35 | mf:action [ 36 | sht:dataGraph <> ; 37 | sht:shapesGraph <> ; 38 | ] ; 39 | mf:result [ 40 | rdf:type sh:ValidationReport ; 41 | sh:conforms "false"^^xsd:boolean ; 42 | sh:result [ 43 | rdf:type sh:ValidationResult ; 44 | sh:focusNode ex:InvalidInstance1 ; 45 | sh:resultSeverity sh:Violation ; 46 | sh:sourceConstraintComponent sh:NotConstraintComponent ; 47 | sh:sourceShape ex:NotExampleShape ; 48 | sh:value ex:InvalidInstance1 ; 49 | ] ; 50 | ] ; 51 | mf:status sht:approved ; 52 | . 53 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/pattern-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:flags "i" ; 14 | sh:pattern "Aldi" ; 15 | sh:targetNode "Aldi" ; 16 | sh:targetNode "Alti" ; 17 | sh:targetNode "aLdI" ; 18 | . 19 | <> 20 | rdf:type mf:Manifest ; 21 | mf:entries ( 22 | 23 | ) ; 24 | . 25 | 26 | rdf:type sht:Validate ; 27 | rdfs:label "Test of sh:pattern at node shape 002" ; 28 | mf:action [ 29 | sht:dataGraph <> ; 30 | sht:shapesGraph <> ; 31 | ] ; 32 | mf:result [ 33 | rdf:type sh:ValidationReport ; 34 | sh:conforms "false"^^xsd:boolean ; 35 | sh:result [ 36 | rdf:type sh:ValidationResult ; 37 | sh:focusNode "Alti" ; 38 | sh:resultSeverity sh:Violation ; 39 | sh:sourceConstraintComponent sh:PatternConstraintComponent ; 40 | sh:sourceShape ex:TestShape ; 41 | sh:value "Alti" ; 42 | ] ; 43 | ] ; 44 | mf:status sht:approved ; 45 | . 46 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/qualified-001-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i a ex:C1 . 4 | ex:j a ex:C1 , ex:C2 . 5 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/qualified-001-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix xsd: . 2 | @prefix sh: . 3 | @prefix ex: . 4 | 5 | ex:s1 a sh:NodeShape ; 6 | sh:targetClass ex:C1 ; 7 | sh:class ex:C2 ; 8 | sh:qualifiedValueShapesDisjoint "1"^^xsd:boolean ; 9 | sh:qualifiedMinCount 5 ; 10 | sh:qualifiedMaxCount 2 . 11 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/qualified-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | @prefix ex: . 10 | 11 | <> a mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | a sht:Validate; 17 | rdfs:label "Test of qualified parameters allowed in node shapes" ; 18 | mf:action [ sht:dataGraph ; 19 | sht:shapesGraph ] ; 20 | mf:result [ rdf:type sh:ValidationReport ; 21 | sh:conforms "false"^^xsd:boolean ; 22 | sh:result [ rdf:type sh:ValidationResult ; 23 | sh:resultSeverity sh:Violation ; 24 | sh:focusNode ex:i ; 25 | sh:value ex:i ; 26 | sh:sourceShape ex:s1 ; 27 | sh:sourceConstraintComponent sh:ClassConstraintComponent ] ] ; 28 | mf:status sht:approved . 29 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/xone-duplicate-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i a ex:C1 . 4 | ex:j a ex:C1 , ex:C2 . 5 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/xone-duplicate-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | 4 | ex:s1 a sh:NodeShape ; 5 | sh:targetClass ex:C1 ; 6 | sh:xone ( ex:s2 ex:s2 ) . 7 | ex:s2 sh:class ex:C2 . 8 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/node/xone-duplicate.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | @prefix ex: . 10 | 11 | <> a mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | a sht:Validate; 17 | rdfs:label "Test of validation report for shape xone-duplicate by property constraints" ; 18 | mf:action [ sht:dataGraph ; 19 | sht:shapesGraph ] ; 20 | mf:result [ rdf:type sh:ValidationReport ; 21 | sh:conforms "false"^^xsd:boolean ; 22 | sh:result [ rdf:type sh:ValidationResult ; 23 | sh:resultSeverity sh:Violation ; 24 | sh:focusNode ex:i ; 25 | sh:value ex:i ; 26 | sh:sourceShape ex:s1 ; 27 | sh:sourceConstraintComponent sh:XoneConstraintComponent ] ; 28 | sh:result [ rdf:type sh:ValidationResult ; 29 | sh:resultSeverity sh:Violation ; 30 | sh:focusNode ex:j ; 31 | sh:value ex:j ; 32 | sh:sourceShape ex:s1 ; 33 | sh:sourceConstraintComponent sh:XoneConstraintComponent ] ] ; 34 | mf:status sht:approved . 35 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/path" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | mf:include ; 16 | mf:include ; 17 | mf:include ; 18 | mf:include ; 19 | mf:include ; 20 | mf:include ; 21 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-complex-002-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:j ex:p ex:i . 4 | 5 | ex:k ex:p ex:j . 6 | 7 | ex:l ex:p ex:j . 8 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-complex-002-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | 4 | ex:s1 a sh:PropertyShape ; 5 | sh:targetNode ex:i ; 6 | sh:path ( _:pinv _:pinv ) ; 7 | sh:class ex:C . 8 | 9 | _:pinv sh:inversePath ex:p . 10 | 11 | ex:s2 a sh:PropertyShape ; 12 | sh:targetNode ex:i ; 13 | sh:path ( [ sh:inversePath ex:p ] [ sh:inversePath ex:p ] ) ; 14 | sh:class ex:C . 15 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-sequence-duplicate-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:A 12 | ex:p1 [ 13 | ex:p2 "value" ; 14 | ] ; 15 | ex:p1 [ 16 | ex:p2 "value" ; 17 | ] ; 18 | . 19 | ex:S 20 | rdf:type sh:NodeShape ; 21 | sh:property ex:SP ; 22 | sh:targetNode ex:A ; 23 | . 24 | ex:SP 25 | rdf:type sh:PropertyShape ; 26 | sh:path ( 27 | ex:p1 28 | ex:p2 29 | ) ; 30 | sh:maxCount 1 ; 31 | sh:nodeKind sh:IRI ; 32 | . 33 | <> 34 | rdf:type mf:Manifest ; 35 | mf:entries ( 36 | 37 | ) ; 38 | . 39 | 40 | rdf:type sht:Validate ; 41 | rdfs:label "Test of path sequence with duplicate 001" ; 42 | mf:action [ 43 | sht:dataGraph <> ; 44 | sht:shapesGraph <> ; 45 | ] ; 46 | mf:result [ 47 | rdf:type sh:ValidationReport ; 48 | sh:conforms "false"^^xsd:boolean ; 49 | sh:result [ 50 | rdf:type sh:ValidationResult ; 51 | sh:focusNode ex:A ; 52 | sh:resultPath ( 53 | ex:p1 54 | ex:p2 55 | ) ; 56 | sh:resultSeverity sh:Violation ; 57 | sh:sourceConstraintComponent sh:NodeKindConstraintComponent ; 58 | sh:sourceShape ex:SP ; 59 | sh:value "value" ; 60 | ] ; 61 | ] ; 62 | mf:status sht:approved ; 63 | . 64 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-strange-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | ex:i a ex:C ; 10 | ex:p ex:ip . 11 | ex:ip ex:q ex:ipq . 12 | ex:ipq a ex:C . 13 | ex:pi ex:p ex:i . 14 | 15 | ex:j a ex:C ; 16 | ex:p ex:jp . 17 | ex:jp ex:q ex:jpq . 18 | 19 | ex:s1 a sh:PropertyShape ; 20 | sh:targetClass ex:C ; 21 | sh:path [ rdf:first ex:p ; rdf:rest [ rdf:first ex:q ; rdf:rest rdf:nil ] ; 22 | sh:inversePath ex:p ] ; 23 | sh:class ex:C . 24 | 25 | <> 26 | rdf:type mf:Manifest ; 27 | mf:entries ( 28 | 29 | ) ; 30 | . 31 | 32 | 33 | rdf:type sht:Validate ; 34 | rdfs:label "Test of strange path 001 two valid paths together" ; 35 | mf:action [ 36 | sht:dataGraph <> ; 37 | sht:shapesGraph <> ; 38 | ] ; 39 | mf:result [ 40 | rdf:type sh:ValidationReport ; 41 | sh:conforms "false"^^xsd:boolean ; 42 | sh:result [ a sh:ValidationResult ; 43 | sh:focusNode ex:j ; 44 | sh:value ex:jpq ; 45 | sh:resultPath ( ex:p ex:q ) ; 46 | sh:resultSeverity sh:Violation ; 47 | sh:sourceConstraintComponent sh:ClassConstraintComponent ; 48 | sh:sourceShape ex:s1 ; 49 | ] ; 50 | ] ; 51 | mf:status sht:approved ; 52 | . 53 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-strange-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | ex:i a ex:C ; 10 | ex:p ex:ip . 11 | ex:ip ex:q ex:ipq . 12 | ex:ipq a ex:C . 13 | ex:pi ex:p ex:i . 14 | 15 | ex:j a ex:C ; 16 | ex:p ex:jp . 17 | ex:jp ex:q ex:jpq . 18 | 19 | ex:s1 a sh:PropertyShape ; 20 | sh:targetClass ex:C ; 21 | sh:path [ rdf:first ex:p ; rdf:rest [ rdf:first ex:q ; rdf:rest rdf:nil ] ; 22 | sh:inversePath ( ex:p ) ] ; 23 | sh:class ex:C . 24 | 25 | <> 26 | rdf:type mf:Manifest ; 27 | mf:entries ( 28 | 29 | ) ; 30 | . 31 | 32 | 33 | rdf:type sht:Validate ; 34 | rdfs:label "Test of strange path 002 valid and invalid paths together" ; 35 | mf:action [ 36 | sht:dataGraph <> ; 37 | sht:shapesGraph <> ; 38 | ] ; 39 | mf:result [ 40 | rdf:type sh:ValidationReport ; 41 | sh:conforms "false"^^xsd:boolean ; 42 | sh:result [ a sh:ValidationResult ; 43 | sh:focusNode ex:j ; 44 | sh:value ex:jpq ; 45 | sh:resultPath ( ex:p ex:q ) ; 46 | sh:resultSeverity sh:Violation ; 47 | sh:sourceConstraintComponent sh:ClassConstraintComponent ; 48 | sh:sourceShape ex:s1 ; 49 | ] ; 50 | ] ; 51 | mf:status sht:approved ; 52 | . 53 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-unused-001-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i a ex:C . 4 | 5 | ex:j a ex:D . 6 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-unused-001-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | 6 | ex:s1 a sh:NodeShape ; 7 | sh:targetNode ex:j, ex:i ; 8 | sh:class ex:C . 9 | 10 | _:p1 sh:inversePath _:p2 . 11 | 12 | _:p2 sh:zeroOrMorePath ( _:p2 ) . 13 | 14 | _:p2 sh:zeroOrOnePath [ rdf:rest rdf:nil ] . 15 | 16 | _:p3 sh:alternativePath ( ex:p ) ; 17 | rdfs:comment "invalid path" . 18 | 19 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-unused-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | <> a mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | a sht:Validate ; 17 | rdfs:label "Test with unused ill-formed path" ; 18 | mf:action [ 19 | sht:dataGraph ; 20 | sht:shapesGraph ] ; 21 | mf:result [ a sh:ValidationReport ; 22 | sh:conforms "false"^^xsd:boolean ; 23 | sh:result [ a sh:ValidationResult ; 24 | sh:focusNode ex:j ; 25 | sh:value ex:j ; 26 | sh:resultSeverity sh:Violation ; 27 | sh:sourceShape ex:s1 ; 28 | sh:sourceConstraintComponent sh:ClassConstraintComponent ] ] ; 29 | mf:status sht:approved . 30 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-zeroOrMore-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | rdf:type rdfs:Resource ; 13 | . 14 | ex:Person2 15 | ex:child ex:Person3 ; 16 | . 17 | ex:TestShape 18 | rdf:type sh:PropertyShape ; 19 | sh:path [ 20 | sh:zeroOrMorePath ex:child ; 21 | ] ; 22 | sh:minCount 2 ; 23 | sh:targetNode ex:InvalidResource1 ; 24 | sh:targetNode ex:ValidResource1 ; 25 | sh:targetNode ex:ValidResource2 ; 26 | . 27 | ex:ValidResource1 28 | ex:child ex:Person1 ; 29 | . 30 | ex:ValidResource2 31 | ex:child ex:Person2 ; 32 | . 33 | <> 34 | rdf:type mf:Manifest ; 35 | mf:entries ( 36 | 37 | ) ; 38 | . 39 | 40 | rdf:type sht:Validate ; 41 | rdfs:label "Test of path sh:zeroOrMorePath 001" ; 42 | mf:action [ 43 | sht:dataGraph <> ; 44 | sht:shapesGraph <> ; 45 | ] ; 46 | mf:result [ 47 | rdf:type sh:ValidationReport ; 48 | sh:conforms "false"^^xsd:boolean ; 49 | sh:result [ 50 | rdf:type sh:ValidationResult ; 51 | sh:focusNode ex:InvalidResource1 ; 52 | sh:resultPath [ 53 | sh:zeroOrMorePath ex:child ; 54 | ] ; 55 | sh:resultSeverity sh:Violation ; 56 | sh:sourceConstraintComponent sh:MinCountConstraintComponent ; 57 | sh:sourceShape ex:TestShape ; 58 | ] ; 59 | ] ; 60 | mf:status sht:approved ; 61 | . 62 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/path/path-zeroOrOne-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | rdf:type rdfs:Resource ; 13 | . 14 | ex:Person2 15 | ex:child ex:Person3 ; 16 | . 17 | ex:TestShape 18 | rdf:type sh:PropertyShape ; 19 | sh:path [ 20 | sh:zeroOrOnePath ex:child ; 21 | ] ; 22 | sh:minCount 2 ; 23 | sh:targetNode ex:InvalidResource1 ; 24 | sh:targetNode ex:ValidResource1 ; 25 | sh:targetNode ex:ValidResource2 ; 26 | . 27 | ex:ValidResource1 28 | ex:child ex:Person1 ; 29 | . 30 | ex:ValidResource2 31 | ex:child ex:Person2 ; 32 | . 33 | <> 34 | rdf:type mf:Manifest ; 35 | mf:entries ( 36 | 37 | ) ; 38 | . 39 | 40 | rdf:type sht:Validate ; 41 | rdfs:label "Test of path sh:zeroOrOnePath 001" ; 42 | mf:action [ 43 | sht:dataGraph <> ; 44 | sht:shapesGraph <> ; 45 | ] ; 46 | mf:result [ 47 | rdf:type sh:ValidationReport ; 48 | sh:conforms "false"^^xsd:boolean ; 49 | sh:result [ 50 | rdf:type sh:ValidationResult ; 51 | sh:focusNode ex:InvalidResource1 ; 52 | sh:resultPath [ 53 | sh:zeroOrOnePath ex:child ; 54 | ] ; 55 | sh:resultSeverity sh:Violation ; 56 | sh:sourceConstraintComponent sh:MinCountConstraintComponent ; 57 | sh:sourceShape ex:TestShape ; 58 | ] ; 59 | ] ; 60 | mf:status sht:approved ; 61 | . 62 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/property/datatype-ill-formed-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix xsd: . 2 | @prefix ex: . 3 | 4 | ex:i ex:p "300"^^xsd:byte . 5 | ex:i ex:p "55"^^xsd:integer . 6 | ex:i ex:p "c"^^xsd:byte . 7 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/property/datatype-ill-formed-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix xsd: . 3 | @prefix ex: . 4 | 5 | ex:s a sh:PropertyShape ; 6 | sh:targetNode ex:i ; 7 | sh:path ex:p ; 8 | sh:datatype xsd:byte . 9 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/property/datatype-ill-formed.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | @prefix ex: . 10 | 11 | <> rdf:type mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | rdf:type sht:Validate; 17 | rdfs:label "Test of validation report for ill-formed literals" ; 18 | mf:action [ sht:dataGraph ; 19 | sht:shapesGraph ] ; 20 | mf:result [ rdf:type sh:ValidationReport ; 21 | sh:conforms "false"^^xsd:boolean ; 22 | sh:result [ rdf:type sh:ValidationResult ; 23 | sh:resultSeverity sh:Violation ; 24 | sh:focusNode ex:i ; 25 | sh:value "300"^^xsd:byte ; 26 | sh:resultPath ex:p ; 27 | sh:sourceShape ex:s ; 28 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ] ; 29 | sh:result [ rdf:type sh:ValidationResult ; 30 | sh:resultSeverity sh:Violation ; 31 | sh:focusNode ex:i ; 32 | sh:value "c"^^xsd:byte ; 33 | sh:resultPath ex:p ; 34 | sh:sourceShape ex:s ; 35 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ] ; 36 | sh:result [ rdf:type sh:ValidationResult ; 37 | sh:resultSeverity sh:Violation ; 38 | sh:focusNode ex:i ; 39 | sh:value "55"^^xsd:integer ; 40 | sh:resultPath ex:p ; 41 | sh:sourceShape ex:s ; 42 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ] ] ; 43 | mf:status sht:approved . 44 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/property/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/property" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | mf:include ; 16 | mf:include ; 17 | mf:include ; 18 | mf:include ; 19 | mf:include ; 20 | mf:include ; 21 | mf:include ; 22 | mf:include ; 23 | mf:include ; 24 | mf:include ; 25 | mf:include ; 26 | mf:include ; 27 | mf:include ; 28 | mf:include ; 29 | mf:include ; 30 | mf:include ; 31 | mf:include ; 32 | mf:include ; 33 | mf:include ; 34 | mf:include ; 35 | mf:include ; 36 | mf:include ; 37 | mf:include ; 38 | mf:include ; 39 | mf:include ; 40 | mf:include ; 41 | mf:include ; 42 | mf:include ; 43 | mf:include ; 44 | mf:include ; 45 | mf:include ; 46 | mf:include ; 47 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/property/minCount-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:TestShape 12 | rdf:type sh:NodeShape ; 13 | sh:property [ 14 | sh:path ex:property ; 15 | sh:minCount 0 ; 16 | sh:name "property" ; 17 | ] ; 18 | sh:targetNode ex:ValidResource1 ; 19 | . 20 | ex:ValidResource1 21 | rdf:type rdfs:Resource ; 22 | . 23 | <> 24 | rdf:type mf:Manifest ; 25 | mf:entries ( 26 | 27 | ) ; 28 | . 29 | 30 | rdf:type sht:Validate ; 31 | rdfs:label "Test of sh:minCount at property shape 001" ; 32 | mf:action [ 33 | sht:dataGraph <> ; 34 | sht:shapesGraph <> ; 35 | ] ; 36 | mf:result [ 37 | rdf:type sh:ValidationReport ; 38 | sh:conforms "true"^^xsd:boolean ; 39 | ] ; 40 | mf:status sht:approved ; 41 | . 42 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/property/uniqueLang-002-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | 3 | ex:i ex:message "HI"@en, "Hi"@en . 4 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/property/uniqueLang-002-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | @prefix xsd: . 4 | 5 | ex:s1 a sh:PropertyShape ; 6 | sh:targetNode ex:i ; 7 | sh:path ex:message ; 8 | sh:uniqueLang "1"^^xsd:boolean . 9 | 10 | # Note that the value above is "1"^^xsd:boolean, which is distinct from "true"^^xsd:boolean. 11 | # Only true is mentioned in the spec, meaning that "1" will not activate the constraint 12 | # and the constraint is being ignored. 13 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/property/uniqueLang-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | <> a mf:Manifest ; 12 | mf:entries ( 13 | 14 | ) . 15 | 16 | a sht:Validate ; 17 | rdfs:label "Test uniqueLang with other boolean literal for true" ; 18 | mf:action [ 19 | sht:dataGraph ; 20 | sht:shapesGraph ] ; 21 | mf:result [ a sh:ValidationReport ; 22 | sh:conforms "true"^^xsd:boolean ] ; 23 | mf:status sht:approved . 24 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/targets/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/core/targets" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | mf:include ; 16 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/targets/multipleTargets-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | ex:property1 "Also a value" ; 13 | . 14 | ex:TestShape 15 | rdf:type sh:NodeShape ; 16 | rdfs:label "Test shape" ; 17 | sh:in ( 18 | ex:ValidResource1 19 | ex:ValidResource2 20 | ) ; 21 | sh:targetSubjectsOf ex:property1 ; 22 | sh:targetSubjectsOf ex:property2 ; 23 | . 24 | ex:ValidResource1 25 | ex:property1 "Some value" ; 26 | . 27 | ex:ValidResource2 28 | ex:property2 "Other value" ; 29 | . 30 | <> 31 | rdf:type mf:Manifest ; 32 | mf:entries ( 33 | 34 | ) ; 35 | . 36 | 37 | rdf:type sht:Validate ; 38 | rdfs:label "Test of multiple targets 001" ; 39 | mf:action [ 40 | sht:dataGraph <> ; 41 | sht:shapesGraph <> ; 42 | ] ; 43 | mf:result [ 44 | rdf:type sh:ValidationReport ; 45 | sh:conforms "false"^^xsd:boolean ; 46 | sh:result [ 47 | rdf:type sh:ValidationResult ; 48 | sh:focusNode ex:InvalidResource1 ; 49 | sh:resultSeverity sh:Violation ; 50 | sh:sourceConstraintComponent sh:InConstraintComponent ; 51 | sh:sourceShape ex:TestShape ; 52 | sh:value ex:InvalidResource1 ; 53 | ] ; 54 | ] ; 55 | mf:status sht:approved ; 56 | . 57 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/targets/targetClassImplicit-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance 12 | rdf:type ex:SubClass ; 13 | rdfs:label "Invalid instance" ; 14 | . 15 | ex:SubClass 16 | rdf:type rdfs:Class ; 17 | rdfs:label "Sub class" ; 18 | rdfs:subClassOf ex:SuperClass ; 19 | . 20 | ex:SuperClass 21 | rdf:type rdfs:Class ; 22 | rdf:type sh:NodeShape ; 23 | rdfs:label "Super class" ; 24 | sh:in ( 25 | ex:ValidInstance 26 | ) ; 27 | . 28 | ex:ValidInstance 29 | rdf:type ex:SubClass ; 30 | rdfs:label "Valid instance" ; 31 | . 32 | <> 33 | rdf:type mf:Manifest ; 34 | mf:entries ( 35 | 36 | ) ; 37 | . 38 | 39 | rdf:type sht:Validate ; 40 | rdfs:label "Test of implicit sh:targetClass 001" ; 41 | mf:action [ 42 | sht:dataGraph <> ; 43 | sht:shapesGraph <> ; 44 | ] ; 45 | mf:result [ 46 | rdf:type sh:ValidationReport ; 47 | sh:conforms "false"^^xsd:boolean ; 48 | sh:result [ 49 | rdf:type sh:ValidationResult ; 50 | sh:focusNode ex:InvalidInstance ; 51 | sh:resultSeverity sh:Violation ; 52 | sh:sourceConstraintComponent sh:InConstraintComponent ; 53 | sh:sourceShape ex:SuperClass ; 54 | sh:value ex:InvalidInstance ; 55 | ] ; 56 | ] ; 57 | mf:status sht:approved ; 58 | . 59 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/targets/targetClassImplicit-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance 12 | rdf:type ex:SubClass ; 13 | rdfs:label "Invalid instance" ; 14 | . 15 | ex:SubClass 16 | rdf:type rdfs:Class ; 17 | rdfs:label "Sub class" ; 18 | rdfs:subClassOf ex:SuperClass ; 19 | . 20 | ex:SuperClass 21 | a sh:ShapeClass ; 22 | rdfs:label "Super class" ; 23 | sh:in ( 24 | ex:ValidInstance 25 | ) ; 26 | . 27 | ex:ValidInstance 28 | rdf:type ex:SubClass ; 29 | rdfs:label "Valid instance" ; 30 | . 31 | <> 32 | rdf:type mf:Manifest ; 33 | mf:entries ( 34 | 35 | ) ; 36 | . 37 | 38 | rdf:type sht:Validate ; 39 | rdfs:label "Verify that sh:ShapeClass is interpreted as implicit class target" ; 40 | mf:action [ 41 | sht:dataGraph <> ; 42 | sht:shapesGraph <> ; 43 | ] ; 44 | mf:result [ 45 | rdf:type sh:ValidationReport ; 46 | sh:conforms "false"^^xsd:boolean ; 47 | sh:result [ 48 | rdf:type sh:ValidationResult ; 49 | sh:focusNode ex:InvalidInstance ; 50 | sh:resultSeverity sh:Violation ; 51 | sh:sourceConstraintComponent sh:InConstraintComponent ; 52 | sh:sourceShape ex:SuperClass ; 53 | sh:value ex:InvalidInstance ; 54 | ] ; 55 | ] ; 56 | mf:status sht:approved ; 57 | . 58 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/targets/targetNode-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidResource1 12 | rdf:type rdfs:Resource ; 13 | rdfs:label "Invalid resource 1" ; 14 | . 15 | ex:TestShape 16 | rdf:type sh:NodeShape ; 17 | rdfs:label "Test shape" ; 18 | sh:property ex:TestShape-label ; 19 | sh:targetNode ex:InvalidResource1 ; 20 | sh:targetNode ex:ValidResource1 ; 21 | . 22 | ex:TestShape-label 23 | sh:path rdfs:label ; 24 | rdfs:label "label" ; 25 | sh:datatype xsd:string ; 26 | sh:maxCount 0 ; 27 | . 28 | ex:ValidResource1 29 | rdf:type rdfs:Resource ; 30 | . 31 | <> 32 | rdf:type mf:Manifest ; 33 | mf:entries ( 34 | 35 | ) ; 36 | . 37 | 38 | rdf:type sht:Validate ; 39 | rdfs:label "Test of sh:targetNode 001" ; 40 | mf:action [ 41 | sht:dataGraph <> ; 42 | sht:shapesGraph <> ; 43 | ] ; 44 | mf:result [ 45 | rdf:type sh:ValidationReport ; 46 | sh:conforms "false"^^xsd:boolean ; 47 | sh:result [ 48 | rdf:type sh:ValidationResult ; 49 | sh:focusNode ex:InvalidResource1 ; 50 | sh:resultPath rdfs:label ; 51 | sh:resultSeverity sh:Violation ; 52 | sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; 53 | sh:sourceShape ex:TestShape-label ; 54 | ] ; 55 | ] ; 56 | mf:status sht:approved ; 57 | . 58 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/targets/targetSubjectsOf-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex:InvalidInstance1 12 | ex:myProperty "A" ; 13 | ex:myProperty "B" ; 14 | . 15 | ex:MyClass 16 | rdf:type rdfs:Class ; 17 | . 18 | ex:TestShape 19 | rdf:type sh:NodeShape ; 20 | sh:property ex:TestShape-myProperty ; 21 | sh:targetSubjectsOf ex:myProperty ; 22 | . 23 | ex:TestShape-myProperty 24 | rdf:type sh:PropertyShape ; 25 | sh:path ex:myProperty ; 26 | sh:maxCount 1 ; 27 | . 28 | ex:ValidInstance1 29 | ex:myProperty "A" ; 30 | . 31 | <> 32 | rdf:type mf:Manifest ; 33 | mf:entries ( 34 | 35 | ) ; 36 | . 37 | 38 | rdf:type sht:Validate ; 39 | rdfs:label "Test of sh:targetSubjectsOf 001" ; 40 | mf:action [ 41 | sht:dataGraph <> ; 42 | sht:shapesGraph <> ; 43 | ] ; 44 | mf:result [ 45 | rdf:type sh:ValidationReport ; 46 | sh:conforms "false"^^xsd:boolean ; 47 | sh:result [ 48 | rdf:type sh:ValidationResult ; 49 | sh:focusNode ex:InvalidInstance1 ; 50 | sh:resultPath ex:myProperty ; 51 | sh:resultSeverity sh:Violation ; 52 | sh:sourceConstraintComponent sh:MaxCountConstraintComponent ; 53 | sh:sourceShape ex:TestShape-myProperty ; 54 | ] ; 55 | ] ; 56 | mf:status sht:approved ; 57 | . 58 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/validation-reports/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests for validation reports" ; 8 | mf:include ; 9 | . 10 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/validation-reports/shared-data.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | ex:i ex:p ex:j . 3 | ex:i ex:q ex:j . 4 | ex:j ex:r ex:k . 5 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/validation-reports/shared-shapes.ttl: -------------------------------------------------------------------------------- 1 | @prefix sh: . 2 | @prefix ex: . 3 | 4 | ex:s1 a sh:NodeShape ; 5 | sh:targetNode ex:i ; 6 | sh:property ex:s2 ; 7 | sh:property ex:s3 . 8 | 9 | ex:s2 sh:path ex:p ; 10 | sh:property ex:s4 . 11 | 12 | ex:s3 sh:path ex:q ; 13 | sh:property ex:s4 . 14 | 15 | ex:s4 sh:path ex:r ; 16 | sh:class ex:C . 17 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/core/validation-reports/shared.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix owl: . 3 | @prefix rdf: . 4 | @prefix rdfs: . 5 | @prefix sh: . 6 | @prefix sht: . 7 | @prefix xsd: . 8 | 9 | @prefix ex: . 10 | 11 | # This test case is under discussion, as there are different interpretations 12 | # on whether the nested sh:property constraint that is reached twice should 13 | # also be reported twice. 14 | 15 | <> 16 | rdf:type mf:Manifest ; 17 | mf:entries ( 18 | 19 | ) ; 20 | . 21 | 22 | 23 | rdf:type sht:Validate; 24 | rdfs:label "Test of validation report for shape shared by property constraints" ; 25 | mf:action [ 26 | sht:dataGraph ; 27 | sht:shapesGraph 28 | ] ; 29 | mf:result [ 30 | rdf:type sh:ValidationReport ; 31 | sh:conforms "false"^^xsd:boolean ; 32 | sh:result [ 33 | rdf:type sh:ValidationResult ; 34 | sh:resultSeverity sh:Violation ; 35 | sh:focusNode ex:j ; 36 | sh:value ex:k ; 37 | sh:resultPath ex:r ; 38 | sh:sourceShape ex:s4 ; 39 | sh:sourceConstraintComponent sh:ClassConstraintComponent 40 | ] ; 41 | sh:result [ 42 | rdf:type sh:ValidationResult ; 43 | sh:resultSeverity sh:Violation ; 44 | sh:focusNode ex:j ; 45 | sh:value ex:k ; 46 | sh:resultPath ex:r ; 47 | sh:sourceShape ex:s4 ; 48 | sh:sourceConstraintComponent sh:ClassConstraintComponent 49 | ] 50 | ] ; 51 | mf:status sht:approved . 52 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/component/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/component" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | . 13 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/node/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests converted from http://datashapes.org/sh/tests/tests/sparql/node" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/pre-binding/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests for pre-binding" ; 8 | mf:include ; 9 | mf:include ; 10 | mf:include ; 11 | mf:include ; 12 | mf:include ; 13 | mf:include ; 14 | mf:include ; 15 | mf:include ; 16 | mf:include ; 17 | mf:include ; 18 | mf:include ; 19 | mf:include ; 20 | mf:include ; 21 | mf:include ; 22 | . 23 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/pre-binding/pre-binding-006.ttl: -------------------------------------------------------------------------------- 1 | @prefix dash: . 2 | @prefix ex: . 3 | @prefix mf: . 4 | @prefix owl: . 5 | @prefix rdf: . 6 | @prefix rdfs: . 7 | @prefix sh: . 8 | @prefix sht: . 9 | @prefix xsd: . 10 | 11 | ex: 12 | sh:declare [ 13 | sh:prefix "ex" ; 14 | sh:namespace "http://datashapes.org/sh/tests/sparql/pre-binding/pre-binding-006.test#"^^xsd:anyURI ; 15 | ] . 16 | 17 | ex:TestShape 18 | rdf:type sh:NodeShape ; 19 | rdfs:label "Test shape" ; 20 | sh:sparql ex:TestShape-sparql ; 21 | sh:targetNode ex:InvalidResource ; 22 | . 23 | ex:TestShape-sparql 24 | sh:prefixes ex: ; 25 | sh:select """ 26 | SELECT $this 27 | WHERE { 28 | { 29 | SELECT * 30 | WHERE { 31 | FILTER ($this = ex:InvalidResource) . 32 | } 33 | } 34 | }""" ; 35 | . 36 | ex:ValidResource1 37 | rdf:type rdfs:Resource ; 38 | . 39 | <> 40 | rdf:type mf:Manifest ; 41 | mf:entries ( 42 | 43 | ) ; 44 | . 45 | 46 | rdf:type sht:Validate ; 47 | rdfs:label "Test of pre-binding in nested SELECT" ; 48 | mf:action [ 49 | sht:dataGraph <> ; 50 | sht:shapesGraph <> ; 51 | ] ; 52 | mf:result sht:Failure ; 53 | mf:status sht:approved ; 54 | . 55 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/pre-binding/unsupported-sparql-001.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported MINUS" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | $this ?x ?any . 32 | MINUS { $this ?x "Value" } 33 | }""" ; 34 | ] . 35 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/pre-binding/unsupported-sparql-002.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported VALUES" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | VALUES ?any { true } 32 | }""" ; 33 | ] . 34 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/pre-binding/unsupported-sparql-003.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported SERVICE" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | $this ?x ?any . 32 | SERVICE { 33 | ?a ?b ?c . 34 | } 35 | }""" ; 36 | ] . 37 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/pre-binding/unsupported-sparql-004.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported SELECT" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | $this ?x ?any . 32 | { 33 | SELECT ?other ?b 34 | WHERE { 35 | ?other ?b ?c . 36 | } 37 | } 38 | }""" ; 39 | ] . 40 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/pre-binding/unsupported-sparql-005.ttl: -------------------------------------------------------------------------------- 1 | @prefix ex: . 2 | @prefix mf: . 3 | @prefix owl: . 4 | @prefix rdf: . 5 | @prefix rdfs: . 6 | @prefix sh: . 7 | @prefix sht: . 8 | @prefix xsd: . 9 | 10 | <> 11 | rdf:type mf:Manifest ; 12 | mf:entries ( ) . 13 | 14 | 15 | rdf:type sht:Validate ; 16 | rdfs:label "Test of unsupported AS ?prebound" ; 17 | mf:action [ 18 | sht:dataGraph <> ; 19 | sht:shapesGraph <> ; 20 | ] ; 21 | mf:result sht:Failure ; 22 | mf:status sht:approved . 23 | 24 | ex:TestShape 25 | a sh:NodeShape ; 26 | sh:targetNode ex:InvalidResource ; 27 | sh:sparql [ 28 | sh:select """ 29 | SELECT $this 30 | WHERE { 31 | BIND (true AS $this) . 32 | }""" ; 33 | ] . 34 | -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/property/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | mf:include ; 8 | mf:include ; 9 | mf:include ; 10 | . -------------------------------------------------------------------------------- /shacl12-test-suite/tests/sparql/targets/manifest.ttl: -------------------------------------------------------------------------------- 1 | @prefix mf: . 2 | @prefix rdfs: . 3 | @prefix sht: . 4 | 5 | <> 6 | a mf:Manifest ; 7 | rdfs:label "Tests for SPARQL-based targets" ; 8 | mf:include ; 9 | . -------------------------------------------------------------------------------- /unmaintained/data-shapes-primer/images/computeArea-function.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/data-shapes-primer/images/computeArea-function.png -------------------------------------------------------------------------------- /unmaintained/data-shapes-primer/images/primer-images.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/data-shapes-primer/images/primer-images.pptx -------------------------------------------------------------------------------- /unmaintained/data-shapes-primer/images/square-class-diagram.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/data-shapes-primer/images/square-class-diagram.png -------------------------------------------------------------------------------- /unmaintained/data-shapes-primer/issue.ttl: -------------------------------------------------------------------------------- 1 | PREFIX sh: 2 | PREFIX iface: 3 | PREFIX ex: 4 | PREFIX foaf: 5 | PREFIX xsd: 6 | 7 | # shapes (Turtle) 8 | iface:IssueShape a sh:Shape ; 9 | sh:property [ 10 | sh:predicate ex:state ; 11 | sh:allowedValue ex:unassigned, ex:assigned ; 12 | sh:minCount 1 ; sh:maxCount 1 13 | ] ; 14 | sh:property [ 15 | sh:predicate ex:reportedBy ; 16 | sh:valueShape iface:UserShape ; 17 | sh:minCount 1 ; sh:maxCount 1 18 | ] . 19 | 20 | iface:UserShape a sh:Shape ; 21 | sh:choice [ 22 | sh:propertyGroup [ 23 | sh:property [ 24 | sh:predicate foaf:name ; 25 | sh:valueType xsd:string ; 26 | sh:minCount 1 ; sh:maxCount 1 27 | ] ] ; 28 | 29 | sh:propertyGroup [ 30 | sh:property [ 31 | sh:predicate foaf:givenName ; 32 | sh:valueType xsd:string ; 33 | sh:minCount 1 34 | ] ; 35 | sh:property [ 36 | sh:predicate foaf:familyName ; 37 | sh:valueType xsd:string ; 38 | sh:minCount 1 ; sh:maxCount 1 39 | ] 40 | ] 41 | ] ; 42 | sh:property [ 43 | sh:predicate foaf:mbox ; 44 | sh:nodeKind sh:IRI ; 45 | sh:minCount 1 46 | ] . 47 | 48 | -------------------------------------------------------------------------------- /unmaintained/data-shapes-primer/shacl.shex: -------------------------------------------------------------------------------- 1 | PREFIX sh: 2 | PREFIX xsd: 3 | 4 | start=sh:ShapeShape 5 | 6 | sh:ShapeShape { 7 | a (sh:Shape)?, 8 | sh:property @sh:PropertyShape*, 9 | sh:inverseProperty @sh:InversePropertyShape*, 10 | sh:choice @sh:ShapeShape*, 11 | sh:propertyGroup @sh:ShapeShape* 12 | } 13 | 14 | sh:PropertyShape { 15 | a (sh:PropertyShape)?, 16 | sh:predicate IRI, 17 | (sh:allowedValue .+ 18 | | sh:valueShape IRI 19 | | sh:valueType IRI 20 | | sh:nodeType IRI 21 | ), 22 | sh:minCount xsd:integer?, 23 | sh:maxCount xsd:integer? 24 | } 25 | 26 | sh:InversePropertyShape { 27 | a (sh:InversePropertyShape)?, 28 | sh:predicate IRI, 29 | (sh:allowedValue .+ 30 | | sh:valueShape IRI 31 | | sh:nodeType IRI 32 | ), 33 | sh:minCount xsd:integer?, 34 | sh:maxCount xsd:integer? 35 | } 36 | -------------------------------------------------------------------------------- /unmaintained/semantics/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | SHACL-semantics 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /unmaintained/semantics/html-handmade-images/inference-inverse-rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/html-handmade-images/inference-inverse-rule.png -------------------------------------------------------------------------------- /unmaintained/semantics/html-handmade-images/inference-oneof-rule.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/html-handmade-images/inference-oneof-rule.png -------------------------------------------------------------------------------- /unmaintained/semantics/html-handmade-images/inference-rules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/html-handmade-images/inference-rules.png -------------------------------------------------------------------------------- /unmaintained/semantics/html-handmade-images/inference-simple-schema.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/html-handmade-images/inference-simple-schema.png -------------------------------------------------------------------------------- /unmaintained/semantics/html-handmade-images/rule-choice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/html-handmade-images/rule-choice.png -------------------------------------------------------------------------------- /unmaintained/semantics/html-handmade-images/rule-disj.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/html-handmade-images/rule-disj.png -------------------------------------------------------------------------------- /unmaintained/semantics/html-handmade-images/rule-empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/html-handmade-images/rule-empty.png -------------------------------------------------------------------------------- /unmaintained/semantics/html-handmade-images/rule-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/html-handmade-images/rule-group.png -------------------------------------------------------------------------------- /unmaintained/semantics/html-handmade-images/rule-triple-constraint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/html-handmade-images/rule-triple-constraint.png -------------------------------------------------------------------------------- /unmaintained/semantics/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/img1.png -------------------------------------------------------------------------------- /unmaintained/semantics/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/img3.png -------------------------------------------------------------------------------- /unmaintained/semantics/img4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/img4.png -------------------------------------------------------------------------------- /unmaintained/semantics/img5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/img5.png -------------------------------------------------------------------------------- /unmaintained/semantics/img6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/img6.png -------------------------------------------------------------------------------- /unmaintained/semantics/img7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/img7.png -------------------------------------------------------------------------------- /unmaintained/semantics/img8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/img8.png -------------------------------------------------------------------------------- /unmaintained/semantics/img9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/img9.png -------------------------------------------------------------------------------- /unmaintained/semantics/local.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/data-shapes/b9ba57add2b769809a8489545fee35dbefef0904/unmaintained/semantics/local.css -------------------------------------------------------------------------------- /w3c.json: -------------------------------------------------------------------------------- 1 | { 2 | "group": 73865, 3 | "contacts": [ 4 | "caribouW3" 5 | ], 6 | "policy": "open", 7 | "repo-type": "rec-track" 8 | } 9 | --------------------------------------------------------------------------------