DBST: Uma API para Criação de Trajetórias Semânticas no SGBD

Propaganda
Pós-Graduação em Ciência da Computação
DBST: Uma API para Criação de
Trajetórias Semânticas no SGBD
PostgreSQL/Postgis
Por
Rodrigo da Rocha Borges de Santana
Dissertação de Mestrado Profissional
Universidade Federal de Pernambuco
[email protected]
www.cin.ufpe.br/~posgraduacao
RECIFE, Abril/2013
UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE INFORMÁTICA
PÓS- GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Rodrigo da Rocha Borges de Santana
DBST: Uma API para Criação de Trajetórias
Semânticas no SGBD PostgreSQL/Postgis
Este trabalho foi apresentado à Pós-Graduação em
Ciência da Computação do Centro de Informática da
Universidade Federal de Pernambuco como requisito
parcial para obtenção do grau de Mestre Profissional
em Ciência da Computação.
ORIENTADOR (A): Valéria Cesário Times
Recife, Abril/2013
Catalogação na fonte
Bibliotecária Jane Souto Maior, CRB4-571
Santana, Rodrigo da Rocha Borges de
DBST: uma API para criação de trajetórias semânticas
no SGBD PostgreSQL/Postgis. / Rodrigo da Rocha Borges
de Santana - Recife: O Autor, 2013.
xi, 101 f.: fig., tab., quadros
Orientador: Valéria Cesário Times.
Dissertação (mestrado) - Universidade
Pernambuco. CIn, Ciência da Computação, 2013.
Federal
de
Inclui bibliografia e apêndice.
1. Banco de dados. 2. Sistema de informação geográfica. I.
Times, Valéria Cesário (orientadora). II. Título.
025.04
CDD (23. ed.)
MEI2013 – 078
Dissertação de Mestrado Profissional apresentada por Rodrigo da Rocha Borges de Santana
à Pós-Graduação em Ciência da Computação do Centro de Informática da Universidade
Federal de Pernambuco, sob o título, “DBST: Uma API para Criação de Trajetórias
Semânticas no SGBD PostgreSQL/Postgis”, orientada pela Professora Valéria Cesário Times
e aprovada pela Banca Examinadora formada pelos professores:
______________________________________________
Prof. Fernando da Fonseca de Souza
Centro de Informática / UFPE
__________________________________________
Prof. Marizete Silva Santos
Universidade Federal Rural de Pernambuco
___________________________________________
Prof. Valéria Cesário Times
Centro de Informática / UFPE
Visto e permitida a impressão.
Recife, 19 de abril de 2013.
___________________________________________________
Profª. EDNA NATIVIDADE DA SILVA BARROS
Coordenadora da Pós-Graduação em Ciência da Computação do
Centro de Informática da Universidade Federal de Pernambuco.
i
Dedico essa vitória primeiramente a DEUS!
Também a minha família que é a inspiração para minhas batalhas...
ii
Agradecimentos
Considero-me uma pessoa abençoada! Por pertencer a uma família solidária, ser
casado com uma pedra preciosa e rara, além de ser rodeado de amigos irmãos,
trabalhar com o que gosto e me sentir como uma pessoa querida dentre as que eu
convivo.
Primeiro que tudo enalteço a DEUS por tudo que tem feito na minha vida! Sem Ele
nada seria possível.
Agradeço a minha mãe, uma das pessoas mais batalhadoras e incríveis que
conheci. É principalmente por ela que busco uma constante evolução em minha vida
profissional e pessoal. Uma pessoa realmente impressionante! Agradeço também a
minha vó Irene, que teve uma participação constante na minha criação, me
passando sempre muito conhecimento de vida. Também agradeço a minha tia Iracy
que sempre me incentivou a estudar.
Minha esposa foi a pessoa mais próxima a mim durante esta etapa de minha vida.
Uma mulher maravilhosa, apaixonante, dedicada a família e acima de tudo, é a
mulher que escolhi para viver, minha princesa. É por estes motivos e sentimentos
que deixo aqui o meu agradecimento a ela. Muito obrigado a minha querida e
amável esposa.
Agradeço também a minha amiga e gerente Marlice Novais, por todo o apoio dado e
principalmente pela oportunidade de fazer este Mestrado. Uma pessoa que sempre
esteve proporcionando possibilidades de crescimento profissional a minha pessoa.
Foi ela que também intermediou uma melhora na minha condição financeira para
que eu pudesse me graduar e chegar a fazer o Mestrado. Obrigado por tudo.
Professora Valéria, minha orientadora, um anjo dentre outros que DEUS colocou no
meu caminho, uma pessoa formidável, serena e paciente. Obridado pela paciência e
confiança depositada a mim, e que DEUS continue iluminando o seu caminho e da
sua família. Não sei como agradecê-la, digo apenas obrigado, obrigado, muito
iii
obrigado. O que posso fazer neste momento de reflexão é “dedicar a primeira fatia
do bolo” a ela. Sem dúvida a pessoa mais importante desta minha jornada no
decorrer do mestrado e por quem a minha admiração só aumentou.
Agradeço a meus amigos (Mário, Ednei, Roberto, Melo, Diogo, Júlio, Djailson, Jorge,
Adriano, Márcio) do Centro de Informática da UFPE pelo apoio e demonstração de
confiança a mim depositada. Em especial, agradeço às minhas duas amigas irmãs:
Juliana e Nadja. Muito obrigado pela ajuda e principalmente pelas revisões dos
textos da dissertação. Agradeço a todos pelas conversas de apoio, dando sempre
uma “injeção” de ânimo e perseverança. Muito obrigado ao meu grande amigo
Clécio, pois sem ele não teria nem começado a minha graduação. Ele não só me
incentivou bastante a ingressar em uma universidade como pagou o meu vestibular
em um momento financeiro difícil passado por mim. Na época, ele acreditou mais em
mim do que eu mesmo. Deixo aqui também o meu muito obrigado a André que tanto
me ajudou desde o primeiro momento em que me conheceu.
Agradeço também às pessoas que em silêncio torceram e oraram por mim. Muito
obrigado!
iv
Portas da vida
Se você abre uma porta, você pode ou não entrar em uma nova sala. Você
pode não entrar e ficar observando a vida. Mas se você vence a dúvida, o medo, e
entra, dá um grande passo, nesta sala vive-se. Mas, também tem um preço... São
inúmeras outras portas que você descobre. Às vezes quebra-se a cara, às vezes
curte-se mil e uma. O grande segredo é saber quando e qual porta deve ser aberta.
A vida não é rigorosa. Ela propicia erros e acertos. Os erros podem ser
transformados em acertos quando com eles se aprende. Não existe a segurança do
certo eterno. A vida é generosa. A cada sala que se vive, descobrem-se tantas
outras portas. E a vida enriquece quem se arrisca a abrir novas portas. Ela privilegia
quem descobre seus segredos e generosamente oferece afortunadas portas. Mas
a vida também pode ser dura e severa. Se você não ultrapassar a porta, terá sempre
a mesma porta pela frente. E a repetição perante a criação, é a monotonia
monocromática perante a multiplicidade das cores; é a estagnação da vida...
Para a vida, as portas não são obstáculos, mas diferentes passagens...
Içami Tiba
v
Resumo
Atualmente, cada vez mais existem Sistemas de Gerenciamento de Banco de dados
(SGBD) que disponibilizam tipos de dados com características geométricas e
temporais, para indicar a localização de um dado objeto móvel no espaço e no
tempo, ou demarcar topologicamente uma dada região. Isso se deve ao aumento do
uso de tecnologias de localização geográfica, tal como o Sistema de Posicionamento
Global (GPS). Cada vez mais cresce o uso de GPS por aplicações de domínios
distintos. No entanto, os dados coletados por dispositivos de localização acoplados a
objetos móveis que se deslocam ao longo do espaço e do tempo, não apresentam
informações semânticas, dificultando a análise e compreensão destes dados. Por
isso, foi identifcado a falta de SGBD capazes de representar e manipular trajetórias
semânticas.
Existem vários trabalhos na literatura voltados para modelagem de trajetórias
semânticas e para análise de trajetórias brutas obtidas de GPS para extração de
conhecimento. Uma vez geradas e modeladas, as trajetórias semânticas precisam
ser armazenadas em um SGBD. Por isso, este trabalho tem como objetivo estender
o SGBD PostgreSQL/Postgis com novos tipos de dados para representação de
trajetória semântica. Para facilitar a utilização desses novos tipos de dados, é
também proposta uma Application Programming Interface (API) denominada de
DBST (Database of Semantic Trajectories). A validação destes novos tipos de dados
e da API DBST foi feita pela geração de bases de dados de trajetórias semânticas
para dois domínios de aplicação distintos e com base em dados reais de trajetórias
de objetos móveis.
Palavras-Chaves: Trajetória bruta, trajetória semântica, dados espaço-temporais,
objetos móveis, API.
vi
Abstract
Currently, there are more and more Systems Management Database (DBMS) that
provide data types with geometric and temporal features, to indicate the location of a
given moving object in space and time, or to topologically demarcate a given region.
This is due to the increased use of geo-location technology such as Global
Positioning System (GPS). There is an increasing use of GPS by applications from
different domains. However, data collected by tracking devices attached to mobile
objects moving across space and time, have no semantic information, making it
difficult to analyze and understand these data. Therefore, was identified a lack of
DBMS able to represent and manipulate semantic trajectories.
Several studies in the literature have focused on the modeling of semantic
trajectories and on the analysis of raw trajectories extracted from GPS for knowledge
discovery. Once generated and modeled the semantic trajectories must be stored in
a DBMS. Therefore, this study aims to extend the DBMS PostgreSQL / PostGIS with
new data types for representing semantic trajectories. To facilitate the use of these
new data types, it is also proposed an Application Programming Interface (API)
called DBST (Database of Semantic Trajectories). The validation of these new data
types and of the DBST API was done by generating semantic trajectories databases
for two different application domains, and based on real trajectory data of moving
objects.
Keywords: Raw trajectories, semantic trajectories, spatiotemporal data, moving
objects, API.
vii
Índice
1. Introdução .......................................................................................................................................... 1
1.1.
Motivação................................................................................................................................ 2
1.2.
Objetivos ................................................................................................................................. 4
1.3.
Estrutura da Dissertação ......................................................................................................... 4
2. Fundamentação Teórica ..................................................................................................................... 6
2.1.
Introdução ............................................................................................................................... 7
2.2.
Representação de Dados Espaciais e Temporais .................................................................... 7
2.2.1. Representação de Dados Espaciais ..................................................................................... 7
2.2.2. Representação de Dados Temporais ................................................................................... 9
2.3. Representação de Trajetórias .................................................................................................. 14
2.3.1. Representação de Trajetória Bruta ..................................................................................... 18
2.3.2. Representação de Trajetória Semântica ........................................................................... 19
2.3.3. Modelagem Conceitual de Trajetória ................................................................................ 24
2.3.3.1. O Modelo de Paradas e Movimentos ......................................................................... 24
2.3.3.2. Outros Modelos Conceituais ...................................................................................... 27
2.4. API ............................................................................................................................................. 28
2.5.
Conclusões............................................................................................................................. 30
3. Trabalhos Correlatos ........................................................................................................................ 32
3.1. Introdução ................................................................................................................................ 33
3.2. API para Dados Geográficos ..................................................................................................... 33
3.2.1. A API TerraLib .................................................................................................................... 34
3.2.2. A API ArcSDE ...................................................................................................................... 34
3.3.
Comparação entre API DBST x TerraLib x ArcSDE ................................................................. 35
3.4.
Representação de Trajetórias Semânticas em BD ................................................................ 36
3.4.1. Proposta de Fajardo .......................................................................................................... 37
3.5.
Comparação entre API DBST e o trabalho de Fajardo .......................................................... 38
3.6. Conclusões ................................................................................................................................ 41
4. A API DBST (DataBase of Semantic Trajectories) ............................................................................. 43
4.1.
Introdução ............................................................................................................................. 44
4.2.
Tipos de Dados da API DBST .................................................................................................. 44
4.2.1. Dados de Paradas e Movimentos ...................................................................................... 45
4.2.2. Dados de Trajetórias.......................................................................................................... 47
viii
4.2.3. Dados de Anotações Semânticas....................................................................................... 49
4.3. Implementação da API DBST .................................................................................................... 58
4.3.1. Estrutura de Classes da API DBST ...................................................................................... 58
4.4.
Conclusão .............................................................................................................................. 62
5. Exemplos de Aplicação ..................................................................................................................... 64
5.1.
Introdução ............................................................................................................................. 65
5.2.
Preparação do Ambiente ...................................................................................................... 65
5.3.
Uso de Tipos de Dados da API DBST...................................................................................... 66
5.4. Cenário 1 - Monitoramento de Pássaros................................................................................... 69
5.4.1. Trajetórias de Pássaros....................................................................................................... 69
5.4.2. Exemplos de Consultas ...................................................................................................... 70
5.5.
Cenário 2: Gerenciamento de Transporte Público ................................................................ 76
5.5.1. Trajetórias de Ônibus ......................................................................................................... 76
5.5.2. Exemplos de Consultas ...................................................................................................... 77
5.6.
Conclusões............................................................................................................................. 81
6. Conclusões ........................................................................................................................................ 83
6.1.
Considerações Finais ............................................................................................................. 84
6.2.
Principais Contribuições ........................................................................................................ 85
6.3.
Limitações ............................................................................................................................. 85
6.4.
Trabalhos Futuros.................................................................................................................. 86
Referências Bibliográficas ..................................................................................................................... 88
Apêndice A ............................................................................................................................................ 96
Scripts DDL PostgreSQL/Postgis ........................................................................................................ 96
Cenário 1 – Gerenciamento de Trajetória de Pássaros ................................................................. 96
Cenário 2 – Gerenciamento de Transportes Públicos ................................................................... 98
ix
Lista de Figuras
Figura 1 - Rede geográfica do globo terrestre mostrando o sistema de coordenadas (x,y) .... 9
Figura 2 - Tempo consecutivo e linearmente ordenado ............................................................... 10
Figura 3 - Representação do tempo ramificado ............................................................................ 10
Figura 4 - Representação do tempo circular .................................................................................. 11
Figura 5 - O caminho percorrido pelo objeto móvel em vários segmentos espaço-temporal. 15
Figura 6 - Paradas e movimentos ao longo de uma trajetória bruta .......................................... 18
Figura 7 - Processo de limpeza dos dados de uma trajetória bruta ........................................... 19
Figura 8 - Exemplo de uma trajetória semântica ........................................................................... 20
Figura 9 - Reconstrução de uma trajetória semântica .................................................................. 21
Figura 10 - Modelagem conceitual de uma trajetória ................................................................... 25
Figura 11 - Mapeamento do modelo de paradas e movimentos para uma aplicação de
monitoramento de pássaro ............................................................................................................... 26
Figura 12 - Processo de descoberta do conhecimento a partir de dados espaços-temporais
............................................................................................................................................................... 38
Figura 13 - Representação Gráfica da Estrutura de Classes da API DBST. ............................ 59
Figura 14 - Diagrama de classes da API DBST ............................................................................ 61
Figura 15 - Estrutura da tabela de armazenamento de trajetórias de pássaros. ..................... 70
Figura 16 - Esquema lógico do monitoramento de pássaros. ..................................................... 75
Figura 17 - Estrutura de uma das tabelas de armazenamento dos trajetos dos ônibus. ........ 77
x
Lista de Quadros
Quadro 1 - Classificações da variação do tempo.......................................................................... 12
Quadro 2 - Forma de representação do elemento primitivo instante ......................................... 13
Quadro 3 - Forma de representação do elemento primitivo intervalo. ....................................... 14
Quadro 4 - Características pertencentes a uma trajetória. .......................................................... 16
Quadro 5 - Elementos contidos em uma trajetória........................................................................ 17
Quadro 6 - Quadro comparativo entre as APIs: DBST, TerraLib e ArcSDE ............................. 36
Quadro 7 - Quadro comparativo entre a Proposta de Fajardo e a API DBST. ......................... 39
Quadro 8 - Tipo de dado que representa os movimentos de objetos móveis .......................... 45
Quadro 9 - Tipo de dado que representa as paradas de objetos móveis. ................................ 47
Quadro 10 - Tipo de dado referente às trajetórias brutas. ........................................................... 48
Quadro 11 - Tipo de dado referente às trajetórias semânticas. .................................................. 49
Quadro 12 - Tipo de dado referente à anotação semântica. ....................................................... 50
Quadro 13 - Tipo de dado referente à anotação sobre o comportamento do objeto. ............. 52
Quadro 14 - Tipo de dado referente à anotação sobre as atividades realizadas pelos objetos
móveis. ................................................................................................................................................. 53
Quadro 15 - Tipo de dado referente à anotação sobre o ambiente transitado pelo objeto
móvel .................................................................................................................................................... 54
Quadro 16 - Tipo de dado referente à anotação sobre eventos ocorridos no percurso do
objeto móvel. ....................................................................................................................................... 55
Quadro 17 - Tipo de dado referente à anotação sobre o objetivo da trajetória. ....................... 56
Quadro 18 - Tipo de dado referente ao meio de transporte do objeto móvel. .......................... 57
Quadro 19 - Código de criação dos tipos de dados semânticos da API DBST. ...................... 67
Quadro 20 - Código de criação dos tipos de dados semânticos para o SGBD........................ 68
Quadro 21 - de linha do arquivo de entrada da API DBST.......................................................... 68
Quadro 22 - Código para Importação de dados. ........................................................................... 68
Quadro 23 - Código de armazenamento das informações de trajetórias em arrays. .............. 69
xi
Principais Abreviações
Abreviação
Significado
BD
Banco de dados
SGBD
Sistema de Gerenciamento de Banco de Dados
SGBDR
Sistema de Gerenciamento de Banco de Dados Relacional
SGBDOR
Sistema de Gerenciamento de Banco de Dados Objeto-Relacional
BDG
Banco de Dados Geográfico
API
Application Programming Interface
SQL
Structured Query Language
DBST
Database of Semantic Trajectories
ISO
International Organization for Standardization
OGC
Open Geospatial Consortium
GPS
Global Positioning System
RFID
Radio-Frequency IDentification
TB
Trajetória Bruta
TS
Trajetória Semântica
IFP
Início e Fim de uma Parada Semântica
Capítulo
1
Introdução
Este capítulo apresenta a descrição da motivação da pesquisa executada neste trabalho, os
objetivos traçados para a pesquisa, além de mostrar a estrutura organizacional deste
documento, contendo a sinopse de cada capítulo.
1
2
1.1. Motivação
Atualmente há um crescimento no uso de dispositivos de monitoramento,
capazes de monitorar o percurso de um objeto móvel qualquer no espaço, durante
um dado período de tempo, seja no espaço terrestre, aquático ou aéreo. O uso
destes dispositivos tende a crescer a cada momento, devido à redução de custo dos
dispositivos e da disponibilidade de novas tecnologias de rastreamento (LOY, A. M.,
2011). Por isso, tem crescido o monitoramento de objetos móveis por meio de
tecnologias de posicionamento, como Sistema de Posicionamento Global (GPS),
Identificação por Rádio Frequência (RFID), dentre outras. Houve também um
crescimento na área de pesquisa sobre análise de dados de trajetória,
especialmente referente às seguintes subáreas: modelagem de dados de trajetória,
processamento e enriquecimento semântico (YAN et. al., 2012). Para este trabalho
dissertativo, o dispositivo de rastreamento tomado como base foi o GPS.
Com o dispositivo de GPS, são coletadas informações espaço-temporais
definidas a partir de coordenadas geográficas (denotadas aqui por ((x, y), t)) de
trajetórias dos objetos móveis rastreáveis (e. g. aparelho celular, veículos,
mercadorias, animais, dentre outros). Os dados coletados por estes dispositivos são
classificados como dados brutos, nos quais praticamente não há significado. Para
extrair informações contextuais e até mesmo conhecimento, a partir dos dados de
uma dada trajetória, existe a necessidade de aplicação de algoritmos de mineração
de dados espaciais ou de sobreposição da trajetória bruta com camadas de
informações espacias (e.g. sobreposição da trajetória bruta com um mapa cadastral
urbano). Uma trajetória pode conter uma quantidade imensa de dados que podem
ser analisados e sobrepostos com várias camadas de dados espaciais. No entanto,
estas camadas de dados espaciais nem sempre estão disponíveis para a aplicação.
Os dados coletados durante o deslocamento de um objeto móvel no espaço e
ao longo do tempo, geralmente, não traz informações semânticas, que são de
fundamental relevância para análise e entendimento destes dados. Por isso, alguns
autores consideram que a análise dos dados de trajetória tem um custo
computacional elevado, e é complicada do ponto de vista do usuário (VAISMAN et.
al., 2007) pois requer o conhecimento do especialista de domínio.
3
A captura de trajetórias de objetos móveis cresce gradativamente ao longo do
tempo em diferentes domínios de aplicação. Com isso, aumenta a necessidade de
análise e extração de conhecimento destes dados (VAISMAN et. al., 2007). Os
SGBD atuais, tais como: Oracle (Murray et. al., 2006), Secondo (GUTING et. al.,
2011), dentre outros, oferecem suporte aos dados de trajetórias espaço-temporais,
mas não contemplam, dessa forma, as informações semânticas que podem
aumentar o universo de consultas que podem ser feitas sobre esses dados (SILVA,
M. C. T., 2012).
Este trabalho propõe a extensão da tecnologia do SGBD PostgreSQL/Postgis,
com a construção de tipos de dados semânticos que são independentes de uma
aplicação específica, e são capazes de representar trajetórias semânticas. Para
facilitar a manipulação desses novos tipos de dados aqui propostos, foi desenvolvida
uma Application Programming Interface (API) pela qual o usuário pode estender de
forma automática o SGBD com os tipos de dados semânticos que o mesmo deseja
usar. Além disso, existe a disponibilização dos recursos relativos a uma API, tais
como: funções, classes, protocolos, dentre outros, para auxiliar na manipulação
destes novos tipos de dados. Os tipos de dados estendidos pertencem a três
categorias distintas: anotações semânticas (que representam o comportamento, o
objetivo, o evento, a atividade, o ambiente e o meio de transporte usado pelo objeto
móvel), episódios (que denotam paradas e movimentos de trajetórias) e trajetória
(que representam a trajetória semântica e a trajetória espaço-temporal bruta).
Com a criação destes novos tipos de dados, o responsável pelo banco de
dados terá de forma pré-definida os tipos de dados específicos para trabalhar com
informações semânticas de trajetórias. Ou seja, os tipos de dados já foram
mapeados previamente, poupando tempo na identificação dos mesmos. Caso ocorra
a necessidade de utilizar outra anotação semântica que não tenha sido previamente
projetada por este trabalho, o desenvolvedor poderá criar suas próprias anotações
semânticas de trajetórias para que possa vir a usá-las no desenvolvimento de suas
aplicações.
4
1.2. Objetivos
O objetivo principal deste trabalho é estender o SGBD PostgreSQL/Postgis
propondo novos tipos de dados para representação de trajetória semântica. Para
facilitar a utilização desses novos tipos de dados, também é proposta uma API
denominada de DBST (Database of Semantic Trajectories).
Os objetivos específicos deste trabalho são listados como segue:
(1)
Especificar novos tipos de dados para representação de trajetórias
semânticas em BD do SGBD PostgreSQL/Postgis;
(2)
Desenvolver uma API para auxiliar na manipulação dos novos tipos de
dados para representação de trajetórias semânticas;
(3)
Criar Banco de Dados (BD) de trajetórias semânticas a partir de
trajetórias brutas reais para validar o trabalho proposto.
1.3. Estrutura da Dissertação
Este trabalho dissertativo, além deste capítulo, está organizado como segue.
Capítulo 2 – Fundamentação Teórica: Apresenta os conceitos básicos
sobre os temas discutidos neste trabalho. São eles: dados espaço-temporais,
trajetória bruta, trajetória semântica, API, além de uma discussão sobre modelagem
conceitual de trajetórias semânticas.
Capítulo 3 – Trabalhos Correlatos: Discute os trabalhos correlatos ao
trabalho proposto nesta dissertação. Ele descreve cada trabalho correlato e os
compara com a proposta deste trabalho, apresentando as principais diferenças e
semelhanças entre eles.
Capitulo 4 – A API DBST (Database of Semantic Trajectories): Apresenta
a API e os tipos de dados propostos por este trabalho dissertativo. Descreve os tipos
de dados especificados para a API DBST, que correspondem aos novos tipos de
dados estendidos para o SGBD PostgreSQL/Postgis, que também são propostos
5
nesta dissertação. Para um melhor entendimento do uso dos tipos de dados, é
exibido um cenário ilustrando a aplicação de cada tipo de dado proposto para
representação de trajetórias semânticas.
Capítulo 5 – Exemplo de Aplicações: Neste capítulo, são apresentados dois
exemplos de uso dos tipos de dados da API DBST em dois cenários de domínios
distintos: monitoramento de trajetórias de pássaros e gerenciamento de transportes
públicos.
Capítulo 6 – Conclusões: Relata as principais contribuições realizadas por
este trabalho dissertativo. Além disso, são indicadas algumas sugestões de
pesquisas futuras e é sumarizado o trabalho realizado.
Capítulo
2
Fundamentação Teórica
Este capítulo apresenta a fundamentação teórica relacionada à proposta desta dissertação,
abordando os conceitos básicos sobre dados espaço-temporais, trajetória bruta, trajetória
semântica, API, além da discussão sobre modelagem conceitual de trajetórias semânticas.
7
2.1. Introdução
Neste capítulo são apresentados alguns conceitos que são considerados
importantes para o entendimento do trabalho descrito nesta dissertação e está
estruturado como segue. Na Seção 2.2, são mostrados conceitos relacionados aos
dados espaço-temporais, exibindo alguns tipos de suas representações espaciais e
temporais. A Seção 2.3 contém as definições relacionadas à trajetória, incluindo a
descrição e ilustração da diferença entre uma trajetória bruta e uma trajetória
semântica, além da discussão de uma proposta de modelagem conceitual para
trajetórias semânticas que foi definida por Spaccapietra et. al. ( 2009). Na Seção 2.4,
são exibidos os conceitos correspondentes a Application Programming Interface
(API), explicitando quando, onde e porque se deve utilizar uma API. Por fim,
algumas conclusões sobre este capítulo são dadas na Seção 2.5.
2.2. Representação de Dados Espaciais e Temporais
Esta seção está estruturada da seguinte forma: a Seção 2.2.1 discorre sobre
a representação de dados espaciais, enquanto que a Seção 2.2.2 detalha os
aspectos de representação de dados temporais.
2.2.1. Representação de Dados Espaciais
Foi definido em Yi, B (2004), que qualquer fenômeno que esteja associado a
uma dimensão espacial, é classificado como dado espacial. Estes dados podem ser
modelados de forma matricial ou vetorial, onde a representação matricial é
geralmente definida por uma matriz de células de tamanhos regulares, e cada célula
é respectivamente associada a uma região geográfica. No formato vetorial, os dados
espaciais são descritos por uma combinação de formas geométricas (e.g. pontos,
linhas e polígonos). A escolha pelo uso do modelo matricial ou vetorial geralmente
depende da aplicação. Dados espaciais são informações geo-referenciadas,
também denominadas de geoespaciais, que representam a localização de um objeto
qualquer no globo terrestre, num determinado período ou instante de tempo
(MEDEIROS, et. al., 1996). Costa (2011) reporta que a informação relativa à
localização espacial do fenômeno de interesse é usada por procedimentos de
8
pesquisa de análise espacial. Para este trabalho, apenas são considerados dados
no formato vetorial, representados por pontos e segmentos de linha.
Na representação de dados no formato vetorial, os objetos podem ter
múltiplas representações geométricas. Por exemplo, as escolas, os restaurantes e
as casas podem ser representados por um ponto ou polígono espacial, dependendo
da escala cartográfica escolhida para construção do mapa. Uma linha geoespacial, é
composta por um grupo de pontos sequenciados, que consiste na localização
espacial do objeto móvel. Por exemplo, rios, ruas e rodovias podem ser
simbolizados na superfície terrestre por uma linha. Um polígono pode denotar um
estado, país ou continente, e constitui um conjunto de linhas que demarcam
topologicamente uma determinada região espacial. Vale ressaltar que a forma
geométrica de representação espacial a ser utilizada é decorrente da escala de
medida pela qual os dados geoespaciais são definidos (BARROS, R. C., 2012).
Em Barros (2012), é dito que dados espaciais são oriundos de fenômenos
ocorridos no espaço e representam suas localizações e formatos. Dados espaciais
são especializados em dados geográficos que representam a localização de objetos
ou fenômenos associados à superfície terrestre, através da referência topológica de
um sistema de coordenadas, que pode também ser denotado como um sistema de
referência para posicionamento de pontos geoespaciais. Estes sistemas de
referência espacial surgiram a partir da criação de uma rede quadriculada de linhas
imaginárias verticais e horizontais, que cortam o globo terrestre inteiramente. Cada
quadrante desta rede representa um par de coordenadas do tipo latitude e longitude,
definidos como um ponto (x, y), sendo “x” correspondente à longitude e “y” à latitude.
A Figura 1 exibe a rede geográfica da terra com o sistema de coordenadas (x,y).
9
Figura 1 - Rede geográfica do globo terrestre mostrando o sistema de coordenadas
(x,y).
Fonte: BARROS, R. C., 2012.
O relacionamento espacial é classificado geralmente em três tipos: o
relacionamento
topológico,
que
envolve
relações
geométricas,
tais
como:
adjacência, sobreposição e disjunção; o relacionamento de direção, que é relativo ao
sentido, por exemplo, ao norte de, sudeste de; e por fim, o tipo de relacionamento
métrico, que se refere às características de medida, tais como: distância menor que
100 metros. Dentre os tipos citados, o mais utilizado e que possui uma maior
atenção por parte dos pesquisadores, é o relacionamento topológico (BARROS, R.
C., 2012).
As informações geo-referenciadas possuem três características principais: (1)
temática ou descritiva, que descreve “o que” está associado à localização espacial;
(2) espacial, que informa a localização de “onde” ocorreu o fenômeno, associando o
fenômeno ocorrido com as propriedades geométricas e/ou topológicas; e por fim, (3)
a característica temporal que relata “quando” ocorreu a coleta do fenômeno em uma
determinada localização espacial (MEDEIROS, et. al., 1996).
2.2.2. Representação de Dados Temporais
Na representação de dados temporais, devem ser considerados os aspectos
de ordem, variação e granularidade (DIAS et. al., 2005). Em relação ao aspecto de
ordem, o tempo pode ser sucessivo e ordenado de forma linear, como é
apresentado na Figura 2. Com isso, um conjunto de dois ou mais instantes de tempo
10
possui uma ordenação sequencial entre eles, como por exemplo: a evolução da
idade de uma pessoa.
Figura 2 - Tempo consecutivo e linearmente ordenado.
Fonte: DIAS et. al., 2005.
É possível haver uma ramificação do tempo, referente à possibilidade de fatos
ocorridos no passado ou previstos no futuro ocorrerem. Em se tratando do futuro
ramificado, pode haver dados históricos que influenciarão um determinado fato no
tempo presente, possibilitando alternativas de acontecimentos futuros (Figura 3a).
Por exemplo, uma pessoa pode viajar ou comprar um bem material, por ter recebido
um dinheiro extra. No passado ramificado, por meio de um conjunto de
acontecimentos é possível obter hipóteses sobre a existência de um fato em um
determinado tempo futuro (Figura 3b). Por exemplo, uma pessoa viajará porque tirou
férias e recebeu um dinheiro extra.
Figura 3 - Representação do tempo ramificado.
Fonte: DIAS et. al., 2005.
A Figura 3a ilustra o tempo ramificado no futuro possuindo diferentes
alternativas ou sucessores, enquanto a Figura 3b mostra a ramificação do passado
onde existem diferentes hipóteses antecessoras (EDELWEISS, N. e OLIVEIRA, J.
P., 1994).
Para fatos recorrentes, a representação do tempo é circular, pois os fatos
acontecem periodicamente na mesma referência de tempo, ou seja, o evento se
11
repete sempre em uma mesma temporalidade que foi definida anteriormente. Por
exemplo, em todo verão, uma determinada loja de vendas de roupas oferece
promoção de agasalhos de inverno. Seguindo o mesmo raciocínio, tem-se o fato de
que em todo inverno, um grupo de pessoas esquiam na neve. A Figura 4 ilustra as
situações citadas. Em outro exemplo, uma pessoa chega ao local de trabalho
sempre às 08:00h e sai às 18:00h, durante todos os dias de trabalho.
Figura 4 - Representação do tempo circular.
- Nenhum evento
- Temporada para esquiar
|
- Promoção de verão
|
- Nenhum evento
Fonte: DIAS et. al., 2005.
No aspecto temporal referente à variação, o tempo pode ser representado
como contínuo ou discreto. Segundo Dias et. al. (2005), quando se representa o
tempo no âmbito computacional, é necessário que o mesmo seja definido de forma
discreta, de modo que sua variação segue uma linha referencial de tempo que é
composta por sucessivos chronons com duração idêntica. Um Chronon é um
intervalo de tempo que não pode ser decomposto (EDELWEISS, N. e OLIVEIRA, J.
P., 1994), e que independe da granularidade temporal, por exemplo: ano, mês, dia,
hora.
Uma sucessão de pontos sequenciados com a variação discreta, linear e
finita, representa um eixo temporal (RENOLEN, A. 1997). O Quadro 1 apresenta e
descreve as variações do tempo classificando-as em três tipos: (1) Ponto-a-ponto,
onde é considerado como valor de tempo válido apenas os pontos temporais que
são definidos; (2) Escada, cujo valor de tempo válido permanece até o momento em
12
que outro valor de tempo é definido; (3) e Determinação de uma função, onde é
definida uma função de interpolação para identificar valores válidos.
Quadro 1 - Classificações da variação do tempo.
Classificação
Tempo Válido
Ponto-a-ponto
Conjunto de pontos temporais definidos.
Escada
Até que outro valor válido é definido.
Determinação de uma função
Variação por intermédio de uma função.
Fonte: RENOLEN, A. 1997.
A granularidade temporal está relacionada ao nível de chronon que é
estabelecido. Quanto menos níveis de chronons são definidos, maior a sumarização
dos dados em relação ao tempo, e por sua vez, quanto mais chronons são definidos,
então consequentemente, um maior nível de detalhamento da informação temporal é
obtido. Por exemplo, se forem definidos apenas os níveis de granularidade ano e
mês para um sistema de rastreamento, o máximo de detalhamento da informação
temporal que se pode conseguir é mensal, pois não é possível obter informações
temporais diárias, a menos que seja definido o chronon dia.
Em Langran (1993), são definidas as formas de representar os atributos
temporais: instante, intervalo e elemento temporal. Estes atributos são chamados de
elementos primitivos e usados na representação da granularidade de tempo. O
Instante é definido como um ponto na linha do tempo cuja duração é infinitamente
pequena, e caso sua variação seja discreta, o mesmo pode ser representado por um
chronon no eixo temporal. No Quadro 2, são apresentados dois casos como
exemplos da utilização do elemento primitivo instante. No primeiro caso, o tempo é
discreto com a variação pontual, tendo o ano como representante de um instante de
tempo. No segundo caso, o tempo também é discreto, porém com a variação por
escada, tendo o chronon mês como representante do instante de tempo.
13
Quadro 2 - Forma de representação do elemento primitivo instante
CAMPEÕES DO CAMPEONATO BRASILEIRO de 2000
(Tempo discreto (pontual) - Chronon: ano)
Time
Pontos
Instante
Time A
80
2012
Time B
78
2010
Time C
75
2008
EMPREGADOS
(Tempo discreto (por escada, intervalo de validade controlada pela aplicação) Chronon: mês)
Nome
Salário
Instante
José
R$ 600,00
Maio/2010
Maria
R$ 630,00
Junho/2011
Francisco
R$ 661,50
Julho/2012
Fonte: O Autor.
Um intervalo é a agregação de instantes de tempos que equivale à duração
do tempo decorrido entre dois instantes, também chamados de pontos. Em se
tratando de tempo discreto, um intervalo é representado por um aglomerado finito de
chronons consecutivos. Quando se trata do tempo contínuo, os instantes de tempo
dentro de um intervalo são infinitos. O Quadro 3 apresenta dois exemplos de uso do
elemento primitivo intervalo. O primeiro exemplo corresponde ao salário de
empregados que representa o tempo discreto e com variação do tipo escada, e
possui o mês como chronon do intervalo. O segundo exemplo é referente à escala
de limpeza, com o tempo representado de forma discreta e com variação pontual, e
tendo o dia como chronon do intervalo.
14
Quadro 3 - Forma de representação do elemento primitivo intervalo.
EMPREGADOS
(Tempo Discreto e por escada – Chronon: mês)
Nome
Salário
Início
Fim
José
R$ 600,00
Maio/2009
Maio/2010
José
R$ 630,00
Junho/2010
Junho/2011
José
R$ 661,50
Julho/2011
Julho/2012
Manoel
R$ 700,00
Outubro/2010
Outubro/2011
Manoel
R$ 735,00
Novembro/2011
Novembro/2012
ESCALA DE LIMPEZA
(Tempo discreto e pontual – Chronon: dia)
Nome
Local
Inicio
Fim
(Bloco)
José
A
01/01/2011
03/01/2011
Manoel
B
05/01/2011
07/01/2011
José
C
04/02/2012
06/02/2012
Fonte: O Autor
Um conjunto finito de intervalos de tempo caracteriza o atributo de tempo do
tipo elemento temporal, que produz um novo elemento temporal através da
disponibilização de operações de conjunto como união, interseção e complemento.
As informações espaço-temporais podem ser coletadas a partir de um
sistema de coordenadas bidimensional, contendo informações sobre a latitude e
longitude de um ponto no plano para um determinado instante ou período de tempo
((x,y),t), ou em três dimensões com a latitude, longitude e altitude associadas ao
instante ou período de tempo do registro da localização, que é definido como
((x,y,z),t). Informações espaço-temporais correspondem a onde e quando tal fato
aconteceu (SPACCAPIETRA S. e PARENT, C et. al., 2007).
2.3. Representação de Trajetórias
Trajetória é definida como um registro da evolução da posição geográfica de
um objeto que está se movendo no espaço durante um determinado intervalo de
tempo, a fim de atingir algum objetivo (SPACCAPIETRA. et. al., 2007). Também
15
pode ser definida como o caminho percorrido pelo objeto móvel, e cujo percurso é
denotado por uma sequência de pontos geométricos representados pelas
coordenadas espaço-temporais (x,y,z) coletadas a cada instante ou período de
tempo (t), formando a sequencia de informação do tipo ((x,y,z),t).
Em uma trajetória, pode haver paradas (stops) e pelo menos um movimento
(move) que se estende por toda trajetória ou vários movimentos ao longo dela, que
podem ser segmentos de movimentos ou segmentos de subtrajetória. Durante o
tempo em que o objeto se movimenta em busca de seu objetivo, ele pode percorrer
um ou mais segmentos espaço-temporais, um após o outro (SILVA, M. C. T., 2009).
A Figura 5 ilustra esta situação. É importante ressaltar que nem todo movimento ou
nem toda parada do objeto deve ser visto como informação relevante para
aplicação. A relevância pode ser definida de várias maneiras, por exemplo, por meio
do tempo de parada e tempo de movimento.
Figura 5 - O caminho percorrido pelo objeto móvel em vários segmentos espaçotemporal.
Fonte: SPACCAPIETRA. et. al., 2007.
A Figura 5 ilustra as paradas, os instantes de tempo, as trajetórias, o caminho
percorrido e os segmentos espaço-temporais, onde (tx) representa o instante de
tempo das paradas e (Tx) indica as trajetórias. A linha tracejada representa o
caminho percorrido pelo objeto móvel, e os segmentos são representados por cinco
trajetórias percorridas ao longo da vida útil do objeto em seu percurso.
É possível observar que nem todo intervalo de tempo percorrido é
considerado pela aplicação como uma trajetória. Por exemplo, os intervalos de
tempo percorridos entre [“t1 e t2”, “t4 e t5”, “t6 e t7”, “t8 e tnow”] não foram classificados
como uma trajetória. O Quadro 4 lista algumas das possíveis características
16
pertencentes a uma trajetória que foi especificada em Bogorny (2012). Elas se
referem às propriedades que devem ser contempladas na trajetória de um objeto
móvel qualquer. Elas também estão associadas à forma geométrica da trajetória, às
segmentações relativas às trajetórias, ao comportamento do objeto móvel na
trajetória, além de denotarem propriedades correspondentes ao tempo, tais como:
duração, arranjo e características dos períodos de execução das trajtórias.
Quadro 4 - Características pertencentes a uma trajetória.
Característica
Descrição
Forma
Toda trajetória contempla um ou mais tipos de forma
geométrica
Segmentação
Uma trajetória é o segmento espaço-temporal de um
percurso percorrido pelo objeto.
Duração
Toda trajetória possui um tempo de início e fim. Esta
característica é relativa ao tempo de duração de uma
trajetória
Arranjo
Ordem dos períodos de tempo.
Distância
Refere-se ao comprimento/fragmento da trajetória no
espaço.
Períodos
Refere-se
à
velocidade
constante,
aceleração,
desaceleração.
Dinâmica
Refere-se ao comportamento do objeto móvel.
Características dos Início e término, duração, posições iniciais e finais,
períodos
velocidades iniciais e finais, média de velocidade,
direção.
Fonte: BOGORNY, V. 2012.
No Quadro 5, são listados e descritos, quatro elementos básicos que uma
trajetória deve contemplar, segundo Spaccapietra (SPACCAPIETRA, S., 2009). Uma
trajetória deve ser representada por meio desses elementos básicos, que pertencem
ao modelo conceitual de paradas e movimentos de uma trajetória que foi
apresentado em (SPACCAPIETRA, S., 2008).
17
Característica
Atributos/
Quadro 5 - Elementos contidos em uma trajetória.
Descrição
Refere-se às propriedades de uma trajetória
Componentes
Links
Corresponde aos relacionamentos entre os objetos
Restrições
Regras, diretrizes definidas em relação ao comportamento ou
ao monitoramento dos objetos.
Início e fim
Diz respeito ao instante de tempo de início e fim de uma
parada ou movimento de uma trajetória qualquer, além da
demarcação da delimitação temporal da mesma.
Fonte: SPACCAPIETRA, S., 2009
Uma trajetória é composta de elementos espaço-temporais. Um movimento é
caracterizado por duas paradas consecutivas. Uma parada corresponde ao
segmento do percurso do objeto móvel, que contém um intervalo de tempo de
parada [TinícioParada , TfimParada] (SPACCAPIETRA et. al., 2007). Uma trajetória pode
ser analisada sobre duas perspectivas:

