Il y a deux philosophie de segmentation des données. La première consiste à encadrer les données, par exemple le XML ou le HTML. Chaque texte est encadré. Chaque partie est elle même encadrée. Les parties sont indépendantes et syntaxiquement interchangeables. Les encadrants sont obligatoirement ouverts et fermés. Il est possible de hiérarchiser les informations d’une partie en les plaçant dans des sous-parties incluses dans la partie. Les sous parties peuvent avoir les mêmes encadrants que la partie principale.
La seconde philosophie consiste à séparer les données. On ne délimite plus une donnée mais on marque la fin d’une donnée et donc implicitement le début de la suivante. L’absence de séparateur marque aussi la fin d’une donnée mais dans démarrer une autre donnée. Il existe bien un séparateur dans ce cas aussi mais il marque la fin d’un document… c’est à dire un niveau de données de plus haut niveau. Une hiérarchisation est possible en utilisant plusieurs séparateurs différents.
Cette seconde méthode a des avantages, et pas seulement en place économisée par rapport à des encadrants. Mais elle a comme inconvénient de consommer plus de (caractères) séparateurs.
Dans les liens nebule, la marque de temps à la norme ISO 8601:2004 consomme elle aussi de multiples séparateurs. Il n’est dès lors plus possible de les utiliser comme séparateur au même niveau ou au niveau supérieur. On peut cependant en gagner un, le / de séparation des périodes de temps est invalide pour un lien puisque la marque de temps doit impérativement être ponctuelle. C’est cette marque de temps qui va poser le plus de contraintes sur les séparateurs des liens… sauf à ne pas utiliser cette norme. Éternel débat en fait.
Il reste quand même plusieurs caractères utilisables comme séparateur :_ / # = * % & @ $ ! ; ~ ( ) { } [ ] < >
Et hors concurrence avec la marque de temps :- + :
Tout un monde…