InfoML FAQ

Version 0.83

by Gregg Williams, Oct. 20, 2004

1. General

1.1. What is InfoML?

1.2. Who will use InfoML?

1.3. How are InfoML cards (infocards) better than paper notecards?

1.4. What else do I need to know about InfoML?

1.5. What is the status of InfoML?

1.6. What is the future of InfoML?

2. Possible Uses

2.1. Can you gives some examples that show how InfoML might be used?


1. General

1.1. What is InfoML?

InfoML, short for "information markup language," is a standard for storing, manipulating, and exchanging information and ideas. A InfoML card (also called an infocard) is the basic unit of information in InfoML. It can be likened to a paper notecard that contains some text summarized by a title. Unlike paper notecards, infocards can be stored, searched, combined and recombined into meaningful groupings, printed out in various ways, and shared with others.

An infocard can directly contain any combination of paragraphs of styled and preformatted text. It can also contain Internet-style hyperlinks and anchors, enabling it to point to any content that can be stored on the Internet. In addition, a infocard can express more complicated content by linking a named list of other infocards with additional content contained in the card itself. Each infocard contains a globally-unique identifier, enabling a infocard to refer to InfoML content created by anyone in the world.

Just as the World Wide Web has become the "community bulletin board" of the world, InfoML has the potential to become a universal standard for collecting, sharing, and building upon everybody's ideas. At the moment, InfoML exists only as a definition of what information can be put into an infocard and how that information is structured. This definition is freely available under the licensed under the Creative Commons Attribution-NoDerivs License (see http://creativecommons.org/licenses/by-nd/2.0/ for details). This license stipulates, among other things, that you may use the InfoML definition, without charge, for any purpose, but that you may not change the definition yourself.

Eventually, there will be programs that make it easy for you to enter, analyze, browse, and manipulate the information in infocards. The more people who use InfoML to store their information (and the more people who create programs that manipulate infocards), the more useful InfoML will be. See below for three examples of possible InfoML-based programs.

1.2. Who will use InfoML?

Anyone who needs to record, organize, recall, or explore a body of information--whatever the subject--will find InfoML-aware applications useful. This includes students exploring a subject while researching a term paper, professionals who want to augment their memories by recording what they learn into a collection of infocards, authors using InfoML as a filing system for the raw materials of their next book, and many others. InfoML-based study becomes even more useful when people share their infocard collections with each other.

1.3. How are infocards better than paper notecards?

Infocards have numerous advantages over paper notecards. Because infocards are electronic, they are more versatile than their paper counterparts. Once you have entered them into a computer, you can search them, index them, group them according to a variety of criteria, analyze them for trends, and manipulate them in various ways.

The fact that infocards are nonmaterial gives them additional benefits. You can share them without losing access to them. An infocard can belong to any number of card lists, making it possible to "file" the same card in multiple "locations."

Because an infocard can combine references to other infocards with commentary on those cards, you can use infocards to build a web of knowledge or reasoning, with the following potential benefits:

  • You can experiment with different trains of thought and different ways of approaching the problem at hand.
  • You can keep an "audit trail" of your thought processes in a way that clearly separates basic facts from subsequent inferences and that enables you to record the originator of each idea or opinion.
  • You can create a permanent record of information that you may not remember but want to keep a record of--a sort of "second brain."
  • The generalized and extensible structure of infocards means that people will always be finding new uses for infocards and new ways to manipulate them.

1.4. What else do I need to know about InfoML?

Infocards are initially stored as XML documents because of the variety of software tools available for manipulating XML-based data. However, XML is important only as a commonly agreed upon method of storing and sharing InfoML data. Any application that uses InfoML is free to store infocards in whatever form it wishes. However, every InfoML-friendly application should be able to read and write infocards as XML files, to ensure that all such applications can read each other's data.

1.5. What is the status of InfoML?

As of November, 2004, the InfoML Specification is at version 0.83. I am working with real-world data to confirm the usefulness of the current schema; it will advance to version 1.00 only after I have incorporated feedback from interested parties. The next task is to write Java tools for entering, searching, and displaying InfoML data.

1.6. What is the future of InfoML?

