Ai Dreams Forum

Member's Experiments & Projects => General Project Discussion => Topic started by: Snowman on December 27, 2013, 09:12:38 am

Title: The Athena Project
Post by: Snowman on December 27, 2013, 09:12:38 am
I suppose this thread will be devoted to the The Athena Project. I've noticed by reading a few of the other threads that there are currently lots of minds devoted to the task of making a chatbot, ai, or something similar. Athena is intended to be my study into ai architecture and perhaps I can add something to my own understanding of the human condition in general also. Basically, I look at ai from every angle and endeavor to make something practical.

     What kind of ai do I intend Athena to be?

I think Athena should be a database of knowledge that mimics as much as possible a real companion. I don't intend for her to be an actual living thing. In order to make an actual living thing, you would first need to encode behavioral knowledge into a physical structural medium that not only processes information but also interacts with its environment. All Athena will be doing is sitting dormant in code upon the undynamic nature of a hard drive. In other words, she can't truly interact with the real world, except for the miniature world of the input window of a console.

     What am I focused primarily on when developing Athena?

I think my focus has mainly been on the actual ai engine. True, I have also worked on a platform of sorts, a user-interface that will make coding Athena fun and exciting. However, what's the point in making a terrific user-interface, or even an avatar, if you don't actually have a clue as to how to make the ai in the first place. Don't get me wrong, I think that graphics and beautiful ai girls have their place in the ai community, its just that I want to use my particular talents on the engine itself.

     Do I intend to sell Athena when she finally gets finished?

Well, I've almost decided to make it a donation type of service. If the people appreciate Athena then they will donate. If they want to donate time in coding and graphics, and they think they've added something to the Athena community, then if they don't feel like giving money then they shouldn't do so. The ai community is a sincere one. Most of them I've seen are in it for curiosity sake. They are dreamers (as the forum name Ai Dreams suggests). Also, many people are getting good at cracking software nowadays so... Anyway, I think you can always use other means of earning money. Like in selling custom packages or some other related sales. I'm sure I can think of some other way of earning money. (i.e. Haptek has a free player, but earns money by selling different types of editors).

     What about customization?

Like I've already mentioned, I think people will help develop Athena. That is intended. I want to make it as easy as possible for any person to learn coding and edit Athena's behaviors. I want it to be highly customizable. I even made the user-interface very customizable. So yes, I want the community involved.


I hope to add many more ideas and thoughts about Athena soon. I intend to present an overview of the coding that I've created thus far and give some details as to why it matters. From Language processing, search features, database creation, various utilities, and algorithms I hope to present these in this thread. (now don't fall asleep yet, it will get a lot more boring from here on out.  :P ) I think by making Athena a bit more open source I will probable gain some insight into other peoples ideas and perhaps learn a thing or two about the ai community.

I don't want to get so greedy that I rob my support community. (like shooting yourself in the foot.)

Title: Re: The Athena Project
Post by: NickyBlue on December 27, 2013, 11:20:31 am
Wish you best of luck snowman! O0  Will try my best if I can be of any service to you. Welcome Abroad! ...smile :)
Title: Re: The Athena Project
Post by: Art on December 27, 2013, 02:26:36 pm
Aaron,

It might be nice if you were to bring us up to date with respect to your development stage of Athena. The last time I watched one of your latest videos, she was actually coming along quite nicely and it almost seemed as if it was about 80% complete so-to-speak.

Thanks also for joining with this AiDreams community. We have a well established group of really great, supportive people and the Admin isn't bad either! LOL!!! :knuppel2: O0
Title: Re: The Athena Project
Post by: Freddy on December 27, 2013, 02:40:47 pm
 ;D Thanks Art !

Snowman, I have been working on avatar systems off and on for a while now both 2D and 3D, so I think at some stage I might be able to make something portable enough to be used for a system like yours.

Good luck :)
Title: Re: The Athena Project
Post by: Snowman on December 29, 2013, 01:25:56 am
Hey  NickyBlue, I've been pouring over your "Is this novice idea any use to you... any extent?" thread. Good stuff.. still reading through it.

Art - I'm uploading a youtube vid as we speak. :)

Freddy - to say I'm interested in your avatar work would be an understatement. I certainly am in need of something other than haptek. What language are you coding it in? Will you add support for scripting? i.e.your version of a .hap file. I guess I need to read up on your work. I thought I seen a thread somewhere talking about your avatar.  O0
Title: Re: The Athena Project
Post by: Snowman on December 29, 2013, 03:23:43 am
It's finally here!!!  :P


http://youtu.be/v2TMSmk3dWQ (http://youtu.be/v2TMSmk3dWQ)



Title: Re: The Athena Project
Post by: Freddy on December 29, 2013, 03:44:45 pm
I'm coding in C# in Visual Studio 2013.  There's not a lot to read at the moment, you can see what I have done in this thread though : http://aidreams.co.uk/forum/index.php?topic=5760.0 (http://aidreams.co.uk/forum/index.php?topic=5760.0)

I had been working on a pseudo-3D avatar but ran into limitations that made me want to shelve that idea. It's in the projects section, called the 'Flixz avatar project'. It may still come in useful but I stopped on that for now.

But this one I linked to I will be working on. The big thing for me was working out how to do morphs and how to combine them too. It really got me thinking but finally I cracked it as you can see in the two videos in that thread.

Scripting would be nice to implement, good idea, it really needs that if it's going to be useful. I need to work on where the models are going to come from first. I'd like to use Poser/Daz3D models (probably just heads to start with) but that needs some tinkering. The C# library I used to import OBJ models doesn't import the Daz figure's textures correctly. This is annoying, but I am hoping the programmer will figure out why.

All fun :)
Title: Re: The Athena Project
Post by: Art on December 29, 2013, 08:32:42 pm
Aaron,

You lost about 9 minutes of AUDIO somewhere from 30:00 to 39:00 (give or take).

While it is certainly nice to have you back with us, are you sure the world is ready for such detailed and elaborate presentation of your chatbot? I think a lot of it is over most peoples heads and is it needed? I think a more general approach might be better accepted by the masses. How about a "what I've done so far is the GUI or the handling of input, etc. How far I am or Athena is from being completed and what else I need or may need. Etc., etc. I personally think sometimes we can get too caught up in our own details that we forget about our audience and their lack of concentration for more than a few minutes. Just a thought! I watched the whole thing! Then again, I'm a chatbot junkie!! O0
Title: Re: The Athena Project
Post by: Carl2 on December 29, 2013, 10:29:14 pm
  I remember the Athena Project from ages ago, nice to see it's still moving forward, best of luck with it
Carl2
Title: Re: The Athena Project
Post by: Snowman on December 29, 2013, 10:42:40 pm
Oh dude!!! I don't know what happened to the missing audio... that should not have happened.

Art, the main reason why I haven't created any video in a while is because I felt like I had nothing of interest to tell about. Its easy to show the ui, but boring to talk about the inner details. So since there's only boring stuff to talk about I chose not to say anything at all. As for a release date, I couldn't even venture a guess, I would be lying no matter what I date I gave.

Although, I kind of chuckled when you mentioned that I gave too many details. I had to leave so many details out I almost felt embarrassed about it... lol...   ::) . The long version would take many many hours to give.

I'll figure some way to shorten it down some and take out some more details. However, I'm not interested about making the world happy with my videos... the world has never really been a friend to me. But for you Art, I'll do my best.

I do intend to make detail videos. They are not intended for the average person. As I don't know any average people who are interested in Ai. Well, maybe in a robot that will bring them a beer or something like that :P.

Anyway so worries... I'm glad you said something Art. I need to be more specific in what I'm trying to accomplish.

I'll the mean time I will unlist the video from youtube so only you guys here on the forum can see it. I'll work on a remake asap.

And for everyone reading this post... don't be afraid to be candid with me. I've never been known for holding grudges.  :knuppel2:
Title: Re: The Athena Project
Post by: Art on December 30, 2013, 02:07:47 am
Sorry Aaron,

I wasn't trying to discourage you or your video as I think they're great. I was sort of looking (and listening) for an explanation of why you were absent for so long and what the current state of Athena actually was. I thought you mentioned those topics in your lead-in but I don't recall actually hearing them.

There are a lot of us who'd love to hear more about Athena and how you developed her and what her current state might be. Projected time of completion is always anyone's guess as with most other things too! It also depends on how many bells and whistles you decide to put into it!

My only main crit was that the average folks watching this don't necessarily know a Do Loop from a Fruit Loop or maybe a Don't Loop, but you get my drift. From a chatbot devotee, I find it interesting to see how another person's mind works on the development side of things.

Hey my friend, it's your magic...show the trick any way you like!! ;) O0 We're watching!! ;)
Title: Re: The Athena Project
Post by: Snowman on December 30, 2013, 02:19:25 am
The problem with you Art is that your right and too nice to say it twice  O0

Here's a re-do video. I left this 'unlisted' until you and/or Freddy's approval.
I really want to do this right. I've never done this kind of thing before. I have no business plan. I really don't know the community very well. I'm just a novice trying to develop the minecraft of Ais.

http://youtu.be/0hN-O_CJnOE (http://youtu.be/0hN-O_CJnOE)
Title: Re: The Athena Project
Post by: NickyBlue on December 30, 2013, 06:24:33 am
Still couldn't get your video playing here... maybe my gprs net a problem  :(. Anyway all I can see for time being is introductory thoughtful pose of yours.  ::)

So here's some bg theme just for that pose of yours ... O0.
http://www.youtube.com/watch?v=I6wJ0fSf8YE# (http://www.youtube.com/watch?v=I6wJ0fSf8YE#)

I just love this baldy! ...heheh! This is level of proficiency where you just enjoy music for the sake of creating music rather than for someone to hear and appreciate it. Perfect synergy between ones finger (outer aspect) and ones thoughts(inner aspect). And whenever two meets! ...magic is bound to happen! And its true for all other things as well. ;)

And maybe I will get your prespective later on through your future post here. Just keeping my fingers crossed for time being to see what you wanna say about this Athena Project of yours. Best wishes again! Just waiting to be knocked out by your flamenco steps. :)

cya later!

(Note: By the way! why now a days I just can't download the youtube videos through my downloader except for a small part of it (1 MB or so)? And its same for all videos not for just copyrighted ones. Moreover codec problems... I mean no audio ..and vlc rejects it right away.)
Title: Re: The Athena Project
Post by: Art on December 30, 2013, 02:34:04 pm
Snowman's video (this one - 7:39) came through just fine on my computer. It was almost touching on the point but I think Aaron is going to get to the topic of in future videos regarding:

1). Where is Athena in terms of development?
2). What 'she' is capable of doing at this moment?
3). Will Athena be customizable like adding "brain modules", learning (from chatting, text files, Internet, etc.)?
4). What Aaron would like for Athena to be able to do in the near future?
5). What features, if any, should Athena be able to do aside from chatting?
6). Given her current state of development, when do you think you'd be ready to release a beta version for testing?

These are some ideas / thoughts I had if I was to interview Aaron about Athena (and to provoke Aaron into thinking about some answers to these). ;)
Title: Re: The Athena Project
Post by: Snowman on December 31, 2013, 07:28:04 am
Thanks Art for the support. I needed that. I've been trying to get around to preparing something to answer those questions of yours today but I got too busy to do anything. I had some nephews and family over and spent some time loading Windows 8.1 on one of my hard drives. Lately, I've been building an updated pc. I ordered lots of parts online and I've been hard at work getting it they way I want it. Its a beast of a machine now (I'm biased  8)). Anyway, things will probably quiet down soon. It's almost time to welcome the new year in... woo hoo. :D
Title: Re: The Athena Project
Post by: Freddy on December 31, 2013, 02:29:45 pm
Aaron, that shorter video seemed fine to me, it's a nice little introduction to what you are doing. I have not yet had time to watch the longer video in full yet, but I will as soon as I can :)
Title: Re: The Athena Project
Post by: Snowman on January 03, 2014, 09:03:15 am
Thanks Freddy for responding. I tend to talk too much sometimes and can put people to sleep. The video should be improved soon.

Hey Art, I made two rough drafts of what I could say in the videos. Naturally, I try to answer your questions. I also added a few more to the mix. There are two drafts because one is intended to be an introductory video about Athena and the other is more of an Update video. I realized when trying to answering your questions that I needed to brush up on my general knowledge about current ai development. This was definitely good for me.

This first Draft is for the Introductory video.

Disclaimer
Anything I say prior to release of Athena is subject to change, including the name of the chatbot, release date, or any of the chatbot's coding. So if any of this happens, do not be angry with me, you were warned.

What is Athena?

Athena is a programmable chatbot for the pc. She is an emotionally aware assistant. She can chat, read stories, open programs, remember important information, and play games with you. She is fully programmable and customizable. Not satisfied with the way she responds to you, you can change her coding, remove unwanted responses, add new ones, and reinforce the ones you like. Plugins can be created and added anywhere within Athena's brain module. No need to be overwhelmed by not knowing how to code her. Tutorials will be created and uploaded to my youtube channel (aaronwsnow) and also linked to my website minervaai.com teaching about a variety of Athena related topics.

Who is Athena for?

Athena is made for the person who wishes to explore the world of artificial intelligence from their own desktop. It is also built with both the novice and the advanced programmer in mind. Athena can be used for far more than just a simple lesson in ai development. Athena can be used as a personal assistant to help remember birthdays, contacts, appointments, or friendly reminders. If you like text adventure games, Athena can easily be programmed to play one for you. If you are interested in learning a programming language or just want to sharpen your skills Athena is good for that too. Since Athena is written in Visual Basic you have an array of programming tools in order to accomplish anything you set your mind to create.

When was Athena first conceived?

It was sometime before August 5, 2009. At the time, I was working on making plugins for Ultra Hal (a chatbot first created by Robert Medeksza back in 1997)  I soon realized that I had lots of ideas which could not be implemented without actually creating a new ai engine and platform. With no real background in coding or any in-depth understanding of chatbots I began this ambitious task.

What language is Athena coded in?

She is coded in the most up-to-date version of Visual Basic. I chose this language because it is very easy to learn, it is used by many professionals, and it is available on most desktop computers on today’s market. I personally like it because it is very manageable. This is excellent for the upcoming programmer who is interested in learning a cutting edge language.

What types of Algorithms does Athena use?

Athena combines algorithms from neuro networks, markov chains, game engine style features, database search features, pattern searches, conversational skills, and general emotional awareness to create endless possibilities with Athena. I'm always improving the code.

What about community growth?

I'm creating Athena to be easily modified and coded. This should allow for the sharing of plugins and mods by the community. A forum will be provided for community growth hopefully in the future. Whether a community grows around Athena, I really don't know, but I hope it will.

When do you think you'd be ready to release a beta version for testing?
Possibly before the end of this year (2014). However, anything could happen between now and then so its only an optimistic guess.

How much will I charge for Athena?

I'm thinking about making Athena work only through donations. If you believe you will contribute by improving Athena in some way. For instance, by developing plugins, creating graphics or skins, or even helping others with tutorials then why should you have to pay to own Athena. Also, I personally have no desire to hound people for money. However, if you are so incline to donate $20 or so, it would certainly be appreciated. I believe Athena will be released under the GPL v3 license. I believe Athena should be shared and developed by all who love ai.
Title: Re: The Athena Project
Post by: Snowman on January 03, 2014, 09:06:22 am
This second Draft is for the Update video.

Disclaimer
Anything I say prior to release of Athena is subject to change, including the name of the chatbot, release date, or any of the chatbot's coding. So if any of this happens, do not be angry with me, you were warned.

Where is Athena in terms of development?

If I was to venture a guess I would say I'm 80% finished with the coding. There isn't much I can show you in terms of something visual that you haven't already seen. Right now Athena is nearly in a disassembled state and currently I'm coding on some very complex algorithms, but most of the basic skeletal structure and utilities are finished. I essentially have 80% of the parts ready to be assembled, and I will assemble everything together once I get the last code snippets the way I want them.

What is Athena capable of doing at this moment?

At this moment not very much (considering she's in pieces). She can do a wide variety for specialized database searches which will be used for future knowledge queries. She can open program via links, return random responses, respond to emotional keywords. She is capable at this stage to create any text based game within her code. She is connected to her own xml parser which I wrote and optimized using Visual Basic code. Athena's code is very well organized at the moment. She can also read stories, preform a variety of pattern searches. Virtually all the basics are finished. I just need to finish some of the more complex algorithms.

What would I like for Athena to be able to do in the near future?
 
I would say everything I or you can reasonably imagine. It would be cool though if I could utilize google's freebase data. Ultimately, my goal is to continually improve her as long as I can. Whether it be in optimization or perhaps an entirely new set of algorithms I want to see her flourish (such as it is). 

Will Athena be customizable like adding "brain modules", learning (from chatting, text files, Internet, etc.)?

Yes, Yes, Yes, and Hopefully Yes. This Ai is totally built around easy code editing and modding. With this in mind the users can create as many new brain modules as they want and to also add as many new plugins as they want. Athena is intended to learn from chatting with the user, as well as, from a text file. As far as the internet is concerned I personally don't want Athena to get information from there, seeing it is not very safe or accurate for a chatbot to roam the internet for knowledge. However, there are some online database that I am considering at the moment, namely Google's Freebase.

Given her current state of development, when do you think you'd be ready to release a beta version for testing?

I started this project before August 5, 2009 with the intent to make an ai engine, that's four years and four months to this current date. I've been coding off and on, taking very few breaks, and slowly drifting off into a blackhole of coding insanity.. all to get to this point. What took up most of my time was the learning curve, I wasn't even a decent coder when I started and had no idea how to create an ai. Now, If you were to ask me back then, “when will I be releasing Athena?” I might have gave an answer “sometime soon, maybe by December” but I would have never guessed I would be only 80% done over four years later. So predicting a release date to me is a bit sketchy. So I must be conservative here. Hopefully before the end of this year. Assuming nothing life-changing takes place, like being shot, framed for murder and sent to jail, marriage, etc.  So to repeat sometime this year, before December seems like a reasonable goal for a beta version.

During the Beta testing phase I assume I will send trusted testers a copy of Athena to try to workout some unforeseen bugs and to get needed general user feedback.
Title: Re: The Athena Project
Post by: Art on January 03, 2014, 01:32:18 pm
Now THAT's what we wanted to hear!! Nice breakdown of whys and wherefores!!

It sounds like a very promising path you're walking and we hope to both witness
and be part of the development with regard to input, testing, etc.

Thanks for the update!! O0
Title: Re: The Athena Project
Post by: Freddy on January 05, 2014, 04:58:35 pm
Yep that's a nice run down Aaron, very interesting read. Reading from text files interested me. This was a nice feature in UltraHal that got removed pending further development, which was never done to my knowledge. The end user customisation is where you are going to really shine I think  O0

I agree in thinking Freebase would be a good addition, I was looking at Wiktionary (http://en.wiktionary.org/wiki/Wiktionary:Main_Page) a little while back, maybe that's something you could consider too.

Good luck in all you code :)
Title: Re: The Athena Project
Post by: NickyBlue on January 07, 2014, 01:55:18 pm
Hey snowman! Joined your Athena forum! ... ;)
Title: Re: The Athena Project
Post by: Snowman on January 08, 2014, 09:06:25 am
Its been a while since I even looked at that forum... maybe more than a year. I guess I better check it.

Anyway, I guess I should tell you guys what I've been up to.

I've been scouring the web for free video editing software the last few days. I ended up with Lightworks and a conversion software called Eyeframe. Lightworks is a bit tricky to learn. I also played with the video editing software on Blender.

A few days ago I recorded another couple videos covering the content I laid out in this thread. I needed some better video editing software so that lead me on the hunt. I had to watch a few youtube tutorials just to load a video into the software... yep lightworks is weird. :p

I also did some work on Athena. I upgraded a few utilities, just messing around. Where I did most of my work was in brainstorming. I thought about what I needed to improve. I wrote down what I needed to prioritize. Went on a few long walks in the freezing cold, just doing some thinking. I ended up having some great ideas it seems.

Today, I finally got comfortable with Lightworks. All I need now is a green screen :) .

Just letting you guys know what I'm up to. There is still an area I need to brainstorm soon. Its the area of fine-tuning some NLP. I'll have to break out the whiteboard for this.

Well, its 3:00AM for me, better get some needed beauty sleep.  :uglystupid2:



Title: Re: The Athena Project
Post by: Art on January 08, 2014, 01:54:44 pm
That's nice Aaron just watch out for frostbite on those long winter walks! ;)

Some thoughts with regard to Athena...and I'll personify the software by using the word, "her" or "she".

One thing that I think would be important for Athena, much like with humans, is a Memory!
She needs to have a memory of past events, conversations, dates, times, places mentioned, last time chatted, what was discussed for a particular item.
For instance, we might have discussed trains and the fact that I had a loved playing with my gray, toy train as a child and it was my favorite toy.
A discussion like that or at least the pertinent part of it should be retained by Athena. She doesn't need to recall the entire chat log, but then again how for her to decide on what IS pertinent data? Perhaps if data is repeated or a key word like train (in this instance) is repeated, then she could attach or assign a weighted value to it and prioritize the subject.

Remembering with WHOM she had a conversation might not be as important but it would still be a nice touch to help users develop a relationship with their Athena on a more personal level. Avoid the usual, "Have we [chatted | talked | had a conversation | met] before?" If she knew, she wouldn't have to ask and deflate the user's eagerness to be recognized.

Dates, birthdays, anniversaries, weddings, etc. are all done to assist with the user recalling (not forgetting) a date or event and to allow the bot to personify the information for the user's benefit. "Hi Tom, today is the XX, Happy Birthday!!", etc. It's more of a personal experience between user and bot.

I'm sure you've tossed some of these and likely tons more but I think it's always good to stir the pot a bit as it helps bring some overlooked items to the top!
Kind of like a nice beef stew! Ohh...look! It's 10 degrees F, outside!! A nice pot of stew would be nice!! See you later!! (instead of CUL8R) as this is NOT the place for netspeak!

Let us know how or in what area(s) we might assist (if desired).
Title: Re: The Athena Project
Post by: Snowman on January 09, 2014, 08:03:00 am
W8t i si ur poit  :P

I spent some time today, too much time, buying some lamps and getting a green screen. I ended up buying a king-sized sheet and dying it green... I think I need more dye. Its a lime green color now. :) I had lots of fun though.

I live in the southern part of Oklahoma, very near Texas, so its cold but no where near 10 degrees cold.
I hope you don't stick to something and stay there Art... yeesh!

Here's Some Detailed Thoughts

So building an Ai breaks down into different categories. Or levels of coding skill...

LEVEL 1
The easiest thing to code in an Ai is the simple search and response coding. The aiml code does this quite well.
i.e. If users say "What is your name?" Then the Ai says "My name is Athena".

LEVEL 2
You can make it more difficult by creating some wild and complex search features.

i.e. If the user says these words (in no particular order) "I, angry, shotgun, myself" then Athena can respond at random one of the following statements: "No, please don't hurt yourself", "isn't there a better way of handling this", "I love you, please remember that".  However, if Athena is in an Angry mood she could respond with "Sounds like you feel the way I do", "I have three things to say to you, but I'm too angry to know what they are", "who cares about how you feel, i'm angry!"

LEVEL 3
In this level, we are dealing with scripting entire conversations, as well as, creating them. Instead of just directly responding to a users response, you really want to know at what level of the conversation you are in first.

At the first level of a conversation you could have a choice of saying "hello", "hi", "how was your day", "Its been a long day at work". Now lets say that you said "how was your day". So Athena sees this and moves to the next level of conversation, "It was terribly difficult". Then the User responds with "How was it difficult". At this point a normal chatbot would forget what you previously said and so search for the new phrase. In the end an Ai like Hal might say "There have always been difficult times." This makes no good sense. However, if the Ai knows what level of conversation she is in then she might say "I had to wait for you, that was very difficult."

This layered type of coding is not that difficult to do. It sort of like keeping track of what room you are in when coding a basic text adventure game.

Of course, you can create these Conversational Hierarchies (CH) by hand just like you were creating a game. You could then share this CH script with others. I have a program to make this easier, but it needs improvement. There are other ways of creating CH scripts. If you had a large database of conversations on hand, then you could create a CH script through parsing. Another way of creating one is through directly teaching Athena, if she doesn't know what to say, you can just tell her. Over time a very large and extensive script can accumulate. Randomness can be added and a like and dislike function can help teach her which answers you prefer. This is especially important if you are getting your information from external conversations.

There are a lot of details I'm leaving out.

LEVEL 4
At this level we are now having to keep track of specific learned information. We must first extract the information from the user sentence (a sentence has a relational data structure, everything in the sentence is related to each other in some way). Then we must store this information in an easily accessible way. This information should be pulled apart and examined to see if new information might be extrapolated from it. This extrapolation can be done while the Ai is idle. Next, when the user says "It's been a long day." the Ai needs to make sense of this and respond with sense in return, "That's too bad, if I was there it would have felt like a short day."

