Microdata error: "The property http://xmlns.com/foaf/0.1/name is not recognized by Google" - schema.org

The way I understand it, the Schema.org type called Product inherits from the type Thing. So why does this:
<meta itemscope="" itemtype="http://schema.org/Product" itemid="https://some.url" itemref="md25" />
<div class="field-item even" itemprop="description http://xmlns.com/foaf/0.1/description">
long description goes here
</div>
<meta itemprop="name http://xmlns.com/foaf/0.1/name" content="Blueair Pro L" id="md25" />
… fail, when I enter it in Google's testing tool?
I get error:
The property http://xmlns.com/foaf/0.1/name is not recognized by Google for an object of type Product.
But description is part of Thing and Product inherits from it. It even shows it on the Schema.org page here.
So why is this error being thrown?

The quoted message is about the property http://xmlns.com/foaf/0.1/name, not about the property http://schema.org/name or http://schema.org/description.
And it doesn’t say that it would be an error (in Microdata, it is valid to use absolute URLs as properties), it just says that Google doesn’t recognize it. Which is not surprising, because Google doesn’t document support for the FOAF vocabulary.
On a side note: You can’t use the meta with itemscope like that. You should use a div (or a more specific) element instead.

Related

SDTT error: "Service is not a known valid target type for the itemReviewed property"

Using the following HTML+RDFa:
<div vocab="https://schema.org/" typeof="Service">
<meta property="name" content="My Service Name"/>
<div property="description">
For verified ratings of our services, please view our:
<a
href="https://www.capterra.com/link/to/captera"
target="_blank"
>4.9 Star Rating on Capterra</a>
</div>
<div property="aggregateRating" typeof="AggregateRating">
<div>
Capterra Rating:
<span property="ratingValue">4.9</span> out of
<span property="bestRating">5</span> with
<span property="ratingCount">112</span> ratings
</div>
</div>
</div>
This snippet is in my code, but when I test it all in Google's Structured Data Testing Tool, I get the following error:
I'm having trouble accepting this error because (if i'm reading this correctly), according to the Service docs in https://schema.org/, this is a supported property. I'm sure there is a syntax error somewhere or, if I dare touch the sun, Google is wrong.
I ran it through the structured data and it recognized it:
What am I doing wrong here?
You are not doing anything wrong.
On 16th Sep 2019, Google tweaked their rich snippets requirements, wherein the itemReviewed property is now supported only for a very small list of Schema.org types.
As per Google:
While, technically, you can attach review markup to any schema type,
for many types displaying star reviews does not add much value for the
user. With this change, we’re limiting the pool of schema types that
can potentially trigger review rich results in search. Specifically,
we’ll only display reviews with those types (and their respective
subtypes)...
Earlier, CreativeWork, Article, BlogPosting, Service were all supported and there was no error message on the structured data testing tool.
Now, any schema other than the list below will trigger a '_______ is not a known valid target type for the itemReviewed property.' error.
The valid types for the itemReviewed property are:
Book
ListItem
Course
CreativeWorkSeason
CreativeWorkSeries
Episode
Event
Game
HowTo
LocalBusiness
MediaObject
Movie
MusicPlaylist
MusicRecording
Organization
Product
Recipe
SoftwareApplication
Note : There are other schema types that are valid and may not trigger an error message on the testing tool for aggregateRating or itemReviewed. However, from the Google Blog posting, I understand it as 'Even if the schema is valid, stars / rich snippets may not show up for schemas other than those specifically listed.'

Can value in PropertyValue be an array? [duplicate]

A Schema.org object of type Person can have a sameAs property of type URL. According to Google's structured data site, the sameAs property can be a single item or an array.
The docs on Schema.org do not mention whether sameAs can be a single item or an array. Is this just Google deviating from Schema.org? Or is it the case that all properties in Schema.org can be single items or arrays?
Every Schema.org property can have multiple values. It doesn’t necessarily make sense for some properties (e.g., birthDate), but it’s still allowed.
In JSON-LD:
"sameAs": ["/foo", "/bar"],
In Microdata:
<link itemprop="sameAs" href="/foo" />
<link itemprop="sameAs" href="/bar" />
In RDFa:
<link property="sameAs" href="/foo" />
<link property="sameAs" href="/bar" />
This doesn’t necessarily mean that Google (or any other consumer) supports this for every property, too. So when Google explicitly mentions this in their documentation, you can be sure that the respective search result feature works with multiple values.

How to define multiple dietary restrictions in suitableForDiet field? [duplicate]

A Schema.org object of type Person can have a sameAs property of type URL. According to Google's structured data site, the sameAs property can be a single item or an array.
The docs on Schema.org do not mention whether sameAs can be a single item or an array. Is this just Google deviating from Schema.org? Or is it the case that all properties in Schema.org can be single items or arrays?
Every Schema.org property can have multiple values. It doesn’t necessarily make sense for some properties (e.g., birthDate), but it’s still allowed.
In JSON-LD:
"sameAs": ["/foo", "/bar"],
In Microdata:
<link itemprop="sameAs" href="/foo" />
<link itemprop="sameAs" href="/bar" />
In RDFa:
<link property="sameAs" href="/foo" />
<link property="sameAs" href="/bar" />
This doesn’t necessarily mean that Google (or any other consumer) supports this for every property, too. So when Google explicitly mentions this in their documentation, you can be sure that the respective search result feature works with multiple values.

Publisher and Name Microdata

In a BlogPosting or an Article if the publisher is a person how to use Schema.org and Microdata?
I could find that answer:
Proper way to use 'publisher' in BlogPosting
<div itemprop="publisher" itemscope itemtype="http://schema.org/Person">
<span itemprop="name">Some Name</span>
</div>
But the Google Testing Tool says:
The attribute publisher.itemtype has an invalid value
Perhaps I do not understand well well the answer? How to use publisher if it is a person or if it is the same than the author?
That is the correct way to provide the publisher in case it’s a person.
Unfortunately, most of the time Google’s SDTT reports something as error which isn’t an error with Schema.org/Microdata, but with Google’s requirements for getting one of their rich results.
This seems to be the case here, too: it’s likely an error for the AMP version of the Articles rich result, for which Google only considers organizations (and not persons) as publishers:
publisher
Organization; required (AMP), ignored (non-AMP)
The publisher of the article.
So if the publisher is a person, simply ignore this error.
If the publisher is the same as the author, you can use both properties in the same itemprop attribute:
<div itemprop="author publisher" itemscope itemtype="http://schema.org/Person">

Proper way to use the 'publisher' property ("The attribute publisher.itemtype has an invalid value.")

When I attempt to validate my structured data using Google's Structured Data Testing tool, I get an error:
The attribute publisher.itemtype has an invalid value.
I am getting that on this line:
<meta itemprop="publisher" content="My Real Name Here" />
How do I provide a valid value for this property?
The expected value of the publisher property is another item (Organization or Person).
While Schema.org always allows to provide a string value (like you do), Google might require a certain value type for one of their search features (e.g., an Organization value for their Articles rich result for AMP HTML pages). If you don’t care about (or can’t qualify for) this feature, you can ignore the error in the SDTT.
The problems with using a string value: it’s not clear if the publisher is a person or an organization, and it’s not possible to provide additional data about the publisher.
If you want to provide an item, it could look like:
<div itemprop="publisher" itemscope itemtype="http://schema.org/Person">
<p itemprop="name">NewGuy</p>
</div>
<div itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
<p itemprop="name">NewGuy Inc.</p>
</div>