So, to start with a rant.
I have reached a key and pivotal point in my life. I have decided that I never, ever, ever want to see permalinks with any semantics in them, ever again. And before any one gets clever, yes, I know that this post has semantics in its permalink.
Recently I was looking through Knowledge Blog and realised that I have made a mistake with the permalink structure. When we created Ontogenesis I used semantic links — that is permalinks with the title of the article in them, because I thought that they would be more popular with authors and easier to remember. However, I didn’t want name clashes, land grabs or disambiguation of the sort that you get on Wikipedia(website). So I added in a date as well as a uniquish identifier. I realised quickly that I had manage to combine the worst of both worlds; people wished to change the titles of their articles, and the permalinks no longer fitted. And the links were still hard to remember. So I moved ontogenesis onto the simple number-based permalink structure that it has today. As a concession to usability, I didn’t use the basic ?=192 that is the default, but instead the rewritten 192 which is easier. As far as I can tell, WordPress remembers old permalinks — they do not just go away when the overall structure is changed and links are preserved. They really are as permanent as these things go.
But I had fixed the other knowledgeblogs subdomains consistently. My update to Process which defines and documents the process of knowledgeblog itself was still set up with the older style identifiers. So I changed it; for example, http://process.knowledgeblog.org/archives/19 became plain http://process.knowledgeblog.org/19. I don’t understand why, as WordPress seemed to maintain the links last time, but apparently this broke an email Dan Swan had sent out advertising out Bioinformatics Write-a-thon.
While I have generally purged semantics from links, WordPress still maintains the “title as link” approach for pages, as opposed to posts. I guess this makes sense, as you generally don’t have that many pages, but in this case it has shot me in the foot. I started to re-create a “Who are we” page for the www main domain of knowledgeblog. This ended up with a URL of http://www.knowledgeblog.org/who-are-we; but then I got distracted and left the job half-done. More I wanted to use my normal editing environment. So I trashed the page. Today, I created another page with the same name. But this got a URL of http://www.knowledgeblog.org/who-are-we-2. Ugly. WordPress would not let me rename this permalink, so I tried resurrecting the trashed post and changing it’s content. For reasons that I don’t understand, this didn’t work either and I ended up with http://www.knowledgeblog.org/who-are-we-3. I tried changing this to http://www.knowledgeblog.org/who which works, but redirects to http://www.knowledgeblog.org/who-are-we-3.
So, WordPress is doing (mostly) the right thing, but it still all worked against me. I don’t understand however, why, WordPress doesn’t allow you to set default permalinks for Pages as well as posts. It should do, but as far as I can tell, it does not.
The irony of this is that this is not a new issue. I even wrote a post about Manchester syntax and OBO which largely revolves around this issue. I know about the importance of semantics-free identifiers, and I should have known better then to make a mess of things this way, but on knowledgeblog and indeed on this blog. It just goes to show that handling change is hard and living with a nasty legacy is often the result. I guess that it is a nice example of the advantages and disadvantages of semantics and the compromises that have to be made in any engineering situation.
I haven’t decided yet, but I think I will change the permalink structure of this blog in a few days time. I am hopefully that existing links will be maintained, but that all future ones will exist only in numeric form. Fingers crossed, it will all work.
2012-06: The permalinks have now been updated so that they do not have semantics.