MobilityDB 1.1 es una revisión importante con respecto a la versión inicial 1.0. El cambio más significativo en la version 1.1 fue extraer la funcionalidad central para la gestión de datos temporales y espaciotemporales de MobilityDB en la bibilioteca C Mobility Engine Open Source (MEOS). De esta forma, la misma funcionalidad que proporciona MobilityDB en un entorno de base de datos está disponible en un programa C para ser utilizada, por ejemplo, en un entorno de streaming. La biblioteca MEOS para la gestión de la movilidad proporciona una funcionalidad similar a la biblioteca C/C++ Geometry Engine Open Source (GEOS) para geometría computacional. Además, están disponibles contenedores para la biblioteca MEOS en otros lenguajes de programación, en particular para Python con PyMEOS. Además, contenedores para C#, Java y Javascript, están en desarrollando.
Fueron necesarios varios cambios con respecto a la versión 1.0 de MobilityDB para habilitar lo anterior. Uno importante fue la definición de nuevos tipos de datos span
y spanset
, que brindan una funcionalidad similar a los tipos de datos de PostgreSQL range
y multirange
pero también se puede usar en varios lenguajes de programación independientemente de PostgreSQL. Estos son tipos de plantilla, lo que significa que son contenedores de otros tipos, de forma similar a como las listas y matrices contienen valores de otros tipos. Además, también se agregó un nuevo tipo de datos de plantilla set
. Por lo tanto, los tipos timestampset
, period
y periodset
en la versión 1.0 se reemplazan por los tipos tstzset
, tstzspan
y tstzspanset
en la versión 1.1. El nombre de las funciones constructoras para estos tipos se modificó en consecuencia.
Finalmente, se simplificó la API de MEOS y MobilityDB para mejorar la usabilidad. Detallamos a continuación los cambios más importantes en la API.
Las funciones atTimestamp
, atTimestampSet
, atPeriod
, and atPeriodSet
fueron renombradas a atTime
.
Las funciones minusTimestamp
, minusTimestampSet
, minusPeriod
y minusPeriodSet
fueron renombradas a minusTime
.
Las funciones atValue
, atValues
, atRange
y atRanges
fueron renombradas a atValues
.
Las funciones minusValue
, minusValues
, minusRange
y minusRanges
fueron renombradas a minusValues
.
Las funciones contains
, disjoint
, dwithin
, intersects
y touches
fueron renombradas, respectivamente, a eContains
, eDisjoint
, eDwithin
, eIntersects
y eTouches
.