446 lines
16 KiB
Plaintext
446 lines
16 KiB
Plaintext
2011-08-17 Notes on Release 3.1.1
|
|
===============================================================================
|
|
|
|
(1) GUI
|
|
|
|
- Fixed problem: HoeseViewer could not display mregion values
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
(2) Secondo Kernel: Framework
|
|
|
|
- Fixed Problem: ProgressView caused system to crash in some queries
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
(3) Secondo Kernel: Algebras Modules
|
|
|
|
- STPatternAlgebra, NearesrNeighborAlgebra, TBTreeAlgebra now supported
|
|
directly (used to be Secondo plugins).
|
|
|
|
2011-07-20 Notes on Release 3.1.0
|
|
===============================================================================
|
|
|
|
(1) GUI
|
|
|
|
The Java based GUI was extended to support tiled maps from OSM or google as
|
|
backgrounds. Brief explanations on tiled map backgrounds are available from
|
|
the Secondo User Manual ($SECONDO_BUILD_DIR/Documents/SecondoManual.pdf),
|
|
Section 5.3.5.
|
|
|
|
The Java interface to Secondo was separated from the remainder of the GUI to
|
|
be able to develop own applications using Secondo.
|
|
-------------------------------------------------------------------------------
|
|
|
|
(2) Secondo Kernel: Framework
|
|
|
|
New control structures (conditionals, loops, sequences) have been added to the
|
|
Secondo interface, allowing for sophisticated scripting. See Secondo
|
|
User Manual ($SECONDO_BUILD_DIR/Documents/SecondoManual.pdf), Section 3.
|
|
|
|
Function database objects returning stream results are handled correctly now.
|
|
Several more bug fixes improve the stability of the system.
|
|
-------------------------------------------------------------------------------
|
|
|
|
(3) Secondo Kernel: Algebra Modules
|
|
|
|
New Algebra: SpatialJoinAlgebra
|
|
|
|
This algebra provides a new implementation of a spatialjoin operator.
|
|
This algorithm was assigned the operator name 'spatialjoin'.
|
|
The old spatialjoin operator implementation (RTree PlugJoin) has been renamed
|
|
to spatialjoin0.
|
|
|
|
Within the previously released algebras, version 3.1.0 brings some new operators.
|
|
Some operators and types have been renamed in order to avoid confusion and to
|
|
harmonize the naming schema.
|
|
|
|
A few operators have been removed, because they were actually doublets.
|
|
|
|
|
|
StandardAlgebra:
|
|
================
|
|
Added operators:
|
|
abs: real -> real, int -> int
|
|
arccos: {int | real} -> real
|
|
arcsin: {int | real} -> real
|
|
arctan: {int | real} -> real
|
|
arctan2: real x real -> real
|
|
const_e: -> real
|
|
const_pi: -> real
|
|
cos: {int | real} -> real
|
|
deg2rad: {int | real} -> real
|
|
dms2deg: {int|real} x {int|real} [x {int|real}] [x bool] -> real
|
|
logB: {int | real} x {int | real} -> real
|
|
pow: {int | real} x {int | real} -> real
|
|
rad2deg: {int | real} -> real
|
|
sin: {int | real} -> real
|
|
tan: {int | real} -> real
|
|
|
|
Comment:
|
|
- arithmetic and trigonometric functions and constants have been added
|
|
|
|
|
|
FTextAlgebra:
|
|
=============
|
|
Added operators:
|
|
isValidID: string [ x bool] -> bool
|
|
attr2text: DATA -> text
|
|
charToText: int -> text
|
|
sendtextstreamTCP: stream({string|text}) x {string|text} x {string|text} x {int|real} x {int|real} -> stream(tuple((Ok bool)(Msg text)(ErrMsg string))), 2<=n<=4
|
|
tokenize: text x string -> stream(text)
|
|
strequal: {string, text} x {string, text} x bool -> bool
|
|
checkOperatorTypeMap2: string x {text | string} -> text
|
|
checkOperatorTypeMap: string x ANY -> text
|
|
sys_getAlgebraId: {string|text} -> int
|
|
sys_getAlgebraName: int -> string
|
|
sys_getMatchingOperators: int x ANY -> R, {string|text} x int -> R,
|
|
where R = stream(tuple((OperatorName:string,OperatorId:int,AlgebraName:string,AlgebraId:int,ResultType:text,
|
|
Signature:text,Syntax:text,Meaning:text,Example:text,Remark:text)))
|
|
matchingOperators: ANY -> stream(tuple((OperatorName:string,OperatorId:int,AlgebraName:string,AlgebraId:int,
|
|
ResultType:text,Signature:text,Syntax:text,Meaning:text,Example:text,Remark:text)))
|
|
matchingOperatorNames: ANY -> stream(string)
|
|
getDatabaseName: -> string
|
|
|
|
Bugfixes:
|
|
- keywords
|
|
|
|
Renamed operators:
|
|
- toobject ==> toObject
|
|
|
|
Comments:
|
|
- getDatabaseName returns the name of the currrently open database
|
|
- sys_getMatchingOperators / matchingOperators / matchingOperatorNames allow to
|
|
find operators matching a given parameter signature.
|
|
- isValidID checks whether a string represents a valid (and free to use)
|
|
identifier for a database object or an attribute name.
|
|
|
|
ImExAlgebra:
|
|
============
|
|
Added operators:
|
|
getPID: -> int
|
|
getPageSize: -> int
|
|
getSecondoVersion: -> int
|
|
getSecondoPlatform: -> string
|
|
getBDBVersion: -> int
|
|
dbimport2: text -> stream (tuple(...))
|
|
shpimport2: text -> stream(T), T in {point, points, line, region}
|
|
nmeaimport: text x string -> streamtuple( TL ))
|
|
nmeaimport_line: text x string -> stream(tuple( TL ))
|
|
get_lines: {text,string} -> stream(text)
|
|
|
|
Bugfixes
|
|
- The file length value in shpexport has been corrected.
|
|
|
|
Changed operators:
|
|
- shpexport: stream(X) x string -> stream(X),
|
|
stream(tuple(...))) x string x bool x bool -> stream(tuple...)
|
|
|
|
Comments:
|
|
- shpexport allows to create the corresponding shape index file now.
|
|
This will tackle problems importing data generated by Secondo.
|
|
- dbimport2 / shpimport2 allow to import without prior creation of
|
|
the template relation as required by dbimport / shpimport
|
|
- get_lines allows to read a file line by line. On Linux systems,
|
|
you can also read from arbitrary device files, e.g. to import
|
|
position history or stream data from a GPS device.
|
|
- nmeaimport / nmeaimport_line allow for reading the most important
|
|
NMEA sentences from texts
|
|
|
|
GraphAlgebra:
|
|
=============
|
|
Renamed operators:
|
|
key ==> get_key
|
|
pos ==> get_pos
|
|
source ==> get_source
|
|
target ==> get_target
|
|
cost ==> get_cost
|
|
|
|
Comment:
|
|
- The operators have been renamed to avoid conflicts with typical
|
|
attribute names
|
|
|
|
SpatialAlgebra:
|
|
===============
|
|
Added Type:
|
|
geoid
|
|
|
|
Added Operators:
|
|
create_triangle: point x point x point -> region
|
|
heading2direction: real -> real
|
|
direction2heading: real -> real
|
|
midpointBetween: point x point [x geoid] [x real] -> point
|
|
point2string: point [x geoid] -> string
|
|
create_geoid: string [ x {real|int} x {real|int} -> geoid
|
|
getFlattening: geoid -> real
|
|
getRadius: geoid -> real
|
|
distanceOrthodrome: point x point [x geoid] -> real
|
|
reverseGk: t -> t, t in {point, points, line, region}
|
|
|
|
Changed Operators:
|
|
bbox: point||points||line||region||sline) [x geoid]-> rect
|
|
size: {line|sline} x geoid -> real
|
|
direction: point x point [x geoid] -> real
|
|
heading: point x point [x geoid] -> real
|
|
size: line|sline|region} -> real, {line|sline} x geoid -> real
|
|
|
|
Comments:
|
|
- Datatype geoid was added to represent different geoids used for
|
|
spherical geometry calculations with geographic coordinates
|
|
- The most used geoids have been predefined. See operator create_geoid.
|
|
- Many operators now have an optional geoid-parameter. Using it will
|
|
make the operator work with geographic (LON/LAT) rather than planar
|
|
(X/Y) coordinates and spherical rather than euclidean geometry.
|
|
- The meaning of 'heading' and 'direction' has been clarified
|
|
normalized throughout Secondo: From now on, 'heading' means
|
|
navigational angles 0<Phi<=360 (360= TRUE NORTH, 90= EAST, ...), while
|
|
'direction' uses the standard mathematical notion for angles, 0<=Phi<360
|
|
(0 = parallel to the X-axis, following increasing X-value, 90 = parallel
|
|
to the Y-axis, following increasing Y-values).
|
|
|
|
TemporalAlgebra:
|
|
================
|
|
|
|
Changed operators:
|
|
bbox: upoint [x geoid] -> rect3,
|
|
mpoint [x geoid] -> rect3,
|
|
ipoint [x geoid] -> rect3,
|
|
instant -> rect3,
|
|
periods -> rect3
|
|
bbox2d: upoint [x geoid] -> rect,
|
|
mpoint [x geoid] -> rect,
|
|
ipoint [x geoid] -> rect
|
|
bboxold: upoint [x geoid] -> rect3,
|
|
mpoint [x geoid] -> rect3,
|
|
ipoint [x geoid] -> rect3,
|
|
rT -> rT
|
|
length: mpoint [x string] -> real
|
|
avg_speed: mpoint [ x string ] -> real
|
|
delay: mpoint x mpoint [x geoid] -> mreal
|
|
distancetraversed: mpoint [x geoid] -> mreal
|
|
turns: mpoint x real x real [x duration] [x bool] [x geoid]
|
|
-> stream(tuple(TimeOld instant, TimeNew instant, PosOld point,
|
|
PosNew point, HeadingOld real,
|
|
HeadingNew real, HeadingDiff real))
|
|
|
|
Comments:
|
|
- various operators can now deal with geographic coordinates when
|
|
provided with a geoid parameter.
|
|
|
|
TemporalLiftedAlgebra:
|
|
======================
|
|
Added operators:
|
|
+, -, *, /: {mreal, mint, real, int} x {mreal, mint, real,int} -> {mreal, mint}
|
|
|
|
TemporalExtAlgebra:
|
|
===================
|
|
Changed operators:
|
|
speed_new: mpoint [ x geoid ] -> mreal
|
|
direction: mpoint [ x geoid [ x real ] ] -> mreal
|
|
heading: mpoint [ x geoid [ x real ] ] -> mreal
|
|
|
|
Comments:
|
|
- Many operators now have an optional geoid-parameter. Using it will
|
|
make the operator work with geographic (LON/LAT) rather than planar
|
|
(X/Y) coordinates and spherical rather than euclidean geometry.
|
|
- The meaning of 'heading' and 'direction' has been clarified
|
|
normalized throughout Secondo: From now on, 'heading' means
|
|
navigational angles 0<Phi<=360 (360= TRUE NORTH, 90= EAST, ...), while
|
|
'direction' uses the standard mathematical notion for angles, 0<=Phi<360
|
|
(0 = parallel to the X-axis, following increasing X-value, 90 = parallel
|
|
to the Y-axis, following increasing Y-values).
|
|
|
|
|
|
MovingRegionAlgebra:
|
|
====================
|
|
Renamed types:
|
|
movingregion ==> mregion
|
|
intimeregion ==> iregion
|
|
|
|
Comments:
|
|
- Types 'movingregion' and 'intimeregion' have been renamed in order
|
|
to achieve a general naming schema for moving and intime types.
|
|
|
|
|
|
RecordAlgebra:
|
|
=============
|
|
Changed Operators and types:
|
|
- record now allows for arbitrary valid identifiers as fields
|
|
names, they are not required to start with a capital letter any more.
|
|
|
|
HistogramAlgebra:
|
|
=================
|
|
Removed operators:
|
|
is_undefined:
|
|
|
|
Comments:
|
|
- In order to achieve a uniform handling of definedness, the
|
|
operator is_undefined has been removed.
|
|
Use the generic isdefined: DATA -> bool instead.
|
|
|
|
DateTimeAlgebra:
|
|
================
|
|
Comments:
|
|
- The toString(true) function of DateTime allows to export timestamps in
|
|
SQL92 formatting (using a blanc as separator between date and time).
|
|
This is now used by operator toCSVtext: instant -> string
|
|
- The fromString function of DateTime allows to import timestamps in
|
|
SQL92 formatting (using a blanc as separator between date and time).
|
|
|
|
-------------------------------------------------------------------------------
|
|
|
|
(4) Optimizer
|
|
|
|
The standard syntax translation for Secondo operators is now deprecated. You
|
|
must explicitly specify the syntax for each operator in file opsyntax.pl now.
|
|
Also, the notation of the syntax and the generic translation rules in
|
|
plan_to_atom/2 have been changed. Please refer to Section 8.5 in the Secondo
|
|
User Manual and Sections 7.2.2-7.2.3 in the Secondo Programmer's Guide
|
|
($SECONDO_BUILD_DIR/Documents/ProgrammersGuide.pdf).
|
|
|
|
On SQL-level, in user defined aggregations, the default-value can now be passed
|
|
as a constant value expression, not as a string literal anymore.
|
|
Constants can now also be expressed using terms like value_expr(<Type>,<Value>)
|
|
where <Type> is a Prolog term for the type descriptor and <Value> is the nested
|
|
list representation of the constant value, both using round parantheses and
|
|
commas internally.
|
|
|
|
Regards
|
|
Christian Düntgen
|
|
|
|
2007-06-24 Notes on Release 3.0
|
|
===============================================================================
|
|
|
|
Secondo has been improved significantly since version 2.9. Mayor points are the
|
|
improved compatibility with different platforms, increased stability, and
|
|
increased performance.
|
|
|
|
Although we did our best to improve general system stability, there are still
|
|
some problems with numeric stability, especially in the spatial and
|
|
spatiotemporal algebras.
|
|
|
|
Changes in detail:
|
|
|
|
* The Flob concept has been totally re-implemented to avoid the nasty errors
|
|
created by the old Flob-Cache.
|
|
|
|
* Several changes have been done to make the SMI code compatible with
|
|
different versions of 3rd party software, namely BerkeleyDB, thus increasing
|
|
compatibility with different platforms.
|
|
|
|
* On some platforms, newer library versions miss to include certain header
|
|
files. These are now included explicitly.
|
|
|
|
* Many bugfixes regarding system stability: Memory holes have been fixed,
|
|
some operator implementations corrected.
|
|
|
|
* For spatial and spatiotemporal datatypes with set semantics, we now
|
|
differentiate between EMPTY and UNDEFINED values.
|
|
|
|
* New support structure "TupleFile": This type can be used by algorithms
|
|
that need to materialize data. Data is stored in flat files rather than
|
|
in temporal relations. Also, only data not fitting into the main memory
|
|
buffer gets materialized on harddisc. Should be used as an replacement for
|
|
the "TupleBuffer".
|
|
|
|
* Changed implementations/ New algebra: The ExtRelation-2Algebra provides
|
|
external Algorithms for sorting and different join algorithms. Also,
|
|
sorting is now done by a paramerizable multi-stage mergesort, with restricted
|
|
amount of main memory. The new algorithms use TupleFiles instead of
|
|
TupleBuffers.
|
|
Most according original algorithms from the ExtRelationAlgebra have been
|
|
replaced by the operators from this new algebra.
|
|
|
|
* New operators in the RTreeAlgebra allow for query-based inspection of the
|
|
tree structures.
|
|
|
|
* New modules: The BTree2Algebra provides parametrizable BTrees. The
|
|
RTreeViewer allows for visualized online-exploration of Rtree objects.
|
|
|
|
* Optimizer: Exception handling was extended so that now most errors can be
|
|
caught and reported to the user.
|
|
Scripts for executing the BerlinMOD/R benchmark from the optimizer have
|
|
been added to the Optimizer directory.
|
|
|
|
2007-09-17 Notes on Release 2.5
|
|
===============================================================================
|
|
|
|
If you plan to set up an SDK using "openSuSe 10.2" you can use the system's gcc
|
|
(e.g. installsdk -s) which reports the version
|
|
|
|
gcc (GCC) 4.1.2 20061115 (prerelease) (SUSE Linux).
|
|
|
|
Please refer to the Installation-Guide for detailed explanations. Moreover, if
|
|
you have a 64 bit linux system you need
|
|
|
|
* Berkeley-DB 4.3.29 (older versions don't compile and
|
|
for higher versions our code is not ready)
|
|
|
|
* A 64 bit Java-Installation of JDK 1.5
|
|
|
|
* A Prolog System which is compiled with the JPL package (SuSe's standard
|
|
version does not provide this).
|
|
|
|
Maybe in the future we will provide an SDK for 64 bit systems, but currently
|
|
you have to scrape along with this few hints.
|
|
|
|
|
|
|
|
New features:
|
|
-------------
|
|
|
|
* Bug fixes for operators in various algebra modules.
|
|
|
|
* The source code is now sufficient for linux 64 bit systems.
|
|
Windows 64 bit has not been tested, and we don't plan to do so
|
|
in the near future.
|
|
|
|
* Optionally, query progress estimation can be enabled.
|
|
|
|
* A new algebra for representing graphs has been added.
|
|
|
|
|
|
Best Regards
|
|
|
|
M. Spiekermann
|
|
|
|
|
|
2007-03-21 Notes on Release 2.4
|
|
===============================================================================
|
|
|
|
The release deployed at March 14 runs into compiler errors. As work around you
|
|
need to delete two files, please execute the commands below:
|
|
|
|
cd Javagui/tools
|
|
rm *Disturber*
|
|
|
|
If you plan to set up an SDK using "openSuSe 10.2" you can use the system's gcc
|
|
(e.g. installsdk -s) which reports the version
|
|
|
|
gcc (GCC) 4.1.2 20061115 (prerelease) (SUSE Linux).
|
|
|
|
Please refer to the Installation-Guide for detailed explanations.
|
|
|
|
New features:
|
|
-------------
|
|
|
|
* Many bug fixes of operators in various algebra modules.
|
|
|
|
* Provision of a test database called "berlintest".
|
|
|
|
* The example queries for operators are now working on database berlintest.
|
|
They are collected in a system table called SEC2OPERATORINFO. This may
|
|
help you to find "running" examples and to learn more quickly about the
|
|
capabilities of the implemented algebra modules.
|
|
|
|
* Implementation of a quick regression test called "Selftest". It runs all
|
|
examples on berlintest and compares them with result sets. We decided to
|
|
put the database and the results into the source tree. This blowed up the
|
|
archive's size but gives all users the chance to test whether their own
|
|
implementations make the system instable or not.
|
|
|
|
|
|
Best Regards
|
|
|
|
M. Spiekermann
|