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,55 @@
|
||||
---
|
||||
name: ops_to_rdf_triples
|
||||
kind: function
|
||||
lang: py
|
||||
domain: datascience
|
||||
version: "1.0.0"
|
||||
purity: pure
|
||||
signature: "def ops_to_rdf_triples(db_path: str, namespace: str = 'http://osint.local/') -> list[tuple[str, str, str]]"
|
||||
description: "Convierte entities y relations de operations.db a triples RDF (subject, predicate, object). Prefija IDs con namespace para formar URIs. Solo stdlib."
|
||||
tags: [rdf, graph, osint, knowledge-graph, triples, operations, semantic-web]
|
||||
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_rdf_triples.py"
|
||||
---
|
||||
|
||||
## Ejemplo
|
||||
|
||||
```python
|
||||
from datascience.ops_to_rdf_triples import ops_to_rdf_triples
|
||||
|
||||
triples = ops_to_rdf_triples("apps/my_analysis/operations.db")
|
||||
for s, p, o in triples[:5]:
|
||||
print(f"{s} -- {p} --> {o}")
|
||||
|
||||
# Con namespace personalizado
|
||||
triples_ns = ops_to_rdf_triples(
|
||||
"apps/my_analysis/operations.db",
|
||||
namespace="http://mi-empresa.com/osint/"
|
||||
)
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
Funcion pura — solo abre la DB en lectura, no escribe nada.
|
||||
|
||||
Triples generados por entidad:
|
||||
- `(ns+id, rdf:type, type_ref)` — si type_ref no es None
|
||||
- `(ns+id, name, literal)` — si name no es None
|
||||
- `(ns+id, status, literal)` — si status no es None
|
||||
- `(ns+id, domain, literal)` — si domain no es None
|
||||
- `(ns+id, key, str(value))` — por cada clave en el JSON de metadata
|
||||
|
||||
Triples generados por relacion:
|
||||
- `(ns+from_entity, relation_name, ns+to_entity)`
|
||||
|
||||
Los subjects de relaciones tipo URI reciben el prefijo de namespace. Los predicados literales (name, status, etc.) no llevan prefijo. Esta separacion sigue la convencion RDF de distinguir recursos de literales sin introducir dependencias externas (rdflib u otras).
|
||||
|
||||
Para exportar a Turtle (.ttl) o N-Triples, el notebook puede iterar la lista y formatear segun necesite.
|
||||
Reference in New Issue
Block a user