Capítulo 4. Diseño e implementación de sistemas de sensado
7.4. Rendimiento de la ontología
En esta sección se realiza una breve discusión sobre el rendimiento observado durante la ejecución de las preguntas de competencia (en SPARQL). La evaluación toma en cuenta los siguientes criterios:
Complejidad de la consulta o reglas de inferencia utilizadas
Cantidad de instancias
Tiempo de ejecución (ver Tabla 19)
Semtraj_id Epoch_id_11 CFDB_N_id_11 EM_DDDC_id_11 Ambar419446436 FPE_PEV_id_11 EFDEL_LD_id_11 EFDEW_UN_id_11 CFVO_NO_id_11 Instant_id_11 2015-06-09T07:14:23-07:00^^xsd:dateTime Fix_id_11 Part_CV2_3_51 52_P_id_11 EFITC_NECT_id_11 EFDETD_FL_id_11 EFDESC_SM_id_11 EFIA_CRP_id_11 419446436 semtraj: startsAt ndsep: hasVsionObscured ndsep: hasWeather map:osm_way_id ndsep:hasDriverBehavior ndsep: hasLight ndsep: hasSurfaceCondition ndsep: hasTrafficDensity ndsep: hasPrecipitatingFactor ndsep: hasParticipant ndsep: hasTrafficControl ndsep: hasAlignment time:atTime ndsep:hasEvasiveManeuver ndsep:has Segment time:inXSDDateTime
Las consultas se realizaron desde una laptop con sistema operativo Windows 8.1 de 64 Bits, con un procesador i7-45100 de 2.00 GHz, con 8GB de memoria RAM. Se utilizó Protégé con 2GB dedicados para su ejecución. En la literatura estas variables se usan con regularidad para evaluar el rendimiento de las ontologías (Armand et al., 2014; Fuchs et al., 2008; Xiao Hang Wang et al., 2004).
Tabla 19.Tiempo de ejecución por pregunta de competencia.
Pregunta de competencia Tiempo de ejecución
PI1 128 ms
PI2 38 ms
P1 259 ms
P2 86537 ms
P3 31253 ms
Las preguntas de competencia PI1, PI2 tienen una estructura simple con apenas 2 y 3 tripletas respectivamente. La cantidad de instancias que se utilizaron para las consultas fueron igual al número de trayectorias (23) y numero de segmentos de las trayectorias (Stops y Moves que fueron 399). El tiempo total fue de 128 y 38 ms al ejecutarse para cada pregunta respectivamente.
La pregunta P1 cuenta con tres secciones: la primera selecciona las épocas, un par de propiedades de la maniobra del conductor e información temporal; la segunda sección analiza opcionalmente una propiedad y la ultima es un filtro simple basado en información temporal. El número de instancias utilizados es del orden de los cientos, el cálculo de instancias toma en cuenta: el número de trayectorias (23), el número de épocas (188) y el número de propiedades que ligan las de maniobras y factores (2), numero de fix (2) e instancias de tiempo (2), más el número de instancias de anomalías (máximo 188). El tiempo de ejecución fue 259 ms.
La pregunta P2 tiene una estructura similar a la pregunta P1, sin embargo, se realizan comparaciones entre dos épocas, lo cual genera una consulta más compleja, dado que tiene que hacer combinaciones entre las diferentes instancias de las épocas. El número de instancias utilizados es del orden de los cientos e incluye: número de trayectorias (23), dos veces el número de épocas (376), y el número de propiedades que ligan las maniobras y factores (10 por ambas épocas), que restringe el tipo de participante (1), numero de fix (2) e instancias de tiempo (2), más el número de instancias de anomalías (máximo 188). El tiempo de ejecución fue 86537 ms.
La pregunta P3 tiene dos secciones: la primera se encarga de obtener la información de las épocas como son sus propiedades, información temporal y los fix de inicio de cada época; la segunda sección se encarga de determinar la instancia de vialidad que corresponde a cada fix seleccionado previamente. La búsqueda de la instancia de la vialidad conlleva buscar en todo el espacio de instancias de las vialidades lo que repercute en el tiempo de ejecución. El número de instancias utilizadas en la primera sección es del orden de los cientos, el cálculo de las instancias se omite ya que es similar a los presentados en las preguntas P1 y P2. El orden de instancias utilizadas en la segunda sección es del orden de los miles (aproximadamente 4500). El tiempo de ejecución fue 31253 ms.
Tomando en cuenta las descripciones de las consultas, se puede argumentar que mientras las consultas sean simples y con baja cantidad de instancias la ontología presenta un buen rendimiento. A medida que el número de instancias es mayor el tiempo de ejecución aumenta, como es bien conocido en la literatura (Xiao Hang Wang et al., 2004). Se pudo observar que la complejidad de la consulta es el factor predominante en el rendimiento, aun cuando el número de instancia no es tan grande. Algunas optimizaciones que pueden realizarse son las siguientes:
Utilizar una triplestore como son Stardog o Virtuoso, ya que Protégé repercute en el rendimiento al no contar con optimizaciones como lo hacen estos sistemas.
La búsqueda de la instancia de la vialidad consume mucho tiempo de ejecución ya que ésta se realiza para todas las instancias de las vialidades almacenadas en la base de
conocimiento, una optimización sería restringir este espacio de búsqueda. Otra opción sería agregar una relación entre un fix y la instancia de la vialidad que corresponda al momento del pre-procesamiento de los datos.
7.5. Resumen y Conclusiones
En este capítulo se evaluó el funcionamiento de la base de conocimientos implementada en el capítulo seis. La evaluación consistió de cinco preguntas de competencia traducidas al lenguaje SPARQL 1.1, que fueron sometidas a la base de conocimiento. Las preguntas fueron complementadas con una historia de usuario para entender su uso en algunos escenarios a los que pudieran enfrentase los conductores cotidianamente. Para cada una de las preguntas de competencia se describió el proceso de inferencia y se presentó un extracto de los resultados.
Los resultados expuestos demuestran que la base de conocimientos funciona de manera consistente. Se observó que la ontología permitió capturar de manera correcta cómo los factores exógenos del ambiente de manejo afectan en el comportamiento de manejo de los conductores. Se observó también cómo el concepto de época jugó un rol principal en las consultas, tal como era el objetivo del diseño de la ontología, ya que a partir de este se accede a la información de los factores exógenos, maniobras realizadas, e información espacio temporal. El segundo concepto importante es la trayectoria semántica que permite entender cómo las épocas se relacionan entre sí. Finalmente se mostró como la información de las rutas de transporte permite entender donde se sitúan los problemas viales de manera correcta.
Por parte del rendimiento de las consultas realizadas, se pudo observar que los patrones más simples y con pocas instancias obtienen un buen rendimiento, mientras que el uso de patrones más complejos en las consultas como son restricciones de tipo, uniones de diferentes conjuntos de datos o el contar con muchos individuos disminuye el rendimiento de la ontología, lo cual es un comportamiento esperado. De lo anterior se hace necesario diseñar consultas con patrones simples y que permitan restringir el espacio de búsqueda de las instancias.