Thoughts About Assertion Workflows

This is a preliminary technical workflow proposal for assertions, which would be needed for badges, endorsements, and other ideas. It is based on thoughts that I had listening to the badges session at Indiewebcamp NYC 2018.

Scenario 1: Individual creates criteria and wants to assert that other individual has achieved said criteria. Example: Professor wants to certify students completed coursework.

  • Professor Posts Criteria for Each Achievement as a unique page (A).
  • Student completes assignment as a post (B).
  • Professor Posts Badge/Assertion/Endorsement post on their website as an h-review, with a p-item property to student’s URL (B). Would need a new or existing property to represent the relationship to the original assertion (A). Suggest u-assert and u-assert-of?j Can use u-in-reply-to possibly.

Scenario 2: Individual creates assertion post and solicits others to endorse that statement as factual.

  • Individual makes a post to their site(h-resume for references on a resume, not sure what to request endorsement of a statement? p-assert with a nested h-item?) and invites other individuals(using existing invitee property used for RSVPs?) to endorse or assert it. Criteria might be included for achievement.
  • Others create ‘assertion’ posts on their site(assert-of) and send webmentions, which would cause the post to be updated to note that it had been achieved.

Existing microformats for h-resume and h-review seem to allow additional context.

  • Education
  • Experience
  • Skill
  • Rating
  • Best
  • Worst

Brainstorming on the Indieweb wiki under assertion.

Episode 10 – The Thrilla in Manilla


October 1st will be the 43 anniversary of the Ali/Frazer fight. I spent a month in Manila and the title was suggested by Chris as appropriate.

In this week’s episode, we discussed new developments in WordPress and what I’ve wanted to accomplish for all these years in the Indieweb community. The ability to read something on my phone, store it on my website to either share or just save, as appropriate.

We discussed recent projects I’d worked on, such as the Micropub plugin, client discovery in IndieAuth, Post Kinds, etc.

Ryan Barrett, who created the Micropub endpoint for WordPress, has turned the project over to the Indieweb repository as he has not been using it or actively working on it. I have been actively working on a major set of changes for it over the last two months. Ryan, despite not using it, has been generous with his time and feedback, despite the occasional WordPress or PHP frustration…and hopefully not too much from me. In his honor, I wrote this post on Indigenous for Android, published via the current release version of Micropub.

Replied to Chris Messina™ on Twitter (Twitter)

“Is it time to resurrect the DiSo Project? https://t.co/Sd3p8Gl6M8 Funny, we were here in 2006, @simonw: https://t.co/Vmz06KA1Gp /cc @willnorris @steveivy @singpolyma https://t.co/eWYliJtI2y”

People continued working on it. Everything you need using W3C standards like Webmention, Microformats2…give it a try? https://IndieWeb.org/WordPress/Plugins

Tomorrow I am going to be once again spending time in Manila. It has been on my mind lately, as it is a long journey and a hard trip. But, I intend to make the best of it and be as productive as possible.

Your Endpoint Did Not Return a Location Header

There have been some issues with Quill and other services advising that the WordPress Micropub endpoint did not return a Location header. There seems to be some confusion about this, which is partly because the message is a bit technical. One individual thought that this was related to Simple Location.

This indicates an error on the part of the Micropub plugin. Regrettably, in addition to not displaying the error response prominently, the Micropub specification dictates that the error response returns one of 4 error codes, and may return a human readable error description to assist the client developer in understanding the error, but is not meant to be shown to the end user.

This does not account for errors on the endpoint side that may need to be debugged. Currently, the WordPress plugin that creates the endpoint does not surface error messages on its side either to allow you to figure this out.

Better error messaging to the end-user on one side or the other seems to be a common issue amongst Indieweb tools to help them figure out the issue.

The most common issue that explains the failure is an inability to associate the URL with the user account. There are two versions of the software that does this.

  • In the IndieAuth plugin, to ensure accuracy, the plugin passes the WordPress user ID in the return to ensure that it can find it.
  • If you don’t have the IndieAuth plugin installed, the Micropub plugin uses an external IndieAuth endpoint instead of a built-in one, and the following techniques to find the WordPress user from your URL
    • If you have the Indieweb plugin installed, it looks in its settings for the default author on a single author site.
    • If you are using the URL of your author post archive, usually /author/username it will try to use that to get your username and therefore your user ID
    • If you have set a website URL in your profile, it will try to use that. Please make sure your website URL uses https if your website does, as this has caused some issues in matching.

In both plugins, we continue to improve the functionality in this case and I often port ideas that improved functionality in one version into the other, as they are both authorize Micropub using IndieAuth, but in the case of the Indieauth plugin, it also implements the IndieAuth functionality.

Right now, I’m working on improvements to the Micropub plugin to improve the error handling, among other things, and hopefully this will help.