Files
secondo/Documents/Release-Notes.txt
2026-01-23 17:03:45 +08:00

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