Ontopia
What’s new - Ontopia 5.x
This document describes what has changed in Ontopia between releases, both at a higher level, and in
more detail.
5.4.0 2022-10-20
Ontopia 5.4.0 release notes
The following changes have been made:
- Migrated from GoogleCode to GitHub
- Upgraded to Java 8
- The distribution is now based on Tomcat 9
- Enabled Codacy integration to improve the code quality
- Made Ontopia packages available in the Maven Central repository
- Remade the documentation
- Removed antiquated XML parsers
- Removed the use of
LocatorIF
as file and classpath resource reference. Many IO related interfaces have changed to use File
, URL
or InputStream
as data sources.
- Aligned reification handling by merging all logic into
DuplicateReificationException
- Added
RDBMSTopicMapSource.setQueryfile
to allow additional SQL queries to be provided for expert use
- Added
ImportExportServiceIF
that allows extension to provide alternative topicmap readers and writers
- Moved RDF related code into
ontopia-rdf
module
- Added
FulltextImplementationIF
that allows extensions to provide alternative full-text indexing methods
- Deprecated and moved OSL Schema files into separate module
- Moved JDBC Spy files into separate module
- Improved cross-transaction merge handling
<template:get>
tag now supports fallback value
- Applied
AutoClosable
interface on TopicmapStoreIF
, TopicMapReferenceIF
, TopicMapSourceIF
and QueryResultIF
- Added
OccurrenceIndexIF.getOccurrences
methods based on value and type
- Added
NameIndexIF.getTopicNames
methods based on value and type
- A lot of code quality improvements
- Added Ontopia REST module
- Added
ClassInstanceIndexIF.getRolesByType
based on roletype and associationtype
- Removed
TopicMapImporterIF
- Removed
Locators
- Removed antiquated concurrency dependency
- Added
ClassInstanceIndexIF.getAllTopicNames
, ClassInstanceIndexIF.getAllVariantNames
and ClassInstanceIndexIF.getAllOccurrences
- Added
IdentifierIndexIF
- Replaced Ontopia specific utility classes with java functional classes where possible. Moved the replaced files into a separate ontopia-deprecated-utils module. The following replacements have been performed:
DeciderIF
→ Predicate
GrabberIF
→ Function
StringifierIF
→ Function
, with String
result
- Switched from log4j1 to reload4j to fix log4shell vulnerabilities
- Improved default RDBMS connection pooling settings and added automatic returning of abandoned connections
- Disabled autoCommit on read only connections
- Refactored how non-transactional reading works and added cleaning of connections used for this
- Switched to TMAPI tests 2.1.1
The following bugs have been fixed:
The following new features have been added:
The following dependencies have been upgraded:
Ontopia 5.3.0 release notes
This release is a bug fix and cleanup release and adds the new NameIF
interface.
The following changes have been made:
- Added
NameIF
interface to support operations that can return any name.
- More generics were added to the Ontopia interfaces
- The dependencies to patched artifacts hosted by the Ontopia repository (jing, trove and touchgraph) have been refactored to their respected pulic counterparts. This means the Ontopia repository is no longer present in the POM.
- Removed the
PoolableSetFactoryIF
, PoolableSetIF
and SetPoolIF
interfaces and their implementing classes.
- Improved the closing of
TopicMapSourceIF
objects when closing a TopicMapRepositoryIF
object fixing possible memory leaks and clustering issues.
- Added missing implementations for persisting reference title and base address changes in an RDBMS environment
- Added functionality to LTM parser that allows reification based on a prefixed PSI
- Added functionality to LTM parser that allows predefined PSI prefixes to be used when exporting a topic map
- A long standing issue regarding difference of topic map loading in Navigator and Engine has been resolved. (issue 392)
- Added fallback-value functionality to
tolog:id
, tolog:oid
and tolog:oid
- Improved tag pool handling in navigator tags, also added tests for this.
- Fixed the export of topic maps within Ontoploy (issue 466)
- Fixes missing classes in the Vizlet (issue 450)
- Upgraded to SLF4J 1.7.5
- Fixed issues in the TMRAP-webapp that were blocking the Axis SOAP service. Note that the presence of Crimson on the classpath will still stop TMRAP from working as a SOAP service.
The following bugs have been fixed:
Ontopia 5.2.2 release notes
This release is a bug fix release and introduces some new API methods for TopicIF
.
The following changes have been made:
TopicIF
now has the new optimized methods getOccurrencesByType()
, getTopicNamesByType()
, getAssociations()
and getAssociationsByType()
. The RDBMS implementation uses SQL queries for these methods to increase performance.
- A long standing issue regarding merging of occurrence and name types in RDBMS topicmaps has been fixed (issue 409)
- Statistics of a topicmap can now be obtained from the new
StatisticsIndexIF
index
TMXMLWriter
now supports setting prefixes beforehand
The following bugs have been fixed:
Ontopia 5.2.1 release notes
This release is a minor bug fix release, which includes the fixed vizigator and omnigator vizlet.
The following bugs have been fixed:
Ontopia 5.2.0 release notes
This is the first release in the new Maven structure. It includes the modularization of Ontopia along with bug fixes along with some new functionality.
The following changes have been made:
- Ontopia is now divided into Maven modules based functionality. For developers working with Ontopia as a dependency this means that there is a more controlled way of including parts of Ontopia as a dependency. This change does not affect Ontopia distribution users.
- The distribution has been updated to include Tomcat version 6.
- The DB2TM functionality has been extended and improved.
- Ontopoly had several outstanding bugs. Support for exporting TM/XML and schema without data was added.
- Tolog now supports negative integer values and some basic numeric operations through the numbers module.
- Ontopia now uses Lucene 2.9.4 (up from 2.2.0).
The following bugs have been fixed:
Ontopia 5.1.3 release notes
This is a minor bugfix release that mostly fixes bugs, but also adds some fairly minor new functionality.
The following changes have been made:
- The
TopicMapFragmentWriterIF
interface has been added, providing a common interface to fragment exporters.
- An RDF/XML fragment exporter has been added.
- Major performance improvement in the retrieval of possible role players in Ontopoly.
- The reordering of dynamic association predicates in tolog has been improved.
- An Omnigator plugin for running DB2TM synchronization has been added.
- Error reporting when DB2TM functions fail has been improved.
- Several new utility methods have been added to the
KeyGenerator
and MergeUtils
classes.
The following bugs have been fixed:
Ontopia 5.1.2 release notes
This is a minor bugfix release that fixes two issues in Ontopoly.
Ontopia 5.1.1 release notes
The main new feature in this release is the support for geotagging in Ontopoly. Briefly, if the longitude and latitude occurrences are added to a topic type, all topics of that type will get a button to open a geotagging window. In this window a position on a map can be chosen, and this position will be written into the occurrences.
Further, pluggable support for authorization and authentication was added to Ontopoly, as described in the wiki.
Beyond that this release features mainly the following bug fixes:
Ontopia 5.1.0 release notes
This release introduces some major new functionality in Ontopia:
- The automated classification is now available through public APIs and a command-line client. See the automatic classification developer’s guide in the documentation index for more details.
- The
INSERT
, UPDATE
, DELETE
, and MERGE
statements have been added to the tolog query language, allowing it to also perform updates. See the section on updates in the tolog language tutorial for more information.
- Support for XTM 2.1 has been added, together with some new classes to support it. Note that the
XTMVersion
class has been introduced to provide identifiers for the different versions.
- Support for JTM 1.0 import and export has been added.
- The CTM importer has now been updated to the final CTM specification.
- Ontopoly can now be embedded in other applications using jQuery, as shown in the
examples/embedded-jquery.jsp
example in the Ontopoly distribution.
- The query plugin in Omnigator now supports pluggable query language implementations, and also supports tolog updates.
In addition, some API changes have been made:
- The core API now uses generics, making it much easier to use.
TopicNameIF.getType()
never returns null any more, since the default name type now is always represented by a topic.
- The
coalesce
predicate has been added to tolog (see the predicate reference).
- Some new methods have been added to the
QueryWrapper
class in the net.ontopia.topicmaps.query.utils
package.
- The
makeKey(ReifiableIF r)
method has been added to the KeyGenerator
class in the net.ontopia.topicmaps.utils
package.
mergeInto
methods for all TMObjectIF
s have been added to the MergeUtils
class in the net.ontopia.topicmaps.utils
package.
- The
getFastSortNameStringifier
method has been added to the TopicStringifiers
class in the net.ontopia.topicmaps.utils
package.
- The TMRAP
add-fragment
request now supports CTM input.
The following bugs are fixed in this release:
- Issue 135: Omnigator: NullPointerException in getScopeDecider
- Issue 264: Query plugin in Omnigator doesn’t handle non-latin-1 characters correctly
- Issue 254: tolog “reifies” predicate returns error on finding refiers of a topic
- Issue 244: DB2TM schema disallows iid/slo prefixes, but they actually work
- Issue 238: Exception on instance topic in Ontopoly
- Issue 237: Interning of locators caused out of memory error in the engine even when there was more memory left
- Issue 231: TopicType not serializable exception in Ontopoly
- Issue 228: TMAPI TopicMap/TopicMapSystem.close() doesn’t commit current transaction
- Issue 214: TMAPI ScopedIndex throws NullPointerException
- Issue 209: TMAPI Variants allow empty scope
- Issue 208: Ontopoly should not clear field when cardinality is 0-1 or 1-1 and field has multiple values
- Issue 193: DB2TM synchronization strips topic type
- Issue 184: Cannot disassociate second topic type of an instance in Ontopoly
- Issue 176: Omnigator: ClassNotFoundException when exporting to RDF
- Issue 132: Copy assotiation type does not work correctly in Ontopoly
- Issue 121: Ontopoly: field list updated incorrectly when subtyping
- Issue 99: tolog should not count null values
- Issue 93: tolog reordering optimizer makes query much slower
- Issue 238: InvalidQueryException when viewing certain topics in Ontopoly
- Issue 216: DB2TM makePSI function strips out chars 9 and z
- Issue 208: Problem with hierarchy-walker optimization in tolog
- Issue 207: tolog topic and association predicates do not filter correctly
- Issue 143: Bad syntax error reporting in LTM reader
- Issue 111: XTM 1.0 importer uses non-standard PSIs
- Issue 267: Broader/narrower association type names in the wrong direction in MyThesaurus.xtm
- Issue 252: Add update-topic method to SOAP version of TMRAP
Note that a minor modification has been made to the Ontopia database schema on MySQL in order to fix a failing test. See issue 163 for a description of the problem and how to upgrade older databases.
Ontopia 5.0.2 release notes
This is a bug fix release, specifically released in order to make the fix in revision 486 (23e327d29029f653729374a1f3118fef8441191e in github) available to a customer who needed this fix. The fix solves performance problems with tolog inference rules parsed into DeclarationContextIF
objects.
A few other very minor fixes are also included in this version, which is otherwise very similar to 5.0.1.
Ontopia 5.0.1 release notes
This is a micro release, containing bug fixes and minor improvements throughout the product. Please consult the lists below to see the actual changes.
The following changes have been made:
The following bugs have been fixed:
Ontopia 5.0.0 release notes
The biggest change with this release is a business change: the product is now open source, and the name has changed from the Ontopia Knowledge Suite to just Ontopia. A consequence of this change is that the license key restrictions are now completely gone from the product. You no longer need a valid license key to run Ontopia.
The following changes have been made:
- Ontopia now requires Java 1.5.
- The old TMAPI 1.0 support has been removed, and support for TMAPI 2.0 added in its place.
- The tolog query engine now has a new optimizer. See the blog for more details.
- The
net.ontopia.topicmaps.query.utils.TologSpy
class has been added, providing a jdbcspy-like query profiler for tolog queries.
- The
net.ontopia.topicmaps.utils.QNameRegistry
and QNameLookup
classes have been added, providing convenient lookup of topics using qnames.
- Ontopia now uses the Simple Logging Facade for Java (SLF4J), which makes it easy to switch logging tools, if desired.
- The old net.ontopia.product classes have been removed, in favour of a single new class named
net.ontopia.Ontopia
.
- The old net.ontopia.infoset.fulltext API is no longer supported and will be removed soon. The full-text search in tolog will continue to work.
- The command-line tool
net.ontopia.topicmaps.cmdlineutils.Canonicalizer
has been updated to output ISO CXTM instead of Ontopia’s old non-standard canonical format.
The following bugs have been fixed:
- Issue 2: template definitions crash CTM parser
- Issue 3: Name typing breaks on import into Ontopoly
- Issue 9: Nontopoly model in Omnigator broken
- Issue 17: Exception thrown in Ontopoly when clicking Add on “Add or remove topic type” when no topic type selected
- Issue 20: Exporting topic maps without schema broken in Ontopoly
- Issue 28: Merging lost item identifiers if they were the same as some subject identifier
- Issue 36: Ontopoly export without schema loses description occurrence
- Issue 37: TMSync does not synchronize reification
- Issue 58: VizDesktop doesn’t work with Sun 1.5 JRE under Gnome
Older release notes