Making Sense of This Site

A guide for the perplexed

Today is a fine day to explain the structure and navigation of Ftrain.com, which some people have described as “crack-addled.”

I admit Ftrain's navigation is not as easy, as, say, pie, but there is a method behind the confusion. So unfasten your seatbelts, get a lot of coffee, and prop open your sleepy eyes with toothpicks, because we're in for one high-powered technical sojourn.

Ftrain is arranged in a giant tree. Today it has close to 600 nodes (trees have leaves, but data trees have nodes). Some of those nodes contain other nodes. Here's what Ftrain.com might look like, if you were insane:

You see the root node, on the far left? That root node has 3 child nodes, a, b, and c. Like a book with three chapters. In the graphic above, the parent-child relationship is shown in blue lines. Now, this also makes a, b, and c "siblings" of one another - they have the same space in the hierarchy. So the sibling relationships is shown with red lines.

Because this is the Web, not paper, we're allowed infinite hierarchy. So a might have e, f, g as its children, and they might have their own children, and so on, forever.

This raises a lot of issues, like how to "inherit" qualities of the top-level tree, and how to provide alternative views of the hierarchy, and most importantly, how to let readers traverse the tree, moving from node to node like feral node-monkeys, and pulling out a sensible reading experience.

Here's my solution, for now: when you're reading Ftrain and you see a link in bold, that link is to a child section relative to the document you're reading right now. There are two kinds of sections, inline sections and independent sections. Inline Sections occur inside of paragraphs and are represented simply as blue links.

The thing is, whether a section is inline or independent, it is still a child of its parent node. So the last two links both point to children of this current node, the node you're reading. How they're displayed is a result of their context.

I know that last paragraph is inexcusably confusing, but it speaks the truth. There's no analogy to anything in the print world to make the concept much easier.

The goal of Ftrain is to have only inline links, so that the entire site is a coherent, layered narrative, but it takes a long time to write good contextual prose around sub-sections, so most of the links are currently independent.

I want to explore the narrative possibilities of such hierarchies. Cross-linked hierarchies have some interesting properties - they can represent knowledge in a variety of ways. The structure of Ftrain, in fact, is closer to the structure of a text-based computer game's "memory" or a MUD than it is to a novel or book of stories, although it's a lot like the structure of a novel as well. Hierarchical nodes, for instance, can easily become decision trees, if you chose to ignore the "Next" and "Previous" link info. I can use the same framework to ask a question like Do you like dirty stories?, and have you traverse a pseudo-decision tree to come up with an answer.

Links which appear in un-bolded blue are cross-references to a node in another part of a hierarchy, like this one: Photos from a Day in Jerusalem. That link will take you somewhere else on the site, out of the current context and into a new one. And links to external web sites, like www.hoopla.com, are underlined.

Most everything else, like the "Last 10" links on the left, is fairly obvious. The very top of the navigation on the left, right below the picture, tells you where you are in the hierarchy, drawing a line between your current node and the root node and telling you all the stops along the way.

One thing that may not make sense is how the "Next" and "Previous" links work.

When you see a link to a Next or Previous, that means you're linking to a sibling element at the same level in the hierarchy. Think of a book, which contains volumes. The volumes contain chapters. The siblings of a volume are the other volumes, so the "Next" node at the "volume" level is another volume. Reading a chapter, the next item would be another chapter, and when you reached the last chapter in a volume, you'd hit a kind of "wall"; you'd need to go up a level and over to the next volume.

So on Ftrain, the Next and Previous point you to items at the same level in the hierarchy, relative to their siblings. There's nothing like "volumes" or "chapters" because every section is independent, can live anywhere in the hierarchy, and can have infinite children. Plus, it can be moved at any time to another part of the hierarchy (and because links are permanent, nothing breaks; everything just shimmers and transforms a bit).

Why is it all so hard and complex? Because I don't want to bow to the hierarchy. And eventually I want to layer all manner of other functions in here. I want to have textual characters who wander through the narrative, speaking to you in little boxes. I want you to be able to "pick up" and carry items around the site with you, like in an adventure game, except here, instead of needing a "red emerald key" to get into the dragon's lair, you might need a "sense of ennui" to get into the club in Soho.

