When I Mean Context

Posted by - March 8, 09

melative

This is a little dev-shot of a small XSL transform on some of melative’s API interface (the Action-Stream thingy). Basically, there is this event wrapper I built within the system, and it’s broken down into 3 sections (Action-Announce-Auto… haven’t thought of a name for the 3rd). More importantly is the fact that all 3 are handled exactly the same way, and have one great, underlying requirement… context.

Though the wrapper framework does not require any specific context, within melative, a context must be a user, creator, character, or media-title (among anime, Asian dramas, art, blogs, comics, film, light novels, literature, manga, music, periodicals, the stage, television, and video games). In this way, the events have direction, relation, and organization.

Action

An arbitrary set of usually transitive verbs which can be performed at/on/via a context. These ones are purposeful, meaning they aren’t automatic. They include stuff like poking, fawning, and screaming directed at contexts.

Announce

This is something I tweaked and opened today, as it required some backend linking due to the half-automated nature. Announce can be thought of a scrobbling, as it is restricted to media, and spans statuses of experience (i.e. Played song Q of album R, Watched episode Z of series Y). Because of the relation to experience, announcing may result in the experience state being modified.

The benefit of announcing is that it provides a microblogging+scrobble interface for every media context, with an understanding of context; the system knows what the hell a user is talking about because the context is outside the message and not embedded in #SomeRandomSeriesTitle message. There is also sub-context in the same form as reflections/wishes (dividing media into segments whether episodes, volumes, chapters via Basis+Range).

Auto[nomous]

While announce was rather easy to implement, these events require trickier implementation. They are equivalent to what we see on Facebook wall’s or Last’s activity section. Of the current, melative’s old API has roughly 10-20 methods which will generate an autonomous event, which is then fed into a user’s stream and to the user’s friends. Unfortunately, this section will be accomplished piecemeal, as the data and message fields will vary across the board.

Thoughts

One important item to mention is that every event requires some sort of action, which differentiates it from something like twitter, which does the one thing of single-status update. Perhaps not being able to randomly state something without context is confining, but the system can still handle it.

Each event is allotted 250 characters in message data, though only Action and Announce type events have directly editable messages. Off the top of my head,a null action could be added, which is specifically for status-update space. Doing /null [MESSAGE] would then only show a message from the user.

We can take context requirements out of a context-based event stream
but it’s more difficult to put hard context into a context-less system.

But Oh Gody Why!? It’s so manual. Yes, scrobbling announcing does need to be done manually at the moment. This is pretty new, but because the basics exist as an API, smart interfaces could very easily be built into plugins for media players, IM clients, IRC, pure BASH, twitter, whatever.

Alright, my brain is running in circles… so is this interesting? enticing?

Note: melative has new functionality under the dev-api bookmarklet as seen on the login page. Registration is secretly open, send me an email, or for users with broken logins, try the reset password method.

2 Comments on When I Mean Context

Respond

  1. mellow_bunny says:

    THIS STUFF ROX MY SOX AND YOU KNOW IT. Now if I could only apply myself to learning how the code works I could help you.

  2. Ryan A says:

    Yay! Well, as you know the new melative is running on nuclear, so it’s basically that (and I don’t have to modify how it works, plug-n-play). The good thing is that most of the API calls are totally independent of each other (but possibly related = copy-pasta or inheritance). Honestly, the php is rather lax aside from nuclear. Really all it does is a couple validity checks on ids and mostly SQL calls (I’d say 70% of the source file sizes are in SQL)…. minimal php theory, so it’s pretty straightforward (usually).

    I would spend more time with javascript/xsl/xml/css, but then the php or db stuff would never get finished… btw, I will be making the javascript for the nuclear api; simple, abstract, precise for API calls, just pass the thing to an xml request and whoosh.

Respond

Comments

Comments