Ключевое слово или метаданные данных в DITA?

В DITA есть два «общих» типа тегов метаданных: элемент данных и элемент ключевого слова. Конечно, есть и другая мета, но, по-видимому, скоро она должна быть объявлена ​​устаревшей, и название предполагает, что это своего рода последнее средство.

Таким образом, ключевое слово очень похоже на теги в веб-приложениях, то есть на то, что обычно используется для «народных сочинений». Но в чем точная разница между данными и ключевым словом, и когда что следует использовать?


person Anders    schedule 26.02.2013    source источник


Ответы (4)


Элемент <data> предназначен в первую очередь для специализации, поэтому, вероятно, нецелесообразно использовать его напрямую. Элемент <keyword> лучше.

Этот:

    <metadata>
        <keywords>
            <keyword>red</keyword>
            <keyword>green</keyword>
            <keyword>blue</keyword>
        </keywords>
    </metadata>

будет отображать это в преобразовании DITA-OT XHTML:

<head>
  <meta name="DC.subject" content="red, green, blue"/>
  <meta name="keywords" content="red, green, blue"/>
</head>

Если вы хотите добавить теги, я бы посоветовал использовать карты тематических схем, которые позволят вам включить список контролируемых значений.

Если вы специализируетесь на атрибуте @base или @props, вы можете добавлять метаданные с гораздо большим контролем. Здесь у нас есть атрибут @props, специализированный для @era.

Затем вы можете добавить атрибут @era к элементу в теме или к элементу <topicref> на карте.

<subjectdef keys="era_attributedef">
  <topicmeta>
  <navtitle>Era of production by decade and producer</navtitle>
</topicmeta>

 <subjectdef keys="producer">
     <hasInstance>
         <subjectdef keys="sixties">
             <subjectdef keys="verity_lambert"/>
             <subjectdef keys="john_wiles"/>
             <subjectdef keys="innes_lloyd"/>
             <subjectdef keys="peter_bryant"/>
             <subjectdef keys="derrick_sherwin"/>
         </subjectdef>

         <subjectdef keys="seventies">
             <subjectdef keys="barry_letts"/>
             <subjectdef keys="philip_hinchcliff"/>
             <subjectdef keys="graham_williams"/>
         </subjectdef>

         <subjectdef keys="eighties">
             <subjectdef keys="john_nathan-turner"/>
         </subjectdef>
     </hasInstance>
 </subjectdef>

<enumerationdef>
    <attributedef name="era"/>
    <subjectdef keyref="era_attributedef"/>
</enumerationdef>
person johntait.org    schedule 28.02.2013
comment
Ну, я бы согласился с вами, что я тоже склоняюсь к использованию элемента ключевого слова для общих метата, но это путаница. Я знаю, что элемент данных предназначен для специализации, но, видимо, не только это. В книге Элиота Кимбера DITA для практиков говорится, что данные являются основным элементом для хранения произвольных метаданных. Поэтому я не чувствую, что различие очень четкое. Что касается предметной схемы, то она в основном касается атрибутов и не совсем отвечает на этот вопрос. - person Anders; 01.03.2013
comment
Я помню, как читал о DITA CMS, использующей «данные» во время рендеринга. Я добавлю больше к ответу, если найду источник. - person johntait.org; 01.03.2013

Вы немного сбились с пути здесь; элемент ключевого слова НЕ является элементом метаданных. Элемент ключевого слова — это общий текстовый элемент, часто используемый для названий продуктов. Я думаю, что элемент, который вы, вероятно, хотели указать здесь, был элементом ключевых слов. Кроме того, вы действительно не хотите списывать со счетов элемент othermeta; это не устарело и весьма полезно.

элемент ключевых слов

Элемент ключевых слов можно использовать как на уровне темы, так и на уровне карты. Он содержит список терминов из тематического словаря, помеченных либо ключевыми словами, либо элементами indexterm. Элементы keyword и indexterm считаются элементами метаданных, и они должны отражаться в выводе в соответствии с носителем. Элементы indexterm обычно генерируют индексы; в выходных данных XHTML элементы ключевых слов обычно добавляются в XHTML и используются для поисковой оптимизации. (Это стандартная функциональность DITA-OT, хотя бесплатный механизм рендеринга PDF, поставляемый с DITA-OT, не создает индекс.)

элемент данных

Используемый как есть, элемент данных представляет свойство в теме или карте DITA. Ниже приведены ключевые аспекты:

  • Субъектом свойства является элемент, содержащий элемент данных. Если свойство применимо к теме в целом, оно должно находиться в элементе пролога темы или в элементе Topmeta в ссылке на тему, которая указывает на тему.
  • Атрибут @name элемента данных является первичным идентификатором процессоров.
  • The value of the property can be expressed in several different ways:
    • Text value, often expressed using the @value attribute
    • Ссылка на другой ресурс (тему, изображение, веб-ресурс и т. д.) с использованием атрибута @href
    • Сложная структура, состоящая из вложенных элементов данных
  • Вы можете использовать необязательный элемент заголовка, чтобы предоставить метку для свойства.

По умолчанию процессоры игнорируют содержимое элементов данных. Однако можно создать пользовательскую обработку, которая использует содержимое определенных элементов данных для форматирования и т. д.

Элемент данных, используемый в качестве основы для специализации, особенно полезен. Он обеспечивает более точную семантику, а также перечисление контролируемых списков атрибутов для конкретных элементов. Вы можете увидеть много примеров его использования в качестве базы специализаций, если вы изучите элементы метаданных, используемые в букмепе и специализациях обучения и обучения.

