Looking for a relational wiki for documentation.
July 8, 2014 6:13 AM   Subscribe

Greetings hive mind! This seems to be something that should already exist, but I think I either haven't found the right type of wiki, or have looked over the feature in one of the many wikis I've tried. Basically, I'm looking to use a wiki for IT documentation purposes...but I'd also like for it to be able to automatically propagate views/pages in a relational manner (either via the backend or via templates). Here's an example to help illustrate:

Example pages/template types: Software, Hardware, Departments, Locations, Users

When we look at documentation pages for any of the above categories, we'd like to also satisfy linking to some or all of the remaining categories. So if I were to fill out a page about a piece of software, I'd also want to note what departments use it, who belongs to those departments, and perhaps even where the software is physically installed (if it's in a lab for example). This part is easy to manually do already in a wiki. What is missing, as far as I've found so far, is the ability to look at the data from let's say, a department perspective, and automatically see all of the software, users, etc pages linked to them without needing additional manual entry. I'm imagining this could be achieved with templates per category, where childitem blocks would be predefined for the other categories..the trick however, i think, would be filtering the childitem lists to only report back the pages that reference the page I'm currently on.

Outside of researching wikis, I've so far test driven Mediawiki (and the Bluespace addon), Tikiwiki, Twiki, Dokuwiki. and have started to trial paid options starting with Atlassian Confluence (which actually would be a great platform to build off of due to its simplicity if the solution exists in one of their many addons).

So I'm wondering, does this kind of wiki solution exist? If not a wiki, is there a documentation solution that has this kind of feature? If not for either, ignore these questions...I'll be working on a new product on weekends that'll help fund my retirement.
posted by samsara to Computers & Internet (6 answers total) 5 users marked this as a favorite
Seems like a great idea, but read up on the "semantic web" ideas. The first few relationships between sections/pages/concepts seem clear and obvious but who determines Department is between hardware and locations? There will be a network effect of opinions that differ. This way madness lies.

I'm sure I'm wrong though and will be watching for better answers.

Do take MiFi as an example on any effort and add active moderation into your wiki creation. Another example, as much as we read about the craziness of wikipedia, the active editing is a major reason for it's success.
posted by sammyo at 6:24 AM on July 8, 2014

OntoWiki is a wiki package that does this, making heavy use of semantic web technology. However, it's an academic project that, last I checked, hadn't really taken off--it looked like a pain to set up too. But maybe it's better now.

You might also look for a wiki built on top of a graph database like neo4j. If it's been done, I would expect it to have this kind of navigation pretty naturally.
posted by Monsieur Caution at 7:14 AM on July 8, 2014

Best answer: If I understand what you wrote above, I think you can do this in Confluence if you develop a robust taxonomy (and enforcement) of content labels and deploy macro-driven pages for each department view.

After everything you have is labeled you can develop a page for each department that deploys a specific "content by label" macro, which will report all of the pages with an "X" label, or an "X AND Y" label, an "X AND Y OR Z" label, and so on. You can also restrict that same macro by space, and by content type (page vs. blog post, etc.) which can also help zero in on the content you want to present.

You can use multiple versions of the same macro on a page, so as long as you are willing to put in the work on the architecture, along with a well-controlled label list, I think you might be able to pull something like this off with Confluence.

Of course, I'm not an expert in wikis or Confluence for that matter, others may ID more efficient options...
posted by lilboo at 8:35 AM on July 8, 2014 [2 favorites]

Response by poster: I think you have the understanding right, and that does sound promising lilboo, thanks! I'll take a closer look tonight. That suggestion does sound like a lot of added architecture and pre-planning, but feasible.

I think it's reasonable to expect that the general scopes or "types" of pages that tie to templates would need to be fairly strict anyway and thought out in advance...and I don't see this turning into a dynamic scenario where new scopes/categories/templates are being routinely added. So, once the categories are decided upon in the initial design phase, they should stick within the templates (where new categories would understandably require a bit of work mass updating pages and page templates to include a new link blocks)

So if it helps clarify, I'd definitely prefer something very approachable and that has wiki-like flexibility, but the wiki part isn't 100% necessary. Primarily it needs to cater to relational documentation (which might not even be a thing and will have to be invented!). It would need to be tightly regimented by templates or forms (so anyone could be trusted to create a new or update existing documentation elements without making them visit every other related page to update them as well). This is not part of the actual question, but I will also likely auto-generate content that would conform to the assigned templates. For example: All users and the departments they belong to would get pulled out of Active Directory feeds and self-update on the wiki. When you look at a User, you'd see the department to which they belong. When you look at a department, you'd see all of the assigned users. From there if we make user a point of contact on a software documentation page: when you look at the user page, you'd also auto-magically see all of the software for which they are points of contact.

If I had to write an add-on myself...I think it could be something as simple as adding a custom relationship table which would reveal the page relationships depending on which page you're visiting (and ultimately which column you're querying.) For example:

Fruit | Color | Month
Apple | Green | January
Apple | Red | March
Banana | Green | May
Kiwi | Purple | May

So if I visited a page about the color Green, I would see that the fruits apple and banana are related. If I look at the page for the fruit Apple I'd see the colors green and red....and so on. Very simple stuff...would love to see it work in the wiki-verse, and surprised it doesn't come up often! I could see many uses for page relationships outside of documentation.

Thanks everyone for the tips so far! I'll check into OntoWiki too, just to get a feel for how they do it. Solutions polished and easy to approach like Confluence are probably closer to what I'll actually need however, as I'll have various levels of expertise (and motivation) contributing their documentation.
posted by samsara at 10:09 AM on July 8, 2014

Best answer: Sounds like a regular Drupal site might work for you. Drupal has a built-in concept of a custom content type with user-defined fields and whatnot. The Views module gives you further options for displaying them, IIRC.
posted by Monsieur Caution at 10:32 AM on July 8, 2014

Best answer: Here to second what lilboo suggested. I recently set up a wiki for my team using Confluence 5, and heavy use of the Content by Label macros. It is a fantastic way to make content available to multiple groups, and I also love it because it automatically updates itself as new content is added and tagged. The trick is getting everyone to remember to tag new pages.
posted by Joh at 12:57 PM on July 8, 2014 [1 favorite]

« Older So Many Pictures, Need to Whittle   |   The Quiet Man and Knocky Guy at My Office Newer »
This thread is closed to new comments.