草庐IT

html - Schema.org 中网页结构的隐含性

coder 2023-08-07 原文

在阅读了数以千计的帖子、问题、博客文章和意见后,我仍然对如何使用微数据标记网页感到困惑。如果微数据的主要目的是帮助搜索引擎更好地理解网页的内容(并且隐式假设网页),那么在body元素中以itemtype Webpage开头,然后继续标记其余部分是否正确?定义哪个是主要实体的嵌套元素,或者最好从理想情况下是网页主要主题的 itemtype 开始并在顶层关联属性,或者最好在顶层具有不同的 itemtype(即网页、博客文章和页面的主要主题)?

一个例子可以更好地解释我的问题:如果我必须标记一个包含关于特定主题(比如无线技术)的博客文章的网页,那么顶级项目应该是什么?应该是网页、博客还是无线技术?

最佳答案

越多越好(有异常(exception))

当涉及到结构化数据时,指南应该是,在典型情况下:越多越好 .如果您提供更多结构化数据(即,您使事情变得明确而不是让它们隐含),消费者找到可以利用的东西的机会就更高。

不遵循本指南的原因可能包括:

  • 您确切地知道您想要支持哪些消费者,以及他们在寻找什么,并且您不关心其他(例如,未知的或新的)消费者。
  • 您知道消费者以无法应对某些结构的方式被窃听。
  • 您需要保存尽可能多的字符(带宽/性能)。
  • 提供额外的结构化数据过于复杂/昂贵。
  • 结构化数据很可能对任何可以想象的消费者都没用。

  • 什么 WebPage提供

    因此,除非您有理由不这样做,否则提供 WebPage type 可能是个好主意。 ...如果你能提供可能有趣的数据。例如:
  • 它允许您为页面和页面上的事物或页面所代表的内容提供不同的 URI,例如人、建筑物等(参见 why this can be usefula slightly more technical answer with details)。
  • hasPart 允许您连接可能是顶级项目的项目,对于它们不一定清楚它们的关系。
  • isPartOf 允许你做这个 WebPage其他内容的一部分(例如,如果您提供 WebSite 项目,则是网站的一部分,或 CollectionPage 的一部分)。
  • 您在页面上有面包屑:使用 breadcrumb 明确表示它们代表此页面的面包屑。
  • 您提供可访问性信息:使用 accessibilityAPI , accessibilityControl , accessibilityFeature , accessibilityHazard
  • author / contributor / copyrightHolder / editor / funder /等等。页面与author不同/... 例如页面的主要内容。
  • 该页面有不同的 license 比页面中包含的一些部分。
  • 您提供可以在页面上/使用页面完成的操作:使用 potentialAction .

  • 当然它也允许你使用 mainEntity ,但如果这是您唯一需要的东西 WebPage项目,你也可以使用逆属性 mainEntityOfPage .

    更具体的WebPage类型

    对于更具体的类型也是如此,它们提供了额外的信号:
  • AboutPage 如果它是关于例如的页面网站、您或您的组织。
  • CheckoutPage 如果是网上商店的结账页面。
  • CollectionPage 如果它是一个关于多种事物的页面(例如,一个列出博客文章的分页页面、一个画廊、一个产品类别,......)。
  • ContactPage 如果是联系页面。
  • ItemPage 如果它是关于一件事情的(例如,一篇博客文章,一张照片,……)。
  • ProfilePage 例如用于用户配置文件。
  • QAPage 如果是……好吧,就在这一页。
  • SearchResultsPage 用于搜索功能的结果页面。

  • 你的榜样

    你的三个案例是:

    <!-- A - only the topic -->
    <div itemscope itemtype="http://schema.org/Thing">
      <span itemprop="name">wireless technology</span>
    </div>
    

    <!-- B - the blog post + the topic -->
    <div itemscope itemtype="http://schema.org/BlogPosting">
      <div itemprop="about" itemscope itemtype="http://schema.org/Thing">
        <span itemprop="name">wireless technology</span>
      </div>
    </div>
    

    <!-- C - the web page + the blog post + the topic -->
    <div itemscope itemtype="http://schema.org/ItemPage">
      <div itemprop="mainEntity" itemscope itemtype="http://schema.org/BlogPosting">
        <div itemprop="about" itemscope itemtype="http://schema.org/Thing">
          <span itemprop="name">wireless technology</span>
        </div>
      </div>
    </div>
    

    A 传达:有一种东西叫“无线技术”。
    B转达:有博文关于 “无线技术”。
    C传达:有一个网页包含单个 博客文章(如 该页面的主要内容 )关于 “无线技术”。

    虽然我不建议使用 A,但使用 B 完全没问题,并且对于大多数用例来说可能已经足够了。虽然 C 已经提供了比 B 更多的细节(即该页面用于单个事物,并且该事物是博客文章,而不是页面上可能也存在的其他一些项目),但对于这样一个简单的项目来说可能不需要它案件。但是一旦你能提供更多数据,这种情况就会改变,在这种情况下,我会选择 C。

    关于html - Schema.org 中网页结构的隐含性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40633571/

    有关html - Schema.org 中网页结构的隐含性的更多相关文章

    1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

      我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

    2. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

      我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

    3. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

      在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

    4. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

      所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

    5. ruby-on-rails - Ruby url 到 html 链接转换 - 2

      我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

    6. ruby - 是否有用于序列化和反序列化各种格式的对象层次结构的模式? - 2

      给定一个复杂的对象层次结构,幸运的是它不包含循环引用,我如何实现支持各种格式的序列化?我不是来讨论实际实现的。相反,我正在寻找可能会派上用场的设计模式提示。更准确地说:我正在使用Ruby,我想解析XML和JSON数据以构建复杂的对象层次结构。此外,应该可以将该层次结构序列化为JSON、XML和可能的HTML。我可以为此使用Builder模式吗?在任何提到的情况下,我都有某种结构化数据-无论是在内存中还是文本中-我想用它来构建其他东西。我认为将序列化逻辑与实际业务逻辑分开会很好,这样我以后就可以轻松支持多种XML格式。 最佳答案 我最

    7. ruby-on-rails - capybara ::ElementNotFound:无法找到 xpath "/html" - 2

      我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'

    8. ruby - 如何使用 Ruby 将 CSV 文件读入 HTML 表格? - 2

      我正在尝试将一个简单的CSV文件读入HTML表格以在浏览器中显示,但我遇到了麻烦。这就是我正在尝试的:Controller:defshow@csv=CSV.open("file.csv",:headers=>true)end查看:输出:NameStartDateEndDateQuantityPostalCode基本上我只获取标题,而不会读取和呈现CSV正文。 最佳答案 这最终成为最终解决方案:Controller:defshow#OpenaCSVfile,andthenreaditintoaCSV::Tableobjectforda

    9. ruby-on-rails - 一般建议和推荐的文件夹结构 - Sinatra - 2

      您将如何构建一个简单的Sinatra应用程序?我正在制作,我希望该应用具有以下功能:“应用程序”更像是一个包含所有信息的管理仪表板。然后另一个应用程序将通过REST访问信息。我还没有创建仪表板,只是从数据库中获取东西session和身份验证(尚未实现)您可以上传图片,其他应用可以显示这些图片我已经使用RSpec创建了一个测试文件通过Prawn生成报告目前的设置是这样的:app.rbtest_app.rb因为我实际上只有应用程序和测试文件。到目前为止,我已经将Datamapper用于ORM,将SQLite用于数据库。这是我的第一个Ruby/Sinatra项目,所以欢迎任何和所有建议-我应

    10. ruby - 如何使用 Nokogiri 解析纯 HTML 表格? - 2

      我想用Nokogiri解析HTML页面。页面的一部分有一个表,它没有使用任何特定的ID。是否可以提取如下内容:Today,3,455,34Today,1,1300,3664Today,10,100000,3444,Yesterday,3454,5656,3Yesterday,3545,1000,10Yesterday,3411,36223,15来自这个HTML:TodayYesterdayQntySizeLengthLengthSizeQnty345534345456563113003664354510001010100000344434113622315

    随机推荐