Civilization is a forum software meant to host a coordinating hub for the FortForecast project.
Contents
Rationale
What is the project?
Civilization is meant to be a framework for building sane online organizations. Common needs of organizations include:
- Mission - A clear ultimate goal upon which all other goals and objectives rest.
- Memory - Institutional memory relies on thorough record keeping and making activity legible. This means having high quality indexing of documents, powerful search to go with the index, and document storage. Indexing is paramount, a lot of what separates the university from Reddit is that the former puts incredible work into indexing and quality rather than ephemera (archived).
- Orientation - An organization must be able to parse its environment to identify what kind of action might further its mission. In an online context this would include a discussion forum, perhaps group prediction software.
- Delegation - The ability to direct people towards the completion of goals. This includes incentives, ways of figuring out who will do what, and deciding what action to take.
In the Civilization taxonomy each 'thread' should produce an artifact of some kind. An artifact is a human-readable work produced from a conversation, collaborative editing process, collection of sources, etc. Current forum software produces poor artifacts, a long discussion becomes a 50 page monstrosity that must be read to participate. The collective memory of a web forum is however many pages of posts an average reasonable member would be willing to read to participate in a discussion. The good news is that this systemic problem is largely fixable, since the information:knowledge ratio of forum thread pages is so low. A good summary would be enough to compress the vast majority of threads, so a lot of Civilization features are based around making such summaries happen naturally. One corollary is that the best interface for discussion might not be the best interface for an otherwise nonparticipating observer.
Why not use existing software?
Probably the first question any reasonable person would have is why it's necessary to write forum software for this. “Can't we just use Facebook/Reddit/Tumblr?” The answer is no—for several reasons.
Mission Conflicts
Large social networks like Tumblr are not designed to facilitate effective groups; they're just not. Big websites like that have a mission of their own: to be big and to extract as much value from their big number of users as possible. This becomes a dealbreaker when you consider that the core purpose of these networks is to waste as much of your time as possible. They are actively designed to be addictive, to keep people using the network rather than other things in the world. It's not that it's impossible to get an effective group going on these platforms (though this may very well be the case), it's that starting an already difficult project with tools that are actively working against your core mission is stupid.
Heavy modification would have to happen in PHP
“Fair enough, but why do you need to write new forum software, isn’t there enough forum software in the world to choose from?” You would think, but no. After drawing up a list of desired features it became abundantly clear that to make this work any existing software would have to be heavily modified. Worse, pretty much all existing forum software is written in PHP and the stuff that isn't is so obscure that taking on the support burden of writing your own would be about equivalent. The only developer who is empirically willing to work on the project, John David Pressman, doesn't know PHP and has heard enough terrible things about it that he'd be very reluctant to build complex features with it. Plus, it will probably be easier to attract developers if the language they're being asked to write in is relatively nice. Thus Civilization is built on top of Django.
Bending existing data models
Even if one were to use an open source forum written in PHP, it is quite likely that the forum was not built for extensibility in the data realm. FortForecast would like its forum to be able to host things like predictions, do federation, and other features which might be hard to put in as add-ons to the core database models. Django provides an ORM which is easier to edit and extend code wise than a traditional PHP bulletin board.
Features
Indexing
(Also see: Indexing)
One of the core goals of Civilization is to support better indexing than current forums do. Maciej (archived) talks about how fandom uses complex tagging schemes combined with the wisdom of the crowd to determine the appropriate keywords for an item. Our problem is that in all likelihood Civilization, at least as it's meant to be used by FortForecast, will only host between 300 and 3000 people on an instance if it's successful. That means we have a lot less data to rely on wisdom of crowds for, and thus have to put more effort into active indexing. You have to have features to support indexing, and make sure people somehow go through the trouble of indexing work to make it accessible.
I remember someone remarking that it's incredible to think there are furry porn sites whose nitpicky zealous indexing is better crafted than the systems we use for the most important knowledge in our society. One of the major things that is meant to set FortForecast apart is a healthy respect for the task of building an academic library rather than a holy book or canon.
Search
Search is the flip side of the indexing coin. The better your indexing, the better your search can be. Many websites these days outsource their search to Google by letting them index pages and then leaving their own search feature underpowered or nonexistent. This is an antipattern, and even if it weren't FortForecast is a private forum and that solution would not be acceptable. Full text search is the basic expectation for a serious document retrieval system in circa current year, but other forms of indexing help cut down on the number of queries required and can help researchers find high quality sources and connections which might have eluded them if they had to rely on direct keyword matches in a document.
Naturally then, Civilization should ship with a fundamentally decent search engine that allows users to take full advantage of all that indexing expected from users.
Magic Fucking Point System (TODO: Name this)
(See also: Magic Fucking Point System)
One of the core goals of Civilization is to support better indexing than current forums do. Maciej (archived) talks about how fandom uses complex tagging schemes combined with the wisdom of the crowd to determine the appropriate keywords for an item. Our problem is that in all likelihood Civilization, at least as it's meant to be used by FortForecast, will only host between 300 and 3000 people on an instance if it's successful. That means we have a lot less data to rely on wisdom of crowds for, and thus have to put more effort into active indexing. You have to have features to support indexing, and make sure people somehow go through the trouble of indexing work to make it accessible.
I remember someone remarking that it's incredible to think there are furry porn sites whose nitpicky zealous indexing is better crafted than the systems we use for the most important knowledge in our society. One of the major things that is meant to set FortForecast apart is a healthy respect for the task of building an academic library rather than a holy book or canon.
More interesting interface than VBulletin
This is technically a theoretical feature since the interface isn't complete yet, but the design so far implies an interface which is not just the thousand and first rehash of the basic VBulletin formula. This is important because VBulletin is such a common look for small forums, especially unmodified VBulletin by newbie administrators, that it's probably associated in many peoples minds with mediocrity.
Tracker
(Also see the article: Tracker)
The tracker is a program that is meant to save the user time by automating away unnecessary effort asked of participants on traditional forums. This is done by recording preferences of things the user would like to see, and proactively alerting them to their presence. Unlike most recommendation/fetcher systems in this vein the tracker allows the user to access its control panel. Further, the tracker may play a role in helping users maintain healthy use of time in relation to Civilization by allowing users to figure out how much time they would like to spend on various activities and helping to make those happen.
Similar Things The Tracker Is Not Which Kinda Suck
- Personal Assistants like Cortana. Just not featured enough, feels kind of like a gimmick with minimal value add over a good search engine. Tries to be too smart, not intelligent enough to live up to the hype. (Yet, growth mindset.)
- The standard notifications section of social media sites/apps/etc. This is a lot like that, but on steroids. Moreover this provides features no social network would ever have the stones to provide if it wanted to survive.
Thread Model
FortForecast threads have more metadata than most forum threads. The extra metadata helps the software do the right thing with layout and indexing. It also helps the software advertise expectations for what's expected from participants in the thread. This metadata includes:
- Rigor Level: How much rigor the thread author expects from participants. It might make sense to implement a system where more rigorous threads are higher up in the listing, but it costs some kind of limited resource to create them so that when people ask for help from FortForecast on something we have a way of tracking that and valuing it.
- Thread Type: In a survey of threads on every forum I knew of, I found that basically all threads could be categorized according to "types" which could be optimized for so it's easier to create artifacts for them.
Threads also have tagging, tags are part of how the indexing is made good. Like any good tagging system which works off a limited number of participants, some tags are mandatory depending on the content where others can be added at the authors leisure. Importantly, the software also allows other users to tag threads for their and others use. This means that the indexing can be actively worked on as a community.
Predictions
There's a meme in the LW/SSC/etc sphere that goes something like "If you're really confident about your estimate of something happening, you'll put money/status/encode it into a concrete bet". This is actually a fairly decent candidate for a way you could get participants in an online forum to be more sane about making predictions, especially if you keep score and provide the sorts of resources indicated by books like Tetlock's Superforecasting.
That is to say, it's worth a try and thus Civilization will implement a robust public prediction portal that is linked in some way to the forum thread discussions so that a discussion can easily generate predictions that last beyond the initial thread.
Design
As Civilization is a work in progress, a lot of the design discussion will happen and be recorded on this wiki. The following pages discuss the design of Civilization.
Robustness
- Open source
- Open content
- Backups
All of these are critical for robustness.
What happens if the guy who runs Pinboard gets hit by a bus?
The bus is likely to be fine. They don't go very fast and are designed with passenger safety in mind.
—from the Pinboard FAQ (archived)
Maciej jokes, but actually, that would suck, right? Pinboard is just a bookmarking site, yet still, if tomorrow it went offline forever—that would suck. Like, a lot.
Is a Civilization-based project (like, say, FortForecast) at least as important, valuable, irreplaceable, etc., as Pinboard? If it is, then we should give some real thought to what happens if the person or people running it get hit by a bus. (Or if they have a mental breakdown and take the server down. Or if they get arrested. Or, or, or...)
If you're trying to make something for the ages, there are several ways to fail. You could fail to produce anything that's worth preserving. But you could also fail to preserve something that is worth preserving.
The first problem's hard, and the rest of the site talks about it. This is about the second problem.
Open source
This is already a project goal, but worth repeating. If we do something wrong, someone forks the code and does it better. If we die, someone grabs the code and carries on. If the inexorable march of progress passes our creation by, someone updates it. At worst, it serves as a seed for a better incarnation.
(This is all in addition to all the other benefits of FOSS.)
Open content
This one's less talked about. Source being open doesn't do anything for the content of a Civilization-based project, which—to put it conservatively—is at least as important as the code.
What does "open content" mean?
It means: suppose I have a Civilization instance, and you have a Civilization instance. We have no connection, we're just two people with two servers who are each running the software. You have a lot of content on your site; I have nothing (I've just deployed a brand-new instance).
- How hard is it for me to grab all your content, dump it into my Civilization instance, and have a working mirror of your site?
- If your site goes offline tomorrow, is your content now all immediately inaccessible?
Without open content, a Civilization-based project isn't robust. The bus threat still looms large.
Notes
Concerning (a): Would anyone want to do this? Maybe. But reasons aside, if it's hard or impossible to do, then there's a smaller chance that the content will survive the death of project's current host.
Concerning (b): Consider the analogy with an open source project. Suppose I release the source code to my product under a FOSS license. I put the source up on my personal site. Tomorrow my server explodes and I die. No one else has the code (or if they do, they're not telling). Technically, the product is still open-source.
Does that help you, the hypothetical developer who wants to hack at it? Nope. This is why github and sourceforge and so on exist. The same considerations apply if we commit to the idea of "open content".
Case studies
- Wikipedia
- Less Wrong
Obstacles
- Copyright
- Dynamic content generation (where the generation process depends on content which can't be open, or local configuration, etc.)
- Content itself which is inextricably tied to idiosyncracies of platform/host/etc. configuration, or uncommon technical capabilities
- Dependency on external services
- Operational costs (such as storage)
Content which can't be open
- User data
- Private content (conversations taking place via a "private message" feature, non-public forums, etc.)
- Content which isn't hosted by the project itself, but which is somehow a part of project content
Backups
This one's obvious: if something happens to the project's technical base, but the people running it are still hale, hearty, and present, a return to operation should be quick.
This aspect of robustness needn't be limited to just the usual backup strategies, though. Supplementary approaches include:
- Zip everything up and throw it into torrent-space
- Put it in a public github repo
- Mirror content archives on publicly accessible sites
… etc.
If nothing short of literal global themonuclear war can take down the project—then you're sufficiently backed up.
Progress
The software is in fact basically usable. Threads are implemented, it is possible to use Civilization as a basic bulletin board. All further work would be on styling and adding advanced features.
Feature Progress
Indexing
Basic tagging exists, but I think
Demo
There is currently a demo up at civilization.obormot.net (archived). You can log in under a test account using the credentials:
Username: User
Password: aggregate
The username and password are both case sensitive.