Virtual Humans Forum
Virtual Humans Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

Virtual Humans
Partner website:
Chatbots.org
 All Forums
 Virtual Humans
 V-Humans
 The Fadela Project.
 New Topic  Reply to Topic
 Printer Friendly
Previous Page
Author  Topic 
Page: of 2

TheMikh28
Curious Member



USA
39 Posts

Posted - Feb 06 2011 :  07:39:29  Show Profile  Reply with Quote
quote:
You make any progress? Would love to see an example of your program's responses anyways.

Keep on at it and good luck. :)


Thanks!

I managed to work out the bugs a couple days ago.

The responses are, at this point in time, extremely rigid -- it essentially mimics everything I say right now, but in accordance with certain (currently rigid) rules determining how these replies are generated.

These responses should become (much) more fluid as I begin implementing the rest of my ideas into the code, but this is the necessary groundwork on which everything else may be built. Despite the extremely simplistic replies, simple exchanges like the one below generate several megabytes in word/sentence-structure associations and require a great deal of processing power/time to make those associations. At some point I'll probably limit the "depth" of the associations in order to cut processing time and disk space used, since it ::shouldn't:: sacrifice the quality of the responses.

The first message ("Hey you") was pre-programmed, and just serves to get the ball rolling with respect to the structure/word associations, and arguably does so more effectively than "null".

quote:
Fadela: Hey you.
Mik: Hey Fadela.
Fadela: hey fadela
Mik: My name is Mik.
Fadela: my name is mik
Mik: No, your name is Fadela.
Fadela: no your name is fadela
Mik: You must be mistaken.
Fadela: you must be mistaken
Mik: Stop repeating what I say.
Fadela: you must be mistaken
Mik: Why do you say that
Fadela: stop repeating what i say
Mik: I\'m not repeating what you say.
Fadela: you must be mistaken
Mik: No.
Fadela: stop repeating what i say


My next three objectives are to:

(1) Clean up the code and make it more "expansion-friendly"

(2) Instill some basic sense of "self" and "other" in the system (allowing for you/me/name messages without having to pre-code it; I want the bot to be flexible enough to learn virtually any language)

(3) Implement identification of structure-term-relationships that I refer to as "turning-doors" (e.g., I => You), "hallways" (when a term at one point in a sequence recurs at another point) and "walls" (or basically no consistent trend).

[M*P]
Go to Top of Page

TheMikh28
Curious Member



USA
39 Posts

Posted - Jun 27 2011 :  09:17:50  Show Profile  Reply with Quote
Haven't updated in a few months mainly due to being busy with classes throughout the spring, but now that I'm on summer break I've returned to giving thought to the project.

At the time I last updated, the response module was quite rigid and what not, so I immediately responded to that problem by making it more flexible (objective 3 of my last post) and quickly realized it created a catch-22 situation.

- More rigid responses were, naturally, more rigid but retained "form" better.
- More flexible handling of sentence structures lead to increasingly garbled responses as the conversation went on.

I responded to this issue by combining a couple algorithms I've been working with in order to both handle wildcard terms within sentence structures as well as to keep multiple groups of words within a single sentence intact when stored within a database, which I had not done before.

So, rather than generating combinations in the following manner:

quote:
A B C
A B *
A * C
A * *
* B C
* B *
* * C
* * *


Combinations are generated like:

quote:
[A B C]
[*]
[A B][C]
[A B][*]
[*][C]
[*][*]
[A][B C]
[A][*]
[*][B C]
[*][*]
[A][B][C]
[A][B][*]
[A][*][C]
[A][*][*]
[*][B][C]
[*][B][*]
[*][*][C]
[*][*][*]


While this new approach is much more promising with respect to resolving the catch-22, it has brought its own fair share of issues -- namely the question of how to handle all the excess data that I anticipate will be generated but not used, as well as prioritizing what exactly is to be processed since it will be much more timely and inefficient -- that I've spent a great deal of time trying to work out, though my brainstorming of solutions to these problems has have been fruitful as of late and I hope to start implementing the changes soon.

So, yeah, that's where I am right now.