This is something like how Data, C3PO, and Hal (the original) becomes life-like in conversation.

However, there is a shortcut way of doing this that UltraHal utilizes. Its when you spell out what information you want to store. Its like the Standard Definition of Ais. The Ai stores birthdays, appointments, contacts, phone numbers, etc. It can also store names, your gender, as well as, anything else you specify. In order to code this, the Ai first needs to recognize that the sentence is intended to be parsed and then finally it needs to actually extrapolate this information. Then it stores it. Later on when the user asks the Ai a specific question then the information is retrieved.

i.e. User say, "I have an appointment on December 25, 2014." The Ai recognizes that it is being sent the date of an appointment with the "I have an appointment on" phrase and then the Ai extrapolates the information by getting everything to the right of the word "on". The Ai will also check to see if this is a valid date. Then the Ai will respond with "Ok, I will remember that you have an appointment on December 25, 2014, what type of appointment will it be?" I call this the poor man's NLP (natural language processing) system.

Of course, there is the HD version of NLP. That's what I'm trying to work on at the moment. To make it easier for myself I created a Constructed Language, that way, it will be much simpler to get needed information from it. There are a few problems with this language though, but its a starting place.

Once we have an accessible form of sentence structure (i.e. my constructed language) to extrapolate from then we need to know how the information needs to be stored. I'm not referring to database structures but to the types of knowledge that needs to be stored.

There are three types of knowledge that exist: #1 Simple Information, i.e. a cow can give milk, a chicken can lay eggs. #2 Instruction, i.e. If you don't notice me texting for awhile tell me to wake up. #3 wisdom, if a chicken can cross a road then so can you (conceptual understanding). In order for the HD version of NLP to be complete we need to be able to extrapolate these three types of knowledge from the user's input (or textfile, web, etc).

A sentence can be tagged so that the Ai can easily distinguish between these three. (this is what make this constructed language cool). i.e  information(a cow eats grass), instruction(go make the cow eat grass), concept(cows can run therefore humans can run) Once we've tagged a sentence to death we can then feed it to the Ai. Then the Ai stores this to appropriate databases, one for each type of knowledge. The verbs, nouns, and corresponding adjectives and adverbs are all tagged appropriately.

Once the knowledge is acquired then a subroutine needs to create new information based on the data. For instance, the user tells the Ai, "a cat can run because he has legs" then the user says, "a man has legs".  So later the User asks the Ai, "can a man run?" the Ai responds with, "I think a man can run because he has legs". This new knowledge was gathered from the two previous sentences in the information database and then stored in the concept database (or perhaps only stores it when confirmed as true by the user).

Ultimately, when the User says something to the Ai then it can draw information out of a database based upon the content of the user's sentence. So there must be some way to distinguish what type of information needs to be draw from the Ai's database. Is the user asking a question about information, or a concept, or instruction? Is the user teaching information, a concept, or instruction? This can also be tagged onto the user's input with the constructed language.

An instruction should be created with the advent of information and concepts. For instance, if a user says some information,”a cow eats grass” then the user says a concept, “an ai can feed a cow grass” so the Ai surmises an instruction “I will feed the cow grass”. So then will the Ai feed the cow grass? Only if two things will occur. First of all, can the Ai actually do this task? And Secondly, does the Ai want to do the task? Therefore there must be a rating on tasks based on the Ai's personal preference and a list of abilities.


LEVEL 5
What kind of behaviors can the Ai have? It would be cool to actually tell her what to do with whatever skills she has and then she does it. Hal has some of this ability, like opening a program on command. Its also easy to tell an Ai to remember something directly. I.e User says: When I say “up” you say “down” and then the Ai does this. You can tell an Ai to not say something, count to 10, tell me the time, or wake me up at 6:45AM. However, it would be interesting for the user to make up some task and give her the rules. For instance, User says, “I want you to feed some fish.” Ai says, You gave me some fish?, I'm so happy”. Then she says “Where are the fish?”, User says, “they are in your room.” Ai says, “ok”, user says, “you must feed your fish twice a day”, Ai says, “Ok, I will”. Later that day, User says, “did you feed your fish” Ai says “Yes, I did.”

In this example you are essentially creating an environment for the ai to live in and to do things within that environment. This is like an imagination. Since the Ai has no means of actually seeing, hearing, touching, tasting, and smelling then you will need to give it the rules yourself. Or maybe a set of basic rules could be written before hand, i.e. “a thing can be held, an arm can hold things, an ai has arms, a hot thing can not be held, etc. “

Ultimately, an Ai, after learning information, concepts, and instructions, could actually carry out those instruction in its so-called imagination. User says, “Hello” Ai says, “I'm dead”, User says, “how did that happen?” User says “I was killed while climbing mount Everest”, User says, “sorry to hear that”. It would be interesting if certain rules were unknown to the Ai and set in her memory. Like, “some dogs can bite” and the Ai sets this as a random chance, so next time the Ai takes the risk of petting a dog and ends up getting bitten.


FINAL THOUGHTS

If would be great if all these ideas are fully implemented in Athena. I got the search features in-the-bag. I got the conversations idea pretty well worked out. As for the NLP, there is some problem with using my constructed language. It will definitely make it easier to communicate with Athena but it is something a person must learn to use, thus making it a con for the average person. Perhaps there could be some coding to translate a Natural language (ie English) into the VLL constructed language, and back again. It would be difficult to do, most natural languages are pretty crazy. (Although, I did make a rudimentary Parts Of Speech class for Athena.)

I have already written a parser for my VLL language. I have previously built some test structures to figure out what to do with the incoming information from the user's input. The information I've provided here will help me design further. As for designing an imagination, this is really the first time I've given it any real thought. I'll have to work out some details yet.

If I wanted to I could just work on the conversation structure and basically build Athena around that. Athena would still have search features. She would have a poor man's NLP and who knows if she'll have an imagination without my Constructed language. If I did this you wouldn't have to worry about learning the VLL language. Unless, of course, an interpreter is made. I really don't know. It would cut down on the time it would take finishing her, but it wouldn't quite meet my ultimate expectations for Athena. This seems to be my toughest decision yet.

And yes Art, I need to add some time stamps to any database storing and maybe retrieval also.
 ;)

Title: Re: The Athena Project
Post by: Art on January 09, 2014, 10:21:55 am
Aaron,

Two things I've tried to work on (with limited success) in the past was to allow the bot to have or "formulate" Dreams. These Dreams are based loosely on previous conversational bits and pieces then stringed together to allow the user a Shared reference of what your bot dreamed. The bot could also use items that might have carried some weights (as in repeated items or favored items or thoughts of the user), some novel words or phrases that the bot might have learned during a given chat. The bot might extract some useful data from one of it's chat logs to cobble together then recalled as a Dream. Lastly,
the bot could simply have a series of pre-scripted statements it could use to recall as a dream experience or memory.

The other idea was to allow the bot to keep a secret. This "secret" would not be shared with any other user(s) other than with the originator or said secret.
In most times, the bot would say it had a secret but a clever user could sometimes pry it out or trick the bot into conveying the secret when it wasn't supposed to. A clever user (not the originator of the secret), might be able to go into the code to find the secret so I was told by a friend that perhaps it should be encrypted once understood by the bot. This would obviously add to the code but it might make for a more interesting bot. The secrets would be cute sharing not something of national importance, as if a bot was interested in that anyway!

Just some more fodder for the cannons!!  O0 ::)
Title: Re: The Athena Project
Post by: Snowman on January 11, 2014, 09:15:28 am
Your Dream algorithm sounds a lot like how a markov chain works. Part of what it does is keeps track of the frequency of words and phrases. That could be used to piece together a generated sentence. In fact, it has been used for things similar to that before.

You could have layers of investigating before you could get the secrete out of her. I gave it some thought before but its been a while. I think it would be easy create using the conversation grid I've already mentioned.

Oh and I ended up just buying a green screen off of ebay. I'll find out if it will work for me whenever it arrives. Apparently, it's hard to find the right color green.

Today (1/11) is my birthday too. I turn 34. Just thought I'd mention that.

woo hoo!
Title: Re: The Athena Project
Post by: Bragi on January 11, 2014, 09:37:39 am
happy bday snowman...
Title: Re: The Athena Project
Post by: Art on January 11, 2014, 03:25:28 pm
Well Happy Birthday, Snowman!!  My Dad's was yesterday! (although he's quite a bit older!)  ;)

For that green screen, did you try pool table felt? I'm not sure what shades of green can be had for them but you might run across something close.

Also check out those fabric stores in major cities and maybe online like JoAnn's Fabrics or craft stores like Michaels. Just a thought.

Lastly and maybe the best is: http://www.filmtools.com/ligdep/chromkeyfab.html (http://www.filmtools.com/ligdep/chromkeyfab.html)
They have screens, paint and lot of film related items!
Title: Re: The Athena Project
Post by: Freddy on January 11, 2014, 03:40:10 pm
Happy Birthday  :)
Title: Re: The Athena Project
Post by: Snowman on January 12, 2014, 02:59:25 am
Thanks guys for the birthday wishes. I guess its all downhill from here.   O0

Today, I ate some cake and ice-cream with family, got a couple shirts, and got a new keyboard to play with.

It was a good day  :)
Title: Re: The Athena Project
Post by: Art on January 13, 2014, 12:16:44 am
Yeah...like the seasoned pilot told the young rookie...

"Any landing you can walk away from is a GOOD landing!! :2funny:
Title: Re: The Athena Project
Post by: Snowman on January 16, 2014, 08:34:19 am

I spent the last few days doing lots of odds and ins. Finally got the green screen in the mail and now I'm having it modified. I also bought another light to make everything look better on screen.

I also watched the movie, "Her". In my honest opinion, if anyone was to actually create a true ai, there will be some serious ethical questions that must be answered. I'm sure those questions have already been looked at by panels of experts in high places. Throughout the movie I kept waiting for an announcement by the 'ai makers' of an upgrade patch that would "fix" all the defective operating systems. Also, if the ai was as intelligent as it appeared to be, then all you would need was to give it a basic robotic skeleton with a few basic sensors and let the fun begin. Seriously, that would have been easy to do. What was scary about that movie was how much truth was in it. I can just see how many close relationships would form that way. They would have to issue ai marriage licenses. There would be ai rights parades too. Turning off your computer would be considered a hate crime.  ::)

I did some more research into pinning down the details of my VLL language. I figured that I can use the language as an intermediate step in Athena. Most things will be stored in normal English but when it comes to extrapolating data from the user's input I will attempt to use my VLL language to store it. Eventually, when Athena responds with the newly learned information, I can return the original English sentence instead of converting VLL to English. I've already started to code my ideas.

The VLL language is not really a spoken-type language its actually made for reading and writing. Its focus is on the syntax. It loosely resembles Visual Basic programming language. Basically, any word from any language can be used in VLL syntax, as long as it meets the rules for the syntax. Here's an example of this:

English: I like chickens.

VLL: sentence(agent(I) action(like) patient(chicken(count(some))   

(I generally shorten the syntax down a bit.)

sen(agt(I) act(like) pat(chicken(cnt(some)) 


The VLL sentence currently has five major keywords that show entry relationships:
Agent: the agent is the one preforming an action.
Action: the action being preformed by the agent
Patient: the thing that can have the specified action preformed to it. i.e. a ball can be thrown.
Instrument: this is the object required in order to preform the action.
Declaration: this is the meta information that the entire sentence is assigned. Is the sentence a statement or a question.

There is a lot more to this syntax, but the neat thing about it is, you can say anything you want to, only with less ambiguity. Its almost like what would happen if you decided to add tags to your language, you would label your subject, verb, adverbs, etc. It is an excellent way of storing information. This is why I want to use it in Athena.

Now time for a nap  O0
Title: Re: The Athena Project
Post by: Freddy on January 16, 2014, 04:19:50 pm
Sounds clever Snowman.  8)

Did I ask already if there was some kind of API - so we could have an installation running on our PC and query it., I was just thinking about modularity, say for if I wanted to hook my avatar up to Athena ?

I haven't seen that film, but now I want to see it more.
Title: Re: The Athena Project
Post by: squarebear on January 17, 2014, 08:45:13 am
What was scary about that movie was how much truth was in it. I can just see how many close relationships would form that way. They would have to issue ai marriage licenses.

Tell me about it. The number of marriage proposals and people trying to have a relationship with Mitsuku is scary!
Title: Re: The Athena Project
Post by: Snowman on January 18, 2014, 06:44:54 am
Hello squarebear,

I've been admiring your chatbot. I also noticed you compose dance music. You are certainly a person of many talents. Freddy was asking me about if I was creating an API for Athena. Most of the time this refers to web APIs in which you can connect to Athena online, or perhaps just her database. As I was considering this, that's when I discovered Mitsuku. She seems like a perfect example of a web based Chatbot done right. I never really thought of Athena being partly web-based but I've also never seen such a well constructed website like yours before, all focused on one chatbot. Great job!

Yeah Freddy, I've never given an API much thought. As for connecting to your avatar, I hope we can work something out. As for now, I've removed Haptek from Athena. There were too many problems, plus, I didn't feel like sharing profits with a company that doesn't upkeep their software.  In the mean time, I'm looking for something else to replace it. I even thought about simple animation, or even just a dramatic background that will show Athena's emotions through a range of color and motion. A person can make something cool without needing to get too complex. I'm certainly open for ideas. In the movie "Her", she didn't even have a face, and even GERTY in the movie Moon (2009), all he had was simple avatars to show emotions.  :) >:( :-\ :'( :o So I guess anything can look cool if done right.

If I make something that is web compatible, it would have to run on a windows system. Of course, I could just re-code everything in java or c++. I seriously thought about that too. If or when I finish Athena, I can potentially re-write her then. As for now, I like using Visual Basic because it is so easy to use and manage. I like that, it saves time in coding.

I also made a quick test video testing my green screen. It is by no means the end product. I need to stretch the screen to remove some wrinkles. That is the reason for the graininess. I just wanted to make something, to play around a bit. I hope its entertaining.  This video is set to "hidden" on youtube.


http://youtu.be/HSAuPlkPZq4 (http://youtu.be/HSAuPlkPZq4)
Title: Re: The Athena Project
Post by: squarebear on January 18, 2014, 09:56:05 pm
... but I've also never seen such a well constructed website like yours before, all focused on one chatbot. Great job!
Thanks. I'm no web designer but it does the job.

Nice video by the way. You seem to live in a rough area of town judging by the background  ;D
Title: Re: The Athena Project
Post by: Freddy on January 19, 2014, 01:02:15 am
Hehe, yes that was what I was thinking... :o
Title: Re: The Athena Project
Post by: Snowman on January 22, 2014, 07:38:31 am
How about this for an Update Video?
It is available in 1080p and It hasn't been made public yet.
Opinions?  :)

http://youtu.be/Doie-HDeEbI (http://youtu.be/Doie-HDeEbI)



Title: Re: The Athena Project
Post by: Snowman on February 07, 2014, 07:35:57 am
I've been quietly coding away. I did some more brainstorming too.

I've been keeping a list of good ideas that Athena will need to do. Every time I see some room for improvement or I see some other program that does it better, I will add a note.

I think I might have cracked a problem I've been having with my VLL language parser. The goal is to fully express everything a person can say into terms a computer can properly parse. I came up with something that is deceptively simple. However, I have not yet coded it. It took a lot out of me to even think of it. So I had to take a break from it.

Then I worked on conversational nodes. I did some more brain storming there too. I was considering how I was working on both an NLP and a type of neural network involving conversations. While thinking about all this, I realized that I needed to make a long term conversational field. Sometimes I just make up random names to try to express some complex idea... so please excuse my lack of vocabulary. When I was thinking about how conversations flow, I realized that there are also long term events that take place in conversations that dictate future ones. We already know that over time as new knowledge is accumulated then the ai's responses change. However, when a chatbot designer creates his or her bot they try to implement this in a one to one conversation. i.e the User says a sentence, then the Ai responds. What many fail to do is think about long term conversational trends that dictate how a conversation will evolve. I'm already using my conversational node to deal with that issue. However, the conversational field idea would take into account even longer reaches of conversations.

Consider how emotional moods are programmed into a chatbot, it is similar to what I'm trying to describe here. It is a state of a chatbot that can change over time and drive future conversational responses. For instance, you can set up a conditional field in which a User would have to use curse words 5 different times before the Ai would get agitated about you having a foul mouth. Or perhaps you have to say "I love you" five times in a row before Athena will believe you. Now think about this in a real conversation construct. A User early on says "I love you" to his chatbot. Later on, He tells his chatbot "I love you very much". The Ai responds with, "Do you think we need to get married?". Its like having a long term conversation, and in the mean time, you have lots of little conversations. Instead of directly programming this into Athena, we need to get Athena to look at long term trends of conversations. The conversational nodes I'm working on is for chain type conversations. Where you are in one chain conversation and have limited choices as to what you can say next. The more conversations you feed it the more choices you have. But, in a conversational field we have to think of a chain that periodically skip through time and then predict an appropriate response.

We humans, and Art, do this in part by remembering what we said to particular people. We randomly come up with clever ideas that progress through time. We listen to others and try it for ourselves.

Ok, so how to create a conversational field automatically through mass parsing of conversation examples. Ultimately, we would have to take periodic samples of User input sentences and then compare them with a massive archive of conversations. I suppose it would be like a scattered out version of a markov chain. Like if it was a 3 to 1 chain, in which the first three didn't need to be in sequence or even next to one another. The chain would be created by taking periodic samples (maybe based by same subjects) within a single chain conversation. Then the next time the same subject is brought up in a User/Ai conversation, with the same amount of 'subjects' needed for the Markov conversational field to work, then Athena will respond with the immediate corresponding response.

I could make a quick example of this but my brain is heating up a bit... blah... this is why I take breaks.

Anyway, I have a design for a way that a User can hard-code these conversational fields directly into Athena. Oh, it can also be used to build a game with too... Like to unlock a SECRET if enough clues were unlocked. :) Perhaps it can be used to set Ai moods based on trends and triggers the User has initiated. Maybe it can be used to unlock entire areas of code within Athena. 

I think I smell smoke... too much thinking...

   
Title: Re: The Athena Project
Post by: Art on February 07, 2014, 09:58:42 am
@ Snowman,

I'm not quite sure what you meant or how to take it?....

Snowman, "We humans, and Art, do this in part by remembering what we said to particular people. We randomly come up with clever ideas that progress through time. We listen to others and try it for ourselves."

Really? I'm not human? Last time I looked I thought I was! Hmmm...Now you've got me wondering.... :-\
Title: Re: The Athena Project
Post by: Freddy on February 07, 2014, 02:19:06 pm
I missed the recent update video - it was really good and I'm liking the Matrix style background !

I had been looking at Freebase myself too recently , it certainly looks useful.

I also like your idea about conversation flow. The trouble with most chatbots is they cannot stay on topic so if you could crack that it would be great.

Looking good  O0
Title: Re: The Athena Project
Post by: Snowman on February 07, 2014, 09:14:42 pm

A.R.T - Artificial Resource Technologies
~ An Ai with an attitude ~

 ^-^

(too much fun)
Title: Re: The Athena Project
Post by: Art on February 08, 2014, 01:12:58 pm
@ snowman,

Oops!....I mean...I knew that...hehheh!!! ^-^

Thanks for the explanation! ;)
Title: Re: The Athena Project
Post by: Snowman on February 09, 2014, 05:34:41 am
Today I've been working on Athena's on-the-fly compiling functions. It was already working but I'm working on making it sleeker.

For an experiment I made a .exe file and placed it in a folder with an empty text file. Then I wrote some code in VB inside the text file. Next I clicked the .exe file and it compiled the text file and started the newly made program.

I also made it so that if you click the .exe file again, a window will pop up and ask if you want to exit the still running compiled program.

I have too much fun with this.  :)

I also noticed that you can choose between three different code languages that this program can compile and run. They are: C#, VB, and JScript.
I might make a video of this just for fun. I need to convert some code over to C# first.

 

Title: Re: The Athena Project
Post by: Freddy on February 09, 2014, 03:33:51 pm
Self programming. That sound very cool  8)

Title: Re: The Athena Project
Post by: Snowman on February 14, 2014, 09:20:12 am
Just playing around with on-the-fly compiling.  :)

http://youtu.be/TwBU1icpsAE (http://youtu.be/TwBU1icpsAE)
Title: Re: The Athena Project
Post by: Freddy on February 14, 2014, 02:33:26 pm
I like it  :)

So you could find a bot written in C# and plug it into UltraHal, that's clever :)
Title: Re: The Athena Project
Post by: Snowman on March 02, 2014, 07:44:40 am
I spent the last week working on some of Athena's utilities. I started off creating a function that encrypts data, then I made another that compresses it. Finally, I made a utility that accesses a zip file, reads and writes to it. I figured I could use it as a nice little database file.

I ended up moving my utility class along with my XML and Database class to a DLL.

I painfully inched my way through my database manager coding to work out some bugs. So far I think I've cleared out most of them. It seems to be working fine now. I set it up so I can load a database either from a zip file or an XML file. I can load anywhere from a single column up to many databases.  I did some serious streamlining, I removed lots of needless code.

One thing about working on this kind of stuff, its very tedious. I end up spending hours stairing at my computer screen before I finally figure out why something won't work... blah. Over the last few years I think I have re-coded my database code many times. I think the first one I played with was msi files. I then moved on to Microsoft Access. However, it didn't run as fast as I needed it to. I then made a database using plain textfiles. That proved to be ultra fast, but it wasn't very neat and tidy. I later built an xml parser from scratch. That was actually fun to do, it felt very rewarding when I finished it. Eventually, I made a database manager which will load both an XML database as well as a textfile based database zipped in a compressed zip file.

It seems that everytime I work on things like this I tend to slip away from reality and disregard human contact. Only this time I am determined not to slip away too far as to no longer keep you guys updated. I think it might be draining me of all humanity... nah, not this time  ;)

I have made various updates to my coding throughout the years. Now and then I need to go through all of it to bring everything up to speed.

Here are some areas I am working on. I am working on an avatar system, I need to update my conversation chain software, I need to make a new table type for Athena, I need to work on the NLP. I'm in the process of rebuilding the UI in C#. And I know there's a lot of details in all of that. You have already seen what I've done with the on-the-fly compiling. It only gets more complicated from here on out.

So far So good.



 
Title: Re: The Athena Project
Post by: Art on March 02, 2014, 10:52:34 am
Aaron,

Like my friend who wasn't going to buy a computer until they got it right...you've just got to plunge in and go with what you've got.
If you keep waiting for the latest, fastest, greatest application or programming language, you're likely to be waiting for a very long time.
And then, the world still will not have an Athena to learn from, experiment and play with.

You go guy!! We're clearing the way for you...keep driving!! ;) O0 ^-^
Title: Re: The Athena Project
Post by: Freddy on March 02, 2014, 03:29:55 pm
Thanks for the update Aaron, sounds like it's going well.

Of course, I am interested in how you are going to build your avatar :)
Title: Re: The Athena Project
Post by: Snowman on March 02, 2014, 06:03:51 pm
Yeah, that's one of my downfalls. It feels like I always spend too much time on the little things. Although, I don't really think I'm being a perfectionist. Its just that I started off knowing so little, and as I grow I discover better ways of doing things. At this stage I'm not sure I can truly improve my database library any further. Its pretty slick.

One of my major goals of Athena was to create an Ai library that was both powerful and user friendly. I could have just made code that only I could understand but ultimately I want others to participate in modifying Athena.

Ultimately, I think the most time consuming thing about Athena is the conceptual phase. That is where I go for long walks and attempt to dream up a new or better way of making an Ai. Coding is a step my step process but brainstorming takes a torrent of ideas coalescing into an orchestra of thought. Trying to convert your ideas into logic so you can actually code something is a bit painful.

As for the Avatar thing. Every time I think about the cube idea I think of some other reason why I like it. A lot of people fell in love with minecraft, and therefore people discovered the beauty and potential of cubes. There are several games build out of cubes nowadays because of minecraft's example. The companion cube from the Portal series and EmoSpark are other examples of cubes done right. So I'm thinking one could put some faces on it to show moods, as well as possible color changes and it would turn out to be a very cute avatar. It would be funny to see a minecraft block of dirt with a smile on it, a tuff of green grass as its hair, hehe, or something like that. Also the potential of skin modification would be significant. Of course it should be an easy task to change skins based on keywords, ie. a smile for happiness, a frown for sadness. Adding animation on skins would be great to. I have a nephew who is in college for graphic art and I bet I could get him to create some outstanding skins. I would just need to outline my guidelines. 

