MirrorMere®

Produto

Cada achado chega com a sua razão e a sua correção.

O MirrorMere é o motor de validação XBRL que corre dentro do produto que já vendem. Cada achado traz onde está, que cláusula viola e o que mudar.

Ontologia e Why Path

O «porquê» é possível porque aqui o próprio XBRL é uma ontologia.

Um validador que só devolve códigos de erro não se consegue explicar. O MirrorMere liga conceitos, regras, erros e cláusulas numa só ontologia e raciocina sobre ela com SHACL: o caminho que a inferência seguiu é a razão, e o que está errado, porquê e o que mudar saem de uma só vez. E é esse caminho que veem como Why Path.

Mapa geral de tudo o que o motor sabe de XBRL: milhares de pequenos pontos coloridos unidos por linhas ténues, reunidos em aglomerados, um por cada especificação.
O mesmo mapa ampliado: os pontos resolvem-se em termos com nome — context, unit, period, Fact, Dimension, Hypercube — ligados por arcos etiquetados.
ixbrlo:illegalMultipleUseOfId
    a owl:Class ;
    rdfs:subClassOf ixbrlo:ValidationError ;
    rdfs:comment "id attribute reused across iXBRL elements that require uniqueness."@en ;
    skos:note "Inline XBRL 1.1, Section 3 — ixe:illegalMultipleUseOfId"@en ;
    skos:note "Inline XBRL 1.1, Section 4 — ixe:illegalMultipleUseOfId"@en ;
    owl:equivalentClass <http://www.xbrl.org/2013/inlineXBRL/errors#illegalMultipleUseOfId> .

O vocabulário é o padrão do W3C; a última linha aponta para o identificador de erro publicado pela XBRL International. Nenhum nome aqui é invenção nossa.

Entrada

O ficheiro validado.

Regra

As verificações XBRL 2.1 §3–§5 que correram.

Cláusula

Duas violações, ambas ligadas a XBRL 2.1 §5.1.3.4.

O que corrigir

O papel http://xbrl.org/role/conformance não pode ser usado em link:label.

É a última linha que conta: indica a correção, não apenas a falha.

Resultados em que podem confiar

Quando este motor diz que passou, passou.

Um resultado de validação acaba por fundamentar uma auditoria ou uma entrega. Contam, portanto, duas coisas: que a resposta não oscile e que «passou» queira mesmo dizer passou. Aqui nada adivinha nem responde por probabilidade: submetam cem vezes o mesmo documento e terão cem vezes a mesma resposta.

Não assinala nada sem fundamento

Cada achado chega com a cláusula em que assenta. Se nenhuma cláusula for violada, di-lo. É tempo que a vossa equipa não gasta a confirmar se um aviso era real.

Nunca chama «passou» ao que não viu

Uma verificação que não conseguiu executar é reportada como não executada e contada à parte das passadas. Nada passa em silêncio, por isso um resultado limpo pode ser levado à letra.

Uma atualização não muda os vossos resultados

Os testes padrão correm em cada compilação, e uma alteração que quebre uma que seja nunca sai. Adotar uma nova versão não deita por terra o que concluíram no mês passado.

Versão que o produziu
Liga qualquer resultado à compilação exata que o produziu.
Ambiente de execução
Indica se uma diferença vem do ambiente e não do documento.
Que taxonomias foram lidas
Permite a duas partes confirmar numa linha que estavam a olhar para as mesmas taxonomias.
Ficheiros que não encontrou
Se este número não for zero, outro tanto ficou por verificar: e di-lo, em vez de deixar passar em silêncio.

Voltem a executar. A mesma resposta.

Núcleo de validação

Um módulo por especificação.

Cada especificação é um módulo à parte. Levem o motor inteiro, ou só aqueles que realmente tratam.

Especificação O que verifica
XBRL 2.1 Core Se montantes, períodos, unidades e definições de conceitos encaixam entre si
XBRL Dimensions 1.0 Se as desagregações por segmento ou região são combinações permitidas
XBRL Formula 1.0 Se as regras de cálculo e controlo definidas pela empresa ou pelo regulador se verificam
XBRL Table Linkbase 1.0 Se o relatório sai no formato de tabela exigido pelo regulador
Inline XBRL 1.1 Se o que um leitor vê e o que uma máquina lê dizem o mesmo
Open Information Model 1.0 Se o mesmo conteúdo mantém o sentido em XML, JSON e CSV
Extensible Enumerations 1.0 / 2.0 Se um campo que deve ser escolhido de uma lista fechada contém mesmo um valor dela
Report Packages 1.0 Se o pacote de submissão está montado como as regras exigem
Taxonomy Packages 1.0 Se um pacote de taxonomia está bem montado e resolve sem acesso à Internet
Units Registry 1.0 Se as unidades como moeda, ações e percentagens seguem o registo padrão
Link Role Registry 1.0 Se os papéis usados são os publicados no registo padrão
Transformation Rules Registry v3 / v4 / v5 Se «1 234» ou «março de 2025» no ecrã se converte no valor prescrito

Calculation 1.1 vem com o núcleo. Escolham o conjunto que escolherem, os achados voltam todos na mesma forma.

Java puro e desempenho

Toda a bateria de testes padrão termina em cerca de 20 segundos.

Java puro: nada de código nativo, nada mais para instalar. E ainda assim rápido o suficiente para correr toda a bateria dentro da vossa compilação. Não uma vez por versão: sempre que mudam alguma coisa.

100%
do conjunto de testes da XBRL International aprovado
~20s
para executar todo o conjunto
0
coisas para instalar à parte

Os tempos variam de máquina para máquina; o que conta é a ordem de grandeza, não o número exato. Os testes são públicos: meçam-no no vosso próprio equipamento.

Java 17 ou posterior

Onde uma JVM correr, isto corre. Nada mais para instalar, nenhuma biblioteca nativa no pacote.

Para avaliação

Comecem pelas vossas próprias entregas.

A forma mais rápida de avaliar um motor é apontá-lo a documentos cuja resposta já conhecem.