Redes (proyección)¶
Proyectar el corpus a redes bibliométricas. Networks orquesta los cinco
proyectores —acoplamiento bibliográfico, co-citación, co-autoría, colaboración
institucional y co-ocurrencia de keywords—, cada uno produciendo un
NetworkArtifact listo para analizar o exportar.
Networks
¶
API de alto nivel para construir redes bibliométricas desde un Corpus.
Todos los métodos son estáticos y puros (mismo input → mismo output).
Methods:
| Name | Description |
|---|---|
build |
Construye una red bibliométrica según la especificación dada. |
quick |
Construye las redes principales con configuración razonable. |
build
staticmethod
¶
build(corpus: Corpus, spec: NetworkSpec) -> NetworkArtifact
Construye una red bibliométrica según la especificación dada.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
corpus
|
Corpus
|
Corpus de origen. |
required |
spec
|
NetworkSpec
|
Especificación declarativa de la red. |
required |
Returns:
| Type | Description |
|---|---|
NetworkArtifact
|
|
quick
staticmethod
¶
quick(
corpus: Corpus, *, min_weight: int = 1
) -> list[NetworkArtifact]
Construye las redes principales con configuración razonable.
Arma specs para: acoplamiento bibliográfico (full), co-autoría, colaboración institucional y co-ocurrencia de keywords.
Co-citación (Hito 8b): se incluye si el corpus tiene cited_by_id
poblado en al menos un paper (es decir, si pasó por el
OpenAlexEnricher con la pasada 2). Si cited_by_id está vacío
en todo el corpus, la co-citación se omite sin error (avisa por log).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
corpus
|
Corpus
|
Corpus de origen. |
required |
min_weight
|
int
|
Peso mínimo de arista (#159 — |
1
|
Returns:
| Type | Description |
|---|---|
list[NetworkArtifact]
|
Lista de 4 o 5 |
list[NetworkArtifact]
|
institución, co-word y, condicionalmente, co-citación). |
NetworkArtifact
dataclass
¶
Resultado de proyectar y analizar un corpus con una NetworkSpec.
Agrupa el grafo, las métricas, las comunidades, la asortatividad, el layout y la especificación que lo originó.
Attributes:
| Name | Type | Description |
|---|---|---|
graph |
_Graph
|
Grafo NetworkX proyectado. |
metrics |
dict[str, object]
|
Salida de |
communities |
dict[Any, int] | None
|
Salida de |
assortativity |
dict[str, object] | None
|
Salida de |
layout |
dict[Any, Any] | None
|
Dict nodo→coordenadas o None si no se calculó. |
spec |
NetworkSpec
|
Especificación que generó este artefacto. |
BibliographicCouplingProjector
¶
Acoplamiento bibliográfico: dos papers están acoplados si comparten referencias.
Nodo = paper (id). Peso = nº de referencias compartidas (D1, D2).
Scope por defecto: 'full' (corpus completo; ciudadano de primera, crítica #2).
No requiere Enricher: las refs ya vienen en references_id (OpenAlex).
Methods:
| Name | Description |
|---|---|
project |
Proyecta el acoplamiento bibliográfico sobre la tabla. |
project
¶
project(
table: Table,
*,
min_weight: int = MIN_WEIGHT_DEFAULT,
scope: Literal["full", "seeds_only"] = "full",
) -> _Graph
Proyecta el acoplamiento bibliográfico sobre la tabla.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
table
|
Table
|
Tabla Arrow canónica del Corpus. |
required |
min_weight
|
int
|
Umbral mínimo de peso (default 1 = sin filtro). |
MIN_WEIGHT_DEFAULT
|
scope
|
Literal['full', 'seeds_only']
|
Alcance de la proyección. |
'full'
|
Returns:
| Type | Description |
|---|---|
_Graph
|
Grafo de acoplamiento con |
CoCitationProjector
¶
Co-citación: dos papers son co-citados si un tercero los cita a ambos.
Nodo = paper (id). Peso = nº de papers que citan a ambos (D1, D2).
Scope por defecto: 'seeds_only' (la más cara; requiere 2º nivel de fetch).
Nota: la co-citación COMPLETA requiere el OpenAlexEnricher (Hito 8) para
traer el 2º nivel de citantes. En Hito 2 se proyecta desde cited_by_id
de los papers disponibles en el corpus. El resultado es válido para el subset
de citantes ya presentes en la tabla.
Methods:
| Name | Description |
|---|---|
project |
Proyecta la red de co-citación desde |
project
¶
project(
table: Table,
*,
min_weight: int = MIN_WEIGHT_DEFAULT,
scope: Literal["full", "seeds_only"] = "seeds_only",
) -> _Graph
Proyecta la red de co-citación desde cited_by_id.
Dos papers P1 y P2 están co-citados si comparten al menos un citante
en cited_by_id. El peso es el nº de citantes compartidos (D1).
Para la co-citación completa, el corpus debe haber pasado por el
OpenAlexEnricher (Hito 8). Sin enriquecimiento, solo se usan
los citantes ya presentes en la tabla.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
table
|
Table
|
Tabla Arrow canónica del Corpus. |
required |
min_weight
|
int
|
Umbral mínimo de peso (default 1 = sin filtro). |
MIN_WEIGHT_DEFAULT
|
scope
|
Literal['full', 'seeds_only']
|
Alcance de la proyección. Default |
'seeds_only'
|
Returns:
| Type | Description |
|---|---|
_Graph
|
Grafo de co-citación con |
AuthorCollaborationProjector
¶
Co-autoría: dos autores están conectados si co-firman un paper.
Nodo = autor (authors_id). Peso = nº de papers co-firmados (D1, D2).
Scope por defecto: 'full'.
Methods:
| Name | Description |
|---|---|
project |
Proyecta la red de co-autoría sobre la tabla. |
project
¶
project(
table: Table,
*,
min_weight: int = MIN_WEIGHT_DEFAULT,
scope: Literal["full", "seeds_only"] = "full",
) -> _Graph
Proyecta la red de co-autoría sobre la tabla.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
table
|
Table
|
Tabla Arrow canónica del Corpus. |
required |
min_weight
|
int
|
Umbral mínimo de peso (default 1 = sin filtro). |
MIN_WEIGHT_DEFAULT
|
scope
|
Literal['full', 'seeds_only']
|
Alcance de la proyección. |
'full'
|
Returns:
| Type | Description |
|---|---|
_Graph
|
Grafo de co-autoría con |
InstitutionCollaborationProjector
¶
Co-autoría institucional: dos instituciones están conectadas si co-aparecen en un paper.
Nodo = institución (institutions_id). Peso = nº de papers con co-aparición (D1, D2).
Scope por defecto: 'full'.
Methods:
| Name | Description |
|---|---|
project |
Proyecta la red de colaboración institucional sobre la tabla. |
project
¶
project(
table: Table,
*,
min_weight: int = MIN_WEIGHT_DEFAULT,
scope: Literal["full", "seeds_only"] = "full",
) -> _Graph
Proyecta la red de colaboración institucional sobre la tabla.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
table
|
Table
|
Tabla Arrow canónica del Corpus. |
required |
min_weight
|
int
|
Umbral mínimo de peso (default 1 = sin filtro). |
MIN_WEIGHT_DEFAULT
|
scope
|
Literal['full', 'seeds_only']
|
Alcance de la proyección. |
'full'
|
Returns:
| Type | Description |
|---|---|
_Graph
|
Grafo de colaboración institucional con |
KeywordCoOccurrenceProjector
¶
Co-ocurrencia de keywords: dos keywords co-ocurren si aparecen en el mismo paper.
Nodo = keyword (keywords_id). Peso = nº de papers donde co-ocurren (D1, D2).
Scope por defecto: 'full'.
Methods:
| Name | Description |
|---|---|
project |
Proyecta la red de co-ocurrencia de keywords sobre la tabla. |
project
¶
project(
table: Table,
*,
min_weight: int = MIN_WEIGHT_DEFAULT,
scope: Literal["full", "seeds_only"] = "full",
) -> _Graph
Proyecta la red de co-ocurrencia de keywords sobre la tabla.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
table
|
Table
|
Tabla Arrow canónica del Corpus. |
required |
min_weight
|
int
|
Umbral mínimo de peso (default 1 = sin filtro). |
MIN_WEIGHT_DEFAULT
|
scope
|
Literal['full', 'seeds_only']
|
Alcance de la proyección. |
'full'
|
Returns:
| Type | Description |
|---|---|
_Graph
|
Grafo de co-ocurrencia de keywords con |