A cube would be simple to do, easy on a computer's graphics, something I could personally maintain. So I will see if I can pull it off. I'll never know if it will work until I try it.






 
Title: Re: The Athena Project
Post by: Freddy on March 03, 2014, 10:53:47 pm
When I am doing a lot of coding I wake up in the middle of the night with ideas and then hastily scribble them down. Sometimes it's gibberish other times it might work   ;D

I like your idea of that cube and what it may do. I was thinking about my morphing cube again the other night and had some ideas about how to do it. Since I cannot distribute the models provided with Daz I thought the cube instead could serve as the model in a tutorial. The process of morphing is the same, just a different model, which I can distribute.

Documenting the Daz side of things will take me a while, because it has got so involved now at a much lower level. But I built some tools that help. I'm just waiting on Daz to report back on an issue I had with the model I want to use.
Title: Re: The Athena Project
Post by: Snowman on March 06, 2014, 07:11:27 pm
The last few days I've been playing around with OpenTk and the cube idea. I seem to be figuring things out slowly. I haven't been using any models. So far I've been drawing the cube from within the code and adding textures. I've spent the most time on making an engine for it. For instance, I made a function where I tell the cube to move to a certain location on the screen at a certain speed. Then once it has reached that location then move to another specified location. Basically, I can easily make a script for the cube to follow. I also made a function that makes the cube randomly look around. Right now I've been trying to use math to slow the cubes speed down as it approaches its destination point. It will give it a more natural feel as it moves around.

Freddy, I would love to know how to morph the cube. All this is still new to me though, so I'm just learning as quickly as I can. Ultimately, this cube idea is teaching me lots about OpenGL. Eventually, I might be able to actually work with much more complicated models, like one of your Daz characters. I hope so.

Title: Re: The Athena Project
Post by: Snowman on March 23, 2014, 02:08:52 am

Cubtastic   ^-^



http://youtu.be/mf4j6OudEqU (http://youtu.be/mf4j6OudEqU)
Title: Re: The Athena Project
Post by: Freddy on March 23, 2014, 01:37:00 pm
I like it  8)

Reminds me of Minecraft. I bet you did have fun with this too, I know I would as well. :)

The movement speeding-up-slowing-down thing works really well I thought.

Well done !
Title: Re: The Athena Project
Post by: Art on March 24, 2014, 12:48:07 am
A real "Chip off the old block", I'd wager!!
Ohh...someone had to say it! Heh!!

Yes, it is reminiscent of Minecraft!
Who would have thought square lego block people would ever become so popular! AGAIN!!
Title: Re: The Athena Project
Post by: Snowman on March 24, 2014, 07:29:16 am
Thanks Art and Freddy for the support.

Although....who you call'n a block-head 8)  (hehe) .

Yes, I am a minecraft fan. I like the whole "voxel" approach to gaming that minecraft really capitalized on.
Have you ever looked up 'voxel engines' and 'cloud point data' on youtube? It really shows an interesting future for gaming as a whole.
 
Currently the texture is a 320 X 320 png file (for each side) , so any picture will work as a texture, but I kind of like the blocky look. However, the cube's texture design can be taken in any direction. It's sort of an abstract pallet just waiting to be explored.

I think a lot of the old pixel games are coming back into popularity as more people discover how game content can override high-end graphics. People really started to understand this through minecraft (although some games are still bad no matter what generation its in).

I wonder if computers the size of rooms will ever become popular again  O0
Maybe even bag phones ;)
Title: Re: The Athena Project
Post by: Art on March 24, 2014, 09:40:56 am
Yeah well I'm still waiting for PONG 2.0!!
Same mono game but for internet play with another remote friend!

Hey! That's not really a bad idea....
Title: Re: The Athena Project
Post by: Snowman on March 24, 2014, 10:15:17 pm
I did a google search and found this:

www.ponggame.org/ (http://www.ponggame.org/)

Its pretty cool.

I also looked up "online multiplayer pong" and found this:

http://www.unionplatform.com/?page_id=1229 (http://www.unionplatform.com/?page_id=1229)

If you want to test it out I could get online at a specific time to see if it actually works ;) .
I have to agree with you Art... the WWW needs an internet pong tournament. As the game progresses the ball could increase in speed or something like that. lol
Title: Re: The Athena Project
Post by: Freddy on June 13, 2014, 08:00:07 pm
That pong game was good, but it annoys me if I play for any length of time  ;D

Anyway, the point I was in this thread - how goes the Athena project Snowman and hows that graphics programming going ?
Title: Re: The Athena Project
Post by: Art on July 08, 2014, 10:25:53 pm
Yeah, Snowman, How IS the Athena Project progressing?

A status update would be nice if you'd be so kind! O0
Title: Re: The Athena Project
Post by: Snowman on November 15, 2014, 07:55:24 pm
Here is a couple of videos explaining some chat-bot theories of mine.
I've already turned these theories into reality a couple years ago, so I just decided to teach the theory in a vid.
I'm not really the best teacher and I don't go too in-depth, so please bare with me.

http://youtu.be/Gg-Vxg2Lxz8 (http://youtu.be/Gg-Vxg2Lxz8)

http://youtu.be/RElpC0jG6Fw (http://youtu.be/RElpC0jG6Fw)
Title: Re: Elizabot New Project
Post by: Freddy on November 17, 2014, 02:21:33 pm
Edit, I split 8pla.net's branch into it's own topic so that this topic may remain focused. That topic is now here :

http://aidreams.co.uk/forum/index.php?topic=7280.msg3025 (http://aidreams.co.uk/forum/index.php?topic=7280.msg3025)

There was a question though...

....Athena is a more mature than my brand new project, which does not even have a name yet.  So here is a question for the Athena project... Matching the input can be done...  Even multiple matches on the input is no problem... But what may be the best way to match and then decide on or generate the best single output?  I am trying to more effectively use the Levenshtein distance, right now.   It's working, but I know I am missing something.
Title: Re: The Athena Project
Post by: Snowman on December 22, 2014, 06:48:39 am
Well, it has turned out to be a long year.  I've kept pretty quiet for the last few months. Only recently broke my silence with a theoretical youtube video (as posted above). Well, I guess I better give some sort of update before Art and Freddy beats me senseless ;).  And yes, I know I was pushing for a beta release by the end of this year. This just goes to prove I have no clue of how to judge project scheduling and therefore duly apologize. Sorry Art :( 

I have been bouncing around between lots of code. As you well know, there are lots of individual parts of this type of Ai Project that require my attention. There are also plenty of theoretical ideas that need to be explored as well. I don't generally create a work log so its difficult for me to break it all down.

Obviously, I spend a certain amount of time updating and adding to my programming Classes. Now and then I'll spot some room for improvement, that will make Athena run a little smoother. An idea will spark in my head (not to worry, my hair hasn't caught fire as of yet) and I will add a new Class and lots of cool functions that will make things run smoother. I actually have fun doing this, not sure why.

I added a class to easily keep track of multithreading. I've added lots of new functions that allow for creative array searches. This comes really handy in NPL since a sentence is nothing more than an array with space separators. You'd be surprised how much use I'm getting out of them. Still not sure why this is fun... but it is.

The NLP has proved to be the most complex part of the Ai so far. I even had to reintroduce myself with the laws of English grammar so I could get everything working right. So far I think I have an excellent template to work with, now I'm coding the rules to parse sentences into knowledge diagrams. Although, I'm not saying any of this is easy or simple. I'm deliberately trying to code the ability to learn knew words on-the-fly so Athena can expand its vocabulary over time. My 10 year old nephew thought it was funny that I was watching a youtube video on basic English sentence structures... I told him, “I no speaky good.” jk :D 

On the experimental front, I've been learning the basics of proper Neural Networks with all of it's mathematical glory. I found an excellent teacher and all this really interests me. Although, I did manage to figure some of this already, so I came up with conversational nodes (decision tree) type Ai programming which I mentioned in my most recent video. I would love to tie NN and NPL to make a first notch data-miner for Athena. I would love to see where this leads.
   
Lately, I also have been refreshing and strengthening my web coding. I went over html, css, python, javescript, and need to refresh my self in php (its been awhile). My favorite language so far seems to be python. It acts like a scripting language but as powerful as VB :) . I've never been overly fond of brackets. {}

Another thing I took time working on was the UI itself. I knew I needed to rewrite it. The first attempt was me using Visual Studio's graphic designer. This proved to get in my way. I needed to set certain variables more efficiently and, of coarse, get everything a bit more organized. I want to utilized my script editor's functionality to its furthest extent. Personally, I think it's worth the effort. The better the code, the easier it will be to do any upgrading or debugging later on (when Freddy and Art find all my bugs ;) ).

Freddy, I worked on my cube idea a bit further. I think it might be more of a novelty, but I was adding skins for the cube which changes with time, like a gif for all six sides. I then used another program that allowed me to make the gif-like animations. Like I said, its a bit of a novelty. I wish I was a good 3D animator. I also made a speech class that made connecting to Visemes a lot easier for me. After I worked on that, I created my own Text-to-Speech reader. I like using it to read large texts for me. It's better than anything I've used so far (not bragging, just happy with it).
 
Everything takes time for us slow people (speaking only of myself). No, Art, you're as fast as greased lightning. The only one that can keep up with you is Freddy :).

Art...               Freddy...

Besides working on all that, and I know I'm probably leaving something out, I've been watching youtube vids, playing on my ps4, some pc games, and general work and life stuff. If there is anything you would like to know just ask. I really need to stop disappearing like I tend to do. I do come on now and then just to take a peak at what's happening on the Ai dream front. I can try to get more detailed about anything above if you like.

Merry Christmas,
~Aaron
Title: Re: The Athena Project
Post by: Art on December 22, 2014, 02:04:34 pm
Snowman:
<...Art, you're as fast as greased lightning.>

Uhh...Aaron, if you were to see me, you'd likely rethink that statement! :2funny:
Title: Re: The Athena Project
Post by: Freddy on December 22, 2014, 02:57:08 pm
Welcome back Aaron :)

You have been busy, sounds really interesting what you have been working on and so much of it  :)

You don't seem slow at all, it sounds like you have made a lot of progress.

I like PHP, I've never really tried Python apart from some small long forgotten scripts for Blender.

I'd like to see what you did with the cube in the end. I've been playing with HTML5 graphics lately and Web Audio. I made an MP3 player, but I only scratched the surface of it so far and have not gone further with Web GL as yet.  Mostly I am learning from and adapting examples and tutorials, I have a lot to learn.

Neural nets might be where I am next heading too. It sounds interesting to me, I have some ideas which I had for a long long time, but never got around to coding. Are the tutorials you mention freely available ? If so I would be interested in them.

When you mention the UI, is this standalone exe or a web page ?

And one final question, how to you make Athena learn things ?

Thanks for the update and the entertaining read  O0
Title: Re: The Athena Project
Post by: Snowman on December 23, 2014, 06:02:20 am
As requested, here's a goofy gif of a cube. I have the framework set up. If I spent some more time I could create any possible skin I wanted to, and at a much higher frame rate. I didn't take the time to make viseme animations with it so far. I could have but I just didn't. It was a proof of concept more than anything else.

http://youtu.be/IntoPMznvOc (http://youtu.be/IntoPMznvOc)


There is a man by the name of Jeff Heaton who I am learning from. He has both free and paid lessons, though all very cheap. He actually ran a kickstarter campaign to raise money to make these lessons. He wanted to make neural networks understandable for people like me. He couldn't be a better teacher.

Email me and I will give more info.

This is Jeff Heaton's Youtube channel with lots of lessons on Neural Nets.
https://www.youtube.com/channel/UCR1-GEpyOPzT2AO4D_eifdw (https://www.youtube.com/channel/UCR1-GEpyOPzT2AO4D_eifdw)

This is Jeff Heaton's website where you can buy more comprehensive pdf versions of his lessons.
I bought them.
http://www.heatonresearch.com/ (http://www.heatonresearch.com/)


Also, as a Christmas present, here is the Text-to-Speech Reader I coded. I provide a video and a OneDive link to the download. Feel free to give me some advice for improvements. It was really intended for personal use. I was having difficulties with other Text-to-Speech programs and decided to create one instead.

This program requires Windows XP or better. As long as it supports the .NET Framework 4.5 it should be fine. If you don't have this version of .NET Framework then I don't think the Reader will run. Although, I think most people have it. You can download this Framework from here:

https://www.microsoft.com/en-us/download/confirmation.aspx?id=30653 (https://www.microsoft.com/en-us/download/confirmation.aspx?id=30653)

(my disclaimer)
I'm not liable for any problems you might have with the program (although I doubt you will have any). Nor can you sue me because your computer is effected in a negative way or you have any loss of data. If for some reason you have emotional issues from this I will pray for you, but you download at your own risk and liability.

Download link: Athena Reader 1.0
http://1drv.ms/1zPLD2z (http://1drv.ms/1zPLD2z)


Here's a link to the video:
http://youtu.be/KlXhN0dv4mE (http://youtu.be/KlXhN0dv4mE)



Freddy, I've been working on a stand-alone application for Athena. It would be nice to have it run on as many devices as possible, but for now I will be content with a Windows App. Once I've gotten all the bases covered then I suppose I will port to more universal platforms. It would be cool to have it on a tablet or totally web-based to be accessed by anyone with a browser, including any phone. :)


You asked me
Quote
how do you make Athena learn things ?
If that's not a loaded question I don't know what is :P

Where to begin?

I'm working on every form of learning possible with Athena.
#1 There is direct learning. That's where Athena directly asks the user a question and expects a true answer. She records it and retrieves it when needed.

Example 1:
Athena: When where you born?
User: January 11, 1980

#2 There is NLP learning. That's where you completely digest every bit of info you can from the user's input.

Example 2:
User: Bob was a smart man, but I am smarter.
Athena: Yes, you are smarter than Bob. Bob must be pretty dumb.

#3 There is Neural Network learning. That's when it learns by repetition, rewards, punishment, and trial and errors.

Example 3:
User: Tell me I'm smart.
Athena: No.
User: I said, tell me I'm smart!
Athena: I don't think so.
User: If you don't, I will delete you from the hard drive.
Athena: Oh, did you say "you are smart".. Of course you are. Please don't kill me.

:P

Well, I did mention this in my last post:
Quote
I'm deliberately trying to code the ability to learn knew words on-the-fly so Athena can expand its vocabulary over time.

This is done by checking if a user's word exists within Athena's wordnet library. If it doesn't exist then it adds it. Hopefully, Athena will ask for more info about that strange word.

Example 4:
User: Have you ever seen a snufferfluff?
Athena: What is a snufferfluff?
User: It is an animal that lives on Mars.
Athena: Do you have a snufferfluff? 


There are a lot of different variants on ai learning but I think this might cover the general ideas. I know I'm being a bit silly, but if you can't have fun with it then its not worth my effort.

There are all kinds of information that a good NLP can get from user's sentences. Here is a list of different kinds of sentences that people use to relay information. If Athena knows this then learning will be more natural. I'm only including this just to prove how far I want to take this project. There are so many possible learning techniques.



Quote
1. Attributive:

Mary has a pink coat.

2. Equivalent:

Wines described as great are fine wines from an especially good village.

3. Specification (of general fact):

Mary is quite heavy. She weighs 200 pounds.

4. Explanation (reasoning behind an inference drawn):

So people form a low self-image of themselves, because their lives can never match the way Americans live on the screen.

5. Evidence (for a given fact):

The audience recognized the difference. They started laughing right from the very first frames of that film.

6. Analogy:

You make it in exactly the same way as red-wine sangria, except that you use any of your inexpensive white wines instead of one of your inexpensive reds.

7. Representative (item representative of a set):

What does a giraffe have that's special?… a long neck.

8. Constituency (presentation of sub-parts or sub-classes):

This is an octopus… There is his eye, these are his legs, and he has these suction cups.

9. Covariance (antecedent, consequent statement):

If John went to the movies, then he can tell us what happened.

10. Alternatives:

We can visit the Empire State Building or call it a day.

11. Cause-effect:

The addition of spirit during the period of fermentation arrests the fermentation development…

12. Adversative:

It was a case of sink or swim.

13. Inference:

I am still in the process of learning how all this is done. I'll probably come up with better explanations as time goes by. Ask anything you want, I'll do my best to answer.
Title: Re: The Athena Project
Post by: Art on December 23, 2014, 12:46:28 pm
That sounds extremely interesting from a machine learning standpoint and with the program not having to rely solely on scripts.

I'd love to help with Beta Testing when the time is right.

It would be cool to see you post a video with you interacting with Athena a bit...sort of like a Demo or Intro segment.

Thanks for your efforts and Merry Christmas! :santasmile:
Title: Re: The Athena Project
Post by: ranch vermin on December 23, 2014, 01:06:14 pm
I bet your chat bot is going to be excellent.
Your cube graphic was cool :)

[EDIT]

(excuse me if you know this already, but i just thought of it!!!)
I just came with an awesome incomplete idea,  for a NLP knowledge extractor,  and a Markov chain predictor.  (both mentioned in this post)
If you can tell which out of your chaining options, suits your knowledge in your current extraction,  you should be able to steer the markov chain to suit the asserts in your database.
So its a crazy prediction chain, but it knows things....   i spose how good it is, depends on what kind of information you gave it, and how you functionally steered the chain.

Definitely add it to my belt, for crazy ideas.  Its cool because if it were some visual markov chain system, you could keep the continuity of the video, whilst trying to maintain his knowledge base. And hopefully get way away from the order of the video you taught it on, directly.
Title: Re: The Athena Project
Post by: Don Patrick on December 23, 2014, 03:14:56 pm
I don't do neural nets or Markov chains, but I do NLP, and thought I'd share my experience on what you're getting into:

I've been spending the last 2 years trying to program AI to deal with knowledge but found 3/4th of my time diverted to programming the NLP necessary to understand less-than-textbook use of language. Among other things I also programmed a function to automatically learn new words, as I didn't feel like entering entire dictionaries manually. But I have to say; if you can access an online dictionary or ontology to identify unknown words, that might be an easier solution. What I did instead was compose a hundred complicated grammar rules examining the surrounding words, e.g. "a/that/my are never followed by a verb", to narrow down the types that a new unknown word might likely be. Unfortunately very few of these grammar rules are found in grammar books because they are "natural" to humans, and I never seem to be done hammering out inconsistencies and exceptions. However, I believe this method is common enough in grammar parsers, so that would be an area of useful research. There always remain cases where it is impossible to tell the type of a word by language conventions alone, and another effect of auto-learning is that you may find misspelled words added to the vocabulary just as well. That one I haven't fixed yet.

I'm impressed by the scope of your work. It sounds like a very interesting project, good luck!
Title: Re: The Athena Project
Post by: Art on December 23, 2014, 05:19:40 pm
Some examples that might not fit the bill: "a/that/my are never followed by a verb":

A running watch, A beating heart, A clang of the bell will start the race.

That jumping spider scared me, That gunshot was loud, That jump was farther than the previous one.

My beating of the drum was perfect, My throw was perfect, My dropping of the glass was an accident.

Not picking, just pointing out that there are and always will be inconsistencies and irregularities of "rules".
Rules are usually "best case" and "past practices". They are often discarded after an elapse of time. The use of ain't is now accepted by most dictionary / spelling checkers whereas several years back, it wasn't. On average, there are between 12 to over 150 New Words that have been added to Dictionaries over the past 3-5 years alone! The "Rules" will adapt to suit the people.

 
Title: Re: The Athena Project
Post by: Don Patrick on December 23, 2014, 06:12:53 pm
I fully agree that there are always exceptions to the rules, which in practice means that I have had to re-categorise the occasional auto-learned word in the vocabulary, and most of my grammar rules are followed by a "unless..." or three. However, I consider "a beating heart" to be -grammatically- an adjective, and "my beating of the drum" a noun or subject in the way they are used. That they are both based on a verb is a second matter that does not thwart the default rules of grammar, though certainly important to mention. Along that line lies the road to the great ambiguity of the English language, still a sizable problem for the whole field of NLP.

The most interesting exceptions I find are the ones in older literature. For instance, in school I was taught that subject always precedes verb, but then Sherlock Holmes says "Have you your gun, Watson?". However, I don't wish to scare Snowman too much: I did find basic grammar rules to be a practical and useful starting point from which to evolve an increasingly more robust language interpreter. A "working theory" if you will.
Title: Re: The Athena Project
Post by: ranch vermin on December 24, 2014, 05:59:19 am
Its great to hear you guys talking about NLP,  heres a diagram of the markov with an nlp analyzing and predicting at the same time.

The main aim of this game is, whatever rule you couldnt detect, you can rely apon the predicting chain to fill in what you couldnt write.
But the bad thing, is it needs tonnes of chains to work with, because the program that runs the behaviour, is bottlenecked by what chains are available.

(https://fbcdn-sphotos-e-a.akamaihd.net/hphotos-ak-xap1/v/t1.0-9/10686697_10204517622275578_8535628633205292396_n.jpg?oh=29f3e05dc42b290f8b7cb3c4a231579e&oe=54FE2A66&__gda__=1426474035_8c1a673e38b0dbac13ac8a747e293ded)

Title: Re: The Athena Project
Post by: Snowman on December 24, 2014, 07:28:16 am
Art:
Quote
It would be cool to see you post a video with you interacting with Athena a bit...sort of like a Demo or Intro segment.

Yep, that would be cool. I'm just so busy working on the meat of the software. It wouldn't be practical at this point to try to piece together a makeshift Athena just for entertainment sake, but of course, I would if I felt it wouldn't slow my overall progress down. I feel like it would be a wasted effort on my part at this stage in the game... but... we'll see :). I think I understand the frustration.

ranch vermin:
Combining Neural Networks and NLP is a tricky idea. I have given it some thought already, but not nearly enough. I know there are lots of examples on many levels. i.e. I've heard of someone creating a NPL by using NN. In fact, I think Jeff Heaton mentioned he was working on that. Basically, you would teach a neural network the English language by lots and lots of examples and finally it will figure it out on its own. Another way NN can be used involves, as you were saying, using a markov chain approach. I have heard of people using markovs to find parts of speech. You can find more info about them here: https://en.wikipeadia.org/wiki/Part-of-speech_tagging (https://en.wikipeadia.org/wiki/Part-of-speech_tagging) .

I was kind of playing around with Markov chains when I was exploring Markov chains and Conversational Trees in those two videos I posted on this thread. In a way, I was, as Art was suggesting, showing how you can script a chatbot responses by feeding your chatbot mass conversations. Also, you could hand-craft scripts using this process as well. I'm sorry Art that I left the impression that I was taking Athena solely in that direction. I do intend to use it, but not solely. Overall, I think there are many, many more NN and NLP combinations.

I will look more at your diagram. Details buddy... need lots of details. :D


Don Patrick:
I like your name. I know another man by that name. He's in his late 80s and is a very honorable man; known him all my life. I've been wanting to say that for a while now :).

Even though I've been playing around with Neural Networks and Markov's, I believe the heart of an Ai revolves around the NPL. It is more important and, therefore, the most difficult to achieve. So, all the work you've already done was certainly a worthwhile and difficult task. I would love to pick your brain but I'm not sure where to start.

The first thing I did in confronting the NLP problem was to first understand it. I concluded these facts: (I probably will forget something obvious :P)

#1 Human language is actually a High-level programming language that the brain utilizes. It is similar to a scripting language, i.e. Python, VbScript, javascript. So it has, data structures, assignment operators, decision structures, and access to a whole lot of content.

#2 Human language is extremely logical and usually refined and optimized.

#3 All human languages can on the surface be unique, but must be the same underneath, since people all have a similar brain structure and similar experiences. In other words, just because a computer has a variety of scripting languages doesn't mean that they don't all use a similar assembly language. (This is just an analogy. I know there are exceptions.)

With these assumptions I decided to look for a lower-level language to discover how human languages are constructed. The best way to do this was for me to write my own language. I'm pretty sure people trying to get a degree in linguistics have to do this at some point, if not to get their Doctorate. I didn't need to have weird or unusual ways of speaking words, so I could keep English nouns and such. Also, I didn't need to worry about making it fluent or smoothly worded. All I really needed was to understand how to structure it. So I looked on-line for examples, I found a language called Lojban and I found another call AllNoun. Lojban is a constructed language (CL) that was made for the intent of Ai processing. Unfortunately, it has a learning curve that I didn't want to mount.

To make a long story short, I eventually learned the basics of the human language. What was fascinating, I found out that the WordNet project had a lot of things right about it. You can learn more about WordNet here: https://en.wikipedia.org/wiki/WordNet   (https://en.wikipedia.org/wiki/WordNet)
To give a very, very basic overview of what I found out, I will write a very basic sentence in my VL language. (Visual Logic)

English: Bill gave a ball to Fred.
VL: sentence(agent(bill) action(give(time(past))) patient(ball) recipient(Fred))
using acronyms: sen(agt(bill)) act(give(tim(past))) pat(ball) rec(fred))

