On a long train ride yesterday I added a tiny but nice feature to the DC-X Topic Map Engine: As of DC-X 1.5.10, you can edit properties (“occurrences” in TM speak). (Classes, names, and associations have been possible before, see my earlier post.)
A useful application would be the editing of scope notes in the IPTC Subject Code thesaurus… Here’s a screenshot:

It’s been a while but we just updated our demo server from DC-X 1.3.3 to 1.4.8 – a lot has changed!
If something looks broken or is not working, please let us know.
Here are just some highlights of the new version:
- Behind the scenes a new and highly flexible form engine was introduced, making it easier than ever to customize your DC-X forms.
- The advanced search handling was improved, especially locale independent dates are now processed properly.
- The overall usability of DC-X was improved through a series of refactorings and tweaks.
- In the administrative area a lot more options are available (e.g. Topic Maps, Translations)
I have written before about the embedded topic map engine in DC-X. It’s not meant to be a standalone engine for generic use, but does a great job powering the lists, synonyms and thesauri in DC-X.
Until recently, the engine’s functionality had been hidden in the backend and exposed only through our PHP API, SQL, and the command line. But we finally had the time to implement basic topic editing in the DC-X administration interface. I’ve been a topic maps fan since 2003, so it’s been very exciting for me to actually build software based on topic maps (and getting paid for it)! Of course, everything’s still quite ugly, it’s not 100% topic map compliant and lots of features are missing (e.g., editing occurrences). But we’re working on it, and already rolling the first versions out to our customers…
Just two screenshots for those who are curious (I know that the content that’s shown doesn’t make much sense):
Thesauri and lists of keywords are stored by DC-X in its topic map – a set of database tables modeled after the XML Topic Maps (XTM) 1.0 standard. For an introduction to topic maps, see the wonderful article The TAO of Topic Maps by Steve Pepper.
So far we have implemented merely half of the XTM standard; we’ll look into supporting more of it when the need arises. But the core concepts are all there. – [By the way: Why not RDF? Because topic maps are a higher-level abstraction (RDF triples have less semantics built in) and seemed to provide more value "out of the box"…]
The benefits of treating thesaurus and list terms as topics in a topic map:
- Built-in support for multiple names, which we’re using to store translations for terms: All lists and thesauri can now be multi-lingual.
- Class/instance relationship between terms; the “City” list is itself a topic, “Hamburg” and “Oslo” are instances of the “City” topic. This way an unlimited number of lists or thesauri can co-exist. Terms can even belong to multiple lists.
- Arbitrary relations between terms: A thesaurus hierarchy is modeled using associations like “broader/narrower” or “synonym/preferred term”. Geographic hierarchies can use “part/whole” associations.
- External identifier URIs can be specified for any term, so metadata can be mapped to metadata of other software using RDF, or anything else that points to the same URI.
- Custom metadata can be attached to any term. We’ll use this for thesaurus “scope notes”, geo coordinates for cities etc.
We are already importing the (multi-lingual) IPTC subject codes thesaurus and CLDR language and country name lists into the DC-X topic map via the XTM XML format. Importing custom thesauri (in a few common text file formats) is also supported. A couple of DC-X fields are set up to auto-fill lists in the topic map as documents with new values come in. Lists and thesauri can be used for auto-completion during document editing, or for lookup in an “assistant dialog”.
In an upcoming DC-X release we will add a simple topic map browser and editor so that administrators can modify lists and thesauri, and we will be looking into automatically following “use/preferred term” relations so that the administrator can define values that are automatically to be corrected during document import.
Differences compared to DC5: Lists and thesauri are not stored as flat files in the file system anymore, they live in the database. They are available out of the box in DC-X with much less configuration overhead. Multiple languages are now supported. All kinds of relations between terms are now possible, not just simple hierarchies.