Метаконтент Framework
Метаконтент Framework (англ. Meta Content Framework, MCF) — это спецификация формата данных для структурирования метаданных о веб-сайтах и других данных.
История
Метаконтент Framework был разработан Раманатаном В. Гуха в Advanced Technology Group компании Apple в период с 1995 по 1997 год. Основанный на системах представления знаний таких как CycL, KRL и KIF, он предназначался для описания объектов, их атрибутов и отношений между ними[1].
Одним из приложений Метаконтент Framework стала программа HotSauce, также разработанная Гуха во время работы в Apple. Она позволяла создавать трёхмерные визуализации оглавления сайта на основе описаний в формате MCF. К концу 1996 года несколько сотен сайтов создавали файлы MCF, а программа Apple HotSauce позволяла пользователям просматривать эти представления в 3D[1].
После завершения проекта Гуха покинул Apple и перешёл в Netscape, где вместе с Тимом Бреем адаптировал MCF для использования с XML[2][3] и создал первую версию Фреймворка описания ресурсов (RDF)[4].
Формат MCF
Файл MCF состоит из одного или нескольких блоков, каждый из которых соответствует сущности. Блок имеет следующий вид:
Node: <идентификатор>
<свойство>: <значение>, <значение>
Идентификатор — это уникальное обозначение данной сущности (см. ниже о пределах видимости идентификатора), используемое для ссылки на эту сущность. Последующие строки указывают свойства и одно или несколько значений, разделённых запятыми. Каждое значение может быть ссылкой на другую сущность (по её идентификатору), строкой (в двойных кавычках) или числом. Пример:
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"
Примечания:
- Идентификатор не должен содержать запятую (
,) и не должен быть заключён в двойные кавычки. - Частая ошибка при разборе — нечётное количество неэкранированных двойных кавычек в тексте. Например,
"foo bar" baz"должно быть записано как"foo bar\" baz". - Запятые внутри двойных кавычек не считаются разделителями значений.
- Каждая сущность должна иметь как минимум одно свойство:
typeOf.
Примечания
Литература
- Hammersley, Ben. Content Syndication with RSS : [англ.]. — Sebastopol : O'Reilly, 2003. — P. 2. — ISBN 978-0-596-00383-8.
Ссылки
- Учебник по MCF (с использованием синтаксиса XML)
- Архив сайта Guha MCF
- Концепция метаконтента


