Meta Content Framework (MCF) is a specification of a content format for structuring metadata about web sites and other data.
HistoryEdit
MCF was developed by Ramanathan V. Guha at Apple Computer's Advanced Technology Group between 1995 and 1997. Rooted in knowledge-representation systems such as CycL, KRL, and KIF, it sought to describe objects, their attributes, and the relationships between them.<ref name=hammersley>Template:Cite book</ref>
One application of MCF was HotSauce, also developed by Guha while at Apple. It generated a 3D visualization of a web site's table of contents, based on MCF descriptions. By late 1996, a few hundred sites were creating MCF files and Apple HotSauce allowed users to browse these MCF representations in 3D.<ref name=hammersley />
When the research project was discontinued, Guha left Apple for Netscape, where, in collaboration with Tim Bray, he adapted MCF to use XML<ref>Template:Cite conference</ref><ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> and created the first version of the Resource Description Framework (RDF).<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref>
MCF formatEdit
An MCF file consists of one or more blocks, each corresponding to an entity. A block looks like this:<syntaxhighlight lang="text" line="1"> Node: <identifier> <property>: <value>, <value> </syntaxhighlight>The identifier is a unique identifier for that entity (more on the scope of the identifier below) and is used to refer to that entity. The following lines each specify a property and one or more values, separated by commas. Each value can be a reference to another entity (via its identifier), a string (enclosed by double quotes) or a number. For example:<syntaxhighlight lang="text" line="1"> Node: Test1 typeOf: TestNode child: Test2, Test3 name: "I am a test node" itemCode: 42
Node: Test2 typeOf: TestNode sibling: Test3 name: "I am another test node in a test world"
Node: Test3 typeOf: TestNode sibling: Test2 name: "Just another test node in a test world" </syntaxhighlight>NOTE:
- The identifier must not include a comma (
,
) and must not be enclosed within double quotes. - A common parsing failure is due to odd number of unescaped double quotes in text. For instance,
"foo bar" baz"
needs to be"foo bar\" baz"
. - Commas within double quotes are not considered as value separators.
- Every entity has at least one property:
typeOf
.
ReferencesEdit
External linksEdit
- MCF Tutorial (using XML syntax)
- Guha MCF site
- The metacontent concept