Pela visão geométrica, que se refere aos dados espaço-temporais que
definem o deslocamento do objeto móvel, e são obtidos por um
sistema de coordenadas (latitude, longitude e altitude), indicando a
localização do objeto no espaço terrestre, e o (tempo) que corresponde
ao momento da coleta de uma determinada coordenada, gerando o
conjunto ((x,y,z),t); e

Pela visão semântica, que consiste em sequências de paradas e
movimentos,
as
quais
podem
estar
vinculadas às anotações
semânticas que dão significados aos trechos da trajetória aos quais
pertencem.
A união destas duas visões forma uma trajetória do tipo espaço-temporal
semântica, onde cada tupla de coordenada da visão geométrica pode ter um
significado definido na visão semântica correspondente (ALMEIDA et. al., 2011).
18
2.3.1. Representação de Trajetória Bruta
Trajetória bruta é definida por Boulmakoul et. al. (2012) como o registro da
informação sobre a localização de um objeto qualquer em movimento em um dado
espaço físico e por certo período de tempo. Estes autores também relatam que uma
trajetória bruta consiste em uma sequência do registro da localização do objeto
móvel, que é obtido por meio da captura de coordenadas geográficas geradas a
partir de um dispositivo de monitoramento.
Spaccapietra (2009) informa que uma trajetória bruta é apenas o
posicionamento físico adquirido através de um dispositivo de monitoramento
indicado por uma sequência de pontos. Ele também informa que os dados brutos
relativos aos movimentos do objeto móvel necessitam frequentemente de serem
limpos antes de serem utilizados em análises espaciais.
Pode-se dizer que uma trajetória bruta informa apenas a localização georeferenciada do objeto móvel em relação à terra, pois se trata apenas das
informações espaço-temporais correspondentes ao caminho percorrido pelo objeto
durante a execução de sua trajetória. A Figura 6 mostra graficamente o percurso
realizado por um objeto móvel ao longo de uma trajetória bruta, que é representada
por uma sequência de pontos coletados por um dispositivo de localização.
Figura 6 - Paradas e movimentos ao longo de uma trajetória bruta
Fonte: SPACCAPIETRA, S., 2009.
Um problema da trajetória bruta é a sua falta de significado em função dos
dados coletados a partir dos dispositivos de localização não terem semântica, tais
como: meio de locomoção do objeto móvel, locais de parada e de movimento,
objetivos das paradas e dos movimentos (FAJARDO, B. S., 2008). Depois de
coletados os dados brutos, é importante que se realize a limpeza dos mesmos,
passando os dados por uma etapa de filtragem para remoção de informações
incorretas, chamadas de outliers. (SPACCAPIETRA, S., 2009). Esse processo
denominado de limpeza dos dados é mostrado na Figura 7.
19
Figura 7 - Processo de limpeza dos dados de uma trajetória bruta.
Fonte: SPACCAPIETRA, S., 2009.
2.3.2. Representação de Trajetória Semântica
Ao contrário de uma trajetória bruta, as trajetórias semânticas trazem além
dos dados de localização, informações semânticas associadas aos mesmos. As
informações semânticas agregam valor aos dados coletados pelos dispositivos de
localização, pois com os dados semânticos é possível obter informações do tipo: se
uma pessoa parou em um local (e.g. restaurante, hotel, casa), quanto tempo passou
em um determinado lugar e o que estava fazendo.
A utilização de informações
semânticas nas trajetórias de objetos móveis vem aumentando de forma linear
(SILVA, M. C. T, 2012), desde a representação de modelos conceituais para
caracterizar
trajetórias
como
uma
sequência
de
paradas
e
movimentos
(SPACCAPIETRA et. al., 2008), até a definição de segmentações de trajetórias em
movimentos, com base em critérios semânticos definidos pela aplicação (YAN et. al.,
2011).
Na Figura 8, é apresentada uma trajetória enriquecida com informação
semântica. Essa trajetória é referente a um passeio na cidade de Paris, na França,
onde cada local classificado como parada é atribuído um rótulo que descreve o local
de parada do objeto móvel e representa sua respectiva semântica.
20
Figura 8 - Exemplo de uma trajetória semântica.
Fonte: SPACCAPIETRA, S., 2009.
Nem toda parada é caracterizada como uma parada relevante para a
aplicação, ou seja, nem toda parada física é definida como uma parada conceitual
considerada relevante para a aplicação (FAJARDO, B. S., 2008). A relevância
depende de vários fatores configurados na aplicação, tais como: tempo de parada,
local de parada e o horário da parada. As paradas podem assumir diferentes formas
geométricas, dependendo do tipo de objeto que se monitora. Por exemplo, no
monitoramento de aves, uma parada pode assumir a forma de um polígono (( x 1 , y1
), ( x2 , y2 ), ... , ( xn , yn )), pois se trata da região de parada das aves, enquanto que
no monitoramente de automóveis uma parada pode assumir a forma geométrica de
um ponto.
Uma vez coletados os dados brutos, algoritmos de descoberta de padrões
espaço-temporais (CAO et. al., 2008, GIANNOTTI et. al., 2007, LOY et. al., 2010,
LOY et. al., 2011) e de segmentação de trajetórias podem ser aplicados sobre as
trajetórias brutas para geração de anotações semânticas de trajetórias ou trajetórias
semânticas. A Figura 9 ilustra a reconstrução de uma trajetória semântica, e o
processo de limpeza para reconstruí-la (SPACCAPIETRA, S., 2009).
21
Figura 9 - Reconstrução de uma trajetória semântica.
Fonte: SPACCAPIETRA, S., 2009.
O foco principal da limpeza dos dados de uma trajetória é a remoção dos
erros ocasionados pelos dispositivos de localização, como GPS (PARENT et. al.,
2013). Dois tipos de erros, que podem ocorrer durante a captura de informações de
localização de objetos móveis por dispositivos de GPS, foram identificados em Jun
(2006): (1) Erros sistemáticos, devido a limitações do sistema de localização,
gerando posições inválidas, devido ao baixo número de satélites encontrados pelo
dispositivo; e (2) Erros aleatórios, que estão relacionados à precisão de localização
do dispositivo, chegando a mais ou menos 15 metros de diferença do local correto.
Com os dados semânticos extraídos, é possível obter conhecimento sobre o
deslocamento no espaço de um objeto durante um intervalo de tempo, identificando
e rotulando cada ponto visitado e cada trajeto realizado, enriquecendo a trajetória
semanticamente. Neste trabalho dissertativo, é considerado que o registro de
anotações semânticas sobre as trajetórias brutas foi realizado a priori, por meio de
algum algoritmo de análise espacial de trajetórias, pelo qual é possível extrair
22
conhecimento significativo sobre o caminho realizado pelo objeto móvel na trajetória
percorrida.
As anotações semânticas correspondentes aos seis aspectos de mobilidade
definidos em Bogorny et. al. (2013) e Silva, M. C. T. (2009) são discutidas a seguir, e
foram usadas no desenvolvimento da API proposta neste documento. São elas:
a)
Objetivo – Esta anotação pode estar associada a uma parada,
movimento ou trajetória, e indica o motivo pelo qual ocorreu a parada e representa a
razão do movimento. Pode ocorrer o fato de o objetivo ter a mesma definição da
atividade, por exemplo: uma pessoa com o objetivo exercitar-se, correndo
diariamente, e para alcançar este objetivo, a pessoa pratica a atividade de correr
diariamente.
b)
Atividade – As atividades estão associadas a um movimento ou a uma
parada. No caso de uma parada, o objeto precisa estar em repouso totalmente, pois
uma parada pode ser representada por um conjunto de pontos pertencentes a um
mesmo local (e.g. restaurante, shopping) ou uma região. Uma parada ou movimento
pode estar associado(a) a mais de uma atividade, ou seja, em um mesmo
movimento ou parada pode ocorrer de ser realizado duas ou mais atividades,
dependendo da modelagem e/ou das restrições especificadas pela aplicação.
c)
Ambiente – Refere-se às características contextuais referentes aos
aspectos naturais, tais como: temperatura, clima, umidade do ar, vento, e pressão
atmosférica. Essas informações são dinâmicas, pois durante a execução de uma
trajetória, podem sofrer alterações. Esta anotação pode estar associada a uma
parada, movimento ou a uma trajetória como todo.
d)
Evento – Pode estar associado a uma parada ou a um movimento,
pela possibilidade de ser a causa de uma parada ou da mudança do movimento do
objeto monitorado. Um evento pode ser um show, um jogo de futebol, uma
manifestação pública ou outros acontecimentos semelhantes. O interesse em
registrar esse tipo de informação é a possibilidade de identificar a causa de uma
mudança de comportamento de um objeto monitorado, a fim de obter respostas
como: por que tal caminhão mudou de rota? Por que ele ficou tanto tempo parado?
Por qual motivo ele atrasou a entrega das mercadorias?
23
e)
Transporte – Corresponde ao meio de transporte utilizado no
deslocamento do objeto móvel, podendo ocorrer diversos registros deste tipo ao
longo de uma mesma trajetória. Este tipo de anotação se associa apenas ao
movimento. Os meios de transportes utilizados podem ser de três tipos: terrestres
(e.g. carro, bicicleta), aquáticos (e.g. barco, navio) ou aéreos (e.g. helicóptero,
avião).
f)
Comportamento
–
Com
esta
anotação
é
possível
registrar
informações sobre características referentes ao movimento do objeto no âmbito
comportamental. Este tipo de anotação é associado ao movimento quando ocorre
uma mudança de comportamento do objeto móvel. Exemplos de casos
comportamentais relevantes que podem ocorrer em uma ou mais trajetórias são:
fuga, liderança e encontro de objetos móveis, incluindo a movimentação conjunta
por certo período de tempo. Alguns destes padrões comportamentais de objetos
móveis são detalhados como segue.
Em Laube et. al. (2004) foi definida uma coleção de padrões espaçotemporais que se baseiam na direção do movimento e na localização do objeto
móvel. Alguns desses padrões são citados em Loy et. al. (2011). O padrão do tipo
Flock denota um conjunto de trajetórias de objetos móveis, que tem seus
deslocamentos realizados de forma conjunta em uma dada região no espaço. O
padrão Leadership requer que as trajetórias estejam dentro de uma determinada
distância de tolerância. O padrão Convergence indica que há um conjunto de
trajetórias que se encontram em uma determinada região espacial. Existe a proposta
do padrão Encounter que se assemelha ao padrão Convergence, mas a diferença é
que as trajetórias devem estar juntas no mesmo período de tempo e não numa
região espacial.
Em Loy et. al. (2011), é relatado o estudo de padrões comportamentais em
trajetórias de objetos móveis, que está sendo desenvolvido principalmente sob duas
óticas de pesquisa: a semântica, que pretende dar significado aos dados brutos
coletados por um dispositivo de monitoramento, tal como GPS, e a geométrica, que
refere-se às coordenadas sem praticamente qualquer semântica associada.
É importante ressaltar três pontos: (1) nem todo registro de parada,
movimento ou trajetória deve ser obrigatoriamente associado a uma anotação
24
semântica; (2) deve ser registrada toda informação espaço-temporal relevante para
a aplicação independente de ter ou não uma semântica associada; e (3) não é
necessário que uma aplicação use todas às seis anotações semânticas descritas na
literatura, pois elas são sugestões de como dar significado às trajetórias brutas
geradas por dispositivos de localização de objetos móveis.
2.3.3. Modelagem Conceitual de Trajetória
Esta seção está organizada da seguinte forma. Na Seção 2.3.3.1, o modelo
conceitual de paradas e movimentos que foi utilizado como base para o
desenvolvimento deste trabalho é descrito. Além disso, outras propostas de
modelagem conceitual são detalhadas na Seção 2.3.3.2.
2.3.3.1. O Modelo de Paradas e Movimentos
Uma trajetória é representada explicitamente pelos componentes: paradas,
movimentos, início e fim. Ela é caracterizada por relacionamentos, atributos e
restrições. Spaccapietra et. al. (2007) propuseram um modelo conceitual para
representação de trajetórias semânticas, no qual são modelados os objetos de
paradas e movimentos de uma trajetória, como: o objeto móvel que viaja na
trajetória, os relacionamentos entre esses objetos e as restrições especificadas
através das cardinalidades relativas aos relacionamentos entre os objetos. A Figura
10 ilustra o modelo definido em Spaccapietra et. al. (2007), o qual pode ser
estendido com novos construtores conceituais que reflitam a realidade de uma
aplicação de gerenciamento de trajetórias.
25
Figura 10 - Modelagem conceitual de uma trajetória.
Fonte: SPACCAPIETRA et. al., 2007.
Na Figura 10, o tipo de objeto “Objeto Móvel” é referente ao objeto que realiza
uma trajetória, enquanto o objeto “Trajetória” corresponde à trajetória propriamente
dita. O ciclo de vida é indicado por um intervalo de tempo denotado pela primeira e
pela última parada do objeto móvel na trajetória. O objeto “I. F. P.” é composto por
um intervalo de tempo [TinícioParada , TfimParada]
e por uma geometria, que é
representada geralmente por um ponto. Um I. F. P. é uma parada com um intervalo
de tempo. Isso implica em afirmar que cada trajetória tem pelo menos dois
componentes de parada.
O componente “move” descrito no modelo é caracterizado por duas paradas,
com um intervalo de tempo, delimitado pelo [T fimParada e TinícioParada] e uma geometria
de ponto com tempo variável. Ambos os componentes de parada e movimento estão
associados pelos relacionamentos “de” e “para”, deixando explícito que cada
26
movimento tem seu início e fim, denotados cada um deles por uma parada. Os
objetos “local transitado1” e “local transitado2” referem-se ao local percorrido pelo
objeto móvel, enquanto os relacionamentos “está em” correspondem às restrições
que podem ser modeladas para uma trajetória, tal como: uma trajetória deve sempre
estar associada a uma determinada região (i.e. estado, país, cidade). Os objetos
descritos no modelo por linhas pontilhadas são opcionais. A Figura 11 ilustra um
exemplo de uso do modelo proposto por Spaccapietra et. al. (2009) em uma
aplicação para monitoramento de pássaros.
Figura 11 - Mapeamento do modelo de paradas e movimentos para uma aplicação
de monitoramento de pássaro.
Fonte: Adaptado de SPACCAPIETRA, S., 2009.
A Figura 11 exibe o mapeamento do modelo conceitual de paradas e
movimentos de trajetória, para uma aplicação de monitoramento de pássaros. Este
mapeamento é mostrado pelas linhas tracejadas.
A entidade Objeto Móvel
27
corresponde ao pássaro. A entidade Trajetória é transcrita com o nome
correspondente ao tipo de trajetória gerenciada pela aplicação, por exemplo:
migração, passeio, dentre outras. A entidade I.F.P. corresponde ao tempo inicial e
final de uma parada, e é mapeada para o relacionamento “parou em”. A entidade
Local transitado1 é mapeada para região espacial definida pela aplicação (i.e.
“País”). Com isso, é possível identificar o local de parada de cada pássaro
monitorado.
Para alcançar os objetivos desta dissertação, o modelo conceitual proposto
em Spaccapietra et. al. (2009) ilustrado na Figura 10, foi tomado como base para
criação dos tipos de dados brutos e semânticos que serão descritos no Capítulo 4.
Estes tipos são capazes de representar na base de dados, as trajetórias semânticas
e as trajetórias brutas. A escolha pelo modelo conceitual proposto em Spaccapietra
et. al. (2009) para o desenvolvimento deste trabalho se deve ao fato do mesmo ter
sido usado como base na maioria dos demais modelos conceituais da área, por
contemplar os elementos básicos para representação de uma trajetória semântica,
tais como: parada, movimento, restrições, relacionamento e o objeto móvel, e ser
classificado pelos pesquisadores da área, como um dos principais modelos
conceituais para representação de trajetória semântica (BARIS et. al., 2008,
BOGORNY et. al., 2013, VAISMAN et. al., 2007).
2.3.3.2. Outros Modelos Conceituais
Vaisman et. al. (2007) propuseram um modelo conceitual de enriquecimento
de trajetórias com informação semântica, e especificaram uma fase de préprocessamento de dados para associar informação semântica às trajetórias, com a
finalidade de facilitar a análise de dados de trajetória em aplicações de domínios
distintos. O modelo desenvolvido por eles é genérico, não sendo restrito a uma
aplicação específica. Eles também desenvolveram um algoritmo que calcula as
partes importantes de uma dada trajetória (e. g. paradas e movimentos), mostrando
que se o modelo proposto for usado, a complexidade da consulta para a análise
semântica de trajetórias é reduzida de forma significativa em comparação à análise
sobre os dados brutos de trajetórias.
Em Baris et. al. (2008) foi proposto um modelo conceitual para anotação
semântica de trajetórias geradas por dispositivos de GPS. Ele é composto de dois
28
tipos de elementos semânticos: episódios que correspondem à composição de uma
trajetória, e viagens que consiste em uma sequência de episódios que pertencem a
um objetivo comum. Para o desenvolvimento deste modelo, foram especificados
quatro tipos de anotação semântica, como segue: atividade, transporte, parada e
objetivo, permitindo agregar informação sobre o deslocamento do objeto móvel e de
contabilidade da trajetória.
Bogorny et. al. (2013) desenvolveram um modelo conceitual de dados para
trajetória semântica de objetos móveis, intitulado de Constante. O modelo é dividido
em duas partes: a primeira corresponde às informações relacionadas ao objeto
móvel, ao dispositivo de rastreamento, à trajetória semântica, às subtrajetórias
(segmentos da trajetória) semânticas, aos pontos semânticos, ao meio ambiente e
aos possíveis eventos. A segunda parte é composta pelo objetivo semântico da
trajetória, pelas subtrajetórias semânticas, pelo meio de transporte e por fim, pelo
comportamento das subtrajetórias semânticas. Neste modelo, é utilizado fortemente
o conceito de subtrajetória. É sugerida a utilização de métodos de mineração de
dados para instanciar os elementos referentes à segunda parte do modelo
Constante. Para mineração de dados de trajetória podem ser utilizados os métodos
implementados por Lee et. al. (2008), Giannotti et. al. (2007), Cao (2007), Li et. al.
(2010), Loy et. al. (2011), Nanni et. al. (2008).
2.4. API
Uma API é definida por Ferreira (2003) como um conjunto de funções que
facilitam a troca de mensagens ou dados entre dois ou mais sistemas distintos.
Fraga et. al. (2011) definem API como uma interface projetada por um sistema, com
o objetivo de permitir que outros sistemas possam interagir entre si, possibilitando
assim, a sua comunicação. Pode-se definir API como uma interface de
comunicação, que fornece um conjunto de operações encapsuladas e acessíveis por
meio de protocolos pré-definidos, e cujo usuário deve conhecer a assinatura de suas
funções. O uso de API tem o objetivo de mitigar a complexidade e aumentar o reuso
de procedimentos, deixando a codificação mais simples para o desenvolvedor. Ou
seja, uma API é uma camada de software que é utilizada como meio de
desenvolvimento, fazendo parte do processo de implementação de outras
aplicações, e não sendo a aplicação final. O intuito de se criar uma API é facilitar o
29
desenvolvimento de aplicações e não de ser a aplicação. O conceito de API se
aproxima mais de bibliotecas computacionais, que são arquivos que contêm um
conjunto de funções que são chamadas quando necessário.
Quando se pretende desenvolver um sistema de informação, dependendo de
sua natureza, ou da natureza do problema que se busca resolver, a sua
implementação pode se tornar complexa. Geralmente, API são usadas para facilitar
o desenvolvimento de software, onde o desenvolvedor se abstrai de grande parte da
complexidade da codificação. Isto ocorre porque ele precisa saber apenas a
assinatura das funções disponibilizadas, tais como: tipo de retorno, nome da função
e informações referentes aos parâmetros da função chamada. O desenvolvedor se
abstrai da codificação das funções implementadas na API, pois as mesmas não
ficam explícitas e não é necessário que o usuário saiba como determinada função foi
implementada.
O uso de uma API é interessante pelo fato da mesma simplificar o
desenvolvimento de uma aplicação computacional. Uma API pode ser estendida
e/ou
até
mesmo
refatorada,
para
melhor
atender
às
necessidades
de
desenvolvimento de uma determinada aplicação, criando novas funcionalidades e
classes.
A facilidade do uso de API depende do nível de conhecimento do
desenvolvedor, pois diferentemente da codificação, a documentação sobre o uso de
API
é disponibilizada
Desenvolvimento
exemplificam
ao
Integrado
desenvolvedor
conhecido
superficialmente
como
por meio
popularmente
instanciar
um
de um Ambiente
como
recurso
IDE.
As
de
IDE
disponibilizado
implicitamente em uma API, informando, por exemplo, os nomes e tipos dos
parâmetros da função instanciada, além da ordem de precedência dos mesmos. Isso
é disponibilizado a partir da documentação criada na implementação da API para
cada recurso disponibilizado por ela.
Para simplificar o uso de trajetórias semânticas em aplicações de bancos de
dados com tipos nativos ou estendidos, podem ser utilizadas API. Elas podem ser
desenvolvidas com o intuito de abstrair do usuário, a complexidade na programação
da codificação das operações de acesso ao sistema de banco de dados. A API é um
paradigma de desenvolvimento muito utilizado atualmente. Isto tem ocorrido porque
30
ela reduz o tempo de implementação da aplicação, ocultando a complexidade,
dentre outros benefícios que a mesma oferece.
2.5. Conclusões
Com os dados espaço-temporais coletados a partir de dispositivos de
rastreamento, tal como GPS, métodos de segmentação de trajetórias e algoritmos
de descoberta de padrões espaço-temporais podem ser usados para extração de
conhecimento. A partir deste conhecimento, anotações semânticas são vinculadas
às trajetórias brutas de objetos móveis. Com isso, é possível saber, por exemplo, a
descrição do local, quando e porque o objeto móvel parou ou se movimentou no
espaço aéreo, terrestre ou aquático.
Pode-se afirmar que uma trajetória é composta basicamente de informação
espaço-temporal, denominada de trajetória bruta, que pode ser estendida com
informações do objetivo do movimento realizado pelo objeto móvel, do meio de
transporte usado pelo objeto móvel durante o movimento, dentre outras, para se
tornar uma trajetória semântica. Isso propicia um enriquecimento semântico aos
dados coletados por um determinado dispositivo de monitoramento.
Para obter elementos que representem as paradas e os movimentos dos
objetos móveis, foram elaborados por pesquisadores da área, alguns métodos de
análise de trajetória, tais como: CB-SmoT (PALMA et. al., 2008), DB-SmoT (ROCHA
et. al., 2010) e IB-SmoT (ALVARES et. al., 2007) que são capazes de extrair
informações sobre as paradas e os movimentos realizados pelo objeto móvel na
trajetória (SILVA, M. C. T., 2012).
As definições de novos algoritmos de análise de trajetória não fazem parte do
escopo do trabalho aqui descrito, porém sempre poderão ser usadas novas técnicas
de análise de dados de trajetórias, como por exemplo, novas técnicas de
clusterização de dados espaço-temporais. O uso destas novas técnicas não invalida
os resultados obtidos nesta pesquisa e pelo contrário, reforçam a importância de se
ter um mecanismo de geração de trajetórias semânticas em aplicações de banco de
dados. Este mecanismo pode ser disponibilizado por meio do desenvolvimento de
uma API para auxiliar o desenvolvedor na construção de aplicações de BD de
trajetórias semânticas.
31
No próximo capítulo, são abordados os trabalhos correlatos, apresentando um
comparativo entre os trabalhos encontrados na literatura que abordam as API
criadas para manipulação de dados de trajetórias.
Capítulo
3
Trabalhos Correlatos
Este capítulo discorre sobre algumas API para manipulação de dados de trajetórias, e exibe
um quadro comparativo entre tais API e a API proposta neste trabalho dissertativo. Além
disso, é discutida uma extensão nativa do SQL para representação de trajetórias semânticas
em BD.
33
3.1. Introdução
Neste capítulo, são apresentadas propostas correlatas ao trabalho proposto
nesta dissertação. Ele discute algumas API desenvolvidas para manipulação de
dados de trajetórias, e discorre sobre uma extensão para representação de
trajetórias semânticas em BD.
O mesmo está organizado como segue. A Seção 3.2 apresenta duas API.
Uma delas foi desenvolvida para permitir operações espaciais em BD geográficos,
que é denominada de TerraLib e consiste em uma biblioteca de classes estruturadas
em três partes: Kernel, que possui classes básicas para representação de dados
geográficos, Drivers que corresponde às classes específicas para cada SGBD, e
Functions, que contém os algoritmos que utilizam as estruturas básicas do Kernel.
A outra é a API ArcSDE, que corresponde a uma interface entre o ArcGIS e
diferentes SGBD para manipulação de dados geográficos. Ambas são usadas como
interface para a construção de aplicativos geográficos. Posteriormente, é
apresentado na Seção 3.3, um comparativo entre as API TerraLib, ArcSDE e a API
DBST. Na Seção 3.4, é abordado o trabalho de Fajardo (2008) que tem a finalidade
de representar trajetórias semânticas em BD.
Em seguida, é apresentada na Seção 3.5, uma análise comparativa entre o
trabalho de Fajardo e este trabalho dissertativo. Esta análise comparativa é referente
à extensão do SGBD para representar trajetórias semânticas em BD, que foi
realizada por ambos os trabalhos.
Por fim, são exibidas as conclusões deste
capítulo na Seção 3.6.
3.2. API para Dados Geográficos
Nesta seção, são discutidas duas API: uma desenvolvida para permitir
operações espaciais em BD geográficos e descrita na Seção 3.2.1, que consiste em
uma biblioteca de classes usada para a construção de aplicativos geográficos. A
outra é exibida na Seção 3.2.2, que corresponde a uma biblioteca de funções para
armazenar, manipular e gerenciar dados geográficos através da provsão de uma
interface entre o ArcGIS e os SGBD considerados pela mesma.
34
3.2.1. A API TerraLib
A API TerraLib foi desenvolvida a partir de um projeto de software livre,
promovendo o trabalho conjunto entre as comunidades de desenvolvimento de
aplicações geográficas, disponibilizando funções para prototipação de novas
técnicas, e facilitando
o desenvolvimento de aplicações
espaço-temporais
colaborativas (VINHAS, L. e FERREIRA, K. R., 2005). Ela consiste em uma
biblioteca de classes, que auxilia na construção de aplicativos geográficos.
Esta biblioteca foi desenvolvida e
disponibilizada
na linguagem de
programação C++ (MAIA, R. 2004), e tem código fonte aberto, sendo assim,
distribuída como software livre. Além disso, ela disponibiliza operações para
decodificação de dados geográficos, criação de estruturas de dados espaçotemporais, e para processamento de algoritmos de análise espacial. Ela tem suporte
a
projeções
cartográficas,
operações
espaciais,
além
de
proporcionar
o
armazenamento e a recuperação de dados espaço-temporais em BD objetorelacional (VINHAS, L. e FERREIRA, K. R., 2005).
A TerraLib permite a execução de operações espaciais mas provê pouca
flexibilidade ao desenvolvedor para criar suas próprias funções, ficando assim ele
limitado às funcionalidades disponibilizadas pela API em questão. A mesma tem
suporte a diferentes tipos de SGBD com ou sem extensão espacial. O esquema de
dados criado pelo uso desta API é o lógico, permitindo a representação de dados
geográficos e espaço-temporais em um SGBD. Ela possui uma arquitetura
integrada, disponibilizando tanto operações sobre dados geográficos armazenados
em SGBD relacionais (SGBDR), quanto operações para dados mantidos em SDBD
objeto-relacionais (SGBDOR) (FERREIRA, K. R., 2003).
3.2.2. A API ArcSDE
ArcSDE é uma interface de comunicação com sistemas de BD espaciais,
produzida e comercializada pela instituição ESRI, permitindo a utilização de SGBD
relacionais para o gerenciamento de dados espaciais. Ela foi desenvolvida para
armazenar, manipular e gerenciar dados geo-referenciados a partir de um dos
seguintes SGBD: IBM DB2 (STOIZE, K. 2005), IBM Informix (ANDERSON et. al.,
2001), Microsoft SQL Server (MISTRY, R. e MISNER, S. 2010), Oracle (MURRAY et.
35
al., 2006) e mais recentemente PostgreSQL (ESRI, 2004). Ela fornece uma interface
entre os componentes do ArcGIS (MAHER, M M. 2010) (ArcInfo, ArcEditor, ArcView
GIS e ArcIMS) e o SGBD espacial usado. A mesma também possibilita a construção
de aplicações personalizadas a partir das API ArcSDE C e ArcSDE Java (ESRI,
2004), bem como ArcGIS, ArcObjects e ArcIMS (FERREIRA, K. R., 2003).
Dentre suas principais funcionalidades, pode-se destacar: (1) a definição de
como o dado espacial é armazenado e gerenciado pelo SGBD; (2) suporte para
versionamento e arquivamento; e (3) a provisão de tipos de dados espaciais para os
SGBD Oracle e SQL Server, definidos de acordo com os padrões ISO e OGC (ESRI,
2004).
ArcSDE tem o código fonte fechado, disponibilizando o acesso de suas
funcionalidades customizadas a partir de duas API: uma desenvolvida na linguagem
de programação C; e outra na linguagem JAVA. Ferreira, K. R. (2003) relata que o
ArcSDE possui dois tipos de API para realização de operações espaciais: (1) uma
que disponibiliza funções que executam operações em memória e (2) a SQL API
que foi projetada para permitir a execução de operações em SQL e contém
operadores e funções espaciais para os sistemas de banco de dados Informix
Spatial DataBlade e o IBM DB2 Spatial Extender.
3.3. Comparação entre API DBST x TerraLib x ArcSDE
Para um melhor entendimento sobre as diferenças e semelhanças entre as
API correlatas e a API DBST proposta neste trabalho, é apresentada no Quadro 6,
uma análise comparativa entre as três API: API DBST, TerraLib e ArcSDE. As API
em questão foram comparadas a partir de cinco critérios: (1) linguagem de
programação disponibilizada para os desenvolvedores e usuários da API; (2) o tipo
de código da API (aberto ou fechado); (3) SGBD permitidos; (4) flexibilidade na
criação de funções customizadas pelo o usuário; e por fim (5) o tipo de dado
manipulado pela API.
36
Quadro 6 - Quadro comparativo entre as APIs: DBST, TerraLib e ArcSDE.
Critério
Linguagem de
API DBST
TerraLib
ArcDSE
Java
C++
C e Java
Aberto
Aberto
Fechado
PostgreSQL/
Diferentes tipos
Diferentes tipos
Postgis
de SGBD
de SGBD
Alta
Baixa
Alta
Espaço-temporal
Espaço-temporal
Espaço-temporal e
e Semântico
e Geográfico
Geográfico
programação
Tipo de código
Suporte ao SGBD
Flexibilidade de criar
funções customizadas
Tipo de dado
manipulado
No Quadro 6, é possível verificar que a API DBST possui a flexibilidade de
criação de funções customizadas. Para isso, foram especificadas classes que
podem ser utilizadas nas customizações realizadas pelo usuário no desenvolvimento
de suas aplicações. O mesmo tem a flexibilidade de personalizar suas próprias
funções. Além disso, foram desenvolvidas funções com finalidades específicas, onde
o usuário tem pouca flexibilidade para personalizar suas próprias funções. A API
DBST é flexível para o desenvolvedor que a utiliza, porque com ela, é possível
manipular dois tipos de dados: o espaço-temporal e o semântico. Porém, o tipo de
dado principal da API DBST é o semântico, pois a mesma foi desenvolvida para
facilitar a manipulação de trajetórias semânticas, mantidas pelo sistema de BD
PostgreSQL/Postgis.
3.4. Representação de Trajetórias Semânticas em BD
Na Seção 3.4.1, é descrito o trabalho de Fajardo (2008) que provê a
representação de trajetórias semânticas em BD, consiste em uma extensão nativa
do SGBD SQL Server, e define um processo para realização de descoberta de
conhecimentos em trajetórias brutas.
37
3.4.1. Proposta de Fajardo
Em Fajardo (2008), é detalhada uma extensão nativa do SGBD SQL Server
para representação de trajetórias semânticas. As trajetórias são representadas por
paradas e movimentos. O objetivo final é a representação de trajetórias semânticas
em BD. O processo para representação das trajetórias é composto de três etapas:
(1) pré-processamento, que é responsável pelo tratamento, limpeza e redução do
volume de dados; (2) extração de padrões sequenciais, que está relacionada aos
recursos de mineração de dados utilizados; e (3) pós-processamento, que visa o
refinamento dos resultados através dos padrões armazenados no próprio banco de
dados, depois de passar pelas etapas anteriores.
Todo processo é baseado numa árvore de prefixo para estruturação das
sequências de fatos, e para a definição de relacionamentos entre pontos no espaço
e no tempo. Diferentes granularidades espaciais e temporais podem ser definidas
pelo usuário, além do mesmo poder definir os aspectos que devem ser considerados
no processo de descoberta de conhecimento através dos dados espaço-temporais.
A partir destes parâmetros especificados pelo usuário juntamente com os dados
brutos coletados, é que se inicia a extração dos padrões referentes às trajetórias.
No processo de descoberta de conhecimento sobre dados espaço-temporais,
um BD contendo as trajetórias brutas (TB) passa por um pré-processamento, tendo
os dados sobrepostos com um BD geográfico (BDG), obtendo como resultado as
trajetórias com semânticas (TS). Essas TS passam por uma fase de transformação,
na qual são aplicadas as granularidades espaço-temporais definidas pelos usuários.
Todos os padrões encontrados são armazenados em um BD para serem usados em
futuras consultas. Depois de armazenados, eles passam pela etapa de pósprocessamento, onde é realizado o refinamento dos resultados. Todo esse processo
pode ser repetido inúmeras vezes, até que o resultado obtido seja satisfatório para o
usuário. A Figura 12 ilustra todo o processo de descoberta do conhecimento a partir
dos dados espaço-temporais.
38
Figura 12 - Processo de descoberta do conhecimento a partir de dados espaçostemporais
Fonte: FAJARDO, B. S., 2008.
Em Fajardo (2008), não foram criados tipos de dados espaço-temporais ou
tipos de trajetórias semânticas para qualquer SGBD. No entanto, é discutido um
algoritmo escrito em SQL capaz de efetuar as diferentes etapas do processo de
descoberta de conhecimento sobre trajetórias. Neste caso, apenas a anotação
semântica referente ao movimento e à parada de uma determinada trajetória são
armazenados no BD. Em consultas posteriores, por exemplo, a descrição do local de
parada e o trajeto do movimento executado pelo objeto móvel podem ser obtidos da
base de dados. Na etapa de pré-processamento ocorre uma redução no volume dos
dados, que pode ocasionar em perdas de informações espaço-temporais relevantes,
referentes ao tráfego do objeto móvel em uma dada trajetória. Os dados brutos são
usados apenas para detectar padrões geométricos com base na sobreposição com
alguma camada de informação geográfica. Exemplos destes padrões é a definição
de áreas densas ou de similaridade entre trajetórias.
3.5. Comparação entre API DBST e o trabalho de Fajardo
Para entender as diferenças e semelhanças entre o trabalho proposto em
Fajardo (2008) e este trabalho dissertativo, é exibida no Quadro 7, uma análise
comparativa entre eles. Para esta comparação, foram definidos quatro critérios: (1)
SGBD permitidos; (2) o tipo de informação semântica armazenada no BD; (3) a
criação de tipos de dados semânticos para representação de trajetórias semânticas
(TS), e por fim, (4) a extração de informações semânticas.
39
Quadro 7 - Quadro comparativo entre a Proposta de Fajardo (FAJARDO, B. S.,
2008) e a API DBST.
Critério
Proposta de Fajardo
Proposta deste
trabalho
SGBD escolhido
SQL Server
PostgreSQL/Postgis
Paradas e Movimentos
Paradas, Movimentos e
Tipo de informação
semântica
armazenada em BD
Anotações Semânticas
Criação de tipos de
dados para
Não permite
Permite
Permite
Não permite
representação de TS
Extração de
informações
semânticas
Fonte: O Autor.
No Quadro 7, é informado que em ambas as propostas, foi desenvolvido um
trabalho para um SGBD específico. Porém, o tipo de informação semântica usada
difere, pois em Fajardo (2008), são utilizadas as informações referentes às paradas
e movimentos, capturadas pelo deslocamento do objeto móvel na execução de uma
dada trajetória. Por sua vez, a extensão proposta nesta dissertação foi desenvolvida
para o SGBD PostgreSQL/Postgis, com o objetivo de estender este SGBD com tipos
de dados que permitam a representação de trajetórias semânticas. Os tipos de
dados especificados pertencem a três categorias: Episódio que corresponde às
paradas e movimentos, Trajetória que é referente à Trajetória Semântica e Bruta, e
Anotação Semântica que contempla seis informações sobre a mobilidade de objetos
móveis: atividade, comportamento, evento, meio de transporte, objetivo e ambiente.
Os tipos de dados estendidos por este trabalho atende a diversos tipos de objetos
móveis, e podem ser utilizados em aplicações de naturezas distintas.
Os episódios (paradas e movimentos) podem ser identificados por intermédio
da aplicação de algoritmos capazes de extrair informações sobre o deslocamento do
objeto móvel durante uma dada trajetória (e. g. CB-SmoT, DB-SmoT e IB-SmoT),
dos dados espaço-temporais capturados por dispositivos de rastreamento. A forma
como essas informações são adquiridas e aferidas depende do algoritmo utilizado
40
durante o processo de extração. É importante destacar que este trabalho tem como
proposta, a criação de tipos de dados que representam trajetórias semânticas em
um SGBD. Estes tipos estão descritos no Capítulo 2. A proposta também inclui o
desenvolvimento de uma API com a finalidade de facilitar o uso desses tipos de
dados. No entanto, a extração de informações semânticas a partir de trajetórias
brutas não faz parte do escopo definido para este trabalho dissertativo.
Em Fajardo (2008), foi desenvolvido um algoritmo classificado por ele como
uma extensão nativa do SGBD SQL Server, com a finalidade de representar as
trajetórias semânticas, identificando as paradas e os movimentos através dos dados
espaço-temporais de uma trajetória bruta qualquer. Este algoritmo efetua o
cruzamento de dados brutos com os dados contidos em um BD geográfico, para
obter como resultado as trajetórias semânticas. Como as informações semânticas
são extraídas apenas de BD de contexto geográfico, é possível obter significados
sobre os locais de paradas ou sobre o tráfego do objeto monitorado, tais como: qual
a rua que o objeto móvel transitou e em que lugar o objeto móvel parou, dentre
outros. Mas não é possível obter informações como: por que o objeto móvel parou, o
que o levou a transitar em tal rua, por que o mesmo mudou de percurso, por que se
atrasou, dentre outras informações.
A extensão proposta por Fajardo (2008) tem como finalidade a representação
de trajetória semântica. Para isso, foi desenvolvido um algoritmo para o SGBD SQL
Server para realizar o processo de descoberta de conhecimento de trajetórias
semânticas a partir dos dados brutos gerados por dispositivos GPS, identificando as
paradas e os movimentos de uma dada trajetória bruta de forma automática. As
trajetórias semânticas são armazenadas em uma base de dados para possibilitar a
execução de consultas futuras sobre elas.
O trabalho desenvolvido por Fajardo (2008) apenas permite a representação
de paradas e movimentos de objetos móveis, enquanto este trabalho dissertativo
possibilita a criação de tipos de dados para representação de trajetórias semânticas,
relativas tanto às paradas e aos movimentos, quanto às anotações semânticas
(atividade, evento, ambiente, objetivo, meio de transporte e comportamento). Para
facilitar a manipulação dos tipos de dados propostos neste trabalho, foi desenvolvida
a API DBST.
41
3.6. Conclusões
A API TerraLib corresponde a uma biblioteca de classes com a finalidade de
construir aplicativos geográficos, e é estruturada em três partes: Kernel, Drivers e
Functions, com suporte a SGBD relacionais e objeto-relacionais (VINHAS, L. e
FERREIRA, K. R., 2005 e FERREIRA, K. R., 2003). Existe também uma API que
consiste em uma interface de comunicação com sistemas de BD espaciais,
denominada de ArcSDE, que permite a utilização de dados espaciais em SGBD
(ESRI, 2004). O trabalho proposto por Fajardo (2008) consiste em uma extensão
nativa do SGBD SQL Server para descoberta de conhecimento a partir de dados de
trajetórias brutas. Para isso, é realizado o cruzamento entre os dados espaçotemporais e os geográficos, e são obtidos como resultados, os padrões de trajetórias
semânticas, identificando suas paradas e seus movimentos.
Tanto as API TerraLib e ArcSDE quanto a API DBSTprovêem operações de
manipulação de dados espaciais mantidos por sistemas de BD, as quais auxiliam no
desenvolvimento de aplicações georeferenciadas. No entanto, a API DBST tem
como principal diferença, a sua capacidade de representação de trajetórias
semânticas e a criação automática de novos tipos de dados para o SGBD
Postgres/Postgis. Esses tipos são utilizados como meio de armazenamento de
informações sobre trajetórias semânticas.
O trabalho proposto por Fajardo (2008) é semelhante ao trabalho aqui
desenvolvido, porque ambos representam trajetórias semânticas em BD. Porém, a
proposta de Fajardo tem a capacidade de extração de informações semânticas de
trajetórias de objetos móveis, mas não permite a criação de tipos de dados capazes
de representar trajetórias semânticas de objetos móveis em banco de dados, tal
como a API DBST. Além disso, não se tem conhecimento sobre existência de
trabalhos na literatura que permitam a criação de tipos de trajetórias semânticas
para o SGBD Postgres/Postigis.
No capítulo seguinte, é detalhada a API DBST em conjunto com os tipos de
dados criados para representar trajetórias semânticas em BD. Além disso, são
exibidos dois diagramas de componentes da API DBST: (1) um deles descreve a
estrutura de pacotes, mostrando como a API proposta é composta dos novos tipos
de dados e (2) um diagrama de classes, exibindo os relacionamentos, os tipos, as
funções e as restrinções de instanciação. No próximo capítulo, também é
42
apresentado um cenário exibindo a aplicação de cada tipo de dado manipulado pela
API proposta.
Capítulo
4
A API DBST
(DataBase of Semantic Trajectories)
Este capítulo descreve os tipos de dados especificados para a API DBST que é proposta nesta
dissertação. Ele descreve três categorias de tipos de dados: (i) Episódios: que representam
paradas e movimentos, (ii) Trajetória: que modelam trajetórias semânticas e brutas, e (iii)
Anotações Semânticas: que representam outras características do deslocamento do objeto
móvel, incluindo: a atividade, o comportamento, o evento,o meio de transporte, o objetivo e o
ambiente. Também é descrito um cenário onde é mostrada a aplicação de cada tipo de dado
criado para a API DBST, além de dois diagramas de classe da API em questão.
44
4.1. Introdução
Neste capítulo, é apresentada a API DBST (DataBase of Semantic
Trajectories) proposta neste trabalho dissertativo. Neste capítulo, são descritos os
tipos de dados criados para estender o SGBD PostgreSQL/Postgis que permitirão o
desenvolvimento de aplicações de naturezas distintas, que representem e
manipulem trajetórias semânticas de objetos móveis. Este capítulo está estruturado
da seguinte forma: na Seção 4.2, é exibida a descrição da API DBST, incluindo as
definições dos tipos de dados semânticos que foram criados para o SGBD
PostgreSQL. A Seção 4.3 contém a implementação da API DBST conjunta com os
tipos de dados semânticos. Por fim, são listadas algumas conclusões deste capítulo
na Seção 4.4.
Para um melhor entendimento dos tipos de dados sugeridos nesta
dissertação, foi criado um cenário que é usado como exemplo ilustrativo, no qual é
mostrada a aplicação de cada tipo de dado proposto que pode ser manipulado pela
API DBST. Para isso, é descrito o cenário onde o monitoramento de objetos móveis
é feito a partir do GPS de cada atleta participante de uma competição de corrida
(e.g. São Silvestre). Nesta competição, os atletas deverão executar uma trajetória de
30 km, e poderão realizar até três paradas para se recomporem. Neste cenário, os
objetos móveis são os atletas participantes da corrida. O objetivo deste cenário é
ilustrar os dados extraídos do GPS e mostrar como eles podem ser enriquecidos
com semântica para serem inseridos no PostgreSQL, por meio da API DBST
proposta nesta dissertação.
4.2. Tipos de Dados da API DBST
Nesta seção são apresentas as três categorias de tipos de dados: Episódios,
Trajetória e Anotação Semântica propostas neste trabalho e contidas na API DBST.
Na Seção 4.2.1, são descritos os tipos de dados referentes aos episódios de
paradas e movimentos. Na Seção 4.2.2, é exibida uma discussão sobre os tipos de
dados de trajetórias, enquanto na Seção 4.2.3, são descritos os tipos de dados
relativos às anotações semânticas. Em todas estas seções é apresentado um
cenário mostrando a aplicação dos tipos.
45
4.2.1. Dados de Paradas e Movimentos
Estes tipos de dados são responsáveis por armazenar informações
relacionadas às paradas e aos movimentos do objeto móvel, que ocorrem durante a
execução de uma dada trajetória. Um conjunto de paradas e movimentos faz parte
da composição de uma trajetória qualquer. É importante notar, que a duração do
deslocamento do objeto móvel durante a execução da trajetória é correspondente ao
instante de tempo contido entre duas instâncias de paradas, a primeira parada
[TinícioParada] e o última [TfimParada]. As duas paradas são interligadas por um ou mais
movimentos e paradas. Um movimento é composto por duas paradas consecutivas
(SPACCAPIETRA et. al., 2007).
Para representar os dados referentes aos movimentos dos objetos móveis
que compõem uma determinada trajetória, foi especificado o tipo MoveType que
encapsula quatro atributos: description, speedAverage, beginIntervalTime
e
EndIntervalTime. No Quadro 8, é apresentada a descrição de todos estes atributos
que compõem o tipo MoveType.
Quadro 8 - Tipo de dado que representa os movimentos de objetos móveis
MoveType
Atributos
Description
Tipo
Descrição
String
Texto
descritivo
de
um
determinado
movimento.
SpeedAverage
Float
Velocidade média atingida em um dado
movimento realizado pelo objeto.
BeginIntervalTime
Timestamp
Data e hora do início do registro do
movimento.
EndIntervalTime
Timestamp
Data e hora do término do registro do
movimento.
Fonte: O Autor
Aplicação do tipo MoveType: Os atletas iniciam a competição partindo de
uma parada denominada de linha de largada. Neste momento, é registrado o tempo
inicial da duração do movimento realizado por eles na competição. Quando eles
46
realizam suas próximas paradas durante ou no fim da competição, é registrado o
término do movimento. Desta maneira, é definida a duração temporal do movimento
realizado pelos atletas. Percebe-se que neste cenário, o atleta poderá realizar até
quatro movimentos, pois de acordo com as regras da competição, é prevista a
ocorrência de três paradas que segmentam a trajetória dos atletas da competição
em quatro trechos, (1) da largada à primeira parada para os atletas se recomporem;
(2) saindo da primeira parada onde os atletas se recompuseram, chegando à
segunda; (3) partindo da segunda parada e chegando à terceira parada; e por fim (4)
partindo da terceira parada até a linha de chegada. É importante destacar que o
movimento se caracteriza por duas paradas consecutivas. No tipo de dado
MoveType, é armazenado cada movimento realizado pelos atletas durante a
competição. Neste tipo, é registrada a descrição do movimento executado, a
velocidade média atingida por cada atleta durante a execução da trajetória na
competição e o tempo de duração de cada movimento realizado pelos mesmos.
Para representar os dados referentes às paradas dos objetos móveis que
executam uma trajetória qualquer, foi especificado o tipo StopType descrito no
Quadro 9. Este tipo armazena os dados espaço-temporais do objeto rastreado. Com
relação ao atributo localização contido no tipo em questão, o mesmo pode
armazenar informações referentes a quaisquer tipos geométricos que seja
reconhecido pelo SGBD PostgreSQL/Postgis. Esta flexibilidade faz com que o
desenvolvedor da aplicação possa escolher o tipo de geometria que melhor satisfaça
seus requisitos dentre o conjunto de tipos geométricos do PostgreSQL/Postgis. Por
meio deste tipo, é possível obter a localização do objeto móvel através do atributo
localização que contém as coordenadas espaciais coletadas em um instante ou
período de tempo. A localização do objeto móvel pode ser representada por diversas
formas geométricas (e.g. ponto, polígono, Multiponto, MultiPoligono). O tipo
StopType
é
formado
por
cinco
beginIntervalTime e EndIntervalTime.
atributos:
description,
localization,
srid,
47
Quadro 9 - Tipo de dado que representa as paradas de objetos móveis.
StopType
Atributos
description
Tipos
Descrição
String
Texto descritivo de uma determinada
parada do percurso do objeto móvel.
localization
PGgeometry
Localização espaço-temporal da parada
do objeto móvel.
Srid
beginIntervalTime
Int
Número referencial do GPS.
Timestamp
Data e hora do início do registro da
parada.
EndIntervalTime
TimeStamp
Data e hora do término do registro da
parada
Fonte: O Autor
Aplicação do tipo de dado StopType: Durante a competição, os atletas
podem realizar até cinco paradas que são previstas pelo comitê organizacional da
competição, como segue: uma parada relativa à largada, três paradas para os
atletas se recomporem, e a última parada que configura o fim da competição. Com o
tipo de dado StopType, cada parada realizada pelo atleta durante a competição é
representada pela descrição e pela localização espacial do local da parada. Além
disso, são armazenados o tempo de duração da parada e a referência do dispositivo
de localização espacial do atleta. Com estas informações é possível saber onde e
em que momento da competição o atleta parou, e quanto tempo durou tal parada.
4.2.2. Dados de Trajetórias
Utilizando os tipos de dados descritos nesta seção, é possível armazenar
informações de uma trajetória bruta ou semântica em um único tipo de dado, o qual
é composto de paradas e movimentos, que por sua vez possuem zero ou mais
anotações semânticas.
Para representar os dados referentes às trajetórias brutas dos objetos móveis,
foi especificado o tipo de dados TrajectoryType descrito no Quadro 10. Este tipo é
composto por duas estruturas de dados heterogêneas (dois arrays com tipos de
dados distintos), onde uma delas foi criada para armazenar os dados referentes às
48
paradas (uma coleção do tipo StopType) e a outra para manter os movimentos (uma
coleção do tipo MoveType). A única semântica contida no tipo TrajectoryType é a
identificação das paradas e dos movimentos da trajetória. Para possibilitar o
armazenamento da coleção de MoveType foi definido o atributo moviments. Para o
armazenamento da coleção de StopType foi especificado o atributo stops.
Quadro 10 - Tipo de dado referente às trajetórias brutas.
TrajectoryType
Atributos
moviments
Tipos
Descrição
MoveType[]
Um array com todos os movimentos de
uma trajetória qualquer.
stops
StopType[]
Um array com todas as paradas de uma
trajetória qualquer.
Fonte: O Autor
Aplicação do tipo de dado TrajectoryType: Durante a competição, cada
atleta pode realizar diversos movimentos e paradas, isso acarretaria em várias
tuplas na tabela do BD, pois cada movimento e parada efetivados por cada atleta
seriam armazenados em tuplas distintas da tabela do BD. Com este tipo, todos os
registros de paradas e movimentos de um atleta da competição são armazenados
em uma única tupla do BD. Isso é possível porque todas as paradas e todos os
movimentos são armazenados em um array correspondente, contido no tipo
TrajectoryType. Com isso, para cada atleta da corrida é suficiente a gravação de
uma única tupla na tabela do BD, onde serão armazenadas as informações de todas
as paradas e todos os movimentos válidos para a aplicação. As paradas são
armazenadas através do atributo StopType[] e os movimentos através do atributo
MoveType[]. Ambos os atributos são encapsulados pelo tipo TrajectoryType.
Nos dados referentes às trajetórias semânticas dos objetos móveis, foi
especificado o tipo TrajectorySemanticType listado e descrito no Quadro 11. Este
tipo é composto por duas estruturas de dados heterogêneas (uma coleção do tipo de
dado StopType e uma coleção do tipo de dado MoveType). Além disso, os atributos
goal e status indicam o objetivo de execução da trajetória e sua situação atual,
respectivamente. As anotações semânticas correspondentes aos aspectos de
49
mobilidade poderão estar vinculadas às paradas e aos movimentos que também
estarão contidos nas respectivas estruturas de dados heterogêneas.
Quadro 11 - Tipo de dado referente às trajetórias semânticas.
TrajectorySemanticType
Atributos
moviments
Tipos
MoveType[]
Descrição
Um
array
com
todos
os
movimentos de uma trajetória.
stops
StopType[]
Um array com todas as paradas
de uma trajetória.
goal
String
Motivo pelo qual a trajetória foi
realizada.
status
bool
Informa
se
a
trajetória
foi
concluída.
Fonte: O Autor
Aplicação do tipo de dado TrajectorySemanticType: Neste tipo de dado,
os movimentos e as paradas realizados por um atleta são armazenados em arrays
correspondentes ao tipo de episódio modelado (parada ou movimento). Os
movimentos são armazenados por meio do atributo MoveType[], e as paradas pelo
atributo StopType[]. Com este tipo de dado, também podem ser armazenadas as
seguintes informações: a descrição do objetivo traçado pelo atleta para competição,
o atributo goal que indica o objetivo de execução da trajetória; e a indicação (sim ou
não) se o objetivo almejado foi alcançado, que é registrada no atributo status.
4.2.3. Dados de Anotações Semânticas
Estes tipos de dados foram propostos para oferecer um significado às
informações referentes aos movimentos e às paradas de uma dada trajetória. Com
as anotações semânticas de trajetórias é possível obter um entendimento mais
preciso dos fatos, e consequentemente, uma análise mais detalhada sobre os dados
pode ser realizada. Os dados coletados durante o percurso do objeto móvel, quando
associados às anotações semânticas, poderão indicar o que, quando e onde ocorreu
determinado fenômeno. As anotações semânticas descrevem os aspectos de
50
mobilidade, tais como: os eventos ocorridos durante a viagem do objeto móvel, o
meio de transporte utilizado pelo objeto móvel, o estado do ambiente percorrido, o
objetivo do movimento ou da parada, a atividade realizada pelo objeto móvel e o
comportamento durante a execução do movimento.
Para representar as anotações semânticas referentes aos trajetos dos objetos
móveis, foi especificado o tipo de dado AnnotationType como mostrado no Quadro
12. Ele foi implementado para armazenar informações semânticas vinculadas aos
dados espaço-temporais, enriquecendo uma dada trajetória semanticamente. A
criação deste tipo de dado foi proposta para o desenvolvedor armazenar de forma
genérica, qualquer uma das seis anotações semânticas descritas no Capítulo 2
deste documento. Com isso, todas as anotações poderão ser armazenadas em uma
única tabela do banco de dados, evitando junções. As anotações semânticas usadas
neste trabalho são: Atividade, Comportamento, Evento, Meio de transporte, Objetivo,
e Ambiente. O tipo de dado AnnotationType também permite que o desenvolvedor
crie suas próprias anotações semânticas e as classifique com a categoria e o tipo ao
qual pertencem.
Quadro 12 - Tipo de dado referente à anotação semântica.
AnnotationType
Atributos
description
Tipos
Descrição
String
Descreve
uma
determinada
anotação
semântica escolhida pelo usuário.
beginIntervalTime
Timestamp
Data e hora do início do registro da
anotação em questão.
EndIntervalTime
TimeStamp
Data e hora do término do registro da
anotação em questão.
CategoryNote
String
Descreve a categoria que a anotação
pertence.
kindNote
String
Informa qual é o tipo da anotação (e.g.
Atividade, Comportamento, Evento, Meio
de Transporte, Objetivo e Ambiente).
Fonte: O Autor
51
Aplicação do tipo de dado AnnotationType: Durante a disputa da
competição, diversas informações sobre os atletas podem ser identificadas e
posteriormente armazenadas no banco de dados. Utilizando o tipo de dado
AnnotationType, é possível armazenar informações associadas às paradas e aos
movimentos do atleta durante sua trajetória na competição. Estas informações
incluem: a atividade que o atleta executou, a categoria e o tipo do comportamento
que o atleta teve, o evento ocorrido durante a disputa, o meio de transporte que o
atleta usou em um dado movimento, o objetivo que foi traçado pelo mesmo, e como
estava o ambiente em determinados momentos da competição. Com este tipo, é
armazenada a descrição da anotação semântica, o intervalo de tempo do
acontecimento da mesma, além da classificação da anotação (e.g. física, para
anotação de atividade, ou liderança, para anotação de comportamento). Com ele
também podem ser armazenadas as anotações semânticas que melhor satisfaçam o
usuário, independente das seis abordadas neste trabalho.
O tipo de dado NoteBehaviorType foi especificado para representar aspectos
comportamentais dos objetos rastreados, que representam o movimento executado
pelo objeto móvel em um dado período de tempo, ou em segmentos de um mesmo
movimento. O Quadro 13 lista e descreve o tipo de dado NoteBehaviorType que é
composto por seis atributos: description, beginIntervalTime, EndIntervalTime,
Veering, Category e Kind. Ele foi criado para armazenar informações sobre tipos de
comportamentos que sejam considerados significativos para a aplicação.
52
Quadro 13 - Tipo de dado referente à anotação sobre o comportamento do objeto.
NoteBehaviorType
Atributos
description
Tipos
Descrição
String
Texto descritivo sobre o comportamento
realizado pelo objeto móvel.
beginIntervalTime
Timestamp
Data e hora do início da anotação.
EndIntervalTime
Timestamp
Data e hora do término da anotação.
Informa se houve ou não uma mudança
Veering
bool
significativa de comportamento no trajeto do
objeto.
Category
String
Informa a categoria do comportamento
realizado (e.g. Desvio).
Kind
String
Informa
o
tipo
da
categoria
do
comportamento realizado (e.g. Intensional,
provocado).
Fonte: O Autor
Aplicação do tipo de dado NoteBehaviorType: Durante a competição,
algum(ns) atleta(s) pode(m) querer se beneficiar pegando um atalho no percurso
definido para competição. Isso caracterizaria um desvio de comportamento, pois
este comportamento executado pelo atleta não é validado pelas regras da
competição. Esta atitude do atleta pode ser armazenada no BD através do tipo de
dado NoteBehaviorType, por caracterizar uma mudança no comportamento do atleta
durante a execução da trajetória na competição, além de registrar o tempo de
duração do comportamento indevido. Neste tipo, também são registrados a
categoria do comportamento do atleta, e o tipo da categoria do comportamento.
Para a representação das atividades realizadas pelos objetos móveis, foi
especificado o tipo de dado NoteActivateType que é apresentado no Quadro 14.
Este tipo armazena informação sobre a atividade realizada pelo objeto móvel em um
determinado intervalo de tempo, que está associada a uma parada e/ou movimento.
É composto por seis atributos: description, beginIntervalTime, EndIntervalTime,
status, Category e Kind.
53
Quadro 14 - Tipo de dado referente à anotação sobre as atividades realizadas pelos
objetos móveis.
NoteActivateType
Atributos
Tipos
description
Descrição
String
Texto
descritivo
sobre
a
atividade
realizada.
beginIntervalTime
Timestamp
Data e hora do início da atividade.
EndIntervalTime
Timestamp
Data e hora do término da atividade.
status
bool
Informa se a atividade foi concluída ou
não.
Category
String
Informa
a
categoria
da
atividade
executada (e.g. física).
Kind
String
Informa o tipo da categoria da atividade
executada (e.g. correr, caminhar).
Fonte: O Autor
Aplicação do tipo de dado NoteActivateType: Durante o movimento ou a
parada efetivada pelo atleta da competição, o mesmo pode estar realizando uma
atividade qualquer. No caso do cenário em questão, a atividade realizada pelo atleta
durante o movimento pode ser “correr” ou “caminhar”. Nota-se que em um dado
movimento, o atleta pode realizar duas atividades distintas (“correr” e “caminhar”).
Durante as paradas dos atletas nos locais demarcados pela competição assume-se
que eles podem executar a atividade de alimentação e/ou beber água. Com o tipo de
dado NoteActivateType, é possível armazenar a descrição das atividades realizadas
pelos atletas durante a competição e registrar se a atividade foi concluída ou não,
registrando também o tempo de duração da atividade. Além disso, é registrada a
categoria em que se classifica a atividade e o tipo de tal categoria.
Foi especificado o tipo NoteEnvironmentType descrito no Quadro 15 para
representar as anotações semânticas referentes ao estado do ambiente em que o
objeto móvel se encontra. Este tipo armazena informação sobre a situação da região
transitada
pelo
objeto
móvel.
Ele
encapsula
beginIntervalTime, EndIntervalTime, Category e Kind.
cinco
atributos:
description,
54
Quadro 15 - Tipo de dado referente à anotação sobre o ambiente transitado pelo
objeto móvel.
NoteEnvironmentType
Atributos
description
Tipos
Descrição
String
Texto descritivo sobre o ambiente
transitado pelo objeto.
beginIntervalTime
Timestamp
Data e hora do início do registro
referente á condição do ambiente.
EndIntervalTime
Timestamp
Data e hora do término do registro
referente à condição do ambiente.
Category
String
Informa a categoria da condição do
ambiente (e.g. Temperatura).
Kind
String
Informa
o
tipo
da
categoria
da
condição do ambiente (e.g. interna,
externa).
Fonte: O Autor
Aplicação do tipo de dado NoteEnvironmentType: Informações sobre as
condições do ambiente de competição dos atletas podem ser significativas para a
aplicação de monitoramento dos mesmos. Informações tais como: a temperatura em
graus célsius na qual os atletas disputaram a competição, a velocidade do vento e a
umidade relativa do ar podem ajudar a compreender o rendimento que os atletas
tiveram na competição. Estas informações podem ser armazenadas com o tipo de
dado NoteEnvironmentType, através do atributo description, que consiste em
armazenar a descrição das condições do ambiente transitado pelo atleta em um
determinado momento da competição. Com os atributos beginIntervalTime e
EndIntervalTime é possível armazenar o intervalo de tempo de duração do
fenômeno natural que caracteriza a condição do ambiente. Além disso, poderá ser
armazenada a categoria e tipo ao qual o fenômeno natural pertence (e.g.
temperatura (interna ou externa)).
Para representar os dados semânticos com relação aos possíveis eventos
ocorridos durante uma dada trajetória de um objeto móvel qualquer, foi especificado
o tipo NoteEventType apresentado no Quadro 16. Este tipo foi criado para
55
armazenar informação sobre eventos ocorridos durante o percurso executado pelo
objeto móvel em uma trajetória qualquer. O mesmo é composto por cinco atributos:
description, beginIntervalTime, EndIntervalTime, Category e Kind.
Quadro 16 - Tipo de dado referente à anotação sobre eventos ocorridos no percurso
do objeto móvel.
NoteEventType
Atributos
description
Tipos
Descrição
String
Texto descritivo sobre eventos ocorridos na
trajetória.
beginIntervalTime Timestamp Data e hora do início da ocorrência do evento.
EndIntervalTime
Category
TimeStamp Data e hora do término da ocorrência do evento.
String
Informa a categoria do evento ocorrido
(e.g. calamidade pública)
Kind
String
Informa o tipo da categoria do evento ocorrido (e.g.
alagamento, deslizamento de terra).
Fonte: O Autor
Aplicação do tipo de dado NoteEventType: Durante a competição, podem
ocorrer fenômenos condizentes com a região da competição, por exemplo, a
ocorrência de um alagamento, obstruindo o caminho a ser percorrido pelos atletas.
Caso este fenômeno seja significativo para a aplicação de monitoramento dos
atletas, o mesmo poderá ser armazenado no BD através do tipo de dado
NoteEventType, onde a descrição do fenômeno em questão e o intervalo de tempo
em que o mesmo ocorreu são registrados. Além disso, a categoria do evento e o tipo
da categoria correspondente são registrados no BD.
As anotações semânticas referentes ao objetivo almejado pelo objeto móvel
ao executar uma trajetória qualquer, são representadas pelo tipo NoteGoalType.
Este tipo é apresentado no Quadro 17, com a listagem e descrição dos seus
atributos. Ele é responsável pelo armazenamento do objetivo almejado pelo objeto
móvel, ao realizar seu movimento ou sua parada ao longo da trajetória. Este tipo é
formado por quatro atributos: description,
status.
beginIntervalTime, EndIntervalTime e
56
Quadro 17 - Tipo de dado referente à anotação sobre o objetivo da trajetória.
NoteGoalType
Atributos
description
Tipos
Descrição
String
Texto descritivo sobre o objetivo do objeto
móvel em seu percurso.
beginIntervalTime
Timestamp
Data e hora do início da realização do
objetivo do objeto móvel.
EndIntervalTime
Timestamp
Data e hora do término da realização do
objetivo do objeto móvel.
status
bool
Informa se o objetivo foi alcançado ou não.
Fonte: O Autor
Aplicação do tipo de dado NoteGoalType: Todos os atletas da competição
têm objetivos a serem alcançados na disputa da prova, i.e. ser o primeiro, segundo
ou terceiro lugar, conseguir concluir toda a prova ou trechos dela, em outras
palavras, os competidores podem traçar um objetivo geral que é chegar ao fim da
corrida, e traçar objetivos específicos referentes a cada trecho da competição. Esses
objetivos podem ser armazenados através do tipo NoteGoalType, que consiste em
armazenar, por exemplo: a descrição do objetivo almejado pelo atleta, a duração de
tempo que o mesmo levou para alcançar tal objetivo, e a informação se o objetivo foi
ou não alcançado.
Em uma trajetória, pode haver diversos movimentos realizados pelo objeto
móvel por vários meios de transportes. Para isso, foi especificado o tipo
NoteMeanTransportType descrito no Quadro 18, que denota as informações
relativas ao meio de transporte usado pelo objeto móvel em uma dada trajetória.
Este tipo consiste em armazenar informação sobre o meio de transporte utilizado
pelo objeto móvel em uma determinada região no espaço, incluindo detalhes sobre a
categoria (Terrestre, Aquática, Aérea) e o tipo (Carro, Navio, Avião) do transporte
utilizado. Este tipo é composto por cinco atributos: Description, Category, Kind,
beginIntervalTime e EndIntervalTime.
57
Quadro 18 - Tipo de dado referente ao meio de transporte do objeto móvel.
NoteMeanTransportType
Atributos
Description
Tipos
Descrição
String
Texto descritivo sobre o meio de
transporte que foi utilizado no trajeto
do objeto.
beginIntervalTime
Timestamp
Data e hora do início do intervalo que
foi registrado o meio de transporte do
objeto móvel.
EndIntervalTime
Timestamp
Data e hora do término do intervalo
que
foi
registrado
o
meio
de
transporte do objeto móvel.
Category
String
Informa a categoria do meio de
transporte usado.
Kind
String
Informa o tipo do meio de transporte
que foi utilizado.
Fonte: O Autor.
Aplicação
do
tipo
de
dado
NoteMeanTransportType:
Durante
a
competição, um atleta pode precisar usar meios de transportes distintos em
diferentes trechos da competição (e.g. barco e bicicleta). Com o tipo de dado
NoteMeanTransportType informações como: a descrição do meio de transporte
usado pelo atleta durante um dado percurso, a categoria (Terrestre, Aéreo ou
Aquático) e o tipo do transporte usado (bicicleta ou barco) são mantidas no BD.
Além disso, é importante registrar o intervalo de tempo em que foi utilizado tal meio
de transporte.
Uma vez definidas as informações referentes a cada tipo de dado proposto
nesta dissertação, elas poderão ser armazenadas em um BD e posteriormente
poderão ser manipuladas por um programa computacional de análise de dados de
trajetória semântica. Na seção seguinte, é apresentada a implementação da API
DBST.
58
4.3. Implementação da API DBST
Esta seção está organizada como segue: a Seção 4.3.1 ilustra como a API
DBST foi estrururada mostrando os pacotes, as classes, as funções e os tipos
correspondentes aos novos tipos de dados que foram desenvolvidos para estender o
SBGD PostgreSQL/Postgis. Além disso, ela exibe um diagrama de classes, que
ilustra detalhadamente os relacionamentos e as restrições existentes entre as
mesmas.
4.3.1. Estrutura de Classes da API DBST
Na Figura 13, é apresentada graficamente a estrutura de classes da API
DBST com os tipos de dados estendidos para o SGBD PostgreSQL. Eles pertencem
a três categorias: Episódios, Trajetórias e Anotações Semânticas, e foram
encapsulados em seus respectivos pacotes, como ilustrado na Figura 13.
59
Figura 13 - Representação Gráfica da Estrutura de Classes da API DBST.
Fonte: O Autor
60
Percebe-se que a API DBST persiste em quatro pacotes, como ilustrado pela
Figura 13. O pacote Annotation Semantic, corresponde às classes que representam
as anotações semânticas de trajetórias, enquanto o pacote Episodes, se refere aos
episódios de paradas e movimentos que fazem parte da composição de uma dada
trajetória. O pacote Trajectory corresponde aos tipos de dados usados para
representar as trajetórias em BD. O pacote Utilities possui duas classes: (1) a
TypesTrajectorySemantic, que disponibiliza aos usuários as funções destinadas à
criação automática dos tipos de dados estendidos para o SGBD PostgreSQL; e (2) a
classe MigrationDataForDB, que consiste em migrar as paradas e os movimentos de
trajetórias para o BD através de um arquivo passado como parâmetro pelo usuário.
Para isso, os usuários informam apenas a instanciação das funções destas classes.
As setas bidirecionais da Figura 13 correspondem aos relacionamentos entre as
classes. Nessa figura, existe um relacionamento entre as classes do pacote
Episodes e as classes contidas no pacote Annotation Semantic.
Fonte: O Autor.
Figura 14 - Diagrama de classes da API DBST
61
62
A Figura 14 apresenta de forma detalhada os relacionamentos existentes
entre as classes, os quais são ilustrados através das linhas de associação. Além
disso, nessa figura, é mostrada a cardinalidade de cada associação existente, onde
são sinalizadas as restrições do relacionamento entre elas. Percebe-se que no
relacionamento
entre
as
classes
StopType
(ou
MoveType)
e
TrajectorySemanticType (ou TrajectoryType), é ilustrada a afirmação de que uma
trajetória se caracteriza por pelo menos, duas instâncias de paradas e uma de
movimento.
4.4. Conclusão
Os tipos de dados da API DBST correspondem aos tipos de dados estendidos
para o SGBD PostgreSQL/Postgis descritos no Capítulo 2. A API em questão tem o
objetivo de facilitar a manipulação de dados semânticos relativos às paradas e aos
movimentos, às trajetórias e às anotações sobre o deslocamento de objetos móveis.
A API DBST foi desenvolvida especificamente para os tipos de dados que
foram estendidos para SGBD PostgreSQL/Postgis, que foram apresentados no
Capítulo 2. Através da API proposta em conjunto com os tipos de dados semânticos
sugeridos neste trabalho, é possível armazenar todos os movimentos e todas as
paradas pertencentes a uma dada trajetória de algum objeto móvel, utilizando
apenas o tipo de dado TrajectoryType ou TrajectorySemanticType. Usando estes
tipos, apenas uma tupla da tabela do BD é suficiente para representar toda a
trajetória.
Utilizando a API DBST, o desenvolvedor pode instanciar as funções contidas
na mesma, para criar os novos tipos de dados de representação semântica no
SGBD PostgreSQL/Postgis. Com isso, o desenvolvedor poderá usar as funções para
criar cada tipo de dado de interesse dentre os tipos de dados sugeridos neste
trabalho. Esses tipos representam: as paradas e os movimentos, as trajetórias
brutas e as semânticas, além das seis anotações semânticas (Atividade, Evento,
Meio de transporte, Objetivo, Ambiente e Comportamento). A criação dos tipos de
dados MoveType, StopType, TrajectoryType e TrajectorySemanticType para o
SGBD PostgreSQL/Postgis pode ser diretamente realizada através da função
PreparedDB, disponibilizada para o desenvolvedor pela API DBST. Para isso, o
63
desenvolvedor deverá passar como parâmetro a string de conexão de acesso ao
BD.
A API DBST foi especificada de forma flexível para facilitar a personalização
da codificação do desenvolvedor na representação de trajetórias semânticas. Os
tipos de dados foram criados de forma a oferecer uma maior flexibilidade possível no
desenvolvimento de uma dada aplicação, com a capacidade de permitir
customizações por parte do desenvolvedor na criação de aplicações de naturezas
distintas.
No próximo capítulo, são mostrados os exemplos de uso da API DBST em
conjunto com os novos tipos de dados propostos por este trabalho dissertativo. Para
isso, foram realizadas algumas consultas referentes a dois cenários: gerenciamento
de transportes públicos e monitoramento de pássaros.
Capítulo
5
Exemplos de Aplicação
Este capítulo apresenta dois exemplos de aplicação em cenários distintos: um tocante ao
monitoramente de pássaros e outro ao gerenciamento de transportes públicos. Estes
exemplos têm a finalidade de mostrar a aplicabilidade dos tipos de dados propostos neste
trabalho por meio da API DBST.
65
5.1. Introdução
Neste capítulo é mostrada a aplicabilidade dos tipos de dados estendidos
para o SGBD PostgreSQL/Postgis por intermédio da API DBST, usando dois
cenários de aplicações distintas.
Inicialmente, na Seção 5.2, é exposta a
preparação do ambiente para utilização dos tipos de dados propostos e da API
DBST. A Seção 5.3 mostra a utilização dos tipos de dados de trajetórias semânticas
para o SGBD PostgreSQL/Postgis. Os cenários definidos para exibir a utilização da
API DBST em conjunto com os tipos de dados estendidos são: o monitoramento de
trajetórias de pássaros discutido na Seção 5.4, e o gerenciamento de trajetórias de
transportes públicos (ônibus) apresentado na Seção 5.5. Por fim, na Seção 5.6 são
apresentadas as conclusões deste capítulo.
Como meio de coleta dos dados de rastreamento de objetos móveis, foi
usado o dispositivo de localização de GPS. Em cada exemplo de uso aqui
considerado, é apresentada uma breve descrição dos dados coletados e é discutida
a aplicação de cada um deles. Além disso, é mostrada a aplicabilidade de cada tipo
de dado estendido, criados para representar trajetórias semânticas e para persistilas em uma base de dados do SGBD PostgreSQL/Postgis, a partir da API DBST.
Esta API foi desenvolvida com a finalidade de facilitar o uso destes tipos, o qual
independe da API DBST.
Em ambos os exemplos de aplicação, a localização geográfica dos objetos
(ônibus e pássaro), foi capturada e armazenada apenas no formato geométrico do
tipo Ponto, representado por (x, y). Porém, outros formatos geométricos (e.g
Polígono, Multipoligono, dentre outros), compatíveis com os tipos de dados
espaciais reconhecidos no PostgreSQL/Postgis, poderiam ter sido usados para
representação da localização de objetos móveis. Tanto a API DBST quanto os tipos
de dados de localização do objeto móvel, oferecem suporte a qualquer tipo
geométrico reconhecido pelo sistema de BD em questão.
5.2. Preparação do Ambiente
Para utilizar a API DBST é necessária a preparação de um ambiente de
desenvolvimento, conhecido popularmente como Ambiente de Desenvolvimento
Integrado (IDE). Como exemplo de IDE pode-se citar o Eclipse (GONÇALVES E.
66
2006) e o NetBeans (BOCK , H. 2011). Para que o compilador/interpretador da IDE
utilizado pelo usuário reconheça os tipos de dados da API DBST, é necessário que a
mesma seja importada para o ambiente de desenvolvimento escolhido.
Como a API DBST utiliza o tipo de dado PGgeometry contido na API do
Postgis, que é uma extensão do PostgreSQL, também é necessário que a API do
Postgis seja importada para a IDE. Essas importações são feitas de forma simples.
Uma vez que as API são importadas, todos os tipos e todas as funções contidas nas
mesmas podem ser manipulados a partir da IDE escolhida.
O SGBD PostgreSQL/Postgis dá suporte aos tipos de dados de trajetórias
semânticas, através dos tipos de dados semânticos propostos por este trabalho.
Este suporte pode ser realizado automaticamente, necessitando apenas, por parte
do usuário, da instanciação da função “PreparedDB” encapsulada pela API DBST. O
usuário pode criar também, de forma automatizada e independente, cada tipo de
dado referente à anotação semântica, ou seja, são criados no BD apenas os tipos de
dados necessários para o desenvolvimento de uma determinada aplicação.
O ambiente de teste criado para execução da validação deste estudo se
baseou nas seguintes tecnologias:

