\section{Introduction}
\label{sec:intro}

Spatial database management systems (spatial DBMS) and Geographical Information Systems (GIS) mainly provide support to handle \emph{crisp spatial objects} to represent real-world phenomena by using crisp points, crisp lines, and crisp regions. Crisp spatial objects characterize spatial phenomena with exact locations and whose shape and boundary are precisely defined~\cite{SB06TODS}. Examples are cities with their political boundaries. For their handling, spatial operations like geometric set operations (for instance, union), topological predicates (for instance, overlap), and numerical operations (for instance, distance) are defined and used in spatial queries.

However, geoscientists are increasingly interested in modeling spatial real-world phenomena that do not have exact locations, strict boundaries, or sharp interiors. This characterization leads to \emph{spatial vagueness}.
There are several real-world phenomena that are characterized by spatial vagueness, such as habitats of migratory species, rivers with different levels of water in different time periods, and air polluted areas that can vary due to climatic changes. In general, it has a spatial extent that \emph{certainly} belongs to the real-world phenomena (that is, the \emph{kernel}) and a spatial extent that \emph{maybe} belongs to the real-world phenomena (that is, the \emph{conjecture})~\cite{Siq14GeoInf}.

There are a number of approaches proposed in the literature that define models to represent spatial vagueness, which can be classified as \emph{probabilistic models}~\cite{Li07COMP,Zinn07VLDB}, \emph{fuzzy models}~\cite{Krai04Thesis,Dilo06FDSIU,Dilo07IJGIS,Carn14ACMGIS}, and \emph{exact models}~\cite{CD97IJAR,PaulySch08QASDM,PaulySch10IS,Beja10GEOINF}. These models introduce concepts and notions of \emph{vague spatial objects} by formally defining spatial data types for \emph{vague points}, \emph{vague lines}, and \emph{vague regions}. They also introduce vague spatial operations to handle them, that is, \emph{vague geometric set operations} (for instance, vague geometric union), \emph{vague topological predicates} (for instance, vague overlap), and \emph{vague numerical operations} (for instance, vague distance).

There are several advantages of incorporating vague spatial objects and their operations into spatial databases, such as to provide a more realistic representation of application environments, to allow users to manipulate vague spatial objects found in real-world phenomena, and to provide an efficient processing of operations on vague spatial objects. For instance, in an ecological application, users aim to manage habitats of species and polluted areas of rivers. The habitats and the polluted areas of rivers are represented by vague regions. This means that habitats have locations where species certainly appear and locations where species maybe appear. Further, rivers have unpolluted areas and areas where there is some kind of pollution. By using such data, a user can ask the following query: ``Find all polluted areas of rivers that \emph{maybe overlap} with habitats of species''. In this query, spatial vagueness is represented by the \emph{maybe overlap} predicate, which will return true when the overlap occurs to some extent, that is, occurs with some degree of uncertainty.

To handle spatial objects in spatial applications, \emph{abstract data types} (ADT) have been used in spatial DBMS and GIS. An ADT aids the use of spatial operations in spatial queries by hiding their complexities from the user. While ADTs for crisp spatial data are deeply implemented in the literature, this is not the case for vague spatial data. Although there are approaches that provide ADTs for vague spatial data~\cite{Krai04Thesis,Dilo06FDSIU,Zinn07VLDB,PaulySch08QASDM,PaulySch10IS,Carn15GeoInfo2}, they face several limitations. First, they only provide support for a small subset of vague spatial operations. Second, they do not support textual and binary representations of vague spatial objects. Third, they do not support SQL operators to handle results of vague spatial operations. Finally, the majority of the approaches does not implement vague spatial objects in a spatial DBMS, or are specifically designed to run on a proprietary DBMS.

In this article, we fill this gap in the literature. We propose a novel ADT named \name\ to incorporate vague spatial objects into a spatial DBMS. \name\ is based on the \emph{exact model} since this model reuses existing concepts and implementations of crisp spatial data and formally defines a complete set of vague spatial operations. The main advantage to use implementation of crisp spatial data is that they are well defined and their efficiency is largely explored in the literature. Among the exact models~\cite{CD97IJAR,PaulySch08QASDM,PaulySch10IS,Beja10GEOINF}, \name\ is based on the \emph{Vague Spatial Algebra} (VASA)~\cite{PaulySch08QASDM,PaulySch10IS} since it formally defines simple and complex vague spatial data types. Further, VASA introduces a more expressive algebra than the models described in~\citeN{Beja10GEOINF} and \citeN{CD97IJAR} by including a huge set of operations, such as vague geometric set operations, vague topological predicates, and vague numerical operations.

\name\ greatly overcomes the aforementioned limitations. This article extends our previous work in~\citeN{Carn15GeoInfo1}, which presents a first version of the \name. We highlight several unpublished subjects addressed in this article, such as (i) graphical representations of vague spatial objects, (ii) several examples of instance of textual representations of \name, (iii) type-dependent vague spatial operations (for instance, common border between two vague region objects), (iv) SQL signatures for all \name\ operations, (v) a running example that shows how to use the \name\ in SQL queries, and (vi) an additional experimental evaluation that analyzes the performance of \name\ in the query processing for vague spatial joins. Hence, our proposed \name\ has the following characteristics.

\begin{itemize}

\item It offers textual and binary representations for vague spatial objects, which make possible their use to define, insert, and retrieve vague spatial objects by using textual or binary representations. Further, these representations can be used as a way of communication and interoperability between different spatial applications.

\item It implements an expressive set of spatial operations for vague spatial objects. To comply with this goal, \name\ includes the specification of vague geometric set operations, vague topological predicates, vague numerical operations, and type-dependent operations. As a result, the use of \name\ empowers the management of vague spatial objects in spatial applications by users.

\item It supports SQL operators that allow users to handle results of vague topological predicates and vague numerical operations.

\item It is open source and implemented in the open source PostgreSQL DBMS with the PostGIS spatial extension. This means that spatial applications are able to access directly a spatial database containing vague spatial objects and handle these objects by using vague spatial operations accordingly. A running example is employed in order to show how to use \name\ in SQL queries.

\item It includes an efficient improvement to process vague topological predicates in spatial queries, such as vague range queries and vague spatial joins.

\end{itemize}

This article is organized as follows. Section~\ref{sec:relatedWork} surveys related work and shows a comparison table between the \name\ and the current related work. Section~\ref{sec:VASA} summarizes the Vague Spatial Algebra. Section~\ref{sec:proposal} introduces the proposed \name\ by specifying its operations and shows how to use \name\ in SQL queries by using a running example. Section~\ref{sec:improvement} details the improvement in the processing of vague topological predicates. Section~\ref{sec:experimentalEvaluation} describes performance tests. Section~\ref{sec:conclusion} concludes the article and presents future work. 