Esta página fornece acesso aos arquivos SHACL (Shapes Constraint Language) utilizados para validar a conformidade de catálogos e conjuntos de dados com o perfil DCAT-BR versão 1.0. Estes arquivos definem as restrições de cardinalidade, tipos de dados e uso de vocabulários controlados.
Para auxiliar na verificação se um catálogo atende ou não às restrições expressas neste Perfil de Aplicação, as restrições nesta especificação são expressas usando SHACL. Cada restrição que pôde ser convertida em uma expressão SHACL foi incluída, permitindo construir uma verificação de validação para a troca de dados entre sistemas.
Este documento lista as definições SHACL oficiais para a versão 1.0 do perfil DCAT-BR.
Cabe aos implementadores da troca de dados definir a validação que esperam. Cada troca de dados ocorre dentro de um contexto, e esse contexto está além das expressões SHACL aqui apresentadas.
Por exemplo, pode-se saber que os dados trocados não contêm os detalhes das organizações, pois todas são identificadas exclusivamente por um URI deferenciável. Nesse caso, as regras relativas à verificação da existência obrigatória de um nome para cada organização provavelmente não são relevantes. Uma execução estrita das expressões SHACL do DCAT-BR gerará erros, embora os dados estejam disponíveis por meio de um canal diferente.
Para obter a experiência de usuário adequada em um processo de validação, é preciso considerar o que é efetivamente transferido entre os sistemas e utilizar as restrições que estão dentro do escopo da troca de dados. Para auxiliar nesse processo, as expressões SHACL são agrupadas em arquivos distintos, seguindo as configurações típicas de validação.
Os arquivos abaixo podem ser baixados individualmente ou referenciados em ferramentas de validação SHACL.
| Arquivo | Descrição | Link Direto |
|---|---|---|
shapes.ttl |
Restrições relativas à existência, domínio, intervalo literal e cardinalidades obrigatórias. | Turtle |
range.ttl |
Restrições relativas ao intervalo de objetos (classes) para todas as propriedades no DCAT-BR. | Turtle |
shapes_recommended.ttl |
Restrições para propriedades recomendadas (geram avisos/warnings em vez de erros). | Turtle |
mdr-vocabularies.shape.ttl |
Restrições que validam se os valores usados em propriedades específicas pertencem aos vocabulários controlados do DCAT-BR. | Turtle |
imports.ttl |
Fornece as importações que são o resultado de reutilizá-las no perfil DCAT-BR (ontologias externas). | Turtle |
mdr_imports.ttl |
Importa as listas de códigos e vocabulários controlados (SKOS) necessários para validação completa. | Turtle |
Os arquivos SHACL validam as seguintes classes do DCAT-BR:
dcat:Dataset - Conjunto de Dadosdcat:Distribution - Distribuiçãodcat:DataService - Serviço de Dadosdcat:Resource - Recurso Catalogadofoaf:Agent - Agente (Organização/Pessoa)dct:Location - Localdct:PeriodOfTime - Período de Tempovcard:Organization - vCard (Ponto de Contato)spdx:Checksum - Verificação de IntegridadeAs propriedades obrigatórias geram erros (Violation) quando ausentes ou inválidas:
dct:title - Títulodct:description - Descriçãodcat:accessURL - URL de acesso (para Distribution)dcat:endpointURL - URL do endpoint (para DataService)As propriedades recomendadas geram avisos (Warning) quando ausentes:
dcat:contactPoint - Ponto de contatodcat:distribution - Distribuiçõesdcat:keyword - Palavras-chavedcat:theme - Temasdct:spatial - Cobertura espacialdct:temporal - Cobertura temporalO DCAT-BR define vocabulários controlados para as seguintes propriedades:
dct:accrualPeriodicity): DIARIA, SEMANAL, MENSAL, etc.dct:accessRights): Público, Restrito, Sigiloso (vários tipos)dcat:theme): Economia e Finanças, Saúde, Educação, etc.dct:type): DADOS, API, DOCUMENTACAO, etc.Os arquivos SHACL estão configurados para uso com validadores padrão, como o SHACL Playground, PySHACL ou TopBraid SHACL Validator.
Para validar um catálogo usando pyshacl (Python), você pode executar:
pyshacl -s shapes.ttl -r range.ttl -i imports.ttl seu_catalogo.ttl
Usando shaclvalidate (Java):
shaclvalidate.sh -datafile seu_catalogo.ttl -shapesfile shapes.ttl