IDE Eclipse versão 4.2.1, para experimentos com a API DBST;

PostgreSQL versão 9.1.5 e sua extensão espacial Postgis versão 2.0,
como tecnologia de banco de dados;

PgAdmin III versão 1.14.3 como ferramenta de administração e
manipulação de dados no BD;

Sistema Operacional Windows 7 Professional com SP1 na arquitetura
32 bits, utilizado para instalação das tecnologias; e

Processador Pentium M 1.73GHz, 1,5GB de RAM.
5.3. Uso de Tipos de Dados da API DBST
Nesta seção é exemplificado o uso dos tipos de dados desenvolvidos para o
SGBD PostgreSQL/Postgis através da API DBST. Ela pode ser utilizada a partir de
uma IDE de desenvolvimento (e. g. Eclipse, NetBeans (Böck , H. 2011)), onde a
mesma é importada como biblioteca. Trechos de códigos são apresentados com a
finalidade de ilustrar as operações que podem ser realizadas com a API DBST:
67
instanciação dos tipos de dados, criação dos tipos de dados semânticos no SGBD
PostgreSQL/Postgis, importação automática dos dados de uma trajetória qualquer a
partir de um arquivo dado como entrada, e inserção dos dados no BD PostgreSQL,
tais como: tipos compostos e arrays, além de consultas previamente definidas.
Os tipos de dados são instanciados de forma convencional como exibido no
código listado no Quadro 19.
Quadro 19 - Código de criação dos tipos de dados semânticos da API DBST.
Fonte: O Autor
A API DBST disponibiliza ao desenvolvedor, funções para que o mesmo
possa preparar o SGBD com os tipos de dados de trajetória semântica.
Automaticamente, esses tipos são criados no SGBD PostgreSQL/Postgis pela
aplicação destas funções. Para isso, devem ser realizadas as operações listadas no
Quadro 20.
68
Quadro 20 - Código de criação dos tipos de dados semânticos para o SGBD
PostgreSQL/Postgis.
Fonte: O Autor
Caso o desenvolvedor prefira importar os dados relativos às paradas e aos
movimentos de uma dada trajetória para o BD, é possível passar um arquivo como
parâmetro de entrada, a partir da função Migration disponibilizada pela API DBST.
Este arquivo deve atender às restrições de formato de linha de registro, que são
dadas no Quadro 21.
Quadro 21 - de linha do arquivo de entrada da API DBST.
Fonte: O Autor
Para executar a operação de importação de dados, o desenvolvedor deve
instanciar a classe MigrationDataForDB e chamar a função Migration. Isso é
realizado como mostra o código do Quadro 22.
Quadro 22 - Código para Importação de dados.
Fonte: O Autor
69
A API DBST manipula os tipos de dados primitivos (e. g. double), os objetos
(e.g. String), os tipos compostos (e.g. os tipos de dados referentes às anotações
semânticas e aos episódios de paradas e movimentos), e arrays (e.g. os tipos de
dados que representam as trajetórias). A seguir é mostrada no Quadro 23, uma das
formas de armazenar no BD, os tipos de dados pertencentes a uma trajetória
qualquer, através da API DBST.
Quadro 23 - Código de armazenamento das informações de trajetórias em arrays.
Fonte: O Autor
5.4. Cenário 1 - Monitoramento de Pássaros
Este exemplo de aplicação faz uso de dados referentes ao monitoramento de
pássaros. Neste monitoramento, foi mapeado o percurso das cegonhas durante um
período de oito anos, e este conjunto de dados está descrito na Seção 5.4.1.
Também são listados os dados descritivos contidos na base de dados de
monitoramento espacial e algumas considerações sobre os mesmos. Por fim, na
Seção 5.4.2, é exibido o conjunto de consultas relativo a este cenário.
5.4.1. Trajetórias de Pássaros
Os dados coletados para este cenário são as trajetórias de migração de
cegonhas. A captura dos dados foi concretizada através do dispositivo de
localização de GPS que foi colocado em algumas aves. Um grupo de pesquisadores
receberam os dados das trajetórias das aves, e deram um nome a cada uma delas.
O monitoramento perdurou do período de 20 de agosto de 1998 a 30 de abril de
1 - O cast é necessário porque o tipo composto é armazenado como uma linha pelo SGBD PostgreSQL
e o tipo ARRAY não aceita linhas como elementos do array.
70
2006, finalizado com um total de 1.886 registros. A ave que mais teve o registro de
sua localização foi a Prinzesschen, nome escolhido pelos pesquisadores, com um
total de 528 registros dentre o montante de 1.886 registros coletados entre as 18
aves Monitoradas (MORENO et. al., 2010).
A base de dados contendo os registros das trajetórias dos pássaros comporta
as seguintes informações: o nome do pássaro, a data da coleta, além das
coordenadas geográficas de latitude e longitude, correspondentes à localização dos
pássaros durante a(s) trajetória(s) dos mesmos. Os dados coletados não
apresentam semântica sobre o trajeto dos pássaros, ou seja, são dados
considerados brutos. Para demonstração da aplicabilidade dos tipos de dados
semânticos que foram desenvolvidos neste trabalho, as anotações semânticas são
associadas de forma hipotética e aleatória a alguns registros da base de dados de
trajetórias de pássaros. A Figura 15 ilustra a estrutura da tabela de armazenamento
das informações referentes às trajetórias dos pássaros descritas nesta seção.
Figura 15 - Estrutura da tabela de armazenamento de trajetórias de pássaros.
BirdName
TimeDate
Latitude
Longitude
Prinzesschen
30-Oct-03
13.727
33.995
Prinzesschen
3-Dec-03
9.183
33.35
Louka
06/mar/00
28.843
-10.844
Penelope
16/mar/00
-2.722
34.302
...
...
...
24/mar/06
-3.096
34.398
...
Annamarie
Fonte: MORENO et. al., 2010
5.4.2. Exemplos de Consultas
Para este cenário, os dados referentes às trajetórias de pássaros foram
analisados como segue: o objeto móvel adotado é o pássaro, a localização espacial
de cada objeto móvel persiste nas coordenadas de longitude e latitude,
representadas pelo objeto do tipo Ponto. Por serem dados brutos, ou seja, apenas
espaço-temporais, eles foram associados, de forma hipotética, às informações
semânticas propostas neste trabalho. Alguns questionamentos referentes às
71
trajetórias dos pássaros podem ser levantados, como segue: (1) qual a região que a
maioria dos pássaros se deslocou durante uma dada estação do ano?; (2) Por que
em uma estação do ano, os pássaros migram para uma determinada região?; (3) O
que levou os pássaros durante uma migração a mudarem o percurso bruscamente?
A primeira questão pode ser esclarecida com o uso de dados brutos, necessitando
apenas de características do objeto (pássaro) e da localização espaço-temporal do
percurso dos mesmos. Porém, para responder às duas últimas, os dados brutos não
são suficientes, sendo necessária a associação destes dados com informações
semânticas relativas ao domínio de cada situação. Respostas para essas questões
podem ser úteis para o gerenciamento da migração das aves, ajudando a entender
determinados comportamentos e costumes das mesmas.
Respostas de consultas sobre trajetórias semânticas podem ser obtidas de
forma direta (não há necessidade de cruzar os dados brutos coletados com dados
geográficos) a partir da utilização dos tipos de dados semânticos que foram
desenvolvidos neste trabalho e que podem ser manipulados através da API DBST.
Vale ressaltar que as informações semânticas são supostamente associadas aos
dados brutos coletados anteriormente. Uma das formas de associá-las é através de
algoritmos de extração de trajetória semântica descritos no Capítulo 2. Os tipos de
dados semânticos desenvolvidos por este trabalho, em conjunto com a API DBST,
foram propostos para auxiliar na resolução de consultas, como mostrado a seguir.
Consulta 1: Qual o objetivo das aves migrarem para uma determinada região em
uma dada estação temporal (Verão, Primavera, Outono e Inverno) no ano de 2011?
Para responder esse tipo de consulta, é preciso mapear as atividades
realizadas pelas aves nesta região, os objetivos traçados, o período dos movimentos
e a localização geográfica da região. Para isso, é necessário consultar o tipo de
dado NoteActivateType, além dos tipos de dados MoveType e StopType
pertencentes à categoria dos episódios para entender o intervalo de tempo e a razão
dessa migração.
As informações que podem ser obtidas a partir da execução da Consulta 1 sobre
cada tipo de dado identificado são:
72
 StopType - A localização geo-referenciada e a descrição da região
