winterkoninkje: shadowcrane (clean) (Default)

So I've been messing around with my profile the last couple days. For the most part I tend to let it get rather stale, but every so often I go in to shuffle the interests around a bit, curse the 150 limit, see who's friended me, etc. And lately I've started taking part in an aspect of lj I've largely ignored until now.

One of the interesting things about lj is the social aspect to it. Not just the comments and the webwork of friending but also the communities, the interest searching, the schools, u.s.w. Lately I've been joining a number of communities and meeting new folks, mostly other Portlanders. Much as I prefer a number of the features of my own blogging software, it was never my intention to add that social aspect. I designed it to ease writing posts, in particular posts like mine which tend to have footnotes, references, and the like. I do have plans to add in comments, but that's about it.

If I were to write something for socializing, I'd probably write an engine for sophisticated interests tagging; remove the blogging entirely or have it just be a hook into your blog site of choice. The more I think about how I'd design such an interests machine, the more it starts to resemble certain other projects of mine. The first is a tagging engine for keeping track of large quantities of media files (this is anime, that's a photo from [ profile] urban_decay, this is a Don Hertzfeldt short, that's pr0n,...). The second is to deal with one of my biggest gripes about iTunes: namely to provide a sophisticated system for categorizing genres, e.g. sometimes you want to be specific (ebm, darkwave, japanese swing, koto,...) and sometimes you just want to be general (electronica, japanese,... or heck: music).

What all three projects have in common is they're semantic-space tagging problems. The linguist in me leaps at the curiosity of breaking into these spaces as the hacker in me leaps at the challenge of designing a general enough ontology for being able to describe these sorts of categorizations. Of course, for all of these problems you wouldn't want to just have a file somewhere that defines the relationships, but rather such definitions should be able to be dynamically discovered by use. If a new subgenre of industrial called fooz shows up, I don't want to have to add it to some list somewhere, I should just be able to start tagging my songs as fooz. Certainly the relationship between fooz and industrial would need to be defined somewhere (say, by tagging something as industrial.fooz), but once defined we should be able to tag things as fooz without needing to restate all of the hierarchy of what it's related to.

There are a number of complications too. Subcategories aren't always proper subsets of some single more general term. Take futurepop for example. One could list it as a subgenre of industrial, but one could also list it as a subgenre of trance. So one should be able to refer to both industrial.futurepop and trance.futurepop and know that they are the same thing: futurepop. But sometimes subcategories with the same name are different and should not be joined. A contrived example but, say, vs vs Another complication — though trivially dealt with — is that some things may belong to multiple groups even though those groups aren't related, e.g. the Seatbelts are both swing music and japanese music, but that doesn't mean swing is japanese or that japanese is swing.

It'll be a long while before I'd have a chance to work on such an engine, interesting as it'd be. I already have too many projects in progress (Paperboy, Titania, Eng, AIoOTuAMaaCAS[1]) and countless others on the heap of "would be interesting" (Paperboy UI[2], Oberon[3], Tsukuru[4], [ profile] winterr's ai game[5], an iTunes now-playing menubar widget, a polymorphic ranking system for iTunes[6], a versioning filesystem[7], a windowing terminal multiplexor[8], CellOS,...). I've been meaning to update my list of projects to include all the ideas mentioned above before I forget about them. It'll be a good while before I have time to start new projects, which means I can thankfully delay needing to choose from so many worthy concepts.

[1] An implementation of Optimality Theory using analogy-making as a complex adaptive system. My second potential thesis topic, preferred over Eng because it's more linguistic and so would be better for getting into doctorate programs.

[2] A general interface adding "mailbox" capabilities to Paperboy. This would be the back end of the UI which commandline and GUI UIs would pull from; i.e. the logic as opposed to the presentation.

[3] An SQL-XML bridgework so that Titania could use a relational database behind the scenes but keep the same XML/XSLT interface.

[4] An ontology-driven replacement for GNU Make. My other application for Google's Summer of Code.

[5] A Master of Orion like game using some sort of needs-based/genetic AI.

[6] I.e. so you can rank how much you like a song, an album, an artist, a genre,... and have the displayed rank be a composite of these other rankings. This project could also be rolled into the semantic-space tagging framework.

[7] An FS that would automatically keep track of older versions of files like CVS, Subversion, and other versioning systems.

[8] Something like a cross between Screen and Xserver.

Anonymous( )Anonymous This account has disabled anonymous posting.
OpenID( )OpenID You can comment on this post while signed in with an account from many other sites, once you have confirmed your email address. Sign in using OpenID.
Account name:
If you don't have an account you can create one now.
HTML doesn't work in the subject.


If you are unable to use this captcha for any reason, please contact us by email at

Notice: This account is set to log the IP addresses of everyone who comments.
Links will be displayed as unclickable URLs to help prevent spam.

June 2017

18192021 222324


Page generated 27 Jul 2017 06:40 pm
Powered by Dreamwidth Studios