Strabon

view README @ 1003:53ff1f55fa01

moved GeoSPARQL geometry properties from GeoConstants to GeoSPARQL
author Babis Nikolaou <charnik@di.uoa.gr>
date Fri Apr 05 22:47:32 2013 +0300 (2013-04-05)
parents a60fced07da5
children 0330ee642c7c
line source
1 Strabon
2 -----------
4 Introduction
5 ============
6 Strabon is a fully implemented semantic geospatial database system that can be
7 used to store linked geospatial data expressed in RDF and query them using an
8 extension of SPARQL. Strabon supports spatial selections, spatial joins, a rich
9 set of spatial functions similar to those offered by geospatial relational
10 database systems, support for multiple Coordinate Reference Systems and widely
11 used serializations for geometric objects such as WKT and GML. Strabon is built
12 on top of the well-known RDF store Sesame and extends Sesame’s components to be
13 able to manage thematic and spatial data that are stored in PostGIS.
15 The development of Strabon started in the context of European FP7 project
16 SemsorGrid4Env (Semantic Sensor Grids for Rapid Application Development for
17 Environmental Management) [http://www.semsorgrid4env.eu/]. Starting September
18 2011, Strabon is being utilized and extended with new functionalities in the
19 FP7 project TELEIOS (Virtual Observatory Infrastructure for Earth Observation
20 Data) [http://www.earthobservatory.eu/] which our group leads.
22 The query language of Strabon is called stSPARQL. stSPARQL can be used to query
23 data represented in an extension of RDF called stRDF. stRDF and stSPARQL have
24 been designed for representing and querying geospatial data that changes over
25 time (e.g., the growth of a city over the years due to new developments).
27 Currently, only the geospatial features of stSPARQL have been implemented fully.
28 The temporal features are the subject of current work.
30 Given the very close relationship between stSPARQL and GeoSPARQL which is a
31 recent OGC standard for an extension of SPARQL for querying geospatial metadata,
32 we recently provided support for the Core, Geometry and Geometry Topology
33 extension of GeoSPARQL.
36 Strabon Homepage
37 ================
38 The homepage of Strabon is at http://www.strabon.di.uoa.gr/.
41 Demo
42 ====
43 You can find a demo of the system Strabon at http://test.strabon.di.uoa.gr/NOA/.
46 Getting Started
47 ===============
48 To get started with Strabon please have a look at the tutorial for the stRDF
49 data model and stSPARQL query language, the User Guide, and the Developer Guide.
51 stRDF and stSPARQL tutorial
52 http://www.strabon.di.uoa.gr/files/stSPARQL_tutorial.pdf
55 stSPARQL Reference
56 ~~~~~~~~~~~~~~~~~~
57 The reference for the spatial and temporal extension functions defined in
58 stSPARQL can be found at http://www.strabon.di.uoa.gr/stSPARQL#spatial and
59 http://www.strabon.di.uoa.gr/stSPARQL#temporals respectively.
62 User Guide
63 ~~~~~~~~~~
64 Assuming that you are familiar with Maven, the following steps need to be
65 followed in order to use Strabon using Eclipse:
67 1. Install PostgreSQL from http://www.postgresql.org/download/. At the time of
68 this writing the latest PostgreSQL version is 9.1.
69 2. Install PostGIS from http://postgis.refractions.net/download/. At the time of
70 this writing we have tested Strabon with PostGIS 1.5.3.
71 3. Install Maven from http://maven.apache.org/download.html. At the time of this
72 writing the latest Maven version is 3.0.4.
73 4. Install Eclipse from http://www.eclipse.org/downloads/. At the time of this
74 writing the latest Eclipse version is 3.7.2.
75 5. Install the m2e plugin for Eclipse from http://www.eclipse.org/m2e/.
76 6. Install the MercurialEclipse plugin for Eclipse from
77 http://javaforge.com/project/HGE .
78 7. From Eclipse, go to File --> Import --> Mercurial --> Clone Existing
79 Mercurial Repository --> Next. In the URL textarea paste the following
80 URL: http://hg.strabon.di.uoa.gr/StrabonUser and then press Next --> Next -->
81 Finish. If you used the default settings, you should have a new project named
82 StrabonMain. Right click on the project and select Configure --> Convert to
83 Maven project. Eclipse will enable Maven dependency management for the
84 project, download any dependencies and build the project.
87 Storing stRDF graphs and evaluating stSPARQL queries
88 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
89 You can see some examples in the classes gr.uoa.di.strabon.example.PostgisExample
90 and gr.uoa.di.strabon.example.PostgisExample2.
92 Tuning PostgreSQL
93 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
94 The default settings of Postgres are rather conservative. As a result, parameter
95 tuning is neccessary for speeding up Postgres, therefore Strabon. If you are
96 using Strabon to compare its performance against your implementation of
97 stSPARQL/GeoSPARQL, you are *strongly* encouraged to contact us using the Strabon
98 Users mailing list for assistance on tuning Postgres.
100 You can follow the instructions below for tuning a Postgres server running on an
101 Ubuntu machine that is dedicated to PostgreSQL and Strabon.
103 1. Append the following text at the end of postgresql.conf.
104 *Uncomment* the appropriate lines.
106 ### RAM
107 ## 4 GB of RAM
108 #shared_buffers = 3GB
109 #effective_cache_size = 3GB
110 #maintenance_work_mem = 1GB
111 #work_mem = 2GB
112 ## 8 GB of RAM
113 #shared_buffers = 5GB
114 #effective_cache_size = 6GB
115 #maintenance_work_mem = 2GB
116 #work_mem = 5GB
117 ## 16 GB of RAM
118 #shared_buffers = 10GB
119 #effective_cache_size = 14GB
120 #maintenance_work_mem = 4GB
121 #work_mem = 10GB
122 ## 24 GB of RAM
123 #shared_buffers = 16GB
124 #effective_cache_size = 22GB
125 #maintenance_work_mem = 6GB
126 #work_mem = 15GB
127 ## 48 GB of RAM
128 #shared_buffers = 32GB
129 #effective_cache_size = 46GB
130 #maintenance_work_mem = 8GB
131 #work_mem = 30GB
132 ## 64 GB of RAM
133 # contact us to find out!
134 ### HD
135 ## RAID with ordinary 7.200 disks
136 #random_page_cost = 3.5 #3.0-3.5
137 ## High-End NAS/SAN
138 #random_page_cost = 2 #1.5-2.5
139 ## Amazon EBS/Heroku
140 #random_page_cost = 1.3 #1.1-2.0
141 ## SSD array
142 #random_page_cost = 2.0 #1.5-2.5
143 ### Misc
144 default_statistics_target = 10000
145 constraint_exclusion = on
146 checkpoint_completion_target = 0.9
147 wal_buffers = 32MB
148 checkpoint_segments = 64
149 ### Connections
150 max_connections = 10
152 2. Append the following lines at the end of /etc/sysctl.conf
153 *Uncomment* the appropriate lines.
155 ## 4 GB of RAM
156 #kernel.shmmax = 3758096384
157 #kernel.shmall = 3758096384
158 #kernel.shmmni = 4096
159 ## 8 GB of RAM
160 #kernel.shmmax = 5905580032
161 #kernel.shmall = 5905580032
162 #kernel.shmmni = 4096
163 ## 16 GB of RAM
164 #kernel.shmmax = 11274289152
165 #kernel.shmall = 11274289152
166 #kernel.shmmni = 4096
167 ## 24 GB of RAM
168 #kernel.shmmax = 17716740096
169 #kernel.shmall = 17716740096
170 #kernel.shmmni = 4096
171 ## 48 GB of RAM
172 #kernel.shmmax = 35433480192
173 #kernel.shmall = 35433480192
174 #kernel.shmmni = 4224
175 ## 64 GB of RAM
176 # contact us to find out!
178 3. Apply all changes by executing
180 $ sudo sysctl -p
181 $ sudo /etc/init.d/postgresql restart
183 4. Prepare for the next run by issuing the command
185 $ sudo -u postgres psql -c 'VACUUM ANALYZE;' db
187 or
189 $ psql -c 'VACUUM ANALYZE;' db
191 where db is the name of the Postgres database that Strabon will use.
194 Developer Guide
195 ~~~~~~~~~~~~~~~
196 Assuming that you are familiar with Maven, the following steps need to be
197 followed in order to use Strabon using Eclipse:
199 1. Install PostgreSQL from http://www.postgresql.org/download/. At the time of
200 this writing the latest PostgreSQL version is 9.1.
201 2. Install PostGIS from http://postgis.refractions.net/download/. At the time of
202 this writing we have tested Strabon with PostGIS 1.5.3.
203 3. Install Maven from http://maven.apache.org/download.html. At the time of this
204 writing the latest Maven version is 3.0.4.
205 4. Install Eclipse from http://www.eclipse.org/downloads/. At the time of this
206 writing the latest Eclipse version is 3.7.2.
207 5. Install the m2e plugin for Eclipse from http://www.eclipse.org/m2e/.
208 6. Install the MercurialEclipse plugin for Eclipse from
209 http://javaforge.com/project/HGE.
210 7. From Eclipse, go to File --> Import --> Mercurial --> Clone Existing
211 Mercurial Repository --> Next. In the URL textarea paste the following
212 URL: http://hg.strabon.di.uoa.gr/Strabon and then press Next --> Next -->
213 Finish. If you used the default settings, you should have a new project named
214 StrabonMain. Right click on the project and select Configure --> Convert to
215 Maven project. Eclipse will enable Maven dependency management for the
216 project, download any dependencies and build the project.
219 Tester Guide
220 ~~~~~~~~~~~~
221 Assuming again that you are familiar with Maven and Junit these are the steps
222 you need to follow to test the functionality of Strabon:
224 * Using Eclipse
226 If you want to create a new test:
228 1. Import Strabon into Eclipse as explained in the Developer Guide.
229 2. Go to project strabon-testsuite.
230 3. Create a Test class in the appropriate package.
233 Storing stRDF graphs and evaluating stSPARQL queries
234 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
235 You can see some examples in the classes
236 eu.earthobservatory.runtime.postgis.StoreOp and
237 eu.earthobservatory.runtime.postgis.QueryOp.
240 Download
241 ========
242 You can download the source code of the latest version of Strabon by accessing
243 our public mercurial repository located at http://hg.strabon.di.uoa.gr/Strabon.
244 You can find more information on how to use and extend Strabon at the Getting
245 Started section.
248 Publications
249 ============
250 You can learn about stRDF data model and stSPARQL query language employed in
251 Strabon by reading our tutorial under the Getting Started section and/or the
252 publications given on this page.
254 The current versions of stRDF and stSPARQL which are based on OGC standards are
255 presented in the following document:
256 * K. Kyzirakos, M. Karpathiotakis, and M. Koubarakis. Strabon: A Semantic
257 Geospatial DBMS. In Internatioanl Semantic Web Conference (ISWC'12). Boston,
258 USA, November 11-15, 2012.
259 [pdf: http://strabon.di.uoa.gr/files/strabon-iswc.pdf]
261 * Manolis Koubarakis, Kostis Kyzirakos, Babis Nikolaou, Michael Sioutis, and
262 Stavros Vassos. A data model and query language for an extension of RDF with
263 time and space. Deliverable D2.1, European ICT project TELEIOS, 2011.
264 [pdf: http://strabon.di.uoa.gr/files/deliv2-1-re-revised.pdf]
266 The initial versions of stRDF and stSPARQL that are based on constraint
267 databases are presented in the following publications:
268 * Manolis Koubarakis and Kostis Kyzirakos. Modeling and Querying Metadata in
269 the Semantic Sensor Web: the Model stRDF and the Query Language stSPARQL.
270 In 7th Extended Semantic Web Conference (ESWC 2010). Heraklion, Crete,
271 30 May - 03 June, 2010.
272 [pdf: http://strabon.di.uoa.gr/files/stSPARQL.pdf]
274 * Kostis Kyzirakos, Manos Karpathiotakis and Manolis Koubarakis. Developing
275 Registries for the Semantic Sensor Web using stRDF and stSPARQL (short
276 paper).
277 In Proceedings of 3rd International workshop on Semantic Sensor Networks
278 2010, in conjunction with ISWC 2010, November 2010, Shanghai, China.
279 [pdf: http://strabon.di.uoa.gr/files/strabon.pdf]
281 Applications of stRDF, stSPARQL, and the system Strabon are described here:
282 * Alasdair J. G. Gray, Raúl García-Castro, Kostis Kyzirakos, Manos
283 Karpathiotakis, Jean-Paul Calbimonte, Kevin Page, Jason Sadler, Alex
284 Frazer, Ixent Galpin, Alvaro A. A. Fernandes, Norman W. Paton, Oscar
285 Corcho, Manolis Koubarakis, David De Roure, Kirk Martinez and Asunción
286 Gómez-Pérez. A Semantically Enabled Service Architecture for Mashups over
287 Streaming and Stored Data. In 8th Extended Semantic Web Conference (ESWC
288 2011). Heraklion, Crete, May 20 - June 2, 2011.
289 [pdf: http://strabon.di.uoa.gr/files/Gray2011Architecture.pdf]
291 * A.J.G. Gray, J. Sadler, O. Kit, K. Kyzirakos, M. Karpathiotakis, J.-P.
292 Calbimonte, K. Page, R. García-Castro, A. Frazer, I. Galpin, A.A.A.
293 Fernandes, N.W. Paton, O. Corcho, M. Koubarakis, D.D. Roure, K. Martinez,
294 A. Gómez-Pérez. A Semantic Sensor Web for Environmental Decision Support
295 Applications. Sensors. 11, 8855-8887.
296 [pdf: http://strabon.di.uoa.gr/files/sensors-11-08855.pdf]
298 Coming up soon:
299 Strabon will soon support an extension of RDF for incomplete geospatial
300 information. The following publication gives a preview of the relevant research
301 problems:
302 * M. Koubarakis, K. Kyzirakos, M. Karpathiotakis, C. Nikolaou, M. Sioutis,
303 S. Vassos, D. Michail, T. Herekakis, C. Kontoes and I. Papoutsis. Challenges
304 for Qualitative Spatial Reasoning in Linked Geospatial Data. In Proceedings
305 of IJCAI 2011 Workshop on Benchmarks and Applications of Spatial Reasoning,
306 Barcelona, Spain.
307 [pdf: http://www.earthobservatory.eu/publications/SciQL_ADASS2011.pdf]
309 * C. Nikolaou and M. Koubarakis: "Querying Linked Geospatial Data with
310 Incomplete Information". In 5th International Terra Cognita Workshop -
311 Foundations, Technologies and Applications of the Geospatial Web. In
312 conjunction with the 11th International Semantic Web Conference, Boston,
313 USA, November, 2012.
314 [http://www.earthobservatory.eu/publications/iswc-workshop.pdf]
317 Contributors
318 ============
319 The system Strabon has been developed by the following members of our team:
321 * Manos Karpathiotakis <mk@di.uoa.gr>
322 * Kostis Kyzirakos <kkyzir@di.uoa.gr>
323 * Manolis Koubarakis <koubarak@di.uoa.gr>
324 * Giorgos Garbis <ggarbis@di.uoa.gr>
325 * Konstantina Bereta <konstantina.bereta@di.uoa.gr>
326 * Charalampos Nikolaou <charnik@di.uoa.gr>
327 * Stella Gianakopoulou <sgian@di.uoa.gr>
328 * Panagiotis Smeros <psmeros@di.uoa.gr>
329 * Kallirroi Dogani <kallirroi@di.uoa.gr>
332 Mailing-list
333 ============
334 Currently, we maintain the following mailing lists:
336 * Strabon-users, is used as a communication channel for Strabon users.
337 To subscribe to the mailing-list, please visit page
338 http://cgi.di.uoa.gr/~mailman/listinfo/strabon-users. To post e-mails
339 to Strabon-users mailing-list, write to strabon-users@di.uoa.gr.
341 * Strabon-devel, is used as a communication channel with the developers
342 of Strabon. To subscribe to the mailing-list, please visit page
343 http://cgi.di.uoa.gr/~mailman/listinfo/strabon-devel. To post e-mails
344 to Strabon-devel mailing-list, write to strabon-devel@di.uoa.gr.
347 Bugs
348 ====
349 Please report bugs to http://bug.strabon.di.uoa.gr/report or
350 the Strabon-devel mailing-list Strabon-devel@di.uoa.gr.
353 Known Issues
354 ============
355 * By default, Tomcat uses ISO-8859-1 character encoding when decoding URLs received
356 from a browser. This can cause problems when encoding is UTF-8, and you are using
357 international characters. In order to fix this, edit conf/server.xml and find the
358 line where the Connector is defined. Add the parameter URIEncoding and set it to
359 UTF-8. For example:
361 <Connector port="8080" protocol="HTTP/1.1"
362 connectionTimeout="20000"
363 URIEncoding="UTF-8"
364 redirectPort="8443" />
366 * Building and executing any maven goals fails for maven versions <3.0 due to a
367 dependency to the `shade' plugin that is available only for maven version 3.0
368 (http://maven.apache.org/plugins/maven-shade-plugin/). In such systems, you may
369 disable execution of this plugin by setting the environmental variable
370 `shade.skip'. For example, to build Strabon using maven version 2.0 you may
371 execute the following command:
373 $ mvn clean package -Dshade.skip
375 * When using MonetDB as a backend, the following source code of MonetDB must be
376 used:
377 https://hg.strabon.di.uoa.gr/MonetDB/
380 License
381 =======
382 This Source Code Form is subject to the terms of the Mozilla Public
383 License, v. 2.0. If a copy of the MPL was not distributed with this
384 file, You can obtain one at http://mozilla.org/MPL/2.0/.
386 Copyright (C) 2010, 2011, 2012, Pyravlos Team
388 http://www.strabon.di.uoa.gr/
391 How to apply the license
392 ========================
393 * In the beginning of script files (after the shell directive) paste the
394 following statement:
395 #
396 # This Source Code Form is subject to the terms of the Mozilla Public
397 # License, v. 2.0. If a copy of the MPL was not distributed with this
398 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
399 #
400 # Copyright (C) 2010, 2011, 2012, Pyravlos Team
401 #
402 # http://www.strabon.di.uoa.gr/
403 #
405 * In the beginning of Java source code files paste the following statement:
406 /**
407 * This Source Code Form is subject to the terms of the Mozilla Public
408 * License, v. 2.0. If a copy of the MPL was not distributed with this
409 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
410 *
411 * Copyright (C) 2010, 2011, 2012, Pyravlos Team
412 *
413 * http://www.strabon.di.uoa.gr/
414 */
416 * In the beginning of HTML/XML files paste the following statement:
417 <!-- This Source Code Form is subject to the terms of the Mozilla Public
418 - License, v. 2.0. If a copy of the MPL was not distributed with this
419 - file, You can obtain one at http://mozilla.org/MPL/2.0/.
420 -
421 - Copyright (C) 2010, 2011, 2012, Pyravlos Team
422 -
423 - http://www.strabon.di.uoa.gr/
424 -->