frequentada pelas aves durando o ano de 2011;
 MoveType - Os movimentos executados durante o ano 2011 e o período em
que os movimentos foram executados. Com isso, é possível identificar as
estações do ano; e
 NoteActivateType - As atividades realizadas pelas aves na região em
questão. Com isso, é possível identificar o motivo pelo qual as mesmas
viajam.
Consulta 2: As aves migram nos períodos mais frios para as regiões mais quentes
do planeta, em busca de maior oferta de comida e retornam na primavera ao local
de origem para reproduzir. Mediante a isso, podem surgir perguntas como: por que
as aves retornaram ao local de origem antes da primavera?
Para obter a resposta desta consulta, é necessário identificar o intervalo de
tempo em que as aves se mantiveram na região migrada e a localização desta
região. Além disso, é preciso obter a informação de algum fenômeno natural, ou da
existência de algum fato responsável pelo retorno das aves antes da primavera.
Essas informações podem ser obtidas a partir de três tipos de dados: StopType,
NoteEnvironmentType e NoteEventType. Alternadamente, é possível usar o tipo de
dado NoteBehaviorType que modela os aspectos comportamentais.
As informações que podem ser obtidas a partir de cada tipo de dado considerado útil
neste exemplo são:
 StopType - A localização geo-referenciada da região, além da data e hora em
