[a3Lite] unusual problem: Dealing with *too* good parsing

first and foremost, my compliments to Eric for the excellent a3Lite parser.

But I have a situation where said parser is too good, and I’ll describe it:

I have three near-identical (singular) readable items, plus a dummy deco, whose role is in the comment in the snippets of vocab below:

// this is for suggesting to X invidually the parchments, and turning on the
// lightbulb.
Decoration 'three parchments; framed three; trio parchments; them'
[...]
Lparch: Fixture 'left parchment; framed left; parchment; it'
[...]
Cparch: Fixture 
'central parchment; framed central centre middle; parchment; it'
[...]
Rparch: Fixture 'right parchment; framed right; parchment; it'

lightbulb aside (it’s a joking reference to the hint given), the adv3 rendition works as designed, X PARCHMENTS gives the suggestion and hint, and X and READ individually the parchments works as expected.

with a3Lite, its parser works too well, correctly interpreting X parchments as player’s request to examine/read all three parchments and duly outputs all four
description, and worst, ALL three readDesc (whose are three long wall of texts with some differences between them, and these differences matters, whose is why I suggest to read individually in the description of X parchments, allowing player to note the differences in the parchment’s long text)

the last week was spent around this issue, and I scoured a3Lite’s library reference manual, to no avail.

so, I need for this issue, downgrading in this specific case the unique excellence of parser, whose correctly form the plural of parchment and apply X PARCHMENTS not only to the dummy object, but also to the three singular parchments, with disastrous results in the case of READ PARCHMENTS (I have already received strong critique from testers on long wall of text… )
In other words, I’m at a loss in dealing with a feature (in an spectacular twist of the old saying about bugs and features…) whose works too well is, paraphrasing Clarke, indistinguishable from a bug…

Suggestions ?

TIA and
Best regards from Italy,
dott. Piergiorgio.

3 Likes

My new favorite quote.

If you look in the documentation for Things, and scroll down to the section labeled filterResolvedList(), you might find a solution, if I’m understanding your Clarketech Bug lol.

If you scroll further, you will also find a section labeled Phrase Matching, which might be useful.

Both of these, in some combination, tend to handle every case I’ve encountered where the parser is being incredibly intelligent, while I would rather obscure some things for the player for various reasons.

EDIT: After examining your code further, I believe phrase matching will fix your problem. Phrase matching allows you to create strict vocab combinations for an object, in cases where the common vocab might match too easily.

3 Likes

Thanks for pointing this out! I’d overlooked this before.

3 Likes

x parchments

the three parchments hanging on the wall have an formal and official aura; you should examine, or attempt to read, them individually, left, central (or middle) and right, the order perhaps doesn’t matter, but the left one is written in an angular scripting , that is, the daemonic script; indeed you notice Atuzejiki’s name in the writing.
The proverbial lightbulb above the head turns on again:
The Rosetta Stone… these three parchments seems to have the same content, and currently, thanks to those illustrated booklets, I understand much better the daemonic scripting, so after reading the text in demonic scripting in the left parchment, then the other two in the Lingua Franca scripting, I can learn more of this elaborate lingua franca scripting, perhaps enough for reading the rest of the inscription carved on my bracelet…

read parchments

The three parchments are not important.

THANKS !!! Now the second-to-last oustanding subtle incompatibility between adv3 and a3Lite detected is disposed !!
(the last is evident from the transcript above: being a deco, reading parchments (a sensible player’s input) the default “not important” became a very misleading answer; but is easy to solve, I hope: in a3Lite decos can be readable, copying the a readDesc should be enough)

for the record, simply adding

matchPhrases = ['parchments']

was enough.

Thanks again and
Best regards from Italy,
dott. Piergiorgio.

2 Likes

Wouldn’t a CollectiveGroup handle this type of situation?

1 Like