Hello my fellow KNIMErs,
I know that this forum is about to helpsolving problems with KNIME, so if the mods think, this does not belong here, please let me know.
I just recently learned so lot by combining KNIME with one of my hobbies, that I though I share this with you.
Can you imagine a fantastic world with wizards, dwarves, elves and humans working on heroic quests?
I can and I want to share with you how KNIME has helped me to be more creative.
I think this is a somewhat unusual use case of KNIME and I am writing this post to motivate you to share YOUR craziest workflows (or ideas about crazy workflows) as a response to this post.
Warning: This is a lengthy post.
I will explain some of the background for those unfamilier with it but I promise - this is connected (heavily) with the use of KNIME
Alright then, my fellow KNIMErs, take a seat, have a sip from your beer… The fire in the fireplace is burning? Are you comfortable? Good… Let me start…
I have a hobby, that some may consider “nerdy” and this is role playing games (or rpg for short).
What is a role playing game (rpg)?
In essence, rpgs work like an interactive novel where you take over the role of one of the main characters. You interact with the story and your actions have influence on how the story goes / ends.
For example: will you kill the villain to free the princess or do you bribe him with the jewels you found along the way?
Just imagine being Harry Potter in the series of the same name, or Frodo in the Lord of the Rings. Or Luke in Star Wars… or … ah, I think you get the point
The interesting part - and a core mechanic of every rpg - is rolling dice. You have certain stats that determine your capabilities. The dice you roll range from 4 sided dice (a tetrahedron - I told you, this is nerd stuff, didn’t I? ) up to a 20 sided dice (an icosahedron, see above).
You have some indicators, that tell you how strong you are (strength), how clever (intelligence), how much damage you can take (constitution) etc.
When it comes to determining if you can do a thing (or not) you roll a die against these stats.
You may have heard Dungeons & Dragons (the most popular rpg with a heavy influence on today’s pop culture). Or Critical Role, a webstream that just recently landed a major deal with Amazon who will now show it as a series in Prime.
This movement started 40 yrs ago in the world of fantasy, but you can now play anything you can imagine, no matter if science fiction, fantasy, horror, vampire stories and even surviving adventures as a mouse (yep, you read that right …)
But I digress… (forgive me…)
The fun of rpg is sitting together with your friends around a kitchen table, one player is the so called game master (gm) or dungeon master (dm). He tells the story that the other players interact with. What makes this so interesting (attn: heavily opinionated) is that this type of game in general is very cooperative. You play with each other instead of against each other.
Besides the rulebooks that the different games systems (like the aforementioned Dungeons & Dragons, or d&d for short) offer, there is an uncountable amount of source books that describe certain techniques, regions, ideas and so on. E. g. how to build a ship (and operate it). Really everything you can imagine.
This is important because now we’re getting closer to the core of this post and what it all has to do with KNIME.
These sourcebooks usually come with a general concept, e.g. in the case I want to show here - how to build a settlement from scratch. And they come with a huge amount of what is called a rollable table
Here’s an example of such a table (taken from a Discord server in which I’m a member)
How do you do it?
You take your 20 sided die (d20 for short), roll it and look for that number in the table. To the right you then see what this means.
So imagine, we had rolled a 9 on the table above, this would then read
Tale of a missing bard, involved in an affair
This should spark some ideas and helps to determine where the story goes from here.
The thing is, that these source books with their tables are HUGE. E. g. The source book I reference in this example is about building a settlement. They offer 6 different types of fantasy settlments (from trading post to fortresses, villages and so on) and this book has nearly 500 pages and more than 1,000 rollable tables.
And to make things even more difficult, these tables are often times interconnected, meaning, if you roll for the size of a settlement, this will also have an influence on its crime rate (the bigger the more crime).
So what has this all to do with KNIME?
Glad you asked
I just recently wanted to create a small trading post settlement and it took me nearly 30 minutes to go through the 27 tables related to just that. In addition I also wanted to write it down.
I thought about how to do it better, so I have more time for playing and the … cough, cough … creative writing process
You may have guessed it: I had the crazy idea of doing it with KNIME.
And you know what?
It works (I mean,honestly, is there anything you cannot do with KNIME except for making a decent coffee - and I’m not even sure about this … )
So after this ultra long introduction here’s what I did in KNIME
- It was very important for me to make the whole thing modular and reusable. Looking at the huge amount of tables I needed to create, I didn’t want to do it from scratch over and over again, hence I developed some core components. You can see my standard dice rolling component below.
Inside this you see the Dice Sim component.
The Random Numbers Generator node is the core of it all.
- In this specific example which “only” creates a trading post, I modularized each table and and connected it with the Date to Report node, which makes it available in the BIRT reporting extension of KNIME, because in the end, I wanted to have a pdf file, I can print out, hand out to whomever I like or forward by email.
What did I learn?
There are a few key discoveries, that made me adore KNIME even more than before, so please allow me to share some of them with you:
- Node Monitor: I started to use the node monitor extensively. Instead of CTRL+doubleclicking the components each and every time, I used this neat feature to show my the resulting tables / variables
- Visibility settings in BIRT: I just searched the forums a bit and found an amazing post by @rs where she explained in just a few words, how to approach this, if you don’t want to show something (this is the post). I needed this because I have one table in my settlement creator that asks: Are there any places of worship in the settlement? If it was a “no” I wanted to show a statement (no places of worship) in the report, if yes, then I didn’t want to show it. Rosaria’s approach worked out perfectly.
- Workflow Branching: In some places I needed to branch inside a component, e. g. follow the upper workflow path or the lower. I learned a lot about branching and using the Case Switch node here.
Now it’s YOUR turn!
I would love to see more crazy stuff from other KNIMErs (this is so inspiring!!! )
- What ideas do you have you think you CAN or CANNOT solve with KNIME? Challenge the tool and the community and see what amazing stuff is possible
- What have you already created? Would you mind sharing some of your crazy works here?
I am really curious… Hit reply and share it with us!
ps: here’s the settlement I created with the workflow just before I hit Create Topic in this post.
The trading post called Armskirk
armskirk.docx (30.2 KB)