que as aves saíram desta localidade. Ou seja, deve ser considerado o tempo
de saída da parada (região);
 NoteEnvironmetType - Identifica o clima e a temperatura do ambiente onde as
aves estavam habitando. Com isso, é possível conseguir informações sobre a
ocorrência de algum fenômeno natural responsável pela saída das aves;
73
 NoteEventType - Informa se houve algum fato isolado que foi significativo
para o retorno das aves ao seu habitat de origem; e
 NoteBehaviorType - Identifica se ocorreu alguma mudança de comportamento
das aves. Através dos tipos NoteEventType e NoteBehaviorType é possível
entender a razão desta mudança de comportamento.
Consulta 3: Quanto tempo levou para que as aves tenham migrado de um ponto ao
outro, e para que?
Esta consulta pode ser processada utilizando os tipos de dados StopType e
MoveType relativos aos episódios (paradas e movimentos), além do tipo
NoteActivateType. Desta forma, é possível aferir o tempo de deslocamento espacial
das aves, a origem e o destino referente ao deslocamento e o que as aves foram
fazer na localidade.
As informações que podem ser obtidas a partir de cada tipo de dado são:
 StopType - Representa o local de origem e destino das aves;
 NoteActivateType - Informa a atividade realizada na localidade de destino das
aves; e
 MoveType - Indica o tempo de execução da trajetória.
