Danny Ayres recently posted some podcasts whose resources don’t include file-type extensions. Now I use a greasemonkey script that parses for resource extensions and displays icons (or embeds a flash player) next to them. Great for finding media links when scanning pages. This had me wondering; should all resources include Content-Type in the URI instead of or in addition to HTTP headers?
When a file-type extension is provided, HEAD requests for every single link to find their Content-Type isn’t then required. Some pages I load, include thousands of links(my news aggregator). A thousand HEAD requests doesn’t sound fun.
When I think about objects I see in the real world, the first thing my mind tries to figure out based on the context in which I find it is the type of object I’m looking at or feeling, and if it’s a type that interests me.
Online for me this translates into the context being the URI, and the type the extension. Therefore it makes sense to me to always include an extension.
If on the other hand I want to take a close look at an object (or resource) then I pay closer attention to it (obtain it or its metadata).
Saying that, it also makes sense to include things like geospatial information in the context. eg. date, location.
What brings me to the who, what, where, when, how and why of resources.
who owns the resource, what is the resource, where does it relate to, when was it made, how you interact with it, and the why is the data, which is self explanitory.
http://example.com/category/2007/May/21/a-new-resource.html
Or, written as an XRI:
=examplewho+tagwhere$date*2007-05-07/what-this-is$type*text-html
Though I’m unsure as to whether you can have the $type listed after a directory symbol. If you can, think about a resource with multiple URIs describing that resource. Mix and match those context symbols with alternate descriptions or locations and you’ve exposed large amounts of metadata about a resource. e.g;
=who/my-image$imgsize*100×100$type*png
=who/my-image+car+burnout+night
=who/my-image$copyright*cc-sharealike
what about using a third-party service to do a conversion.
@convertercompany=who/my-image.jpg$imgsize*10×10$type*image*png



