WonderCat: An Alternative to Recommendation Algorithms

WonderCat is a relational database of human experiences with narrative. The project is designed as an experimental alternative to reading lists (in courses) and recommendation algorithms (in the real world). It is intended primarily as a discovery tool, helping users find creative works that have been valuable to real readers. It does not deliver personalized recommendations.

The tool is built around three taxonomies: Experiences, Narrative Technologies, and Impacts. The terms in these taxonomies and their definitions are published as glossaries, and we have designed a review process for glossary terms that allows any user of WonderCat to contribute to our ever-expanding understanding of narrative in the world.

The site is built with WordPress, which has been customized with ACF. Visualizations of this data are built with the R package Shiny, which pulls in Wikidata to provide dynamic visualizations of the experiences in our database.

Our presentation will focus on two goals we tackled in Summer 2025, presenting our solutions (so far) and inviting ideas from the Reclaim community. Our first goal was to make Shiny WonderCat load more quickly (we’ll share our experiments with cron jobs) and our second was to develop an editorial workflow that encourages the general public to engage with our editorial board (we’ll share our experiments with Gravity Flow).

We hope participants will leave the session inspired to develop their own alternatives to recommendation algorithms.

Session Author(s):

misbell

co-presenter: Bill Quinn, Marist University

Session Resources:

Comments Archive

reclaimhosting: Welcome to the Chat
taylorjadin: So cool to see this project take shape! I love when folks can build things to fit THEIR needs :)
maren: Hi everyone! Say hi to Mary and Bill as we kick off this session
Stephen Downes: Hiya all...
twwoodward: Hey!
Pilot: Hello!
pete: hi everyone :)
Pilot: This is such a cool concept
Jim Groom: This is fun, I walk into a discussion about novels!
Tierney Steelberg: Yes, what an awesome concept! So excited to learn more about your work.
Jim Groom: Also, interesting, based on the description, that it is the second time ACH for WP comes up. I do dig the idea of integrating Shiny and WP
twwoodward: @mary has has learned a crazy amount of tech from WP to HTML/CSS with bravery and positivity
Ed Beck: I'm increasingly getting requests to help integrate dynamic data and dashboards into WordPress. Like this Soil Spectrometry interactive built in R/Shiny and then embedded into WordPress. https://soil-ftir-sim.openlab.oneonta.edu/interactive-soil-ftir-simulator/
Jim Groom: Angus Fletcher of Fairy Queen literary critic fame? He was at the CUNY Grad Center when I started there, and he was a GOAT
Stephen Downes: See, this is why you build your own spreadsheet (or database) even if it has already been done
Jim Groom: Sorry, in the intro a transposed the OpenLab presentation with this one, but the fact you all are presenting again is music to my ears
Pilot: Yeah, this seems like a great way to get students participating and thinking specifically about what they're parsing from each book
Stephen Downes: Looking for a place to try this, can't find one
Stephen Downes: OK, found this: https://env-1120817.us.reclaim.cloud/shiny/
maren: Here are the links from Mary and Bill if you'd like to take a closer look at WonderCat: https://env-1120817.us.reclaim.cloud/
maren: Shiny WonderCat: https://readingexperiences.us.reclaim.cloud/sample-apps/00_wondercat/
twwoodward: I need to learn some more about Shiny vs the javascript dataviz options. The hosting overhead of Shiny has kept me from messing with it much. Maybe it's mainly what you're used to/already using.
Jim Groom: @Tom You can run Shiny pretty easily on Reclaim Cloud, frankly.
taylorjadin: @twwoodward There is a simple Shiny Server installer in Reclaim Cloud if you want to give it a try. There are fancy/expensive shiny hosting solutions that are multi-tenant and enterprisy out there, but ours just runs the basic server in Docker which keeps it pretty simple and reliable
twwoodward: @jim no need to be frank, I just like as little hassle as possible and we only have ye old DoOO
twwoodward: @taylorjadin - Thanks. I still haven't done much in reclaim cloud on my own stuff . . . and probably need to do that at some point.
taylorjadin: happy to help or get you started with it, just let me know
taylorjadin: on the JSON stuff: its really a matter of whats in there. If there is private stuff that you definitely don't want public, then you would want to seperate that out if the data is all the same stuff that you would use in the Shiny application then that probably isn't necessary
maren: Thanks, Taylor!
Mark: @Stephen Thanks for the link.
twwoodward: Free the JSON!
Mark: @Maren Thanks for the link.
twwoodward: Caching javascript is something that I know and is done pretty regularly on the web. I don't know how well Shiny does caching etc.
taylorjadin: It does look like the big visualizations load quickly and are light on the server, but are heavy on the browser side, based on my quick look at it. This is tricky and falls outside of where I'm most familiar, but that means there may be some optimization that is possible to do to make the Shiny app perform better in a user's browser. Its important to keep in mind that while you use R to make your shiny app, the code IT makes and runs int he users browser (thats slow right now) is JavaScript
Pilot: I was going to ask, how do you account for users phrasing the same/similar things differently?
twwoodward: https://wordpress.org/plugins/wp-crontrol/ is worth looking at if you want to do updates via cron in WP Batching them, writing a function to see last updated in WP vs on the wiki . . . etc. et.c
Pilot: This was amazing, thank you!!