Consulta 4: Quais os pontos de uma dada região habitada por uma ave, por um
período maior que trinta dias, em cada estação do ano 2012?
Quais foram as
atividades realizadas por ela em cada um desses pontos?
Para processar este tipo de consulta, é viável mapear as paradas realizadas
pela espécie, além das atividades que ela executou no ano de 2012 na região. Para
isso, é necessária a utilização do tipo de dado StopType e do tipo NoteActivateType.
Por meio deles podem ser mapeados a descrição, o tempo de permanência do
pássaro na localidade em questão e as atividades que o mesmo realizou durante a
sua permanência na região.
74
As informações que podem ser obtidas a partir de cada tipo de dado usado neste
exemplo de consulta são:
 StopType - A localização geo-referenciada de cada região e a duração da
permanência em cada região visitada com data e hora; e
 NoteActivateType - Informa as atividades realizadas pelas aves em um dado
período de tempo em cada região, onde a permanência durou mais de um
mês.
Consulta 5: Quantos km as aves voaram para executar uma dada trajetória, quais
os pontos de parada antes de chegarem ao destino, e qual a velocidade média
atingida durante o translado?
Para responder a esse tipo de consulta, é necessário processar as paradas e
os movimentos. Para isso, podem ser utilizados os tipos de dados StopType e
MoveType. Através deles, é possível mapear o local de origem e destino da
trajetória, além das paradas realizadas durante o percurso, e a média de velocidade
atingida na viagem. Com a informação da origem e destino da trajetória é possível
saber a distância do deslocamento das aves.
As informações que podem ser obtidas em cada tipo de dado identificado são:
 StopType - A localização geo-referenciada do local de origem e destino da
trajetória, e os pontos de descanso; e
 MoveType - A média da velocidade atingida.
O esquema lógico usado para este cenário foi modelado com cinco anotações
semânticas (e. g. comportamento, atividade, objetivo, evento e ambiente), além dos
episódios (paradas e movimentos). Este esquema é apresentado na Figura 16, que
ilustra os dados usados para solucionar consultas sobre trajetórias semânticas da
aplicação de monitoramento de pássaros.
Fonte: O Autor.
Figura 16 - Esquema lógico do monitoramento de pássaros.
75
76
Na Figura 16, as entidades Comportamentos, Objetivos, Atividades,
EstadoAmbiente e Eventos representam os tipos de dados sobre anotações
semânticas, que foram incluídas hipoteticamente ao esquema lógico deste cenário.
A entidade Migração equivale à trajetória, a entidade Passaro é relativa ao objeto
móvel, e a entidade LocalizacaoEspacial refere-se às paradas realizadas pelos
pássaros em uma dada região, onde cada instância de parada é representada pelo
tipo de dado StopType.
5.5. Cenário 2: Gerenciamento de Transporte Público
Este exemplo de aplicação utiliza dados referentes ao gerenciamento de
transporte público. Este gerenciamento visa facilitar o cotidiano das pessoas em
relação à locomoção das mesmas por meio dos ônibus. Na Seção 5.5.1, são listados
os dados das trajetórias dos ônibus, além de algumas considerações sobre estes
dados. Por fim, na Seção 5.5.2, é mostrada a aplicação dos tipos de dados criados
para o gerenciamento de transporte público, por meio da listagem de um conjunto de
consultas possíveis sobre estes dados.
5.5.1. Trajetórias de Ônibus
A base de dados usada neste exemplo de aplicação contém registros de
trajetórias de ônibus, e cada registro possui as seguintes informações: itinerário,
características dos veículos, localização de cada transporte terrestre durante os
trajetos, dentre outras. Para exibir a aplicabilidade dos tipos de dados semânticos
desenvolvidos para este trabalho, as anotações semânticas foram associadas de
forma hipotética e aleatória a alguns registros relacionados ao gerenciamento de
rotas de ônibus. A Figura 17 ilustra a tabela de armazenamento das informações
sobre os trajetos dos ônibus de um sistema de transporte público.
77
Figura 17 - Estrutura de uma das tabelas de armazenamento dos trajetos dos
ônibus.
Empresa
SPA
NLinha
718
NSerie
14379
Latitude
-8,02418
Longitude
-34,893
...
...
DataHora
2012-08-05 23:59:20.833000
SPA
742
94308
-8,02425
-34,8936
...
2012-08-05 23:59:21.890000
GLO
622
149575
-7,98932
-34,934
...
2012-08-05 23:59:22.220000
GLO
623
149098
-8,01134
-34,9345
...
2012-08-05 23:59:22.877000
...
...
...
...
...
...
...
CDA
960
1828
-7,91238
-34,8231
...
2012-08-05 23:59:23.977000
Fonte: SALGADO et. al., 2011.
5.5.2. Exemplos de Consultas
Para este exemplo de aplicação, os dados de trajetórias dos ônibus foram
analisados como segue: o objeto móvel é o ônibus, a trajetória corresponde às
viagens dos ônibus, e a localização geoespacial de cada objeto móvel (ônibus)
consiste nas coordenadas de latitude e longitude. As coordenadas foram
representadas pela geometria do tipo Ponto. Os dados sobre o tráfego dos
transportes públicos têm informações apenas espaço-temporais. Por isso, eles foram
hipoteticamente associados a informações semânticas por meio da instanciação de
alguns dos tipos de dados propostos neste trabalho.
A movimentação de veículos aumenta de forma gradativa nas grandes
cidades, devido, principalmente, ao crescimento do número de veículos nas vias,
dificultando o tráfego de transportes públicos, e dos demais. Os tipos de dados
semânticos propostos por este trabalho podem ajudar na aquisição de informações
sobre os transtornos causados no serviço de transporte público. Esses tipos de
dados são capazes de auxiliar na resolução de perguntas, tais como:
Consulta 1: Quais foram os pontos de retenção do tráfego, qual o tempo médio
desperdiçado nesses pontos, e qual a razão da retenção?
Para adquirir a resposta para esta consulta, é necessário identificar os locais
em que os ônibus ficaram retidos no trânsito, e o tempo gasto por eles nestes locais,
além do motivo pelo qual os mesmos ficaram retidos. Para isso, podem ser utilizados
os tipos de dados StopType, o NoteGoalType e o NoteEventType.
78
As informações que podem ser obtidas a partir de cada tipo de dado usado neste
exemplo são:
 StopType - Identifica os locais em que os ônibus permaneceram parados, ou
