Download Trabajo Especial
Document related concepts
no text concepts found
Transcript
Trabajo Especial Licenciatura en Ciencias de la Computación Sistema de Análisis y Búsqueda de Sábanas Telefónicas Autores: Alurralde Ramiro - Bigatti Julián Directora: Laura Alonso Alemany Córdoba, 6 de Diciembre de 2013 Clasificación: D.1.5 Object-oriented Programming. D.1.7 Visual Programming. D.2.1 Requirements/Specifications. D.2.6 Programming Environments. D.2.12 Interoperability. Palabras Claves: “sábanas telefónicas”, “astrea”, “ontología”, “búsqueda sabanas telefónicas” Resumen En la actualidad el constante uso de la telefonía celular le da a la policía una herramienta más a la hora de afrontar una investigación criminal. Suponiendo la existencia de una comunicación durante la ejecución de un ilícito, el investigador logra obtener, a través de las empresas de telefonía, una determinada cantidad de información que sirve como prueba para demostrar la culpabilidad del criminal. El trabajo de análisis y procesamiento de la información entregada por las empresas se realiza de forma manual consumiendo grandes cantidades de horas/hombre y arrastrando errores humanos propios de agotamiento intelectual que el análisis produce. Astrea es un software para la unificación, búsqueda y análisis de datos en sábanas telefónicas de manera automatizada y sistemática. Proveyendo al investigador de una herramienta que maximiza el rendimiento y reduce los errores de búsqueda y análisis. El software presenta una interfaz de usuario fácil e intuitiva, permitiendo que usuarios no expertos en informática y/o en el uso de sábanas telefónicas, se adapten a él pudiendo obtener los mismos resultados que un usuario experto. 1 2 Contenidos 3 4 1. Introducción y motivación En este trabajo presentamos un sistema para facilitar la exploración de datos sobre comunicaciones telefónicas en investigaciones policiales. Actualmente, estos datos se trabajan de forma muy manual y poco sistemática, mediante hojas de cálculo o incluso hojas de papel. Cada empresa proporciona los datos en un formato propio e incompatible con el resto de las empresas, con lo cual la integración de datos resulta prácticamente inviable. Por estas razones, el investigador debe prestar mucha atención a detalles de forma, lo cual le resta capacidad de concentración y tiempo para focalizarse en los conceptos a investigar. Hemos desarrollado Astrea, un software para facilitar la exploración de los datos de comunicaciones telefónicas. En resumen, el sistema permite la carga de numerosas sábanas de diferentes empresas y realizar búsquedas complejas, personalizadas e intuitivas sobre las mismas. Al mismo tiempo ofrece variadas opciones para los resultados obtenidos en función de facilitar aún más la investigación. En particular, el sistema puede: Integrar los datos proporcionados por las diferentes empresas en un formato común que representa los conceptos cruciales de las comunicaciones telefónicas. Ofrece una interfaz gráfica para la exploración de los datos, con opciones de búsqueda y filtros organizados de forma intuitiva y bien documentados. Facilita la integración de los datos con otras aplicaciones, mediante una representación de los datos basada en una ontología según los estándares de la web semántica. Para aproximarnos a la solución concertamos varias reuniones con el cliente de las que pudimos obtener la información necesaria para la elaboración de un prototipo de la interfaz gráfica y el funcionamiento principal. El prototipo tenía como objetivo verificar que Astrea era intuitivo y amigable, una de las principales características en las que se puso énfasis para el desarrollo del mismo. 5 A partir del análisis de sábanas telefónicas entregadas por el cliente se desarrolló la ontología subyacente que modela una comunicación telefónica en la que intervienen dos teléfonos celulares a través de una antena. También se diseñó la base de datos que utiliza el sistema. A su vez el cliente expresó la necesidad de exportar los resultados de la búsqueda en un formato estándar. Con esta aplicación esperamos poder acercar a la gran mayoría de investigadores los métodos sistemáticos de exploración de los datos de comunicaciones telefónicas. Estos métodos han ofrecido muy buenos resultados en investigaciones policiales recientes, lo cual nos hace pensar que su masificación puede tener un impacto muy positivo en los resultados de las investigaciones. Al mismo tiempo, esta aplicación reduce significativamente el tiempo necesario para la exploración de los datos, lo cual también facilita su masificación, ya que en muchas ocasiones el tiempo / hombre es un recurso escaso en las investigaciones policiales. Otro posible campo de aplicación es la minería de datos de comunicaciones telefónicas privadas, por ejemplo, para optimizar los patrones de uso y gasto en comunicaciones empresariales. Este tipo de aproximación ha resultado muy útil en otras áreas de trabajo en las que también se manejan grandes cantidades de datos con orígenes diversos, como por ejemplo los estudios de mercado o la detección de fraude en tarjetas de crédito. La estructura de esta tesis es como sigue. En el próximo capítulo presentamos las funcionalidades básicas y la arquitectura de Astrea. Desarrollamos la descripción de las partes más prominentes del sistema, como son la interfaz de usuario y la ontología subyacente. Finalmente, terminamos presentando algunas conclusiones y líneas de trabajo futuro. 6 7 2. Trabajo relevante 2.1.Software similar existente Existe una gran variedad de sistemas informáticos que se desarrollan de manera exitosa en el mismo campo de aplicación que Astrea. Son sistemas utilizados por las instituciones dedicadas a investigaciones complejas, dichas instituciones procuran que no sea de público conocimiento el funcionamiento, por este mismo motivo es muy dificultoso encontrar información al respecto. 2.1.1. Sitel[3]: Sistema Integrado de Interceptación Telefónica El sistema, en la actualidad, aporta la siguiente información relativa a la intervención telefónica: 1 - Fecha, hora y duración de las llamadas. 2 - identificador de IMEI y nº de móvil afectado por la intervención. 3 - Distribución de llamadas por día. 4 - Tipo de información contenida (SMS, carpeta audio, etc.). En referencia al contenido de la intervención de la comunicación, y ámbito de información aportada por el sistema, se verifica los siguientes puntos: 1 - Repetidor activado y mapa de situación del mismo. 2 - Número de teléfono que efectúa y emite la llamada o contenido de la información. 3 - Contenido de las carpetas de audio (llamadas) y de los mensajes de texto (SMS). 2.1.1.1. Sistema de trabajo Solicitada la intervención de la comunicación y autorizada esta por la Autoridad Judicial el empleo del Programa SITEL[3], la operadora afectada inicia el envío de información al Servidor Central donde se almacena a disposición de la Unidad encargada y solicitante de la investigación de los hechos, responsable de la intervención de la comunicación. 8 El acceso por parte del personal de esta Unidad se realiza mediante código identificador de usuario y clave personal. Realizada la supervisión del contenido, se actúa igual que en el modo tradicional, confeccionando las diligencias de informe correspondientes para la Autoridad Judicial. La evidencia legal del contenido de la intervención es aportada por el Servidor Central, responsable del volcado de todos los datos a formato DVD para entrega a la Autoridad Judicial pertinente, constituyéndose como la única versión original. 2.1.2. Excalibur[1] Este sistema trabaja con un concepto llamado tecnología Adaptive Pattern Recognition Processing (APRP), y con un motor de búsqueda del tipo Fuzzy Searching (búsqueda difusa). Está pensado de la misma forma en que el sistema nervioso humano utiliza la red neuronal para procesar información. En otros términos: los datos están compuestos por determinados bits, el sistema crea una memoria basada en esos patrones y, cuando hace una búsqueda, toma en consideración ese conjunto de bits que forman la palabra, frase o lo que sea que se necesita encontrar. 2.2.Diseño de interfaces “The design of effective human-computer interfaces has been, and continues to be, a significant challenge that demands an appreciation of the entire human perceptual-motor system.” (Sears & Jacko 2007) Hemos puesto especial énfasis en el diseño de las diferentes interfaces de Astrea, buscando la mayor simpleza posible pero sin perder nada de funcionalidad. La capacitación informática del usuario es baja, casi nula. Es por esto que tratamos de mantener un diseño prototípico, es decir, que todo lo que el usuario ve en este software, lo vea también cuando usa sus programas preferidos, o cuando navega por sus páginas cotidianas de internet. 9 Las tareas principales se encuentran en lugares centrales de la aplicación, como un botón para la carga de archivos y una lista de los archivos a cargar, de esta forma siempre esta visible la información para el usuario, así mismo se decidió deshabilitar botones cuando no pueda realizarse la acción para guiar mejor al usuario. Para la búsqueda se utilizaron las clásicas líneas de edición y combo box para completar la información a buscar, presentando las opciones básicas y más usadas, y ocultando las avanzadas. De esta forma la interfaz se mantiene limpia y es más fácil para el usuario visualizar las herramientas y opciones. Además se mantienen las barras de menús que son estándar en cualquier aplicación. Se utilizaron diseños clásicos para los botones, tanto en su tamaño como en su forma. Los mismos se ubicaron en cercanía a los objetos sobre los que actúa la semántica. Dicha semántica viene determinada no solamente por lo inherente al proceso de exploración de sábanas telefónicas (cargar datos, búsqueda) sino también por los procesos más frecuentes en el manejo de programas informáticos actuales (p.ej., ayuda, refinar búsqueda, etc.). Lo que motiva la secuencialidad de la interfaz en todos los pasos es la misma secuencialidad relevada del product owner para llevar a cabo el análisis de sábanas telefónicas. Esto permite que el usuario mantenga su modalidad de trabajo habitual, en la cual ya está familiarizado con los pasos a seguir. 2.3.Diseño de la ontología Las ontologías proporcionan un vocabulario común de un área y definen, con diferentes niveles de formalidad, el significado de los términos y las relaciones entre ellos. Durante la última década, el aumento de la atención se ha centrado en ontologías. Las ontologías son ampliamente utilizados en la ingeniería del conocimiento, la inteligencia artificial y la informática, y en aplicaciones relacionadas con áreas tales como la gestión del conocimiento, el procesamiento del lenguaje natural, el comercio electrónico, la integración inteligente de información, bio-informática, la 10 educación, y en los nuevos campos emergentes como la web semántica. Ingeniería Ontológica es un nuevo campo de estudio sobre el proceso de desarrollo de la ontología, los métodos y metodologías para la construcción de ontologías, y las suites de herramientas y lenguajes que los apoyan. OWL[6] es un lenguaje para hacer afirmaciones ontológicas, desarrollado como una continuación de RDF y RDFS, así como anteriores proyectos de lenguaje de ontologías como OIL, DAML y DAML + OIL. OWL[6] está destinado a ser utilizado en la World Wide Web, y todos sus elementos (clases, propiedades e individuos) se definen como recursos RDF, e identificado por URI. Protégé[7] es un editor de ontologías de código abierto y un sistema de adquisición de conocimientos. Al igual que Eclipse[2], Protégé[7] es un framework para el cual otros proyectos sugieren plugins. La aplicación está escrita en Java y usa fuertemente Swing para crear su compleja interfaz. Protégé[7] fue desarrollado en la Universidad de Stanford, en colaboración con la Universidad de Manchester y está disponible bajo la licencia pública de Mozilla 1.1. 11 12 3. Arquitectura del sistema 3.1.Interacción con el product owner El primer paso para poder desarrollar Astrea fue conocer a fondo el problema a resolver y la situación actual del cliente respecto a este problema. Aplicamos un marco de trabajo para el desarrollo de software basado en desarrollo ágil. En este marco de trabajo, la relación con el experto del dominio, que también juega el rol de usuario final, fue muy importante. Este sería nuestro product owner. El product owner representa la voz del cliente, describe historias de usuario y las prioriza. Se realizaron varias reuniones con el product owner para elicitar estas historias de usuario, basándose principalmente en experiencias en su trabajo de investigación. Estas experiencias se trasladaron a user stories, se identificaron los elementos básicos del análisis de sábanas telefónicas, tanto conceptos como flujos de trabajo. En una primera instancia el problema planteado por el cliente se reducía a la falta de automatización de búsqueda en sábanas telefónicas y la escasa preparación de los investigadores para usar las pocas herramientas existentes. Este fue el eje central del proyecto, ofrecer un software que automatice la búsqueda y que sea lo más accesible posible para cualquier usuario. Uno de los focos de interés fue la carga de datos, la homogeneización de los datos provenientes de las diferentes empresas telefónicas, dándole cierta libertad al usuario para decidir casos de ambigüedad existente en los conceptos. También se hizo énfasis en las búsquedas más comunes o información que los investigadores infieren y que no está explicitada en las sábanas telefónicas. Esto se hizo mediante el análisis de las sábanas telefónicas, no solamente con la interacción con el product owner. Los conceptos que se elicitaron fueron principalmente: numeroOrigen: es el número que comienza la comunicación. 13 numeroDestino: es el número que recibe la llamada. fecha: fecha en que se realiza la comunicación. hora: hora en que se realiza la comunicación. duracion: duración de la llamada. numeroImei: número de IMEI del número de origen. numeroSim: número de SIM del número de origen. celda: identificador de la celda de la antena usada en la comunicación. direccionOrigen: dirección del titular de la línea que comenzó la comunciacion. direccionDestino: dirección del titular de la línea que recibió la comunicación. localidadOrigen: localidad localidadDestino: localidad tipoComunicacion: indica que tipo de comunicación se realizo, puede ser mensaje de texto o llamada telefónica. estado: antenaDireccion: dirección donde se encuentra la antena usada por el número de origen. antenaProvincia: provincia donde se encuentra la antena usada por el número de origen. antenaLocalidad: localidad donde se encuentra la antena usada por el número de origen. titularOrigen: nombre del titular del teléfono de origen. titularDestino: nombre del titular del teléfono de destino. empresaOrigen: nombre de la empresa titular del teléfono de origen. empresaDestino: nombre de la empresa titular del teléfono de destino. provinciaOrigen: provincia del titular del teléfono de origen. provinciaDestino: provincia del titular del teléfono de destino. contenidoMensaje: contenido de los mensajes de texto. 14 Los principales flujos de trabajo elicitados fueron: Búsquedas en sábanas telefónicas (una o más de una, integradas en una misma base de conocimiento) involucrando los conceptos mencionados arriba. Refinamiento de búsquedas. Integración de información adicional en la interfaz, como localización de códigos de área, asociación entre números y nombres del titular, interpretación del número de identificación del teléfono (IMEI), proporcionando información como el fabricante del teléfono. Disponibilidad de búsquedas tipo pre-armadas. 3.2.Objetivos de diseño El principal objetivo de Astrea es la interacción con usuario, es un requisito que el sistema sea versátil, intuitivo, con secciones bien definidas y que se adapte a la forma de trabajo del investigador. Para ello se pensó en una esquema guiado, con tres secciones bien diferenciadas en la que el usuario puede concentrarse en una sola tarea a la vez. La carga de archivos que se van a usar, la búsqueda, y por último el procesamiento de los resultados. Otro aspecto importante a la hora de diseñar el sistema fue la modularización, de esta forma el mantenimiento del software a futuro es mucho más simple y sencillo. Teniendo en cuenta este aspecto se decidió separar el sistema en módulos encargados de realizar diferentes funciones, el conjunto de sábanas que manejan las diferentes sábanas dentro del sistema, los parsers que procesan las sábanas telefónicas para llenar la base de datos, el manejador de la base de datos que se encarga de llenarla y armar las diferentes consultas a esta. Una de las principales características de Astrea es la integración de sábanas telefónicas de diferentes compañías telefónicas, para hacerlo ofrecemos unas cuantas opciones que facilitan el trabajo. Decidimos crear un sistema de conceptos en una comunicación que se mapean con los 15 diferentes datos que trae cada sábana telefónica, para ello usamos un archivo de texto para especificar ese mapeo, de esta forma se pueden agregar o quitar conceptos o nombres de columnas de las sabanas. En casos especiales donde el mapeo genere conflictos, el sistema consulta al usuario como resolver el problema (por ejemplo columnas que tengan nombres iguales pero que mapeen con diferentes conceptos).Así mismo Astrea no almacena datos de la sábanas telefónicas de forma permanente, asegurando la confidencialidad de la investigación. 3.3.Arquitectura general Astrea es un software libre implementado en Python con Qt, independiente de plataforma. Permite procesar datos de comunicaciones telefónicas en formato Excel, csv o texto plano, las llamadas sábanas telefónicas. Podemos ver algunos ejemplos de sábanas telefónicas en el Anexo A. Estos datos se integran a una representación abstracta común para todas las empresas telefónicas, que se describe en la siguiente sección. Después, los usuarios pueden hacer búsquedas sobre los datos representados de esta forma, y los resultados de su búsqueda se ofrecen en diferentes formatos. La arquitectura general del sistema puede verse en la Figura 1. Podemos observar que el usuario interactúa en el ingreso de datos, especificando los archivos con los datos y su origen, y también en la búsqueda. La interfaz con el usuario se describe en detalle en el siguiente capítulo, y la ontología en el capítulo 5. En lo que resta de este capítulo pasamos a describir el resto de módulos. Durante la etapa de carga de archivos el usuario especifica qué sábanas telefónicas desea usar, el sistema acepta cinco sabanas diferente según la empresa que la provee, estas pueden ser Movistar, Personal, Claro y Nextel, además acepta un formato propio que es el que permite exportar Astrea. Los formatos aceptados son: texto plano (.txt), texto plano separado por comas (.csv) y planillas de Microsoft Excel (.xls). 16 En esta etapa el usuario debe elegir a qué empresa pertenece cada archivo, en caso de que el archivo no pertenezca a dicha empresa el sistema alertará al usuario y deberá corregir su elección. Además en caso de presentarse una ambigüedad entre las sabanas y los conceptos del sistema o algún dato no corresponda con un concepto, el usuario deberá solucionar esa ambigüedad y validar la acción. Luego de que el archivo se valida por el usuario el sistema parsea cada archivo e inserta los datos en la base de datos. La sección de consulta y refinamiento permite al usuario ingresar al sistema los datos que desea buscar, mediante una serie de opciones puede decidir qué filtros aplicar en la búsqueda y cuál es la información que desea observar en pantalla, de esta forma el sistema realiza una consulta a la base de datos y le presenta los resultados al usuario mediante una tabla en pantalla. Para esto es esencial la interfaz gráfica ya que es el medio por el cual el usuario interactúa con el sistema. Además de presentar los resultados en pantalla, Astrea le ofrece al usuario otro tipo de interacción con los resultados dependiendo el tipo de dato. 17 Figura 1 18 3.4.Análisis de sábanas telefónicas El principal desafío de este trabajo fue organizar la información de proveen las empresas telefónicas de una forma más homogénea, de esta manera el usuario no debe preocuparse por la empresa a la que pertenece la sabana que está investigando. Para ello se analizaron las sabanas de las cuatro empresas de telefonía que operan actualmente en el territorio nacional para buscar la semántica de cada dato que operan, de esta forma ofrecemos un esquema más abstracto de la información. Este trabajo se realiza en dos etapas, una etapa de mapeo mediante un archivo de configuración, que mapea cada columna de la sábana telefónica con un concepto del sistema. De esta forma si las empresas llaman de forma diferente a un mismo objeto de estudio, tenemos un nombre común dentro del sistema que lo identifica, por ejemplo si el número de origen en la llamada se identifica como “linea” en la sabana de Movistar y como “número” en la sabana de Claro, el sistema va a tomar a ambas como “Nro. de Origen”. Esto sirve para que si en un futuro las empresas deciden cambiar de nombre a un tipo de dato con solo actualizar el archivo “conceptos.txt” el sistema puede adaptarse a este cambio. Este diseño sin embargo tiene un conflicto, puede pasar que las empresas usen la misma identificación para diferentes conceptos, en este caso queda en manos del usuario decidir cuál es el concepto que corresponde con esa identificación. El procedimiento utilizado recibe el nombre de Record Linkage[10] Este método básicamente permite unificar bajo una misma etiqueta, la información que se encuentra identificada de diferentes maneras. La segunda etapa es la de parseo donde el sistema determina la semántica de cada dato, el problema surge porque no necesariamente el concepto con el que mapea el dato es 100% ese concepto sino que depende de la forma en que la empresa representa la comunicación en su sábana. A modo de ejemplo, mientras Claro representa en su sábana un número de origen y un número de destino en la comunicación en dos 19 columnas diferentes, la sabana de personal representa el número investigado en una columna y los números con los que se comunicó en otra columna, usando una tercer columna para definir la dirección en la que se realizó la comunicación. A partir de este tipo de problemas se desarrollaron cuatro módulos que se encargan de parsear y solucionar estos inconvenientes, de esta forma la salida resulta en datos homogéneos. Cada módulo corresponde a una empresa diferente haciendo más fácil una actualización y mantenimiento del sistema en caso de que una empresa decida cambiar el formato de sus sábanas. Con esto se provee bastante versatilidad al sistema, pudiendo adaptarse a cambios de nombre columnas o aumento de información (conceptos) y permitiendo que ante cambios más profundos en la semántica sea más fácil actualizar el sistema. 3.5.Base de datos Para diseñar la base de datos se decidió usar los conceptos utilizados en la ontología descrita en el capítulo 5. Se mapeo cada dato de las sábanas telefónicas a esos conceptos. En la base de datos cada columna es un concepto, de esta forma cada línea contenida en la tabla representa una comunicación con todos sus atributos. Si bien existe una pérdida de expresión de la información presente en la ontología, por ejemplo, relaciones recíprocas, se tomó la decisión de usar una base de datos relacional porque es más eficiente, más estándar y por lo tanto más fácil de mantener por terceros. Además, la información que dejó de expresarse no resultaba imprescindible para los usos tipo del sistema que se definieron con el product owner. La base de datos se crea cada vez que Astrea se ejecuta, usando los conceptos adquiridos del archivo de conceptos que utiliza el sistema, de esta forma si se agregan o eliminan conceptos la base de datos siempre estará actualizada. Por otro lado se diseñó un módulo específico para el manejo de la base de datos, este módulo se encarga de la comunicación del sistema con la base 20 de datos. Se encarga esencialmente de crear la tabla, llenarla y armar las consultas de búsqueda, además de ofrecer un método que se encarga de eliminar la tabla cuando el programa se cierra. 3.6.Generación de salida Para el caso en que el usuario desee conservar los resultados de la búsqueda, Astrea permite exportar los resultados en formato Excel (.xls) y texto plano separado por comas (.csv). Además permite la impresión de la búsqueda realizada. Para uso avanzado se permite exportar la base de datos completa en formato relación-atributo (.arff), dicho formato permite interoperabilidad con Weka[9], un software para aprendizaje automático y minería de datos. 21 22 4. Interfaces de usuario En la interfaz de usuario hemos tratado de mantener la mayor simplicidad de diseño posible, pero al mismo tiempo proporcionando información de ayuda sobre las diferentes funcionalidades de forma accesible, mediante mouse over, menús contextuales que se pueden acceder de diferentes formas. De esta manera, se garantiza que el usuario encuentre la información necesaria en todo momento. Estas decisiones de diseño han venido determinadas por la necesidad de interactuar con usuarios no expertos en informática, como es el caso de buena parte de los investigadores policiales. La interfaz está compuesta de tres partes que se usan de forma secuencial: Carga de datos: se integran uno o más archivos de entrada a una representación común interna. Búsqueda: se seleccionan los filtros de búsqueda a aplicar sobre los datos cargados. Visualización de resultados: se le presentan los resultados al usuario de forma amigable para que pueda realizar diferentes acciones sobre los distintos tipos de datos. Es importante destacar que cuando el usuario comienza a utilizar el sistema se eliminan las funcionalidades que no pueden ser utilizadas en esta etapa. Este es el caso de la verificación de archivos, la misma no se puede realizar hasta tanto no se haya indicado previamente la finalización de la carga. Se optó por impedirle al usuario cometer errores. Esta decisión se basó en la falta de experiencia del usuario en sistemas informáticos, por lo cual utilizar mensajes de aviso no es una forma conveniente de comunicarse con el usuario. 4.1.Carga de datos El objetivo principal de la carga de datos es homogeneizar la información de diferentes empresas, que pueden tener distintos formatos y etiquetas identificatorias de los datos. Una vez homogeneizados los datos, resulta más sencillo realizar búsquedas, ya que el usuario se puede abstraer de las particularidades de cada documento. En la imagen que se puede ver en 23 la Figura 2, se observan los principales componentes: el listado de archivos cargados, en los que se especifica el origen de los mismos y la empresa telefónica a la que pertenece. El usuario tiene la posibilidad de cargar múltiples archivos de diferentes empresas y hasta resultados anteriores generados por el propio sistema. Como podemos observar en el Anexo A la inexistencia de un formato estandarizado entre empresas telefónicas presenta dos problemas claramente identificados, que exista alguna ambigüedad con las etiquetas de los datos, o que el archivo no se corresponda con la empresa indicada anteriormente. Para resolver la ambigüedad entre los datos, fue necesario utilizar un método que homogenice las etiquetas identificatorias como se menciona en el capítulo 3 (sección 3.4). La asignación de un nombre canónico requiere la intervención del usuario para indicarle al sistema que dato se identifica bajo esa etiqueta. De esta forma, identificadores como Fecha I., Fecha y Hora y Fecha serán unificados a un mismo nombre, Fecha, lo cual permite al usuario hacer búsquedas focalizándose en el concepto, sin tener que recordar los nombres y formatos específicos que usa cada empresa. Cabe destacar que una vez ingresadas nuevas etiquetas, el sistema no volverá a preguntar por ellas a menos que presenten algún tipo de ambigüedad con otras existentes. Como resultado de una evaluación previa de los archivos puede surgir que el archivo no corresponde a la empresa indicada al momento de la carga del mismo, es por esto que se le da la posibilidad de modificar dicha identificación. Este reconocimiento previo del archivo se basa en el estudio de las sábanas entregadas por el cliente como se desarrolló en el capítulo 3 (sección 3.4). La columna “Control” representa el estado del archivo, es decir, este puede estar controlado y listo para ser procesado o contener algún error, el cual se indica en el campo “Error”. 24 Una vez finalizada la carga de los archivos y corregidos todos los posibles errores, el usuario haciendo clic en “Finalizar Carga”, podrá visualizar las opciones de búsqueda como se detalla en la próxima sección. 4.1.1. Pasos a seguir para la carga de archivos 1. Hacer clic en “Cargar Archivo”, se desplegará la ventana de búsqueda de archivos como se puede observar en la Figura 2.1. En dicha ventana, seleccionar el archivo a cargar. Repetir por cada archivo deseado. 2. Seleccionar la empresa a la que corresponde cada archivo previamente cargado 3. Hacer clic en “Finalizar Carga”. 4. De existir errores con las etiquetas idenficatorias se podrán resolver como se explicó en la sección 4.1 haciendo clic en el botón “Verificar Archivos” (Figura 2.2). 5. Hacer clic en el botón “Finalizar” (Figura 2.3) para pasar a las opciones de búsqueda. Figura 2 25 Figura 2. 1 Figura 2. 2 26 Figura 2. 3 4.2.Búsqueda Cuando el usuario finaliza la carga de archivos Astrea comienza un proceso de parseo completo de los archivos para adaptar los datos contenidos en los mismos a la estructura de la base de datos, la cual se detalla en el capítulo 3 (sección 3.5). En la Figura 3 se presentan las diferentes opciones de búsqueda sobre los datos previamente cargados. Se ofrecen las opciones más usadas de manera más accesible y rápida para realizar aquellas búsquedas más comunes. Es importante para el usuario no sobrecargar la interfaz con campos de búsqueda, es por este motivo que se mantienen siempre visibles las opciones más importantes y ocultas aquellas que pueden permitir una búsqueda más específica. Para esto se provee una búsqueda avanzada como se muestra en la Figura 3.1. Astrea provee al usuario con texto predictivo en todos los campos de texto (Figura 3.2), con esta herramienta no se necesita memorizar por completo los números telefónicos de las diferentes sábanas cargadas. 27 Los campos de tipo “Combo box” son completados solo con datos existentes en los archivos fuente para facilitarle al usuario la utilización de los mismos, a su vez evita que se ingrese de manera incorrecta algún tipo de dato, provocando una búsqueda con resultados vacíos de información. Los filtros de búsqueda fueron diseñados con aquellos datos de interés y utilidad para el cliente, existe cierta información desechable e innecesaria para llevar a cabo un análisis de sábanas telefónicas en busca de alguna comunicación de utilidad para el investigador. Cuando el usuario finaliza la selección de filtros a aplicar, puede decidir qué datos visualizar en la tabla de resultados una vez realizada la búsqueda. Es decir, podrá ver la información que crea conveniente y de esta forma tener una visual más “limpia” de los datos. Las opciones seleccionadas representarán a las etiquetas identificatorias de las columnas en la grilla de resultados. En la figura 3 podemos observar la presencia de un botón llamado “Limpiar Búsqueda”, como su nombre lo indica, la acción que realiza este objeto es devolver a los campos de opciones de búsqueda, sus estados iníciales. Cuando el usuario haga clic en dicho botón, deberá confirmar esta acción en un diálogo emergente. Es importante la presencia de esta opción ya que son numerosos los campos de búsqueda y volverlos a un estado inicial manualmente, sería tedioso para el usuario. 4.2.1. Pasos a seguir para realizar una búsqueda 1. Rellenar los campos deseados para la búsqueda, de ser necesario hacer clic en “Búsqueda avanzada” para obtener mayor cantidad de opciones. 2. Seleccionar las opciones de salida para ver en la grilla de resultados. Las opciones representan las etiquetas de las columnas de la grilla. 3. Hacer clic en “Buscar”. 28 Figura 3 29 Figura 3. 1 Figura 3. 2 30 4.3.Visualización de resultados Es importante destacar el hecho de la redundancia de información, es decir, otorgarle al usuario la posibilidad de acceder a las opciones y herramientas a través de diferentes caminos posibles. Esto es importante para que el usuario tenga constante acceso a la información de la forma más intuitiva posible. Podemos poner como ejemplo el caso de la herramienta de códigos de área. Esta herramienta se encuentra accesible siempre desde la barra de tareas, pero también se hace visible cuando hacemos clic en un número de teléfono de la grilla de resultados como lo explicaremos más adelante. La Figura 4 muestra los resultados de la aplicación de los filtros seleccionados anteriormente por el usuario. Se presentan en forma de tabla donde las etiquetas de las columnas son las elegidas como opciones de salida en la pantalla descrita en sección 4.2. Las distintas opciones que se ofrecen se dividen en dos clases principales: Acciones sobre los resultados: son acciones que se aplican a la grilla de resultados en su totalidad. Acciones sobre el tipo de datos de los resultados: acciones que se aplican sobre un objeto determinado, por ejemplo un número de teléfono. Acciones generales: acciones que no afectan un objeto en particular. En el primer grupo de acciones podemos incluir a: Ampliar Búsqueda (figura 4.4): permite incorporar (concatenar) nuevos resultados a los ya existentes Refinar Búsqueda (figura 4.4): aplica una nueva configuración de búsqueda a los resultados expuestos en la tabla. Cabe aclarar que por una limitación de MySQL, solo se puede refinar búsqueda trece veces. En el segundo grupo podemos encontrar subgrupos como: 31 Opciones para un número telefónico (figura 4.2): Alias: herramienta interesante que permite asignar un seudónimo a un número de teléfono de la grilla, esto facilita ver que “Juan” se comunicó con “Pepe” y no que +5493510000000 se comunicó con 35430000000. Pedir Intervención: genera un documento en formato pdf solicitando la intervención de un número telefónico para ser enviado a las autoridades correspondientes. Código de Área: permite obtener dado un código, las localidades que él mismo abarca. Opciones para un titular (figura 4.3): actualmente solo cuenta con “Pedir Arresto”, al igual que Pedir Intervención, se genera un documento en formato pdf para solicitar a las autoridades competentes el arresto de una persona, de esta manera se reducen notablemente los tiempos que el investigador invierte en los protocolos establecidos. Opciones para una dirección: aquí podemos contar con la opción ”Ver Mapa” (figura 4.1) una atractiva herramienta que incorpora Astrea, dada una dirección (de una antena, un titular o una empresa), se la muestra (si se dispone de una conexión a internet) en Google Maps[5]. Esta herramienta tiene mucho potencial de desarrollo como mencionamos en la sección de Trabajo futuro (sección 6.1). Como acciones generales podemos clasificar a: Imprimir: Imprimir presenta una vista previa para luego poder imprimir en papel si se dispone de una impresora. Guardar: El software ofrece la posibilidad de guardar los resultados en tres formatos, hoja de cálculos (xls), coma separated values (csv) y AttributeRelation File Format (arff). Los dos primeros son los más utilizados por el cliente, en el capítulo anterior, sección 3.6 se dan más detalles acerca de 32 esta opción. El tercero de ellos es para facilitar la interoperabilidad, por ejemplo, con weka[9]. Nueva Búsqueda: nos devuelve a la segunda pantalla, detallada en las secciones anteriores. Volver al Inicio: nos devuelve a la primera pantalla, detallada en las secciones anteriores. Estas dos últimas opciones nos permiten obtener nuevos resultados a partir de nuevos archivos o de los agregados inicialmente. 4.3.1. Pasos a seguir para la visualización de resultados Luego de aplicar los filtros de búsqueda, los resultados se muestran como ilustra la figura 4. Esta pantalla no respeta una secuencia de pasos a seguir como en las 2 anteriores, es por este motivo que pasamos a describir las diferentes opciones y herramientas que ofrece Astrea. Para asignar o eliminar un alias: 1. Hacer clic en un número de teléfono para que se pueda visualizar el botón. 2. Hacer clic en el botón “Alias” para desplegar el cuadro como muestra la figura 4.2. 3. Seleccionar la opción deseada, ya sea asignar o eliminar un alias existente. 4. Incorporar la información según la opción seleccionada (ingresar el alias deseado, o seleccionar de la lista de alias existentes). 5. Hacer clic en el botón ok para visualizar los cambios en la grilla. Para ver una dirección en un mapa: 1. Hacer clic en un domicilio. 33 2. Hacer clic en ver mapa. Mientras más información exista en la grilla de resultados acerca de este domicilio, más precisión tendrá la herramienta. Para solicitar una nota de arresto: 1. Hacer clic en alguno de los campos de titulares. 2. Hacer clic en pedir arresto. Para solicitar una nota de Intervención: 1. Hacer clic en alguno de los campos de números telefónicos. 2. Hacer clic en pedir intervención. Para consultar un código de área: 1. Hacer clic en alguno de los campos de números telefónicos. 2. Hacer clic en pedir intervención. Para realizar una ampliación de búsqueda: 1. Hacer clic en “Ampliar Búsqueda” para que despliegue el diálogo correspondiente. 2. Completar los filtros de la misma manera que se hizo en la pantalla detallada en la sección 4.2 Cabe destacar que no se podrán modificar las columnas de salida elegidas en la primera búsqueda realizada. Es posible realizar todas las ampliaciones deseadas, pero el usuario debe tener en cuenta que esto puede duplicar información. Para guardar resultados: 1. Hacer clic en “Guardar...” para elegir donde se guardarán los resultados y con qué extensión. 2. Hacer clic en guardar para cerrar el diálogo. Para imprimir resultados: 1. Hacer clic en “Imprimir...”. 2. Elegir las configuraciones deseadas como la hoja a utilizar y la orientación de la misma. 34 3. Hacer clic en el icono de la impresora que se encuentra en la barra de tareas para abrir el cuadro de impresión del sistema operativo. Para realizar una nueva búsqueda: 1. Hacer clic en “Nueva Búsqueda” para ser redirigidos a la pantalla descrita en la sección 4.2 Para cargar nuevos archivos: 1. Hacer clic en “Volver al Inicio” para ser redirigidos a la pantalla inicial. Al realizar esta acción los archivos cargados con anterioridad serán completamente eliminados de la base de datos. Figura 4 35 Figura 4. 1 36 Figura 4. 2 Figura 4. 3 37 Figura 4. 4 38 39 5. Ontología subyacente Para facilitar la interoperabilidad de los resultados obtenidos con otras bases de datos o aplicaciones, creamos una ontología subyacente para representar los datos de las sábanas telefónicas. Esta ontología modela los conceptos involucrados en la comunicación telefónica, de forma que resulte intuitivo trabajar con ellos y se puedan exportar para su fácil integración con diferentes herramientas. Esta ontología ha jugado un rol fundamental en el diseño de la solución en su totalidad. La ontología se ha implementado siguiendo los estándares propuestos en web semántica. Se ha implementado en OWL[6], mediante la herramienta Protégé[7], que facilita la visualización gráfica de la ontología y la comprobación de propiedades. 5.1.Rol de la ontología en la arquitectura del sistema La ontología no es la base de datos del sistema, y tampoco se usa para generar esta base de datos. Esta decisión se tomó por dos razones principales, ya mencionadas en 3.5. En primer lugar, las bases de datos relacionales son más eficientes y más fáciles de mantener por terceros, ya que son más estándares. Las ontologías en OWL[6] se pueden usar como bases de datos, realizando consultas mediante SPARQL[8]. Sin embargo, las consultas SPARQL[8] son mucho más lentas que en SQL, tienen menos soporte técnico a través de plataformas y son menos conocidas. En segundo lugar, observamos que no existía ninguna información necesaria para el uso descrito por el product owner que no se pudiera expresar en una base de datos relacional. Las relaciones que no se pueden expresar elegantemente en una base de datos relacional pero sí en OWL[6] pueden ser funcional o inversa funcional por ejemplo. Las consultas descritas por el product owner son del tipo “todos los números que se comunicaron con...”, “todas las llamadas en un rango de hora”, 40 “todos los números que usaron X antena”, con lo cual las relaciones funcional o inversa funcional (entre otras) no resultan necesarias. Sin embargo, consideramos que estas relaciones deben estar en la ontología porque efectivamente describen de forma adecuada el dominio, y pueden ser explotadas por otras aplicaciones relacionadas. 5.2.Interoperabilidad En la versión actual se han implementado métodos de comunicación con google maps[5] y se ha diseñado la interacción con weka[9]. En versiones posteriores se desarrollarán los métodos para interactuar con google analytics[4] y servicios en la nube, así como con herramientas de rastreo y surveillance. 5.3.Contenido de la ontología El diseño de la ontología representa una comunicación entre dos teléfonos celulares, excluyendo a la central telefónica. Esto se dá porque si bien interfiere de manera directa en una comunicación, no aporta ningún atributo relevante. Un resumen de la ontología se puede ver en la Figura 5. Consta de 12 clases, con 13 relaciones entre ellas (Figura 5.1). Las clases principales son: Celda: Representa las celdas que se encuentran en las antenas. Teléfono: Representa al artefacto teléfono, dicho aparato, puede tener solo 1 chip (si bien en la actualidad existen aparatos que soportan hasta 2 (dos) chips, recordemos que solo modelamos una comunicación) Dirección: representa la dirección domiciliaria de determinadas clases como una antena, un titular. Tiene como atributos la provincia, localidad, código postal Antena: representa a las antenas físicas, que poseen en ellas una gran cantidad de celdas. Chip: representa al sim entregado por las empresas de telefonía, éste sólo puede tener a lo sumo 2 titulares, en cuyo 41 caso uno de ellos es el usuario y el otro el titular propiamente dicho. Titular: representa a la persona que se supone adquirió el chip. Las relaciones que se establecen entre las clases antes mencionadas modelan los eventos y relaciones propios de la comunicación telefónica. Las clases se relacionan entre si con uno o más de los siguientes tipos de relaciones: Funcional: Si A está relacionado con B y C por la misma propiedad, entonces B y C son el mismo objeto. Inversa funcional: Si A y B estan relacionados con B por la misma propiedad, entonces A y B son el mismo objeto. Asimetrica: Si A está relacionado con B, entonces B no puede estar relacionado con A por la misma propiedad. Irreflexiva: Si A está relacionado con B, entonces A y B no pueden ser el mismo objeto. A continuación detallamos como son cada una de las relaciones de la ontología: EstaEn: es asimétrica, funcional e irreflexiva. Relaciona a las celdas con las antenas. Una celda esta solo en una antena. tieneCelda: es inversa funcional. Relaciona a las antenas con las celdas. Las antenas tienen enorme cantidad de celdas. Usa: es asimétrica e irreflexiva. Relaciona a los teléfonos con las antenas, es decir, indica que antena está usando un teléfono determinado. Un teléfono usa solo una celda. Hospeda: es asimétrica e irreflexiva. Relaciona a las antenas con los teléfonos, es decir, indica que teléfonos esta 42 “hospedando” una antena determinada. Una antena hospeda gran cantidad de teléfonos. Recibe: es asimétrica e irreflexiva. Relaciona un teléfono con otro indicando cuál de ellos es el receptor de la comunicación. Un teléfono recibe solo una llamada. Llama: es asimétrica e irreflexiva. Relaciona un teléfono con otro indicando cuál de ellos es el que inicia la comunicación. un teléfono solo llama a un teléfono. tieneTelefono: es asimétrica e irreflexiva. Relaciona un chip con un teléfono indicando que aparato está utilizando al momento de la comunicación. Un chip solo tiene un teléfono. tieneChip: es asimétrica e irreflexiva. Relaciona un teléfono con un chip indicando que chip se utilizó para la comunicación. Un teléfono tiene solo un chip. esTitularDe: es asimétrica e irreflexiva. Relaciona un usuario con un chip. Un usuario puede tener diferentes chips. tieneTitular: es asimétrica e irreflexiva. Relaciona un chip con un usuario. Un chip puede tener a lo sumo 2 (dos) titulares. tieneDireccion: es asimétrica, inversa funcional e irreflexiva. Relaciona un usuario o antena con una dirección domiciliaria. Solo se puede tener una dirección. direccionDe: es asimétrica, funcional e irreflexiva. Relaciona una dirección domiciliaria con un usuario o antena. Una dirección solo puede tener un usuario o antena. Pedir_Nota: es asimétrica e irreflexiva. Relaciona una entidad “investigable” con la nota oficial correspondiente a la entidad. 43 Figura 5 44 Figura 5. 1 45 46 6. Conclusión Es notorio que en la actualidad las fuerzas policiales cuentan con pocas herramientas informáticas para la lucha contra el crimen, la tecnología avanza a pasos agigantados y las entidades gubernamentales no poseen los protocolos necesarios para adaptarse a la misma velocidad del crecimiento tecnológico. La situación actual tiene a una policía que sufre una falta importante de inversión económica en el sector, lo cual releva a uno de los últimos lugares a la incorporación de nuevas tecnologías. Estas situaciones se ven incrementadas de manera notoria en las localidades más pequeñas de la provincia, donde los presupuestos son más reducidos aún. Las condiciones anteriores se contradicen con la situación del crimen organizado, una “entidad” que constantemente adquiere nuevas tecnologías de manera constante, entre otras razones porque tienen una mejor situación presupuestaria. A su vez, la tecnología adquirida produce más y más registros de las acciones realizadas a través de ella, permitiendo que personal idóneo organice dicha información. El cruzamiento de llamadas telefónicas ha aportado ayuda en una infinidad de casos relevantes y de público conocimiento. Las herramientas necesarias para realizar estas acciones no se encuentran accesibles para la investigación de casos llamados “triviales” o “poco importantes”. Es por eso que hemos desarrollado una herramienta de libre disponibilidad y aplicación inmediata en el campo de acción, con la cual es factible maximizar el rendimiento de las horas/hombre que un investigador invierte en la línea investigativa de las comunicaciones telefónicas. Partiendo de la existencia de una comunicación entre dos teléfonos celulares, es posible detectar una enorme cantidad de datos que acerquen a un detective a un hecho perpetrado. Una tarea sistemática de búsqueda de información en sábanas telefónicas podía llegar a requerir días de trabajo, con Astrea es 47 posible realizarlo en horas, logrando así un mejor uso de los recursos humanos. A partir de una interfaz sencilla y amigable, es posible que personal que no cuenta con un gran conocimiento de informática pueda hacer uso del sistema y obtener los beneficios que éste brinda para el desarrollo de su investigación. Por otra parte, la totalidad del proyecto está realizada con software de código abierto que permite que, con los conocimientos necesarios, sea posible realizar modificaciones en el código tanto para la extensión de sus funcionalidades como para mejorar las existentes. 6.1.Trabajo futuro Incorporación de trazados: La incorporación de aparatos de geoposicionamiento en los teléfonos celulares permitiría poder seguir un trazado realizado por el dispositivo. Acoplar esta herramienta en Astrea sería de gran importancia, ya que permitiría establecer la posición exacta de un aparato en un periodo de tiempo determinado. Búsqueda de patrones: con la integración del sistema en un flujo de minería de datos, por ejemplo, a través de su interoperabilidad con entornos como weka[9], es posible detectar patrones de comunicaciones y establecer hipótesis que vuelquen importantes datos a la investigación. Incorporación de datos conocidos: una posibilidad es incorporar bases de datos existentes como pueden ser las antenas de todo el territorio nacional, titulares de líneas telefónicas, códigos de área internacionales. Anexando estos datos, es posible obtener mejores resultados ya que estaría disponible gran cantidad de información que en ocasiones está ausente en las sábanas telefónicas. Mejoras en la performance: con el uso intensivo del sistema consideramos también que puede ser necesario analizar y mejorar el uso de memoria para aumentar el rendimiento y performance de Astrea ya que puede manejar un gran volumen de información en su base de datos. 48 49 7. Referencias Franz Baader, Diego Calvanese, Deborah McGuinness, Daniele Nardi, Peter Patel-Schneider (editors). 2003. The Description Logic Handbook: Theory, Implementation and Applications. Cambridge University Press. Miguel Distéfano, Año I Nº 11 Sel 10/6 al 16/6 de mana de1998, Clarin Informática, http://edant.clarin.com/suplementos/informatica/1998/06/10/excalibur.htm[1] Eclipse, http://www.eclipse.org/[2] Miguel Ángel Gallardo Ortiz, Cooperación Internacional en Tecnologías Avanzadas (C.I.T.A.) SLU, www.cita.es/sitel/[3] Joseph C. Giarratano, and Riley, Gary (2005). Expert Systems, Principles and Programming. Course Technology Ptr Google Analytics, http://www.google.com.ar/intl/es/analytics/[4] Google Maps, www.maps.google.com.ar[5] Owl, http://www.w3.org/TR/owl-features/[6] Protégé, http://protege.stanford.edu/[7] Andrew Sears, Julie A. Jacko (Eds.). (2007). Human-Computer Interaction Handbook (2nd Edition). CRC Press. SPARQL, http://www.w3.org/2009/sparql/wiki/Main_Page[8] Weka, http://www.cs.waikato.ac.nz/ml/weka/[9] 50 Wikipedia, última modificación 1 de Mayo de 2013 a las 16:29, http://en.wikipedia.org/wiki/Ontology_engineering. Wikipedia, última modificación 9 de Marzo de 2013 a las 03:12, http://es.wikipedia.org/wiki/Prot%C3%A9g%C3%A9_(software). Wikipedia, última modificación 24 de Mayo de 2013 a las 20:32, http://en.wikipedia.org/wiki/Record_linkage[10 51 52 8. Anexos A.1 Ejemplos de sábanas telefónicas A.1.1 Personal Ejemplo: Detalles de llamadas de un número en particular. Linea Fecha Hora Tipo Otro Durac Serie Celda Id Celda direccion Celda Celda localidad provincia 3515330000 20100415 00:05:16 S 3516000000 320 66125522 XCSANA6 San Luis 3007 Cordoba Cordoba 3515330000 20100415 11:01:23 S 3513000000 12 66125522 XCSANA6 San Luis 3007 Cordoba Cordoba 3515330000 20100415 11:04:41 S 3513000000 32 66125522 XCSANA6 San Luis 3007 Cordoba Cordoba 3515330000 20100415 11:05:35 S 3516000000 1881 66125522 XCSANA6 San Luis 3007 Cordoba Cordoba Linea: Número telefónico del cual se pidió el detalle. Fecha: Fecha de la comunicación Hora: Hora de inicio de la comunicación Tipo: Dirección de la comunicación. “E” significa entrante, “S” saliente. Otro: Número con el cual se estableció la comunicación, ya sea entrante o saliente. Durac: Duración en tiempo de aire. Serie: sin informacion Celda Id: Celda utilizada para la comunicación. Celda direccion: Dirección de la antena donde está ubicada la celda utilizada para la comunicación. Celda localidad: Localidad donde se encuentra la antena. Celda provincia: Provincia donde se encuentra la antena. A.1.2 Movistar Ejemplo: Detalle de llamadas de un número en particular. 53 Fecha y Hora: Fecha y hora del inicio de la comunicación Nro. Pagador: Número del cual se pidió el detalle. Dir.: Sentido de la comunicación, es decir, si fue entrante o saliente para el Nro. Pagador. Nro. Destino: Segundo número que interviene en la comunicación. Duración: Tiempo de llamada. Esn/Imei: Número de Imei del número investigado. A.1.3 Nextel Ejemplo: Detalle de llamadas de un número en particular. Tel. Orig.: Número telefónico que inicia la comunicación. Tel.Dest: Número que recibe la llamada. 54 Fecha I.: Fecha de inicio de la comunicación. Fecha F.: Fecha de la finalización de la comunicación. Dur.: Duración de la comunicación. Celda (NOMBRE[ORIENTACION]<>UBICACIÓN<>DIRECCION).: Celda y dirección de la antena utilizadas. Sec.: Sentido de la celda utilizada. Emp. Orig.: Empresa titular del número telefónico que origina la comunicación (en este caso vacio porque el numero investigado no es el que origino la comunicación). Contac. Orig.: Persona que está utilizando el número que tiene como titular una empresa (en este caso vacio porque el numero investigado no es el que origino la comunicación). Dir. Orig.: Dirección de la empresa titular. Loc. Orig.: Localidad de la empresa titular. Prov. Orig.: Provincia de la empresa titular. Emp. Dest.: Empresa titular del número telefónico que recibe la llamada. Contac. Dest.: Persona que está utilizando el número que tiene como titular una empresa. Dir. Dest.: Dirección de la empresa titular del numero llamado. Loc. Dest.: Localidad de la empresa titular del número llamado. Prov. Dest.: Provincia de la empresa titular del numero llamado. A.1.4 Claro Ejemplo: Detalle de un número particular. 55 Nro. Llamante: Número telefónico que inicia la comunicación. Tel.Llamado: Número que recibe la llamada. Fecha y Hora: Fecha y hora de inicio de la comunicación. Duración (Seg.): Duración de la comunicación. id. Celda: Celda utilizada en la comunicación. Descripc. Celda:Descripción de la celda utilizada. A.1.3 Propio Este formato de sábana telefónica es propio del sistema. Es el formato de salida para los resultados que se desean guardar. Esta posibilidad que ofrece el sistema se detalla con mayor precisión en la sección 3.6 56 A.2 Manual de usuario A.3 Ontología en OWL <?xml version="1.0"?> <!DOCTYPE Ontology [ <!ENTITY xsd "http://www.w3.org/2001/XMLSchema#" > <!ENTITY xml "http://www.w3.org/XML/1998/namespace" > <!ENTITY rdfs "http://www.w3.org/2000/01/rdf-schema#" > <!ENTITY rdf "http://www.w3.org/1999/02/22-rdf-syntax-ns#" > ]> <Ontology xmlns="http://www.w3.org/2002/07/owl#" xml:base="http://www.semanticweb.org/ramo/ontologies/2012/10/untit led-ontology-15" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:xsd="http://www.w3.org/2001/XMLSchema#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:xml="http://www.w3.org/XML/1998/namespace" ontologyIRI="http://www.semanticweb.org/ramo/ontologies/2012/10/u ntitled-ontology-15"> <Prefix name="" IRI="http://www.w3.org/2002/07/owl#"/> <Prefix name="owl" IRI="http://www.w3.org/2002/07/owl#"/> <Prefix name="rdf" IRI="http://www.w3.org/1999/02/22-rdf-syntaxns#"/> 57 <Prefix name="xsd" IRI="http://www.w3.org/2001/XMLSchema#"/> <Prefix name="rdfs" IRI="http://www.w3.org/2000/01/rdf-schema#"/> <Declaration> <Class IRI="#Antena"/> </Declaration> <Declaration> <Class IRI="#Celda"/> </Declaration> <Declaration> <Class IRI="#Chip"/> </Declaration> <Declaration> <Class IRI="#Direccion"/> </Declaration> <Declaration> <Class IRI="#Empresa"/> </Declaration> <Declaration> <Class IRI="#Investigables"/> </Declaration> <Declaration> <Class IRI="#Lugares_Fisicos"/> </Declaration> <Declaration> <Class IRI="#Notas"/> </Declaration> <Declaration> <Class IRI="#Particular"/> </Declaration> <Declaration> <Class IRI="#Telefono"/> 58 </Declaration> <Declaration> <Class IRI="#Titular"/> </Declaration> <Declaration> <ObjectProperty IRI="#Esta_en"/> </Declaration> <Declaration> <ObjectProperty IRI="#Llama"/> </Declaration> <Declaration> <ObjectProperty IRI="#Pedir_Nota"/> </Declaration> <Declaration> <ObjectProperty IRI="#Recibe"/> </Declaration> <Declaration> <ObjectProperty IRI="#Usa"/> </Declaration> <Declaration> <ObjectProperty IRI="#direccionDe"/> </Declaration> <Declaration> <ObjectProperty IRI="#esTitularDe"/> </Declaration> <Declaration> <ObjectProperty IRI="#hospeda"/> </Declaration> <Declaration> <ObjectProperty IRI="#tieneCelda"/> </Declaration> 59 <Declaration> <ObjectProperty IRI="#tieneChip"/> </Declaration> <Declaration> <ObjectProperty IRI="#tieneDireccion"/> </Declaration> <Declaration> <ObjectProperty IRI="#tieneTelefono"/> </Declaration> <Declaration> <ObjectProperty IRI="#tieneTitular"/> </Declaration> <Declaration> <NamedIndividual IRI="#12314353"/> </Declaration> <Declaration> <NamedIndividual IRI="#12485732954"/> </Declaration> <Declaration> <NamedIndividual IRI="#23523467324"/> </Declaration> <Declaration> <NamedIndividual IRI="#34056943"/> </Declaration> <Declaration> <NamedIndividual IRI="#Antena1"/> </Declaration> <Declaration> <NamedIndividual IRI="#Celda1"/> </Declaration> <Declaration> 60 <NamedIndividual IRI="#Direccion_falsa_123"/> </Declaration> <Declaration> <NamedIndividual IRI="#Direccion_falsa_231"/> </Declaration> <Declaration> <NamedIndividual IRI="#Direccion_falsa_321"/> </Declaration> <Declaration> <NamedIndividual IRI="#Ramo"/> </Declaration> <Declaration> <NamedIndividual IRI="#Ramote"/> </Declaration> <Declaration> <NamedIndividual IRI="#nota_antena"/> </Declaration> <SubClassOf> <Class IRI="#Antena"/> <Class IRI="#Lugares_Fisicos"/> </SubClassOf> <SubClassOf> <Class IRI="#Chip"/> <Class IRI="#Investigables"/> </SubClassOf> <SubClassOf> <Class IRI="#Empresa"/> <Class IRI="#Chip"/> </SubClassOf> <SubClassOf> <Class IRI="#Lugares_Fisicos"/> 61 <Class IRI="#Investigables"/> </SubClassOf> <SubClassOf> <Class IRI="#Particular"/> <Class IRI="#Chip"/> </SubClassOf> <SubClassOf> <Class IRI="#Titular"/> <Class IRI="#Lugares_Fisicos"/> </SubClassOf> <ClassAssertion> <Class IRI="#Telefono"/> <NamedIndividual IRI="#12314353"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Particular"/> <NamedIndividual IRI="#12485732954"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Chip"/> <NamedIndividual IRI="#23523467324"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Particular"/> <NamedIndividual IRI="#23523467324"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Telefono"/> <NamedIndividual IRI="#34056943"/> </ClassAssertion> <ClassAssertion> 62 <Class IRI="#Antena"/> <NamedIndividual IRI="#Antena1"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Celda"/> <NamedIndividual IRI="#Celda1"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Direccion"/> <NamedIndividual IRI="#Direccion_falsa_123"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Direccion"/> <NamedIndividual IRI="#Direccion_falsa_231"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Direccion"/> <NamedIndividual IRI="#Direccion_falsa_321"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Titular"/> <NamedIndividual IRI="#Ramo"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Titular"/> <NamedIndividual IRI="#Ramote"/> </ClassAssertion> <ClassAssertion> <Class IRI="#Notas"/> <NamedIndividual IRI="#nota_antena"/> </ClassAssertion> 63 <DifferentIndividuals> <NamedIndividual IRI="#Antena1"/> <NamedIndividual IRI="#Ramo"/> <NamedIndividual IRI="#Ramote"/> </DifferentIndividuals> <ObjectPropertyAssertion> <ObjectProperty IRI="#Llama"/> <NamedIndividual IRI="#12314353"/> <NamedIndividual IRI="#34056943"/> </ObjectPropertyAssertion> <ObjectPropertyAssertion> <ObjectProperty IRI="#tieneTelefono"/> <NamedIndividual IRI="#12485732954"/> <NamedIndividual IRI="#34056943"/> </ObjectPropertyAssertion> <ObjectPropertyAssertion> <ObjectProperty IRI="#tieneTitular"/> <NamedIndividual IRI="#12485732954"/> <NamedIndividual IRI="#Ramo"/> </ObjectPropertyAssertion> <ObjectPropertyAssertion> <ObjectProperty IRI="#tieneTelefono"/> <NamedIndividual IRI="#23523467324"/> <NamedIndividual IRI="#12314353"/> </ObjectPropertyAssertion> <ObjectPropertyAssertion> <ObjectProperty IRI="#tieneTitular"/> <NamedIndividual IRI="#23523467324"/> <NamedIndividual IRI="#Ramote"/> </ObjectPropertyAssertion> <ObjectPropertyAssertion> 64 <ObjectProperty IRI="#Esta_en"/> <NamedIndividual IRI="#Celda1"/> <NamedIndividual IRI="#Antena1"/> </ObjectPropertyAssertion> <ObjectPropertyAssertion> <ObjectProperty IRI="#direccionDe"/> <NamedIndividual IRI="#Direccion_falsa_123"/> <NamedIndividual IRI="#Ramo"/> </ObjectPropertyAssertion> <ObjectPropertyAssertion> <ObjectProperty IRI="#direccionDe"/> <NamedIndividual IRI="#Direccion_falsa_231"/> <NamedIndividual IRI="#Ramote"/> </ObjectPropertyAssertion> <ObjectPropertyAssertion> <ObjectProperty IRI="#direccionDe"/> <NamedIndividual IRI="#Direccion_falsa_321"/> <NamedIndividual IRI="#Antena1"/> </ObjectPropertyAssertion> <ObjectPropertyAssertion> <ObjectProperty IRI="#Pedir_Nota"/> <NamedIndividual IRI="#nota_antena"/> <NamedIndividual IRI="#Antena1"/> </ObjectPropertyAssertion> <InverseObjectProperties> <ObjectProperty IRI="#tieneCelda"/> <ObjectProperty IRI="#Esta_en"/> </InverseObjectProperties> <InverseObjectProperties> <ObjectProperty IRI="#Recibe"/> <ObjectProperty IRI="#Llama"/> 65 </InverseObjectProperties> <InverseObjectProperties> <ObjectProperty IRI="#hospeda"/> <ObjectProperty IRI="#Usa"/> </InverseObjectProperties> <InverseObjectProperties> <ObjectProperty IRI="#tieneDireccion"/> <ObjectProperty IRI="#direccionDe"/> </InverseObjectProperties> <InverseObjectProperties> <ObjectProperty IRI="#tieneChip"/> <ObjectProperty IRI="#tieneTelefono"/> </InverseObjectProperties> <FunctionalObjectProperty> <ObjectProperty IRI="#Esta_en"/> </FunctionalObjectProperty> <FunctionalObjectProperty> <ObjectProperty IRI="#direccionDe"/> </FunctionalObjectProperty> <InverseFunctionalObjectProperty> <ObjectProperty IRI="#tieneCelda"/> </InverseFunctionalObjectProperty> <InverseFunctionalObjectProperty> <ObjectProperty IRI="#tieneDireccion"/> </InverseFunctionalObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#Esta_en"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#Llama"/> </AsymmetricObjectProperty> 66 <AsymmetricObjectProperty> <ObjectProperty IRI="#Pedir_Nota"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#Recibe"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#Usa"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#direccionDe"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#esTitularDe"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#hospeda"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#tieneChip"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#tieneDireccion"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#tieneTelefono"/> </AsymmetricObjectProperty> <AsymmetricObjectProperty> <ObjectProperty IRI="#tieneTitular"/> </AsymmetricObjectProperty> <IrreflexiveObjectProperty> 67 <ObjectProperty IRI="#Esta_en"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#Llama"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#Pedir_Nota"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#Recibe"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#Usa"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#direccionDe"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#esTitularDe"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#hospeda"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#tieneChip"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#tieneDireccion"/> </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#tieneTelefono"/> 68 </IrreflexiveObjectProperty> <IrreflexiveObjectProperty> <ObjectProperty IRI="#tieneTitular"/> </IrreflexiveObjectProperty> <ObjectPropertyDomain> <ObjectProperty IRI="#Esta_en"/> <Class IRI="#Celda"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#Llama"/> <Class IRI="#Telefono"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#Pedir_Nota"/> <Class IRI="#Investigables"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#Recibe"/> <Class IRI="#Telefono"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#Usa"/> <Class IRI="#Telefono"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#direccionDe"/> <Class IRI="#Direccion"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#esTitularDe"/> <Class IRI="#Titular"/> 69 </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#hospeda"/> <Class IRI="#Antena"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#tieneCelda"/> <Class IRI="#Antena"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#tieneChip"/> <Class IRI="#Telefono"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#tieneDireccion"/> <Class IRI="#Lugares_Fisicos"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#tieneTelefono"/> <Class IRI="#Chip"/> </ObjectPropertyDomain> <ObjectPropertyDomain> <ObjectProperty IRI="#tieneTitular"/> <Class IRI="#Chip"/> </ObjectPropertyDomain> <ObjectPropertyRange> <ObjectProperty IRI="#Esta_en"/> <Class IRI="#Antena"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#Llama"/> 70 <Class IRI="#Telefono"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#Pedir_Nota"/> <Class IRI="#Notas"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#Recibe"/> <Class IRI="#Telefono"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#Usa"/> <Class IRI="#Antena"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#direccionDe"/> <Class IRI="#Lugares_Fisicos"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#esTitularDe"/> <Class IRI="#Chip"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#hospeda"/> <Class IRI="#Telefono"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#tieneCelda"/> <Class IRI="#Celda"/> </ObjectPropertyRange> <ObjectPropertyRange> 71 <ObjectProperty IRI="#tieneChip"/> <Class IRI="#Chip"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#tieneDireccion"/> <Class IRI="#Direccion"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#tieneTelefono"/> <Class IRI="#Telefono"/> </ObjectPropertyRange> <ObjectPropertyRange> <ObjectProperty IRI="#tieneTitular"/> <Class IRI="#Titular"/> </ObjectPropertyRange> </Ontology> <!-- Generated by the OWL API (version 3.3.1957) http://owlapi.sourceforge.net --> 72