Permalink Semantics
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.
Update
2012-06: The permalinks have now been updated so that they do not have semantics.