This post details the ongoing work that Gustavo Garcia and I have been doing at http://microformats.org/wiki/OpenService_Extensions. Our stated goal is to figure out the best way to extend Microsoft's OpenService specification to allow for microformat support (and possibly other functionality). We definitely want to have more discussion on this, so if you are interested, please participate. Note that Microsoft has suggested that any changes we make be in a new name space to allow for good coexistence with IE. We're investigating that.
This post assumes you have a basic understanding of what OpenService looks like, so you might want to read up on that first. So without further ado, here are our suggested changes to OpenService.
Support for more contexts
Currently IE supports three contexts: selection, link and document. A given action is applied based on the context where the user right clicks. For microformats, we would add support for microformat names as a possible context. We would also allow those microformat names to be followed by an item in the microformat so that actions could be shown based on the availability of data in the microformat. For example,
would indicate that the action would be available for any adr.
would indicate that the action would be available for any adr that also had a postal-code.
Domain scoping of actions
Currently a given action is available on every website. There are some actions that should only be displayed for a given site. For instance, cork'd.com uses tags to reference their wines, but they really only make sense in the context of their site. To solve this, we would introduce a new attribute to activityAction called domain that would specify which website should have the given action available.
More substitution variables
The substitution variables for the actions would have to be enhanced to allow for the substitution of values in the microformat. Here's an example:
This action queries the country-name property directly from the adr microformat and substitutes it. If the referenced property is a plural property, all the items are put in one string separated by a space and then substituted.
This idea is probably the most controversial, but I don't see a better way to get the richness that is needed to interact with certain web services. If anyone has better ideas, I'd love to hear them.
Action Discovery on Web Pages
We'd also like to see the ability for a web page to advertise that they have a service available, similar to how OpenSearch works. For OpenService, it might look something like this:
We're still working out how this would be discoverable to the user, but we think it should be in the specification.
On a completely unrelated note, if you are the praying kind, please keep the Chapman family in your prayers. They lost their 5 year old daughter yesterday in a tragic accident. My cousin Melissa works for them as their nanny, so she needs your prayers as well. She's taking this pretty hard. Thanks.