Month of 2015-4
Amy Guy posted a very interesting read on her blog about indieweb and AS2.0 dealing with post types and I wanted to take a minute to respond.
To give a quick background, there is a debate going on in indieweb about post types and whether to explicityly list them or not, include them in the url or not, etc. For example the URL for this post will start with /article/. For my case the division between a note and an article is more of an issue of how I created it. If its just something I fire off quickly as a reply to someone or just a minor thought, its a note. If its something I take a little longer to draft, its an article. I also write my articles in an HTML editor as I tend to include more than just quick text. URL types do not matter to me at all. Its just a location. If I change types on a post, it will change the canonical URL, yes, but redirects are easy.
There are a number of improvements I can make to my site still, for instance perhaps photos are just notes that happen to have an image in them. Amy made a minor note that anything that has a in-reply-to tag is a "reply". In-reply-to is just semantics to say it was drafted in response, not a definition. My articles (like this one) may set an in-reply-to value, does not make them a reply. One of my arguements in favor of having a post type specified (at creation time) is for user control of the resulting UI. I may post a note with a location attatched, but I don't consider that a checkin. "Hey, this garden is pretty neat" is different than a post "I am at bar XYZ". Ideally I would like the former to display with just a GPS tag, while the latter should have a map displayed as its intended to announce I will be here for some time and if you are nearby you can find me here. But enough about my implementation bits for now, back to Amy's post.
Activities vs Objects
The question of what exactly you are sharing when you post something is an interesting one. The IndieWeb tends to mash the act of creating something in with the item you created. A "post" and an activity saying you created that post, are one in the same. They use the same URL. This has served us quite well in practice. Creating a stream of individually addressable activities for each action in creating a post would mean I would be creating 2 URLs any time I post (one for the post, one for the activity of creating it). Then a third URL if I edit the post. This seems like it would get quite messy especially when most of the time you really want to get the content of the post, not the activity. Activities like editing or posting, can easily be discovered from the markup on a post. Indeed, they contain a 'dt-published' and could easily contain 'dt-updated'. I believe this works better and keeps everything organized under a single URL.
Posts vs Activities
One of the biggest confusions I see a lot of people assume about the IndieWeb is that you have to publish every post in your main stream. This is not at all true. Just because I reply to someone, does not mean I have to include it on my homepage, or in a stream at all. It can be just as a single URL. Until recently I actually did not include several post types in my home page, specifically "listens" (they are included for development reason, and does not matter as I am not generating any). Currently these are only a dump of an old archive from some music program back in 2011 (see any of my post Archives from 2011/2012). Once I get scrobbling working I will stop publishing these to my stream again or it will monopolize my home page. These are more activities than posts, but they are still posts. A "post" has taken several definitions but in my use, anything that has a unique URL that I or my site created, is a post. I don't care if its in my home page feed, public, private, has a type "floop", etc. It is a post.
This post was actually drafted rather hastily, but I after forcing myself to think through the issue, I honestly believe it doesn't matter. I prefer to display post types in my URLs, but thats entirely my preference. No software should be inferring anything from the URL pattern, only from content, which means its really a UI choice. It is entirely about how you want to represent your site to your readers. Post type in micropub, is another matter, this is where things do actually matter, but also where I believe it is more an extension. Do you want to control what type or not. A bigger question is how to set type. What might be much more useful is to just have some way of querying a micropub endpoint for any additional options that should be given. Thus my site can tell all readers to present me with an option of post-type, and what options to give me. Now post type becomes entirely personal UI. Actually, I rather like this idea, makes it highly extensible... hmmmmmm.