feat: funciones datascience — ops_to_rdf_triples, ops_to_sigma_json, render_sigma_html
Conversión de operations.db a triples RDF y formato sigma.js, más renderizado HTML standalone con dark theme y ForceAtlas2 layout. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
---
|
||||
name: ops_to_sigma_json
|
||||
kind: function
|
||||
lang: py
|
||||
domain: datascience
|
||||
version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def ops_to_sigma_json(db_path: str) -> dict"
|
||||
description: "Convierte operations.db al formato JSON de sigma.js/graphology. Lee entities y relations, asigna colores por tipo y calcula tamanio de nodo combinando degree y risk_score."
|
||||
tags: [graph, sigma, osint, visualization, operations, network]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: ""
|
||||
imports: [json, sqlite3]
|
||||
tested: false
|
||||
tests: []
|
||||
test_file_path: ""
|
||||
file_path: "python/functions/datascience/ops_to_sigma_json.py"
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```python
|
||||
from datascience.ops_to_sigma_json import ops_to_sigma_json
|
||||
|
||||
graph = ops_to_sigma_json("apps/my_analysis/operations.db")
|
||||
print(len(graph["nodes"])) # numero de entidades
|
||||
print(len(graph["edges"])) # numero de relaciones
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
Funcion pura en el sentido de que no escribe ningun archivo ni tiene efectos secundarios observables mas alla de abrir y cerrar la conexion SQLite en modo lectura.
|
||||
|
||||
COLOR_MAP cubre los tipos de entidad OSINT mas comunes. Tipos desconocidos reciben `#95a5a6` (gris).
|
||||
|
||||
El tamanio del nodo (`size`) se calcula en el rango [5, 20]:
|
||||
- Si la entidad tiene `risk_score` en metadata: `(degree_norm + risk_norm) / 2`
|
||||
- Si no: `degree_norm` puro
|
||||
- degree_norm = `min(degree / 50, 1.0)`
|
||||
|
||||
La metadata se aplana como atributos adicionales del nodo, sin sobrescribir campos reservados (`label`, `type`, `color`, `size`, `domain`, `status`).
|
||||
Reference in New Issue
Block a user