Features eines Topic-Map-Systems
Eine Besonderheit der Factory-Klasse sind die sogenannten Features. Die unterschiedlichen Topic-Map-Engines unterstützen in der Regel verschiedene Features. Diese sog. Eigenschaften werden per Feature-String eingestellt.
Die Topic-Map-Engine tinyTim unterstützt unterschiedliche Merging-Verfahren und Datenmodelle (XTM 1.0 und XTM 2.0). Im folgenden Beispiel wird das genutzte Datenmodell auf XTM2.0 (ehemals XTM1.1) umgestellt.
// Setzen eines Features
tmSystemFactory.setFeature("http://tmapi.org/features/model/xtm1.1", true);
Welche Features genau unterstützt werden, kann man in der Regel der Dokumentation der Topic-Map-Engine entnehmen. Die TMAPI gibt selber bestimmte Feature-String vor, die bereits im Kapitel XY erläutert wurden.
Sie können die Unterstützung verschiedener Features abfragen. Zu beachten ist dabei, dass nicht jede Engine jedes Feature unterstützt. Dadurch ist es möglich, dass beim Abfragen eines Feature-Wertes ein Fehler auftreten kann. Dieser muss durch eine entsprechende Fehlerbehandlung abgefangen werden.
// Vorbelegung für spätere Verarbeitung
boolean hasXTM11 = false;
// Versuch ein Feature abzufragen
try {
hasXTM11 = mSystemFactory.getFeature("http://tmapi.org/features/model/xtm1.1");
}
// Fehlerbehandlung bei nicht vorhandenem Feature
catch (FeatureNotRecognizedException fe) {
hasXTM11 = false;
}
// Ergebnisausgabe
if (hasXTM11) {
System.out.println("XTM 2.0 wird unterstützt");
} else {
System.out.println("Keine Unterstützung von XTM 2.0");
}
Das Beispiel fragt ab, ob die Instanz des Topic-Map-Systems das XTM 2.0 Datenmodell unterstützt. Die Fehlerbehandlung versucht dabei den Fehler FeatureNotRecognizedException abzufangen. Auch wenn ein Fehler auftritt, also die Engine das Feature nicht unterstützt, ist sichergestellt, dass die Anwendung nicht aufgrund des Fehlers abstürzt (anders als das bei Windows üblich ist).
Mit Hilfe dieses Topic-Map-Systems können nun Topic-Maps erstellt werden. Die entsprechende Vorgehensweise wird im nächsten Abschnitt erläutert.