Ontology of the Feels

I had an idea for a tiny wee project to do with quantified self. More on that later.

Because I'm trying to use linked data for everything, for reasons beyond the scope of this post, the first thing I did was sketch out the data I need to store in a graph structure. I need to record emotions, so I did a quick search for ontologies that represent emotions, figuring psychologists and the like must have been at this for years already.

Sure enough I found a few, but the most convincing one, the HUMAINE Emotion Annotation & Representation Language (EARL) is in XML rather than OWL.

Yay! Time to convert a well structured and useful dataset into RDF. Always a Good Thing.


EARL comes as many files, and goes beyond what I need. But it's not huge, and with a little effort (and looking some stuff on Wikipedia) I think I can understand what's going on enough to convert the lot.

Note: There's apparently a lot of disagreement about terms and stuff in this area. Not something I'm invested in, so I'm just going to roll with this XML.

There are:

Emotional occurrences can have all of the above as properties, as well as probability and intensity. Complex emotional occurrences have times, and contain a minimum of two emotional occurrences with the above properties.

The terms are all taken from various different psychological experiments or schools of thought. There are alternative versions of some of these things from something called AIBO. Arbitrarily I'm ignoring everything prefixed AIBO for now.


I'm going through the files and writing everything relevant out, then drawing it as a graph.

First juncture: do I use all the attributes (like the list of 55 emotions) as properties (as they are demonstrated in the original XML) or use classes? Properties seems messy, and feels less extensible, even though technically I suppose it's not.

Maybe they should be properties. Except the categories, they all (or at least most) have corresponding DBPedia entries that it would be stupid not to take advantage of. But the dimensions, regulation and appraisal might be better suited to being properties, otherwise I'm having pointless identifiers or blank nodes everywhere. And nobody wants that.

I adjusted the Samples thing a bit, mostly to simplify it, and I may have got it wrong, but I think it makes sense.

Then I typed it all into WebProtege. As a result, I think quite a few things are overspecified. What do you think? Check it out: http://vocab.amy.so/earl.

🏷 http://vocab.amy.so/blog#Doing http://vocab.amy.so/blog#Doing conversion emotion emotions feelstracker hacking learning linked data ontology rdf semantic web

Last modified: