Sunday, 12 April 2009

more fuzzy OT thinking

I've got this nice little spec that my user produced for me. It's taking a while for everything to sink in, though.
  • Ranking notation - it sounds like you can express this just as a list of lists. The big list represents the ranking of the constraints. Each mini-list represents constraints with equal rank
    • x > y = X immediately outranks Y
    • x >> y = X outranks Y (transitive)
    • x,y = X and Y have no established ranking
  • You can have more than one violation of the same type. Well, if you already have constraints that have no established ranking, then it sounds like more of the same anyway.
  • Positive vs negative constraints. This does not sound tricky. We can separate the question of ranking from the question of what counts as a violation.
  • Sorting: I get the impression that you can just sort the results lexicographically, each word being the set of constraint violations, with the first letter being the highest ranking constraint, and so forth. So when you compare words, you start by comparing the first letter, and if it matches then the second letter.
Anyway, that's just my first impression after reading the spec once. Don't take it too seriously. At this stage, it sounds like the only hard part is actually doing it, in the sense of actually dusting off the grammar, getting the Makefile of Doom back online (sigh), etc. But maybe I'm being too optimistic.

After all, the spec does have some interesting (uh-oh) suggestions like internal rankings within a group of constraints. And the question that naturally comes up is - "what if you want your rankings to interact somehow? Could it ever be the case that the violation of one constraint causes you to have different rankings for the other constraints? Would that sort of thing ever be useful? (Please say no so I can get away with not implementing it)"

optimality theory

I have pretty much shut down this week (still in the throes of routine-lag). I think I'll be taking my couple days worth of GenI-time now. Unfortunately, this isn't GenI tech-support time so more promises being delayed, but it is contract-GenI time. Anyway, I guess working on this stuff may ease me back into work-work.

I'm getting to play with Optimality Theory a bit, which is kinda nice because it always seemed a little attractive from a distance. I like this idea of being able to relativise badness. I'm still at the stage of "uh, ok, constraints, rankings, violations, huh what?" Not that anything in particular is confusing. It's just new and new things take a while to negotiate entry into brain. Right now I'm trying to work out how to translate this language of rankings and what not into hard and fast sorting rules.

One practical thing I need to do, and which I should probably reserve for Stupid Time (when head is most fuzzy) is to dust off all these extra tools I use: the grammar, XMG, this and that converter. Oh my.

Tuesday, 7 April 2009

survivor kowey

Well I think I can say I emerged from EACL fairly unscathed albeit routine-lagged.

the talk

I got lost on the first day and arrived about half an hour before I had to give my talk. Link to slides later. Talk went well. I'm not sure I answered people's questions right. I almost never answer them right. We got a best paper award for the workshop.

hacking

I spent a small chunk of Athens hacking. Not actually doing any substantial work, just tidying some stuff up that needed tidying because I had users right there, physically present, telling me what they needed. So GenI 0.17.4 is released, with no new features, but what I hope to be Cabalisation done right, tidier help text (it's got sections!) and baked-in unit testing.

I've been hopping up and down in excitement about Cabal (or rather cabal-install + hackagedb) for years now, the dream being that you be able to install GenI with a simple cabal install GenI. And now (I hope) we're finally there! The trick was just to default to non-GUI mode and only let people muddle through the GUI install once they've got the basics down. Incremental is the way to go.

Oh and I've also started recruiting people to the Haskell NLP community in earnest. I hope I can turn this into something useful. (When I say recruit, I mean, send email).

the future

Had a chance to chat about The Future with folks. Still up in the air, but if there are uses for an Eric, great! University Administration permitting, there may be a quick trip to France in the works this autumn. No promises.

otherwise

There was an amusing workshop on the relationship between linguistics and computational linguistics (the drama!), a very nice invited talk (some people have a sort of clarity of thinking) and a new model for posters. The talks all sort of blurred. I want to learn more about RMRS now for the entirely stupid and superficial reason for wanting to know what those second set of labels/handles are about and what they're good for.

They had these 10 minute quickfire presentations, which I thought was useful because I don't really like to look at posters (I hate reading things I can't scribble on, and don't feel comfortable interacting with poster people, who may not be very comfortable being there interacting with poster viewers either, so we just enter a sort of discomfort feedback loop). The key feature is that they tried really really hard to make it so that Posters and Talks were equal (published in the proceedings together). It's just a question of what the optimal presentation mode is for that kind of work. Some people think we should just do away with talks altogether. Quickfire presentations for all! (maybe)

the real conference

I have this romantic notion that there's the conference, and then there's the real conference which consists of the hanging out with people. As usual, the truth is probably a lot of messier than that, in the sense that good stuff actually does happen at the conference-conference and not just at the beer-conference, but hey, it's an entertaining idea, right?

This time, I set myself to lost puppy mode and encrusted myself (no I don't think that ça se dit vraiment comme ça en anglais) into pre-existing clusters of people including at least 1 person I already know. It wasn't so much "hey, let's hang out!" as "please adopt me". The funny thing is that it actually worked! A grateful bow to the Belgian Mafia and its French/Greek friends; as well as to the Irish-German Connection, and of course the couple of people I selfishly monopolised the first couple of nights. Thanks!

routine-lag

Most people get jet lag if they travel long distances, all two timezones. I get routine-lag if I travel for long periods. My natural state is that of a slob [extreme A], but because this state is fundamentally untenable, I have developed a fanatical devotion to Routine [extreme B].

This works fairly well. Extreme B means I get a regular bedtime, have a tidy bedroom, shave, get the laundry done, eat things which fall outside of the merde food group, and actually go to work. The only problem of course is when some situation, say a week in Greece, disrupts your All Holy Routine at which point you're back in Extreme A. Right now, the fact that I'm writing this blog post (without even being dressed, and without going to work) indicates that I'm still in Extreme A. The fact that I made my bed this morning indicates there there is hope for Extreme B yet.

Oh yes, and I need to find a better term for this than "routine-lag" because it doesn't work the same way as "jet-lag" (i.e. jet-lag is jet-induced lag, whereas routine-lag is disruption-to-routine lag). I guess a better fit for the slot would be something like disruption-lag, but then that doesn't work either because jet is specific (even if you don't actually get your lag from a jet, but say a really fast boat) whereas disruption is more general. So I guess you would need to find some placeholder for disruption, something specific that evokes it in the same way as jet evokes fast long distance travel. Err... I think I'm rambling now.