Meta

subdomains may look pretty…

Well, it turns out that making a new subdomain for practically everything is a bit of a stupid idea. Damn you, DreamHost webpanel, for making it entirely too easy and fancy looking to create new subdomains.

Oh well. Live and learn. The annoying thing about “live and learn” with webby things is that the “learn” part tends to break the hell out of things that other people notice. Then again, you would think that changing an SVN URL and having a post on the top-level page of the (clearly personal) domain about it would mean people would figure it out eventually. You would of course be wrong, having committed the common mistake of assuming people aren’t idiots. They’ll just keep trying and trying and trying, filling up the logs with the same crap every single day, like some day it will magically revert to the old location. I had faith in mankind before the Internet.

Anyway, I hereby pledge to make no more Meta entries unless they actually, you know, have some content worth reading. The “making my site!” blog entry is definitely the big yellow UNDER CONSTRUCTION banner of the 2000’s.

Now I just need to figure out a stable URI scheme for RDF ontologies, etc. That one’s actually important, but I havn’t been able to find any decent best practice documents for it via Google. I define “truth” in terms of Google findability, so I guess I just need to figure this one out. The W3C date-in-the-url thing seems a bit stupid to me. That works for blog posts and other timey things, but specifications and namespaces have a clear versioning that makes much more sense to use. Plus dates are large and ugly. Given that the W3C definitely has the most referenced namespaces of anyone, why they can’t have decent looking URIs for the damn things is beyond me.

The same sort of problem exists for LV2 plugins (and Ingen patches, which are slowly becoming LV2 plugins). I guess it’s a general problem; assigning URIs to changing (versioned) things.

As for versioning, there’s compatible changes and incompatible changes. The problem is… what does “compatible” mean? For RDF, the simple definition is “any existing triples have not changed” but that’s a bit low-level. Adding triples can seriously change the semantics of an ontology (less so for plain old RDF data). With plugins, the basic compatibility unit is the “port signature”, the ports of the plugin that are exposed (and basically define the interface).

Major/minor version number isn’t really sufficient for that though, because adding ports but leaving the existing ones unchanged is.. sort of compatible, but not really. It does change things, but hosts can deal with it as long as the ports have sensible default values. So, enter 3 digit version numbers. That’s probably a bit much for namespaces and ontologies though. Or maybe not, it depends.

Blatantly Obvious Conclusion: Versioning is domain-specific. Shame, that.

Still… things need URIs.

One thing I need to do is be able to update an ontology without breaking software that refers to it, so symlinks (ala the typical foo-LATEST.tar.gz practice) come in handy. Something like:

http://drobilla.net/ns/ingen/1.1
http://drobilla.net/ns/ingen/1 -> http://drobilla.net/ns/ingen/1.1

or maybe http://drobilla.net/ns/ingen/1.latest ?

I think maybe the best idea is to not define any sort of rigid versioning scheme (like major.minor.revision as in software) at all, but have a sort of heirarchial thing that may have as many version numbers as necessary (which could increase in the future). Symlinks (aka aliases) can make everything pretty.

http://drobilla.net/ns/ingen/1.0

http://drobilla.net/ns/ingen/1.1

http://drobilla.net/ns/ingen/1.1.1

http://drobilla.net/ns/ingen/1.2

http://drobilla.net/ns/ingen/2.0

http://drobilla.net/ns/ingen/2.0.1

http://drobilla.net/ns/ingen/1.1 -> http://drobilla.net/ns/ingen/1.1.1

http://drobilla.net/ns/ingen/1 -> http://drobilla.net/ns/ingen/1.2

http://drobilla.net/ns/ingen/2 -> http://drobilla.net/ns/ingen/2.0.1

etc. Basically any given URL with a version points to the latest version with that version as a prefix. Seems nice and open-ended yet stable to me… maybe?

Compatibility sucks. Worst part of software anything, ever.

Meta
RDF

Comments (0)

Permalink

Well, I guess it’s Wordpress now

Why? I do not know.

Meta

Comments (0)

Permalink