Registered Member
|
Project K.I.I.M
This is an idea of mine I've been thinking about for quite a while, the more I think about it, the more I like it. {{{{Remember, this an idea only, there is NO work to implement this as of yet. I'm hoping people would be interested in it and help me work on it}}}} Meet Kiim, or rather, KDE's Intelligent Information Manager. (K.I.I.M) Kiim is (or rather, will be) an intelligent agent. To specify; a natural language front-end between the computer, you and your information. Take Kontact, a hub around other tools; Kmail, Kopete, Akregator and other personal information tools. Imagine Kiim doing a very similar task. Tasks are added by telling her about them. What would this mean? It would mean, in the end, a system that talks to you; gives you the news, alerts and even possibly reads out emails. Can talk with someone when your away through Kopete, reminds you of appointments...makes appointments for you (example through Kopete; Jack: Hey Dan, I'm going to the bowling alley in 20 minutes, wanna come? When I come back, Kiim tells me Jack's message, depending on how much I 'trust' Jack, Kiim could make this an appointment. Also possible would be Kiim creating tasks based on what was said through email/IM) The above example is quite simple; keywords are a Natural Language Processor's best friend, in this case, such keywords are; Going/Bowling/20 minutes/? Who would it serve? Just about everyone! The idea here is to get your computer working alongside you instead of you working within it. Whats more, it could monitor system health, manage the installation of applications, play media, manage the computer...all through natural language. Imagine that! What's more, it could perform face recognition to log you in. (god knows there are plenty of resources online that can be freely used) It could use festival to speak. Put it in context for me. As I am apt to do as a writer, let's stare into the crystal ball here... You get up, aching and groaning. You turn your computer on. The system boots up. The camera turns on; "Good morning, John. Today is the 14th of May. You have 11 new messages, two from your Mother. Do not forget that in six hours you have an appointment with the Dentist." You read the messages, replying to a few from friends and family. "How long until the appointment?" you ask Kiim. "Six hours, twenty seven minutes, John." "Give me directions to it" (Home's current position has been given to Kiim) "Here is a map and a list of directions. Estimated time of journey; 8 minutes" (In this case, Kiim assembled data about the local services, gathered from online services, such as Google Maps. The map and directions, as well as the estimated travel time, are also gathered via the same route) "Please print it." "As you wish...I have printed it" (The pause there was indicative of Kiim getting feedback from the printer saying it had finished it's task) --------------------------------- 7 Hours later --------------------------------- "Good evening, John. I trust you went to your Dentist appointment?" "I did" (Kiim marks it off as 'completed') "but I've been given another one at midday this Saturday" (Kiim creates a new task, and knows it is another Dentist appointment by the eariler conversation) "Very well. I shall alert you when it is time." ---------------------------------- "Kiim, I fancy listening to MUSE, can you put some on, please?" (Kiim goes through the music library, finds MUSE and starts it, with the most played tracks first) 15 minutes later... (music dips in volume, Kiim speaks) "John, there is an email from Kate, concerning photos. Shall I bring it up?" "Yes Please" (John reads through the email and notes that Kate wants a copy of the photos of their recent camping trip) "Kiim, please send a copy of all photos with the tags 'Kate' and 'Camping' from the last three weeks to Kate." "It is done" (Kiim went through the photos, found pictures (she knew they were pictures due to the extensions) tagged 'Kate' and 'Camping' and sent them to a contact named Kate in the address book. ---------------------------------------------- "Kiim, bring up the document I was working on yesterday." (Kiim looks for documents with the creation date of yesterday) ---------------------------------------------- "Kiim, send all my documents from yesterday to the disk" ("The Disk" is taken to mean the most recently inserted USB Drive, Kiim looks for any documents that were modified/created yesterday) "Done." ------------------------------------------ "Kiim, translate this to Russian and send it Luba" "....Translation done, sending....sent." ------------------------------------------ "God, I hate my brother..." "Why do you hate your brother?" (Kiim calls upon a clone of ELIZA to do the talking Tongue 2) ---------------------------------------------- There is a lot more that can be done. Umm...well, that made for interesting reading, but...why? Kiim has a lot of potential, and as our world expands, we must find ways to automate tasks, keep our lives fairly simple and make sense out of more and more and MORE data. Kiim would be the groundbase for it. Such a project has never been attempted before in the history of FOSS, or even in the history of proprietary software. It's a massive undertaking, I agree. Thanks to the world of FOSS, a good deal of work is not needed. We're not going to be building from scratch, mainly just linking things toghter under a (code-wise, rather simple) interface. I can do a lot of things, I know a lot about AI tech and I can assist. But I need developers. I would LOVE it if developers think this is a really good idea and start to think about it. AI is rather lacking in the one place it would be most useful; the desktop. I want to change that, but I need people of whatever skill level. I want to help make KDE a great thing. I want to make Linux available to everyone. As stated elsewhere, this would NOT need to be built from scratch. Most of it would just be linking it together. But...surely the desktop as it stands could do all that? The Desktop metaphor as it stands does not easily lend itself to automation. This is to create an interface that can be used by anyone, as long as they know how to type, it can be used by them. Also consider the practical benefits this would have to the disabled. It also comes to mind that this interface would not be out of place in a Home Automation system, or a touch-screen or gesture-based system. A future proof interface, basically put. Well....maybe your on to something, got any specs? I'm still in the process of writing them. Contact me through here, or through the PM system if you wish to discuss it further. PS; I have spent the whole day writing and rewriting this post for clarity. If you've read all the way down here, thanks Any and all feedback appreciated.
Last edited by TheBlackCat on Tue Jun 23, 2009 6:15 pm, edited 1 time in total.
Dante Ashton, in the KDE Community since 2008-Nov.
-Artificial Intelligence Specialist. |
Registered Member
|
sounds rather ambitious. i hope this thing will work not only for the english speaking people
NoobSaibot, proud to be a member of KDE forums since 2008-Oct.
|
Registered Member
|
It is, but who says that's a bad thing, eh? :P
I agree, I would want this ready for multiple languages.
Dante Ashton, in the KDE Community since 2008-Nov.
-Artificial Intelligence Specialist. |
KDE Developer
|
A lot of the necessary information is or will be available through KDE APIs, e.g. access to emails, contacts, events, relations between such items, etc.
I guess the hardest part is to transform the input into something that can be mapped into queries that frameworks such as Nepomuk can then process. Cheers, _
anda_skoa, proud to be a member of KDE forums since 2008-Oct.
|
Registered Member
|
AIML (Artificial Intelligence Markup Langauge) provides a good ground-base for starting it off. It dosent do the trick right out of the box, but it'll be useful.
Most of it would be keyword matching, a simple enough task. Dosent require much in terms of resources, either. Oh, my fingers came up with another little scenario; (You pop in a DVD) "Kiim, please create a backup of the Documents folder and burn it to disk." "Creating back-up....back-up created. Burning to CD...Ah, it seems as though there is an error with the disk. Might I advise you clean it, or use a new one?" Kiim could provide a much more understandable set of error messages, as well as providing a general introduction to the systems. (Think of that like the KHelpCenter, only it talks back!)
Dante Ashton, in the KDE Community since 2008-Nov.
-Artificial Intelligence Specialist. |
Registered Member
|
i like kiim already, could it be a female
NoobSaibot, proud to be a member of KDE forums since 2008-Oct.
|
Registered Member
|
Added more specific tag
Man is the lowest-cost, 150-pound, nonlinear, all-purpose computer system which can be mass-produced by unskilled labor.
-NASA in 1965 |
Registered Member
|
The name Kiim was chosen because it meets three criteria;
1. Satisfies KDE's naming convention for apps. 2. The acronym is a polite nod to Artificial Intelligence in fiction, which often have an arconym as their name. 3. Is also a generic non-gender name. (if a little misspelt) For the record; I've little intention of leaving this project, I plan to assist it's development in any way I can. Just need a few people who are interested and have the time. Thank you to everyone for the votes so far
Dante Ashton, in the KDE Community since 2008-Nov.
-Artificial Intelligence Specialist. |
KDE Developer
|
I think there should be different steps:
1. Analyze sentences, keyword are simple, but things like a "not" should be detected 2. Look up for the keywords in a database 3. Receive a script matching those keywords 3.1 DBus-Script Simple scripts calling DBus-functions 3.2 Universal Kross-Scripts Ruby/Python/JavaScript/Java/Scheme (I'm working on Scheme) 3.3 System-commands Call a normal command 3.4 KRunner Of course KRunner also provides possibilities That's it. I would definitely help. |
Registered Member
|
@The User.
Analyzing sentences is possible, but heavy on the CPU (that is, if you mean a complete analysis where all possible data is extracted) so I can't really see how something other then keywords would be helpful. 'Not' in what context? As an afterthought, there may be situations where there are multiple choices for Kiim. I would suggest a pop-up window to display which choices (a 'Did you mean...' kinda thing) @Everyone; I would like you all to stare into the future, and think about what things Kiim could be doing in five years time, with faster computers, more data, better tools to extract said data....and tell me your not astounded by what could be possible by Kiim. Also think of what things Kiim could do that a GUI (or even a CLI) could not do...extensible in every direction... Currently I'm writing a PDF I will post here explaining Kiim in more detail.
Last edited by Dante Ashton on Tue Jun 23, 2009 10:21 pm, edited 1 time in total.
Dante Ashton, in the KDE Community since 2008-Nov.
-Artificial Intelligence Specialist. |
KDE Developer
|
"I've not yet visited Bob."
Keywords: "'ve", "visited", "Bob" But the components are independent. First keywords would be enough. And level 2 and level 3 could work. PS: There could be many different interfaces: -GUI -CLI -Kross - semantic scripting
Last edited by The User on Tue Jun 23, 2009 10:51 pm, edited 1 time in total.
|
Registered Member
|
Ahh, now I see.
Perhaps it might be wise to get Kiim to confirm the input if she isnt too sure...
Dante Ashton, in the KDE Community since 2008-Nov.
-Artificial Intelligence Specialist. |
Registered Member
|
Maybe the first step would be putting out a call to find out if anyone has code that comes close to this. There may be some researchers somewhere working on something similiar
|
Registered Member
|
Recently I was thinking about similar thing. Yet not so cool (it wasn't talking back to you, but... )
The idea came up for dolphin filter bar (I'll be talking about it, but take it as global : Make filter bar some sort of SQL input Example: * You say: "Find all big documents created same day when I've met Tod" * Recognize voice and get: "Find all big documents created same day when I have met Tod" * Make query something like this type:documents size:big date:(person:Tod period:day) so users could type in manually if mic is unavailable, recognition feature is still buggy * Form SQL query (with nepomuk, akonadi integration) SELECT * FROM `documents` WHERE `size` > 1M AND date IN (SELECT * FROM `contacts`, `calendar` WHERE name = 'Tod') * Display results What I want to say. Your idea is great and will be very complicated. Making it as layered solution (Voice recognition, phasing voice, creating queries, doing actions, getting feedback) , we could have it useful even without first two layers Anyway, before writing more I'd like to wait for PDF p.s. If you need me, PM or something. Skills: Mysql and web programming - advanced
Last edited by Lukas on Wed Jun 24, 2009 7:19 am, edited 1 time in total.
|
Registered Member
|
This is related to social desktop project. Social desktop might gather many information about us and make possibly to share it. It can be great idea if K.I.I.T can recognize we have turn on screen saver already and tell new speakers we aren't in place. Other possibly using is to share information. We can tell K.I.I.T to tell somebody some think in two cases:
a) When it is possible b) When this person asks for it We can also select with information we need shared, ex. home adress, phone numbers and whom K.I.IT should tell this info. So it's Nepomuk, Decible, etc. related project.
Lachu, proud to be a member of KDE forums since 2008-Nov.
|
Registered users: Bing [Bot], gfielding, Google [Bot], Sogou [Bot]