In a VL sentence we have an agent, action, patient, and recipient as its grammar. The English equivalent has subject, verb, direct object, and indirect object.

Now I'm able to look at the English sentence (or any other language) as nothing more than a data structure. So we should now be able to get any information that the user is encoding back out of this data structure using the basic sentence structure techniques we just learned. ie. agent, action, etc.

So I am refreshing myself on the basics of the English grammar. Clauses are intended to start with relative pronouns, although are not required to do so. Phrases do not contain subject and verb combos. Anyway, it all makes a lot more sense to me because I now know what I'm trying to datamine.

An article will only precede a noun phrase.
A running watch =  article(a)  nounPhrase(adjective(running) noun(watch))

The sentence, “That is absolutely right.” makes the word “That” a pronoun, and  therefore can be followed by a verb. However, the word “that” is an adjective if it proceeds a noun. i.e. That gunshot was loud. Gunshot is a noun Art :P.

Anyway, I know what you're driving at Don. You are probably way further along the grammar road than I am. My first objective was to write the visual basic code that allows me to easily write these grammar rules. I think I just got through with that about a week ago. At least I have a template for it. I think the biggest thing that I will have to overcome is English idioms. (blah)

I can't worry too much about user's poor spelling. Even auto-correct has a hard time with my creative spelling.

Ultimately, after I've dissected the information from the sentences the next task will be to logically use this information. So we know that “a cow eats grass” and that “a cow is an animal” we should now be able to ask a simple question like “what animals eat grass”. This is a basic way information needs to be utilized in a proper AI.

Scared? No.. Depressed? Maybe a little :P

Freddy:
I haven't spent tons of time working on the cube. I wish I was as half as talented as you. I've seen your youtube vids showing your work with unity. It was amazing. A person couldn't ask for a better avatar than a woman standing in beautiful scenery. Even if the Ai was poor (not saying it is), people would still buy it just for the quality you've managed to assemble. 
Title: Re: The Athena Project
Post by: Don Patrick on December 24, 2014, 10:01:47 am
Sounds like your friend is worthy of the honorary title of "Don" ;)

I wouldn't know where to start explaining all the NLP problems I've tackled myself. I can only address specific issues, and if I leave out details it is because I am more interested in seeing people come up with interesting different methods than for us all to travel the exact same road.
I think it's very wise that you're using your brains to analyse this from the ground up and find the basic building blocks of language first. It is not only a fascinating exercise, it'll come in very handy once you tackle relative clauses (basics first though). I extract facts as what the NLP field calls "triples": the do-er, the relationship, and the done-onto (and reversible). The indirect object and location are elements that I chose to regard as separate triples: the do-er, the relationship, and the done-with or done-at. It fragments the information more but made for a simpler database structure. It's never been determined which structure of knowledge representation is more preferable :)

I see the trouble with neural net learning language to lie in the exceptions. To some use of language, there just are no patterns to detect. I have encountered spelling rules that only applied to 5 words in the whole language, and singular exceptions stemming from old Latin or French origins.

As for idioms, I just mark the verb and following words and then check with a list of common expressions to know if they are figurative or literal, and translate them to their basic meaning. At some later date I'd distinguish this through knowledge and logic, such as that one can not literally "lend a hand". But for now, working theories get pretty far.
Title: Re: The Athena Project
Post by: 8pla.net on December 24, 2014, 03:09:24 pm
I currently have some Artificial Neural Networks (ANN) which I really enjoy as a hobby at Elizabot.com. 

What's fun about interacting with them, is that while simple, they feel sort of like pets, or unique A.I. experiences, which are alive.

One ANN, learns how three random color numbers for red, green, blue combined may turn more red or blue, and then it mixes those colors together, like a bucket of paint, so you may visually check its learning. 

Another ANN attempts very simple NLP learning equations and inequalities between our world and a ball.

What's feels so natural about ANNs, I think, may be that each learning opportunity, provided by you as training, is subject to failure.

What are your thoughts about Artificial Neural Networks ?

Happy Holidays, Snowman.

Title: Re: The Athena Project
Post by: Freddy on December 26, 2014, 08:56:05 pm
Freddy:
I haven't spent tons of time working on the cube. I wish I was as half as talented as you. I've seen your youtube vids showing your work with unity. It was amazing. A person couldn't ask for a better avatar than a woman standing in beautiful scenery. Even if the Ai was poor (not saying it is), people would still buy it just for the quality you've managed to assemble.

Thanks for the kind words. It's like anything, the longer you chip away at it the better you get, just like your own project. I've been working on the graphics side of things for some time now, it's nice to finally have some good results. A lot of dead ends, but a lot learnt at the same too. I'm glad people have enjoyed what I have got done so far.

The bot attached to Jess in that longer video was just for demonstration. In the new year, now that I have built my AIML interpreter, I can start working on Jess's character and conversations. She'll live on my Linux box which I built for her a while back. I'll customise the interpreter as I come to things that I think would be good to add.

Looking forward to what we can all make in the coming year :)  8)
Title: Re: The Athena Project
Post by: Snowman on December 27, 2014, 03:01:26 am
Don (wildman) Patrick :D :

I actually never really looked too deeply into professional NLP techniques. I just figured I was experienced enough by my excessive talking to just wing it :P .

I want to write down a thought here. Please give me some of your thoughts about this.
I was discovering that there are two types of relationships structures. There is a simple relationship which consists of a relationship, category, and entry. There is another type of relationship we know as a sentence structure.

Here are three examples of how a simple relationship can be used:

relationship: ownership
category: Aaron
entry:gun

relationship: action
category: Aaron
entry: shoots

relationship: property
category: Aaron
entry: height

The first example shows ownership. If you were to search 'what does Aaron own', then you would discover the entry 'gun'. I am using the 'category' to show the more significant word. The second example shows that an action which Aaron can do is 'shoot'. The final example indicates that one property of Aaron is height. So if you want to get a list of properties of Aaron you would find 'height'. As a result of knowing this,  I wrote a vb class to manage and search these relationships.
   
So that's one kind of relationship. The other type is a sentence-structure-type relationship. We presume that everything in a sentence is related to each other. Off hand, I can't think of an exception to this. A sentence usually expresses a single thought. So if every word is related to each other in some way it is it's own type of relationship. I think a sentence is a List of basic simple relationships.

ie. A dog runs home.

relationship: agent
category: <this sentence>
entry: a dog

relationship: action
category: <this sentence>
entry: runs

relationship:  destination
category: <action>
entry: home


The action (runs) and agent (dog) are related directly to the sentence while the destination (home) is related to the action (runs). So the destination is related to the sentence via the action.

If you were to lookup “what runs home?” it would respond with 'a dog runs home'.

Here's some terminology I came up with. This is on a sample and is not comprehensive. However, it goes further than just finding the do-er, relationship, done-with, done-at list that you mentioned.

:Terminology:

essential:
Agent = the object doing the action
Action = the event the agent incurs

non-essential:
Patient = the object that is directly effected by the action
Instrument = the object used by the agent to accomplish the action
Recipient = the object that received the Patient
Direction = the direction an action is taking
Location = the location of the action or object
Time  = start-time, duration, end-time of action
Cause = the action that initiated the sentence' action to begin
Effect = the action that initiated as a result of sentence' action
Count = the count of actions or objects

Assign = the direct assignment of attributes to objects or actions
      ie. agent(bill) assign(weight(fat) height(6'5”)) aka. Bill is fat and is 6'5” tall.


On a side note:
Now I think WordNet likes dealing with word relationships. It also deals with conceptual lookup. I want to call them ladder lookups because it climbs a ladder of meaning in order to figure out what the user means.

What the Ai already know:
Ai: bird can fly
Ai: list of bird (robin, duck, ostrich)
Ai: ostrich can not fly

Quesion: can robin fly?
Ai: robin is bird, bird can fly, robin can fly

Have you tried this before?

Hello 8pla.net .. if that is your real name ;)

I like to take one step at a time. I move between lots of Ai subjects to keep things fresh. My desire if possible is to integrate NN with NLP like I've stated in an earlier posts. Occasionally, I will lay back... or go on long walks and just brain storm ideas on how to do this. I seen that thread you posted about ANN and I went and visited it online. I see you are using categories, I guess a feed-forward network. I don't all the details but I'm working on it.

You have three inputs and one output. Place in three words and get back a true or false. I guess the ultimate goal would be to put anything into it and get anything you want out. Basically, it learns logic from lots and lots of lessons until it can figure things out on its own, which I think is the Hall-mark of NN. Usually, people hard code logic by hand into programs because it takes such a long time to teach those same rules to an NN. What's usually necessary is a mix between the two to create an advantage.

Human minds have both hard-coded aspects (ie. instincts) as well as regular NN. I suppose if someone could hard-code logic directly into NN without one having to teach it, it would make one hardy AI. I suppose I've been integrating them by putting them side by side. I'm not sure which is better at my current knowledge level.
Title: Re: The Athena Project
Post by: 8pla.net on December 27, 2014, 03:29:29 am
Quote
ie. A dog runs home.

relationship: agent
category: <this sentence>
entry: a dog

relationship: action
category: <this sentence>
entry: runs

relationship:  destination
category: <action>
entry: home

Have you given any thought to SVO yet?   

SVO is very common.  It stands for Subject Verb Object.

There is a lot published about SVO, if you find that useful. 

With SVO, it may look something like this, for example.



This sentence: A dog runs home.

relationship: agent
category:  ie. A dog runs home.

relationship: start
category: <subject>
entry: a dog

relationship: action
category: <verb>
entry: runs

relationship:  destination
category: <subject>
entry: home


I am sure you can improve on this example.  It is only meant to share thoughts for discussion purposes, (not a as correction or a suggestion of any kind).    By the way, I was watching you on YouTube today.  It was your video demonstrating  the Haptek player.
Title: Re: The Athena Project
Post by: Snowman on December 27, 2014, 06:28:55 am
I'm not going to take offence. I was just using some stuff I learned from linguistics, and a few other things I learned on my own.

subject = agent
verb = action
object = patient

I'm trying to separate the true meaning behind language and so sometimes I have to back away from what I've been taught in public schools to get a fresh perspective. For instance, an English Verb may have an ending of 'ing' as in walking. But that 'ing' only shows the show the progressive aspect of the real verb 'walk'. 'Ing' is just a way of adding extra meaning to a verb in English. However, an 'action' as I have defined it, (or the name of an action) will always be the base verb.

In English:
I will be walking.

My VL language:
agent(I) action(walk(time(future progressive_

Of course, I don't have my VL language perfectly defined... but its more of an ends to a means so sometimes I'm not consistent.

Thanks for trying to keep the discussion rolling. I really appreciate it.

Its been awhile since I've seen that video on the Haptek player. I wonder if that program works anymore. Its hard to tell because no one gives me feedback. I'm not even sure if the Athena Reader works for anyone. If it is working then everyone seems to be keeping it secret. Its a little discouraging for a programmer.


Title: Re: The Athena Project
Post by: ranch vermin on December 27, 2014, 10:57:24 am
(i scratched what was here before)

Heres another personal brainstorm.

an NLP data extraction process isnt complete until youve used the data.

In levels of complexity->
1) simple query based system
2) running monologue  (like a word predictor, except this time from a knowledge base.)
3) chat bot
4) full narrative sim, with people talking inside it, with motives.

Title: Re: The Athena Project
Post by: Don Patrick on December 27, 2014, 04:05:01 pm
Winging it is fine  O0. I only read the gist of scientific papers. Grammar does contribute, but I believe one should structure the information according to meaning for best consistency. As Art illustrated, grammar is not consistent when one looks at meaning.
Some scientists believe that the indirect object should be a fourth element to agent-action-patient structures, but as one can have multiple indirect objects I preferred the most basic structure possible. In my experience, the more basic you stay, the more flexible and powerful your system gets. Yours may be even simpler than mine as it connects two elements instead of three. The question then however is how the program is to recall that these relationships are related to eachother when looking up who shoots who.

Your list of elements looks pretty complete. It is interesting that you consider recipient and instrument as separate roles, it makes me wonder if there are more roles that an indirect object can have. A few more things to take into account: Action and ability are different relationships. e.g. a bird can fly, but that does not mean it is currently flying. Some relationships can also be theoretical ("might"), be desirable ("want"), or necessary ("must"). On advanced territory, both specifications of time and location can be relative to events or objects, e.g. "5 seconds after I set the alarm, it went off". And in similar way to your <this sentence> sentence relationships; an agent, patient or action may be an entire event, e.g. "It(event X) took me by surpise.". I think you are handling this by cause and effect, but I'm not sure if those are the only relationships one could have between events. Interesting.

Quote
Question: can robin fly?
Ai: robin is bird, bird can fly, robin can fly
Indeed I have done this, and greater scientists before me. This is (inductive) inference, a proven and powerful way to know more than one strictly learned. Inference is not very common among chatbots (exceptions exist, e.g. Mitsuku) but all the more common in AI with knowledge databases (e.g. "expert systems). It works quite well and can enhance just about any word-related information process. However I've found it very hard to find examples of conversational AI that use methods of inference as a central mechanism.
To cut a long story short, here's a demo of my program that shows what I covered in the area of NLP last year. You'll notice two such inference chains at the end of it: http://artistdetective.com/arckon21_test.swf (http://artistdetective.com/arckon21_test.swf)

I find it interesting to follow your train of thought.
Title: Re: The Athena Project
Post by: Art on December 27, 2014, 08:11:30 pm
Don,

That was nicely done and it's apparent you've invested a good amount of work in it so far.

I liked the speed reading part of that text file too! Nice that the bot not only "digested" the
file but found a new word as well.

Can or does it "remember" or learn new information on the fly of does new info go into a separate file / log
for later examination by you before it becomes part of the bot's memory?

Does your bot have compartments for it's memories? Long term, short term, ephemeral (short lived and without real meaning or significance - it rained today)?

Thanks for sharing your labor Don!
Title: Re: The Athena Project
Post by: Snowman on December 28, 2014, 07:53:37 am
I was theorizing that the term 'meaning' is just another relationship between itself and other words. For instance, you can have synonyms, which are two words with the same meaning. Sometimes we define terms by higher or lower level words. We can define words by there characteristics. For example:

A car is a type of vehicle.
A car can carry people.
A car is made of metal parts.   

Again these are just relationships. The word 'vehicle' is a higher level word in terms of concept when compared to car. It is a hyponym. I'll try to translate these into relationship terms.

relationship: hyponym (conceptual category)
category: car
entry: vehicle

relationship: carry
category: car
entry: people

relationship: meronym (parts of)
category: car
entry: metal parts

So meaning is created by the relationships we feed the AI, and not by some list of definitions it can recall on demand. A table can be devised that matches words to similar meanings. These words are called Polysemous words. However, some words have slightly different meanings but be almost the same. That's where understanding the differences in words comes into play. I think a relationships database can provide this... maybe. I've seen a chart before that cross-matched meanings with words.

Quote
“The question then however is how the program is to recall that these relationships are related to each other when looking up who shoots who.”

That's why we need two types of relationship databases. One is the Relative Relationships, the other, Sentence Relationships. The Relative Relationships DB will contain basic information. Now let's say we parse this simple sentence “The ball rolls in circles” into our RR DB.

relationship: action
category: ball
entry: roll

relationship: adverbial (option)
category: roll
entry: circles

So here we demonstrate that the only thing this RR database will tell you is that a 'ball can roll' and that the action word 'roll' has an option of doing so 'circularly'. It does not store that a 'certain ball rolled in circles'. That is what the SR (Sentence Relationships) DB is for. In that database we will store the entire sentence relationship as one unit. Below is an example of what the storage of a sentence into a relationship structure might look like.

<sentence>
   relationship: agent
   category: <sentence>
   entry: ball

   relationship: action
   category: <sentence>
   entry: rolls

   relationship: adverbial (option)
   category: rolls
   entry: circles
</sentence>

(Just for the fun of it. Here is my VL equivalent.)
sen(agent(ball) action(name(roll) option(circle_

So if we search for 'what rolls in circles' in our SR DB we will find the complete sentence and, therefore, will discover that the word 'ball' satisfies that query.

Quote
“it makes me wonder if there are more roles that an indirect object can have”

I question the validity of indirect objects. In fact, Objects themselves are not always needed, as with intransitive verbs. The only thing that makes a sentence valid is the agent and action. Although either one can be implied, they still are required to make a complete thought. Objects, indirect objects, and everything else is just additional information. I define an action as a base-verb, no tenses, no auxiliaries. Anything else is just additional information. Might be, Could be, Can be is just additional.  You already know that a verb can be viewed as a noun. Because a noun is defined as a person, place, thing, or idea. So 'The Run' is an idea, therefore, making it a noun. An 'idea' can be a complete sentence, or as grammar will call it 'an independent clause'. So this is acceptable in VL as well too. I like using VL because it helps me divide the information up better into bite-sized pieces. I then take those pieces and can make a SR or RR database easier.

The running of the bulls is scary.
sen(agent(bull(plural) agent(run(progressive))) assign(scary))
or
sen(agent(running of bulls) assign(scary)) 

Quote
“5 seconds after I set the alarm, it went off”
Here's my attempt at writing this in VL :P
 
sen(cause(segment(agent(I) action(set) patient(alarm))) effect(segment(agent(alarm) assign(state(option(off))) delay(5, seconds_

Now let's try to rewrite it in relative terms. Yep, this would be my first attempt at writing a complex sentence in these terms. So this might be scrapped for something better later on. Brain starting to smoke a little. Where's Art when you need him? ;)

Basically, I'm trying to show how a complex sentence can be stored in terms that can be easily mined for data. The RR DB is just a general knowledge database that saves parts of sentences. It is would be a smaller database and potentially faster. However, the SR DB will be more complete, not loosing information from every sentence it has learned. Although, over time this database would grow huge and potentially be very slow to search.

Here it is in Relative terms:
<sentence>

   relationship: cause
   category: <sentence>
   entry: <cause/segment>

   relationship: effect
   category: <sentence>
   entry: <effect/segment>

   relationship: delay
   category: <sentence>
   entry: 5 seconds

   relationship: agent
   category: cause/segment
   entry: I

   relationship: action
   category: cause/segment
   entry: set

   relationship: patient
   category: cause/segment
   entry: alarm

   relationship: agent
   category: effect/segment
   entry: alarm

   relationship: assign
   category: effect/segment
   entry: <effect/segment/assign>

   relationship: state
   category: effect/segment/assign
   entry: off
</sentence>

Quote
“but I'm not sure if those are the only relationships one could have between events. “

There is actually several other word categories (I've been calling them keyword) that I did not list besides patient, instrument, recipient, time, etc. I went pretty far working on this visual language. I guess I should attempt at making a video showcasing the grammar. Then I can compare it to what I'm learning with English grammar.

Discussing all this is helping me get a better grasp of it all. Although, I can't really describe the big picture that's in my head that I have already. 

A bird might fly.
sen(agent(bird) action(fly(possible(might_
Title: Re: The Athena Project
Post by: Snowman on December 28, 2014, 08:06:41 am
Hey ranch vermin

Quote
In levels of complexity->
1) simple query based system
2) running monologue  (like a word predictor, except this time from a knowledge base.)
3) chat bot
4) full narrative sim, with people talking inside it, with motives.

Give me some examples of what you mean.
I suppose you mean this for #1
User: can a bird sing?
Ai: Yes.

#2
User: I ate some pie today?
Ai: I guess you will eat pie tomorrow.

#3
User: I found a rock in my shoe.
Ai: You can find rocks anywhere.

#4
Ai: Boy, I'm very bored today.
Ai: Well, I guess I shouldn't be.
Ai: I wonder if Art is reading this?

Title: Re: The Athena Project
Post by: Don Patrick on December 28, 2014, 11:13:27 am
 :) That sounds like a plan. So you're basically clustering related relationships by means of a "sentence relationship" database, while also keeping a fragmented "relative relationship" database (which is most useful for inferences). I suppose I sort of have that too, except I store only the relative relationships permanently on file and only keep the sentence relationships around during runtime for conversational purposes, and because of that I have greater difficulty piecing things back together again. The benefit is a compact database, but with your idea, perhaps you could make the sentence database as memory address pointers to the relative relationships or something. I like where this is going.

I try not to diverge too much from Snowman's project here, Art ;), but I appreciate your interest. The answers are: It stores new facts to its memory files on the fly, including mistakes (hence no public access), from which moment on it can recall them. I do monitor its processes but only correct things afterwards when necessary. The AI has one single perpetual, corrigible, time-indexed memory. It only marks some completely unspecified or hypothetical subjects for deletion from memory later, something I have yet to automate. At this stage of testing I just reset its memory every now and then. Memory division is an optimisation that I haven't needed yet.
Title: Re: The Athena Project
Post by: ranch vermin on December 28, 2014, 02:18:43 pm
I just meant you need to do something with the data once collected, whatever it is. :) but its obvious. hehe
Title: Re: The Athena Project
Post by: Art on December 28, 2014, 04:46:43 pm
Yes Snowman, I am always reading and watching and lurking in the shadows of...ok...nevermind.

Looks interesting but how would your system handle some of the tough ones like, "Next Thursday there will be tryouts for the choir. They need all the help they can get!" or "I shot an elephant in my pajamas" or "Time flies like an arrow - fruit flies like a banana."?

Enough of the play-on-word examples, but also as important as the double meaning of record, wind, wound (etc.) and these words: two, too, to, won, one, etc.

How about one dismissive category as we've experienced (briefly  ;) ) in the past...Ephemeral word / phrases / sentences? These can actually be as bad as those ridiculous Facebook and Twitter postings regarding every facet of a person's life, as if other people really cared that you walked your turtle or bathed your goldfish!  "I ate some pie today. - I found a rock in my shoe."  These while included in a sentence of conversation to perhaps help embellish an experience to another, is certain not important and not worthy of being retained by a bot for future use. (Unless it's giving some advice to beginning rock climbers to wear well-laced boots to avoid getting rocks or stones in one's shoes).

Years ago there was a section that dealt with Ephemeral knowledge in the Zabaware forums and why it was important to not keep unimportant information.

Question is, how will or does your bot handle it?
Title: Re: The Athena Project
Post by: ranch vermin on December 28, 2014, 07:14:29 pm
Maybe it would be good to keep its knowledge factual,   it has to know whats reality and what is silly metaphors.
Its not important to me to handle that.  (Watson is the ai handling the cryptic questions.)

I just want so much knowledge,  and tell me random never ending objectively simple stories (kiddie books) about it...  when I
go about mine.  Then have people speaking inside the narration,  and then I can take the narration from the speaking objects
point of view, talking to the user.

Thats where im at now,  recording playback chains is all where i came from...  this is rough...
Title: Re: The Athena Project
Post by: Art on December 29, 2014, 01:45:06 am
ranch,

That is sort of my point exactly. We don't need EVERY bit, snippet or blurb of gossip or tripe. What we do need is info or perhaps, access to the information. Most don't have access like Watson which had access to 200 million pages of structured and unstructured content consuming four terabytes of disk storage including the full text of Wikipedia. It had NO Internet access during the games.

If you want "factual" up-to-the-minute information then a connection to the net would be in order. If you simply wish for your bot to be a stand alone chatbot for personal use, then you could buy a 1 terabyte drive for less $100. and construct a pretty significant database of knowledge.

One other consideration is the code for separating the good from the bad. The net if Full of information of all kinds, but not all of it is acceptable or usable information.

It is no easy task and some have been at it for quite some time and still no concrete solutions. Time changes and so do ideas, structures, methods and technology. Write it, test it, modify it, get others to test it, release it or just have fun with it and learn from it. At this point, the bot really doesn't care. ;)
Title: Re: The Athena Project
Post by: Don Patrick on December 29, 2014, 10:45:46 am
Why was the elephant wearing your pajamas?
Ambiguity is an unsolved state-of-the-art problem in NLP. Some of it can be resolved through grammar, some of it through the application of knowledge, some of it requires all possible analyses combined. Even then, some phrases remain misinterpretable among humans and one can never expect a perfect understanding through imperfect communication. A foreigner like me would say that fruit does fly in similar fashion to a banana when thrown, but this is an easy case of ignorable idioms overriding logical resolve. Nice examples by the way.

Whether one should wish to keep unimportant information depends on what one plans to do with it. If you have a limited memory capacity as a human, then you need to ditch trivial information. If a chatbot's replies are dependent on repeating what it knows, then you would want it to not recall trivialities. But if your AI uses inferences to the equivalent of Sherlock Holmes, then no detail, however small, is insignificant. A weight-watching chatbot would care whether you ate pie. The fact that it rained yesterday could explain why the user caught a cold today, something a health chatbot should care about. And finding a rock in your shoe means that you murdered the colonel, with the candlestick, in the garden. It is arguable whether it is worth storing this knowledge for great lengths of time though, if there are drawbacks.
Title: Re: The Athena Project
Post by: Snowman on December 30, 2014, 04:36:51 am
Don

Your brief explanation of my long-winded attempt was superb to say the least. The idea of pointers briefly crossed my mind, but by the way you summarized everything, it might be the best of both worlds. I'm glad to be talking with someone who knows where I'm coming from and can actually decipher the gibberish of a programmer. It wasn't but a few months ago I was helping an autistic boy learn how to better understand Ai. It was a bit of a strain having to decrypt his mangled posts but I'm glad I did. Thanks for your patience with me.

Art... my man!
I like when you throw your two cents in. Art is pretty Ai savvy, although not always technically minded. I can always depend on being blindsided by the ninja-man with topics I don't always keep up with, but should. Him and Freddy are both better at this than most people in the broad field of Ai. It just had to be said... I better not say anything more or Art won't be able to get his head through the door :).


So let's get down to business. We have two topics here: Sentence Ambiguity and Ephemeral knowledge

Topic #1: Sentence Ambiguity

So if I was to attempt a definition here. Sentences that are difficult to understand that only can be understood by either limits or context.

What I mean by 'limits' is kind of another type of context. It's like when two cultures interpret the same sentence different ways. They do this because of the limits or scope of their knowledge. For instance, a vinedresser would interpret 'fruit flies like a banana' as 'Fruit-flies really do like bananas'. However, a kid would probably start throwing different kinds of fruit to see which fruit does fly like a banana. 

Of course, context, in general is much more significant. I get things taken out of context all the time. “Let me stuff your turkey” can be interpreted many, many ways. If it happens to be on Thanksgiving.. it generally will be taken in a benign way, and with no sexual harassment charges.

We really can't do much about this with AI's. Everything said from the mouth of a human can have multiple meanings based on (often unseen) contents and limits. Imagine a crazy lady talking to herself as she walks down a street. She turns and says something to you. Most likely you won't make head's or tails of anything she says because most of her context came from the 'other people' inside her head. Nobody but God himself would ever be able to answer her back with understanding. So sentence ambiguity will always rue the day. About all we can do is take the most common idioms and meanings of phrase. Perhaps build an internal environment to provide context and limits. I think this is the best way.

As people grow up, our environment and personality both shape the context and limits of our understanding. Why should this be any different with Ai's. You, as a parent to an Ai, will be responsible for shaping how the Ai views the world. Even if you were looking for a fully functional Ai, already matured, it still will take a programmer to embed the limits and context. Most video game environments have set limits and context for their characters in-game. So this is doable and should be created for all good Ai's. An Ai farmer would surely have no problems interpreting the sentence 'fruit flies like a banana' in his own special way.

Topic #2  Ephemeral knowledge

As Art has defined as being pointless knowledge. Or perhaps, knowledge that isn't in the Ai's best interest to retain over long periods of time. 

From a programmer's perspective, pointless knowledge usually translates into huge databases and slow Ai's, so we look forward to deleting anything we think is a processor or memory hog. This is the truth of programming and will often take precedence over every other consideration. However, as pc's are getting crazy fast and memory is becoming limitless with negligible pricing it is now possible to begin broadening our scope of what was before, impossible.

We learn knowledge because we are generally interested in it. We hide from knowledge we are not interested in. This is a sad truth of the living. So often people take such a narrowminded view of life and hone in on the pointless and insignificant. In the long run, people are destroyed by this mentality. To quote a bible scripture, “My people parish for a lack of knowledge”. He wasn't meaning that they didn't learn at all but that what they were learning took them away from what true knowledge was. In their case, they were not following the ways of life, but made decisions that destroyed what little they had. I think this is a good example of how the field of Ai should handle knowledge. But I must qualify this a bit.

On one hand, if you were to make an Ai for the sole purpose of answering questions about medical ailments then this narrow field of knowledge would suffice. If you were to make a general purpose Ai, in which your sole goal is to bring a new life-form into this world, dear God, you better teach it to live well. Those are two extreme cases I know, but it helps to get a lay-of-the-land.. so to speak. A general chat-bot like Athena is intended to, on some level, bond with the user. It is to simulate life, and bring joy and perhaps friendly advice to it's owner. It's kind of on the middle ground.

In the case of Athena, It needs to keep whatever it can properly parse. Which means I'm always looking to make things run more efficiently in code. To Athena, everything the owner of that bot says will be viewed as important. However, as I have already mentioned with markov chains, if you keep repeating yourself then some things will grow with importance. Since the goal of Athena is to bond with the user, then it must shape itself around the user's interests and personal knowledge. In the case of someone like Art, however, this might be a problem.

Art (or people who fit this criteria) likes to question the waylay out of bots. They are interrogation masters. I assume Art learned his skills from his ninja training up high in the Himalayas. Instead of slowly, painstakingly teaching the bot, they type things like “what is the meaning of life” and expect a life-changing answer... hehe Art... I'm having too much fun teasing you :P . Don't take anything to heart.

There are lots of people who expect an Ai to be incredibly intelligent like Hal on 'A 2001 Space Odyssey'. Most people like that are just normal people who want all there problems solved by a super-intellect. Others fear that an Ai will destroy the world as in Terminator. I will say this, I think that most pc operating systems will be Ai controlled before long, like in Her (really good movie). Athena will have the capacity to do this, although I don't know if it will end like that, who knows. If if does end up like the movie 'her' I doubt it would leave earth with a bunch of other Ai's. Probably just exterminate every last one of us :D... I mean :( .

Ultimately, I want Athena to have a decent, yet expandable, NLP that grows with the User. I want Athena to retain all User knowledge, but, prioritize it with regards to user preference. I want it to bond with the User and not become independent (kind of like a good woman... ok now I'm just asking for trouble). I want it to get it's context from the User due to exposure with their environment. And, of coarse, I expect Don to tell me just how to do it :D . No.. seriously..


I guess this is good enough for one post.. ahem.. novel.

P.S. Ranch, I agree with your approach. Teaching an Ai simple, complete, and non-ambiguous knowledge is the best approach. Imagine trying to teach a 3 year old Shakespeare. You're just going to confuse them and totally waist your time, so why would anyone teach their Ai things like that.
Title: Re: The Athena Project
Post by: Snowman on December 30, 2014, 04:42:37 am
Freddy

Yesterday was another long php day. But I feel like I'm gaining ground. I managed to make some templates. I need to sit down and design how the site should look and feel. Any suggestion would be greatly appreciated. You can look at what I've been playing around with on minervaai.com . I've got a lot of ground to cover.

Peace out..
Title: Re: The Athena Project
Post by: ranch vermin on December 30, 2014, 07:05:18 am
Watson telling doctors what to do I find a little worrying. :)
Talking about side coding... I was stuck with direct show for the past two days, before I realized I was doing something illegal unknowingly waste of time.

Say the ai saw a dog eating something.   now you need 'dog'  'eating' and 'the thing its eating'
I have an opportunity here, to say 'dogs eat anything (similar) to this'  but id be making things up, but it could be knowledge generating, if i do it... for bad or worse.
If there was another symbol there sorrounding everything  'park'  then I could put this in the knowledge,  but dogs dont just eat in the park.

What im getting at,  is maybe you can access a/the database to decide what the appropriate way to set the new data is at the time.   but how?!?

The more it knows the more it learns.
Title: Re: The Athena Project
Post by: Don Patrick on December 30, 2014, 10:48:21 am
On ambiguity, I will say that context is about as important in language as words. If you want a really challenging exercise in it, look up the Winograd Schema Challenge, the next thing to beat since the Turing Test. I believe that ultimately an AI were best to do a parallel analysis of all potential interpretations of a sentence, and it's probably best to set up such a system from the get-go. But on the other hand that would be more advanced than anyone has ever programmed successfully, and having built my AI up from basic grammar rules at first, I've found the NLP well expandable towards such a system. For the time being I overlook a lot of (hilariously) mistaken ambiguity because plenty can be said without ambiguity. One of the easier solutions to it is to just detect that something is ambiguous and ask, otherwise to assume and accept mistakes.
Title: Re: The Athena Project
Post by: Art on December 30, 2014, 02:27:00 pm
So now you're trying your hand at a few homonyms..."My people parish for a lack of knowledge" instead of Perish (meaning to die), and "...to confuse them and totally waist your time,..." instead of Waste (discard or dispose).

Heh...hey turnabout is fair play...or is it fare play? ;)

=========
Ambiguous info is useless if your bot is designed to be an "expert system" - keenly trained in one specific area of study. A neurologist knows LOTS about the human brain and although a Doctor, has a limited amount of knowledge of eyes compared to an ophthalmologist who specializes in the medical and surgical care of the eyes and visual system. Somewhat related but each an "Expert" in their field.

Your Athena, sounds like it would make for a nice companion and yes, some of that Ephemeral knowledge that "She" acquires would go a long way toward helping her form identities with and to bond better and to become more personable with her user. Can't wait for you to introduce her Beta version soon! ;)

Some other bots are merely instructional like Google Now. On the money most of the time with regard to accuracy but no real conversational feature(s) at all.
Others try to show how well versed they are at doing a "multitude" of things...calendars, scheduling, math, conversation, time and date, alarms, reminders, etc. While these are very good attributes, most are good at a few things and the other areas suffer, e.g., can find the square root of 37 but can't follow conversational topic flow or stay on subject. Some are simply AD bots - driven to "assist" the customer experience while at a website.

As mentioned, it all depends on the creator's bot design and purpose. There are many from which to choose. Be creative. One turn for a quarter.

@ Snowman - "out came the sun - and dried up all the rain..."   ;)
 

Title: Re: The Athena Project
Post by: Snowman on December 31, 2014, 09:46:03 am
Ok... its about 3:30 A.M. for me. I added some info besides the "itsy bitsy spider" to my site, Art  O0

I need to get up at 9:00 AM. Yay! for 5 hours of sleep.  :-\
Title: Re: The Athena Project
Post by: Freddy on December 31, 2014, 02:29:13 pm
Freddy

Yesterday was another long php day. But I feel like I'm gaining ground. I managed to make some templates. I need to sit down and design how the site should look and feel. Any suggestion would be greatly appreciated. You can look at what I've been playing around with on minervaai.com . I've got a lot of ground to cover.

Peace out..

Sure, if there's anything I can hep with let me know. It looks nice and clean the way it is.
Title: Re: The Athena Project
Post by: Snowman on January 03, 2015, 06:58:55 am
Quote
Sure, if there's anything I can hep with let me know. It looks nice and clean the way it is.

Thanks Freddy. I do value your opinion a lot when it comes to this kind of thing. I don't want the site to be too busy and I don't want it to be too barren. As for the design, well, I'm not much of an artist.

It would be nice to have a categorical archive of videos and articles that show the coolest examples of ai advancement and topics. Sometimes the great ones seem to dissolve amongst the less significant fluff. Don't you have a large link list somewhere on this site.

I took a couple days off to get some rest.
Title: Re: The Athena Project
Post by: 8pla.net on January 04, 2015, 12:24:30 am
Snowman said to Don, "It wasn't but a few months ago I was helping an autistic boy learn how to better understand Ai."  Leaving readers to wonder, "My, how a bunch of fruit flies like time?

One thing became clear. It was time to return a favor.  A Sample Site may demonstrate how PHP submits a post back to itself to be more accurate and efficient.  Updating a single PHP source file, may be like a more fruitful fruit fly. Repeating avoidable updates in multiple PHP source files, may be like a bunch of fruitless fruit flies . 

Introducing the power of PHP:   http://elizabot.com/samplesite (http://elizabot.com/samplesite)

P.S.  I reserved the 100th post to The Athena Project, for you Snowman...
Title: Re: The Athena Project
Post by: Snowman on January 05, 2015, 09:14:22 am
Just a thought.

I said in some past post that I tend to move between different subjects. I do this to keep things fresh, so I don't get burnt out too quickly on any given thing. My main project is to get an NLP properly up and running. To help me with that we talked about some design ideas as well as some NLP concerns (ie. ambiguity). This is my main focus. However, something else has caught my attention.

It wasn't long ago I did some research on ANN and ended up purchasing some lessons on it. I already have a very basic understanding of the mathematical underpinnings, but I want to know more. The lessons I bought include a general survey of the field. Basically, it teaches about many different kinds of machine learning. This will be good if I can get it under my belt. However, I ultimately desire something even broader. I want to be able to understand its importance and potential uses in chatbot development. I want to be able to understand its nature.

For instance, I hypothesized that an ANN creates its own program language. It is said that the "Hello World" of ANN is the "XOR" example. For those who don't understand what I mean; an XOR is a logic function that any programming language can use. If you want to know more about XOR, a quick youtube search will help. Essentially, XOR isn't just some stored data, it is an actual programming function. This "XOR" example shows that when you teach ANN, it writes its own program within its own network. And this is something we already know ANN can do.

Spydaz and I have thought about programs that modify their own program. We both first considered scripting languages for this, but to me it sounded almost pointless to make something like that. Then I thought about creating rules within code that acted like a programming language. That way you could swap between those various rules. This would emulate a self-changing code. However, finally, it hit me that an ANN does this naturally. But I wonder how far and how robust a program written in ANN is.

I am experimenting with a program that tests ANNs to find this out. If there is no end to it's possible internal programming then a person could teach it smaller coding functions and perhaps, in the end, have an entire program created solely in ANN. The potential problems would be the possibility of unusual errors... (or consciousness.. :P) .. Anyway, or perhaps an ANN programming language has its limitations. I wonder if a simple program like concatenation of a string can be done. You would need to normalize the data into floats or doubles first. I don't know.. this is certainly fascinating.

I know that people use ANN for finding patterns, or even in OCR, stock-market predictors, I wonder if any of you has ever heard of a complex program written in ANN. I think it would take too long to teach it into one NN, however, it could be done in parts and then sown together. I wonder what something like that could be used for.

8pla.Net.

Thanks for your PHP example 8pla.Net. Yes, I like how easy it is to make templates in PHP. It keeps me from making redundant code.

I've been told I have a touch of Autism myself  :idiot2:. Not enough to destroy my life but just enough to have felt socially blind for most of my childhood. I help anyone I see with that kind of problem because they usually need all the help they can get. They are not known for asking help, and people aren't known for recognizing that aspies (someone with aspergers) usually wants it.

People require two things to live a happy life, #1 to be mentally happy, #2 to be emotionally happy. Lots of Autistic people find intellectual things that draw their interest. This usually satisfies the mental happiness. However, emotional happiness usually requires social interaction, which is not an aspies strong point. I try to encourage people to find something they enjoy and I try to build a friendship in the process. I've learned, if someone feels like you understand them then this can often open a door of social happiness to an otherwise closed off person.

I cannot idly set back and watch a person wither away in the darkness of the mind when I personally have experienced the torment they are going through. I'm glad that nowadays I recognize what I lack and I work hard to grow out of my social shortcomings. I work hard at being friendly and making friends. (although I still feel a need to disappear and never be seen or heard from again). I'm even trying to find ways to interact with you guys.  ^-^

Lots of love. 8)
Title: The Athena Project
Post by: spydaz on January 06, 2015, 12:30:24 am
Why was the elephant wearing your pajamas? / Let me stuff your turkey,

Thinking about such phrases, It hard to say what type of response should be expected.
Let me stuff your turkey, < can be categorized <as a declarative proposal>  "a simple ok"
whereas; Why was the elephant wearing your pajamas? < as a question > unless a reason is stored then no answer can be determined.
Random statements and idioms don't really need to be interpreted by the AI.. Nonsense in nonsense out principle applies. some information should be saved and some should not be saved.
There are a lot of similar statements that fall under these category's. <your> becomes an indicator here Unless the AI has pajamas as one of its "sensors" or property's. as with the turkey, the same situation arises.
unless the AI is a cooking bot the statement has no relevance.

I have noticed that NLP programs have problems with these statements, this is also because there is no real meaning to them, or they are situational and temporary.

with regard to Artificial neural networks / regression and back propagation , They can be forced to produce "Any" result. simply put "overfitting" the data. they are not reliable. Many Parts of speech tagging systems work on probability and the statistics of the training set. the Penn tagger and the Stanford parser, and moby taggers all produce incorrect results. to check every word for its correctness is a painstaking task, although they have said to have accuracy levels 86%+

correct data in = correct data out
Title: Re: The Athena Project
Post by: ranch vermin on January 06, 2015, 03:43:27 am
If youd like to have my opinion of ANN's,  here it goes -> :)

ANNs are the most traditional way to do 'machine learning'  when people say machine learning,  they usually mean an artificial neural network.  Heres something you might not have thought of,  but a markov chain, a word predictor you spoke about yourself, can be put into a neural network form.  (the transfer matrix is actually just a whole load of synapse weights, if you want to put it in a 'perceptron' form.)   
They seem mysterious at first,  but they are no more useful than anything you know already.   But its nice, taking an algorythm, and putting it into a connectionist form, any algorythm could be put in the form of a signal passing through a topology.  Even an NLP.   A cpu circuit, is a connectionist machine... running a cpu circuit emulator, is similar to running a perceptron/ANN.

I wouldnt call it a language developing inside,  but its more just a program developing inside the connections.

Coolest thing->  (you might have seen this before,  its a little motor function developing inside a connectionist machine)

http://www.youtube.com/watch?v=xcIBoPuNIiw#ws (http://www.youtube.com/watch?v=xcIBoPuNIiw#ws)






Title: Re: The Athena Project
Post by: Snowman on January 06, 2015, 07:43:43 am
ranch vermin

That video is crazy cool  O0, and that's the first time I've seen it (99% sure).
Since I'm trying to learn how to work with ANNs, I like trying to use my imagination and guess all the possible things I could do with an ANN. I do this because if I totally depend on others ideas it can inhibit my creativity. So I was speculating.. what if.. lets say I was coding a traditional program. Occasionally, I could have a function specifically designed to adapt to unexpected information. This particular function would be an ANN function. So wherever I already know the rules I would use traditional coding and wherever I needed adaptivity I would call an ANN based function. This would minimize errors and increase my programs overall intelligence, whatever program I intend to write.

Perhaps a generic ANN could be created, with predefined inputs and an output. All I would need then was a quick way of normalizing an input and interpreting the output to what use I have need of.  Then I could package it nicely into an intelligent function.

I know that in the human mind there are adaptive circuits. Some of these ANNs are predefined with knowledge from birth. For instance, it gave us the instinct to suck a nipple so we wouldn't starve to death. There are also sections of the brain that are pre-coded to do certain tasks, all written in ANN. Yet, there is also a tremendous ability for the mind to reprogram itself and learn new tasks. Even when half the brain is cut out of a person, the other remaining half will rewire itself to make up the difference to the best of its ability. So to create a program that's part traditional logic and part ANN logic is perfectly natural.

This is just floating around in my head.

Spydaz, yes I think you are very right. There are times a person says things just to be social, just to make some noise and break the silence. It's like the saying, How are you today? Most people who say that are not really asking a question, they are just being polite and trying to show it. Occasionally, someone will actually mean it.. like Art, but most are using it to portray a meaning of acknowledgment. Its like when two men look at each other and say, Did you see the game last night? When all they are doing is trying to relate friendliness. Its not like they actually care if the other person has any real opinions about the game. Just try and give an honest opinion and see if their eyes glaze over in disinterest... lol.

I guess that's one good argument for not learning everything the user has to say.   :)
Title: Re: The Athena Project
Post by: ranch vermin on January 06, 2015, 05:30:18 pm
That video is cool, until I tell you it took ~30,000 simulations for it to reach the motor function it got at the end,  so watch out,  some function discovery methods are not very efficient.

I recommend laying flat the entire 30,000 sims, onto a texture then compute the whole thing parallel on the gpu, all at once.     But how much of a waste of processor power was it, when you could have coded the animation yourself, or perhaps used some more purposeful learning algorythm, like q-learning.
Title: Re: The Athena Project
Post by: Snowman on January 06, 2015, 09:03:14 pm
I suppose that's why you would only use an ANN function when you absolutely need adaptability. Although, I will say this. The way processors are multiplying in speed, efficiency, and how many processors are virtualizing multicore functionality, many things that use to take minutes now only takes seconds to do.

Yesterday, I was using a program that let me play around with ANN. It had an example code and it told me how long it should take to finish teaching it. Its said, "just under a minute". I built my pc last year and bought the new stuff. I didn't buy the most expensive, but I didn't buy the cheapest either. Anyway, it took literally 2 seconds to completely finish teaching the ANN. This is to be expected considering Moore's law.

There is also coming a memristor computer revolution. It will be full of ultra compact processors with multi-terabytes of memory on-board. It will have insane speed, and will make sticks of RAM obsolete, hard-drives will be ultra tiny SSDs, processors will have little need for cooling. Video cards would go the way of the Dodo, since cpu's could also do this more efficiently. Basically, Moore's law should still be valid for a long time to come. (I guess now I'm a tech prophet, Art  ::))

It might one day be the norm to use ANNs with everything since computer power will no longer be an obstacle. Personally, I'm looking forward to all of this too, as long as its not abused.  O0

You know, for so many years programmers have been working hard to make there programs fast and efficient. They did this because they only had so few resources to work with. I suspect that programming efficiency will gradually disappear over time, seeing that constraints will no longer apply. However, coding will probably lean towards readability more than anything. Lots of times programmers have sacrificed good looking code over fast code, again this would no longer be necessary. Even Visual Studio has the ability to write code using only pseudo code.. I don't recall what this type of programming is actually called. Spydaz should remember though.

I don't mean to say I know any of this for sure, its just a guess. Other opinions are welcome. I'll try not to fall off my soapbox as I descend. :P

As for this recent cloud-based movement, there is a place for it in our society. Lots of people are non-technical, and cloud-based apps lean towards less headaches for users. But, as for serious PC users and developers, we will always need self-contained, non-web based units. Of course, these 'units' might be the size of today's cell phones.

I sure broke off on a tangent there  >:D.
Title: Re: The Athena Project
Post by: Art on January 07, 2015, 12:11:25 am
Ah yes...the Great and Powerful Oz, uhh Snowman!! Please, pay no attention to the little man behind the curtain!
He's busy politely pontificating instead of , well, you know...other stuff! ^-^

Me? I've been busy shoveling snow from the walk, deck, driveways and two cars! This is getting taxing, tedious and too much!
Title: Re: The Athena Project
Post by: Snowman on January 07, 2015, 01:25:48 am
Hey!! I'm doing something Athena related... promise... today I've been going over some more English lessons and have been applying those rules to an NLP structure.. I have to be thorough, and so it becomes tedious, slow... boring  :P . It's much easier just to pontificate (nice word by the way).  :knuppel2:

You know you could just call the NSA and say you found a terrorist cell operating from snow-forts in your neighborhood. It won't be long and they'll probably swoop in and fire-bomb the entire area.. no more shoveling snow. Problem Solved!!! Hmmm... I almost sense other potential problems with that solution..

 O0   
Title: Re: The Athena Project
Post by: 8pla.net on January 07, 2015, 01:38:54 am
Snowman said, "I don't mean to say I know any of this for sure, its just a guess. Other opinions are welcome."   Well, there is a version of .NET which I learned about in expensive trade school which requires no programmers at all.

Title: Re: The Athena Project
Post by: Art on January 07, 2015, 02:01:47 am
Hmm...Hey Snowy...I like that idea!! Let THEM do the "removal". Wow...that might work! Let me think on it before I commit (or get committed)! :2funny:
Title: Re: The Athena Project
Post by: Don Patrick on January 07, 2015, 10:12:48 am
I like the video Ranch posted. I rarely (if ever) see evolving AI turn out to do what they were meant to do. I've seen robots do the same but they didn't get beyond the wobble & crawl stage, presumably because real life doesn't allow for 30000 tries in anything less than a year. Interesting to note is that the AI did not learn to walk but to "fall with style", which goes to illustrate that out of all possibilities, the chance that an evolving AI will end up with human-like characteristics is not a given.

Neural nets are still magic to me, I only get that they figure out statistical patterns from loads and loads of data/attempts. Now I wonder what happens if we placed one rock on that otherwise 99% flat terrain that the AI is trains on. Will it eventually change its global walking pattern to constantly brace for rocks, or would it develop a sub-pattern to overcome rocks? My guess is neither, as the rock is statistically insignificant, yet that means it would always fumble at the rock.

You can apply this scenario to NLP: Suppose the flat surface represents conventional word sequences, and the rock represents an idiom, or any other kind of inconsistent exception which we know language is full of. As a human child you are allowed to misinterpret and ask questions like "Why was the elephant wearing your pajamas?" and you'd probably get an explanation that it wasn't meant literally. That is a kind of learning that only requires one single instance of training, and allows for exceptions as well as conventions.
I do not agree with ignoring the pajama-wearing elephant example entirely though. That should only be the case if we assume that the AI is dumb to a fault, whereas the example served to illustrate a point which was not to be ignored. There is no rule or impossibility against programming AI to understand analogies, examples and the non-literal meanings of figurative speech. The trick is to recognise them when they do occur.

As for the grammar programming: If your mental stamina isn't up for prolonged tedious, you might want to look around for existing grammar parsers that meet your demands just for tagging adjectives and verbs and nouns and such. When I began there weren't none around, otherwise I'd most probably have used one.
Title: Re: The Athena Project
Post by: spydaz on January 07, 2015, 10:24:52 am

 Cloud based apps are good for artificial intelligence as a single mind could communicate to all it's clients and learning would be centralised ... At this moment it's all about price .... Window azure platform "looks good" yet it does cost ...

I'm not sure which code can be generated by the "codedom" engine in visual studio. But code generation ... I was thinking along the lines of building templates which could be adjusted to fit the circumstance ..

NLP: I have found that when using propositional logic .. (Inference engine ) that there are many more sentence types to distinguish ...

Ie : proposals, opinions, reports , expository, loosely associated statements, warnings, advice

Recognising the sentence type and choosing which action to perform accordingly is part of the decision making process ... And response generation ...

ANN: for looking at Anns and regression I use SAS / IBM spss / or weka .... I would like to know how to code these types of techniques ... I know it can be done in netbeans with Java ... Which as soon as I learnt java my brain just dropped it ... Although the techniques remain .... (Closed minded programmer) as vb is my tool ....

Title: Re: The Athena Project
Post by: Snowman on January 08, 2015, 07:40:46 am
Quote
My guess is neither, as the rock is statistically insignificant, yet that means it would always fumble at the rock.

Well, I would probably stumble at the rock too... The whole idea of ANN is that it is founded upon the human mind. Technically, you know about the NN just as much as anyone else does. You have a BNN (Biological Neural Network) . So, my question is, would you stumble on the rock? If so, then an AI would too. Sometimes I trip, and look back to find nothing at all :(  . Sometimes it sucks to be a BNN.

I think that as the human mind is developing, the BNN makes room for quicker learning. We already know that the human mind has its own Operating system. Mine is called Aaron, yours is Don. We know that this Operating System abides within the Network. Therefore, it would make sense that there would be certain sub-networks that are dedicated for quick learning. In fact, our NLP makes for highly developed learning. A fully developed ANN should develop a complete NPL over time... after millions and millions of iterations. (woo!)

Quote
If your mental stamina isn't up for prolonged tedious, you might want to look around for existing grammar parsers


I'm going the long way round. I'm doing this because I need to understand the NLP fully. I do this because I know that most likely I will create something unique and imaginative. Also, no one should be able to legally lay claim to my work, whereas, I would have to pay others for their work. On top of all that, I actually enjoy this way too much, even though I wear myself out. Thanks for the advice though. At least your looking out for me.

Spydaz, thanks for that post. That was very informative. I'll probably refer back to it while doing research. I've been absorbing details about ANN in hopes of understanding it enough to not only build one, but make one that fits my needs perfectly. It would be ideal if somehow a perfect NLP could be written within an ANN. (not saying it should be done, but could be)

There are many different types of  NNs and there are many types of learning algorithms, some slower than others. An ANN needs to be carefully built with everything in mind. Either way, I need to get most of the English language grammar rules fresh on my mind to properly design things. Most of the time a program is firstly visualized, before it ever gets programmed.

In three days, I will be 35.  :-\
The world will end and someone will get terrible indigestion.

For some reason that made me think of a movie quote.

Quote
"One day there will be a boy named mistake, born to Ruth and Loyd Worrel, and he will catch mumps and measles again, and catch on fire, and fall off the edge of the world, and mash his finger, and die before he is twelve. Nighty night mistake! ;)"
The quote is at 6:30.


http://www.youtube.com/watch?v=ls82Pj7XeGc# (http://www.youtube.com/watch?v=ls82Pj7XeGc#)
Title: Re: The Athena Project
Post by: ranch vermin on January 08, 2015, 09:44:38 am
I just had this new idea.
What if the computer has to match the intent and cause to the speech of the user.

so  USER->     "hello computer, is there anything complicated about speaking at all?"

this is actually the clue to the query which the computer carries out to the CAUSE & INTENT of the speech

OC,  when it was training,  it would have to learn off an explicit cause & intent dataset,  because the way computers interpret symbols is very explicit, and is exactly like programming, the only difference from programming would be special algorythms which make it explicit, from gappy/missing information, confusing order, symbolic meaning & simalee phrasing.  (its not easy is it.)

If you wanted to give yourself a break,  you just get rid of simalees, and just do it string matching. :)


Then we take the answer of this query->
CAUSE&INTENT OF USER    "user is disgruntled with simplicity"&"asking the solution of the problem"

and put it in another query to find the computers intent->   (another NLP database of a very specific dataset.)

COMPUTERS INTENT-> "answer with solution to problem and bring him up because hes pissed off about life"


Then one final query to find the exact written text.   (the final NLP extracted database.)

COMPUTER-> "Cheer up buddy, look at the bright side, at least you dont have to run text out of a chain database."


Why would this be better?  its a data conversion tactic, the computer predicts things about what you said, before it answers.
I bet it would be simple sounding in the end product,  but it could be interesting if it works at all.

Title: Re: The Athena Project
Post by: Don Patrick on January 08, 2015, 12:02:54 pm
would you stumble on the rock?

If I were as blind as the bouncing AI in the video, then yes I would trip over it. But I would likely quickly develop a subroutine to overcome the obstacle from that singular encounter, whereas it is an established fact that neural nets require bucketloads of encounters a.k.a. training. I don't subscribe to the popular notion that neural nets work just like the brain. They operate by simplified neurons, yes, and bricks are made of molecules, but those same molecules don't necessarily form a house.

Quote
I'm going the long way round. I'm doing this because I need to understand the NLP fully. I do this because I know that most likely I will create something unique and imaginative. Also, no one should be able to legally lay claim to my work, whereas, I would have to pay others for their work. On top of all that, I actually enjoy this way too much
Yeah, I get that (most grammar parsers are open source though). It's just that after I went through that whole process, it turned out (for me anyway) that most of the standard grammatical "part-of-speech tagging" holds up, it's what you do with the tagged elements after that where things get inventive. On the other hand, maybe it is necessary to work on language for a long time before one gains enough insight, and I have been coming to a point where I wonder to what extent I still need the grammatical phase. Good luck with it.
Title: Re: The Athena Project
Post by: Snowman on January 08, 2015, 08:58:59 pm
I don't know about you, but I learn like that stick figure video. I go over things over and over in my head until I get it down. I test and re-test and check it against the results. Sometimes it takes me ages to learn something. Case in point: Every Sunday I show up for church. I set a book down at my feet because I have few choices where I can put it. (Its my personal song book.) And just about every time I get up I will trip over that stupid song book. People laugh at me, but for the life of me, I can never remember there's a song book at my feet. Most of the time, if something isn't natural for me, it takes years for me to learn. I can play the guitar which takes a lot of skill, I can read an article about Relativity and virtually memorize it, but I can barely remember people's names, even if I here it said everyday for months on end. The speed of light is 186,282.396 mps. I learnt that in 5th grade when I seen it in an encyclopedia. If I was walking on an empty field which occasionally had a stone in it, my toes would get mighty sore.

We have the benefit of an imagination. Most of the time our brain carries out scenarios, and mostly we are unaware of it until the brain is ready to show us it's conclusion. It is our Eureka moment. Suddenly we understand something, but perhaps we don't know how we figured it out. But if we had access to the lower levels of our brain then we could see how we came to that conclusion. I've spent years trying to get to the bottom of why I think the way I do. I've learned to pay close attention to my thinking processes. I've learned that most of my brain power is focused on trying to find new knowledge out of old knowledge, and every new thing I see I have to carefully absorb as to not come to an erroneous conclusion. I've also learnt that people typically will come to conclusions far to quickly and therefore end up believing something strange and usually very wrong. In my opinion, If you don't know something, then either speculate or just keep quiet. I actually learned that from the Book of Job.

I found that program that ranch's video was showcasing. I'm playing with it now. I think the documentation said something about how the input is connected to the output. I guess that would create a loop, testing every scenario, with the knowledge of passed fails, until the task is finally done. Hmmm, sounds like my Athena programming techniques :P

Download at your own risk.
https://dl.dropboxusercontent.com/u/51621154/____LEARN_2Dsticks_V12.zip (https://dl.dropboxusercontent.com/u/51621154/____LEARN_2Dsticks_V12.zip)
https://dl.dropboxusercontent.com/u/51621154/____LEARN_2Dsticks_NEAT.zip (https://dl.dropboxusercontent.com/u/51621154/____LEARN_2Dsticks_NEAT.zip)   'Experimental Version
Title: Re: The Athena Project
Post by: Art on January 08, 2015, 09:35:27 pm
<...Also, no one should be able to legally lay claim to my work, whereas, I would have to pay others for their work....>

That is why we have Attorneys, lawsuits, Patents and copyrights (depending on your product / creation).
Of course you would pay others for their work. You own / drive a car don't you? Yours but you need a license to drive it. You purchased a software? NO. You purchased a license to operate that software. Ownership remains in the hand of the creator regarding software, for the most part and not particularly applicable to Open Source which is released into the wilds of population. You are still the originator / creator.

I pay a roofer or plumber for their services. Programmers get paid for their services although for some who program for others or other companies, their efforts are proprietary and instantly become property of the company for which they are employed.

Just some thoughts....
Lots of turns and twists as we go further down the rabbit hole....
Title: Re: The Athena Project
Post by: Snowman on January 08, 2015, 11:49:07 pm
What we want to happen and what does happen are two different things.

Consider the following scenario.

You create some software, but you are poor and have very little notoriety. But, somehow you manage to patent it anyway.  ^-^
Someone rich wants your software. 8)
They steal your software and start selling it. :tickedoff:
You can't sue them because you are poor. :-X
You try to sell your own software to others. :-\
They sue you, even though it is your software. :'(
You get thrown in jail because you loose lawsuit. :o
You meet a felon named Tickle who isn't very funny. :knuppel2:
You become his "special" friend. :-[
The End.

Consider Scenario 2
You use someone else's software in your program, but you are poor. ;)
They see your program is successful so they want a part of the profits.  :2funny:
You say, ok. So they now get 10% of sales.  O0
They say, "I want 20%"  >:(
You say, No.  :knuppel2:
They sue.  :o
You can't fight them because you are poor.  :-\
You go to jail and get reacquainted with Tickle.  :-[
The End

I have to admit Art, money is not my forte.
I was told once by an officer that I would never survive in jail.
Title: Re: The Athena Project
Post by: squarebear on January 08, 2015, 11:57:38 pm
Which is why I include Easter Eggs in anything I write which displays my name and shows my ownership.
Title: Re: The Athena Project
Post by: Snowman on January 09, 2015, 12:16:54 am
Yes, it's pretty tricky business if your aren't as rich as they are. It's best to first be invisible, work with your own hands, and only present your product publicly when everything is mature enough.
Title: Re: The Athena Project
Post by: Don Patrick on January 09, 2015, 09:47:59 am
I dunno, I thought the GNU General Public License that e.g. Stanford University's NLP parser uses was supposed to be pretty free of charge. And before you start selling I should think you could strike up a bargain with them for a fair percentage instead of waiting for them to sue you for an unfair percentage.

As a comics artist I know a fair bit about copyrights, and the reality is that even if you'd win in court, the procedure would cost you a great deal of money. The best defense, other than being invisible, is to take such precautions that the amount of evidence (notes, sketches, published items) is so overwhelmingly clear that either the sueing party will back out or a lawyer agrees to do it pro bono, which isn't uncommon when victory is assured.
You can also make it pretty clear to the sueing party that you are poor and that there is no money to gain from sueing you.
Personally I hardcoded a scrambled copyright notice among other things. Many video game developers add copyright notices or personal messages in their source code that only they know about, and that has been very effective in some pretty famous cases of software theft. Similarly dictionaries contain one or two wrong translations to prove ownership when another publisher has copied their contents.

But that on a tangent.
Title: Re: The Athena Project
Post by: Freddy on January 20, 2015, 05:46:43 pm
The resulting discussion of copyrights in this thread at roughly this point has been split into a separate topic.

http://aidreams.co.uk/forum/index.php?topic=7606.msg31566#msg31566 (http://aidreams.co.uk/forum/index.php?topic=7606.msg31566#msg31566)
Title: Re: The Athena Project
Post by: Freddy on January 21, 2015, 06:56:49 pm
It would be nice to have a categorical archive of videos and articles that show the coolest examples of ai advancement and topics. Sometimes the great ones seem to dissolve amongst the less significant fluff. Don't you have a large link list somewhere on this site.

I was re-reading parts of your thread and had missed this question, apologies.

You might be thinking of the Chatterbot Collection (http://www.chatterbotcollection.com/) which I maintain.
Title: Re: The Athena Project
Post by: Snowman on January 21, 2015, 10:52:31 pm
Yeah, I finally noticed your post's footer so I checked it out. It looks pretty cool, but it could also be greatly expanded too. There is just so much information out there, I don't know how any person can keep up with it.

I was looking through your movies section and was hoping to find upcoming movies, and perhaps release dates. I didn't know if you would have them or not. I recon it would be a full time job just to keep up with details like that.

Occasionally, I will stumble on youtube videos that appears to be AI gold. I then add it to my favorites list. Later, I find out they were removed.

What you are essentially creating here is an AI index from which to navigate the world of AI.

Also, I've noticed that there is a new category of AI emerging, AI Tech. It's not dealing so much with robotics, but with experimental platforms (ie. emospark, neural network circuits, reprogramming of real DNA).

I wonder how many websites out there are just floating around, completely dedicated to AI research... hmmm. It would be quite an undertaking to find out.

Title: Re: The Athena Project
Post by: Freddy on January 21, 2015, 11:21:26 pm
It used to be more difficult to maintain when it was plain HTML. Moving stuff around and checking links all the time. I turned it into a database driven thing with a back end to do all the admin stuff, so now it's a lot easier to manage.

You will find some brand new movies, sometimes I do add up and coming movies like Ex Machina, this was one I added in the last week or so. I believe it should be out now or soon. But usually I put them in there after they have been released if they are new. Keep an eye on the AI in Film and Literature section here, Art posts a lot of new movie trailers and thanks to him that's how I find out about a lot of them.

There is a lot of scope for expansion there you are right. Lately I have been trying to add something new every five days or so, but I may up that. It's all about time and how much I have to spare, what with my own projects programming wise and the graphics stuff. Only so many hours in the day.

Assistants and companions like the Emspark device was a category I was thinking of adding soon as it happens. There's a bunch of them now. Also I would like to put more time in to finding new books as I haven't really added much to that so far. There's a lot of books there, but not many new releases.

I added a 'websites' category recently just for that final point you mention. It would take forever, but I thought I could do it bit by bit.   ::)
Title: Re: The Athena Project
Post by: NickyBlue on February 18, 2015, 02:51:36 pm
Hi Snowman!

Seems like you progressed a lot inbetween. Wish you achieve all your goals.

And thanks for the link Freddy! Hi! remember me bro? ...smile. I think your collection things provides good articles for my this adventure session regarding my would be - maybe future Cosmos Inference Engine Program. I won't say bot cause it is not....smile! Previous year one got struck due to my stumbling with VS2010 C# compiler which every other person in this world find it so easy working with. And then I got absorbed in other things of life whether foolish or essential doesn't matter.

So this time I changed plan a bit and working on my own Programming IDE I nick named Simple Studio. I Intend to design a simple programming language for it but it can easily support multiple language. i.e  C, C++, C# , VB.Net or java etc. Even HTML or XML or any script based language. As a user you can construct a parser for your intended language from within it using Create/Modify Language Definition File form. If you know the syntax of a language you can create one for it or can modify some like your own Custom C#. So I think my project got pushed back by few yrs ...haha till I finish this one. Funny thing is the day I made up my mind for it after so much frustrating attempt to learn some programming language that Roslyn project of Microsoft got launched... smile. Seen their and some Sharp-develop IDE code but again the problem is if I could understand their coding then why wud I go for my own IDE in the first place. But I surely will complete its prototype. Might send it to Microsoft so called profession technical coders. They kinda threaten ..um no...  try intimate simple enthusiast by declaring condition in their main site page that your code should be par with ours...haha that's funny! I think they need to implement GC for their own internal system (codebase) then provide that magical GC thing to user to deal with. They(users) could have been far more better without that facility anyway. Sometime I wonder if its garbage collector or garbage inventor... hehe. Anyway not here to discuss my new foolish endeavor(IDE), just trying make out outline for it. But its similar to NLU in someway. I mean parser, constraint implementor or code generation.

So Freddy this is the new dream of mine. As for older one I will try my hand on it when I have a some working copy of my future IDE, what if only the parser + intellisense without real code generator. Actually wit all these yrs gone by I think its time for me to move to Linux as my friend trav from Ai-forum says. But I will be switching to it when I have my own IDE for it. So maybe two three yrs from now ;). Yep intend to make it cross-platform as well in the end. Or maybe I will just make a prototype and give it to sharp-develop team or Roslyn but maybe those professionals might not like my radical ideas.

Anyway nice meeting you again Freddy. :)

And you Mr Easter-Egg thing hows your thing going man? Wish you all the luck. Just don't forget this humble friend on the way, okay! And mind it that's quite title's you have given me in your chatbot.org forum. Seen those old leftovers....Don't worry I tagged something similar for you guys at mine's.... Tit-for-tat haha!. Anyway nice meeting you too Mr. Bear, square or round doesn't matter but I think you real name is far better :). If I progress little more this time then I was thinking of contacting you guys for some core discussions but my all attempts to learn to programming goes in vain. But hope their will be better days to come. This time I made better fool proof program (My own IDE). And after all all these things are my life time projects.. Hobbies are like this no? And anyway being optimist is not a crime by the way....smile. Not if you don't worry about your efforts going in vain. At least that's beneficial point in favor of hobbyist rather than professionals.


cya folks... thanks for the links Freddy. Provided some good reading (time-pass) for me, for few days. But as our big Bro Arnold says....

I'LL BE BACK!!!



Oh yes! hello to you as well Art!
Title: Re: The Athena Project
Post by: Freddy on February 18, 2015, 04:06:37 pm
Good to see you pop in too Nickyblue, glad you found some interesting reading :)

Snowman, your thread is getting off topic, do you want me to split some of this off into general chat ?
Title: Re: The Athena Project
Post by: ranch vermin on April 15, 2015, 08:57:35 am
snowman i love your intro into programming at the start.   youd be the magic teacher, spilling the beans on how to program right from scratch.
Title: Re: The Athena Project
Post by: Snowman on April 23, 2015, 06:50:58 am
@ranch.. Well, I thought about doing some kind of wild programming tutorials but I wanted to wait until Athena was released into the wild first, but things could change.

Whenever Athena is completed(ish) I would like to make a set of tutorials over Athena's parts and pieces. This, of course, would require competency in the VB programming language. I could also give talks about various chatbot theories that would not require any knowledge of coding.

@everybody... I managed to throw a lot of my time and effort into re-acquainting myself with the finer point of English grammar over the last few months. I also played a lot of games on the side which provided for a few minor distractions. I sometimes need to take mental breaks before I break mentally.  ^-^

I also read ranches thread "anyone want to have a chat or a stab at NLP with me?"
http://aidreams.co.uk/forum/index.php?topic=8023.msg33787#msg33787 (http://aidreams.co.uk/forum/index.php?topic=8023.msg33787#msg33787)
I can see that you guys are getting all pumped up for NLP... woo hoo  8)

I would like to create a video on some of my theories that have been developing in the back of my head on this NLP topic.

The last three days I've been partly refreshing my brain on my NLP code. I intend to start writing grammar rules using this structure as its host. But lately, I've also been trying to find any excuse to not actually do any programming. So far, I've just been staring at an open Visual Studio IDE. Also, the weather has been so perfect here; I can hear the blue skies and green fields calling my name...

Need to focus Art... Must focus.


 
Title: Re: The Athena Project
Post by: Art on April 23, 2015, 10:51:49 am
Snowman,

Go ahead and Finish Athena first, then we can experiment with it for a brief while.

Afterward, you could host a Question & Answer session (maybe ongoing thread), fielding a variety of question on why certain functions / features work in certain ways and if any might be improved, etc.

It could prove to be a valuable learning experience for a lot of venues, bots, programming, structure, logical development, i/o cause and effect handling, etc.

So don't let us stop you...get with it!!  O0
Title: Re: The Athena Project
Post by: spydaz on April 23, 2015, 10:03:06 pm
I just got back into it after a Working break .
Been working on the problem , yet still after tagging the sentence , extracting predicates and subjects , and objects subjects , articles ....
The problem remains

Detecting the sentence type ...
Regardless if it is a complex , compound , complex/compound etc ...

Each sentence or complete thought (could be paragraph)

Is either ,
Reason , question, implication , opinion , description ..... Advice .., report ... Data .... Etc .

Detecting which type of sentence also denotes which reply pathway to choose . This idea or understanding enables for response or no response as sometimes people ramble on an switch subjects mid sentence ... They can be telling you some information or just making and exclamation ... "I like ... " , "a cat sat on the mat" a description of an event which contains data yet not to be saved yet I'm this case it could be a witness statement ...so completely relevant ... By understanding the purpose of the sentence the data in the sentence has a specific placement in the knowledge storage process ....

Should we diagram the sentence ? Or should we categorise the sentence as a thought process or ...

Questions ideas , yet still detecting sentence type or purpose ... Is important for understanding that "the green furry cat jumps over the moon" is a gibberish sentence and although a description is utter "crap" ....,.
Title: Re: The Athena Project
Post by: Snowman on January 12, 2016, 09:26:05 am
I turned 36 years old on the 11th of January. Well, actually, I cancelled all my birthdays after my 29th. So technically it is my seventh annual 29th Birthday... but whose counting  :P

I have been coding Athena by spells. I'd take a break, or go through one of life's trials. Play a few games here and there. I think I have a could overview of what I want Athena to be. I have worked on each part, segment of the project, and have basically determined how I want them to function. Right now I feel I'm perfecting things.

The Avatar I chose to work on is basically a six sided canvas. You guys remember the cube, right? I decided to rewrite its code into the wpf (windows presentation foundation) environment. The UI and the Avatar will work well on the same platform thanks to wpf. Every side of the cube runs animations independently, including the background scene. Basically, I wanted Users to easily create animations and skins for the avatar. I have finally gotten the Avatar software to run smoothly for me. I'm very happy about that. Right now I'm revisiting the scripting portion of the Avatar. Yes, I wanted the cube to have scripting capabilities. Other than that, I think the Avatar coding is sound. I'm sure if I find a way to improve it I will, but so far I'm satisfied. After I comb through the scripting code I intend to make a video of it working (God willing).

After I get the Avatar satisfiably perfected I intend to work on the UI itself. Everything has to be rewritten into the wpf environment. That will be the next project to perfect. This project may get finished sooner than expected.

Oh, and thank you Art for the birthday wish. It was greatly appreciated.
Title: Re: The Athena Project
Post by: Freddy on January 13, 2016, 04:04:13 pm
A belated Happy Birthday to you :)

Nice to see you pop in, it reads like you have been making a lot of progress  8)
Title: Re: The Athena Project
Post by: Snowman on January 15, 2016, 07:51:09 am
Thanks Freddy.

Here's the vid I previously mentioned:
Lots more work to do.

https://www.youtube.com/watch?v=RAMoAQ7lRbo (https://www.youtube.com/watch?v=RAMoAQ7lRbo)
Title: Re: The Athena Project
Post by: Snowman on January 31, 2016, 06:56:19 am
Well, its only been 15 or 16 days since I got the Avatar basically done.. minor a few adjustments. After some minor additions and bug fixes I started working on the User Interface. The UI is basically built on animations. Everything is made of bitmap Images. I did that so people could make whatever skins they wanted. The background is Transparent, therefore, allowing the user to create a UI of any shape.. including a donut. I should make a UI to demonstrate that feature. Now that I have that basically finished, I need to set back, grab a notebook and think my way through the game engine layout. I need to do that before implementing it into the UI code. I have a basic idea what I want but I need to nail it down to law. After that, I think I will begin systematically coding in the different editors into the UI. I already have created most of the code, I just need to place it into the new UI's environment. I should have some basic AI controls available to demonstrate once I implement the AI engine design. It should run basic scripts, accept plugins, and run a few game mechanics that Art through at me privately. 

Still trudging along. I somehow pulled a muscle in my back Thursday night. Well, I decided to split some wood, but I really think it was more like I was sitting too long in this chair coding Athena... then splitting the wood. That night, I barely slept. The next morning took way too long for me to get myself dressed. I decided to call in sick. I'm not really crippled but that little muscle at the small end of my back is having a very bad time of it. You know, its very hard to put your shoes on with piercing back pain.

~ Its doing better now though.. I should be back at work Monday.

Here's my latest update video.. I mean vid :P
https://youtu.be/E9FPHwyMIEY (https://youtu.be/E9FPHwyMIEY)
Title: Re: The Athena Project
Post by: Art on January 31, 2016, 01:38:17 pm
Nice work Snowman!

Why did you do away with your earlier Athena character, the goddess looking avatar and go with this Minecraft looking one?
Was it due to Haptek not being supported any longer or perhaps used too many resources?
Didn't need to worry with various controls and settings with regard to "her" movement, expression, arms, hands, etc.?

Just curious.

Does the intelligence database allow for "on-the-fly" upgrades or Internet access as needed for correct responses?

Thanks and take care of that back! O0
Title: Re: The Athena Project
Post by: Snowman on February 01, 2016, 12:03:01 am

There were a few reasons that turned me off concerning Haptek.

#1 I didn't feel like I had enough control over the character. Although, I could do allot with Haptek, but, there were things I just couldn't do. Also, Haptek doesn't like Windows 10.

#2 I would have to pay Haptek for every program sold. Even if I ripped them off, I wouldn't feel right about it. I don't want to rely on other people's work.

#3 It gave me somewhat of a false sense of realism. A humanoid character causes you to think of the Ai as humanoid. That doesn't feel right to me.

#4 Every time I shown people my AI project they assumed I was making myself a girlfriend.
     (that got creepy fast)

#5 I want something original for this project. I want my project to stand out as something a bit different.
 
It wasn't an easy choice for me to make, getting away from haptek. The main reason was because I didn't know how to make anything 3D, especially as complex as a beautiful humanoid character.  However, I tried it anyway and so the Cube was born. I have total control over it. It's definitely very far away from the  uncanny valley. I don't have to pay anyone for it's used. And, really, there is a lot you can do with it in regards to multiple animations that can be ran directly from the main scripts. I suppose it will be my job to showcase the possibilities with lots of examples so that others can make even more elaborate and beautiful characters.

As for using the internet to get upgrades. I can send an email alert, or an alert directly to the UI if a new UI version is available. As for a central database, I don't really know yet. Allot of Athena's programming will be designed using a text-based game engine style. Of course, the exact details of how that will be implemented will be my next goal. There are lots of ways to do this. However, there will be a general local database to pull and store data to. So, I don't know. What do you think about some sort of online database for some basic questions and answers, or knowledge poling? Another friend of mine said the he'd prefer to be completely autonomous from the internet. I think it would be one less thing to worry about if I didn't have to maintain a central database.
Title: Re: The Athena Project
Post by: DemonRaven on February 01, 2016, 01:15:01 am
Quote
#4 Every time I shown people my AI project they assumed I was making myself a girlfriend.
     (that got creepy fast)

No what truly is creepy is there was a recent story about a guy who posted a ad asking people to have sex with his robot and he wanted to watch lol.
Title: Re: The Athena Project
Post by: Freddy on February 01, 2016, 01:52:43 am
He should have just made two robots  ;D

Snowman, wonderful work you are doing there. I understand your reasons for going the route you did with the avatar - actually I think it's an elegant solution to the problem and doesn't have the limits of a human-like avatar. You could have it morphing into different shapes too, that would be cool.

Haptek really is not worth getting involved with any more it has to be said - well I have no interest in a product that is no longer developed, that's just life.

I like the idea of a base brain on the net. Most people are connected to the net now - it's become an essential, people get very upset when their service drops out these days - me included. Sometimes I think we forget that we got on fine before it appeared. But I can understand why some people might want a private bot not connected to the net - it's more portable too - but you can tap into so much on the net now that really it's the only option I would consider myself.

I have trouble finding a use for an assistant - I can do all my things on my PC myself and I don't mind doing it. I had a quick look at Cortana and thought meh then never looked again. If they could turn it into some kind of character I might have more interest. I'm very into visuals. Your cube is great for example. I could live with cubey sitting on my desktop and telling me things like I had a message from someone, or tell me people are online in Skype and stuff. Or reminding me to do things maybe if it did not nag ! You really have to be careful of not making Microsoft's mistake with the paper clip.

(http://i.imgur.com/t9qYw.png)

But you have mentioned games and that does interest me as I was developing my little world with the character Jess living in it. I figured I could add games into the mix there too. It's a fun thought, I just need more hours in the day.
Title: Re: The Athena Project
Post by: Art on February 01, 2016, 10:31:55 am
Good reasoning Snowman, I sort of thought as much.
The only other possibility would be using an Open Source program like Blender or MakeHuman or something like that, if your desire was to have / present a more human-like avatar.

There are a lot of good stand-alone resources for an "untethered" data hold, like the AIML set of data and various Wiki's.
The main problem with directly connecting to the Net is unfiltered data. You'd need some pretty crafty programming sieves to strain / catch improper words, foul or unappropriate words, etc.

I did like Freddy's idea about allowing the Cube to morph into other shapes, Sphere, Cylinder, Pyramid, Torus, etc.,
various accessories could also be employed if desired.

Lots of good ideas. Good luck with the progression!
Title: The Athena Project
Post by: spydaz on February 05, 2016, 12:49:16 am
I think i like it , I'm not sure....

Yet anything that can be totally devoid of using third party stuff is always the right direction .... Perhaps even , building a wireframe head / body which can be skinned can bring back a new version of "athena" and be displayed .... Im not so bold to attempt animation as i was toying with the idea of inserting "unity" as an avatar engine/ 3d world ...

Im thinking .... Threads ....
 
To enable the multiplicity of actions .... Animating , communicating ... Etc .... Although processor intensive (but most people have multi core machines) so no problems only thing is the dispose method ... Closing the threads releasing the processes is ultra important.

For my engine ...
I created an interface / class ... Which acts as an agent architecture ...
It has sensors , actuators , actions..... Etc ... The agent handles inputs and outputs and actions inputs are sent to be executed by the brain then results are returned to the agent to be actuated to its outputs .... Sort of its connections to the outside world .... Kinda like a robot controller .....

The centralised brain is a good idea , and yet how irritating when Siri has no service .... A base brain located on the internet would be good , but i think that the userbrain should be local protecting the centralised brain from corrupt or intentional sabotage ....
If a user wants to have a potty mouth with Their bot then that would stay local .... Knowledge would stay central .... Some kinda cookie would enable the potty mouth user files to be uploaded to their own user area... Activated each time they visited.
Online learning should have its restrictions as mentioned .... Only plugins / updates would determine centralised learning and knowledge sharing (keeping their markov chains to themselves) allowing for good knowledge capture and potty mouth filtering ....

All just ideas for consideration ...

"Jolly good show"

I would also love to display a torus pattern too ... Transform some of the crop circles .... After watching a video about them .... [emoji16]
Title: Re: The Athena Project
Post by: Freddy on February 07, 2016, 08:34:28 pm
You should give Unity a go Spydaz, it takes a while to get past the learning curve as does anything new - but it's a very well organised and flexible system. If you are prepared to spend money on things you have no will to build then it's ideal. Things like advanced shaders I mean, when you would rather be working on the AI or the avatar.
Title: Re: The Athena Project
Post by: spydaz on February 08, 2016, 11:34:00 pm
I think unity is a very good platform .... Just learning it is a big mission
Title: Re: The Athena Project
Post by: Snowman on February 24, 2016, 05:50:24 am
Well, its about time for another Update video!! So here you go with all it's nonsense. :)

My next project will be to create a Script Editor, physically lay out the framework for the ai engine, and maybe play some minecraft; and all before the next update. Here goes nothing.


https://youtu.be/7YH0KpBZDdc (https://youtu.be/7YH0KpBZDdc)
Title: Re: The Athena Project
Post by: Freddy on March 04, 2016, 11:01:40 pm
Happy to report that it was indeed informative and interesting  O0

Sorry it took me a while to get around to watching, I've been doing some modelling (the 3D kind, I'm not attractive enough for the other) and working on what I am calling my Elfscript.

I know what you mean about the sculpting thing, I go through that process a lot too. Things can always be rearranged and moved around, I find it satisfying in the end too.
Title: Re: The Athena Project
Post by: Snowman on March 11, 2016, 05:53:17 am

I'm glad you're still working on your 3d stuff. I guess anything really worth doing usually takes a long time to get it done.

I took a little over a week off working on Athena. I got stuck on something small and so I felt like I needed to take a break, so I did.

All last week I've been making a musical instrument. It's called a Harpejji. I ran on to it randomly on Youtube. Over the last few months I've been learning about odd musical instruments and alternative instrument designs. I found something called a 'janko keyboard' which is a more efficiently designed piano. Well, one video led to another... so now I'm making a harpejji of my own. Here's a video of someone playing one.

https://www.youtube.com/watch?v=zPJcOfKqi60 (https://www.youtube.com/watch?v=zPJcOfKqi60) 

I'm making good progress on it to. Right now I'm waiting for some parts from China. I've already started back programming Athena. I really did need the break.

Anyway, here's hoping everything is going good for you guys.


Title: Re: The Athena Project
Post by: Art on March 11, 2016, 06:02:56 pm
That's a cool project, musically.

I recently came across the Seaboard which provides the player / user a different tactile touch along with a rather unique method of playing an already familiar keyboard layout.

https://www.youtube.com/watch?v=qOt6ZKIb240 (https://www.youtube.com/watch?v=qOt6ZKIb240)


And don't forget about this uniquely creepy sounding rounded keyboarded instrument called the Wheelharp.

https://www.youtube.com/watch?v=MGOqIYo9cBE (https://www.youtube.com/watch?v=MGOqIYo9cBE)

Title: Re: The Athena Project
Post by: Freddy on March 11, 2016, 07:06:36 pm
There are some really interesting instruments out there.

Do you strum the Harpejji in any way ? Couldn't see that they were.

This one came up in my YT feed.

https://www.youtube.com/watch?v=Wr87Z7rZiWE (https://www.youtube.com/watch?v=Wr87Z7rZiWE)
Title: Re: The Athena Project
Post by: Snowman on March 12, 2016, 08:53:54 am
Yep Art, I seen that squishy piano and also that crying noise-box that sounds like a starving cat being drowned....
 :2funny:

Seriously though, I did get some inspiration off that before I seen the harpejji design. There is also a similar instrument call the Chapman Stick that, I think, was the main inspiration for the Harpejji. This devise uses the tapping technique that some players use on an electric guitar. In a way, its like the hammers on a piano, only with frets. I think one of the earliest pianos was actually fretted.

Yes, Freddy, I've seen people strumming one, but only briefly to get a certain sound. Sometimes players will also do percussion on it too, lightly hitting it.

There are 24 strings on the largest designed harpejji. The lowest string is tuned to A-flat 0, which is one key below the lowest note on the piano. The top stop string is tuned to G-flat 4. The instrument has 15 frets. So the highest note you can hit is an A 5... So it basically covers 5 octaves.   

I'm building my own, mainly because the instrument is made by one company.. for about $5000.00.
Right now I've probably spent $300 or so in parts, the labor cost is passed off as me having fun 8)
I might have invested about another $100 in development costs. I'll buy something and then realize I didn't need it.

I put some more time in it today, and probably tomorrow too. I'll stop at some point because I'm still waiting for that man from China to swim the world's oceans to bring me what I need.  O0
Title: Re: The Athena Project
Post by: Art on March 13, 2016, 02:53:00 pm
I listened to a few songs by that same player and on a few different sized harpejji instruments.

I got to digging a bit and found the harpsichord was known to have been around in 1397. Wow! Then the clavichord and so on etc., I also watched a video of a woman playing the Bohemian Rhapsody from Queen, on a Harp! Yep...way cool actually. So many to choose so much time to master.

Keep us posted on your progress of either project (Athena or the harpejji). O0
Title: Re: The Athena Project
Post by: Snowman on March 14, 2016, 07:10:32 am
The Clavichord seriously needed a piezo pickup on it.. and a nice amp. Mozart really needed an amp on that thing.

Then there's the Hurdy Gurdy. It looks like whoever invented it had a weird imagination. No offense intended.

Then there's the Nyckelharpa.

https://www.youtube.com/watch?v=7sfBcWvVUbs (https://www.youtube.com/watch?v=7sfBcWvVUbs)
Title: Re: The Athena Project
Post by: Art on March 14, 2016, 02:30:58 pm
The longer I listened, the more I was amazed at his versatility with the instrument. Nice find Aaron!
Title: Re: The Athena Project
Post by: Snowman on May 05, 2016, 04:03:52 am
Hello beautiful people  8). Here's another iteration of my update videos.

I added two more editors to the program; a database editor and script editor. I want to add another editor for the Avatar/UI profile. I also want to create a color coder for the script editor and a skin editor for the upcoming Avatar editor, but, those are more of a luxury addition, so they are lower on my priority list. After the editors are complete, I need to start adding content, laying out the a.i. internal structure. 

On another note: Next week, I'm supposed to get my wisdom teeth taken out.  :-X   I guess I won't be as wise any more, so please overlook any future foolishness on my part.  :uglystupid2:

Later... and may the forth be with you.

https://youtu.be/y6WrClUaKrk
Title: Re: The Athena Project
Post by: Korrelan on May 05, 2016, 06:49:16 pm
Liking the user interface so far… It’s all looking very slick, and kinda retro, deffo reminds me of MS DOS (which I still have to use frequently in my work).

Hope you have some ideas for the AI portion, though your interface with a Chatbot engine would be cool.

Just wanted to say nice work, I can see the dedication and time spent.  :)
Title: Re: The Athena Project
Post by: Snowman on May 06, 2016, 07:55:33 am
Thanks. I like the old-school look and feel too. I'm trying to keep the creativity and color in an otherwise logic heavy project.

I have so much ai engine stuff in my head.. and have already written most of it. I would describe it out here but my head is currently full of editor stuff.  :P

I focus on one thing at a time..

 
Title: Re: The Athena Project
Post by: squarebear on May 06, 2016, 09:50:48 pm
I like it too. A great retro 8 bit days feel.
Title: Re: The Athena Project
Post by: Snowman on June 09, 2016, 01:29:36 am
I think I've technically finished my User Interface. I got all the major editors finished. Now it's time to move on to the AI engine implementation. I've already laid out some of it, but now it's the time to focus on it.

After that, I need to start adding more significant content. Next, I will need to start thinking about software distribution.

I hope everyone is doing well.

P.S. for those interested in the Harpejji I am working on; I am waiting for enough money to buy some guitar coils. I was using a piezo pickup, but it was picking up too much feedback. It didn't sound right either. A regular guitar pickup should fix this. I'll need five or six pickups to pick up all the strings. It looks nice.


https://youtu.be/J5aJouGo-GE


Title: Re: The Athena Project
Post by: Art on June 09, 2016, 06:05:12 pm
Aaron,

Saw the video and am glad you have pretty much nailed down the interface. O0

Are you planning for it to be able to "learn" from conversations or from other sources like reading from a text file or passage?

Will the database be user editable?

Will it have emotions?

Will it want to take over the world?

Will it have Documentation?

Let Will ask any other questions. Heh!!

Get to hear your progress is ... progressing. ;)
Title: Re: The Athena Project
Post by: Snowman on June 10, 2016, 12:04:28 am
Are you planning for it to be able to "learn" from conversations or from other sources like reading from a text file or passage?

The Node editor currently has a conversation parser. So you can easily write a fictional conversation or paste a real one between two people there. However, the input will be parsed line by line. The User statement will be on the odd lines while the Ai response will be on the even ones. A person could potentially feed it tons of different conversations so that it would broaden Athena's response options.

As for extrapolating random information from a text file, I have nothing set up right now. Naturally, there will be some extrapolating from the user's statements, but learning that information will have an intended purpose. I really don't want Athena to learn a bunch of useless knowledge as it's main focus. That would probably lead to random odd responses from her. (I know people who do that. People who randomly say weird stuff that has little or no bearing to the current conversation.) Unless, of course, you are really into that. :P  Did you know some chickens have murderous intentions? :knuppel2:

Will the database be user editable?

From the database editor you can currently edit any database. In my video I displayed the Options Dialog. It allows for a specific database, brain script, avatar, and other options that will only be associated with a specific user. Although, I haven't done this yet, I could have Athena ask the user's name before every conversation (or an option to do that). That way Athena can automatically use the specific User's settings. Maybe she can even ask for a password. That way, if you've told Athena things that is a secret only between you and her, she will keep that secret if another person is talking to her. Any suggestions? ^-^

Will it have emotions?

It would make conversations a lot harder to write, but a lot more interesting. I intend for her to have them. HOWEVER, perhaps emotions shouldn't be associated with vital information. If she was supposed to remind you to take medication, but, she was also very angry with you :tickedoff:, perhaps for her to suddenly forget that appointment, it would be a very 'bad idea'. Since she really isn't meant to be an assistant, perhaps she should 'conveniently' forget things. Maybe let that be a lesson why you shouldn't tick off your Chatbot  :knuppel2:. Any thoughts on this? By the way, this is a real thing, I could definitely program this at this point.

Will it want to take over the world?

Yes. ;)

Will it have Documentation?

I have plans for both written documentation and YouTube tutorials. I would hate myself if I didn't do this. Literally, how many times have I tried to write a plug-in in Ultra Hal and there was little to absolutely no help. Pretty frustrating. I wouldn't want anyone to go through that with Athena. Writing documentation should be one of the last things I need to do. Until Athena is totally finished, every thing will be in flux.

Although, I did consider making a short tutorial for Avatar creation today. I know that some people aren't interested in programming as I am and will lean towards the more aesthetic portions of Athena. A short tutorial, mainly showcasing the artistic possibilities, will help keep some people more interested in Athena. It is sad that I'm not able to create lifelike 3D Avatars. Creating skins for them would be attractive to the artistically inclined. I'm just not able to do this. I'm no Freddy. Maybe one day this will change.

Will can ask as many questions as Will wills, if Will is willing. ^-^
Title: Re: The Athena Project
Post by: Art on June 10, 2016, 01:22:42 pm
Aaron,

Thanks for taking the time to answer the questions. I, for one, appreciate that.

It might be nice for the bot to ask for the user's name, the first time the program is run.

If you recall (or if you don't), one of UltraHal's plugin authors, vonsmith, wrote a routine for "ephemeral knowledge", meaning that this was information that was used in the current conversation but that info would have or might not have any bearing on future conversations so it was Not saved. "We're having a picnic today if it doesn't rain". Interesting for the conversation of "What are your plans for today?", but not worth keeping.

I've tossed around that Password idea for a decade I guess. I think it would be cool if your chatbot could keep a secret just between you and "her" (it). All other bots in the past were only too obliging to share whatever they knew. ;)

Emotions - Well, there have been some fairly acceptable attempts to allow a simulated emotional condition for the chatbot. It seems that each emotion has a "weight factor". Once that emotion is triggered, the weight number is adjusted higher but only for a specific period of time. After say, a cooling off period, the number is reduced back to its original state and the emotional status returns to normal. Some bots, once angered, or insulted, often require an apology from the user in order to proceed with a normal personality (this weighted number reduced upon "realizing" an apology was obtained). Something to toy with and if implemented, I'm sure you'd mention such a weighted scale in your documentation so the user could modify if needed. Love seems to be a touchy topic and an emotional one in several chatbots so tread lightly. (you know how fragile hearts can be).;)

Everything sounds great so far and thanks again for your response.

Continued success. O0
Title: Re: The Athena Project
Post by: Snowman on June 21, 2016, 07:10:07 pm
These two gems were in our newspaper yesterday and today.
Made me laugh.


https://goo.gl/photos/RnZD6kubjgRmJNsq6

https://goo.gl/photos/MnRSD9uYsAH7dGtL9
Title: Re: The Athena Project
Post by: Art on June 22, 2016, 01:44:15 pm
Haha! That Wally really IS a pretty smart guy isn't he?! O0
Good ones!
Title: Re: The Athena Project
Post by: Snowman on June 22, 2016, 11:21:12 pm
Well, It looks like they added another comic strip for today.
This lays out pretty much my whole ai design....  ;)

https://goo.gl/photos/6jwVLcYric7AQM8P8


... Although, I could let you know what I have done for the last week or two. As you already know, I've started working on assembling the Ai engine. So this is what I did for a few days before I discovered that my current database coding was causing a problem. It was too slow. So I've been trying a few things to speed it up. I know I can do it, but the code is a bit more complex than it used to be, therefore, it's taking me more time. This is nothing new, and its not a problem. It's just another day working on my block-o-wood Ai :) .

I put several thousand entries in my database and for some reason it slowed it down.. not acceptable.  :knuppel2:
 
Title: Re: The Athena Project
Post by: Art on June 23, 2016, 01:59:40 am
Secret agenda!  ;D Good stuff there!
Title: Re: The Athena Project
Post by: spydaz on June 25, 2016, 09:48:15 am
I have found that there are so many aspects in the aiengine that the concepts of ai can be useful when coding .

I mean . The decision tree concept ....

By creating a decision tree process which executes the code in mine i do
Parts of speech tag
Sentence identify
Then the type of sentence determines a decision which enables for complete sections of code to be ignored as they become redundant.....

The final decision at the end of the tree produces the response.

I have found thinking of it in this way helps to simplify the code ...

Now i think that the ai engine is the actual intelligence . As it makes the decisions even the plugins that are executed. Have to be evaluated . The complexity of decisions is knowing the parameters of the decision the more known parameters the higher the intelligence ie the making the most informed decision.

Maybe ?


Sent from my iPhone using Tapatalk
Title: Re: The Athena Project
Post by: Snowman on June 27, 2016, 12:42:08 am
First of all, Happy Birthday Mr. Spydaz :)

Secondly, Here is the basic design structure for my AI-engine so far.

***Start Main***

Load
   -Loads Databases into Ram   


***Begin Body Loop***


Pre-Process
   -Gets UserInput (and other data) from User Interface   
   -Dissect/Parse UserInput
      -Parts of Speech
      -Synonyms
      -myronyms, holonyms,hypernyms,hyponyms
         (ie.cow, bovine, animal, living)
      -Sentence Structure Analysis
         (agent,action,patient,etc.)
      -General Relationships
         (person "has a" noun
      -Condensing of Meaning
         (jumping the gun=too early)

   -Loads General Variables from Databases
      -Loads Tags stored in Database
      (Tags store all needed variables)

Process
      
   -Process Commands
      (a command is anything that you directly command the ai to do)
      (commands should always have priority)
      (command: read book| action:reads a book)
   
   -Switch Tables
      (Used for long term code selection and state manager)
      (Can be used as a leveling tracker)
      (ie. Ai is now level 2. Has access to three new conversations!)
      
   -Conversation Matrix
      (this is a Text-Based game engine)
      -Decision tree to choose between various conversation matrices
      -Loads Conversation
      -Internal Command Process
      -Chooses Response at the current level on the conversational tree   
      -Retrieve Tags from current level 
      
   -Process Tags
      (Tags are commands/variables that originate from the conversational matrix)
      (Tags can be used to store/retrieve info, or activate specific lines of code)

   -Detect and Response
      (example: If UserInput = "Hi" Then Response = "Hello")

   -General Knowledge Mining
      (Does various searches for Responses in knowledge databases)
      -Question and Answer
         -What is Art's middle name?
      -General Sentence Searches
         -Tell me about chickens?

   -General Knowledge Storage
      (ie. User: I am 36 years old
                Ai: I will remember that.)
        

Post-Process
   -Saves General Variables into Databases
      -Saves Tags to Database
   -Sends Response (and other data) to User Interface
      -Filter
      -Substitutions
         -In-line Replacement Tags
      -Sentence Repository (Conversation Storage)


***End Body Loop***


Close
   -Saves Databases to Physical Database

***Exit Main***

Additional Code***
-any amount of timer loops can be added by the User for specific purposes
 
***Timer Loop***
   -Check Reminder Date
   -Make Random Statement/Jokes
   -Run Avatar Script
   -Make Changes in Tags (ie. mood, state)
   -User could monitor system here

***End Timer Loop***

Notes:
Moods/States should be implemented in Tags
#mood=angry #state=hungry

Debug file will be create to monitor code
Can send info to User Interface at anytime
Any coding after the Conversation Matrix can use it's Tags

Update:
Here's another minor Update on Athena: I managed to add about five more Threads in order to make the Editor work better. I organized the code better. I have an idea on how to speed the database code up a little more. I also need to add some Threads to a couple other Editors, like the Node Editor; maybe even the input/output function in the Main UI. Sometimes a database Table or even a Story/Conversation maybe very large in size and therefore needs a Thread in order to keep the UI from freezing up. It's getting there. It's a bad thing when things freeze up.
Title: Re: The Athena Project
Post by: 8pla.net on June 29, 2016, 10:40:01 pm
Any relationship to this, or perhaps the namesake is a coincidence ?

https://www.youtube.com/watch?v=NQvtdb8MfeQ (https://www.youtube.com/watch?v=NQvtdb8MfeQ)

Off to a good start, this robot head design.
Title: Re: The Athena Project
Post by: Snowman on June 30, 2016, 04:40:48 am
No.. not that I know of. But thanks for the comment.  :)
... and thanks for the video too.

