[00:34] *** Davbo has joined #kamaelia |
[10:32] *** Davbo has joined #kamaelia |
[10:56] < ms-afk> morning |
[12:50] < ms-afk> hm. no-one's bothered to think about trying to make prolog type things simpler |
[12:50] < ms-afk> simpler for people to use that is |
[12:51] < ms-afk> Nor taken into account that whilst prolog is nice, most facts are non-atomic |
[12:52] < ms-afk> well, I'm sure they have taken it into account, but very few people understand how |
[12:56] < ms-afk> Also, I think that the more I look back at prolog, the more I realise that adding (user modifiable) rules into the database for a web app which also accepts user data *AND* (crucially) runs queries based on those rules |
[12:56] < ms-afk> does mean that I've implemented a mini-prolog core. |
[12:56] < ms-afk> (having looked at 3 prolog implementations in python now) |
[12:57] < ms-afk> It's completely sub-optimal though |
[12:57] < ms-afk> tis amusing though. |
[12:58] < ms-afk> (relevant to kamaelia since I'll be adding the rule engine, as I've been referring to it, to kamaelia at some point since I need it to be able to run continuously, and K is an easy way to achieve that) |
[12:59] < Davbo> sounds interesting ms-afk |
[13:00] < ms-afk> Davbo: Well the thing I've done is been doing some digging after last night and found up why micro-prolog was easier to learn than traditional prolog |
[13:00] < ms-afk> and its for 2 key reasons |
[13:01] < ms-afk> firstly it used a more human friendly syntax - which just naturally assists comprehension of what's going on |
[13:01] < ms-afk> The other though was that rather than just coming back with "No" or "False" |
[13:02] < ms-afk> if it would fail because of insufficient information, it's default would be to a) tell you that by b) asking you for the information it needs |
[13:02] < ms-afk> That by definition would assist with writing more programs. (And also give you interactivity for free) |
[13:03] < ms-afk> eg define a term in normal prolog: |
[13:03] < ms-afk> citizen(X,Y) :- born(X,Y). |
[13:03] < ms-afk> and then query: |
[13:04] < ms-afk> ?- citizen(john, X). |
[13:04] < ms-afk> ERROR: citizen/2: Undefined procedure: born/2 |
[13:04] < ms-afk> In microprolog, becomes |
[13:04] < ms-afk> % X citizen-of y if x born-in y |
[13:04] < ms-afk> User then goes: |
[13:04] < ms-afk> % User: where John citizen-of x? |
[13:04] < ms-afk> system then responds: |
[13:04] < ms-afk> where john born-in x? |
[13:04] < ms-afk> user responds: |
[13:04] < ms-afk> England |
[13:04] < ms-afk> Machine response with: |
[13:04] < ms-afk> John citizen-of England. |
[13:05] < ms-afk> It's not a *huge* amount better, but it's definitely more person friendly |
[13:05] < Davbo> That's a lot better to the "No" we normally get |
[13:05] < ms-afk> indeed |
[13:06] < ms-afk> Well, given that concurrency is now easy to work with, I have to think about what to add in next |
[13:06] < ms-afk> :-) |
[13:07] < ms-afk> And also I am working on something where I've got some form of very simplistic data/rule/query system based on json objects |
[13:07] < ms-afk> so that seems a logical thing to bear in mind |
[13:07] < ms-afk> Also, the system I'm dealing with does also have the mechanism of being able to pose questions to people to gather the data necessary... |
[13:08] < ms-afk> OK, wandering off for a while now |
[13:08] < ms-afk> back later |
[14:44] < Davbo> http://www.linux.com/feature/149992 "Will Richard Stallman insist that the baby be called GNU/Linux?" |
[15:18] *** vmlemon_ has joined #kamaelia |
[16:26] *** vmlemon_ has joined #kamaelia |
[19:14] *** Davbo has joined #kamaelia |
[19:49] *** vmlemon_ has joined #kamaelia |
[19:53] < vmlemon_> kamlogbot: dance |
[19:53] Reply: does the macarena |
[19:53] *** Davbo struggles to uninstall python2.6 |
[19:54] < Davbo> or at least make 2.5 the main install |
[21:27] *** vmlemon_ has joined #kamaelia |
[21:37] *** vmlemon_ has joined #kamaelia |