Schema.org Microdata标记,用于区分照片和艺术

时间:2015-02-02 04:44:07

标签: schema.org photos microdata

与许多网站一样,我们在网站上提供了大量图片。

使用案例:在Google自定义搜索中设置标签/优化,以聚合和过滤两个不同类别的图像对象。使用Schema.org Microdata标记非常简单,效果很好,但我们希望用户选择

1)照片:使用乐器拍摄“照片” - 某种相机/镜头“机器”,包含“现实生活”中的内容

OR

2)ART:插图画家/艺术家创作的所有其他图像:矢量艺术,绘画扫描,绘画扫描,水彩等。

我可以轻松确定哪个是我们的Web CMS从数据库中获取元数据,并通过管道和分支动态插入元数据来驱动内容。像

这样的东西
<section class="page-content" role="main" itemprop="image" itemscope itemtype="http://schema.org/ImageObject">

    <meta itemprop="image" content="Red Roses" />  #art

如果是照片则切换到此

   "itemprop="photo" content="Daffodils" # photo

但这真的不能胜任这项工作。我希望有一些像“imageType”这样的属性,然后我可以像这样应用

   itemprop="imageType" content="photo"
   itemprop="imageType" content="art"

但我在Schema.org中看不到任何符合此要求的内容(我的眼睛正在审查层次结构,但仍然无法找到我需要的内容)。没有什么可以指定“艺术”。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我不知道Google自定义搜索支持哪些功能, 但是您可以使用Schema.org和Microdata获得以下选项。

除非您 立即实施,否则我建议您选择 b)

a)提出新的Schema.org类型/属性

有关链接,请参阅my answer to another question

b)等待适当的Schema.org类型/属性

下一个Schema.org版本将包含VisualArtwork类型draft):

  

主要是视觉上的艺术作品。

它有一个artform属性(draft),它将文本或网址作为值:

  

e.g。绘画,绘画,雕塑,打印,照片,装配,拼贴等

警告提示:这些草稿,可能会有变化!

更新: VisualArtworkartform获得released

<div itemscope itemtype="http://schema.org/VisualArtwork">
  <meta itemprop="artform" content="Painting">
</div>

<div itemscope itemtype="http://schema.org/VisualArtwork">
  <meta itemprop="artform" content="Photo">
</div>

c)使用Schema.org的扩展机制

"slash-based" extension mechanism"outdated",但valid

<div itemscope itemtype="http://schema.org/ImageObject/Photo"></div>
<div itemscope itemtype="http://schema.org/ImageObject/Art"></div>

我只会将此作为最后的手段。

d)使用其他Schema.org类型

这在大多数情况下都不起作用,但在您的情况下可能:您的两张图片都是ImageObject,而且只有照片Photograph

itemtype attribute can have several values只要它们来自相同的词汇表。但请注意,您只能使用为所有已使用类型定义的属性。

<div itemscope itemtype="http://schema.org/ImageObject">
  <!-- art -->
</div>

<div itemscope itemtype="http://schema.org/ImageObject http://schema.org/Photograph">
  <!-- photo -->
</div>

e)使用来自不同词汇表的类型/属性

如果您知道/找到关于您的主题/模型的词汇表,您可以使用相应的类型作为Schema.org的additionalType property的值:

<section itemscope itemtype="http://schema.org/ImageObject">
  <link itemprop="additionalType" href="http://example.com/vocabulary/photo">
</section>

<section itemscope itemtype="http://schema.org/ImageObject">
  <link itemprop="additionalType" href="http://example.com/vocabulary/art">
</section>

如果找到合适的媒体资源,则may use its URLitemprop的价值:

<section itemscope itemtype="http://schema.org/ImageObject">
  <meta itemprop="http://example.com/vocabulary/imageType" content="photo">
</section>

<section itemscope itemtype="http://schema.org/ImageObject">
  <meta itemprop="http://example.com/vocabulary/imageType" content="art">
</section>

f)使用您自己的专有财产

如果找不到合适的词汇,可以use your own URL as property

  

[...]专有项目属性名称(即作者出于私人目的使用的名称,未在公共规范中定义)

(例如 b中的第二个。)

答案 1 :(得分:0)

@unor

我的开发人员告诉我(在我发布之后与他交谈)我们可以使用(以避免在文档中添加另一个元行):

<section itemscope itemtype="http://schema.org/ImageObject"> # for art
<section itemscope itemtype="http://schema.org/Photo"> # for photography

从测试中我发现谷歌实际上会解析这个:它的结构化数据预览器显示它正在被提取。 (虽然它的结构化数据预览可能会引发错误)。因此,我可以在自定义搜索细化/标签中使用它。

但是,从schema.org标准来看,这似乎是错误的 - 因为这两个类

图片:(照片),(绘画,素描,矢量)

都是“ImageObjects”