Signification de L'attribut de préfixe HTML (Open Graph Protocol)?

je suis nouveau Facebook Open Graph Protocol . J'ai essayé de comprendre ce que signifie L'attribut HTML prefix . Le post le plus proche sur le débordement de pile que j'ai pu trouver traitant de ce sujet est ce post qui a été très utile car il traite de ce que les différences sont parmi les syntaxes possibles et celui qui est à utiliser.

Cependant, le post ne dit rien sur ce que ce prefix attribut est ou ce qu'elle fait. AFAIK ce n'est pas un attribut HTML standard. J'ai pu trouver ce document qui je pense est où le W3C définit cet attribut mais n'a pas été en mesure de faire aucun sens de lui.

Quelqu'un pourrait-il s'il vous plaît m'expliquer:

  1. Que fait l'attribut prefix ?

  2. puis-je écrire

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

    au lieu de

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

    ou serait-ce une erreur de syntaxe?

  3. puis-je inclure plusieurs attributs prefix pour une étiquette HTML donnée?

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

    basé sur ma connaissance de HTML, ce serait mal, mais alors prefix est un attribut non standard. Donc, peut-être ce que je voudrais savoir est, puis-je écrire:

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

    ou est-ce que spécifier plusieurs préfixes à n'importe quel endroit dans L'arbre HTML n'a pas de sens pour une raison quelconque?

  4. si cette balise prefix ne fait pas partie de la spécification HTML, comment le fait de soumettre une page contenant cet attribut à un validateur de code aurait-il un jour pour résultat que mon code soit conforme aux normes?

Merci de répondre à mes questions.

30
demandé sur Community 2015-01-14 15:54:36

2 réponses

d'Abord:

prefix est un des attributs définis par l' RDFa (Resource Description Framework dans les Attributs) extension. RDFa est utilisé pour mettre en œuvre le Web sémantique dans les pages web représentées dans de nombreux langages de balisage, comme HTML et XML. Au lieu d'avoir une page Web disant au navigateur juste comment il devrait être structuré, maintenant vous pouvez aussi le dire ce que la page représente , comme une personne, une liste de produits, etc.

et pour que vous puissiez représenter sémantiquement des données sur votre page web, vous devez utiliser un vocabulaire sémantique , qui dit au navigateur exactement cela: ce qui est représenté dans votre page. Un populaire vocabulaire sémantique est schema.org .

mais parfois un vocabulaire sémantique singulier ne peut pas représenter et décrire toute votre page web. C'est là que l'attribut prefix entre en jeu:

que fait l'attribut prefix ?

l'attribut prefix vous permet de spécifier un ou plusieurs vocabulaires sémantiques utilisés. L'exemple suivant utilise deux vocabulaires pour représenter une personne qui a un Animal préféré : schema.org et 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>

puis-je écrire <html prefix="og:http://ogp.me/ns#"> au lieu de <html prefix="og: http://ogp.me/ns#"> ou est-ce une erreur de syntaxe?

outre de ne pas être en mesure de trouver des exemples sur le web en utilisant l'ancienne syntaxe, de la spécification du RDFa Core vous peut voir qu'au moins un espace est effectivement obligatoire:

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

puis-je inclure plusieurs attributs prefix pour une étiquette HTML donnée?

Oui, vous pouvez. De la spécification de l'attribut prefix donnée ci-dessus, et de nombreux exemples donnés sur la spécification du RDFa Core , le suivant est autorisé:

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

Si cette balise prefix ne fait pas partie de la spécification HTML, comment la soumission d'une page contenant cet attribut à un validateur de code pourrait-elle jamais avoir pour résultat que mon code soit conforme aux normes?

comme mentionné par @wensveen, HTML5 supporte les attributs RDFa out-of-the-box .

27
répondu tayllan 2017-11-09 17:54:16

il semble que l'attribut de préfixe soit bien défini dans la spécification RDFa que vous avez liée. Alors que vous avez besoin de spécifier le type de média correct pour les documents XHTML ( application/xhtml+xml ) et le type de document correct ( <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML+RDFa 1.1//EN" "http://www.w3.org/MarkUp/DTD/xhtml-rdfa-2.dtd"> ) et probablement quelques poussoirs XML supplémentaires, Ceci n'est pas nécessaire pour HTML5. Dans HTML5, vous pouvez utiliser les attributs définis par RDFa.

voir: HTML+RDFa 1.1 spécification

Je ne sais pas s'il y a sont tous les avantages spécifiques de cette façon de mapper un préfixe vers un espace de noms. Ce n'est pas tout à fait clair pour moi non plus.

2
répondu wensveen 2015-09-07 12:19:11