I believe that InfoML has the potential to become a fundamental datatype for storing and manipulating information and ideas, and that it is versatile enough to be used in many as-yet-unimagined ways. To encourage the adoption of InfoML, I am making my InfoML work an open-source project. This includes the InfoML schema (available under a Creative Commons license) and all the InfoML-related code I create.

I hope to create a community of InfoML developers and, eventually, InfoML users. As is the case with many technologies, the more people that develop for and use InfoML, the more useful it will become.

2. Possible Uses

2.1. Can you give some examples that show how InfoML might be used?

InfoML began in this way: I have always collected quotations from various sources and wanted a better way of storing them and being able to retrieve them as needed. The more I worked on the project of storing and searching a database of quotations, the more I realized that such a system could be generalized to be useful in different situations. I believe that I have created a schema that is as versatile as possible without requiring users to add data that they are not interested in preserving.

Here are some example applications that could be implemented using InfoML.

Example 1: A Meta-Outliner

All my professional life, I have used outliners to organize my thoughts. I have found that it is far more efficient to create an acceptable outline before writing the final text than it is to "just start writing" and then have to rewrite (and, horrors, even discard) sections later.

One problem with outliners is that it is awkward and inefficient to try to create multiple outlines from the same set of facts. You end up either duplicating individual outline items or duplicating your outline file, with each file representing a different organization of the starting facts. Both approaches have disadvantages when you want to add new material or modify existing outline items.

A InfoML-based outliner program (which doesn't exist yet) will make it easy to build multiple organizational structures (that is, prospective outlines) from the same set of facts. One powerful approach is to place the lowest-level outline items in individual infocards. Other infocards represent higher-level outline items, with each such infocard also containing pointers to the infocards that represent the outline items immediately "underneath."

In this way, you can create multiple outlines based on the same starting set of facts, and any one infocard can appear in multiple outlines. When you change the content of any infocard, that change automatically propagates to any "upstream" infocard that points to it. You could even design such a program to associate "final" text with each infocard; the program could been create a document based on the outline by combining, in order, the final text associated with each infocard in the outline.

Example 2: A Study Tool

I'm planning on going back to college soon, and for various reasons, I will be typing a lot of the materials I study into a computer for storage and eventual retrieval. With a basic InfoML system, I can certainly retrieve ideas and quotations by keyword. However, it's almost impossible to use keywords consistently. For example, I may use the keyword "human" to mark one quote and the word "mankind" to mark another.

A second-generation InfoML system will allow me to generate a list of all the keywords in use. If I add to the system the ability to make statements like "X is the same as Y," "X is somewhat similar to Y," and "X and Y are opposites" (for example, "'human' is the same as ' mankind'" and "' virtue' is somewhat similar to 'character'"), then I can begin to perform "fuzzy searches" that are more likely to return quotations and ideas that are truly related to each other.

By intelligently mining my database of infocards, I will be more likely to discover important relationships between different parts of the subject that I am studying. If I add my own observations and inferences using the comment, opinion, and group types of infocards, I will enrich the database even more. When it comes time to write a paper on a given subject, I can query my InfoML database as a first step in organizing my thoughts.

Example 3: A Searchable Notepad

While programming, I all too often encounter glitches or "gotchas" that I need to remember so that I don't repeat the same painful mistakes. Currently, I store these free-form notes in various text files. As soon as I get basic InfoML access software working, I will use it to store and retrieve such information. Storing these notes in an XML format increases the likelihood that I will be able to use this information in more than one way.

Example 4: Project Planner

Maybe you have a computer at home but you don't use it much. Here is an example of how you might use an InfoML meta-outliner application to make your life easier:

You are remodeling your kitchen and living room, and you have decided to be your own contractor. You have a tremendous number of details to take care of--building materials, contractors, schedules, prices, and so on. As soon as you have any piece of information about this project, you enter it into an infocard. You have already created infocards that represent outlines, with names like "Expenses," "ABC Plumbing Company," "Items for Living Room," and so on. Whenever you create a new content card, you "add" it to whatever outline infocards it belongs to. (Of course, what you're actually doing is adding a pointer to the outline infocard that points to the content card.) Then, at any time, you can retrieve any useful subset of stored information by viewing or printing the outline that contains it. If you have trouble finding information, you can use the application's search feature to do so.

InfoML home page