RDF (Resource Description Framework) — модель, предложенная консорциумом World Wide Web Consortium (W3C) для описания метаданных информационных ресуросов в Web. Для представления модели RDF используется язык XML. В получающемся XML-документе RDF-метаданные помещаются в контейнер XML с дескриптором rdf:RDF.
Модель состоит из предложений вида субъект - предикат - объект, где субъект — ресурс, о котором идет речь в предложении, предикат — ресурс, являющийся свойством субъекта, объект — ресурс, являющийся значением свойства. Ресурсами являются некоторые модельные представления об объектах реального мира, обычно описываемые в документах, имеющих URI. Отметим, что свойство в RDF — понятие, которое может использоваться самостоятельно, вне связи с субъектом. Пример предложения:
Команда имеет тренера, его имя Иванов.
Здесь субъектом, предикатом и объектом являются команда, тренер, Иванов соответственно.
Ресурсы могут объединяться в группы, называемые классами. Сами классы также являются ресурсами и идентифицируются ссылками RDF-URI. В RDF определение класса или свойства (так называемый интенсионал) отделено от множества экземпляров класса и значений свойства (от экстенсионала).
Для записи RDF-модели используют язык XML. RDF-модель документа на языке XML есть последовательность элементов Description. Каждый элемент Description применяется к одному определенному ресурсу и содержит описания свойств ресурса (т.е. содержит значение определенного поля метаданных документа). URI этого ресурса указывается в Description в качестве атрибута about или ID. Например:
<rdf:Description about="http://...">
Свойство может быть URI, строкой символов или элементом Description. Возможно использование нескольких элементов Description как включаемых в модель последовательно, так и вложенных друг в друга. Свойства представляются в виде XML-элементов <предикат>объект</предикат> или <предикат rdf:resource="объект"/>.
Общая структура модели имеет вид:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<rdf:Description rdf:about="субъект">
  <предикат>объект</предикат>
</rdf:Description>
  ...
<rdf:Description rdf:about=...>
  <предикат rdf:resource="объект"/>  
</rdf:Description>
</rdf:RDF>
Поскольку модель RDF относится к описанию семантики предметной области и служит, в частности, для согласования семантики документов из разных источников, необходимо решать проблемы возможного использования в этих документах терминов-омонимов. Проблемы омонимии решаются с помощью использования пространств имен.
Предположим, что некоторый термин "system" имеет разный смысл в предметных областях, описываемых в документах с URI http://www.cl.edu/cont/ и http://aba.ru/technologies/elements/. Тогда на этот термин в RDF-модели нужно ссылаться с помощью составных имен (QNames), например, m1:system и m2:system, причем предварительно должны быть введены псевдонимы m1 и m2 для указанных URI. Структура RDF-модели может иметь вид (в примере использование m1:system и m2:system подразумевается в XML-предложениях внутри элементов rdf:Description):
<rdf:RDF
        xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
        xmlns:m1="http://www.cl.edu/cont/"
        xmlns:m2="http://aba.ru/technologies/elements/">
<rdf:Description rdf:about=...>
  ...
</rdf:Description>
</rdf:RDF>
Приведем простой пример RDF-модели:
<?xml version="1.0"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
         xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#">
  <rdf:Description rdf:about="http://www.work.ru/person/">
    <contact:fullName>Ivan Ivanov</contact:fullName>
    <PlaceOfBirth>Moscow</PlaceOfBirth>
    <contact:personalTitle>Professor</contact:personalTitle>
  </rdf:Description>
</rdf:RDF>
Здесь элемент rdf:Description служит для представления метаданных документа, находящегося по адресу http://www.work.ru/person/, другими словами, .http://www.work.ru/person/ есть URI субъекта, его свойствами являются полное имя, место рождения, звание, а значениями свойств соответственно Иван Иванов, Москва и профессор.
Полные URI можно заменять псевдонимами, используя объявления ENTITY в таблице определения типов DTD. Например:
<!ENTITY dev  "http://ee.com/product/comp#">
Теперь полный URI (http://ee.com/product/comp#diode) может быть заменен на &dev;diode.