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
 Artificial Intelligence
 human mind map
 New Topic  Reply to Topic
 Printer Friendly
Previous Page | Next Page
Author  Topic Next Topic
Page: of 25

Hatcheda
Curious Member



27 Posts

Posted - May 07 2009 :  01:48:52  Show Profile  Reply with Quote
Thanks!
I think I am going to mix the two. I like 'Describe', 'tell me about' and such, but I think the flow would go better if I didn't have to tell her to remember. I think she would also grow much more quickly through reading and conversations.

I am also wondering if I should find another method than forget. I am thinking maybe it should be a form of 'not'

If cortona makes a connection and I tell her to forget it, then will she not forget that she forgot it and maybe make it again

More to think on that later!

Made some more progress . . .

Console Dump . . .

David is a Name
is is a Helping Verb
a is a Article
human is a Noun a0b1c2d3 David is a human _MemberEntry 
..
David is a Name
is is a Helping Verb
a is a Article
nice is a Adjective
person is a Noun
 a0b1c2d4 David is a person _MemberEntry

David is nice _Attribute
..
is is a Helping Verb
david is a Name
a is a Article
person is a Noun
 _Is  
david is a person  is a human .
..
is is a Helping Verb
david is a Name
a is a Article
mammal is a Noun
 _Is   
david is a person  is a human human are mammal david is a mammal.
..
is is a Helping Verb
john is a Name
a is a Article
mammal is a Noun
 _Is  
I don't know what john is.




Func _Is($sString)
	ConsoleWrite("_Is   " & $sStr & " " & $sString & @CRLF) ;Debug
	Dim $sPattern = '(?i)is (\w++) a (\w++)'
	Dim $aMatch = StringRegExp($sString, $sPattern, 1)
	If IsArray($aMatch) Then
		Global $Object1 = $aMatch[0]
		Global $Object2 = $aMatch[1]
		$avArray = _ExcelSheetList($oExcel)
		$iIndex = _ArraySearch($avArray, $Object1, 0, 0, 0, 1)
		If @error Then
			_Speak("I don't know what " & $Object1 & " is.", -1, 100, "Microsoft Anna")
			ConsoleWrite("I don't know what " & $Object1 & " is." & @CRLF)
		Else
			Local $TempArray[1]
			_ExcelSheetActivate($oExcel, $Object1)
			$xArray = _ExcelReadSheetToArray($oExcel, 1, 1, 0, 3, 1)
;~ 			_ArrayDisplay($xArray, $Object1)
			If IsArray($xArray) And UBound($xArray) > 1 Then
				Dim $Speak0 = $Object1, $Speak1 = "", $Speak2 = "", $Speak3 = ""
				For $a = 1 To UBound($xArray) - 1 ;0 is the array size
					If $xArray[$a][0] = "Member" Then
						$Speak1 = $Speak1 & " is a " & $xArray[$a][1] & " "
						_ArrayAdd($TempArray, $xArray[$a][1])
					EndIf
				Next
;~ 				_ArrayDisplay($TempArray, "Temp")
				For $b = 1 To UBound($TempArray) - 1 ;0 is blank
					_ExcelSheetActivate($oExcel, $TempArray[$b])
					$yArray = _ExcelReadSheetToArray($oExcel, 1, 1, 0, 3, 1)
;~ 					_ArrayDisplay($yArray, $TempArray[$b])
					If IsArray($yArray) Then
						For $c = 1 To UBound($yArray) - 1 ; 0 is the array size
							If $yArray[$c][0] = "are" And $yArray[$c][1] = $Object2 Then
								$Speak2 = $Speak2 & $TempArray[$b] & " are " & $Object2 & " " & $Object1 & " is a " & $Object2
							EndIf
						Next
					EndIf
				Next
				$Speak = $Speak0 & $Speak1 & $Speak2 & "."
				ConsoleWrite($Speak & @CRLF)
				_Speak($Speak, -1, 100, "Microsoft Anna")
			EndIf
		EndIf
	EndIf
EndFunc   ;==>_Is

Edited by - Hatcheda on May 07 2009 01:50:51
Go to Top of Page

toborman
Hooked Member



USA
291 Posts

Posted - May 07 2009 :  15:23:15  Show Profile  Visit toborman's Homepage  Reply with Quote
quote:
is is a Helping Verb
david is a Name
a is a Article
mammal is a Noun
_Is
david is a person is a human human are mammal david is a mammal.


Cortona's Is function is similar to Harry's Verify command. During verification Harry also checks for negatives.

http://mindmap.iwarp.com
Go to Top of Page

Hatcheda
Curious Member



27 Posts

Posted - May 07 2009 :  16:43:43  Show Profile  Reply with Quote
Interesting. So instead of not existing in the db, I could store 'are not" and use the same function with a small change. I added a second level of depth last night. I am working on passing your level 1 test. The following is now possible . . .
David is a human, humans are mammals, mammals are animals.
Is David an animal. (yes, with verify)

Actually, 'Is David "a" animal' but I haven't spent time on that yet.