em baixa velocidade, dependendo da aplicação;
 NoteEventType - Informa a situação que ocasionou retenção do ônibus, por
exemplo: congestionamento, manifestação pública, ônibus quebrado, dentre
outros; e
 NoteGoalType - Indica se o ônibus se reteve no trânsito devido a algum
motivo programado, tal como: esperando um grupo de passageiros, ou por
qualquer outro objetivo.
Consulta 2: Quais são as cinco piores linhas de ônibus que mais se atrasam em
suas viagens, e por que?
Para responder essa consulta, é preciso mapear as viagens das cinco linhas
de ônibus e verificar se houve algum problema durante as viagens. Para isso, é
necessário usar os tipos de dados MoveType e NoteEventType.
A solução desta consulta pode ser obtida pelo uso dos seguintes tipos de dados:
 MoveType - Indica as viagens de cada ônibus e o tempo gasto em cada
viagem.; e
 NoteEventType - Informa se houve algum problema ao longo das trajetórias
de ida e volta dos ônibus alocados para as cinco linhas.
Consulta 3: Qual a velocidade média atingida pelos ônibus que estiveram em
congestionamentos no dia 15 de Janeiro de 2013?
Para responder a esta consulta, devem ser mapeadas as viagens (trajetórias)
de ida e volta executadas pelos ônibus, identificando o tempo gasto em cada
viagem, e o comportamento de todos os ônibus monitorados. Para obter essas
informações podem ser utilizados os tipos de dados MoveType e NoteBehaviorType.
79
As informações que podem ser obtidas a partir de cada tipo de dado são:
 MoveType - Informa quanto tempo durou cada trajetória de ônibus e a
velocidade média entre as trajetórias; e
 NoteBehaviorType - Indica os comportamentos executados pelos ônibus que
foram significativos para a média de velocidade atingida.
Consulta 4: Por que os ônibus necessitam de ar-condicionado, e quais as viagens
em que se tem uma temperatura não satisfatória para os passageiros dos ônibus?
Qual a média da temperatura do ambiente entre os horários de 07h00min e
16h00min e qual a duração de cada viagem neste horário?
As pessoas que dependem de ônibus para trabalhar, estudar, passear, dentre
outras atividades, podem chegar ao destino com certo grau de stress. A causa para
esse problema, pode ser a temperatura interna dos transportes públicos, pois além
de não serem climatizados, costumam transportar as pessoas com a lotação máxima
ultrapassada, aumentando ainda mais a temperatura interna destes veículos. Para
responder a esta consulta, é preciso obter informações sobre o estado do ambiente
externo e interno dos ônibus e as viagens executadas pelo mesmo no período de
07h00min às 16h00min. Para isso, podem ser usados os tipos de dados
NoteEnvironmentType e o MoveType.
As informações que podem ser obtidas de cada tipo de dado são:
 MoveType - Indica o intervalo de tempo de cada viagem executada pelo
ônibus para que possa ser identificada em que momento da viagem a
temperatura do ambiente é maior; e
 NoteEnvironmentType - Informa a temperatura do ambiente em um dado
instante ou período de tempo.
Consulta 5: Qual o tempo médio desperdiçado de um ônibus nos trajetos de ida nos
fins de semana do mês de março, e qual a temperatura do ambiente no momento de
cada parada?
80
Para responder a esta consulta, devem ser identificados os momentos em
que o ônibus permaneceu parado durante toda a semana, e constatar a temperatura
interna do ônibus. Para isso, podem ser usados os tipos de dados StopType,
MoveType e NoteEnvironmentType.
As informações que podem ser obtidas por cada tipo de dado são:
 StopType - Informa todas as paradas realizadas pelo ônibus durante os fins
de semana, e o tempo gasto em cada parada;
 MoveType - Informa o tempo total da duração de cada trajeto de ida e volta do
ônibus nos fins de semana; e
 NoteEnvironmentType - Indica a temperatura do ambiente no momento de
cada parada do ônibus.
O esquema lógico adotado para este cenário foi modelado com as seguintes
anotações semânticas (e. g. comportamento, atividade, objetivo, evento e ambiente),
incluindo os episódios de paradas e movimentos. Este esquema é mostrado na
Figura 18. Esta Figura ilustra os dados usados para resolver as consultas sobre
gerenciamento de transporte público que ilustram a aplicação dos tipos de dados
semânticos propostos nesta dissertação.
81
Figura 18 - Esquema lógico de gerenciamento de transporte público.
Fonte: O Autor
Na Figura 18, as entidades ComportamentosTransito, Objetivos, Atividades,
EstadoAmbiente e Eventos correspondem aos tipos de dados relativos às anotações
semânticas, que foram incluídas hipoteticamente ao esquema lógico deste cenário.
A entidade Trajetos equivale à trajetória, a entidade Onibus se refere ao objeto
móvel, e LocalizacaoEspacial está associada às paradas realizadas pelos ônibus
durante os trajetos de ida e volta. Cada instância de parada é representada pelo tipo
de dado StopType. A entidade Categoria informa se o ônibus é normal ou
intercalado, e a entidade Direção registra se o trajeto é de ida ou de retorno.
5.6. Conclusões
Este capítulo apresentou o uso dos tipos de dados semânticos, manipulados
através da API DBST, que foi desenvolvida para auxiliar o desenvolvedor na criação
de trajetórias semãnticas para o SGBD PostgreSQL/Postgis e que estão descritos
no Capítulo 4.
A ilustração do uso da API DBST e dos tipos de dados propostos por este
trabalho foi realizada para dois domínios de aplicação: monitoramento de trajetórias
82
de pássaros e gerenciamento de transporte público. Para cada um dos domínios, foi
dada a descrição do cenário, dos dados usados e das consultas que podem ser
realizadas com os tipos de dados semânticos desenvolvidos para este trabalho
dissertativo.
Os dados originais de ambos cenários de aplicação possuíam apenas
informações espaço-temporais. Por isso, ambos cenários foram enriquecidos
hipoteticamente com informações semânticas, com a finalidade de possibilitar
consultas específicas de um dado domínio. Tais consultas foram definidas nos
domínios de aplicação para exemplificar o uso dos tipos de dados semânticos
propostos e da API DBST em aplicações de domínios distintos.
Para exibir o uso da API DBST com os tipos de dados semânticos criados
para o SGBD PostgreSQL/Postgis, foi realizada a preparação do ambiente de
desenvolvimento, com a escolha de uma IDE onde a API DBST foi importada em
conjunto com a API do Postgis. Além disso, foi realizada a preparação de um BD no
PostgreSQL/Postgis. Os esquemas lógicos dos cenários utilizados como exemplo de
uso, foram gerados pela ferramenta de modelagem de dados DBDesign (MARÇULA,
M. 2010) e estão listados no Apêndice A. No próximo capítulo, são apresentadas as
conclusões
gerais
deste
trabalho
dissertativo,
contribuições e indicações de trabalhos futuros.
destacando
suas
principais
Capítulo
6
Conclusões
Este capítulo apresenta as considerações finais sobre este trabalho dissertativo, abordando
um resumo do trabalho realizado, as principais contribuições e a indicação de pesquisas
futuras.
84
6.1. Considerações Finais
A pesquisa na área de trajetórias de objetos móveis cresce de forma
gradativa. Esse crescimento é maior nas áreas de modelagem de dados de
trajetória, processamento e enriquecimento semântico de trajetórias brutas (YAN et.
al., 2012). No segmento de modelagem de dados, pode-se citar os trabalhos de
Vaisman et. al. (2007), Baris et. al. (2008), Bogorny et. al. (2013) e Spaccapietra et.
al. (2008). Na categoria de processamento de dados de trajetórias, diversos
trabalhos foram propostos, tais como: Fajardo (FAJARDO, B. S., 2008), Li et. al. (LI
et. al., 2010), Giannotti et. al. (GIANNOTTI et. al., 2007). Para o enriquecimento
semântico de trajetórias, existem, dentre outros, os trabalhos de Li et. al. (2010) e
Loy et. al. (2011).
No entanto, foi identificada a falta de SGBD disponíveis no
mercado e na academia que permitam a representação e manipulação de trajetórias
semânticas.
Para oferecer suporte ao desenvolvimento de aplicações de trajetórias
semânticas em domínios distintos, este trabalho dissertativo propõe novos tipos de
dados capazes de representar informações de trajetórias semânticas no SGBD
PostgreSQL/Postgis. Além disso, foi desenvolvida uma API denominada de API
DBST que tem a finalidade de facilitar a manipulação desses tipos de dados pelo
desenvolvedor. Portanto, foram mapeados os aspectos de mobilidade para
possibilitar o enriquecimento semântico dos dados de uma dada trajetória de objetos
móveis, tais como: evento, comportamento, objetivo, meio de transporte, ambiente e
atividade. Ademais, foram incluídos os tipos de episódios de paradas e movimentos,
além da representação de trajetórias brutas e semânticas.
O uso dos novos tipos de dados propostos por esta dissertação independe do
uso da API DBST. Contudo, o uso da API DBST implica no uso dos tipos de dados
semânticos por meio de recursos (classes, funções) disponibilizados pela API. Eles
correspondem aos tipos de dados de representação de trajetórias semânticas
propostos neste trabalho dissertativo. Este trabalho não tem como escopo a
extração das informações semânticas, mas sim o armazenamento delas no SGBD
PostgreSQL/Postgis. A extração de semântica a partir de trajetórias brutas pode ser
encontrada na definição de métodos de clusterização espacial (ALVARES et. al.,
85
2007, PALMA et. al., 2008, ROCHA et. al., 2010,) que são capazes de extrair
informações sobre as paradas e os movimentos realizados pelo objeto móvel.
No Capítulo 5, a validação das ideias propostas neste documento foi realizada
pela construção de dois cenários distintos, onde é mostrado o uso conjunto da API
DBST com os tipos de dados que compõem uma trajetória semântica: um cenário
referente ao gerenciamento de transporte público; e outro ao monitoramento de
pássaros. É importante notar que o uso destes tipos de dados não é obrigatório. Isto
ocorre porque, nem sempre é importante para uma dada aplicação relacionar
semântica a uma parada e/ou um movimento de uma trajetória bruta.
6.2. Principais Contribuições
Esta seção apresenta as principais contribuições deste trabalho dissertativo.

Criação de novos tipos de dados para representação de trajetórias
semânticas
Neste trabalho, foram especificados onze tipos de dados que compõem uma
trajetória semântica qualquer. Esses tipos foram classificados em três categorias
como segue: Episódios (Paradas e Movimentos), Trajetória (Trajetória Semântica e
Bruta), e as Anotações Semânticas (Atividades, Meio de Transporte, Ambiente,
Objetivo, Comportamento e Evento). Esses tipos foram criados para estender o
SGBD PostgreSQL/Postgis.

Desenvolvimento de uma API
Foi desenvolvida uma API denominada de DBST, com a finalidade de facilitar
o uso dos tipos de dados que compõem as trajetórias semânticas. Para isso, foram
implementadas na API, as classes correspondentes aos tipos de dados aqui
sugeridos para o SGBD PostgreSQL/Postgis.
6.3. Limitações
Nesta seção são apresentadas as limitações deste trabalho dissertativo como
segue.

A API DBST e os novos tipos de dados propostos por este trabalho
86
oferencem suporte apenas ao SGBD PostgreSQL/Postgis; e

Não foram definidos operadores para uma linguagem de consulta sobre
trajetórias semânticas.
6.4. Trabalhos Futuros
Esta seção apresenta as sugestões de pesquisas futuras como continuação
do trabalho descrito nesta dissertação.

Extensão dos tipos de dados propostos por este trabalho para
outros SGBD.
Este trabalho tem como proposta a criação de novos tipos de dados para
representação de trajetórias semânticas. Porém, estes tipos foram desenvolvidos
apenas para o SGBD PostgreSQL/Postgis. Com a extensão desses tipos para
outros SGBD, poderá abranger mais usuários, pois cada desenvolvedor e/ou
empresa tem preferências ou necessidades de utilizar determinado SGBD.

Portabilidade da API para outras linguagens de programação.
Para facilitar o uso dos novos tipos de dados propostos neste trabalho foi
desenvolvida uma API na linguagem de programação Java. Atualmente na área de
desenvolvimento computacional, existem diversos perfis de desenvolvedores e
empresas do ramo, tais como: o uso de diversas linguagens de programação no
desenvolvimento de aplicações, e o uso de uma linguagem específica. Com a
portabilidade desta API para outras linguagens de desenvolvimento, o uso da
mesma será expandido, aumentando a flexibilidade em relação à linguagem de
programação a ser utilizada pelo desenvolvedor.

Portabilidade da API para outros SGBD.
A API DBST foi desenvolvida com funções específicas para o SGBD
PostgreSQL/Postgis. Com o refatoramento da mesma, fazendo com que ela
promova o suporte a outros SGBD, o desenvolvedor terá uma maior flexibilidade
87
para utilizar o SGBD que lhe seja de maior interesse no processo de
desenvolvimento de uma aplicação qualquer.
 Definir operadores para uma linguagem de consulta sobre trajetórias
