type open example content checker html facebook facebook-opengraph validation open-graph-protocol

example - Significado del atributo de prefijo HTML(Open Graph Protocol)?



open graph example (2)

Parece que el atributo de prefijo está realmente definido en la especificación RDFa que vinculó. Si bien debe especificar el tipo de medio correcto para los documentos XHTML ( application/xhtml+xml ) y el tipo de documento correcto ( <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd"> ) y probablemente algunas más flexiones XML, esto no es necesario para HTML5. En HTML5 puede usar los atributos definidos por RDFa de forma inmediata.

Ver: HTML + RDFa 1.1 especificación

No sé si hay alguna ventaja específica de esta forma de asignar un prefijo a un espacio de nombres. Tampoco está del todo claro para mí.

Soy nuevo en Facebook Open Graph Protocol . He estado tratando de averiguar cuál es el significado del atributo de prefix HTML. La publicación más cercana sobre Stack Overflow que pude encontrar al tratar este tema es esta publicación que fue muy útil ya que trata sobre cuáles son las diferencias entre las diversas sintaxis posibles y cuál utilizar.

Sin embargo, la publicación no dice nada sobre qué es este atributo de prefix o qué hace. AFAIK esto no es un atributo HTML estándar. Pude encontrar este documento que creo que es donde el W3C define este atributo, pero no fue capaz de darle ningún sentido.

¿Podría alguien explicarme por favor?

  1. ¿Qué hace el atributo de prefix ?

  2. Puedo escribir

    <html prefix="og:http://ogp.me/ns#">

    en lugar de

    <html prefix="og: http://ogp.me/ns#">

    o sería un error de sintaxis?

  3. ¿Puedo incluir múltiples atributos de prefix para cualquier etiqueta HTML dada?

    <head prefix="a: http://www.aaa.com/ns#" prefix="b: http://www.bbb.com/ns#">

    Según mi conocimiento de HTML, esto sería incorrecto, pero entonces el prefix es un atributo no estándar. Entonces, tal vez, lo que me gustaría saber es, ¿puedo escribir:

    <head prefix="a: http://www.aaa.com/ns# b: http://www.bbb.com/ns#">

    ¿o no tiene sentido especificar múltiples prefijos en cualquier lugar del árbol HTML por alguna razón?

  4. Si esta etiqueta de prefix no forma parte de la especificación HTML, ¿cómo enviar una página que contenga este atributo a un validador de código podría dar como resultado que mi código sea compatible con los estándares?

Gracias por responder mis preguntas.


Primero:

prefix es uno de los atributos definidos por la extensión RDFa (Marco de Descripción de Recursos en Atributos) . RDFa se utiliza para implementar la Web Semántica en páginas web representadas en muchos lenguajes de marcado, como HTML y XML. En lugar de tener una página web que le diga al navegador cómo se debe estructurar, ahora también puede decirle qué representa la página , como una persona, una lista de productos, etc.

Y para que pueda representar datos semánticamente en su página web, necesita usar un vocabulario semántico , que le dice al navegador exactamente eso: lo que se representa en su página. Un vocabulario semántico popular es schema.org .

Pero a veces un vocabulario semántico singular no puede representar y describir toda su página web. Ahí es donde entra el atributo de prefix :

¿Qué hace el atributo de prefix ?

El atributo de prefix permite especificar uno o más vocabularios semánticos que se están utilizando. El siguiente ejemplo utiliza dos vocabularios para representar a una persona que tiene un animal favorito : vocab.org y vocab.org .

<p vocab="http://schema.org/" prefix="ov: http://open.vocab.org/terms/" resource="#manu" typeof="Person"> My name is <span property="name">MY_NAME</span> and my telephone is <span property="telephone">MY_TELEPHONE</span>. My favorite animal is the <span property="ov:preferredAnimal">FAVORITE_ANIMAL</span>. </p>

¿Puedo escribir <html prefix="og:http://ogp.me/ns#"> lugar de <html prefix="og: http://ogp.me/ns#"> o sería un error de sintaxis ?

Además de no poder encontrar ningún ejemplo en la web usando la sintaxis anterior, de la especificación del RDFa Core se puede ver que al menos un espacio es de hecho obligatorio:

prefix a white space separated list of prefix-name IRI pairs of the form NCName '':'' '' ''+ xsd:anyURI

¿Puedo incluir múltiples atributos de prefix para cualquier etiqueta HTML dada?

Sí tu puedes. A partir de la especificación del atributo de prefix dado anteriormente, y de muchos ejemplos dados en la especificación del RDFa Core , se permite lo siguiente:

<html prefix="foaf: http://xmlns.com/foaf/0.1/ dc: http://purl.org/dc/terms/" > <!-- your page --> </html>

Si esta etiqueta de prefix no forma parte de la especificación HTML, ¿cómo enviar una página que contenga este atributo a un validador de código podría dar como resultado que mi código sea compatible con los estándares?

Como lo menciona @wensveen, HTML5 es compatible con los atributos RDFa listos para usar.