IFDB: Help doing massive specific searches with "-+" "system/language/format"

So I’ve been browsing IFDB specifically for games that play in Fabularium and which are not HTML. So Tads, ZCode, Glulx, Hugo, etc etc etc.

I was wondering whether someone could help me fine-tune my search engine skills here. You see, by excessive use of “-system” and “-language” I was able to exclude from my search games which a) I’m not interested in because they don’t play in Fabularium, and b) I can’t understand because I don’t speak the language.

And for the most part it worked wonders. Except for games which have multiple systems and/or formats. To put it short: this method of searching by exclusion will also exclude things I don’t want excluded. Examples:

“Spider and Web” -language:ru –> because there is a russian translation of “Spider and Web” available, this search excludes the entry “Spider and Web” entirely.

“werner’s quest” -system:The Quill –> It’s a Quill series, so it’s not surprising at first glance that this returns nothing, but its system formats are defined as “The Quill, Inform 6, ZIL”, because it’s been ported to ZIL. Therefore it IS something I’m interested in.

The number of languages and systems I’m excluding with my personal search code is massive, and though mostly it works, I’m concerned about cases where things are slipping through the cracks (initially, I was getting excluded from Infocom titles, even!). To use the examples above, I don’t want games in russian (I don’t know the language), but I do want to know about games that are also in other languages. I don’t want games made in The Quill because for the vast majority that’s going to mean Spectrum and Commodore games which I can’t play in Fabularium, but I DO want to know about Quilled games which have been ported, like Werner’s Quest.

I’m having this problem because I’m doing this search by method of exclusion: exclude the ones I don’t want. The problem with the alternative is, if I do a search by telling IFDB which results I DO want, it’s not parsing my search in a way that’s useful to me.

An example is worth a thousand words. If I search for

system:ZIL system:The Quill

…my initial expectation would be that IFDB lists games that have been authored with ZIL, and also games which have been authored with Quill. A significant list, I’d imagine.

That’s not what happens. What happens is that IFDB, and this surprised me but I see the logic, lists games which have been authored with ZIL and Quill, which currently means only the 5 Werner’s Quest entries.

Currently, the only sure method I can think of, after previously running my “exclusion-based search”, is to individually search for every single system and every single format I’m interested in. That’s bordering on lunacy, so I’m not seriously considering it.

Is there a way I can achieve what I want in IFDB (i.e., this problem exists because I’m not utilising the site properly / to its full potential with its existing tools)? Or should I contact them directly (i.e., this problem is an opportunity to improve the way that IFDB searches work)?

If curious, here is the link to my current search expression, which I check occasionally for new releases:

https://ifdb.org/search?sortby=lnew&searchfor=-language%3Ako+-system%3A11ty+-system%3ATwee+-system%3ARamus+-system%3AMassively+-system%3ANightswim+-system%3ALibGDX+-system%3APrint+-system%3AKni+-system%3AAmazon+Alexa+-system%3AGlyffe+-system%3Ayoutube+-system%3ALantern+-system%3AStoryboard+-system%3ATell4Play+-system%3AMôsi+-system%3ASpinoff+-system%3APAW+-system%3ABASIC+-system%3AThe+Quill+-system%3ACAT+-language%3Ade+-system%3ADonjon+-system%3AEamon+-system%3ADISAC+-system%3AAdventure+Book+-system%3AFigment+-system%3AAAS+-system%3AGAC+-system%3ADAAD+-system%3AVisual+SINTAC+-system%3AC+-system%3AIAGE+-system%3AAssembly+language+-system%3AJava+-language%3Asv+-system%3AThe+Adventure+Generator+-system%3AQuest+-system%3AGAGS+-system%3AAGE+-system%3AAdventure+Development+System+-language%3Aru+-system%3AAdventure+Builder+System+-system%3AREXX-Adventure+-system%3AAMOS+-system%3ALisp+-system%3ADelphi+-system%3ANMP+-system%3AFlash+-language%3Asl+-system%3Ablink!+-system%3AUndum+-system%3ATAPLO+-language%3Ahu+-system%3ATwine+1+-system%3ATwine+-system%3AThe+Biro+-system%3AKreuAVT+-language%3Aeo+-system%3AAmulet+-system%3AADVENT+-system%3ABTZ+-system%3ANone+-system%3ADendry+-system%3Ainklewriter+-system%3AVorple+-system%3ARen’Py+-language%3Acs+-system%3AASG+-system%3ATRS-80+-system%3AZX-81+-system%3AAtari+-system%3ADragon+-system%3ASquiffy+-system%3AUnity+-system%3ADedalus+-system%3AAXMA+Story+Maker+-language%3Anl+-system%3ASeltani+-system%3APython+-system%3ATexture+-system%3AiOS+-system%3AGoogle+Forms+-system%3ARuby+-system%3AWindrift+-system%3ABlotter+-language%3Ada+-system%3AInk+-system%3AQiaobooks+-system%3AFloo+-system%3AEgamebook+-system%3AINSTEAD+-system%3AHaskell+-system%3AElm+-system%3ASAL+-system%3AAXMA+6+-system%3AGodot+-system%3Abash+-system%3ARPG+Maker+2000+-system%3AAWS+-system%3AQuandary+-system%3AWorld+Builder+-system%3AXLR8R+-system%3ARPG+Maker+-system%3AAppGameKit+-system%3Astrand+-system%3AStoryNexus+-system%3Ap5.js+-language%3Azh+-system%3AFortran+-system%3ATAB+-system%3AHyperfable+-system%3AWander+-system%3APerplexity+-system%3AVideotome%3AADV+-system%3ABitsy+-system%3AMoiki+-system%3ASuper+Videotome+-system%3AAI+-system%3APHP+-system%3AFRISE+-system%3Afi.js+-system%3AVideotome+-system%3AFolia+-system%3AWeb-based+-system%3ANarrat+-system%3Astorytllr64+-system%3AGB+Studio+-system%3ABipsi+-system%3AKliffy+-system%3AGoogle+Sheets+-system%3Adomino2+-system%3AHTML+-system%3AGoogle+My+Maps+-system%3AGoogle+Slides+-system%3AMovisoft+-system%3ADonjon.fi+-system%3AUnearthed+Stories+-system%3ATyranoBuilder+-system%3ALÖVE+-system%3AArduboy+-system%3APhaser+-system%3AJupiter+-system%3ADonjon+FI+-language%3Atok+-system%3APlotie+-system%3ARenJS+-system%3ATaleweaver%2B%2B+-system%3AWhimsy+-system%3ALADS+-system%3Answengine+-language%3Ajbo+-system%3AWindowpane+-system%3AKinexus+-system%3AStoryHarp+-system%3AAGIFG+-system%3AOPS5+-system%3AExplore+Engine+-system%3AAndroid+-system%3AVersu+-system%3AWindows+-language%3Ano+-system%3Auquiz+-system%3AGDevelop+-system%3A.ini+RPG+Engine+-system%3AGameMaker+-system%3AWikitext+-system%3ATyrannoBuilder+-system%3AMiro+-system%3ANotepad+-system%3AGameBook+Authoring+Tool+-system%3Amsp+-system%3ARexx+-system%3AEasyRPG+-system%3Aimgm+-system%3Aiffinity+-system%3ATape+Window+-system%3AHerobook+-system%3ATextallion+-system%3AUnreal+Engine+-language%3Aja+-system%3APixiJS+-system%3AVidetome+Super

EDIT - I guess if my search terms could mean something like “system:ZIL OR system:The Quill”, maybe it would give me the results I am looking for? “AND” seems to be ambiguous. I expect to see results for one AND results for the other; but instead it gives me results which include both one and the other. If it were “OR" instead, I think it’d work. Can’t find an OR operator that works there, though.

EDIT - Curious note. The quote marks that I type into this post and then copy-paste into IFDB are not the same as the quote marks I type into IFDB. If I copy-paste “Spider and Web” -language:ru from this post, I get 7548 hit (none of which, I think but haven’t checked, are “Spider and Web”). But if I actually type quote marks from my keyboard, the same search entry only finds “Chick and Egg”, so it opens that automatically. Maybe have to do with my keyboard language settings, I guess. Is this worth reporting?

3 Likes

IFDB seems to always treat search terms as a conjunction (it will prefer to return results that match all specifiers). There seems to be no straightforward way to search for games matching at least one specifier. (I guess you could download a database dump and search that directly, but that’s not exactly convenient.)

Also, the system field doesn’t actually take multiple values. The Werner’s Quest game you mention has a value of The Quill, ZIL (one string that happens to contain a comma), but since IFDB seems to use string matching on those fields, it still finds these when searching for system:ZIL or system:The Quill individually. (The apparent intent of the original IFDB designer was that ports should get their own page and be linked via the “Port of” relation, but the established practice seems to be to just add ports and translations to the original game’s page.)

I suspect this is down to the forum transforming quotation marks into curly quotes upon posting and IFDB not recognizing them as quotation marks.

1 Like

I see! Thank you, then I will contact them directly using the appropriate e-mail. I expect this is something worth addressing; I don’t think the usage I’m trying to get out of IFDB is fringe. :smiley:

EDIT -

Currently, the only sure method I can think of, after previously running my “exclusion-based search”, is to individually search for every single system and every single format I’m interested in. That’s bordering on lunacy, so I’m not seriously considering it.

…well, I’m doing it now, so that’s that. :stuck_out_tongue:

We recently added a games database to IFWiki and you can achieve that there, albeit with a more limited set of games: https://www.ifwiki.org/Special:Drilldown/Games?Authoring_system[0]=The+Quill&Authoring_system[1]=ZIL

2 Likes

IFDB does have an API and quarterly (up to Dec 2025) archives you could use to make your own search wrapper: IFDB APIs

1 Like