Wednesday, September 16, 2009

In the beginning, there was PCchat

Around late 2003, probably long before anything like it, I started working on a project called PCchat.  It was suppose to be a chat like console where you would just type any command in a natural language and the program was suppose to figure out what you meant and execute the command or commands from your input.


Back then I had no idea about formal grammars,  Noam Chomsky, natural language processing (NLP) or computational linguistics.

Due to little feedback and lack of a clear direction I’ve abandoned the original project,  which you can still find here.

Years later, in 2008, for my bachelor project I chose to continue my work on PCchat. This time I was well informed about what natural language processing implied and I wanted to use the Natural Language Toolkit and rewrite PCchat in Python.

After reading a couple books and studies I realised  the project would not be ready in time if I took that path. So, instead of a natural language chat like application, I started building a pseudo-natural language shell ( in C#) that was ready by the time of the final exam, but had nothing to do with NLP.

It had a list of commands with natural word order and a clever algorithm to quickly select commands and arguments based on what you typed. I’ve impressed the examination committee with my presentation so it looked like I was off to a good start.

I published the new PCchat online and  waited for feedback. I had a long list of things I wanted to implement like multiple arguments, extensible XML ontology files  with stand alone command scripts written in Iron Python, multiple commands in pipeline mode and context sensitivity  but I got very little feedback so I was discouraged in continuing the development. The project was once again abandoned.

In 2009, I thought I should give the new PCchat another chance by making an English version and renaming the project to something more appropriate: EasyShell.

On September 4th 2009 I finished the project's website  and published the 0.4 version, which is quite stable and works on XP, Vista and Windows 7.

I consider the project  an alpha version, because although it’s fully functional and probably more stable than many beta applications, I don’t know what the final form will be.  It all depends on your feedback.

3 comments:

  1. I like a lot what you are doing. I'm not a coder, but curious about programing languages, NLP and the Human Interface. When I found EasyShell, also I found Proto, a file manager regarding ideas of Jeff Ruskin.
    http://miechu.pl/proto/

    Thank you.
    /sebastian.

    ReplyDelete
  2. First of all, that Proto app is some serios step in terminal software!

    Now.. dude, you never told me that you planned doing some NLP on easyshell! I didn't even know you knew that stuff. Damn, when I was in Brasov at university, I had a few big courses on Formal Languages.. the teacher (a shitty one) had us doing all sorts of things, and even a small compiler.. unfortunately, the teacher was so shitty that we all forgot everything we should have learned in no time.. I wish we had another teacher, because I would have loved to learn about these topics..

    Anyways.. you told me that easyshell is nothing but a bunch of deeply nested if statements, and now I have to find out on my own that you planned doing some serious nlp stuff ? Bad son!

    ReplyDelete
  3. Oh, as I said, I am not a coder. Just a guy curious about coding theories. I am not able to write even Hello World in Python or whatever.
    I said I like easyshell and I did not want to mean that it is a bunch of if statements. I do not know how easyshell is made, but I am able to see its concept, the idea and its relation with things I like from coding theories.

    Keep up on the good work!

    ReplyDelete