├── .github
├── CODEOWNERS
├── dependabot.yml
└── workflows
│ ├── release.yaml
│ ├── ci.yaml
│ └── test.yaml
├── .gitignore
├── .dockerignore
├── views
├── meta.html
├── index.html
└── relation.html
├── img
├── cube-link-basic.png
├── cube-link-dimensions.png
└── cube-link-observedBy.png
├── meta
├── abstract.md
├── index.html
├── config.js
└── meta.ttl
├── relation
├── abstract.md
├── index.html
├── config.js
├── core.md
└── relation.ttl
├── trifid
├── config.local.json
├── config.json
├── redirect.cjs
└── config-base.json
├── test
├── check-metadata.sh
├── observations
│ ├── withoutName.ttl.approved.txt
│ ├── withoutType.ttl.approved.txt
│ ├── undefinedAllowed.ttl.approved.txt
│ ├── undefinedOrBounded.ttl.approved.txt
│ ├── undefinedNotAllowed.ttl.approved.txt
│ ├── withoutName.ttl
│ ├── withoutType.ttl
│ ├── undefinedNotAllowed.ttl
│ ├── undefinedAllowed.ttl
│ └── undefinedOrBounded.ttl
├── basic-cube-constraint
│ ├── valid.minimal.ttl
│ ├── invalid.withoutObservationSet.ttl
│ ├── invalid.withoutProperties.ttl
│ ├── invalid.withoutObservations.ttl
│ ├── invalid.withoutObservationSet.ttl.approved.txt
│ ├── invalid.withoutProperties.ttl.approved.txt
│ └── invalid.withoutObservations.ttl.approved.txt
├── profile-opendataswiss-lindas
│ ├── invalid.noTypeDataset.ttl.approved.txt
│ ├── invalid.noWorkExample.ttl.approved.txt
│ ├── invalid.expired.ttl.approved.txt
│ ├── invalid.draft.ttl.approved.txt
│ ├── invalid.draft.ttl
│ ├── valid.ttl
│ ├── invalid.noTypeDataset.ttl
│ ├── invalid.noWorkExample.ttl
│ └── invalid.expired.ttl
├── profile-visualize
│ ├── warning-missing-sh-in.ttl.approved.txt
│ ├── invalid-no-status.ttl.approved.txt
│ ├── invalid-data-kind-unexpected.ttl.approved.txt
│ ├── invalid-data-kinds.ttl.approved.txt
│ ├── invalid-datatype-langstring.ttl.approved.txt
│ ├── invalid-datatype-multiple.ttl.approved.txt
│ ├── invalid-no-status.ttl
│ ├── valid-work-example-warning.ttl
│ ├── valid-draft.ttl
│ ├── invalid-datatype-langstring.ttl
│ ├── invalid-datatype-multiple.ttl
│ ├── invalid-temporal.ttl.approved.txt
│ ├── valid.ttl
│ ├── warning-missing-sh-in.ttl
│ ├── valid-sh-in.ttl
│ ├── invalid-scale-types.ttl
│ ├── valid-data-kinds.ttl
│ ├── invalid-data-kinds.ttl
│ ├── invalid-temporal.ttl
│ ├── invalid-data-kind-unexpected.ttl
│ └── invalid-scale-types.ttl.approved.txt
├── standalone-constraint-constraint
│ ├── invalid.dimensionRelation-multipleDcType.ttl.approved.txt
│ ├── invalid.annotation-missingValue.ttl.approved.txt
│ ├── invalid.annotation-invalidRanges.ttl.approved.txt
│ ├── invalid.annotation-mixedConstraints.ttl.approved.txt
│ ├── invalid.annotation-tooManyValues.ttl.approved.txt
│ ├── warning-qudt-unit.ttl.approved.txt
│ ├── invalid.withoutName.ttl.approved.txt
│ ├── invalid.withoutType.ttl.approved.txt
│ ├── invalid.withoutName.ttl
│ ├── invalid.withoutType.ttl
│ ├── valid.undefinedNotAllowed.ttl
│ ├── valid.undefinedAllowed.ttl
│ ├── invalid.annotation-keyDimensions.ttl.approved.txt
│ ├── valid.undefinedOrBounded.ttl
│ ├── invalid.dimensionRelation-relatesToNotMatching.ttl.approved.txt
│ ├── invalid.malformedList.ttl
│ ├── warning-qudt-unit.ttl
│ ├── invalid.dimensionRelation-relatesToNotMatching.ttl
│ ├── invalid.dimensionRelation-multipleDcType.ttl
│ ├── invalid.malformedList.ttl.approved.txt
│ ├── invalid.annotation-missingValue.ttl
│ ├── valid.dimensionRelation.ttl
│ ├── invalid.annotation-mixedConstraints.ttl
│ ├── invalid.annotation-invalidRanges.ttl
│ ├── invalid.annotation-keyDimensions.ttl
│ ├── invalid.annotation-tooManyValues.ttl
│ └── valid.annotation.ttl
├── profile-opendataswiss
│ ├── invalid.missing-identifier.cube.ttl.approved.txt
│ ├── invalid.publisherNoClass.ttl.approved.txt
│ ├── invalid.missing-identifier.cube.ttl
│ ├── invalid.publisherNoClass.ttl
│ ├── valid.publisherBlankNode.ttl
│ └── valid.ttl
├── standalone-cube-constraint
│ ├── invalid.blankContactPoint.missingEmail.ttl.approved.txt
│ ├── invalid.blankContactPoint.missingName.ttl.approved.txt
│ ├── valid.blankContactPoint.ttl
│ ├── invalid.blankContactPoint.missingName.ttl
│ └── invalid.blankContactPoint.missingEmail.ttl
└── check-observations.sh
├── .changeset
├── config.json
└── README.md
├── documentation
├── abstract.md
├── existingwork.md
└── constraints.md
├── validation
├── profile-opendataswiss-lindas.ttl
├── shared
│ └── data-kind.ttl
├── basic-cube-constraint.ttl
└── basic-cube-constraint-ml.ttl
├── Dockerfile
├── config.js
├── best-practice.md
├── index.html
├── package.json
├── vocab.ttl
├── constraint.ttl
├── CHANGELOG.md
└── README.md
/.github/CODEOWNERS:
--------------------------------------------------------------------------------
1 | /.github/ @ludovicm67
2 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | node_modules
3 | *.received.*
4 | *.log
5 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | .git
2 | .gitignore
3 | node_modules/
4 | Dockerfile
5 | .github
6 |
--------------------------------------------------------------------------------
/views/meta.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | meta
4 |
5 |
6 |
--------------------------------------------------------------------------------
/views/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | index
4 |
5 |
6 |
--------------------------------------------------------------------------------
/views/relation.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | relation
4 |
5 |
6 |
--------------------------------------------------------------------------------
/img/cube-link-basic.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zazuko/cube-link/HEAD/img/cube-link-basic.png
--------------------------------------------------------------------------------
/img/cube-link-dimensions.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zazuko/cube-link/HEAD/img/cube-link-dimensions.png
--------------------------------------------------------------------------------
/img/cube-link-observedBy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zazuko/cube-link/HEAD/img/cube-link-observedBy.png
--------------------------------------------------------------------------------
/meta/abstract.md:
--------------------------------------------------------------------------------
1 | This vocubulary is intended as a companion vocabulary to the [Cube Schema vocabulary](..).
--------------------------------------------------------------------------------
/relation/abstract.md:
--------------------------------------------------------------------------------
1 | This vocubulary is intended as a companion vocabulary to the [Cube Schema vocabulary](..).
--------------------------------------------------------------------------------
/trifid/config.local.json:
--------------------------------------------------------------------------------
1 | {
2 | "baseConfig": "cwd:trifid/config.json",
3 | "datasetBaseUrl": "https://cube.link/"
4 | }
5 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 | - package-ecosystem: "github-actions"
4 | directory: "/"
5 | schedule:
6 | interval: "weekly"
7 |
--------------------------------------------------------------------------------
/test/check-metadata.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | npx shacl-test --shapes="validation/$1.ttl" \
4 | --valid-cases="test/$1/valid*.ttl" \
5 | --invalid-cases="test/$1/invalid*.ttl" \
6 | --command="npx b59 cube check-metadata --profile" \
7 | --prefixes=schema,cube=https://cube.link/ \
8 | ${*:2}
9 |
--------------------------------------------------------------------------------
/.changeset/config.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://unpkg.com/@changesets/config@2.3.1/schema.json",
3 | "changelog": "@changesets/cli/changelog",
4 | "commit": false,
5 | "fixed": [],
6 | "linked": [],
7 | "access": "public",
8 | "baseBranch": "main",
9 | "updateInternalDependencies": "patch",
10 | "ignore": [],
11 | "privatePackages": {
12 | "tag": true,
13 | "version": true
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/test/observations/withoutName.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:conforms true .
10 |
--------------------------------------------------------------------------------
/test/observations/withoutType.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:conforms true .
10 |
--------------------------------------------------------------------------------
/test/observations/undefinedAllowed.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:conforms true .
10 |
--------------------------------------------------------------------------------
/test/observations/undefinedOrBounded.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:conforms true .
10 |
--------------------------------------------------------------------------------
/.changeset/README.md:
--------------------------------------------------------------------------------
1 | # Changesets
2 |
3 | Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
4 | with multi-package repos, or single-package repos to help you version and publish your code. You can
5 | find the full documentation for it [in our repository](https://github.com/changesets/changesets)
6 |
7 | We have a quick list of common questions to get you started engaging with this project in
8 | [our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md)
9 |
--------------------------------------------------------------------------------
/test/basic-cube-constraint/valid.minimal.ttl:
--------------------------------------------------------------------------------
1 | @prefix xsd: .
2 | @prefix dc: .
3 | @prefix rdf: .
4 | @prefix sh: .
5 | @prefix cube: .
6 | @base .
7 |
8 | a cube:Cube ;
9 | cube:observationSet ;
10 | cube:observationConstraint .
11 | cube:observation .
12 | sh:property
13 | [ sh:path rdf:type ] ,
14 | [ sh:path cube:observedBy ] ,
15 | [ sh:path dc:date ] .
16 |
--------------------------------------------------------------------------------
/test/basic-cube-constraint/invalid.withoutObservationSet.ttl:
--------------------------------------------------------------------------------
1 | @prefix xsd: .
2 | @prefix dc: .
3 | @prefix rdf: .
4 | @prefix sh: .
5 | @prefix cube: .
6 | @base .
7 |
8 | a cube:Cube ;
9 | #cube:observationSet ;
10 | cube:observationConstraint .
11 | cube:observation .
12 | sh:property
13 | [ sh:path rdf:type ] ,
14 | [ sh:path cube:observedBy ] ,
15 | [ sh:path dc:date ] .
16 |
--------------------------------------------------------------------------------
/test/basic-cube-constraint/invalid.withoutProperties.ttl:
--------------------------------------------------------------------------------
1 | @prefix xsd: .
2 | @prefix dc: .
3 | @prefix rdf: .
4 | @prefix sh: .
5 | @prefix cube: .
6 | @base .
7 |
8 | a cube:Cube ;
9 | cube:observationSet ;
10 | cube:observationConstraint .
11 | cube:observation .
12 | # sh:property
13 | #[ sh:path rdf:type ] ,
14 | #[ sh:path cube:observedBy ] ,
15 | #[ sh:path dc:date ] .
16 |
--------------------------------------------------------------------------------
/test/basic-cube-constraint/invalid.withoutObservations.ttl:
--------------------------------------------------------------------------------
1 | @prefix xsd: .
2 | @prefix dc: .
3 | @prefix rdf: .
4 | @prefix sh: .
5 | @prefix cube: .
6 | @base .
7 |
8 | a cube:Cube ;
9 | cube:observationSet ;
10 | cube:observationConstraint .
11 | # cube:observation .
12 | sh:property
13 | [ sh:path rdf:type ] ,
14 | [ sh:path cube:observedBy ] ,
15 | [ sh:path dc:date ] .
16 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss-lindas/invalid.noTypeDataset.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:ClassConstraintComponent ;
13 | sh:sourceShape ;
14 | sh:focusNode ;
15 | sh:value ;
16 | ] ;
17 | sh:conforms false .
18 |
--------------------------------------------------------------------------------
/test/profile-visualize/warning-missing-sh-in.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix schema: .
4 | @prefix xsd: .
5 | @prefix cube: .
6 |
7 | _:report a sh:ValidationReport ;
8 | sh:result [
9 | rdf:type sh:ValidationResult ;
10 | sh:resultSeverity sh:Info ;
11 | sh:sourceConstraintComponent sh:XoneConstraintComponent ;
12 | sh:sourceShape ;
13 | sh:focusNode _:b2 ;
14 | sh:value _:b2 ;
15 | sh:resultMessage "For performance reason, add list of occurring elements to nominal and ordinal Key Dimensions" ;
16 | ] ;
17 | sh:conforms false .
18 |
--------------------------------------------------------------------------------
/test/standalone-constraint-constraint/invalid.dimensionRelation-multipleDcType.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:MaxCountConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path ;
15 | sh:maxCount 1 ;
16 | ] ;
17 | sh:focusNode _:b5 ;
18 | sh:resultPath ;
19 | sh:resultMessage "More than 1 values" ;
20 | ] ;
21 | sh:conforms false .
22 |
--------------------------------------------------------------------------------
/documentation/abstract.md:
--------------------------------------------------------------------------------
1 | A good amount of data in organizations is maintained in tables with multiple columns. Typically you can think of a multitude of Excel or CSV tables. This data often has a dimension which describes the time, sometimes other dimensions for classifying the data, and in most cases some actual observed values or counts.
2 |
3 | Such tables are holding the data in a structured form, but most of the time, the information to understand the columns and also the necessary metadata enabling the creation of use-full representations in charts and visualizations is missing.
4 |
5 | With the creation of Cubes you as data provider and domain specialist of the data are able to augment and annotate your data with everything necessary to understand the input data – directly in the to be published dataset. Fully annotated Cubes can also be used to visualize your data proper tooling.
--------------------------------------------------------------------------------
/meta/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
12 | Cube Schema - Meta vocabulary
13 |
14 |
15 | Cube Schema - Meta vocabulary
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/relation/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
9 |
12 | Cube Schema - Relation vocabulary
13 |
14 |
15 | Cube Schema - Relation vocabulary
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/test/standalone-constraint-constraint/invalid.annotation-missingValue.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:MinCountConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path _:b690 ;
15 | sh:minCount 1 ;
16 | ] ;
17 | sh:focusNode _:b4 ;
18 | sh:resultPath _:b690 ;
19 | sh:resultMessage "Less than 1 values" ;
20 | ] ;
21 | sh:conforms false .
22 |
23 | _:b690 sh:alternativePath (
24 | schema:minValue
25 | schema:maxValue
26 | ) .
27 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss-lindas/invalid.noWorkExample.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:HasValueConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path schema:workExample ;
15 | sh:hasValue ;
16 | ] ;
17 | sh:focusNode ;
18 | sh:resultPath schema:workExample ;
19 | sh:resultMessage "Missing expected value " ;
20 | ] ;
21 | sh:conforms false .
22 |
--------------------------------------------------------------------------------
/test/standalone-constraint-constraint/invalid.annotation-invalidRanges.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:XoneConstraintComponent ;
13 | sh:sourceShape ;
14 | sh:focusNode _:b5 ;
15 | sh:value _:b5 ;
16 | sh:resultMessage "annotation context only allows constraints sh:hasValue, sh:in, sh:minInclusive, sh:maxInclusive, sh:minExclusive, sh:maxExclusive and they cannot be mixed" ;
17 | ] ;
18 | sh:conforms false .
19 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss-lindas/invalid.expired.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:MaxCountConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path _:b628 ;
15 | sh:maxCount 0 ;
16 | sh:message "Cube cannot be expired" ;
17 | ] ;
18 | sh:focusNode ;
19 | sh:resultPath _:b628 ;
20 | sh:resultMessage "Cube cannot be expired" ;
21 | ] ;
22 | sh:conforms false .
23 |
24 | _:b628 sh:alternativePath (
25 | schema:validThrough
26 | schema:expires
27 | ) .
28 |
--------------------------------------------------------------------------------
/test/standalone-constraint-constraint/invalid.annotation-mixedConstraints.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:XoneConstraintComponent ;
13 | sh:sourceShape ;
14 | sh:focusNode _:b5 ;
15 | sh:value _:b5 ;
16 | sh:resultMessage "annotation context only allows constraints sh:hasValue, sh:in, sh:minInclusive, sh:maxInclusive, sh:minExclusive, sh:maxExclusive and they cannot be mixed" ;
17 | ] ;
18 | sh:conforms false .
19 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss-lindas/invalid.draft.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:HasValueConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path schema:creativeWorkStatus ;
15 | sh:hasValue ;
16 | ] ;
17 | sh:focusNode ;
18 | sh:resultPath schema:creativeWorkStatus ;
19 | sh:resultMessage "Missing expected value " ;
20 | ] ;
21 | sh:conforms false .
22 |
--------------------------------------------------------------------------------
/test/observations/undefinedNotAllowed.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:DatatypeConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path ;
15 | sh:datatype xsd:decimal ;
16 | schema:name "some Quantity" ;
17 | ] ;
18 | sh:focusNode ;
19 | sh:resultPath ;
20 | sh:value ""^^cube:Undefined ;
21 | sh:resultMessage "Value does not have datatype " ;
22 | ] ;
23 | sh:conforms false .
24 |
--------------------------------------------------------------------------------
/test/profile-visualize/invalid-no-status.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:MinCountConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path schema:creativeWorkStatus ;
15 | sh:in (
16 |
17 |
18 | ) ;
19 | sh:minCount 1 ;
20 | ] ;
21 | sh:focusNode ;
22 | sh:resultPath schema:creativeWorkStatus ;
23 | sh:resultMessage "Less than 1 values" ;
24 | ] ;
25 | sh:conforms false .
26 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss/invalid.missing-identifier.cube.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:MinCountConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path ;
15 | sh:datatype xsd:string ;
16 | sh:maxCount 1 ;
17 | sh:minCount 1 ;
18 | sh:flags "i" ;
19 | sh:pattern "^[A-Z0-9-_]+@[A-Z0-9-_]+$" ;
20 | ] ;
21 | sh:focusNode ;
22 | sh:resultPath ;
23 | sh:resultMessage "Less than 1 values" ;
24 | ] ;
25 | sh:conforms false .
26 |
--------------------------------------------------------------------------------
/test/basic-cube-constraint/invalid.withoutObservationSet.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:MinCountConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path cube:observationSet ;
15 | sh:minCount 1 ;
16 | sh:node ;
17 | sh:message "cube:Cube needs at least one cube:ObservationSet" ;
18 | ] ;
19 | sh:focusNode ;
20 | sh:resultPath cube:observationSet ;
21 | sh:resultMessage "cube:Cube needs at least one cube:ObservationSet" ;
22 | ] ;
23 | sh:conforms false .
24 |
--------------------------------------------------------------------------------
/test/standalone-constraint-constraint/invalid.annotation-tooManyValues.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:MaxCountConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path schema:minValue ;
15 | sh:maxCount 1 ;
16 | ] ;
17 | sh:focusNode _:b4 ;
18 | sh:resultPath schema:minValue ;
19 | sh:resultMessage "More than 1 values" ;
20 | ], [
21 | rdf:type sh:ValidationResult ;
22 | sh:resultSeverity sh:Violation ;
23 | sh:sourceConstraintComponent sh:MaxCountConstraintComponent ;
24 | sh:sourceShape [
25 | sh:path schema:maxValue ;
26 | sh:maxCount 1 ;
27 | ] ;
28 | sh:focusNode _:b6 ;
29 | sh:resultPath schema:maxValue ;
30 | sh:resultMessage "More than 1 values" ;
31 | ] ;
32 | sh:conforms false .
33 |
--------------------------------------------------------------------------------
/test/standalone-constraint-constraint/warning-qudt-unit.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix schema: .
4 | @prefix xsd: .
5 | @prefix cube: .
6 |
7 | _:report a sh:ValidationReport ;
8 | sh:result [
9 | rdf:type sh:ValidationResult ;
10 | sh:resultSeverity sh:Warning ;
11 | sh:sourceConstraintComponent sh:OrConstraintComponent ;
12 | sh:sourceShape [
13 | sh:path sh:property ;
14 | sh:or (
15 | [
16 | sh:path ;
17 | sh:equals ;
18 | ]
19 | [
20 | sh:path ;
21 | sh:maxCount 0 ;
22 | ]
23 | ) ;
24 | sh:message "The use of qudt:unit is deprecated, please use qudt:hasUnit instead" ;
25 | sh:severity sh:Warning ;
26 | ] ;
27 | sh:focusNode ;
28 | sh:resultPath sh:property ;
29 | sh:value _:b3 ;
30 | sh:resultMessage "The use of qudt:unit is deprecated, please use qudt:hasUnit instead" ;
31 | ] ;
32 | sh:conforms false .
33 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss/invalid.publisherNoClass.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:XoneConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path ;
15 | sh:maxCount 1 ;
16 | sh:minCount 1 ;
17 | sh:xone (
18 | [
19 | sh:nodeKind sh:IRI ;
20 | ]
21 | [
22 | sh:nodeKind sh:BlankNode ;
23 | sh:class ;
24 | ]
25 | ) ;
26 | sh:message "Publisher must be a foaf:Organization DCAT-AP." ;
27 | ] ;
28 | sh:focusNode ;
29 | sh:resultPath ;
30 | sh:value _:b2 ;
31 | sh:resultMessage "Publisher must be a foaf:Organization DCAT-AP." ;
32 | ] ;
33 | sh:conforms false .
34 |
--------------------------------------------------------------------------------
/test/observations/withoutName.ttl:
--------------------------------------------------------------------------------
1 | @prefix rdf: .
2 | @prefix cube: .
3 | @prefix observation: .
4 | @prefix sh: .
5 | @prefix xsd: .
6 | @prefix schema: .
7 | @prefix qudt: .
8 | @base .
9 |
10 | a cube:Cube ;
11 | cube:observationConstraint ;
12 | cube:observationSet .
13 |
14 | cube:observation , .
15 |
16 | a cube:Observation ; cube:observedBy ;
17 | 4.9 .
18 |
19 | a cube:Observation ; cube:observedBy ;
20 | 1.0 .
21 |
22 | a cube:Constraint ;
23 | sh:targetClass cube:Observation ;
24 | sh:closed true ;
25 | sh:property [ sh:path rdf:type ; sh:nodeKind sh:IRI] ;
26 | sh:property [ sh:path cube:observedBy ; sh:nodeKind sh:IRI ] ;
27 | sh:property [
28 | sh:path ;
29 | sh:datatype xsd:decimal ;
30 | # schema:name "some Quantity" ;
31 | ] ;
32 | .
--------------------------------------------------------------------------------
/test/observations/withoutType.ttl:
--------------------------------------------------------------------------------
1 | @prefix rdf: .
2 | @prefix cube: .
3 | @prefix observation: .
4 | @prefix sh: .
5 | @prefix xsd: .
6 | @prefix schema: .
7 | @prefix qudt: .
8 | @base .
9 |
10 | a cube:Cube ;
11 | cube:observationConstraint ;
12 | cube:observationSet .
13 |
14 | cube:observation , .
15 |
16 | a cube:Observation ; cube:observedBy ;
17 | 4.9 .
18 |
19 | a cube:Observation ; cube:observedBy ;
20 | 1.0 .
21 |
22 | a cube:Constraint ;
23 | sh:targetClass cube:Observation ;
24 | sh:closed true ;
25 | sh:property [ sh:path rdf:type ; sh:nodeKind sh:IRI] ;
26 | sh:property [ sh:path cube:observedBy ; sh:nodeKind sh:IRI ] ;
27 | sh:property [
28 | sh:path ;
29 | #sh:datatype xsd:decimal ;
30 | schema:name "some Quantity" ;
31 | ] ;
32 | .
--------------------------------------------------------------------------------
/test/standalone-constraint-constraint/invalid.withoutName.ttl.approved.txt:
--------------------------------------------------------------------------------
1 | @prefix sh: .
2 | @prefix rdf: .
3 | @prefix rdfs: .
4 | @prefix xsd: .
5 | @prefix schema: .
6 | @prefix cube: .
7 |
8 | _:report a sh:ValidationReport ;
9 | sh:result [
10 | rdf:type sh:ValidationResult ;
11 | sh:resultSeverity sh:Violation ;
12 | sh:sourceConstraintComponent sh:NodeConstraintComponent ;
13 | sh:sourceShape [
14 | sh:path sh:property ;
15 | sh:node ;
16 | sh:message "needs a schema:name" ;
17 | ] ;
18 | sh:focusNode ;
19 | sh:value _:b3 ;
20 | sh:detail [
21 | rdf:type sh:ValidationResult ;
22 | sh:resultSeverity sh:Violation ;
23 | sh:sourceConstraintComponent sh:OrConstraintComponent ;
24 | sh:sourceShape ;
25 | sh:focusNode _:b3 ;
26 | sh:value _:b3 ;
27 | ] ;
28 | sh:resultPath sh:property ;
29 | sh:resultMessage "needs a schema:name" ;
30 | ] ;
31 | sh:conforms false .
32 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss-lindas/invalid.draft.ttl:
--------------------------------------------------------------------------------
1 | PREFIX xsd:
2 | PREFIX dcterms:
3 | PREFIX schema:
4 | PREFIX dcat:
5 | PREFIX cube:
6 | PREFIX ex:
7 |
8 | ex:Cube
9 | a cube:Cube, dcat:Dataset ;
10 | cube:observationSet ;
11 | schema:name "Example cube" ;
12 | schema:publisher ;
13 | schema:creator ;
14 | schema:contributor ;
15 | dcterms:identifier "cube-1234" ;
16 | schema:workExample ;
17 | schema:creativeWorkStatus ;
18 | dcterms:creator ex:John-Doe ;
19 | schema:dateCreated "2020-10-10"^^xsd:date ;
20 | schema:dateModified "2020-10-10"^^xsd:date ;
21 | schema:datePublished "2020-11-11"^^xsd:date ;
22 | schema:contactPoint
23 | [
24 | schema:name "John Doe" ;
25 | schema:email "john@doe.tech" ;
26 | ] ;
27 | .
28 |
29 | cube:observation .
30 |
31 | a cube:Observation ;
32 | cube:observedBy ;
33 | 4.9 .
34 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss-lindas/valid.ttl:
--------------------------------------------------------------------------------
1 | PREFIX xsd:
2 | PREFIX dcterms:
3 | PREFIX schema:
4 | PREFIX dcat:
5 | PREFIX cube:
6 | PREFIX ex:
7 |
8 | ex:Cube
9 | a cube:Cube, dcat:Dataset ;
10 | cube:observationSet ;
11 | schema:name "Example cube" ;
12 | schema:publisher ;
13 | schema:creator ;
14 | schema:contributor ;
15 | dcterms:identifier "cube-1234" ;
16 | schema:workExample ;
17 | schema:creativeWorkStatus ;
18 | dcterms:creator ex:John-Doe ;
19 | schema:dateCreated "2020-10-10"^^xsd:date ;
20 | schema:dateModified "2020-10-10"^^xsd:date ;
21 | schema:datePublished "2020-11-11"^^xsd:date ;
22 | schema:contactPoint
23 | [
24 | schema:name "John Doe" ;
25 | schema:email "john@doe.tech" ;
26 | ] ;
27 | .
28 |
29 | cube:observation .
30 |
31 | a cube:Observation ;
32 | cube:observedBy ;
33 | 4.9 .
34 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss-lindas/invalid.noTypeDataset.ttl:
--------------------------------------------------------------------------------
1 | PREFIX xsd:
2 | PREFIX dcterms:
3 | PREFIX schema:
4 | PREFIX dcat:
5 | PREFIX cube:
6 | PREFIX ex:
7 |
8 | ex:Cube
9 | a cube:Cube ; # dcat:Dataset ;
10 | cube:observationSet ;
11 | schema:name "Example cube" ;
12 | schema:publisher ;
13 | schema:creator ;
14 | schema:contributor ;
15 | dcterms:identifier "cube-1234" ;
16 | schema:workExample ;
17 | schema:creativeWorkStatus ;
18 | dcterms:creator ex:John-Doe ;
19 | schema:dateCreated "2020-10-10"^^xsd:date ;
20 | schema:dateModified "2020-10-10"^^xsd:date ;
21 | schema:datePublished "2020-11-11"^^xsd:date ;
22 | schema:contactPoint
23 | [
24 | schema:name "John Doe" ;
25 | schema:email "john@doe.tech" ;
26 | ] ;
27 | .
28 |
29 | cube:observation .
30 |
31 | a cube:Observation ;
32 | cube:observedBy ;
33 | 4.9 .
34 |
--------------------------------------------------------------------------------
/test/profile-opendataswiss-lindas/invalid.noWorkExample.ttl:
--------------------------------------------------------------------------------
1 | PREFIX xsd:
2 | PREFIX dcterms:
3 | PREFIX schema:
4 | PREFIX dcat:
5 | PREFIX cube:
6 | PREFIX ex:
7 |
8 | ex:Cube
9 | a cube:Cube, dcat:Dataset ;
10 | cube:observationSet ;
11 | schema:name "Example cube" ;
12 | schema:publisher ;
13 | schema:creator ;
14 | schema:contributor ;
15 | dcterms:identifier "cube-1234" ;
16 | # schema:workExample ;
17 | schema:creativeWorkStatus ;
18 | dcterms:creator ex:John-Doe ;
19 | schema:dateCreated "2020-10-10"^^xsd:date ;
20 | schema:dateModified "2020-10-10"^^xsd:date ;
21 | schema:datePublished "2020-11-11"^^xsd:date ;
22 | schema:contactPoint
23 | [
24 | schema:name "John Doe" ;
25 | schema:email "john@doe.tech" ;
26 | ] ;
27 | .
28 |
29 | cube:observation .
30 |
31 | a cube:Observation ;
32 | cube:observedBy ;
33 | 4.9 .
34 |
--------------------------------------------------------------------------------
/test/observations/undefinedNotAllowed.ttl:
--------------------------------------------------------------------------------
1 | @prefix rdf: .
2 | @prefix cube: .
3 | @prefix observation: .
4 | @prefix sh: .
5 | @prefix xsd: .
6 | @prefix schema: .
7 | @base .
8 |
9 | a cube:Cube ;
10 | cube:observationConstraint ;
11 | cube:observationSet .
12 |
13 | cube:observation ,