Sunday, October 4, 2015

Questions, Problems and Projects: Finding the wood from the trees

I am lucky enough to, sometimes, be contacted by clever young programmers who might want to do something more interesting with their talents  than simply work on the next super-duper-one-of-a-kind-money-making start-up.

OK, it only happened twice, but who knows, maybe it will become a trend, some time?

 I love the idea of thinking about interesting projects for clever people. I mean I normally work from what people are doing already and I try to twist it in the directions of the things I want to do, but  been given the task of thinking of interesting, deep, in principle complicated projects, things that do not have to be ready in one week or two, it's quite wonderful.

When I was a professor in Birmingham, I had a bit more of this good feeling of researching what I wanted, but as a professor one has to worry very much  about making sure that milestones are actually in place, that things do work, at least to a certain extent, as a professor owes it to her students to think up projects that have a high probability of success. Professors also owe this high probability of success to their departments and their funders, so research is much more constrained than one might imagine.

[lovely cartoon of research freedom here, when I find it again]

When someone, who's not a student, who's got a job doing something else, wants to discuss interesting complicated problems or tools (like category theory) just for the fun of doing it, then one has much more freedom to think up projects. So here are some things that I really would like to do, if I was a person of independent means, if I didn't have to earn a living.

1. A more purely logic/categorical project, namely check all possible ways of providing categorical models for Classical Logic and showing their pros and cons.

The best explanation I know of the Curry-Howard isomorphism is the paper by Jean Gallier
(this is constructive logics part 1, part 2 is about Linear Logic is it is also very good,  but not as good)

Jean's is completely about constructive logic, but it explains a little why it doesn't work for classical logic. I don't know anything explicitly written to show it doesn't work for classical logic, but I know a collection of works trying to show that it *partly* works for classical logic: Griffin, Filinski, Parigot, Urban, Herbelin, Selinger,  Wadler, etc.. in Lengrand gives a short history.
(googling just now I found, which may or not be good)

Anyways the project here is to decide which pros, cons are more important for ourselves and then develop the favorite approach.

2. A more functional programming project: Why Linear Logic doesn't work as a model of resources for computing in Linear Functional Programming? or rather can we make it work now?

For this I had one specific way of formalizing the use of resources in the project xSLAM, explicit substitutions for a linear abstract  machine
the write-up with conclusions of the project is in the summary of achievements, but I do not have crisp version of why it didn't work and I really would like to know that.
Following this path might require learning about Linear Logic, categorical combinators and explicit substitutions, all are great fun.
3. A  language oriented project: A New Unified Lexicon
I worked for almost 9 years at PARC with people like Dick Crouch  and Ron Kaplan (my ex-manager in PARC and the Nuance Lab's founder). There we had a project called Bridge, whose aim was to "translate" English sentences into logic (a variant of first order constructive logic), which I called TIL (for textual inference logic). This used Xerox' proprietary technology, specifically the XLE (Xerox language engine) and the LFG Lexical Functional grammar (Ron's brain child). More recently I wrote and talked about reproducing some of this work, with  different grammars and other components in  Bridges from Language to Logic: Concepts, Contexts and Ontologies.

The project in this case would be to created something like the Unified Lexicon (one of the components of Bridge), which was the theme of this paper
The unified lexicon from PARC used WordNet, VerbNet, Cyc and proprietary resources (e.g. the subcategorization lexicon) to build a knowledge base where semantics happens.
My idea would be to use WordNet, Open Multilingual Wordnet (, WordNet's morpho-semantic links (described here with SUMO (, instead of Cyc and maybe Yago or perhaps Wikidata to produce a new, souped-up version of the Unified Lexicon.
Of course this is all real research, so I do not guarantee that  any of this will work as expected, but this is part of the fun, correct?

Now I do have collections of lists of interesting things to do with collaborators already in place. Some of my collaborators don't mind the fact that the lists are always long and keep growing. Some others do mind it and feel that there's too much ADD in my lists. I find that, as I grow old and forgetful, hte lists are very handy.

(The photo, woods  in New Jersey, are artwork from my friend Lalita Jategaonkar Jagadeesan)

No comments:

Post a Comment