After seeing Siri, it makes me wonder how important the nesting prolog like aspect is. My hope is that it ultimately proves to be a more efficient way to approach the problem.
Really though, the focus should be on quickly creating lots of apps
I just found PyKE: http://pyke.sourceforge.net/ and got excited parsing through everything. It seems though that it is just another logic programming framework. The difference, I think, between Axpress and this is the lazy execution. For example when you read through a set of rules you have inputs (patterns which must match) outputs (pattern the output is garenteed to match) and the translation which will generate the output. Most languages like Prolog don't distinguish between the output and the translation, which means that in order to search past a rule you must evaluate it, which isn't good in a world with side-effects, or slowly evaluating rules (the web). It sounds like PyKE might be able to do something like this since they claim it cooks into python code. will need to look into it a bit more
Another difference (though perhaps just in convention) is that with axpress, you commonly include both facts and the goal in a 'query'. With PyKE, I have to split up the query into facts and a single goal.
I am also having a hard time even getting something basic working in PyKE ... It might be nice to check out as a base engine, but otherwise there are going to be a lot of changes I will want to make to the engine anyway, predictive path searching, scalable rule storage, etc. Might still be worth a look though
How can I get help with axpress? What can I pay people to do? How can I do it in a scalable way?
Why am I excited about this particular technology? There are plenty of other cool things to work on, like how to grow food in your bedroom, how to get organic/local food to people for cheap; how to deliver the next generation of technology for free. The way money works right now, the rich get richer and the lives of the lower and middle class doesn't improve. I want to remove the stress of making a living for as many people as possible. If more people felt that they could 'drop out' I think they would. Where can we just start planting things? Would be nice to compile a planting guide.
With axpress, more people could get answers to their questions, fewer blocks to getting things done. Want to plant arugula, just ask how to do it and get good information. Make it very easy.
I just talked to a professor at IU - he started to try to understand what I was working on, but didn't have much luck and gave up pretty quickly. What he did end up talking about was that if I wanted to get much personal attention I would need to make a trade with the professor. This would almost definitely also involve being a full time student. He said it requires a lot of focus and used the analogy of fitting through the head of a needle to get through academia.
I mostly learned that academia isn't really interested in working with other people unless there is a mutually beneficial relationship in doing so. This is reasonable, however it seems that the trade they are looking for is 10-20 hours of your time per week, (plus enrollment in classes and a job to pay for them) in exchange for a few hours of their time per week.
Looks like academia should theoretically be helpful, but in practicality is not. The only way I get around that is as he says skewering them with something impressive.
Looks like I'll stick to scouring the inet for other people who share my interest who aren't interested in such a lopsided relationship.
In the meantime, what is axpress and why am I interested in it?
It seems that being able to have a computer answer questions would be quite valuable. The interface where you can walk into your room and start talking is still a ways away, mostly because of microphone and dictation software, however, bluetooth and phones still provide a potential input device.
- What application would this help me with?
- basic human computer interaction
- Who could I sell this to?
- any knowledge worker - esp if I can get them the information in the field. (writer, researcher)
- its a hard problem and so fun
- the feeling that if I can get a small working example going, I can impress people enough to get help/collaboration and see where it can really go.
- it seems natural that an interface with the kind of expressiveness of english is the future. Even in just the pivoting table of products example
input: x[man] = true output: x[mortal] = true
socrates[max] = true socrates[mortal] = _mortal
It seems that the biggest differences are not illustrated in this example since the only rule has no function if it were too:
input: x[truck.axles] = axles output: x[truck.wheels] = wheels function: prod(axles, 2) = wheels
semi[truck.axles] = 4 semi[truck.wheels] = _wheels
[{'wheels' : 8}]
in logic:
truckaxles(truck, numberofaxles) :- truckwheels(truck, numberofwheels * 2).
truckaxles(semi, 4). truckwheels(semi, X)
Is it possible that the biggest difference between axpress and something like prolog is that since the function is defined outside the scope of the logic reasoner, the reasoner won't be able to find shortcuts or optimizations in various combinations of computations:
sub(sum(x, 2), 2) => can't be optimized. The compiler can only return the program: load x; load 2; add; load 2; add; pop result