0

I have a breadcrumb with RDF data and I want to adapt it to Microdata. First of all, I'm not sure about the structure, because it will work on a WordPress template.

But I found this code: http://www.seomix.fr/fil-dariane-chemin-navigation/ (I don't paste the code here to respect the author).

Let's see some attributes, I do have:

  1. span typeof="v:Breadcrumb"

  2. rel="v:url" property="v:title"

  3. div class="path" xmlns:v="http://rdf.data-vocabulary.org/#"

  4. span id="breadex"

  5. id="breadh"

What does they mean and what should I put instead of them? I have that example of Microdata, but I'm not able to make relations:

<div itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
  <a href="http://www.example.com/books" itemprop="url">
    <span itemprop="title">Books</span>
  </a> ›
  <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
    <a href="http://www.example.com/books/authors" itemprop="url">
      <span itemprop="title">Authors</span>
    </a> ›
    <div itemprop="child" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
      <a href="http://www.example.com/books/authors/stephenking" itemprop="url">
        <span itemprop="title">Stephen King</span>
      </a>
    </div>
  </div>
</div>

Update: At the end I'm gonna keep the RDFa format. My problem was that the HTML5 don't validate RDFa, it returns:

"Attribute xmlns:v not allowed here."

"Attribute with the local name xmlns:v is not serializable as XML 1.0."

Source: http://validator.w3.org/check?uri=http%3A%2F%2Fdemo.seozeta.com%2Fblog%2F&charset=%28detect+automatically%29&doctype=HTML5&group=0&user-agent=W3C_Validator%2F1.3+http%3A%2F%2Fvalidator.w3.org%2Fservices

But I noticed that there are themes of WordPress on Themeforest that also use RDFa without validation, so I think it's ok.

About the subject of that post, I was not sure how to relate RDFa with Microdata. For example, what is 'breadex', a child or a parent? Is the typeof='v:Breadcrumb' the itemscope equivalent? Which one is which one? Now I don't need it to know, but feel free to post a list with the equivalences/relations for others. I think this information will be usefull for sure.

6
  • What is wrong with your Microdata example?
    – unor
    Commented Mar 27, 2014 at 13:16
  • That I don't know which atribute corresponds to the others. For example, I can understand the itempromp=child (it's obvious), but not to which one corresponds with the RDFa format. Another example: RDFa defines what is an url, and using Microdata it seems that it's not possible.
    – Unix
    Commented Mar 27, 2014 at 20:01
  • I’m not sure if I understand you correctly here. Do you want to know how to convert RDFa to Microdata in general (not only for this specific example)?
    – unor
    Commented Mar 27, 2014 at 23:55
  • I would like to do it for the example of the link that I posted above. It contains a lot of attributes that I'm not able to relate with the attributes that I need to put of Microdata. (All of this is 'cause RDFa is not HTML5 valid and I need to validate it).
    – Unix
    Commented Mar 28, 2014 at 10:33
  • But your Microdata example already is equivalent. The Microdata counterparts of all the RDFa attributes you mentioned already are in your example. -- And note that it’s totally fine and valid to use RDFa in HTML5.
    – unor
    Commented Mar 28, 2014 at 14:47

1 Answer 1

2

It’s valid to use RDFa in HTML5.

While xmlns still works, it is deprecated in HTML+RDFa 1.1. You should use the prefix attribute instead. If only one vocabulary is used, you could also use the vocab attribute instead of prefix.

RDFa is much more powerful than Microdata. RDFa Lite (a subset of RDFa), however, is very similar to Microdata.


Here is a small example specifying a person and his name with the Schema.org vocabulary.

Microdata:

<p itemscope itemtype="http://schema.org/Person">
  <span itemprop="name">John Doe</span>
</p>

RDFa Lite 1.1:

<p vocab="http://schema.org/" typeof="Person">
  <span property="name">John Doe</span>
</p>

(See my last example for a smaller variant.)

You could even define the vocabulary on the body (or any other parent) element and use it in the whole document:

<body vocab="http://schema.org/">

  <p typeof="Person"> <!-- using http://schema.org/Person -->
    <span property="name">John Doe</span>
  </p>

  <p typeof="LocalBusiness"> <!-- using http://schema.org/LocalBusiness -->
    <span property="name">ACME Inc.</span>
  </p>

</body>

By using prefix, you could even use several different vocabularies, for example Schema.org and FOAF:

<body vocab="http://schema.org/" prefix="foaf: http://xmlns.com/foaf/0.1/">

  <p typeof="Person"> <!-- using a class from schema.org -->
    <span property="name">John Doe</span> <!-- using a property from schema.org -->
    <span property="foaf:nick">JD</span> <!-- using a property from FOAF -->
  </p>

</body>

In fact, because RDFa predefines some prefixes, you wouldn’t have to use vocab/prefix if you use, for example, Schema.org. Just prefix the terms with schema: and you are done:

<p typeof="schema:Person">
  <span property="schema:name">John Doe</span>
</p>
4
  • Your information is perfect! I used vocab instead of xmlns:v and it passes the validation! Awesome! Thank you a lot! Also for the extended explanation. It's totally useful :)
    – Unix
    Commented Mar 28, 2014 at 17:10
  • Hi @unor. I notticed that Google Webmaster Tools returns these errors: «Missing: author. Missing: entry-title. Missing: update.» in reference to the post pages. I'm ussing the RDFa on the breadcrumbs. Can I use them separately? The author in another place, for example the meta information of the post? («Published by admin, july 2014 in Category»).
    – Unix
    Commented Jul 18, 2014 at 12:11
  • @Gerard: I think you should create a new question for this.
    – unor
    Commented Jul 18, 2014 at 12:22
  • 1
    I created a specific question for this: webmasters.stackexchange.com/questions/67253/…
    – Unix
    Commented Jul 20, 2014 at 13:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.