Saltar al contenido

Ontologia FTM

FollowTheMoney

OSINT AI One usa la ontologia FollowTheMoney (FTM) para estructurar las entidades extraidas de las investigaciones. Es el mismo estandar que usan OCCRP, OpenSanctions y otras organizaciones de periodismo de investigacion.

Los 12 tipos de entidad

TipoDescripcionEjemplos
PersonPersona fisicaJuan Garcia Lopez, Dr. Ana Martinez
CompanyEmpresa mercantilAcme Corp S.L., Tech Holdings SA
OrganizationOrganizacion sin animo de lucro, ONGCruz Roja, Anonymous
PublicBodyOrganismo publicoMinisterio de Interior, FBI
DomainNombre de dominioacme-corp.com, evil.ru
EmailDireccion de emailattacker@protonmail.com
PhoneNumero de telefono+34 612 345 678
UserAccountCuenta en red social o plataforma@attacker en Twitter
BankAccountCuenta bancariaIBAN ES91 2100 0418…
DocumentDocumento con identidad propiaContrato PDF, informe registral
EventEvento con fecha y lugarReunion 2024-03-15 en Madrid
LocationUbicacion geograficaMadrid, Calle Mayor 1

Normalizacion para entidades espanolas

El sistema aplica reglas especificas de normalizacion para el contexto espanol:

Personas

# Eliminacion de honorificos al normalizar
"Don Juan Garcia""Juan Garcia"
"Dr. Ana Martinez Ruiz""Ana Martinez Ruiz"
"Dña. Maria Lopez""Maria Lopez"
# Mantenimiento del orden nombre/apellidos
"Garcia Lopez, Juan""Juan Garcia Lopez"

Empresas

# Normalizacion de formas legales
"ACME CORPORATION SOCIEDAD LIMITADA""ACME CORPORATION S.L."
"Tech Holdings, S.A.""Tech Holdings SA"
"Inversiones 2020 S.L.U.""Inversiones 2020 SLU"
# Identificadores fiscales
CIF: B-12345678 → B12345678

Documentos de identidad

# DNI espanol
"12345678-Z""12345678Z"
"12.345.678 Z""12345678Z"
# NIE
"X-1234567-L""X1234567L"
# IBAN espanol
"ES91 2100 0418 4502 0005 1332""ES9121000418450200051332"

Telefonos

# Normalizacion con prefijo internacional
"612 345 678""+34612345678"
"(+34) 91 234 56 78""+34912345678"
"91 234 56 78""+34912345678" # asume prefijo ES si no hay otro

Como se usa en la practica

Extraccion automatica

Ventana de terminal
/entity-extract

El sistema usa el LLM para identificar entidades en el texto de las evidencias y las normaliza automaticamente antes de guardarlas en SQLite.

Deduplicacion

Antes de insertar una entidad, el sistema comprueba si ya existe una entidad “similar”:

  • Mismo tipo + mismo identificador normalizado → actualiza, no duplica
  • Umbral de similitud configurable para nombres (Levenshtein)

Gestion manual

Ventana de terminal
/db-manage merge-entities --id1 ent_001 --id2 ent_002
/db-manage update-entity --id ent_001 --field name --value "Juan Garcia Lopez"
/db-manage delete-entity --id ent_003

Relaciones entre entidades

Ademas de los tipos de entidad, se pueden registrar relaciones:

RelacionEjemplo
ownsPersona X posee Empresa Y
controlsEmpresa A controla Empresa B
member_ofPersona X es miembro de Organizacion Y
located_atEmpresa X ubicada en Location Y
registered_inEmpresa X registrada en Domain Y
usesActor X usa UserAccount Y
associated_withIP X asociada a Domain Y

Schema en SQLite

La base de datos osint_ai.db tiene 8 tablas principales:

investigations -- Metadatos de investigaciones
evidences -- Documentos ingresados con SHA-256
entities -- Entidades extraidas (tipo + valor + metadatos)
relationships -- Relaciones entre entidades
claims -- Afirmaciones con trazabilidad
alerts -- Alertas programadas
entity_mentions -- Menciones de entidades en evidencias
sessions -- Sesiones de trabajo

Ver Referencia → Tipos de entidad FTM para el schema completo.