Normalización de referencias según GB/T 7714-2015 y verificación de enlaces
1. Por qué vale la pena crear una habilidad separada para esto
Este trabajo tiene tres características: muchos detalles de reglas (identificadores de tipo de documento, fecha de consulta para documentos electrónicos, formato de más de tres autores varía), es fácil cometer errores y no se reportan errores (es difícil encontrar un error en decenas de cadenas de texto), y una vez escrito incorrectamente, es difícil detectarlo a simple vista. Por lo tanto, el enfoque no está en 'recordar las reglas', sino en el flujo de trabajo de escritura programática + verificación mediante relectura + verificación de enlaces.
2. Puntos clave de la norma GB/T 7714-2015
Estructura básica
[Número] Autor(es) principal(es). Título[Identificador de tipo de documento / soporte]. Fuente, año, volumen(número): páginas.
Identificadores de tipos comunes
| Tipo | Identificador | Escritura electrónica |
|---|---|---|
| Libro común | [M] | [M/OL] |
| Artículo de revista | [J] | [J/OL] |
| Artículo de periódico | [N] | [N/OL] |
| Tesis | [D] | [D/OL] |
| Informe | [R] | [R/OL] |
| Norma | [S] | — |
| Anuncio electrónico | [EB/OL] | — |
| Patente | [P] | [P/OL] |
Tres reglas a tener en cuenta
- Los documentos electrónicos deben incluir la fecha de consulta y la ruta de acceso — requisito del artículo 4.9 de GB/T 7714-2015.
Para documentos con URL / DOI, la escritura estándar debe ser
[J/OL]. Nombre de la revista, año, volumen(número): páginas[fecha de consulta]. https://.... Por el contrario, si la revista/escuela objetivo no lo requiere, se puede omitir la fecha de consulta, pero hay que saber que es una decisión propia. - Cuando hay más de 3 autores, para documentos en chino se escribe 'Autor principal, et al.', para documentos en idiomas occidentales 'Autor principal, et al.'. La norma permite listar todos, pero debe ser consistente en todo el artículo.
- Autores occidentales: apellido primero, iniciales del nombre después:
Büller HR, Verhamme P, Weitz JI. No tomes elBuller HRde PubMed y lo pegues perdiendo las letras diacríticas, ni lo escribas comoHR Büller.
3. Verificación de enlaces (herramienta central)
# Una línea por elemento: URL / DOI / PMID / ID de PMC, el script detecta automáticamente el tipo
python3 scripts/check_refs.py refs.txt
# Entrada JSON, soporta especificación explícita del tipo
python3 scripts/check_refs.py refs.json --timeout 20 --workers 8
Código de salida: 0 = sin elementos fallidos claros; 1 = existen elementos fallidos.
Formatos de entrada admitidos:
| Entrada | Resultado de la interpretación |
|---|---|
10.1056/NEJMoa2513880 o https://doi.org/... | Enlace DOI |
25482425 (solo dígitos) | Enlace PubMed |
PMC2909362 | Enlace PMC |
https://... o dominio desnudo | Acceder sin cambios |
Lógica de decisión (importante)
El script clasifica los resultados en tres grupos, no juzgues un fallo solo porque no sea 200:
| Grupo | Condición | Acción |
|---|---|---|
| Accesible directamente | 200 / 203 / 30x | Aprobado |
| Sospechoso de anti-scraping | 403 / 412 / 429 / 503 / 000 (sin errores fatales) | Revisar con el navegador, no es error de enlace |
| Sospechoso de fallo | curl reporta claramente could not resolve host u otros errores DNS/certificado | Confirmar y reemplazar o eliminar el enlace |
Dos problemas ya probados:
- PubMed devuelve 203, no es un fallo. En el pasado se consideró 203 como fallo, desperdiciando una ronda de verificación.
curl -ssilencia los errores DNS, lo que hace que dos situaciones completamente diferentes, como 'el dominio no existe' y 'la red está bloqueada', muestren 000. El script ahora usa-sS, y se basa en stderr para distinguirlas.
Características de acceso de sitios comunes
| Sitio | Característica |
|---|---|
nhc.gov.cn (Comisión Nacional de Salud) | curl a menudo devuelve 412 anti-scraping, el navegador abre normalmente |
| Dominio med. de Wanfang | Tiene anti-scraping, se puede usar d.wanfangdata.com.cn/periodical/<xxx> para acceder |
| CNKI | Generalmente no proporciona enlaces directos, es suficiente que la literatura sea recuperable, no es necesario forzar URL |
| NEJM / Lancet | Detrás de muro de pago, curl a menudo devuelve 403; con el DOI es suficiente |
4. Técnica de escritura: prevenir errores de caracteres
Este es el punto más fácil de pasar por alto y el que más daño real puede causar en esta habilidad.
No uses heredocs largos para escribir listas largas de referencias directamente en archivos docx / json / py.
En la práctica, han ocurrido múltiples errores de caracteres: prefijos de DOI mal escritos (10.7723 mal escrito como 10.19546), nombres de autores incorrectos, números de políticas confusos, y el proceso de escritura no reporta errores.
Práctica correcta:
# 1) Construye la lista de referencias como una estructura de datos de Python y escríbela programáticamente como un bloque completo
refs = [
{"id": 1, "text": "Büller HR, ...", "url": "https://...", "doi": "10.1056/..."},
...
]
# 2) Define una lista de verificación
deberia_tener = ["25482425", "10.1056/NEJMoa2513880", "GuoWeiYiFa", "Büller"]
errores_conocidos = ["10.7723", "GuiaDeRazonamiento", "ERUOIMMUON"]
# 3) Después de escribir, lee de inmediato para verificar
contenido = leer_de_vuelta()
faltantes = [s for s in deberia_tener if s not in contenido]
filtrados = [s for s in errores_conocidos if s in contenido]
assert not faltantes and not filtrados, (faltantes, filtrados)
deberia_tener contiene identificadores clave (PMID, DOI, número de documento, nombres de personas o lugares difíciles) y errores_conocidos contiene escrituras incorrectas conocidas. Ambos son necesarios: el primero evita perder contenido, el segundo evita generar contenido incorrecto.
5. Lista de errores comunes (revisar uno por uno)
| Error | Ejemplo | Escritura correcta |
|---|---|---|
| Fusionar valores de diferentes fuentes | Combinar '2-4% (RCT)' y '2-5% (mundo real)' en un solo número | Mantener la diferencia de fuentes, escribirlas por separado |
| Volumen/página incorrectos | Büller escrito como 2009;361:1722 | En realidad es NEJM 2015;372:232-240 |
| Cita indirecta como directa | Citar un número de una revisión secundaria, pero marcar el RCT original | Rastrear hasta el original, o escribir explícitamente 'citado de' |
| Documento de política sin fuente | El texto cita 5 documentos, pero la lista de referencias no tiene ninguno | Cada política/informe citado en el texto debe aparecer en la lista |
| Título de la referencia no coincide | El título de la referencia [1] no es el artículo real publicado | Verificar título uno por uno |
| Error de ortografía en nombres propios | EUROIMMUN escrito como ERUOIMMUON | Verificar visualmente los nombres propios elemento por elemento |
6. Relacionado con Zotero / CSL
Cuando sea necesario ajustar el estilo de cita de Zotero, modificar directamente el archivo .csl es más controlable que usar la configuración de plugins.
Por ejemplo, el estilo numérico GB/T 7714-2015 incluye [fecha de consulta] al final de cada referencia.
Encuentra la macro accessed-date y vacía su cuerpo a <group/> para desactivarla en todo el sitio (un solo cambio).
También cambia los campos id / title / updated para evitar conflictos con el estilo oficial.
Pero hay que recordarse a uno mismo: GB/T 7714-2015 exige la fecha de consulta para documentos electrónicos (artículo 4.9), eliminarla puede no cumplir con la normativa para publicaciones formales en revistas / tesis. Es una decisión del usuario, y se debe informar claramente esta compensación, no eliminarla en silencio.
Es razonable mantener una instancia de accessed de respaldo en la macro issued-year (cuando falta issued, se usa el año de acceso como marcador de posición),
no la elimines junto con lo demás.
7. Lista de verificación
- El identificador de tipo de documento de cada referencia es consistente con si lleva
/OL - El manejo de más de 3 autores es consistente en todo el documento
- Nombres occidentales: apellido primero, inicial del nombre; no se han perdido letras diacríticas
- Los documentos electrónicos tienen fecha de consulta (a menos que se haya decidido explícitamente no tenerla) y ruta de acceso
- El prefijo DOI es correcto, sin mezcla de caracteres de ancho completo/medio
- Los enlaces ya se han verificado con
check_refs.py, los elementos 'sospechosos de anti-scraping' se han revisado con el navegador - Después de escribir, la verificación de
deberia_tener/errores_conocidosha pasado - Cada referencia citada en el texto aparece en la lista de referencias, y viceversa