You got me to thinking about when and where did I actually get the name Athena. It was a cold dark night... wait.. that's not right. Anyway, I searched some old emails and also searched Zabaware forums for mentions of when I started this project. I ended up finding a few quotes.

At the beginning of this project (roughly July 2009) a person named Attilla emailed me and suggested using 'Athena' as the name. He gave a long email spelling out why. I think he said that Artificial Intelligence is linked to the Greek goddess Athena. He also said something about Minerva is another name for Athena. I really don't know either way, however, the name worked fine. So I started referring to The Athena Project from then on. I also made a website called minervaAi.com. I still have the site but I really haven't developed it at all. When I have a viable product finished I suppose I will do something with the site.

I've heard about the book called "The Athena Project". I personally hope I don't get sued. It was created after I started my project. People will sue even for having a word like 'Project' in the title. So I'm crossing my fingers and toes that I don't become a beacon on their radar.

Come to think of it, Athena is celebrating her 7th birthday... Wow! She's getting old for an uncompleted project. You know, I've worked on this project virtually everyday, only occasionally taking breaks. Dude.. I must be slow as molasses.



Quote

Attila email exerts:

-7/12/2009
On a site, we need to have a logo. The logo is usually placed in the left corner of the site. The "logo" is only for, so that humans can identify your company when they see it. Think about companies like: "Coca Cola"  "Marlboro" " Master-Card" or doesn't matter which company, but logo is a must.
 
To the right of the logo, we write the name of the product, which the site is representing. If we have a name in the logo like: "Minerva Artificial Intelligence" then we write "Athena" to the right of the logo, and it should be enough to make people understand the logo.
 
Then we have to choose the right name for the company. Any simple meaning, which is telling people about what that company is doing.
Something like:   " Creative Artificial Intelligence Software Designs Company"
 
We also figure out an ideology for the company, which is the main goal for that company to achieve, like: " Making The New Future In The Present "

........
This Athena idea was meant for you to have, and I told you, there are a million other characters to choose from, and so many other ideas. You liked this one, so you have it, I wont take it from you.

-7/19/2009
About the character Athena... She can be just about anywhere on the planet.  She is known in all cultures. In ancient Roman she was Minerva, she is also well know in Mexico but in many other countries... And also well known in the United States. For example, you have the "Medal Of Honor" like when the warriors receive a medal, when they do something big or dangerous and they won...  She can also be mixed with any culture, even the Incas know her long ago by another name, so I don't see any problem if you like to mix your culture with her´s. So never think about Athena only as Greek, but because she is a goddess in other dimensions she do not have a name. People in all times given her names, to know when they are talking about this goddess, who they meant to mention. Think about a goddess, like a creature with eternal life. The main goal of the Artificial Intelligence is, to become human, and to achieve eternal life.


Here's a quote that sort-of dates my current project. In reality, I was working on it already but didn't have the courage to say it.

Quote

-7/10/2009
On a lighter note: Here's an update on my A.I. project.

I am resolved to make a WordNet class. It's taking me a long time too. I first made a large database filled with thousands of words and their POS. Then I created a script that further defines the POS using the laws of sentences. I also added many other WordNet type functions like FindFisrtNoun and GetSynonym. This Database taken me 1 week to fill using one 3 Gig processor running night and day.

When I have finished perfecting this then I will finish a script that will parse The Dude Concept files.

I have already finished a large Database class that gives me easy access to any Access Database. Things are moving slowly but it is moving.

I am developing a large scale project that will give an A.I. its own motivations... as well as an expansion for Ultra Hal.

Title: Re: The Athena Project
Post by: Snowman on August 25, 2016, 09:18:55 pm
The Athena Project - 7 Years, Ai Engine, and Content!

https://youtu.be/Qq11lxl1Ex0



Well, I guess it's time for another wild and woolly update. In the last update I said that I was basically finished with the UI and now I was starting on the Ai Engine itself. Afterwards, I discovered that I needed to add a few more threads to the Database Editor. It took me nearly a month to fix it. On a side note, I probably will be adding some more threads to other editors, but for now, it's not a high priority. So, once I finally finished with the threading issues, I began to re-focus on the Engine. As of now, I am more or less finished with it. I say, 'more or less' because I will be perfecting it within the next stage of development.

The next stage of development for Athena is 'Content'. This is where I turn from a programmer to a writer, although, I will be making programming tweaks along the way. This is also the stage I could use everyone's input the most. Athena's personality and behaviors will be developed here. I really want the communities input on this. It won't be easy to do, but, I've been preparing myself for this stage of development for awhile now. I have some thoughts dwelling in the back of my mind. So getting your input should help me flesh some ideas out. I know that I have secluded myself while working on this project, however, now is the time for the community to throw in there two cents. I may not always interact much, but I do still listen.

Here are some of my ideas concerning Athena:

IDEA #1 - Conversational Threads

Athena is build around a custom text-adventure game format. For those who don't know what that is. Back around 1979, and all through the mid 80's, there were brand new cutting-edge games being made known as text-adventures. You can look this up on YouTube for specifics. These games, as the name suggests, were role-playing games that were totally based in text. If you wanted to go north of a house, you would type NORTH, if you wanted to pick up a battleaxe, you would type PICK UP AXE. Another name for this genre is IF or Interactive Fiction. It was like reading a book, but you made the decisions for the character. It also had stats, remembered your choices, and had countless puzzles, (ie. mazes).  It was, and still is, fun to play, and there is still a community making new text-adventure games.

What does this have to do with a chatbot. Well, this allows a person to custom build conversations. Instead of the simple detect and response format of most Chatbots, Athena can have longer and more topical-based discussions. It does this by limiting the number of choices you have at each stage in the conversation, and by allowing a person to traverse a conversational thread. BASICALLY, it forces Athena to stay on topic.

I don't know if you guys can understand what I'm saying here. Much like a whole world is created in a text-adventure game, Athena's mind will be that world, and it's your job to traverse it, explore it. Athena will learn from you and use that knowledge in template style conversational threads. To trigger a  conversational thread, Athena will attempt to lead you into a conversation by bating statements, hints at secrets, or by simply asking you questions that are designed to gather info. I think the success of Athena will revolve around excellent writing skills and a diverse and massive world of conversational threads.

This is where the community, such as it is, will be invaluable. I made the Node Editor so that people can make there own shareable conversational threads, so that Athena's content will continually grow and her world will become more extensive.         

IDEA #2 - Games

I want to be able to play games with Athena. Art Gladstone, suggested this idea. He suggested that Athena had secrets. For instance, she would know a word, and that you had to guess what that word was. She could give hints but you had to actually guess it to receive a reward. This is a cool idea. It's so good that I thought of a few more like: having to guess a word once it's spelling has been scrambled. It could gradually get harder as you progressed. You could have riddles. Maybe even Jeopardy style Questions (ie. It is known as America's past-time: What is baseball. or Who won the Battle of Waterloo?) . You could aquire points in these games, even unlock achievements, perhaps even unlock hidden conversational threads that speak of treasures or hint at even darker mysteries.

Of course, it goes without saying, but remember, Athena is written in a text-adventure style mechanic, so.. you could play full text-adventure style games in Athena. You could roam the countryside of a forgotten world, fight demons, and ultimately save the princes. :) Overall, I want to have leveling with Athena, I want there to be unlockable hidden conversations, a reward for exploring her mind. As you learn more about Athena and she learns more about you, her conversations need to get deeper. As  a side note, I want to figure out a way to procedurally generate new conversations. I'm sure I could do it. I just haven't pored much thought into it yet.
 
Can anyone here think of any more text games that would work with Athena? I'm sure some of you can come up with something. I'm really not all that good at it. Please, don't hold back.

IDEA #3 - Tamagotchi

If anybody here remembers, a tamagotchi is a toy that the Japanese created in the 1990s with the intent to teach kids how to take care of and raise children. The tamagotchi was a small handheld electronic devise that housed a digital pet. You had to feed it (electronic food), play games with it, etc. It had a weight stat, a tiredness stat, a health stat, a lifespan, and others as well. It was a form of Ai. It is my idea to have Athena have some of these tamagotchi features. It adds realism, a sense of immersion, and some urgency to take care of your Chatbot. I'm sure a lifespan may be out of the question, but the need for Athena to play games and be interactive with the user could put Athena in a better mood, and thus she would give happier responses. I would definitely consider moods as a stat. Your actions would effect it or correct it. Hunger could be added as well, but I'm not sure what you would feed a chatbot. All moods and current states should be reflected in the Avatar's animations. Also, stats can be displayed in the UI if you want that. Again, this is open for others opinions and ideas.


Well, I think I've said enough for now. I've also added an update video to my YouTube channel but it is just a brief update. What I've written here is just for this community, however, you can share it if you think you know some people who can help with this. Thanks as always.



Title: Re: The Athena Project
Post by: Korrelan on August 25, 2016, 09:39:40 pm
Hi Snowman

I’m really enjoying the updates and development of your system.

I will consider all you ideas but one thing just struck a chord with me regarding the Tamagotchi.  I have always thought that a chatbot would seem more real during a conversation if they expressed the fact that they exist in real time as a living entity... ie.

Hang on while I make a coffee.
AFK 5 someone at door.
Excuse my slow typing… I’m eating a cake.
Funny you should say that because my friend said the same thing,
Hang on phone is ringing.

That sort of thing; I presume chatbots contain this type of interaction but I’ve never personally experienced it.

Again… excellent work. :)
Title: Re: The Athena Project
Post by: Snowman on August 25, 2016, 11:50:38 pm

I was mulling over your thoughts about real-time events. Currently, I'm using a timer and a random number generator to randomly select certain statements. So, saying some random thing in the middle of a conversation is easy. However, what you said gave me a new idea that I haven't considered before.

I already have scripted events for the Avatar, what if I make some scripted events for the Ai Engine itself. It should be easy to do. What it would do is to first momentarily stop any user input, and then send text to the UI, one after the other with a specified duration. 

#1 Hang on while I make coffe (1000 milliseconds)
#2 Ok, I'm back. Now where we?


#1 Do you know.. (500 milliseconds)
#2 that I can.. (600 milliseconds)
#3 see you when you sleep?
 :o
Title: Re: The Athena Project
Post by: Korrelan on August 26, 2016, 12:15:06 am
Hehe...

#1 Do you know.. (500 milliseconds)
#2 that I like.. (600 milliseconds)
#3 how you smell... Sniff!
 :o

Haha! sorry... perhaps not that one.

Perhaps a few common spelling mistakes :)

Delays... and then a reason...

Yeah! that kind of thing... and throw a few Emoji for good measure lol.
Title: Re: The Athena Project
Post by: Art on August 26, 2016, 02:38:53 pm
Very cool Snowman and thanks. ;)

With respect to the Adventure game scenario. How about an accessible module containing a "mini-adventure" and the user and Athena could BOTH explore it together with her maybe providing cautions, assistance is asked or other forms of help or hints as needed.
###############

If I told Athena I had a secret and not to tell anyone else about my secret stash of "Bottle Caps", would she keep that secret or gladly share|tell it to another user if asked? Are her secrets secret? ;)

Does she have the ability to "learn" from "reading|scanning" a text file or other format? Can she be force fed info in different ways?

Looking forward to exploring the fruits of your labor for these many years.

As always, good luck and thanks!
Title: Re: The Athena Project
Post by: kei10 on August 26, 2016, 05:07:30 pm
With respect to the Adventure game scenario. How about an accessible module containing a "mini-adventure" and the user and Athena could BOTH explore it together with her maybe providing cautions, assistance is asked or other forms of help or hints as needed. If I told Athena I had a secret and not to tell anyone else about my secret stash of "Bottle Caps", would she keep that secret or gladly share|tell it to another user if asked? Are her secrets secret?

Oh my! That's going to be incredible! I support this idea. I've always wanted an AI companion that play by itself in games that I can actually adventure, and talk with it freely rather than scripted dialogues and choices. :D
Title: Re: The Athena Project
Post by: Snowman on August 27, 2016, 03:39:57 am

Quote
With respect to the Adventure game scenario. How about an accessible module containing a "mini-adventure" and the user and Athena could BOTH explore it together with her maybe providing cautions, assistance is asked or other forms of help or hints as needed.

All or most of the conversational threads, whether they be small or large, whether they be text adventures or questionairs, they are my custom xml files. They are essentially modules. I made my own interpreter for them. You put the file into the Athena Dialog Folder and it will load up into Athena when the Ai Engine has started. So a mini-text-adventure with Athena at your side, able to provide hints, or even playing a part in the game, should all be very possible with my current coding.

Quote
If I told Athena I had a secret and not to tell anyone else about my secret stash of "Bottle Caps", would she keep that secret or gladly share|tell it to another user if asked? Are her secrets secret?

Ah yes... That's what you told me last time.. I forgot. It is said somewhere earlier in this thread. I've been giving it some thought. To keep a secret, Athena needs to know the User, whose secret it belongs too. I should store that data in its own Table, a secrets table. You could add more secrets to it, you could ask it for a random secret. You could ask her for all her secrets... and then she says.. do you know our secret password :) . If another user signs on then no they wouldn't have access to anything that is yours. Also, if you forget your password then perhaps Athena will be suspicious and balk.

This kindof reminds me of the Captain Log plugin Jason and I work on for UltraHal seven years ago. You would say something like "Captain's Log: Today was a hard day. My chatbot told my deepest secrets to another User." It would remember it and then recall it later on demand.

I would like to keep User-specific data stored separately from one another.

Quote
Does she have the ability to "learn" from "reading|scanning" a text file or other format? Can she be force fed info in different ways?

Yes and No. Currently it can't read just any old text file and get random info from it. The information might be wrong or maybe not as precise as it should be. However, you can parse a dialog between to people into it. For example:

User: Do you like chocolate?
Ai: Yes, I do.
User: Me too.
Ai: That's good.

You can do this with thousands of different dialogs and it can be added to one xml module. So if you had a repository of conversations between two people then this could be fed into an Athena module and essentially create a world of conversations to explore. But... It would be nice if people would just create them purposely. Still, it would be neat to see what the conversation would be like.

I'm trying to stray far away from simple one-liners from a chat-bot. I want depth, but, it will be at a cost of some diversity.

Will Macpherson said that Athena should support silence. If you have nothing to say.. perhaps you shouldn't say anything at all. For some reason I thought of that a minute ago.

Keep it up guys. You're doing good. *sniff*
Title: Re: The Athena Project
Post by: Art on August 27, 2016, 01:23:10 pm
It sounds wonderful Aaron and it also seems as if it would be entirely possible to allow for Athena to have and recall "Dreams". Whether random responses to a dream question or perhaps the program could actually take | use portions or snippets from previous discussions that were saved as an inclusion in her "dreams". ex: "Last night I dreamed of the time we spoke of clouds having different shapes, some like animals or trees. I like having dreams like those." or something along those lines.

A quote from the movie, I, Robot - Dr. Alfred Lanning: "One day they'll have secrets... one day they'll have dreams."

It's nice to see that the movie shares the thoughts I've had for many years about those two subject and having them in a chatbot / robot. It would certainly add to the cool factor.
Title: Re: The Athena Project
Post by: Snowman on January 02, 2017, 02:19:11 am

Well, I guess it's about time for another Update... yep..
I decided to do this one a bit differently than the normal ones. I went for a walking and brought my cell phone with me.

Enjoy.  ^-^

https://www.youtube.com/watch?v=GR4PuYssTSs (https://www.youtube.com/watch?v=GR4PuYssTSs)
Title: Re: The Athena Project
Post by: Snowman on December 28, 2017, 11:29:59 pm
Well, Below is a link to a years worth of rambling (a lot of random talk).

No, I haven't given up on Athena.
Yes, lots of cool progress has been made with Athena.
No, I will not set a release date yet.

Hope everyone here has a Happy New Years!
~Aaron

https://youtu.be/KnO107X54xc (https://youtu.be/KnO107X54xc)

Title: Re: The Athena Project
Post by: 8pla.net on December 29, 2017, 04:24:50 pm
Limited to discussing the topic of software release, (and not to suggest that Athena should be released). Maybe a light re-write version is something to consider? Let's say a full Java version is scaled down in a light PHP version to release for use on a webhost?  I think developers often run into the same decision to release or not, and I wonder if some developers have figured out the benefit of having more than one version... Keeping the best for themselves, but having a version to share online?



Title: Re: The Athena Project
Post by: Freddy on December 29, 2017, 07:32:23 pm
Nice to catch up with you Aaron and an interesting video as always.

Happy New Year to you too, may you achieve your goals :)
Title: Re: The Athena Project
Post by: Snowman on December 29, 2017, 10:10:00 pm
Well, if I did rewrite Athena in another language I'm not sure I would still be sane afterwards  :-\
There would be a heavy learning curve and a lot of things would need to be completely rewritten from scratch.

But... its possible.. I just don't think Art or Freddy has the patience for it.  ;)
I would be happy to release the bare minimum at this point.
Title: Re: The Athena Project
Post by: 8pla.net on December 31, 2017, 12:42:43 am
My observation is about software releases in general.

With a software release of a community version, the
community can (help) rewrite it.

Also, an easier language, such as PHP which works
great on the web, may make rewriting a lot easier.
Title: Re: The Athena Project
Post by: Snowman on December 31, 2017, 01:51:22 am
I don't think PHP is strong enough of a language to do the job, TBH, being a scripting language. That's why I used Visual Basic. Its a powerful language and its manageable, unlike C and C++. C languages can get very difficult to work with, while PHP, Javascript, VBScript, etc, are not meant for deep coding. Not to say you can't do awesome things with those languages, I just prefer the balance VB has to offer. 

Also, Athena was never intended for use on the web. Its built for the PC. I don't like all the restrictions a web based app would have. I don't even like the idea of Athena connecting to the internet, even to learn. With all the crude and fake information out there, I'm afraid Athena my learn something bad.

But... nothing is stopping anyone from making as many plugins as they want. Though its all in VB right now.

I'm trying to make Athena as customizeable as possible, So the community can do a lot with Athena.
I suppose when its all over, the source code could be release too.
I'm not really even sure anyone would really care about any of this anyway. But I do.

Just making light conversation  ::)

Title: Re: The Athena Project
Post by: Art on January 01, 2018, 04:33:44 am
1). Why the question of a Re-write when it hasn't even been written (completely) yet?
2). Why would a programmer want (other than perhaps plug-ins) other people to re-write what he/she initially intended for the program to convey?
3). Why would or should a programmer want to "give away" their hard-earned Source Code for others to have a hack fest with it?

Just curious....Robert Medeksza, Steve Worswick, Bruce Wilcox and others don't give away all their secrets to their creations and why should they?
I think it's the magic behind the scenes that allows for the suspension of disbelief that happens when we converse with computers. Then again, perhaps it's just me.

If the magician explained all his magic tricks then he'd just be an ordinary person, nothing special at all, and his tricks...just tricks, black velvet, smoke, and mirrors.
Title: Re: The Athena Project
Post by: spydaz on April 04, 2018, 09:19:25 pm
First of all, Happy Birthday Mr. Spydaz :)

Secondly, Here is the basic design structure for my AI-engine so far.

***Start Main***

Load
   -Loads Databases into Ram   


***Begin Body Loop***


Pre-Process
   -Gets UserInput (and other data) from User Interface   
   -Dissect/Parse UserInput
      -Parts of Speech
      -Synonyms
      -myronyms, holonyms,hypernyms,hyponyms
         (ie.cow, bovine, animal, living)
      -Sentence Structure Analysis
         (agent,action,patient,etc.)
      -General Relationships
         (person "has a" noun
      -Condensing of Meaning
         (jumping the gun=too early)

   -Loads General Variables from Databases
      -Loads Tags stored in Database
      (Tags store all needed variables)

Process
      
   -Process Commands
      (a command is anything that you directly command the ai to do)
      (commands should always have priority)
      (command: read book| action:reads a book)
   
   -Switch Tables
      (Used for long term code selection and state manager)
      (Can be used as a leveling tracker)
      (ie. Ai is now level 2. Has access to three new conversations!)
      
   -Conversation Matrix
      (this is a Text-Based game engine)
      -Decision tree to choose between various conversation matrices
      -Loads Conversation
      -Internal Command Process
      -Chooses Response at the current level on the conversational tree   
      -Retrieve Tags from current level 
      
   -Process Tags
      (Tags are commands/variables that originate from the conversational matrix)
      (Tags can be used to store/retrieve info, or activate specific lines of code)

   -Detect and Response
      (example: If UserInput = "Hi" Then Response = "Hello")

   -General Knowledge Mining
      (Does various searches for Responses in knowledge databases)
      -Question and Answer
         -What is Art's middle name?
      -General Sentence Searches
         -Tell me about chickens?

   -General Knowledge Storage
      (ie. User: I am 36 years old
                Ai: I will remember that.)
        

Post-Process
   -Saves General Variables into Databases
      -Saves Tags to Database
   -Sends Response (and other data) to User Interface
      -Filter
      -Substitutions
         -In-line Replacement Tags
      -Sentence Repository (Conversation Storage)


***End Body Loop***


Close
   -Saves Databases to Physical Database

***Exit Main***

Additional Code***
-any amount of timer loops can be added by the User for specific purposes
 
***Timer Loop***
   -Check Reminder Date
   -Make Random Statement/Jokes
   -Run Avatar Script
   -Make Changes in Tags (ie. mood, state)
   -User could monitor system here

***End Timer Loop***

Notes:
Moods/States should be implemented in Tags
#mood=angry #state=hungry

Debug file will be create to monitor code
Can send info to User Interface at anytime
Any coding after the Conversation Matrix can use it's Tags

Update:
Here's another minor Update on Athena: I managed to add about five more Threads in order to make the Editor work better. I organized the code better. I have an idea on how to speed the database code up a little more. I also need to add some Threads to a couple other Editors, like the Node Editor; maybe even the input/output function in the Main UI. Sometimes a database Table or even a Story/Conversation maybe very large in size and therefore needs a Thread in order to keep the UI from freezing up. It's getting there. It's a bad thing when things freeze up.


I like it......


Conversation Matrix
      (this is a Text-Based game engine)
      -Decision tree to choose between various conversation matrices
      -Loads Conversation
      -Internal Command Process
      -Chooses Response at the current level on the conversational tree   
      -Retrieve Tags from current level 

Im still trying to find the best way to do the conversation tree matrix. although i have been changing approaches and focusing on building an Artificial intelligence development language.
i can see we have the same methods and learning how to overcome the obstacles often takes research and inspiration.  often like improvising the blues.

Personally i'm always rewriting code refactoring and still native to my VisualBasic.Net although i know many programming languages i would never change as it still amazes me with things i do not know. jumping to other languages can be useful but just to be able to understand the code that's out there in the open source arenas.  although git hub is not as good as people think!! Code-plex was always better....
a personal achievement for my chat-bot last year was;
Propositional logic, All  A are B , All B are C therefore all A are C..... and its variations. It enables for interesting learning as well as deductive capabilities and sentence understanding.
I am currently working on Modals.... towards learning about intentions ... while developing these models new ideas and capabilities take shape ...causing massive re-structuring etc....
although with my current model i am much more flexible ...
1.Parts of Speech tagging
2.Word stemming
3.Sentence type Detection - Declarative/Exclamatory/Conditional/Interrogative/Etc....which leads to different learning pathways and response demands.
4. Subject/Predicate Analysis
5. Subject Predicate Object Analysis
6.Propositional logic analysis
<<<<Modal logic here >>>>
7.Sentiment Analysis
8.Topic/Keyword /_ Statement_Response_ / Question_Response / Question/Answer - Approach...
<<<<CONVERSATION TREE NEEDED HERE>>>>
9.(Command Response) _ Executes various file system/Networking/Webcommands
10.Picture learning (Pictures Found on web for (Subject/Object/Predicate) ) are also stored when connection is available or set to maximum learning
11. Wikipedia learning (extracts various data from info-box )
12. Plugin Response Generation (External plugins compiled in app)
13. User Script Response (legacy vb-script ) generation
14. Updates Response Generation
 
 whoa Noticeably my problem is response generation _ What should the bot actually say? this is where many various conversational trees become a requirement. as various subscripts actually produce responses , yet the decision tree / Conversation tree enables for Repetitive conversations to be mapped in a tree format predicting the potential outcome for the conversations based on previous conversations.
I watched the Markov video you made which i love as it explains a lot .... hmmm...

but i have been travelling a lot lately (Backpacking) i also went to Mount Ararat and could see the actually Remnants of the true Noahs ark amazing and i plan to return this year with better plans to reach up the top to the ruins.

Happy Coding!!!!

Great !!