Do you have an example of the logic you use for your _is() function?
Is it the same as your _verify() with less output?
Thanks for the info!
Go to Top of Page

toborman
Hooked Member



USA
291 Posts

Posted - May 07 2009 :  18:27:23  Show Profile  Visit toborman's Homepage  Reply with Quote
quote:
Interesting. So instead of not existing in the db, I could store 'are not" and use the same function with a small change. I added a second level of depth last night. I am working on passing your level 1 test. The following is now possible . . .
David is a human, humans are mammals, mammals are animals.
Is David an animal. (yes, with verify)

Actually, 'Is David "a" animal' but I haven't spent time on that yet.

Do you have an example of the logic you use for your _is() function?
Is it the same as your _verify() with less output?
Thanks for the info!

Adding:
David is not an elephant.
We can ask:
Is David an animal? Yes, David is an animal.
Is David an elephant? No, David is not an elephant.
Is David a monkey? I don't know if David is a monkey.

"Is David an animal?" is interpreted by Harry as "verify David is an animal."

Code follows.

http://mindmap.iwarp.com
Go to Top of Page

toborman
Hooked Member



USA
291 Posts

Posted - May 07 2009 :  18:29:29  Show Profile  Visit toborman's Homepage  Reply with Quote
Function Verify(tblinterpretation As Variant, tblKnowledge As Variant)
Dim temp As Variant
Dim ChallengeResult As String
Dim DeductionResult As String
Dim Question As String
Dim Answer As String
Dim TempStr As String
Dim NotRelation As String
Dim Response As String

Verify = "I don't know"
temp = linkrecGetFields(tblinterpretation, obj1clas, obj1, Relation, obj2clas, obj2)
Response = obj1clas & "." & obj1 & "." & Relation & "." & obj2clas & "." & obj2 & "."
Response = Translate(Response, tblLanguage)

If linkrecMatch(tblKnowledge, obj1clas, obj1, Relation, obj2clas, obj2) = True Then
Verify = "true," & Response
If Intention = "verify" Then
temp = linkrecAdd("tblblackboard", "I", "harry", "make", "statement", "Yes, " & Response)
End If
Exit Function
Else

'*********************check direct challenge*******************
ChallengeResult = Challenge(tblinterpretation, tblLanguage, tblKnowledge)
If ChallengeResult <> "I don't know" Then
Verify = "false, " & ChallengeResult
If Intention = "verify" Then
temp = linkrecAdd("tblblackboard", "I", "harry", "make", "statement", "No, " & ChallengeResult)
End If
Exit Function
End If

'*****************check deductions*********************
temp = linkrecChain("contains")
If temp = "found" Then
Verify = "true."
If Intention = "verify" Then
temp = linkrecAdd("tblblackboard", "I", "harry", "make", "statement", "Yes, " & Response)
Exit Function
End If
End If

End If
If Verify = "I don't know" Then
If Intention = "verify" Then
temp = linkrecAdd("tblblackboard", "I", "harry", "make", "statement", "I don't know if " & Response & ". ")
End If
End If
End Function

http://mindmap.iwarp.com
Go to Top of Page

Hatcheda
Curious Member



27 Posts

Posted - May 07 2009 :  18:59:21  Show Profile  Reply with Quote
Interesting! I did my best to translate it so that I could read it a bit easier. Been a while since I have used vb and autoit lets you skip a bit of prep work.


Func _Verify($tblinterpretation, $tblKnowledge)
	Dim $Temp, $ChallengeResult, $DeductionResult, $Question, $Answer, $TempStr, $NotRelation, $Response

	$Verify = "I don't know"
	$Temp = _linkrecGetFields($tblinterpretation, $obj1clas, $obj1, $Relation, $obj2clas, $obj2)
	$Response = $obj1clas & "." & $obj1 & "." & $Relation & "." & $obj2clas & "." & $obj2 & "."
	$Response = _Translate($Response, $tblLanguage)

	If _linkrecMatch($tblKnowledge, $obj1clas, $obj1, $Relation, $obj2clas, $obj2) = True Then
		$Verify = "true," & $Response
		If $Intention = "Verify" Then
			$Temp = _linkrecAdd("tblblackboard", "I", "harry", "make", "statement", "Yes, " & $Response)
		EndIf
		Return
	Else

		;*********************check direct challenge*******************
		$ChallengeResult = _Challenge($tblinterpretation, $tblLanguage, $tblKnowledge)
		If $ChallengeResult <> "I don't know" Then
			$Verify = "false, " & $ChallengeResult
			If $Intention = "Verify" Then
				$Temp = _linkrecAdd("tblblackboard", "I", "harry", "make", "statement", "No, " & $ChallengeResult)
			EndIf
			Return
		EndIf

		;*****************check deductions*********************
		$Temp = _linkrecChain("contains")
		If $Temp = "found" Then
			$Verify = "true."
			If $Intention = "$Verify" Then
				$Temp = _linkrecAdd("tblblackboard", "I", "harry", "make", "statement", "Yes, " & $Response)
				Return
			EndIf
		EndIf

	EndIf
	If $Verify = "I don't know" Then
		If $Intention = "$Verify" Then
			$Temp = _linkrecAdd("tblblackboard", "I", "harry", "make", "statement", "I don't know if " & $Response & ". ")
		EndIf
	EndIf
EndFunc   ;==>_$Verify


I can see what you are doing here. Looks like it could be a fairly quick function to process!
Nice work!

Edited by - Hatcheda on May 07 2009 19:03:29
Go to Top of Page

Jonalith
Curious Member



1 Posts

Posted - May 07 2009 :  21:18:59  Show Profile  Reply with Quote
"I like the idea of "dream time" - i.e. the AI using idle time to analyse all the data to infer or ab/deduct anything it can." -Grant

I tried to keep reading the whole topic but as i got to page 9 i just couldn't keep going. This statement was in the back of my mind running around like a mouse-ing-ton.

I feel this type of system is absolutely necessary in order to reach the goal whereby expressions are very human-like. However, there are many different approaches towards tackling this type of problem (dream time problem). The first, as has been suggested, is to do it in "idle time", or to run these types analysis in between interpreting and responding to words. Another way is to have separate modules whereby one can analyze data and the other deals with input and responds with statements (both "fact statements" and "process statements" (I.E explaining what it is doing)). This is problematic though because the responding end holds a set of facts already, as well as being able to do a bit of processing/analyzing. So how would a "choice" be made to use either facts which are constructed in the "analyze" module or the "interact" module. I know i am being vague here but i am feeling the brunt of not having read the whole post.

It is all very exciting.

I dont know if you are familiar with the idea of the COSA operating system, but here is a link if you are interested,
http://www.rebelscience.org/Cosas/System.htm
I think you might find a few inspiring ideas in that.

Have you thought about creating a type of "internal" statements which is like a conversation which the AI has with it self, whereby there is a min & max time that it can "speak a statement" to it self. Depending on what types of things are triggered by the statements it will make statements faster or slower to it self. Hopefully it would make statements slower while it was interacting with input data and faster while it was receiving no data.

Good day to you all!
Go to Top of Page

Freddy
Hooked Member



United Kingdom
257 Posts

Posted - Jun 19 2009 :  13:17:42  Show Profile  Visit Freddy's Homepage  Reply with Quote
Toberman,

Is there a bigger scale image of your mindmap ? I'm having trouble reading what's in the boxes. Thanks.

www.aidreams.co.uk
Go to Top of Page

toborman
Hooked Member



USA
291 Posts

Posted - Jun 19 2009 :  15:54:59  Show Profile  Visit toborman's Homepage  Reply with Quote
quote:
Is there a bigger scale image of your mindmap ? I'm having trouble reading what's in the boxes. Thanks.

what operating system are you using?

http://mindmap.iwarp.com
Go to Top of Page

Freddy
Hooked Member



United Kingdom
257 Posts

Posted - Jun 19 2009 :  19:48:27  Show Profile  Visit Freddy's Homepage  Reply with Quote
XP

www.aidreams.co.uk
Go to Top of Page

toborman
Hooked Member



USA
291 Posts

Posted - Jun 20 2009 :  00:32:59  Show Profile  Visit toborman's Homepage  Reply with Quote
I'm using XP 5.1 SP3,IE 7, and java 6.11. with these you should be able to download and run the mindmap. there is a resize button on the bottom right of the chart.

http://mindmap.iwarp.com
Go to Top of Page

Hatcheda
Curious Member



27 Posts

Posted - Jun 20 2009 :  03:32:38  Show Profile  Reply with Quote
Forgot to mention that I am taking a break for a while. -Working on a career change. -Aviation . . . and something to for cash while I build my flight hours . . .
Go to Top of Page

Freddy
Hooked Member



United Kingdom
257 Posts

Posted - Jun 20 2009 :  11:47:53  Show Profile  Visit Freddy's Homepage  Reply with Quote
Doh! Now I went back to the site I found all the info is already there - sorry about that Toborman and thanks.

www.aidreams.co.uk
Go to Top of Page

GrantNZ
Dedicated Member



New Zealand
2677 Posts

Posted - Jun 20 2009 :  18:21:07  Show Profile  Reply with Quote
I'm jealous Hatcheda One of my cousins ended up building roads to fund his aviation studies, but it has sure paid off! Good luck, and keep in touch!
Go to Top of Page

Hatcheda
Curious Member



27 Posts

Posted - Jun 21 2009 :  05:50:43  Show Profile
Thanks! I just rejoined the National Guard so that I could put in my packet for flight school with them. I am now in OCS with them and if my packet is approved, I will go off to Apache school with in the next couple years. I have about 70 hours and will only need a few more as most of the rotor craft training will translate . . . Looks like it will save me a lot of money, and give me a dual rating. A few months with CFI and I could start at a regional. I just took a job at Infiniti in sales so that I could have flex time before and after training . . . Praying it all goes as well or better then planned.
Go to Top of Page
Page: of 25  Topic Next Topic  
Previous Page | Next 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