For Ftrain, there's one “default” hierarchy, but thousands of possible “maps” of content. Think of the XML document as a filesystem crossed with a database: I can either preserve the "hierarchy" or I can flatten it, sort by date, sort by character, change the sequence, etc. So there's one basic way that it's organized, which is analogous to a file-folders metaphor, but because of the database properties I can do anything with it according to its structure, as long as the information is tagged somewhere.

Basically, structure and content are married only if I want them to be; it's really easy to divorce them to create other views, or other structures. The content is the map.

The primary goal of Ftrain.com, the goal which all other goals serve, is to make the site fully conscious and self-aware by 2051. Conservative estimates place computer power as equaling brainpower by then, and after 10,000 nodes (200 a year for 50 years), there should be enough inside the site for it to come to its own conclusions. I will return to this topic at a future date.

You know, that's all I have to say, and it's bedtime, and I have this terrible suspicion that I haven't solved the problem of explaing what the hell's going on. However, I did rewrite the Ftrain code to be 234 lines, instead of 700, and it now spits out the whole site in 10 seconds instead of a full hour. Which means updating is far less painful. So perhaps I'll revisit the topic at some point, and lose even more readers along the way.

Context and Web-memory
This is a summary of my technical background, and if you don't care about things like databases and XML, skip it.
Monday, June 11, 2001
Independent Sections
Independent sections show up on their own lines, indented, with their blurbs printed right below.
Sunday, June 11, 2000




Ftrain.com is the website of Paul Ford and his pseudonyms. It is showing its age. I'm rewriting the code but it's taking some time.


There is a Facebook group.


You will regret following me on Twitter here.


Enter your email address:

A TinyLetter Email Newsletter

About the author: I've been running this website from 1997. For a living I write stories and essays, program computers, edit things, and help people launch online publications. (LinkedIn). I wrote a novel. I was an editor at Harper's Magazine for five years; then I was a Contributing Editor; now I am a free agent. I was also on NPR's All Things Considered for a while. I still write for The Morning News, and some other places.

If you have any questions for me, I am very accessible by email. You can email me at ford@ftrain.com and ask me things and I will try to answer. Especially if you want to clarify something or write something critical. I am glad to clarify things so that you can disagree more effectively.


Syndicate: RSS1.0, RSS2.0
Links: RSS1.0, RSS2.0


© 1974-2011 Paul Ford


@20, by Paul Ford. Not any kind of eulogy, thanks. And no header image, either. (October 15)

Recent Offsite Work: Code and Prose. As a hobby I write. (January 14)

Rotary Dial. (August 21)

10 Timeframes. (June 20)

Facebook and Instagram: When Your Favorite App Sells Out. (April 10)

Why I Am Leaving the People of the Red Valley. (April 7)

Welcome to the Company. (September 21)

“Facebook and the Epiphanator: An End to Endings?”. Forgot to tell you about this. (July 20)

“The Age of Mechanical Reproduction”. An essay for TheMorningNews.org. (July 11)

Woods+. People call me a lot and say: What is this new thing? You're a nerd. Explain it immediately. (July 10)

Reading Tonight. Reading! (May 25)

Recorded Entertainment #2, by Paul Ford. (May 18)

Recorded Entertainment #1, by Paul Ford. (May 17)

Nanolaw with Daughter. Why privacy mattered. (May 16)

0h30m w/Photoshop, by Paul Ford. It's immediately clear to me now that I'm writing again that I need to come up with some new forms in order to have fun here—so that I can get a rhythm and know what I'm doing. One thing that works for me are time limits; pencils up, pencils down. So: Fridays, write for 30 minutes; edit for 20 minutes max; and go whip up some images if necessary, like the big crappy hand below that's all meaningful and evocative because it's retro and zoomed-in. Post it, and leave it alone. Can I do that every Friday? Yes! Will I? Maybe! But I crave that simple continuity. For today, for absolutely no reason other than that it came unbidden into my brain, the subject will be Photoshop. (Do we have a process? We have a process. It is 11:39 and...) (May 13)

That Shaggy Feeling. Soon, orphans. (May 12)

Antilunchism, by Paul Ford. Snack trams. (May 11)

Tickler File Forever, by Paul Ford. I'll have no one to blame but future me. (May 10)

Time's Inverted Index, by Paul Ford. (1) When robots write history we can get in trouble with our past selves. (2) Search-generated, "false" chrestomathies and the historical fallacy. (May 9)

Bantha Tracks. (May 5)

Tables of Contents