Метаконтент 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.

Примечания

Литература

Ссылки