См. раздел тема элемента данных в спецификации DITA 1.2 для некоторых конкретных примеров.

другой мета-элемент

Элемент othermeta предназначен для содержания контента, к которому не применим ни один из существующих элементов метаданных. По сути, он содержит пару имени и значения. Вы используете атрибут @name для имени свойства и атрибут @content для хранения значения.

Когда и какой элемент следует использовать?

  • Используйте элемент keywords, чтобы указать термины индекса и ключевые слова, которые относятся к определенной теме, особенно когда содержимое элемента keywords должно использоваться в генерируемых выходных данных.
  • Используйте элемент data для встраивания свойств в тему DITA или карту DITA, особенно в качестве вспомогательного средства для пользовательской обработки или сбора свойств для автоматической обработки.
  • Используйте элемент data в качестве основы для специализации.
  • Используйте элемент othermeta для хранения пар имя-значение, для которых не существует семантического элемента.
person Kristen James Eberlein    schedule 10.03.2013
comment
Спасибо, но я не совсем со всем согласен. Я знаю, что это ключевое слово также используется как элемент повторного использования, вроде как переменная, но проблема в том, что оно также используется как элемент метаданных, о чем свидетельствует спецификация: все элементы ‹keyword› или ‹indexterm› в ‹keywords › Элемент метаданных считается частью метаданных темы. А также тем, что он является частью элемента метаданных в прологе... Но, может быть, это часть путаницы вокруг этого элемента, что он используется для разных целей? +1 за подсказку об использовании данных специализацией обучения. - person Anders; 11.03.2013
comment
То, что othermeta якобы устарела, я не могу подтвердить, но я прочитал это в сообщении Элиота Кимбера (tech.groups.yahoo.com/group/dita-users/message/29812), где на самом деле он сказал, что это устарело, но я действительно не знаю. Может быть, он мог бы пролить на это некоторый свет... В любом случае, я не чувствую, что это очень полезно, хотя, как я уже сказал, само название предполагает, что это крайняя мера. Я бы предпочел использовать элемент данных, даже неспециализированный, в таком случае, поскольку он имеет атрибуты имени и значения, почти такие же, как имя и содержимое othermeta. - person Anders; 11.03.2013

Элемент данных имеет атрибуты @href и @name и @value, которые являются ключом.

Таким образом, вы можете определить любое свойство, которое вам может понадобиться для вашей сборки.

<data name="currentTopNavSection" value="profil"/>

У меня есть несколько сценариев, в которых мне нужно предоставить некоторую информацию о пути в зависимости от аудитории моей документации. Я могу использовать элемент данных для этого.

<data audience="lifeg" name="active-audience" value="lifeg"/>

Это позволяет мне узнать, какая аудитория является активной, когда я фильтрую документацию.

Другим примером может быть присоединение javascript, специфичного для карты.

I am currently working on a webmap specialization where I specialized data to include javascript and css .

* обновление 2 *

элемент данных может быть вложенным. Элиот Кимбер объясняет это в своем посте. Не могу вспомнить какой. Идея состоит в том, что он может представлять набор свойств

   <data name="parent">
        <data name="chilproperty1" value="abc"/>
        <data name="chilproperty2" value="abc"/>
   </data>

эта структура очень полезна для целей специализации.

В моем понимании элемент данных не является конкретным. Это способ для авторов задокументировать очень специфическую потребность, специализированную или нет. Значения легко получить с помощью xsl позже в процессе сборки.

person Bertrand    schedule 06.03.2013
comment
Вы правы, забыли об этой разнице, которая, конечно, является показателем их разных намерений. Тем не менее хотелось бы, чтобы это было лучше задокументировано в спецификации. - person Anders; 07.03.2013
comment
Забыл упомянуть о @keyref, который может быть очень полезен. - person Bertrand; 07.03.2013

Точная разница? Есть много различий. Прочтите спецификацию (извините, я не хочу показаться недружелюбным).

Вот одно отличие от спецификации, которое уже было упомянуто, но я думаю, что его стоит выделить, потому что оно может помочь вам решить, что использовать (или, скорее, помочь вам решить, использовать ли ‹data>):

Процессоры должны игнорировать содержимое элемента ‹data> по умолчанию, поэтому элемент ‹data> следует использовать только для свойств и не встраивать текст для форматирования в основной поток темы.

(См. также текст в другом месте в начале спецификации: «нестандартная обработка может…».)

Вы можете использовать ‹ключевое слово> «для встраивания текста для форматирования в основной поток темы», но не следует делать этого с ‹данными>.

Можете ли вы описать свой конкретный вариант использования? (Какую информацию вы хотите разметить?)

person Graham Hannington    schedule 11.03.2013
comment
Я довольно внимательно прочитал спецификацию, и я думаю, отсюда и возник вопрос, я думаю, что это очень расплывчато об использовании элементов метаданных. Я знаю об очевидных различиях их моделей данных, и особенно об использовании ключевого слова в контексте, не связанном с метаданными. Но ключевое слово также может использоваться в качестве элемента метаданных, и я имею в виду их различия в качестве тегов метаданных, то есть ключевое слово, используемое в теге ключевых слов в элементах метаданных пролога. Это другое использование по сравнению с использованием в основном тексте, и в спецификации говорится, что его следует рассматривать как сопоставимое с тегом темы Dublin Core. - person Anders; 11.03.2013