In the grand scheme of things, the project breaks down into the following four areas, each of which build on the foundations provided by the previous:

- Grammar (Current area of work)
- Logic (Principles relatively well-established, crudely implemented a couple years ago but scrapped due to obsolescence)
- Emotion (Principles briefly mapped out, with partial implementation a couple years ago, also scrapped due to obsolescence)
- Intelligent Planning (Some theory, in the most primitive stages)

Contemplating porting the entire project to Java in the future; my main reservation with doing so at the moment is the radical difference between how PHP and Java handle arrays, though I'm sure Java offers a few data types that can substitute the bizarre structures I've been working with. For everything else, I can just write more classes.

[M*P]
Go to Top of Page

TheMikh28
Curious Member



USA
39 Posts

Posted - Nov 09 2011 :  17:27:31  Show Profile  Reply with Quote
Completely rethinking my approach to the project and temporarily setting aside most of what I've developed over the past couple years.

Placing emphasis on so-called "turning doors," "hallways," and "walls" by returning to the use of simple indicators to explicitly indicate such relationships.

In a sense, it's "cheating" as the system no longer attempts to identify these relationships itself, but by knowing with 100% certainty what these relationships are (at least in one direction - backwards, looking at prior exchanges in conversation), less time needs to be dedicated solely to processing sentences for ridiculously lengthy periods of time only to "guess" (and without much likelihood of having a proper response) when it comes to certain types of responses. Far too much time was spent attempting to optimize this, and with virtually no results over the course of several months.

Of course, no new idea comes without issues. Having the system to creatively re-use sentence structures in response to sentences that are not 100% compatible ("structurally" speaking) isn't exactly a walk in the park, so I'll need to devise a solution to this.

Aside from that though, I can safely say that I'm feeling more optimistic about the project than I have been since the question of optimizing process became such a big obstacle for the project's progress.

[M*P]
Go to Top of Page

mikmoth
Moderator



USA
2051 Posts

Posted - Nov 12 2011 :  03:17:36  Show Profile  Visit mikmoth's Homepage  Reply with Quote
If I understand correctly... I think I am doing something similar with my NLG reaserch (natural language generation). The information is put together by relationships in the data itself instead of creating an algorithm designed to manage and make sense of these relationships.


cat, LocationOf, under the table
cat, CapableOf, drinking milk

"The cat is under the table. He is drinking milk."

The data itself points to the location of the cat instead of creating code to understand what location is, what a table is, what a cat is. And the data itself tells us what he is capable of.

I hope that's what you meant... I would love to hear more about your approach and what your goals are. Very interesting.

Well, talk to you laters.

 http://lhandslide.com
Go to Top of Page

HologenicKid
Curious Member



USA
31 Posts

Posted - Nov 26 2011 :  08:18:32  Show Profile  Reply with Quote
another "shortcut". This thing is blind, unable to feel, and unable to smell or taste. the last three aren't your problem(yet). I'm thinking that the program can't make sence of the cat as an object in space. like a blind baby that hasn't touched anything, it knows that it's there,not in relation to anything but itself. It can sence the sounds, but does not, or can not, repeat with any coherencey.

Just my two cents.

HologenicMan's Son
"Smile. It makes everyone wonder what your up to"
-unknown
Go to Top of Page

mikmoth
Moderator



USA
2051 Posts

Posted - Nov 28 2011 :  23:52:29  Show Profile  Visit mikmoth's Homepage  Reply with Quote
Not necessarily. Awareness and consciousness can exist in any space where there is potential for organized complexity. I learned this early with Kari. Although the parts themselves may not be aware, the overall system is aware because it is able to respond to another awareness of consciousness in an understandable manner.

There is also the argument that the observer and the watched are part of the same system. If that's true, if the Ai awareness can seamlessly interact with an organic counterpart there is no measurable difference between "quality" of awareness.

Also, it may be argued that we ourselves do not know what a table is. It's something that is brown, about waist high, and we put plates on it to eat from. The form of Ai data manipulation we are talking about is very similar to how human database works.

"There are always possibilities."

 http://lhandslide.com
Go to Top of Page

TheMikh28
Curious Member



USA
39 Posts

Posted - Jun 14 2012 :  04:58:14  Show Profile  Reply with Quote
It's been over a half-year, and I suppose I ought to post an update.

In short, I concluded that simple "door"/"hallway"/"wall" relationship indicators were simply not enough, as the issues I briefly outlined were still overwhelming. However, they were an excellent start to where things have been moving since.

In December I effectively gored all my sacred cows (particularly my resistance to using more indicators), pushed attempting unaided natural language processing to the back of my laundry list, and began to develop a comprehensive language revolving around various types of indicators, similar to the approach I was taking back in mid-2009.

The key difference, however, is that I've given this language syntax that is quite similar to those of the Lisp family. Nested parenthesis allow for different layers of concepts to be conveyed to a system, while the use of a single indicator at the beginning of a parenthesis-statement prior to the arguments allows for exceptionally simple processing.

Other indicators are used to refer to past items declared or discussed -- directly or indirectly -- while means to reference items as they're presented are currently in the works, among other ideas.

While processing of natural-language inputs is far off, it is very easy to reduce input or output queries to natural language, allowing for fully "human-readable" output.

As usual, the system stores and reprocesses all inputs, attempting to reuse stored sentence structures and other relevant data to reconstruct sentences as it wishes.

quote:
Michael: (> (" hello) (. #0|fadela) (. %3|i) (. am) (. #3|michael))
Fadela: (> (" hello) (. #0|michael) (. %3|i) (. am) (. #3|fadela))


Above is an old log of the simplest kind of exchange possible with the system: a greeting is fed in, the structure and other important data is stored, and by default the structure is reconstructed and its references "mirrored" based on references, and returned. I should note that most of the logs I have on-hand are not in "raw-code" form -- the ones below are conveyed in a "naturalized" format.

The system also does some rudimentary identification and reuse of structure-structure relationships...

quote:
Michael: how are you
Fadela: i am fine thank you


...and is capable of the same kind of subject-action-subject relationship logic that I was working on a few years back -- albeit far more efficiently as my programming skills have improved.

If I wanted to express my discontentment about the weather, for instance, I could say:

quote:
(i(*(` %3|i)(, do)(- not)(. like)(, the fact that)(_(` the weather)(. is)(" bad))))


I can then inquire about past logical statements, and get an answer in return. The code can get horrifically messy without indentation, and I hope to someday develop an interactive frontend that makes writing the queries simpler for users.

quote:
EXCHANGE #4
Michael: the sky is blue .
Fadela: ...

EXCHANGE #5
Michael: the sky is not green .
Fadela: ...

EXCHANGE #6
Michael: is the sky blue ?
Fadela: the sky blue true

EXCHANGE #7
Michael: is the sky green ?
Fadela: the sky green false


The full extent of the processing is, however, difficult to explain; I'm hoping to open up the source as soon as I get a few more vital components implemented and the source code cleaned up.

[M*P]
Go to Top of Page

TheMikh28
Curious Member



USA
39 Posts

Posted - Jun 14 2012 :  05:31:01  Show Profile  Reply with Quote
Hi Mikmoth,

quote:
Originally posted by mikmoth

If I understand correctly... I think I am doing something similar with my NLG reaserch (natural language generation). The information is put together by relationships in the data itself instead of creating an algorithm designed to manage and make sense of these relationships.


cat, LocationOf, under the table
cat, CapableOf, drinking milk

"The cat is under the table. He is drinking milk."

The data itself points to the location of the cat instead of creating code to understand what location is, what a table is, what a cat is. And the data itself tells us what he is capable of.

I hope that's what you meant... I would love to hear more about your approach and what your goals are. Very interesting.

Well, talk to you laters.


I do something similar; it's categorized something like:

global scope => cars => (all is-a relationships) => fast (are)

quote:
(i (_ (" cars) (. are) (" fast)))


As for my goals, my current objective is to fix up any issues with what I currently have (particularly those revolving around reuse of data, and responses to certain types of sentence structures), and to get a working "status" module implemented so that the system can feel and express how it feels -- fundamentally intended to be a virtual human and what not -- and so that its status impacts its very behavior.

As very long term goals, I would really like to have a fully autonomous system that observes, thinks, makes plans, and sets goals, and acts according to how it thinks and feels -- like any human would.

quote:
Originally posted by HologenicKid

another "shortcut". This thing is blind, unable to feel, and unable to smell or taste. the last three aren't your problem(yet). I'm thinking that the program can't make sence of the cat as an object in space. like a blind baby that hasn't touched anything, it knows that it's there,not in relation to anything but itself. It can sence the sounds, but does not, or can not, repeat with any coherencey.

Just my two cents.


What are the senses but binary signals in the brain? I may not be able to easily express my joy of cooking or music to a system in a way it could relate (well, Mikmoth's AI probably could, it is absolutely brilliant) but I could talk about ideas and concepts, and with a status module in place, I could even convey what things mean to me at an emotional level or something like that.

The program may not "consciously" be aware of what I say to it (Chinese room debate), but having it to interpret and reapply knowledge would make me more than happy.

quote:
Originally posted by mikmoth

Not necessarily. Awareness and consciousness can exist in any space where there is potential for organized complexity. I learned this early with Kari. Although the parts themselves may not be aware, the overall system is aware because it is able to respond to another awareness of consciousness in an understandable manner.

There is also the argument that the observer and the watched are part of the same system. If that's true, if the Ai awareness can seamlessly interact with an organic counterpart there is no measurable difference between "quality" of awareness.

Also, it may be argued that we ourselves do not know what a table is. It's something that is brown, about waist high, and we put plates on it to eat from. The form of Ai data manipulation we are talking about is very similar to how human database works.

"There are always possibilities."



You're totally correct. The AI and the human brain are both dynamic systems that accept input, process it, and give output, and even do different types of reprocessing.

Humans can interact with an AI, an AI can respond to a human, and they can both influence each other.

And at the end of the day, we think of just about everything in terms of other things.

[M*P]
Go to Top of Page

TheMikh28
Curious Member



USA
39 Posts

Posted - May 23 2013 :  19:18:32  Show Profile  Reply with Quote
I haven't really posted in nearly a year, and haven't done much development in about as long -- between late August and maybe last week.

Since my last post, I've made a number of advancements to the language's functionality while retaining its syntactical simplicity, as well as to the system with respect to how it works with that language and the data derived from it.

However, my main area of focus as of late has been devising a method of deriving parsing grammars from the language and using those rules to actually parse natural language. While the former was very easy, the latter has proven exceptionally difficult even with the most grammatically simple of inputs, as expected.

I still do not consider the project to be quite at a satisfactory state for release, but I hope to offer more news as it comes.

[M*P]
Go to Top of Page

TheMikh28
Curious Member



USA
39 Posts

Posted - Oct 06 2014 :  18:31:55  Show Profile  Reply with Quote
Inclined to an awful blend of perfectionism and procrastination, I don't think the codebase will ever be in a "satisfactory state" for release so I'm just gunning to open up the source sometime before the end of the year, for any curious folk to rummage through.

I've been documenting more recent developments/demonstrations at http://fzpl.tumblr.com

[M*P]
Go to Top of Page

art
Moderator



USA
365 Posts

Posted - Oct 09 2014 :  02:44:20  Show Profile  Reply with Quote
Great! Nice to see you posting again.

How are your grandchildren doing. OOPS!! It really hasn't been THAT long has it? Just joshing you a bit.

We're all getting a little long in the tooth. Time marches on.
I'm soon looking at retirement but hey, that's life.

There are still a few of us who still frequent these halls from time to time so don't be a complete stranger. And don't let those grandkids get underfoot.

- Art -
In the world of AI it's the thought that counts!
Go to Top of Page

TheMikh28
Curious Member



USA
39 Posts

Posted - Dec 13 2015 :  16:16:56  Show Profile
A little overdue, but I released the source yesterday.

http://lockettsystems.com/fadela

[M*P]
Go to Top of Page
Page: of 2  Topic   
Previous Page
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
Virtual Humans Forum © V.R.Consulting Go To Top Of Page
This page was generated in 0.18 seconds. Snitz Forums 2000