Abstract
Moving objects databases should be able to manage trips that pass through several real world environments, e.g., road network, indoor. However, the current data models only deal with the movement in one situation and cannot represent comprehensive trips for humans who can move inside a building, walk on the pavement, drive on the road, take the public vehicles (bus or train), etc. As a result, existing queries are solely limited to one environment. In this paper, we design a data model that is able to represent moving objects in multiple environments in order to support novel queries on trips in different surroundings and various transportation modes (e.g., Car, Walk, Bus). A generic and precise location representation is proposed that can apply in all environments. The idea is to let the space for moving objects be covered by a set of so-called infrastructures each of which corresponds to an environment and defines the available places for moving objects. Then, the location is represented by referencing to the infrastructure. We formulate the concept of space and infrastructure and propose the methodology to represent moving objects in different environments with the integration of precise transportation modes. Due to different infrastructure characteristics, a set of novel data types is defined to represent infrastructure components. To efficiently support new queries, we design a group of operators to access the data. We present how such a data model is implemented in a database system and report the experimental results. The new model is designed with attention to the data models of previous work for free space and road networks to have a consistent type system and framework of operators. In this way, a powerful set of generic query operations is available for querying, together with those dealing with infrastructures and transportation modes. We demonstrate these capabilities by formulating a set of sophisticated queries across all infrastructures.
Similar content being viewed by others
Notes
Indoor location is not precisely represented by existing models.
Using the algebraic terminology that for a data type α, its domain or carrier set is denoted as D α .
The value means the distance from the road surface after the building construction.
MPPTN stands for moving point for public transportation network.
Basic types such as int, bool are omitted.
sometimes is a derived operation, sometimes(mb) = not(isempty(deftime(mb at true))). See [17], Exercise 4.5.
for simplicity, we only show the transportation mode in each unit
References
http://code.google.com/transit/spec/transit_feed_specification.html (2011). Accessed 15 Dec 2011
http://conversations.nokia.com/2008/09/23/indoor-positioning-coming-to-life/ (2012). Accessed 18 June 2012
http://dna.fernuni-hagen.de/secondo.html/transportationmode.html (2012). Accessed 18 June 2012
http://www.bbbike.de/cgi-bin/bbbike.cgi (2008). Accessed 18 June 2012
http://www.edenresort.com/home (2010). Accessed 20 Dec 2010
http://www.greenhosp.org/floor_plans.asp (2011). Accessed 10 May 2011
http://www.modulargenius.com/default.aspx (2010). Accessed 20 Jan 2010
Bauer V, Gamper J, Loperfido R, Profanter S, Putzer S, Timko I (2008) Computing isochrones in multi-modal, schedule-based transport networks. In: ACM GIS, Demo
Booth J, Sistla P, Wolfson O, Cruz IF (2009) A data model for trip planning in multimodal transportation systems. In: EDBT
Brakatsoulas S, Pfoser D, Tryfona N (2004) Modeling, storing and mining moving object databases. In: IDEAS
Chen L, Özsu MT, Oria V (2005) Robust and fast similarity search for moving object trajectories. In: SIGMOD
Chen Z, Shen HT, Zhou X, Zheng Y, Xie X (2010) Searching trajectories by locations—an efficiency study. In: SIGMOD
Ding Z, Güting RH (2004) Managing moving objects on dynamic transportation networks. In: SSDBM
Forlizzi L, Güting RH, Nardelli E, Schneider M (2000) A data model and data structures for moving objects databases. In: SIGMOD, pp 319–330
González MC, Hidalgo RCA, Barabási A (2008) Understanding individual human mobility patterns. Nature 453:779–282
Grumbach S, Rigaux P, Segoufin L (2000) Manipulating interpolated data is easier than you thought. In: VLDB
Güting RH, Schneider M (2005) Moving objects databases. Morgan Kaufmann, San Mateo
Güting RH, Böhlen MH, Erwig M, Jensen CS, Lorentzos NA, Schneider M, Vazirgiannis M (2000) A foundation for representing and querying moving objects. ACM TDOS 25(1):1–42
Güting RH, Almeida V, Ansorge D, Behr T, Ding Z, Höse T, Hoffmann F, Spiekermann M (2005) Secondo: an extensible dbms platform for research prototyping and teaching. In: ICDE, demo paper
Güting RH, de Almeida VT, Ding ZM (2006) Modeling and querying moving objects in networks. VLDB J 15(2):165–190
Güting RH, Behr T, Xu J (2010) Efficient k-nearest neighbor search on moving object trajectories. VLDB J 19(5):687–714
Hage C, Jensen CS, Pedersen TB, Speicys L, Timko I (2003) Integrated data management for mobile services in the real world. In: VLDB
Iwerks GS, Samet H, Smith K (2003) Continuous k-nearest neighbor queries for continuous moving points with updates. In: VLDB
Jensen CS, Kligys A, Pedersen TB, Timko I (2004) Multidimensional data modeling for location-based services. VLDB J 13:1–21
Jensen CS, Lu H, Yang B (2009) Graph model based indoor tracking. In: MDM
Jensen CS, Lu H, Yang B (2009) Indexing the trajectories of moving objects in symbolic indoor space. In: SSTD
Jeung H, Liu Q, Shen HT, Zhou X (2008) A hybrid prediction model for moving objects. In: ICDE
Jeung H, Yiu ML, Zhou X, Jensen CS, Shen HT (2008) Discovery of convoys in trajectory databases. In: VLDB
Kuijpers B, Othman W (2007) Trajectory databases: data models, uncertainty and complete query languages. In: ICDT
Lema JA, Forlizzi L, Güting RH, Schneider M (2003) Algorithms for moving objects databases. Comput J 46(6):680–712
Lorenz B, Ohlbach HJ, Stoffel EP (2006) A hybrid spatial model for representing indoor environments. In: W2GIS
Mouratidis K, Hadjieleftheriou M, Papadias D (2005) Conceptual partitioning: an efficient method for continuous nearest neighbor monitoring. In: SIGMOD
Mouratidis K, Yiu ML, Papadias D, Mamoulis N (2006) Continuous nearest neighbor monitoring in road networks. In: VLDB
Mouratidis K, Lin Y, Yiu ML (2010) Preference queries in large multi-cost transportation networks. In: ICDE
Mouza C, Rigaux P (2005) Mobility patterns. Geoinformatica 9(4):297–319
Mouza C, Rigaux P, Scholl M (2005) Efficient evaluation of parameterized pattern queries. In: CIKM
Praing R, Schneider M (2007) Modeling historical and future movements of spatio-temporal objects in moving objects databases. In: CIKM, pp 183–192
Praing R, Schneider M (2007) A universal abstract model for future movements of moving objects. In: AGILE conf., pp 111–120
Reddy S, Mun M, Burke J, Estrin D, Hansen MH, Srivastava MB (2010) Using mobile phones to determine transportation modes. TOSN 6(2):82–108
Scarponcini P (2002) Generalized model for linear referencing in transportation. Geoinformatica 6(1):35–55
Shekhar S, Coyle M, Goyal B, Liu DR, Sarkar S (1997) Data models in geographic information systems. Commun ACM 40 4:103–111
Sistla P, Wolfson O, Chamberlain S, Dao S (1997) Modeling and querying moving objects. In: ICDE, pp 422–432
Speicys L, Jensen CS (2008) Enabling location-based services–multi-graph representation of transportation networks. GeoInformatica 12(2):219–253
Speicys L, Jensen CS, Kligys A (2003) Computational data modeling for network-constrained moving objects. In: ACM-GIS
Stenneth L, Wolfson O, Yu P, Xu B (2011) Transportation mode detection using mobile devices and gis information. In: ACM SIGSPATIAL
Su J, Xu H, Ibarra OH (2001) Moving objects: logical relationships and queries. In: SSTD
Tao Y, Papadias D, Shen Q (2002) Continuous nearest neighbor search. In: VLDB
Thiagarajan A, Madden S (2008) Querying continuous functions in a database system. In: SIGMOD
Timko I, Pedersen TB (2004) Capturing complex multidimensional data in location-based data warehouses. In: GIS, pp 147–156
Vazirgiannis M, Wolfson O (2001) A spatiotemporal model and language for moving objects on road networks. In: SSTD
Voisard A, David B (2002) A database perspective on geospatial data modeling. TKDE 14(2):226–242
Wolfson O, Xu B, Chamberlain S, Jiang L (1998) Moving objects databases: issues and solutions. In: SSDBM, pp 111–122
Wolfson O, Chamberlain S, Kalpakis K, Yesha Y (2001) Modeling moving objects for location based services. In: IMWS
Xu J, Güting RH (2011) Infrastructures for research on multimodal moving objects. In: MDM, demo paper
Xu J, Güting RH (2012) GMOBench: a benchmark for generic moving objects. Informatik-Report 362, Fernuniversität in Hagen
Xu J, Güting RH (2012) MWGen: a mini world generator. In: MDM, to appear
Yang B, Lu H, Jensen CS (2010) Probabilistic threshold k nearest neighbor queries over moving objects in symbolic indoor space. In: EDBT
Zhang J, Zhu M, Papadias D, Tao Y, Tee DL (2003) Location-based spatial queries. In: SIGMOD
Zheng Y, Liu L, Wang L, Xie X (2008) Learning transportation mode from raw GPS data for geographic applications on the web. In: WWW
Zheng Y, Chen Y, Xie X, Ma WY (2010) Understanding transportation mode based on GPS data for web application. ACM Trans Web 4(1):1–36
Author information
Authors and Affiliations
Corresponding author
Appendices
Appendix A: Operator semantics
We extend the definition of operator geodata and give domains and ranges in Table 12. geodata which plays a crucial rule for defining semantics, maps locations in different infrastructures into free space. The first three signatures are for PTN. Given a line and the relative position on the line, geodata returns a point for that position. Given a point (line) inside a region, we obtain its global position. The last one maps an indoor location to free space. This is done by ignoring the height above the ground level, i.e., projecting a room to the ground floor of a building. To have the symbol set denoting data types supported by geodata, we define IOSymbol’ = {LINE, REGION, BUSROUTE, GROOM} (⊂ IOSymbol).
Definition A.1
=: \({\underline{\textit{genloc}}} \times {\underline{\textit{genloc}}} \rightarrow {\underline{\textit{bool}}}\)
Let u,v be the two locations and the result is TRUE iff
-
(i)
\(u.oid = \bot \wedge v.oid =\bot \wedge u.i_{loc} = v.i_{loc}\); or
-
(ii)
u.oid = v.oid ∧ u.i loc = v.i loc ; or
-
(iii)
\(u.oid=\bot \wedge (\exists w \in Space: w.oid = v.oid \wedge w.s\in\) IOSymbol’ ∧ \(u.i_{loc} = \textbf{geodata} (w.\beta,v.i_{loc}))\); or
-
(iv)
\(v.oid=\bot \wedge (\exists w \in Space: w.oid = u.oid \wedge w.s\in\) IOSymbol’ ∧ \(v.i_{loc} = \textbf{geodata}(w.\beta,u.i_{loc}))\)
Cases (i) and (ii) are straightforward as both locations are in free space or in the same IFOB. In case (iii) and (iv), if one location is in free space and the other belongs to another infrastructure, the latter maps to free space by loading the referenced IFOB.
Definition A.2
inside: \({\underline{\textit{genloc}}} \times {\underline{\textit{genrange}}} \rightarrow {\underline{\textit{bool}}}\)
Let u be a single location and V be a set of locations. The result is TRUE iff \(\exists v \in V\) such that
-
(i)
\(u.oid = \bot \wedge v.oid = \bot \wedge u.i_{loc} \in v.l\); or
-
(ii)
u.oid = v.oid ∧ (u.i loc ∈ v.l ∨ \((\exists w \in Space: v.oid = w.oid \ \wedge\) \(\textbf{geodata}(w.\beta, u.i_{loc}) \in \textbf{geodata}( w.\beta,v.l)))\); or
-
(iii)
\(u.oid = \bot \wedge (\exists w \in Space:\) v.oid = w.oid ∧ w.s ∈ IOSymbol’ ∧ \(u.i_{loc} \in \textbf{geodata}(w.\beta,v.l))\); or
-
(iv)
\(v.oid = \bot \wedge (\exists w \in Space:\) u.oid = w.oid ∧ w.s ∈ IOSymbol ∧ \(\textbf{geodata} (w.\beta,u.i_{loc}) \in v.l)\)
Case (i) shows a single location and a set of locations in free space. If u,v reference to the same object w (case (ii)), one can directly compare the location inside w or load the referenced object to transform from relative location to global. Similarly, if one parameter corresponds to free space and the other does not, we need to perform location mapping by the referenced object. These are cases (iii) and (iv).
Definition A.3
intersects: \({\underline{\textit{genrange}}} \times {\underline{\textit{genrange}}} \rightarrow {\underline{\textit{bool}}}\)
The result is TRUE iff \(\exists u \in U, \exists v \in V\) such that
-
(i)
\(u.oid = \bot \wedge v.oid = \bot \wedge u.l ~ \textbf{intersects} ~ v.l\) ; or
-
(ii)
\(u.oid = v.oid \wedge u.l ~ \textbf{intersects} ~ v.l\) ; or
-
(iii)
\(u.oid = \bot \wedge (\exists w \in Space:\) v.oid = w.oid ∧ w.s ∈ IOSymbol’ ∧ u.l intersects geodata (w.β, v.l)); or
-
(iv)
\(v.oid = \bot \wedge (\exists w \in Space:\) u.oid = w.oid ∧ w.s ∈ IOSymbol’ ∧ v.l intersects geodata(w.β, u.l))
Definition A.4
distance: \({\underline{\textit{genloc}}} \times {\underline{\textit{genloc}}} \rightarrow \underline{\textit{real}}\)
\(\textbf{length}(\textbf{trajectory}(\textbf{trip}(u, v)))\)
Definition A.5
trajectory: \({\underline{\textit{genmo}}} \rightarrow {\underline{\textit{genrange}}}\)
The result is a set of (oid, l, m) where m = u i .m and the values for oid and l are defined in the following.
-
(i)
\(u_i.oid = \bot ~\Rightarrow ~oid = \bot \wedge l= \cup f(t)(t\in u_i.i)\); or
-
(ii)
\(\exists w \in Space\): u.oid = w.oid ∧ (w.s = REGION ∨ w.s = GROOM), then oid = u.oid, l = ∪ f(t).i loc (t ∈ u i .i); or
-
(iii)
\(\exists w \in Space\): u.oid = w.oid ∧ (w.s = LINE ∨ w.s = BUSROUTE), then \(oid = u.oid, l=\cup \textbf{geodata}(w.\beta,f(t).i_{loc})(t\in u_i.i)\); or
-
(iv)
\(\exists w_1, w_2 \in Space: u.oid w_1.oid \wedge w_1.s \mathrm{MPPTN} \wedge \textbf{ref\_id}(w_1)w_2.oid\), then \(oid = w_2.oid, l= \textbf{trajectory}(\textbf{atperiods}(w_1,u_i.i\)))
The trajectory of a moving object is a set of movement projections, each of which shows the path of a unit u i ∈ mo. The meaning for (i) and (ii) should be clear. In case (iii), the object moves along a pre-defined path, e.g., a road or bus route. For case (iv), the location in u i maps to a bus. Then, the trajectory is the bus movement, which goes to case (iii).
Definition A.6
at: \({\underline{\textit{genmo}}} \times {\underline{\textit{genloc}}} \rightarrow {\underline{\textit{genmo}}}\)
Let mo = < u 1, u 2, ..., u n > be the moving object and v denote the location.
-
(i)
\(v.i_{loc} \neq \bot\), the result is < u 1′,...,u k ′ > where u i ′ ∈ mo ∧ ∀ t ∈ u i ′.i: f(t) = v; or
-
(ii)
\(v.oid \neq \bot \wedge v.i_{loc}=\bot\), then the result is < u 1′,...,u k ′ > where u i ′ ∈ mo ∧
-
(a)
u i ′.oid = v.oid; or
-
(b)
\(u_i'.oid = \bot \wedge (\exists w \in Space\) such that w.oid = v.oid ∧ ∀ t ∈ u i ′.i: f(t) ∈ w.β ∧ w.s ∈ IOSymbol’)
-
(a)
The meaning is clear if the second argument represents a precise location (case (i)). If the location only records an object id (case (ii)), then the units in the result could have the same reference id as the input, or the unit location maps to the place covered by the given IFOB.
Definition A.7
intersection: \({\underline{\textit{genrange}}} \times {\underline{\textit{genrange}}} \rightarrow {\underline{\textit{genrange}}}\)
Let U and V be the two arguments, and the result is denoted by L. The value for L is defined in the following: ∀ \(l_i \in D_{\underline{\emph{genloc}}}\): l i inside L \(\Rightarrow\) l i inside U ∧ l i inside V.
Definition A.8
at: \({\underline{\textit{genmo}}} \times {\underline{\textit{genrange}}} \rightarrow {\underline{\textit{genmo}}}\)
Let mo = < u 1, u 2, ..., u n > be the moving object and V be a set of locations. We use L (\(\in D_{{\underline{\textit{genrange}}}}\)) to denote the intersection locations between trajectory(mo) and V. The result is mo′ = < u 1′, u 2′, ... , u k ′ > fulfilling the condition: ∀ u j ′ ∈ mo′, \(\forall t \in u_j'.i: f(t) (\in D_{\underline{\emph{genloc}}})\) inside L.
Appendix B: Example relations and query signatures
The following relations are used in the queries throughout the paper. Infrastructure relations are accessed by the get_infra operator.
- rel_busstop :
-
(BusStopId: int, Stop: busstop, Name: string)
- rel_busroute :
-
(BusRouteId: int, Route; busroute, Name: string, Up: bool)
- rel_bus :
-
(BusId: int, BusTrip: mpptn, Name: string)
- rel_room :
-
(RoomId: int, Room: groom, Name: string)
- rel_door :
-
(DoorId: int, Door: door)
- rel_roompath :
-
(RoomPathId: int, Door1: int, Door2: int, Weight: real, Room: groom, Name: string, Path: line)
- rel_rbo :
-
(RegId: int, Reg: region, Name: string)
- rel_rn :
-
(RoadId: int, Road: line, Name: string)
In the following tables we show the signatures of operations used in the queries. Operator get_infra is omitted as it occurs in almost every query. We define subtype to mean that the operator performs a conversion from a specific type to a generic type.
No. | Operator | Signature |
| Definition |
---|---|---|---|---|
Q1 | ||||
Q2 | geodata | busroute × busstop | → point | Section 4.1.2 |
Q3 | atinstant | genmo × instant | → intime(genloc) | Table 6 |
val | intime(genloc) | → genloc | Table 6 | |
Q4 | atperiods | genmo × periods | → genmo | Table 6 |
val | intime(genloc) | → genloc | Table 6 | |
= | genloc × genloc | → bool | Table 7 | |
Q5 | get_mode | genmo | → set(tm) | Table 9 |
contains | set(tm) × tm | → bool | Section 6.3 | |
Q6 | at | genmo × tm | → genmo | Table 9 |
deftime | genmo | → periods | Table 6 | |
duration | periods | → real | Table 6 | |
Q7 | ref_id | mpptn | → int | Table 9 |
at | genmo × tm | → genmo | Table 9 | |
get_ref | genmo | → set(ioref ) | Table 9 | |
contains | set(ioref ) × int | → bool | Section 6.3 | |
Q8 | subtype | busstop | < genloc | Table 10 |
at | genmo × tm | → genmo | Table 9 | |
at | genmo × genloc | → genmo | Table 8 | |
deftime | genmo | → periods | Table 6 | |
duration | periods | → real | Table 6 | |
Q9 | contains | set(region) × region | → bool | Section 6.3 |
freespace | groom | → region | Table 11 | |
contains | set(string) × string | → bool | Section 6.3 | |
Q10 | freespace | mpptn | → mpoint | Table 11 |
passes | mpoint × region | → bool | [18] | |
Q11 | ref_id | mpptn | → int | Table 9 |
distance | mpoint × mpoint | → mreal | [18] | |
freespace | mpptn | → mpoint | Table 11 | |
freespace | genmo | → mpoint | Table 11 | |
at | genmo × tm | → genmo | Table 9 | |
Q12 | subtype | busroute | < genrange | Table 10 |
subtype | line | < genrange | Table 10 | |
intersects | genrange × genrange | → bool | Table 7 | |
Q13 | atperiods | genmo × periods | → genmo | Table 6 |
at | genmo × tm | → genmo | Table 9 | |
get_ref | genmo | → set(ioref ) | Table 9 | |
contains | set(ioref ) × int | → bool | Section 6.3 | |
Q14 | at | genmo × tm | → genmo | Table 9 |
trajectory | genmo | → genrange | Table 8 | |
Q15 | subtype | groom | < genrange | Table 10 |
at | genmo × genrange | → genmo | Table 8 | |
deftime | genmo | → periods | Table 6 | |
components | periods | → set(periods) | Section 6.3 | |
duration | periods | → real | Table 6 | |
Q16 | ref_id | mpptn | → int | Table 9 |
subtype | busstop | < genloc | Table 10 | |
genloc | int × real × real | → genloc | Table 11 | |
at | genmo × genloc | → genmo | Table 8 | |
initial | genmo | → intime(genloc) | Table 6 | |
val | intime(genloc) | → genloc | Table 6 | |
= | genloc × genloc | → bool | Table 7 | |
Q17 | subtype | groom | < genrange | Table 10 |
passes | genmo × genrange | → bool | Table 8 | |
subtype | busstop | < genloc | Table 10 | |
atperiods | genmo × periods | → genmo | Table 6 | |
at | genmo × tm | → genmo | Table 9 | |
initial | genmo | → intime(genloc) | Table 6 | |
final | genmo | → intime(genloc) | Table 6 | |
val | intime(genloc) | → genloc | Table 6 | |
= | genloc × genloc | → bool | Table 7 | |
Q18 | subtype | gline | < genrange | Table 10 |
atperiods | genmo × periods | → genmo | Table 8 | |
components | periods | → set(periods) | Section 6.3 | |
final | genmo | → intime(genloc) | Table 6 | |
val | intime(genloc) | → genloc | Table 6 | |
at | genmo × tm | → genmo | Table 9 | |
inside | genloc × genrange | → bool | Table 7 |
Appendix C: Type system in free space and road network
Definition C.1
Definition C.2
Definition C.3
Definition C.4
Definition C.5
Rights and permissions
About this article
Cite this article
Xu, J., Güting, R.H. A generic data model for moving objects. Geoinformatica 17, 125–172 (2013). https://doi.org/10.1007/s10707-012-0158-7
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10707-012-0158-7