SCI Programming.com
Welcome, Guest. Please login or register.
May 20, 2012, 08:44 PM
Home Gallery Arcade Chat Shop Search Help Login Register
Home Fan Made Games Sierra Games Tools Tutorials Member Sites
Developer Desktop

Home  >  SCI Community  >  SCI Programming  >  SCI Community How To's & Tutorials  >  Topic: Word Suffixes « previous next »
Pages: [1] Print
Author Topic: Word Suffixes  (Read 742 times)
gumby
Sr. Programmer
****

Karma: 1
Offline Offline

Posts: 467



$3770.00 Buckazoids
View Inventory
Give Money



View Profile
« on: Dec 9, 2010, 10:39 AM »

Here is a complete list of word suffixes, with examples (located in the vocab.901) from the template game.  My understanding is that these are used by the parser if the inputted word cannot be matched in the vocab.000.  Then it attempts to find a match here, and if it does the parser will use the suffixed word class while parsing.  This also explains why there are minimal/no pluralized words in the vocab - you should be able to use the root word & the parse will still work properly.

Note that you cannot use suffixed words in developing Said() strings (however, it may minimize the number of strings you need to write), it just helps out with the user input.

Code:
  (if(Said('take/knife'))       // This will respond to both 'take knife' & 'take knives'!
       Print("taken")
   )
   (if(Said('take/knives'))      // Will NOT compile, knives is not in the vocab!
       Print("taken")
   )

The asterisks in the table corresponds to the word stem (you can think of it as a wildcard of sorts).

Suffixed endingSuffixed word classOriginal endingOriginal word classExample
*snoun*nounDogs – dog
*esnoun*nounBottles – bottle
*iesnoun*ynounBodies – body
*mennoun*mannounFiremen – fireman
*vesnoun*fenounKnives – knife
*vesnoun*fnounThieves – thief
*peoplenoun*personnoun
*ingimperative verb/noun/adj*imperative verbKnocking – knock
*ingarticle*article
*ingimperative verb/noun/adj*eimperative verbWaking – wake
*ingarticle*earticle
*nningimperative verb/noun/adj*nimperative verbBeginning – begin
*ppingimperative verb/noun/adj*pimperative verbTripping – trip
*mmingimperative verb/noun/adj*mimperative verbProgramming – program
*ttingimperative verb/noun/adj*timperative verbGetting – get
*rringimperative verb/noun/adj*rimperative verbWhirring – whir
*ggingimperative verb/noun/adj*gimperative verbBugging – bug
*ednoun/adj*imperative verbKilled – kill
*ednoun/adj*eimperative verbPraised – praise
*nnednoun/adj*nimperative verbScanned – scan
*ppednoun/adj*pimperative verbWhipped – whip
*mmednoun/adj*mimperative verbHemmed – hem
*ttednoun/adj*timperative verbInputted – input
*rrednoun/adj*rimperative verb
*ggednoun/adj*gimperative verbHugged – hug
*iednoun/adj*yimperative verbEmpied – empty
*ernoun/adj*imperative verb/adjAdjuster – adjust
*ernoun/adj*eimperative verb/adjTickler – tickle
*nnernoun/adj*nimperative verb/adjThinner - thin
*ppernoun/adj*pimperative verb/adjClapper – clap
*mmernoun/adj*mimperative verb/adjSlimmer – slim
*tternoun/adj*timperative verb/adjShutter – shut
*rrernoun/adj*rimperative verb/adj
*ggernoun/adj*gimperative verb/adjFlagger – flag
*iernoun/adj*yimperative verb/adjAngrier – angry
*estadjective*adjectiveSharpest – sharp
*estadjective*eadjective
*nnestadjective*nadjectiveThinnest – thin
*ppestadjective*padjective
*mmestadjective*madjectiveTrimmest - trim
*ttestadjective*tadjectiveHottest – hot
*rrestadjective*radjective
*ggestadjective*gadjectiveBiggest – big
*iestadjective*yadjectiveShiniest – shiny
*lyadjective*adjective
*yadjective*nounWatery – water
*ishadjective*adjectiveYellowish – yellow
Logged

50206_rope_firstplace.png
MusicallyInspired
MT Veteran
*****

Karma: 0
Offline Offline

Gender: Male
Posts: 459



-Inspired by Mike Oldfield

$3437.00 Buckazoids
View Inventory
Give Money



brandonblumemusic
View Profile WWW
« Reply #1 on: Dec 9, 2010, 04:25 PM »

Fascinating!
Logged

BrandonBlume.com - Freelance Music Services

89641_goldpropcomp.gif
Collector
Sr. Programmer
****

Karma: 3
Offline Offline

Posts: 349



$1818.00 Buckazoids
View Inventory
Give Money



View Profile WWW
« Reply #2 on: Dec 9, 2010, 04:50 PM »

How about possessives, i.e. "troll's knife"
Logged
gumby
Sr. Programmer
****

