profile profile

Microformats2 RDF Ontology

I'm serializing the microformats2 vocabulary into RDF; repo on github.

Disclaimer: This post is (not necessarily coherant) notes as I go along.

Useful notes by Tom Morris about mf2 to RDF mapping on the microformats wiki. I updated the namespace to use the one suggested there (http://microformats.org/profile/).

Everything starting with h- looks like it's a class. Typically RDF classes are capitalised so this makes me cringe, but I'll cope.

Woah, there are a lot of properties. Seventy unique properties. I didn't realise. On the wiki most don't have a description, many are duplicated in the list, and none of them seem to have their own description page (and thus no URIs to refer to them with). Pasting them into a spreadsheet was the quickest way to de-dup and alphabetise them. Now I'm working through one at a time, adding descriptions and mapping them to existing properties in FOAF (because many are obvious), VCard (because many (all?) are derived from this), ActivityStreams 2.0 (because SocialWebWG) and hesitantly Dublin Core and SIOC. Where they map to something well-described in RDF, I don't bother with rdfs:comment and domain and range of their own, but I'll add for those with no good sameAs mappings.

  • Is dt-reviewed same as dt-published? If not, why do reviews get special treatment with regards to differentiation between when they're written and published, and nothing else does?
  • Is there an official definition of e-content? Couldn't find one on the wiki, so made one up that is compatible with AS2.0 content, with additional caveat about including markup, which is explicit on the mf2 wiki: "The contents of something like a post, including markup and embedded elements."
  • Are e-description and e-instructions sub-properties of e-content?

I keep getting caught out by AS2.0 terms that are in the JSON-LD document but are actually deprecated (the JSON-LD contains no information other than property and class names and sometimes types; I have to remember to check the written docs). Eg. as2:author -> as2:attributedTo.

  • I couldn't find an AS2.0 equivalent property for category. Am I missing something? Oh wait, tag will do it.
  • How does p-description from p-summary?
  • Wiki says p-education should contain a nested h-card (of school and location). Doesn't that mean it should be an e- or have I misunderstood that completely?
  • It also says p-education is "an education h-calendar event" but h-calendar doesn't exist, it's h-event. Probably just a typo? Ditto p-experience.
  • ActivityStreams2.0 doesn't have a name property for Actors (only displayName). Interesting.
  • Wiki says label 'new in vCard4' but vCard4 says it's deprecated, and in any case was for address labels, so not sure what use this is in mf2.
  • What's p-note for specifically?
  • Why is p-reviewer not just p-author?
  • Maybe I just don't know how to read the vCard4 spec, but the mf2 wiki says sex and gender-identity are part of it, but all I can see is hasGender.

AS2.0 has rating but it's explicitly defined as "a non-negative decimal number between 0.0 and 5.0 (inclusive) with one decimal place of precision". MF2 says it's a number between 1 and 5. I think even less specification is better, as ratings come in come in many forms. Anyway, because I'm not venturing into SKOS, I'm owl:sameAsing them for the time being.

Update: Dropped all domains and ranges because all properties in microformats2 are actually global.

🏷 http://vocab.amy.so/blog#Doing http://vocab.amy.so/blog#Doing activitystreams as2 foaf hacking indieweb json-ld linked data mf2 microformats2 ontologies ontology owl rdf socialwg vcard w3c

Last modified: