Normalização de Referências Bibliográficas GB/T 7714-2015 e Verificação de Links
1. Por que vale a pena ter isso como um skill separado
Este trabalho tem três características: muitos detalhes nas regras (identificadores de tipo de documento, datas de citação para documentos eletrônicos, formatação de mais de três autores variam), fácil de errar e não reporta erro (um erro em dezenas de strings é difícil de detectar) e um erro, uma vez escrito, é difícil de detectar visualmente. Portanto, o foco não é "decorar as regras", mas sim um fluxo de escrita programática + verificação de retorno + verificação de links.
2. Pontos-chave da formatação GB/T 7714-2015
Estrutura básica
[Número] Responsável principal. Título[Identificador de tipo de documento/suporte]. Fonte, ano, volume(número): páginas.
Identificadores de tipo comuns
| Tipo | Identificador | Forma eletrônica |
|---|---|---|
| Livro comum | [M] | [M/OL] |
| Artigo de periódico | [J] | [J/OL] |
| Artigo de jornal | [N] | [N/OL] |
| Tese/Dissertação | [D] | [D/OL] |
| Relatório | [R] | [R/OL] |
| Norma | [S] | — |
| Comunicado eletrônico | [EB/OL] | — |
| Patente | [P] | [P/OL] |
Três regras essenciais
- Documentos eletrônicos devem incluir a data de acesso e o caminho de acesso – conforme exigido pela seção 4.9 da GB/T 7714-2015.
Para documentos com URL/DOI, a forma padrão deve ser
[J/OL]. Nome do periódico, ano, volume(número): páginas[data de acesso]. https://.... Por outro lado, se a revista/instituição alvo não exigir, pode-se omitir a data de acesso, mas é preciso saber que isso é uma escolha deliberada. - Quando houver mais de 3 responsáveis, para documentos em chinês escreva "Responsável principal, et al." e para ocidentais "Responsável principal, et al.". A norma permite listar todos, mas deve ser consistente em todo o documento.
- Nomes ocidentais: sobrenome primeiro, iniciais do nome abreviadas depois:
Büller HR, Verhamme P, Weitz JI. Não copie diretamente oBuller HRdo PubMed perdendo as letras com diacríticos, nem escrevaHR Büller.
3. Verificação de Links (Ferramenta principal)
# Um por linha: URL / DOI / PMID / Número PMC, o script detecta automaticamente o tipo
python3 scripts/check_refs.py refs.txt
# Entrada JSON, suporta especificação explícita de tipo
python3 scripts/check_refs.py refs.json --timeout 20 --workers 8
Código de saída: 0 = nenhum link claramente quebrado; 1 = existem links quebrados.
Formatos de entrada suportados:
| Entrada | Resultado da interpretação |
|---|---|
10.1056/NEJMoa2513880 ou https://doi.org/... | Link DOI |
25482425 (apenas números) | Link PubMed |
PMC2909362 | Link PMC |
https://... ou domínio puro | Acessa diretamente |
Lógica de decisão (importante)
O script classifica os resultados em três categorias, não considere um link quebrado automaticamente se não receber HTTP 200:
| Categoria | Condição | Ação |
|---|---|---|
| Acessível diretamente | 200 / 203 / 30x | Aprovado |
| Suspeita de anti-raspagem | 403 / 412 / 429 / 503 / 000 (erro não fatal) | Revisar com navegador, não é erro de link |
| Suspeita de quebrado | curl reporta explicitamente could not resolve host ou erros de DNS/certificado | Confirmar e substituir ou remover o link |
Duas armadilhas já testadas:
- PubMed retorna 203, o que não é falha. Anteriormente tratávamos 203 como falha, perdendo tempo de verificação
curl -ssilencia erros de DNS, fazendo com que situações completamente diferentes como "domínio não existe" e "rede bloqueada" resultem em código 000. O script agora usa-sSpara distinguir via stderr
Características de acesso de sites comuns
| Site | Característica |
|---|---|
nhc.gov.cn (Comissão Nacional de Saúde) | curl frequentemente retorna 412 (anti-raspagem), navegador consegue abrir normalmente |
| Domínio med. da Wanfang | Tem anti-raspagem, pode-se usar d.wanfangdata.com.cn/periodical/<xxx> como alternativa |
| CNKI | Geralmente não fornece links diretos; se o artigo for encontrável na busca, não precisa forçar um URL |
| NEJM / Lancet | Paywall, curl frequentemente retorna 403; ter o DOI é suficiente |
4. Processo de escrita: evitar erros de caracteres
Este é o ponto mais negligenciado e potencialmente mais prejudicial deste skill.
Não use heredocs longos para escrever listas de referências diretamente em arquivos docx / json / py.
Na prática, já ocorreram erros de caracteres: prefixo de DOI escrito errado (10.7723 escrito como 10.19546), nomes de autores com erros, numeração de políticas com caracteres corrompidos, e o processo de escrita não reporta erro.
Abordagem correta:
# 1) Construa a lista de referências como estrutura de dados Python, escreva programaticamente em bloco
refs = [
{"id": 1, "text": "Büller HR, ...", "url": "https://...", "doi": "10.1056/..."},
...
]
# 2) Defina listas de verificação
must_have = ["25482425", "10.1056/NEJMoa2513880", "国卫医发", "Büller"]
bads = ["10.7723", "理相指南", "ERUOIMMUON"]
# 3) Após escrever, leia de volta e verifique imediatamente
content = read_back()
missing = [s for s in must_have if s not in content]
leaked = [s for s in bads if s in content]
assert not missing and not leaked, (missing, leaked)
must_have deve conter identificadores-chave (PMID, DOI, números de documentos, nomes próprios difíceis).
bads deve conter formas incorretas conhecidas. Ambos são necessários: o primeiro evita perda de conteúdo, o segundo evita introdução de erros.
5. Lista de erros comuns (verifique um por um)
| Erro | Exemplo | Forma correta |
|---|---|---|
| Combinar números de fontes diferentes | Juntar "2-4% (RCT)" e "2-5% (mundo real)" em um único número | Manter a distinção de fontes, escrever separadamente |
| Volume/número/páginas errados | Büller escrito como 2009;361:1722 | O correto é NEJM 2015;372:232-240 |
| Citação indireta tratada como direta | Citar um número de uma revisão secundária, mas referenciar o RCT original | Rastrear até o original, ou escrever claramente "citado de" |
| Documento político sem referência | Corpo do texto cita 5 documentos, mas a lista de referências não tem nenhum | Cada política/relatório citado no texto deve estar na lista |
| Título da referência diferente do real | O título da referência[1] não corresponde ao artigo publicado | Verificar título por título |
| Erro de ortografia em nome próprio | EUROIMMUN escrito como ERUOIMMUON | Verificar visualmente nome por nome |
6. Relacionado a Zotero / CSL
Ao ajustar o estilo de citação do Zotero, modificar diretamente o arquivo .csl oferece mais controle do que usar plugins. Por exemplo, no estilo numérico GB/T 7714-2015, cada referência termina com [data de acesso].
Encontre a macro accessed-date e esvazie seu corpo para <group/> para desativá-lo globalmente (uma única alteração).
Altere também id / title / updated para evitar conflito com estilos oficiais.
Mas lembre-se: a GB/T 7714-2015 exige a data de acesso para documentos eletrônicos (seção 4.9). Removê-la pode tornar o trabalho inadequado para submissão formal a periódicos/teses. É uma escolha do usuário, e você deve informar claramente essa compensação, em vez de removê-la silenciosamente.
O atributo accessed mantido na macro issued-year é razoável (quando issued está ausente, usa-se o ano de acesso como substituto).
Não o remova junto.
7. Lista de verificação
- O identificador de tipo de cada referência é consistente com a presença ou não de
/OL - O tratamento de mais de 3 autores é consistente ao longo do documento
- Nomes ocidentais: sobrenome primeiro, iniciais do nome; letras com diacríticos preservadas
- Documentos eletrônicos têm data de acesso (a menos que explicitamente descartada) e caminho de acesso
- Prefixo de DOI correto, sem misturar maiúsculas/minúsculas ou largura total/parcial
- Links verificados com
check_refs.py; itens "suspeita de anti-raspagem" revisados com navegador - Verificação de retorno
must_have/badsaprovada após escrita - Cada referência citada no texto aparece na lista de referências, e vice-versa