Skip to content

Commit 10c7b39

Browse files
authored
Merge pull request #10 from datosgobes/develop
Mejorados SHACL NTI-RISP
2 parents ad85e7e + fdccc62 commit 10c7b39

File tree

8 files changed

+260
-248
lines changed

8 files changed

+260
-248
lines changed

docs/examples.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ Este ejemplo muestra cómo un catálogo modelado originalmente según NTI-RISP (
6363
El catálogo `http://dcat-ap-es.ejemplo.org/catalogo` incluye información esencial como título, descripción, publicador, fechas clave, página web, temáticas, idiomas, términos de uso y referencia a datasets. Además, incorpora elementos recomendados por DCAT-AP-ES, como la cobertura geográfica y la alineación con vocabularios europeos, lo que permite una migración progresiva y compatible.
6464

6565
Este ejemplo es útil como plantilla porque:
66+
6667
- Muestra cómo mapear propiedades NTI-RISP a DCAT-AP-ES sin perder información relevante.
6768
- Permite enriquecer el catálogo con nuevos metadatos exigidos por DCAT-AP-ES.
6869
- Facilita la interoperabilidad y el cumplimiento de estándares europeos.

docs/index.md

Lines changed: 63 additions & 63 deletions
Large diffs are not rendered by default.

examples/rdf/E_NTI-RISP_Catalog.rdf

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,11 @@
1010
<dcat:Catalog rdf:about="http://dcat-ap-es.ejemplo.org/catalogo">
1111
<dct:title xml:lang="es">Catálogo de Datos Abiertos</dct:title>
1212
<dct:title xml:lang="en">Open Data Catalog</dct:title>
13-
<dct:description xml:lang="es">Catálogo de Datos Abiertos que sirve de ejemplo en DCAT-AP-ES.</dct:description>
14-
<dct:description xml:lang="en">Open Data Catalogue that serves as an example in DCAT-AP-ES.</dct:description>
13+
<dct:description xml:lang="es">Catálogo de Datos Abiertos que sirve de ejemplo en la migración a DCAT-AP-ES.</dct:description>
14+
<dct:description xml:lang="en">Open Data Catalogue that serves as an example in DCAT-AP-ES migration.</dct:description>
1515
<foaf:homepage rdf:resource="http://dcat-ap-es.ejemplo.org"/>
1616
<dct:publisher rdf:resource="http://datos.gob.es/recurso/sector-publico/org/Organismo/E0DAT0001"/>
1717
<dcat:themeTaxonomy rdf:resource="http://datos.gob.es/kos/sector-publico/sector"/>
18-
<dcat:themeTaxonomy rdf:resource="http://publications.europa.eu/resource/authority/data-theme"/>
1918
<dct:issued rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2025-01-01T09:00:00+01:00</dct:issued>
2019
<dct:modified rdf:datatype="http://www.w3.org/2001/XMLSchema#dateTime">2025-01-02T12:00:00+01:00</dct:modified>
2120
<dc:language>es</dc:language>
@@ -34,6 +33,7 @@
3433
<dcat:theme rdf:resource="http://datos.gob.es/kos/sector-publico/sector/medio-ambiente"/>
3534
<dct:spatial rdf:resource="http://datos.gob.es/recurso/sector-publico/territorio/Pais/España"/>
3635
<dcat:keyword xml:lang="es">estadísticas</dcat:keyword>
36+
<dcat:keyword xml:lang="en">statistics</dcat:keyword>
3737
<dct:license rdf:resource="http://publications.europa.eu/resource/authority/licence/CC_BY_4_0" />
3838
<dc:language>es</dc:language>
3939
<dc:language>en</dc:language>
@@ -55,16 +55,17 @@
5555

5656
<dcat:distribution>
5757
<dcat:Distribution rdf:about="http://dcat-ap-es.ejemplo.org/distribucion/dataset-ejemplo-1-CSV">
58-
<dct:title xml:lang="es">Distribución de ejemplo</dct:title>
59-
<dct:title xml:lang="en">Example distribution</dct:title>
60-
<dct:description xml:lang="es">Descripción de un distribución de ejemplo.</dct:description>
61-
<dcat:accessURL rdf:resource="http://dcat-ap-es.ejemplo.org/files/dataset-ejemplo-1.CSV"/>
62-
<dct:format>
63-
<dct:IMT>
64-
<rdf:value>text/csv</rdf:value>
65-
<rdfs:label>CSV</rdfs:label>
66-
</dct:IMT>
67-
</dct:format>
58+
<dct:title xml:lang="es">Distribución de ejemplo</dct:title>
59+
<dct:title xml:lang="en">Example distribution</dct:title>
60+
<dct:description xml:lang="es">Descripción de una distribución de ejemplo.</dct:description>
61+
<dcat:accessURL rdf:resource="http://dcat-ap-es.ejemplo.org/files/dataset-ejemplo-1.CSV"/>
62+
<dct:format>
63+
<dct:IMT>
64+
<rdf:value>text/csv</rdf:value>
65+
<rdfs:label>CSV</rdfs:label>
66+
</dct:IMT>
67+
</dct:format>
68+
<dcat:byteSize rdf:datatype="http://www.w3.org/2001/XMLSchema#nonNegativeInteger">1024</dcat:byteSize>
6869
</dcat:Distribution>
6970
</dcat:distribution>
7071

examples/ttl/E_NTI-RISP_Catalog.ttl

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@
1010
<http://dcat-ap-es.ejemplo.org/catalogo>
1111
a dcat:Catalog ;
1212
dct:title "Catálogo de Datos Abiertos"@es, "Open Data Catalog"@en ;
13-
dct:description "Catálogo de Datos Abiertos que sirve de ejemplo en DCAT-AP-ES."@es, "Open Data Catalogue that serves as an example in DCAT-AP-ES."@en ;
13+
dct:description "Catálogo de Datos Abiertos que sirve de ejemplo para la migración a DCAT-AP-ES."@es, "Open Data Catalogue that serves as an example in DCAT-AP-ES migration."@en ;
1414
foaf:homepage <http://dcat-ap-es.ejemplo.org> ;
1515
dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/E0DAT0001> ;
16-
dcat:themeTaxonomy <http://datos.gob.es/kos/sector-publico/sector>, <http://publications.europa.eu/resource/authority/data-theme> ;
16+
dcat:themeTaxonomy <http://datos.gob.es/kos/sector-publico/sector> ;
1717
dct:issued "2025-01-01T09:00:00+01:00"^^xsd:dateTime ;
1818
dct:modified "2025-01-02T12:00:00+01:00"^^xsd:dateTime ;
1919
dc:language "es", "en" ;
@@ -29,7 +29,7 @@
2929
dct:publisher <http://datos.gob.es/recurso/sector-publico/org/Organismo/E0DAT0001> ;
3030
dcat:theme <http://datos.gob.es/kos/sector-publico/sector/medio-ambiente> ;
3131
dct:spatial <http://datos.gob.es/recurso/sector-publico/territorio/Pais/España> ;
32-
dcat:keyword "estadísticas"@es ;
32+
dcat:keyword "estadísticas"@es, "statistics"@en ;
3333
dct:license <http://publications.europa.eu/resource/authority/licence/CC_BY_4_0> ;
3434
dc:language "es", "en" ;
3535
dct:temporal [
@@ -48,10 +48,11 @@
4848
<http://dcat-ap-es.ejemplo.org/distribucion/dataset-ejemplo-1-CSV>
4949
a dcat:Distribution ;
5050
dct:title "Distribución de ejemplo"@es, "Example distribution"@en ;
51-
dct:description "Descripción de un distribución de ejemplo."@es ;
51+
dct:description "Descripción de una distribución de ejemplo."@es ;
5252
dcat:accessURL <http://dcat-ap-es.ejemplo.org/files/dataset-ejemplo-1.CSV> ;
5353
dct:format [
5454
a dct:IMT ;
5555
rdf:value "text/csv" ;
5656
rdfs:label "CSV"
57-
] .
57+
] ;
58+
dcat:byteSize "1024"^^xsd:nonNegativeInteger .

shacl/1.0.0/nti-risp_catalog_shape.ttl

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,18 +50,40 @@
5050
a sh:NodeShape ;
5151
sh:name "Catalog"@en ;
5252
sh:property
53-
# dct:title (Obligatorio, 1..1)
53+
# dct:title (Obligatorio, 1..n)
5454
[
5555
sh:path dct:title ;
5656
sh:minCount 1 ;
57+
sh:qualifiedMinCount 1 ;
58+
sh:qualifiedValueShape [
59+
sh:languageIn ("es") ;
60+
sh:nodeKind sh:Literal ;
61+
sh:datatype rdf:langString ;
62+
] ;
63+
sh:message "Debe haber al menos un título en español"@es ;
64+
],
65+
[
66+
sh:path dct:title ;
5767
sh:node :MultilingualText_Shape ;
68+
sh:message "Cada título debe ser un literal con etiqueta de idioma válida"@es ;
5869
],
5970

60-
# dct:description (Obligatorio, 1..1)
71+
# dct:description (Obligatorio, 1..n)
6172
[
6273
sh:path dct:description ;
6374
sh:minCount 1 ;
75+
sh:qualifiedMinCount 1 ;
76+
sh:qualifiedValueShape [
77+
sh:languageIn ("es") ;
78+
sh:nodeKind sh:Literal ;
79+
sh:datatype rdf:langString ;
80+
] ;
81+
sh:message "Debe haber al menos una descripción en español"@es ;
82+
],
83+
[
84+
sh:path dct:description ;
6485
sh:node :MultilingualText_Shape ;
86+
sh:message "Cada descripción debe ser un literal con etiqueta de idioma válida"@es ;
6587
],
6688

6789
# dct:publisher (Obligatorio, 1..1)
@@ -74,6 +96,7 @@
7496
[
7597
sh:path dct:publisher ;
7698
sh:node :DIR3OrganismRestriction ;
99+
sh:message "El valor debe ser un IRI del directorio de organismos DIR3 con formato http://datos.gob.es/recurso/sector-publico/org/Organismo/{ID}, donde ID es un código alfanumérico de 9 caracteres que puede comenzar con E (Administración General del Estado), A (Administración Autonómica), L (Administración Local), P (Entidades privadas), U (Universidades), etc."@es ;
77100
sh:severity sh:Violation ;
78101
],
79102

@@ -179,6 +202,7 @@
179202
sh:path dct:spatial ;
180203
sh:nodeKind sh:IRI ;
181204
sh:node :TerritoryRestriction ;
205+
sh:message "El valor debe ser un IRI del vocabulario de territorio NTI-RISP http://datos.gob.es/recurso/sector-publico/territorio."@es ;
182206
sh:severity sh:Violation ;
183207
],
184208

0 commit comments

Comments
 (0)