semânticas.
A definição de operadores para realização de consultas sobre trajetórias
semânticas será relevante para o usuário. Com isso, ele poderá consultar as
informações armazenadas no BD através dos novos tipos de dados propostos por
este trabalho dissetativo.
88
Referências Bibliográficas
(COSTA, A. C. C, 2011) - COSTA, A. C. C., Modelos Dinâmicos Hierárquicos
Espaços-Temporais para Dados na Família Exponencial, Instituto de Matemática Departamento de Métodos Estatísticos, dissertação de mestrado, 2011.
(DIAS et. al., 2005) - DIAS, T. L., CÂMERA G., DAVIS. C. A., Modelos EspaçosTemporais, São José dos Campos, Bancos de dados geográficos, INPE-12832PRE/8122, 2005.
(EDELWEISS, N.; OLIVEIRA, J. P., 1994) - EDELWEISS, N.; OLIVEIRA, J. P. M.
Modelagem de aspectos temporais de sistemas de informação. Livro texto da Escola
de Computação. 9a Escola de Computação, Universidade Federal de Pernambuco,
Recife, 1994.
(RENOLEN, A., 1997) - RENOLEN, A. Conceptual modelling and spatiotemporal
information systems: how to model the real world. In: 6th SCANDINAVIAN
RESEARCH CONFERENCE ON GIS (SCANGIS’97), Estocolmo, 1997.
(LANGRAN, G. 1993) - LANGRAN, G. Time in Geographic Information Systems.
London/Washington, DC: Taylor & Francis. 189p.,1993.
(BOGORNY, V., 2008) - BOGORNY, V., Trajetórias de objetos móveis: você já
pensou que pode estar sendo monitoriado?, Information society Tecnologies, UFSC,
acessado
em
20/12/2012:
http://www.google.com.br/url?sa=t&rct=j&q=Aula7-
Trajetorias+&source=web&cd=1&ved=0CDAQFjAA&url=http%3A%2F%2Fwww.inf.uf
sc.br%2F~bosco%2Fensino%2Fine6406%2FUbiComp%2FAula7Trajetorias.ppt&ei=8kTkUKayNInK9gTPjYHoBg&usg=AFQjCNEy8w5g9X5qvqui17H
wQCbjLxjoTg&bvm=bv.1355534169,d.eWU&cad=rja
89
(SILVA, M. C. T, 2009) - SILVA, M. C. T., ETL: Uma ferramenta de ETL para
Trajetórias de objetos móveis, Universidade Federal de Pernambuco – UFPE,
Monografia de Graduação, Recife, 2009.
(SPACCAPIETRA, S., 2009) SPACCAPIETRA, S., Semantic Trajectories, SeCoGIS,
École Polytechnique Fedérale de Lausanne, Gramado, 2009.
(FAJARDO, B. S., 2008) - FAJARDO, B. S., Uma extensão nativa do sql para
minaração de trajetória semântica, Information society Tecnologies, Universidade
Federal do Rio Grande do Sul – UFRS, Monografia de graduação, Posto Alegre,
2008.
(SPACCAPIETRA et. al., 2008) - SPACCAPIETRA, S., PARENT, C.; DAMIANI, M.
L.; MACEDO, J. A., PORTO, F.; VANGENOT, C. A conceptual view on trajectories.
Data Knowl. Eng., 65(1), 126–146, 2008.
(SPACCAPIETRA, et. al., 2007) - SPACCAPIETRA, S.; PARENT, C.; ZIMÁNYI,
E., Spatio-Temporal and Multi-Representation Modeling: A Contribution to Active
Conceptual Modeling, in Active Conceptual Modeling for Learning, LNCS 4512,
2007.
(YAN et. al., 2011) - YAN, Z.; CHAKRABORTY, D.; PARENT, C.; SPACCAPIETRA,
S., and ABERER, K. Semitri: a framework for semantic annotation of heterogeneous
trajectories. In Proceedings of the 14th International Conference on Extending
Database Technology, EDBT/ICDT '11, pages 259-270, New York, NY, USA. ACM,
2011.
(SILVA, M. C. T., 2012) SILVA, M. C. T, Um Modelo Conceitual para Data
Warehouse Semântico de Trajetórias, Universidade Federal de Pernambuco –
UFPE, dissertação de mestrado do centro de informática, Recife, 2012.
(YAN et. al., 2010) - YAN, Z.; PARENT, C.; SPACCAPIETRA, S., and
CHAKRABORTY, D. A hybrid model and computing platform for spatio-semantic
trajectories. In Proceedings of the 7th international conference on The Semantic
Web: research and Applications - Volume Part I, ESWC'10, pages 60–75, Berlin,
Heidelberg. Springer-Verlag, 2010.
90
(SPACCAPIETRA et. al., 1998) - SPACCAPIETRA, S.; ZIMANYI, E.; DONINI, P.;
PLAZANET, C.; VAGENOT, C.; PARENT, C., Modeling Spatial Data in the MADS
Conceptual Model; Published in: Proc. of the 8th Int. Symp. on Spatial Data
Handling, 1998.
(JUN et. al., 2006) - JUN, J., GUENSLER, R., AND OGLE, J. 2006)
JUN, J.,
GUENSLER, R., AND OGLE, J. 2006. Smoothing Methods to Minimize Impact of
Global Positioning System Random Error on Travel Distance, Speed, and
Acceleration Profile Estimates. Transportation Research Record: Journal of the
Transportation Research Board, 1972.
(PARENT et. al., 2013) - PARENT, C. ; SPACCAPIETRA, S. ; RENSO, C. ;
ADRIENKO, G. ; ADRIENKO, N. ; BOGORNY, V. ; Damiani, M. L. ; GKOULALASDIVANIS, A. ; MACEDO, J. A. F. ; PELEKIS, N. ; THEODORIDIS, Y. ; Yan, Z .
Semantic Trajectories Modeling and Analysis. ACM Computing Surveys, v. 45, p. 138, 2013.
(FRAGA et. al., 2011) - FRAGA, J. S. e COELA, R. A. V, Uma API Java para Acesso
a Banco de Dados Relacional usando o OGSA-DAÍ, Universidade Estadual do Mato
Grosso do Sul, monografia de graduação, 2011.
(ALVARES et. al., 2007) - ALVARES, L.; BOGORNY, V.; KUIJPERS, B.; VAISMAN,
A; MACEDO, J; MELANS, B., A Model for Enriching Trajectories with Semantic
Geographical Information, In: Proc. Of the ACM 15th International Symposium on
Advances in Geographic Information Systems, Seattle, Washington, 2007.
(ALMEIDA, et. al., 2011) - ALMEIDA, C. A. S.; PIRES, C.E.; SCHIEL, U. Um Modelo
de Dados para Trajetórias de Objetos Móveis com suporte a Agregação de
Movimentos. Revista Brasileira de Sistemas de Informação (iSys), Vol. 4. 2011.
(LOY et. al. 2011) - LOY, A. M.; BOGORNY, V.; RENSO, C.; ALVARES, L. O. Um
algoritmo para identificar padrões comportamentais tipo avoidance, Instituto de
Informática – Universidade Federal do Rio Grande do SUL – UFRGS, GEOINFO,
Campos do Jordão, 2011.
91
(LOY, A. M. 2011) - LOY, A. M., identificando padrões comportamentais do tipo
avoidence em trajetórias de objetos móveis, Instituto de Informática – Jornal of the
Brasilian Computer Society Volume 17, Number 3, p. 193-203. 2011.
(YI, B. 2004) - YI, B. Um modelo de dados para objetos móveis, Instituto da
computação – Universidade Estadual de Campinas - UNICAMP, dissertação de
mestrado, São Paulo, 2004.
(PALMA et. al., 2008) - PALMA, A. T., BOGORNY, V., KUIJPERS, B., and
ALVARES, L. O. A clustering-based approach for discovering interesting places in
trajectories. In Proceedings of the 2008 ACM symposium on Applied Computing,
SAC'08, (December), 863, 2008.
(ROCHA et. al., 2010) - ROCHA, J. A. M. R., TIMES, V. C., OLIVEIRA, G.,
ALVARES, L. O., and BOGORNY, V. Db-smot: A direction-based spatio-temporal
clustering method. In IEEE Conf. of Intelligent Systems, pages 114–119. IEEE, 2010.
(ALVARES et. al., 2007) - ALVARES, L. O.; BOGORNY, V.; KUIJPERS, B.
MACEDO, J. A. F.; MOELANS, B.; VAISMAN, A. A model for enriching trajectories
with semantic geographical information. In Proceedings of the 15th annual ACM
international symposium on Advances in geographic information systems, GIS '07,
pages 22:1–22:8, New York, NY, USA. ACM, 2007.
(MEDEIROS et. al., 1996) - MEDEIROS, C. M. B.; CÂMERA, G.; CASANOVA, M. A.;
HEMERLY, A. S.; MAGALHÃES, G. C. Anatomia de Sistemas de Informação
Geográfica. Instituto de Computação – UNICAMP, Divisão de Processamento de
Imagens – INPE, Centro Latino Americano de Soluções para Educação Superior e
Pesquisa - IBM Brasil, Departamento de Sistemas de Operação - CPqD/TELEBRÁS.
Rio de Janeiro, abril de 1996.
(BOULMAKOUl et. al., 2012) - BOULMAKOUl, A.; Karim, L.; Lbath, A., Moving
Object Trajectories Meta-Model and Spatial-Temporal Queries. International Journal
of Database Management Systems ( IJDMS ) Vol.4, No.2, April 2012.
92
(UI, B. 2004) - UI, B. Um Modelo de Dados para Objetos Móveis, Instituto de
computação, Universidade Estadual de Campinas – IC-UNICAMP, GEOINFO, São
Paulo, 9 de Junho de 2004.
(BOGORNY et. al., 2013) - BOGORNY, V. ; RENSO, C. ; AQUINO, A. ; SIQUEIRA,
F. L. ; ALVARES, L. O. . CONSTAnT - A Conceptual Data Model for Semantic
Trajectories of Moving Objects. Transactions in GIS (Print) v. 10, p. n/a-n/a, 2013;
ISSN/ISBN: 13611682.
(LEE et. al., 2008) - LEE, J.; HAN, J.; LI, X.; and GONZALEZ, H. TraClass: trajectory
classiFIcation using hierarchical region-based and trajectory-based clustering.
PVLDB, 1(1):1081-1094, 2008.
(CAO et. al., 2007) - CAO, H.; MAMOULIS, N.; and CHEUNG, D. W. Discovery of
periodic patterns in spatiotemporal sequences. IEEE Trans. Knowl. Data Eng.,
19(4):453-467, 2007.
(GIANNOTTI et. al., 2007) - GIANNOTTI, F.; NANNI, M.; PINELLI, F.; and
PEDRESCHI, D. Trajectory pattern mining. In Pavel Berkhin, Rich Caruana, and
Xindong Wu, editors, KDD, pages 330-339. ACM Press, 2007.
(LI et. al., 2010) – LI, Z.; DING, B.; HAN, J.; KAYS, R.; and NYE, P. Mining periodic
behaviors for moving objects. In Rao B,Krishnapuram B, Tomkins A, and Yang Q,
editors, KDD, pages 1099-1108. ACM, 2010.
(NANNI et. al., 2008) – NANNI, M.; KUIJPERS, B.; KORNER, C.; MAY, M. and
PEDRESCHI D. Spatiotemporal data mining. In Giannotti, F. and Pedreschi, D.,
editors, Mobility, Data Mining and Privacy, pages 267-296. Springer, 2008.
(ESRI, 2004) - ESRI, Understandong ArcSDE, 380 New York Street, Redlands, CA
92373-8100, USA, United States of America. 2004
(FERREIRA, K. R. 2003) - FERREIRA, K. R. Interface para operações espaciais em
banco de dados geográficos. Ministério da ciência e tecnologia – Instituto Nacional
de Pesquisa Espacial – INPE. Dissertação de Mestrado em Computação Aplicada,
São José dos Campos, São Paulo, 2003.
93
(YAN et. al., 2012) - YAN, Z.; CHAKRABORTY, D.; PARENT, C.; SPACCAPIETRA,
S.; ABERER, K. Semantic Trajectories: Mobility Data Computation and Annotation.
ACM Transactions on Intelligent Systems and Technology, Vol. 9, No. 4, Article 39,
Publication date: March 2012.
(BARROS, R. C. 2012) - BARROS, R. C. Uma Abordagem de Raciocínio Espacial
em Lógica de descrições. Programa de Pós-graduação em ciência da computação,
Centro de Informática da Universidade Federal de Pernambuco (Cin-UFPE),
RECIFE, Agosto 2012.
(MURRAY et. al., 2006) - MURRAY, C.; ABUGOV, D.; ALEXANDER, N.;
BLACKWELL, B.; BLOWNEY, J.; GERINGER, D.; GODFRIND, A.; HORHAMMER,
M.; KOTHURI, R.; PITTS, R.; RAO, V.; RAVADA, S.; WANG, J.; YANG, J. Oracle
Spatial User’s Guide and Reference, 10g Release 2 (10.2), B14255-03 , Março de
2006
(VAISMAN et. al., 2007) - VAISMAN, A.; ALVARES, L. O.; BOGORNY, V.;
MACEDO, J. A. F.; MOLEANS, B. A model for enriching trajectories with semantic
geographical information. Published in: GIS '07 Proceedings of the 15th annual ACM
international symposium on Advances in geographic information systems, Article No.
22, ISBN: 978-1-59593-914-2, ACM New York, NY, USA, 2007
(GUTING et, al., 2011) - GUTING, R. H.; ANSORGE, D.; BEHR, T.; DUNTGEN, C.;
JANDT, S.; SPIEKERMANN, M. SECONDO – User Manual v.1.
Faculty for
Mathematics and Computer Sience, Database Systems for New Applications, Hagen,
Germany, 2011
(MORENO et. al., 2010) - MORENO, B. ; TIMES, V. C. ; RENSO, C. ; BOGORNY,
V. . Looking inside the stops of trajectories of moving objects. In: Simpósio Brasileiro
de Geoinformatica, 2010, Campos do Jordão. SBC. São José dos Campos: INPE,
2010. p. 9-20.
(VINHAS, L. e FERREIRA, K. R., 2005) - VINHAS, L. e FERREIRA, K. R., Banco de
Dados geográficos. Ministério da ciência e tecnologia – Instituto Nacional de
94
pesquisa Espacial – INPE. Dissertação de Mestrado em Computação Aplicada São
José dos Campos, São Paulo, 2005: INPE-12837-PRE/8127.
(BARIS et. al., 2008) - BARIS, G, MAY, M.; SAYGIN, Y.; KORNER, C. Semantic
Annotation of GPS Trajectories. th AGILE International Conference on Geographic
Information Science. University of Girona, Spain, 2008.
(SALGADO et. al., 2011) - SALGADO, A. C.; TEDESCO, P.; DOHERTY, M. J.;
RISTAR, A. R. R.; SANTOS, L. M.; TITO, A. O. UbiBus: Um Sistema de Informações
Inteligentes para Transporte Público. Centro de Informática – Universidade Federal
de Pernambuco (UFPE), Recife, PE, Brasil, 2011.
(BOCK , H. 2011) - BOCK , H. The Definitive Guide to NetBeans™ Platform 7. ISBN13:
978-1-4302-4101-0, Publication Date: December 28, 2011.
(MAIA, R. 2004) - MAIA, R. A linguagem C++, TecGraf/PUC-Rio, Novembro de 2004.
(MARÇULA, M. 2010) - MARÇULA, M. DBDesigner 4. Fabulous Force Database
Tools, Tutorial de Banco de Dados. Março de 2010.
(GONÇALVES E. 2006) - GONÇALVES, E. DOMINANDO ECLIPSE - Tudo que o
Desenvolvedor Java precisa para criar Aplicativos para Desktop. ISBN: 8573934867,
ISBN-13: 9788573934861. 1ª Edição, Editora: Ciência Moderna. Pág. 326, 2006.
(STOIZE, K. 2005) - STOIZE, K. DB2 Spatial Extender performance tuning. IBM
Corporation. Acessado em 25/12/2012.
http://www.ibm.com/developerworks/data/library/techarticle/dm-0510stolze/. Outubro
de 2005.
(ANDERSON et. al., 2001) -. Anderson, J; Ashkenas, D. Working with the Geodetic
and Spatial DataBlade Modules. IBM Corporation. Acessado em 25/12/2012.
http://www.ibm.com/developerworks/data/zones/informix/library/techarticle/ids_geo_s
patial.html. Dezembro de 2001.
(MISTRY, R. e MISNER, S. 2010) - MISTRY, R; MISNER, S. Introducing Microsoft
SQL Server 2008 R2. Published by Microsoft Press – A Division of Microsoft
95
Corporation. Redmond, Washington 98052-6399. Ed. Online Training Solutions, Inc.
2010.
(MAHER, M M. 2010) - MAHER, M M. Living Up Data in Arcgis – A Guide to Map
Projections. ISBN-10: 1589482492. ISBN-13: 978-1589482494. Published by
ESRI Press. Pág. 200, Junho 2010.
96
Apêndice
A
Scripts DDL PostgreSQL/Postgis
Cenário 1 – Gerenciamento de Trajetória de Pássaros
CREATE TABLE ATIVIDADE (
ID SERIAL NOT NULL,
LOCALIZACAOESPACIAL_ID INTEGER NOT NULL,
ACAO NoteActivateType,
CONSTRAINT PK_ATIVIDADE PRIMARY KEY (ID)
);
CREATE INDEX IXFK_ATIVIDADE_1_LOCALIZACAOESPACIAL_ID ON ATIVIDADE
(LOCALIZACAOESPACIAL_ID);
CREATE TABLE COMPORTAMENTOS (
ID SERIAL NOT NULL,
MIGRACAO_ID INTEGER NOT NULL
COMPORTAMENTO NoteBehaviorType,
CONSTRAINT PK_COMPORTAMENTOS PRIMARY KEY (ID)
);
CREATE INDEX IXFK_COMPORTAMENTOS_1_MIGRACAO_ID ON COMPORTAMENTOS
(MIGRACAO_ID);
CREATE TABLE EVENTO (
ID SERIAL NOT NULL,
LOCALIZACAOESPACIAL_ID INTEGER NOT NULL
ACONTECIMENTO NoteEventType,
CONSTRAINT PK_EVENTO PRIMARY KEY (ID)
);
CREATE INDEX IXFK_EVENTO_1_LOCALIZACAOESPACIAL_ID ON EVENTO
(LOCALIZACAOESPACIAL_ID);
CREATE TABLE OBJETIVOS (
ID SERIAL NOT NULL,
MOTIVACAO NoteGoalType,
CONSTRAINT PK_OBJETIVOS PRIMARY KEY (ID)
);
CREATE TABLE PASSARO (
ID SERIAL NOT NULL,
NAME VARCHAR(20),
CONSTRAINT PK_PASSARO PRIMARY KEY (ID)
97
);
CREATE TABLE REGIAO (
ID SERIAL NOT NULL,
PAIS VARCHAR(50),
ESTADO VARCHAR(30),
CONSTRAINT PK_REGIAO PRIMARY KEY (ID)
);
CREATE TABLE ESTADOAMBIENTE (
ID SERIAL NOT NULL,
AMBIENTE NoteEnvironmmentType,
CONSTRAINT PK_ESTADOAMBIENTE PRIMARY KEY (ID)
);
CREATE TABLE LOCALIZACAOESPACIAL (
ID SERIAL NOT NULL,
REGIAO_ID INTEGER NOT NULL,
ESTADOAMBIENTE_ID INTEGER NOT NULL
LOCALIZACAO StopType,
CONSTRAINT PK_LOCALIZACAOESPACIAL PRIMARY KEY (ID)
);
CREATE INDEX IXFK_LOCALIZACAOESPACIAL_1_ESTADOAMBIENTE_ID ON
LOCALIZACAOESPACIAL (ESTADOAMBIENTE_ID);
CREATE INDEX IXFK_LOCALIZACAOESPACIAL_2_REGIAO_ID ON LOCALIZACAOESPACIAL
(REGIAO_ID);
CREATE TABLE MIGRACAO (
ID SERIAL NOT NULL,
OBJETIVOS_ID INTEGER NOT NULL,
REGIAO_ID INTEGER NOT NULL,
DESLOCAMENTO MoveType,
CONSTRAINT PK_MIGRACAO PRIMARY KEY (ID)
);
CREATE INDEX IXFK_MIGRACAO_1_REGIAO_ID ON MIGRACAO (REGIAO_ID);
CREATE INDEX IXFK_MIGRACAO_2_OBJETIVOS_ID ON MIGRACAO (OBJETIVOS_ID);
CREATE TABLE MIGRACAO_HAS_PASSARO (
MIGRACAO_ID INTEGER NOT NULL,
PASSARO_ID INTEGER NOT NULL,
CONSTRAINT PK_MIGRACAO_HAS_PASSARO PRIMARY KEY (MIGRACAO_ID, PASSARO_ID)
);
CREATE INDEX IXFK_MIGRACAO_HAS_PASSARO_1_MIGRACAO_ID ON
MIGRACAO_HAS_PASSARO (MIGRACAO_ID);
CREATE INDEX IXFK_MIGRACAO_HAS_PASSARO_2_PASSARO_ID ON
MIGRACAO_HAS_PASSARO (PASSARO_ID);
ALTER TABLE ATIVIDADE
ADD CONSTRAINT FK_ATIVIDADE_LOCALIZACAOESPACIAL FOREIGN KEY
(LOCALIZACAOESPACIAL_ID)
REFERENCES LOCALIZACAOESPACIAL (ID);
ALTER TABLE COMPORTAMENTOS
ADD CONSTRAINT FK_COMPORTAMENTOS_MIGRACAO FOREIGN KEY (MIGRACAO_ID)
98
REFERENCES MIGRACAO (ID);
ALTER TABLE EVENTO
ADD CONSTRAINT FK_EVENTO_LOCALIZACAOESPACIAL FOREIGN KEY
(LOCALIZACAOESPACIAL_ID)
REFERENCES LOCALIZACAOESPACIAL (ID);
ALTER TABLE LOCALIZACAOESPACIAL
ADD CONSTRAINT FK_LOCALIZACAOESPACIAL_ESTADOAMBIENTE FOREIGN KEY
(ESTADOAMBIENTE_ID)
REFERENCES ESTADOAMBIENTE (ID);
ALTER TABLE LOCALIZACAOESPACIAL
ADD CONSTRAINT FK_LOCALIZACAOESPACIAL_REGIAO FOREIGN KEY (REGIAO_ID)
REFERENCES REGIAO (ID);
ALTER TABLE MIGRACAO
ADD CONSTRAINT FK_MIGRACAO_REGIAO FOREIGN KEY (REGIAO_ID)
REFERENCES REGIAO (ID);
ALTER TABLE MIGRACAO
ADD CONSTRAINT FK_MIGRACAO_OBJETIVOS FOREIGN KEY (OBJETIVOS_ID)
REFERENCES OBJETIVOS (ID);
ALTER TABLE MIGRACAO_HAS_PASSARO
ADD CONSTRAINT FK_MIGRACAO_HAS_PASSARO_MIGRACAO FOREIGN KEY (MIGRACAO_ID)
REFERENCES MIGRACAO (ID);
ALTER TABLE MIGRACAO_HAS_PASSARO
ADD CONSTRAINT FK_MIGRACAO_HAS_PASSARO_PASSARO FOREIGN KEY (PASSARO_ID)
REFERENCES PASSARO (ID);
Cenário 2 – Gerenciamento de Transportes Públicos
CREATE TABLE ATIVIDADE (
ID SERIAL NOT NULL,
LOCALIZACAOESPACIAL_ID INTEGER NOT NULL,
ACAO NoteActivateType,
CONSTRAINT PK_ATIVIDADE PRIMARY KEY (ID)
);
CREATE INDEX IXFK_ATIVIDADE_1_LOCALIZACAOESPACIAL_ID ON ATIVIDADE
(LOCALIZACAOESPACIAL_ID);
CREATE TABLE CATEGORIA (
ID SERIAL NOT NULL,
DESRICAO VARCHAR(20),
CONSTRAINT PK_CATEGORIA PRIMARY KEY (ID)
);
CREATE TABLE COMPORTAMENTOSTRANSITO (
ID SERIAL NOT NULL,
TRAJETOS_ID INTEGER NOT NULL,
COMPORTAMENTO NoteBehaviorType,
CONSTRAINT PK_COMPORTAMENTOSTRANSITO PRIMARY KEY (ID)
);
99
CREATE INDEX IXFK_COMPORTAMENTOSTRANSITO_1_TRAJETOS_ID ON
COMPORTAMENTOSTRANSITO (TRAJETOS_ID);
CREATE TABLE DIRECAO (
ID SERIAL NOT NULL,
IDA BOOLEAN,
CONSTRAINT PK_DIRECAO PRIMARY KEY (ID)
);
CREATE TABLE EVENTO (
ID SERIAL NOT NULL,
TRAJETOS_ID INTEGER NOT NULL,
LOCALIZACAOESPACIAL_ID INTEGER NOT NULL
ACONTECIMENTO NoteEventType,
CONSTRAINT PK_EVENTO PRIMARY KEY (ID)
);
CREATE INDEX IXFK_EVENTO_1_LOCALIZACAOESPACIAL_ID ON EVENTO
(LOCALIZACAOESPACIAL_ID);
CREATE INDEX IXFK_EVENTO_2_TRAJETOS_ID ON EVENTO (TRAJETOS_ID);
CREATE TABLE OBJETIVOS (
ID SERIAL NOT NULL,
MOTIVACAO NoteGoalType,
CONSTRAINT PK_OBJETIVOS PRIMARY KEY (ID)
);
CREATE TABLE REGIAODESTINO (
ID SERIAL NOT NULL,
TRAJETOS_ID INTEGER NOT NULL,
CIDADE VARCHAR(30),
BAIRRO VARCHAR(50)
CONSTRAINT PK_REGIAODESTINO PRIMARY KEY (ID)
);
CREATE INDEX IXFK_REGIAODESTINO_1_TRAJETOS_ID ON REGIAODESTINO (TRAJETOS_ID);
CREATE TABLE TRAJETOS (
ID SERIAL NOT NULL,
ESTADOAMBIENTE_ID INTEGER NOT NULL,
OBJETIVOS_ID INTEGER NOT NULL,
DIRECAO_ID INTEGER NOT NULL,
DESLOCAMENTO MoveType,
CONSTRAINT PK_TRAJETOS PRIMARY KEY (ID)
);
CREATE INDEX IXFK_TRAJETOS_1_DIRECAO_ID ON TRAJETOS (DIRECAO_ID);
CREATE INDEX IXFK_TRAJETOS_2_OBJETIVOS_ID ON TRAJETOS (OBJETIVOS_ID);
CREATE INDEX IXFK_TRAJETOS_3_ESTADOAMBIENTE_ID ON TRAJETOS
(ESTADOAMBIENTE_ID);
CREATE TABLE TRAJETOS_HAS_ONIBUS (
TRAJETOS_ID INTEGER NOT NULL,
ONIBUS_ID INTEGER NOT NULL,
CONSTRAINT PK_TRAJETOS_HAS_ONIBUS PRIMARY KEY (TRAJETOS_ID, ONIBUS_ID)
);
100
CREATE INDEX IXFK_TRAJETOS_HAS_ONIBUS_1_TRAJETOS_ID ON TRAJETOS_HAS_ONIBUS
(TRAJETOS_ID);
CREATE INDEX IXFK_TRAJETOS_HAS_ONIBUS_2_ONIBUS_ID ON TRAJETOS_HAS_ONIBUS
(ONIBUS_ID);
CREATE TABLE ESTADOAMBIENTE (
ID SERIAL NOT NULL,
AMBIENTE NoteEnvironmentType,
CONSTRAINT PK_ESTADOAMBIENTE PRIMARY KEY (ID)
);
CREATE TABLE LOCALIZACAOESPACIAL (
ID SERIAL NOT NULL
REGIAODESTINO_ID INTEGER NOT NULL
LOCALIZACAO StopType,
CONSTRAINT PK_LOCALIZACAOESPACIAL PRIMARY KEY (ID)
);
CREATE INDEX IXFK_LOCALIZACAOESPACIAL_1_REGIAODESTINO_ID ON
LOCALIZACAOESPACIAL (REGIAODESTINO_ID);
CREATE TABLE ONIBUS (
ID SERIAL NOT NULL,
CATEGORIA_ID INTEGER NOT NULL,
NAME VARCHAR(20),
NACENTOS INTEGER,
CAPACIDADEPASSAGEIROS INTEGER,
EMPRESA VARCHAR(20),
CONSTRAINT PK_ONIBUS PRIMARY KEY (ID)
);
CREATE INDEX IXFK_ONIBUS_1_CATEGORIA_ID ON ONIBUS (CATEGORIA_ID);
ALTER TABLE ATIVIDADE
ADD CONSTRAINT FK_ATIVIDADE_LOCALIZACAOESPACIAL FOREIGN KEY
(LOCALIZACAOESPACIAL_ID)
REFERENCES LOCALIZACAOESPACIAL (ID);
ALTER TABLE COMPORTAMENTOSTRANSITO
ADD CONSTRAINT FK_COMPORTAMENTOSTRANSITO_TRAJETOS FOREIGN KEY
(TRAJETOS_ID)
REFERENCES TRAJETOS (ID);
ALTER TABLE EVENTO
ADD CONSTRAINT FK_EVENTO_LOCALIZACAOESPACIAL FOREIGN KEY
(LOCALIZACAOESPACIAL_ID)
REFERENCES LOCALIZACAOESPACIAL (ID);
ALTER TABLE EVENTO
ADD CONSTRAINT FK_EVENTO_TRAJETOS FOREIGN KEY (TRAJETOS_ID)
REFERENCES TRAJETOS (ID);
ALTER TABLE REGIAODESTINO
ADD CONSTRAINT FK_REGIAODESTINO_TRAJETOS FOREIGN KEY (TRAJETOS_ID)
REFERENCES TRAJETOS (ID);
ALTER TABLE TRAJETOS
ADD CONSTRAINT FK_TRAJETOS_DIRECAO FOREIGN KEY (DIRECAO_ID)
REFERENCES DIRECAO (ID);
101
ALTER TABLE TRAJETOS
ADD CONSTRAINT FK_TRAJETOS_OBJETIVOS FOREIGN KEY (OBJETIVOS_ID)
REFERENCES OBJETIVOS (ID);
ALTER TABLE TRAJETOS
ADD CONSTRAINT FK_TRAJETOS_ESTADOAMBIENTE FOREIGN KEY (ESTADOAMBIENTE_ID)
REFERENCES ESTADOAMBIENTE (ID);
ALTER TABLE TRAJETOS_HAS_ONIBUS
ADD CONSTRAINT FK_TRAJETOS_HAS_ONIBUS_TRAJETOS FOREIGN KEY (TRAJETOS_ID)
REFERENCES TRAJETOS (ID);
ALTER TABLE TRAJETOS_HAS_ONIBUS
ADD CONSTRAINT FK_TRAJETOS_HAS_ONIBUS_ONIBUS FOREIGN KEY (ONIBUS_ID)
REFERENCES ONIBUS (ID);
ALTER TABLE LOCALIZACAOESPACIAL
ADD CONSTRAINT FK_LOCALIZACAOESPACIAL_REGIAODESTINO FOREIGN KEY
(REGIAODESTINO_ID)
REFERENCES REGIAODESTINO (ID);
ALTER TABLE ONIBUS
ADD CONSTRAINT FK_ONIBUS_CATEGORIA FOREIGN KEY (CATEGORIA_ID)
REFERENCES CATEGORIA (ID);
Download