Karma: 1
Offline Offline

Posts: 467



$3770.00 Buckazoids
View Inventory
Give Money



View Profile
« Reply #3 on: Dec 9, 2010, 07:38 PM »

How about possessives, i.e. "troll's knife"

Yep, sure does:

Code:
  (if(Said('take/sword<troll'))       // Responds to: 'take troll sword' & 'take troll's sword'
       Print("taken")
   )

I'm assuming the parser is discarding/ignoring the apostrophe & utilizing the first rule in the suffix table (change *s to *), and the result is as if 'take troll sword' was inputted.

Additionally, it will respond to 'take trolls sword', 'take trolles sword', and 'take trolly sword'.  Furthermore, if we make the word troll also an adjective, then 'take trollish sword' & 'take trollest sword' work as well.
Logged

50206_rope_firstplace.png
Collector
Sr. Programmer
****

Karma: 3
Offline Offline

Posts: 349



$1818.00 Buckazoids
View Inventory
Give Money



View Profile WWW
« Reply #4 on: Dec 9, 2010, 11:17 PM »

I can see a need to be able to distinguish between the possessive "troll's" and the plural "trolls".
Logged
gumby
Sr. Programmer
****

Karma: 1
Offline Offline

Posts: 467



$3770.00 Buckazoids
View Inventory
Give Money



View Profile
« Reply #5 on: Dec 10, 2010, 12:26 PM »

I can see a need to be able to distinguish between the possessive "troll's" and the plural "trolls".
You cannot put apostrophes in a vocab word, either.  The only solution to this (that I can see) would be to pre-process the input & convert the word "troll's" to some other vocab word like "trollpossessive" and add that word in the vocab.

However, I'm having a hard time coming up with a scenario that would be an issue for the parser/game-developer.  What user input (or scenario) did you have in mind?  It could be that the issue can be resolved using some other technique.
Logged

50206_rope_firstplace.png
Cloudee1
Just Another User
*

Karma: 2
Offline Offline

Posts: 576



Peekaboo!

$1819.00 Buckazoids
View Inventory
Give Money

Burger Time

coyaba ?id=1000008636
View Profile WWW
« Reply #6 on: Dec 10, 2010, 12:38 PM »

Man Gumby, your are totally kicking ass with this parser stuff.  Cool
Logged

Chillin like a Villian

41134_goldld0.gif 49626_silverpropcomp.gif
Collector
Sr. Programmer
****

Karma: 3
Offline Offline

Posts: 349



$1818.00 Buckazoids
View Inventory
Give Money



View Profile WWW
« Reply #7 on: Dec 10, 2010, 12:57 PM »

If the apostrophe is simply ignored could a game distinguish "kill troll's dog" from "kill trolls dog". Would the game be able to assume possessive by the inclusion of "dog" or would it ignore the trailing dog? If the dog were of no consequence to the game, it probably would not be in the vocab, but if it is...? However, the "trollpossessive" trick might be enough for most situations, if needed.
Logged
gumby
Sr. Programmer
****

Karma: 1
Offline Offline

Posts: 467



$3770.00 Buckazoids
View Inventory
Give Money



View Profile
« Reply #8 on: Dec 10, 2010, 03:24 PM »

Man Gumby, your are totally kicking ass with this parser stuff.  Cool
I'm not going to give up until it's well understood by everyone & documented...

If the apostrophe is simply ignored could a game distinguish "kill troll's dog" from "kill trolls dog". Would the game be able to assume possessive by the inclusion of "dog" or would it ignore the trailing dog? If the dog were of no consequence to the game, it probably would not be in the vocab, but if it is...? However, the "trollpossessive" trick might be enough for most situations, if needed.

Either input would result in the same action (killing the troll's dog).  When you chain nouns together like that, the 'extra' nouns behave like adjectives (in this case 'troll'), and the dog would be the subject.  Here is what the code would look like:
Code:
 (if(Said('kill/dog<troll')         // Will match 'kill trolls dog', 'kill troll's dog'
      Print("The dog is dead")
  )

  // could also do this...
  (if(Said('kill/dog[<troll]')       // Will match same inputs as above & simply 'kill dog'
      Print("The dog is dead")
  )


EDIT:  Oh, and the parser won't ignore an included word (except articles - they can affect the parse, but are not necessarily represented in the said string).  Every word must be represented in the said string or it will not match the user input - at least, as far as can tell.
Logged

50206_rope_firstplace.png
Pages: [1] Print 
Home  >  SCI Community  >  SCI Programming  >  SCI Community How To's & Tutorials  >  Topic: Word Suffixes « previous next »
Jump to:  
Page created in 0.261 seconds with 22 queries.
The SCI Programming Community
Copyright © 2007 - 2012, All Rights Reserved.
Forums Powered by SMF 1.1.16 | SMF © 2011, Simple Machines