Skip to content

Issues regarding validation of SHACL shapes against specification of mobilityDCAT-AP #160

@lcomet

Description

@lcomet

SHACL Failing Cases Report

Specification: mobilityDCAT-AP v1.1.0
Shapes: dcat-ap-3.0.shacl.ttl, mobilitydcat-ap-1.1.0.shacl.ttl, mobilitydcat-ap-shacl-ranges.ttl
Validation Tool: Python pySHACL script (used to handle owl:imports)
Reason for Python Use: SHACL Playground does not correctly handle owl:imports in the shapes. Instead of relying on imports, multiple SHACL files are passed directly to the validator as a list.
Date of Validation: 2026-02-04


Failing Cases

  • Case: Missing Distribution for Dataset

Description / Error: dcat:distribution is not validated


  • Case: Missing Language Tag

Description / Error: the use of language tags are not checked in any of the classes.
For example in:

ex:catalog1 a dcat:Catalog ;
    dct:title "Mobility Data Portal" ;  # Missing language tag, should be like "..."@en
    dct:description "A portal providing datasets about mobility."@en ;

“For free text, e.g. in the cases of titles, descriptions and keywords, the language tag is mandatory.” This is not validated.
Check section 8. Accessibility and Multilingual Aspects of the mobilityDCAT-AP specification.


  • Case: Missmatched tags

Description / Error: Missmatched tags (Catalog description languages mismatch with dataset titles) like having a Catalog with

ex:catalog1 a dcat:Catalog ;
    dct:title "Mobility Data Portal"@en
and a Dataset with
ex:dataset1 a dcat:Dataset ;
    dct:title "Bus Schedule"@en ;

  • Case: Empty multilingual description

Description / Error:
Catalog with an empty multilingual description like
dct:description ""@en ; # Empty literal
is not validated


  • Case: Catalog with an invalid language tag

Description / Error:

ex:catalog1 a dcat:Catalog ;
    dct:title "Mobility Data Portal"@english ;  # Invalid language tag, should be "en"

  • Case: Several validations missing for Dataset

Description / Error:
dcat:distribution is not validated
dct:accrualPeriodicity is not validated
mobilitydcatap:mobilityTheme is not validated
dct:spatial is not validated
dct:title is not validated
dct:publisher is not validated


  • Case: Wrong validation for mobilitydcatap:mobilityDataStandard for Distribution

Description / Error:
I am providing the following example:

ex:dataset1 a dcat:Dataset ;
    dct:title "GTFS Schedules"@en ;
    dcat:distribution ex:distribution1 .

ex:distribution1 a dcat:Distribution ;
    dcat:accessURL <https://example.org/downloads/gtfs.zip> ;
    dct:format <http://publications.europa.eu/resource/authority/file-type/ZIP> ;
    dct:rights <http://publications.europa.eu/resource/authority/access-right/PUBLIC> ;
    mobilitydcatap:mobilityDataStandard
        <http://publications.europa.eu/resource/authority/mobility-data-standard/GTFS> .

But the validation says that there is no mobilitydcatap:mobilityDataStandard property:
Focus Node: ex:distribution1
Result Path: mobilitydcatap:mobilityDataStandard

  • Case: Two messages to indicate same error in Distribution

Description / Error: Currently, there are two messages referrencing the lack of dcat:accessURL for Distribution. This could be merged in only one message for clarity and avoid confusion on the user side.
Same behaviour for dct:format in Distribution.

Constraint Violation in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Violation
	Source Shape: [ sh:minCount Literal("1", datatype=xsd:integer) ; sh:nodeKind sh:BlankNodeOrIRI ; sh:path dcat:accessURL ; sh:severity sh:Violation ]
	Focus Node: ex:distribution1
	Result Path: dcat:accessURL
	Message: Less than 1 values on ex:distribution1->dcat:accessURL
Constraint Violation in MinCountConstraintComponent (http://www.w3.org/ns/shacl#MinCountConstraintComponent):
	Severity: sh:Violation
	Source Shape: mdcap11:Distribution_Shape_accessURL
	Focus Node: ex:distribution1
	Result Path: dcat:accessURL
	Message: Access URL is mandatory. Exactly one access URL must be provided as an IRI
  • Case: Invalid URI, the URI is outside the official file-type scheme

Description / Error: I am providing an invalid URI which does not follow the officail file-type scheme provided by the controlled vocabulary for dct:format in Distribution, and it is not failing. We must provide a validation for such a case.
The example data is as follows:

ex:distribution1 a dcat:Distribution ;
    dcat:accessURL <https://example.org/data/train_schedule.zip> ;
    dct:format <https://example.com/formats/ZIP> ;
    dct:rights <http://publications.europa.eu/resource/authority/access-right/PUBLIC> ;
    dct:issued "2025-01-01"^^xsd:date .

Notes

  • All tests were validated using a Python script due to owl:imports not being fully supported in SHACL Playground.
  • Only failing cases are included here. Passing tests are omitted for clarity.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions