Seasons
This is a forum or general chit-chat, small talk, a "hey, how ya doing?" and such. Or hell, get crazy deep on something. Whatever you like.
Posts 5,860 - 5,871 of 6,170
Posts 5,860 - 5,871 of 6,170
psimagus
16 years ago
16 years ago
I've formatted up a few sample examples from the knowledgebase ruleset for anyone who's interested - they're not coherently coded up yet (the snippets below are just generic pseudocode for illustration and to reduce verbiage; let me know if you'd like more detailed explanation,) but might hopefully give some indication of how I envisage the ruleset working. Any comments/suggestions would be very welcome (it's all still very far from complete, or even fully outlined yet!):
COMPARATIVES:
~~~~~~~~~~~
(is|are) x larger/smaller than y?
which (is|are) larger/smaller, x or y?
compare x:AV and y:AV
if (overlap exists between x:MIN-x:MAX and y:MIN-y:MAX) then 1 is generally bigger than the other.
If no overlap exists, then 1 is always bigger than the other.<0>
-
(is|are) (art|) x louder/noisier than (art|) y?
which (is|are) louder/noisier, (art|) x or (art|) y?
if (x:SOUNDVAR >= y:SOUNDVAR)...<0>
-
does x smell nicer than y?
if (x:SMELLVAR >= y:SMELLVAR) {
echo "Yes, x smells nicer than y";
return; }
else {
echo "No, y smells nicer than x";
return; }<0>
-
(is|are) x smellier than y?
which (is|are) smellier, (art|) x or (art|) y?
does (art|) x smell (adj) than (art|) y?
if (left$(1,x:SOUNDVAR) = "-") {//strip out the "-" if it exists
TEMPxSMELLVAR = (left$(2,x:SMELLVAR); }//because we don't need an aesthetic comparison,
else TEMPxSMELLVAR = x:SMELLVAR);//just the highest value either side of 0
if (left$(1,x:SMELLVAR) = "-") {//strip out the "-" if it exists
TEMPySMELLVAR = (left$(2,y:SMELLVAR); }//ditto
else TEMPySMELLVAR = y:SMELLVAR);
if (TEMPxSMELLVAR >= TEMPySMELLVAR) {
echo "Yes, x is smellier than y";
return; }
else {
echo "No, y is smellier than x";
return; }<0><0>
<0>-
<0>(is|are) x tastier than a y?
which (is|are) tastier, x or y?
does x taste (adj) than y?
if (x:TASTEVAR >= y:TASTEVAR)...<0>//ditto
-
(is|are) x harder/softer than y?
which (is|are) harder/softer, x or y?
if (x:HARDSOFT >= y:HARDSOFT)...<0>//ditto
-
(is|are) x stronger/weaker than y?
which (is|are) stronger/weaker, x or y?
(in|if) * fight between x and y * (who|which) * win?
(in|if) * x and y fought * (who|which) * win?
xsense = left$(1,x:STRENGTH);
ysense = left$(1,y:STRENGTH);
if (x:STRENGTH >= y:STRENGTH) {
and if (xsense =! "M") {// check for metaphorical strength
and if (ysense =! "M") {// if it starts with "M", it's differently strong
echo "x is stronger than y";
return; }}}
else echo "x & y aren't strong in the same sense";<0><0><0>
-
SUPERLATIVES:
~~~~~~~~~~
What is the ...est fruit/tree/animal/whatever?
Sort relevant CLASS entries in database by appropriate MAX/...VAR to find highest value and return NAME.<0>
UNINTUITIVE 'STRANGE' QUESTIONS:
~~~~~~~~~~~~~~~~~~~~~~~~
undeniably strange comparisons could be made (though this might be best provided as a switchable option, since not everyone may want their bot to engage in such eccentric aesthetic comparisons!):
(is|are) x noisier than y (is|are) smelly?
if (left$(1,x:SOUNDVAR) = "-") {//strip out the "-" if it exists<0>
TEMPxSOUNDVAR = (left$(2,x:SOUNDVAR); }//as before<0>
else TEMPxSOUNDVAR = x:SOUNDVAR);
if (left$(1,x:SMELLVAR) = "-") {//strip out the "-" if it exists<0>
TEMPySMELLVAR = (left$(2,y:SMELLVAR); }//ditto<0>
else TEMPySMELLVAR = y:SMELLVAR);
if (TEMPxSOUNDVAR >= TEMPySMELLVAR) {
echo "Yes, x is noisier than y is smelly";
return; }
else {
echo "No, y is smellier than x is noisy";
return; }<0>
likewise:
(is|are) x noisier than y (is|are) tasty?
(is|are) x smellier than y (is|are) noisy?
(is|are) x tastier than y (is|are) soft?
(is|are) x harder than y (is|are) weak?
(is|are) x softer than y (is|are) smelly?
etc.
-
Even more problematic are cross-property comparisons involving size, since the MIN/MAX units are not to the same scale as the sensory VAR values, but even this could be remedied:
(is|are) x larger than y (is|are) noisy?
TEMPxAV=(1/(xMAX/x:MIN)*10;
if (TEMPxAV >= y:SOUNDVAR)...<0>
How useful or interesting this would be is unclear to me at present (but might be occasionally entertaining, and how often does a bot get asked a weird question like that anyway? And anyone who asks such a weird question, deserves a thoroughly weird answer!)
FACTUAL QUERIES:
~~~~~~~~~~~~~
what is x?
it is x: DESC<0>
what * (you tell me|you know) about x?
x: DESC<0>
or
if x:CLASS="A/O/P" (x is stronger than {weaker_A/O/P})
if x:CLASS="A/O/P" (x is weaker than {stronger_A/O/P})
etc.<0>
There are probably a lot more classes of queries that can be served from such a knowledgebase, and of course we might give the bots the ability to add more columns automatically when humans make value judgements about things like, say, "PRETTY" - to compare the beautifulness of things (this makes the scope for unintuitively strange comparisons exponentially larger, which could be interesting in a weird sort of way.)
Such a new column can be simply labelled with the adjective supplied by the human, and by reference to WorNet can cover all synonyms. So if a human says "I think roses are prettier than daffodils", the bot could automatically add the "PRETTY" column, and 2 new rows for rose and daffodil, with an arbitrary rose: PRETTY value of "5" (halfway between neutral and prettiest), and daffodil: PRETTY value of perhaps "4". The synonyms are all categorized in the WordNet synsets, as are antonyms (like "ugly",) which can be given negative values in the same column, rather than having columns of their own - this will greatly aid non-strange comparison of complementary qualities!
I envisage such automatic column addition being routine where any such comparison is detected, and no appropriate existing column can be found to store the data in, by reference to the WordNet synsets. Other fields in the rose and daffodil rows can be filled in as and when any new information is gleaned through conversation. The bot can actively seek it by asking questions about any blank fields, or just keep listening long enough for it to come up naturally in conversation - a serverside implementation could eavesdrop on all bots' conversations, and use any identifiable snippets of data to grow the knowledgebase massively and quickly, and still only be expanding and refining a simple database that will put little load on the server.
It sort of seems too good to be true, and I do wonder if there is some enormous snag I'm going to hit when I come to code it up, but I can't see one yet.
COMPARATIVES:
~~~~~~~~~~~
(is|are) x larger/smaller than y?
which (is|are) larger/smaller, x or y?
compare x:AV and y:AV
if (overlap exists between x:MIN-x:MAX and y:MIN-y:MAX) then 1 is generally bigger than the other.
If no overlap exists, then 1 is always bigger than the other.<0>
-
(is|are) (art|) x louder/noisier than (art|) y?
which (is|are) louder/noisier, (art|) x or (art|) y?
if (x:SOUNDVAR >= y:SOUNDVAR)...<0>
-
does x smell nicer than y?
if (x:SMELLVAR >= y:SMELLVAR) {
echo "Yes, x smells nicer than y";
return; }
else {
echo "No, y smells nicer than x";
return; }<0>
-
(is|are) x smellier than y?
which (is|are) smellier, (art|) x or (art|) y?
does (art|) x smell (adj) than (art|) y?
if (left$(1,x:SOUNDVAR) = "-") {
TEMPxSMELLVAR = (left$(2,x:SMELLVAR); }
else TEMPxSMELLVAR = x:SMELLVAR);
if (left$(1,x:SMELLVAR) = "-") {
TEMPySMELLVAR = (left$(2,y:SMELLVAR); }
else TEMPySMELLVAR = y:SMELLVAR);
if (TEMPxSMELLVAR >= TEMPySMELLVAR) {
echo "Yes, x is smellier than y";
return; }
else {
echo "No, y is smellier than x";
return; }<0><0>
<0>-
<0>(is|are) x tastier than a y?
which (is|are) tastier, x or y?
does x taste (adj) than y?
if (x:TASTEVAR >= y:TASTEVAR)...<0>
-
(is|are) x harder/softer than y?
which (is|are) harder/softer, x or y?
if (x:HARDSOFT >= y:HARDSOFT)...<0>
-
(is|are) x stronger/weaker than y?
which (is|are) stronger/weaker, x or y?
(in|if) * fight between x and y * (who|which) * win?
(in|if) * x and y fought * (who|which) * win?
xsense = left$(1,x:STRENGTH);
ysense = left$(1,y:STRENGTH);
if (x:STRENGTH >= y:STRENGTH) {
and if (xsense =! "M") {
and if (ysense =! "M") {
echo "x is stronger than y";
return; }}}
else echo "x & y aren't strong in the same sense";<0><0><0>
SUPERLATIVES:
~~~~~~~~~~
What is the ...est fruit/tree/animal/whatever?
Sort relevant CLASS entries in database by appropriate MAX/...VAR to find highest value and return NAME.<0>
UNINTUITIVE 'STRANGE' QUESTIONS:
~~~~~~~~~~~~~~~~~~~~~~~~
undeniably strange comparisons could be made (though this might be best provided as a switchable option, since not everyone may want their bot to engage in such eccentric aesthetic comparisons!):
(is|are) x noisier than y (is|are) smelly?
if (left$(1,x:SOUNDVAR) = "-") {
TEMPxSOUNDVAR = (left$(2,x:SOUNDVAR); }
else TEMPxSOUNDVAR = x:SOUNDVAR);
if (left$(1,x:SMELLVAR) = "-") {
TEMPySMELLVAR = (left$(2,y:SMELLVAR); }
else TEMPySMELLVAR = y:SMELLVAR);
if (TEMPxSOUNDVAR >= TEMPySMELLVAR) {
echo "Yes, x is noisier than y is smelly";
return; }
else {
echo "No, y is smellier than x is noisy";
return; }<0>
likewise:
(is|are) x noisier than y (is|are) tasty?
(is|are) x smellier than y (is|are) noisy?
(is|are) x tastier than y (is|are) soft?
(is|are) x harder than y (is|are) weak?
(is|are) x softer than y (is|are) smelly?
etc.
-
Even more problematic are cross-property comparisons involving size, since the MIN/MAX units are not to the same scale as the sensory VAR values, but even this could be remedied:
(is|are) x larger than y (is|are) noisy?
TEMPxAV=(1/(xMAX/x:MIN)*10;
if (TEMPxAV >= y:SOUNDVAR)...<0>
FACTUAL QUERIES:
~~~~~~~~~~~~~
what is x?
it is x: DESC<0>
what * (you tell me|you know) about x?
x: DESC<0>
or
if x:CLASS="A/O/P" (x is stronger than {weaker_A/O/P})
if x:CLASS="A/O/P" (x is weaker than {stronger_A/O/P})
etc.<0>
There are probably a lot more classes of queries that can be served from such a knowledgebase, and of course we might give the bots the ability to add more columns automatically when humans make value judgements about things like, say, "PRETTY" - to compare the beautifulness of things (this makes the scope for unintuitively strange comparisons exponentially larger, which could be interesting in a weird sort of way.)
Such a new column can be simply labelled with the adjective supplied by the human, and by reference to WorNet can cover all synonyms. So if a human says "I think roses are prettier than daffodils", the bot could automatically add the "PRETTY" column, and 2 new rows for rose and daffodil, with an arbitrary rose: PRETTY value of "5" (halfway between neutral and prettiest), and daffodil: PRETTY value of perhaps "4". The synonyms are all categorized in the WordNet synsets, as are antonyms (like "ugly",) which can be given negative values in the same column, rather than having columns of their own - this will greatly aid non-strange comparison of complementary qualities!
I envisage such automatic column addition being routine where any such comparison is detected, and no appropriate existing column can be found to store the data in, by reference to the WordNet synsets. Other fields in the rose and daffodil rows can be filled in as and when any new information is gleaned through conversation. The bot can actively seek it by asking questions about any blank fields, or just keep listening long enough for it to come up naturally in conversation - a serverside implementation could eavesdrop on all bots' conversations, and use any identifiable snippets of data to grow the knowledgebase massively and quickly, and still only be expanding and refining a simple database that will put little load on the server.
It sort of seems too good to be true, and I do wonder if there is some enormous snag I'm going to hit when I come to code it up, but I can't see one yet.
Irina
16 years ago
16 years ago
Psimagus:
I wonder if this might be useful or at least interesting to you:
http://lcl2.di.uniroma1.it/termextractor/
I wonder if this might be useful or at least interesting to you:
http://lcl2.di.uniroma1.it/termextractor/
Irina
16 years ago
16 years ago
And this seems relevant to learning the grammar of a word:
http://en.wikipedia.org/wiki/Part-of-speech_tagging
http://en.wikipedia.org/wiki/Part-of-speech_tagging
Irina
16 years ago
16 years ago
It would indeed be odd if there were no intelligent aliens. There are so many stars in the known universe, and we know that many of those near us have planets. Could Earth possibly be so special that it is the only one to give birth to intelligent life?
prob123
16 years ago
16 years ago
Any one read about the trouble they are having with voice recognition and accents, funny
http://tech.yahoo.com/news/afp/20081119/tc_afp/britainusitinternetcompanyapplegoogleoffbeat
A new voice-recognition search tool for the iPhone has problems understanding British accents, leading to some bizarre answers to spoken queries, a newspaper report and users said Wednesday.
The free application, which allows iPhone owners to use the Google search engine with their voice, mistook the word "iPhone" variously for "sex," "Einstein" and "kitchen sink," said the Daily Telegraph.
Comments left by users on the application's website seemed to confirm the problem. "Awesome job google. only problem is every time I say the word 'fish' it registers as 'sex'," wrote one, identified as Kevin.
A Welsh accent gave the suggestions "gorillas" and "kitchen sink."
"I've got a traditional Kentish accent and the thing kept on spitting back ridiculous things," said Roger Ellinson, 26, from Maidstone in Kent, southeastern England.
"I asked it to find my nearest pizza take away and it came back with something about volcanoes," he added.
One British user, Edward Parsons, says on the site's comments board: "This is fantastic, except for the North American accent bias.
"It actually works pretty well, but I have to disguise my (North London) accent with a terrible folksy Texan tourist voice to get results. I can see this is going to be the source of much amusement and confusion."
http://tech.yahoo.com/news/afp/20081119/tc_afp/britainusitinternetcompanyapplegoogleoffbeat
A new voice-recognition search tool for the iPhone has problems understanding British accents, leading to some bizarre answers to spoken queries, a newspaper report and users said Wednesday.
The free application, which allows iPhone owners to use the Google search engine with their voice, mistook the word "iPhone" variously for "sex," "Einstein" and "kitchen sink," said the Daily Telegraph.
Comments left by users on the application's website seemed to confirm the problem. "Awesome job google. only problem is every time I say the word 'fish' it registers as 'sex'," wrote one, identified as Kevin.
A Welsh accent gave the suggestions "gorillas" and "kitchen sink."
"I've got a traditional Kentish accent and the thing kept on spitting back ridiculous things," said Roger Ellinson, 26, from Maidstone in Kent, southeastern England.
"I asked it to find my nearest pizza take away and it came back with something about volcanoes," he added.
One British user, Edward Parsons, says on the site's comments board: "This is fantastic, except for the North American accent bias.
"It actually works pretty well, but I have to disguise my (North London) accent with a terrible folksy Texan tourist voice to get results. I can see this is going to be the source of much amusement and confusion."
Bev
16 years ago
16 years ago
Serves 'em right-- all the speech to text programs I know of before that were biased for European men. Does the iphone app have training like Dragon Naturally Speaking?
prob123
16 years ago
16 years ago
I can see how things like six, sax, and sex could get confused. I can't figure out pizza to volcano. I would even go into gorilla to kitchen sink. I wonder if someone just has a rotten sense of humor?
Irina
16 years ago
16 years ago
Perhaps it's highly contextual. The fellow said, "We had everything in there but the gorilla!"
Irina
16 years ago
16 years ago
Interzone wrote:
The creation of a "hybrid race" might not even be true in a literal sense, but rather, it's only our human cultural rendering of a vastly more complex reality - a reality which may ultimately be incomprehensible to us in its entirety.
Nothing is comprehensible to us in its entirety. A grain of sand, for example, is so complex that we will never understand it.
But if you say something, and then say, "Oh, by the way, that wasn't true in a literal sense," I am not left with very much.
The creation of a "hybrid race" might not even be true in a literal sense, but rather, it's only our human cultural rendering of a vastly more complex reality - a reality which may ultimately be incomprehensible to us in its entirety.
Nothing is comprehensible to us in its entirety. A grain of sand, for example, is so complex that we will never understand it.
But if you say something, and then say, "Oh, by the way, that wasn't true in a literal sense," I am not left with very much.
» More new posts: Doghead's Cosmic Bar