I have wanted to build a network of comic book heroes, villains and their attributes for a while now. Viewing the powers and weaknesses across publishers, seeing how common certain attributes are (so far wealth isn’t nearly as common as flight or accelerated healing) was the ideal way for me to learn how to create a complex network using the Exaptive Studio platform with a diverse team.
There are thousands of comic book characters and getting each one in isn’t a priority, but I did want to hit the high points of the bigger publishers. Batman, Superman, X-men, Avengers… eventually you will find them all in here with information pulled from the publishers websites.
Where to Start
The best place to start is understanding what you want from the data available. So I used the City Planner tool to build a schema (basically a mental model) based on what I wanted out of this project.
Hero City Schema. Each Element Type (node) is connected by one (or more) edges to another Element Type.
At its heart this city will be about characters and the various connections between them. Some of those connections are more complex than others. A character's team affiliation or comic universe (publisher) is a lot more cut and dried than a weapon or power. For example, one hero's power can be another hero's weakness. When I created the schema above (weapon, alignment, character), one feature of the platform was the automatic generation of a form that will be used to manually input data. Using the planner tool to configure the properties and connections (and therefore the forms), I made multiple types of connections between characters and their powers, weapons, and weaknesses to capture these more complex relationships.
Schema to capture when a weapon is a weakness
Schema to capture when a weapon is used as a weapon
This schema allowed for things like fire, cold or kryptonite to be listed as weapons or powers of one character but also as a weakness of another. Without this flexibility, all of the data entered for each character would create separate nodes (aka data points) for each item and become a mess of duplicates that connect only to a single character.
Weakness as a weapon
A similar complexity that is also teased out by the software was revealed when I was adding characters and their enemies. I added a character connected to their enemy, which would have created an “enemy” with no other information. Taking a step back, I realized a character is a character. Good, evil, hero, or nemesis didn’t matter in this case. So I created a distinct connection in which a Character could be a Nemesis of another Character. Logically a team could also have these relationships, so additional connections were made to the Team Element Type as well so a team could be a characters nemesis and vice versa. This kind of versatility is important as some connections are quite complex, like Alignment. Over time a Character may be Good, then Evil, and back to Good again. Many teams have roles that change over time like this.
Nemesis is a character
After we have all of the connections built we can add them to the character element as fields that will be added to the data input form. It’s important to note that the schema can be adjusted or changed at any time. It’s never set in stone. I have added or changed several elements and connections during this project.
Fields for the character element
The Data
Once your schema is set up and working the way you want it's time to add some data. Using the City Curator we can use the forms created by the City Planner.
Create a character form
Behind the form modal you can see the characters I have already added and their information. Double clicking on any character lets you edit their information, which has been nice as I learn that some characters have far more abilities than I would have imagined. Added or removed attributes automatically update the network with the new information and any relevant connections.
The Network
The end result is a network of characters (33 at the time of this writing) and their connections. Using the style tool I have made some nodes larger like comic universe and team to make it a bit easier to parse at first glance.
City Network View
I will continue to add to this in the coming weeks but you are free to see the end result in a public view of this particular network here:
https://hero.cognitive.city/cognitive/sharedView/Hero-Network
Comments