Die Programmierschnittstelle von ConceptBase ist eine Bibliothek von C-Funktionen, die die Methoden des Servers in einem Anwendungsprogramm zur Verfügung stellen. Der Anwendungsprogrammierer braucht sich daher nicht um die oben beschriebene Kommunikationsschnittstelle und um die Syntax der IPC-Nachrichten zu kümmern.
Der Verbindungsaufbau zu einem ConceptBase-Server ist für den Anwendungsprogrammierer deshalb nur ein Funktionsaufruf. Bei den Methoden zum Eintragen und Löschen von Objekten (TELL/UNTELL) müssen die Objekte jedoch in der Sprache O-Telos angegeben werden. Ähnliches gilt für Anfragen an die Objektbank: die Antwort ist entweder eine Liste von Objektnamen, eine Liste von O-Telos-Frames oder hat ein applikationsspezifisches Format wie z.B. für den ConceptBase GraphBrowser. In jedem Fall ist die Antwort aber zunächst nur eine Zeichenkette, die mit Hilfe eines Parsers analysiert werden muß.
Die C-Funktion print_classes ist ein Beispiel für die Verwendung
der Programmierschnittstelle. Sie trägt eine Klasse Employee in
die Objektbank ein, und stellt dann eine Anfrage nach allen
Klassen.
void print_classes() {
Completion comp;
Server *gserver;
char* ans;
connect_CB_server(4711,"turner","ExampleClient","quix",&gserver);
if(gserver) {
comp=tell( gserver,"Employee in Class end");
ans=ask_objnames("find_instances[Class/objname]","LABEL","Now");
printf("Die Instanzen von Class sind: %s\n",ans);
}
}
Zuerst wird mit der Funktion connect_CB_server eine Verbindung zu
einem ConceptBase-Server auf dem Rechner turner aufgebaut, der die
Port-Nummer 4711 benutzt. Falls der
Verbindung erfolgreich hergestellt werden konnte, wird mit tell
das Objekt eingetragen und mit ask_objnames die Anfrage gestellt.
Das Antwortformat ist hier als LABEL angegeben, das entspricht
einer durch Kommata getrennte Liste von Objektnamen.
Eine Antwort in Form von O-Telos-Frames kann der Anwendungsprogrammierer mit dem Telos-Parser in C-Strukturen umwandeln. Die Strukturen sind allerdings nicht anwendungsspezifisch, d.h. alle Objekte werden unabhängig von ihrem Typ auf die gleiche Struktur in C abgebildet.