Dear all,
The last change in the protocol (inclusion of concept datatypes) made things more complicated when dealing with CNS files. As you probably know, a CNS file is a kind of configuration file that can be used by TAPIR networks and TAPIR software. This is the current official version:
http://rs.tdwg.org/tapir/cns/alias.txt
The idea is to have a one-stop place from where we can get basic information about conceptual schemas and other things like available output models and query templates. Initially we decided to use a simple textual format (key-value pairs with sections) for quick and easy prototyping.
The problem now is that this format doesn't allow us to store datatypes, unless we start using ugly tricks with additional custom formating and logic. And if we don't store datatypes it won't be a one-stop place anymore, forcing software to parse conceptual schemas.
I think this is a good opportunity to change the CNS file and I would like to suggest the following XML format which is already being used by the output model builder under development:
http://rs.tdwg.org/tapir/cns/alias.xml
Regarding the datatypes, we could simply add a new subelement to <concept>.
Another thing I would like to suggest is to completely decouple protocol and CNS. The CNS would become an external convention, probably still mentioned in the documentation as an example or recommendation, but not defined by the spec and not bound to capabilities responses as it can be now. The first reason is that if providers can declare and point to a CNS in capabilities, this means that once created and made public, a CNS should never change. Otherwise it may conflict with providers that may already be referencing it. This is clearly unpractical since we will need to be constantly changing the file. Moreover, after all changes since the first version of the protocol, almost all information in a CNS can also be declared in capabilities responses. This goes against the "DRY principle" (http://c2.com/cgi/wiki?DontRepeatYourself) and can easily cause problems.
So the other suggestion I would like to make is to remove the optional <conceptNameServers> element from capabilities responses.
Does anybody know of any software that uses this specific element?
Is there any TAPIR software that currently depends on the CNS file besides provider software?
In anyway, we could keep the original alias.txt file available for tools that would still depend on it.
Please let me know if you have any comments, suggestions or objections.
Best Wishes, -- Renato