itemId
This HTML5 microdata attribute was created earlier then sameAs was accepted into the Schema.org vocabulary. The meaning of itemId is to provide a global identifier, like a book's ISBN-number or a Wikipedia-URL for unambiguously machine-readable defining of what the subject of description is. Jarno van Driel pointed me to another using art of itemId, namely local referencing - this usage isn't very common, local referencing is mainly accomplished with itemref. More about this kind of itemId usage here.sameAs
This property was inspired by owl:sameAs and added to the Schema.org 1.0b version at 24.07.2013 as the full vocabualary-intern counterpart of itemId.additionalType
This property is sometimes called a Schema hack, but in reality it is a bridge from limited types amount of Schema.org to the near endless set of types (classes), which are available through external ontologies.Distinguishing
This is the main and the single difference between itemId / sameAs and additionalType:- itemId / sameAs are about identifier / definition
- additionalType is about the type / class
Usage
DBpedia URLs as sameAs property
Assume we have a Wikipedia article, which matches an entity in our text. Wikipedia article's URL must be rearranged the from http://xx.wikipedia.org/wiki/Article-Title (xx at the beginning is the language abbreviation) to http://xx.dbpedia.org/resource/Article-Title to be used as a global identifier for the sameAs property. Looking so the URL / URI is ready for using as sameAs property of your entity.Note
Sometimes you can see a DBpedia URI looking like http://xx.dbpedia.org/page/Article-Title instead of http://xx.dbpedia.org/resource/Article-Title. Don't be confused with it! Such URIs are automatically redirected to the URIs with resource.
DBpedia classes as additionalType property
But what if Schema.org doesn't provide enough types to describe an entity? In such case is it a good idea to use an external classification to substantiate the entity description. DBpedia classes:- DBpedia classes full tree list (good for getting properties associated to class)
- DBpedia classes full alphabetical list (good for instant getting of quotable URI)
Distinguished usage of sameAs and additionalType
1. Only DBpedia classes<div itemscope itemtype="http://schema.org/Person"> <link itemprop="sameAs" href="http://dbpedia.org/resource/Hercules"/> <link itemprop="additionalType" href="http://dbpedia.org/ontology/MythologicalFigure"/> <p itemprop="name">Hercules</p> </div>
2. With non-DBpedia URI and DBpedia class
<div itemscope itemtype="http://schema.org/Person"> <link itemprop="sameAs" href="http://www.imdb.com/title/tt0212985"/> <link itemprop="additionalType" href="http://dbpedia.org/ontology/FictionalCharacter"/> <p itemprop="name">Hannibal</p> </div>
3. With non-DBpedia class and DBpedia URI
<div itemscope itemtype="http://schema.org/Product"> <link itemprop="sameAs" href="http://dbpedia.org/resource/Search_engine_optimization"/> <link itemprop="sameAs" href="http://www.dbpedialite.org/things/187946"/> <link itemprop="additionalType" href="http://www.productontology.org/id/Search_engine_optimization"/> <p itemprop="name">Search engine optimization</p> </div>
Note
In the last example is visible, that the same keyword can be both of the class and the global identifier. That is why i said at the beginning about how fine the distinguishing between sameAs and additionalType could be.
Syntax handling of multiple types
additionalType can be written in socalled multiple types approach syntax, namely so:<div itemscope itemtype="http://schema.org/Person http://dbpedia.org/ontology/MythologicalFigure">
Note
Usage of multiple types approach with different domains (in the last example schema.org and dbpedia org) is not a good practice and is only theoretically possible. Such types chaining can be used unhesitatingly with types from the same domain.
Wrong or non-usage
Is this not a bean counting? Does one need it at all? What happens, if things will be applied wrong or even entirely don't used?The discipline we are here in is SEO, that's why don't applying or wrong applying is suboptimal:) The concrete impact of suboptimal assignment is that the keyword or, in general, the described type will be not definitely understood by algorithm and, as the consequence, the whole text will lose a part of its topical relevance.
Conclusion / tl;dr
To use HTML5 Microdata attribute itemId and Schema.org properties sameAs and additionalType correctly, they must be clearly distinguished:- itemId and sameAs are about the definition, global identifier, URI
- additionalType is about the class, type