添加语义到网站的最佳做法(Best practices for adding semantics t

2019-08-23 00:34发布

我对网站的语义有点糊涂。 据我所知,每一个URI应代表的ressource。 我认为通过RDFa的网页内提供的所有信息描述该网页的URI代表的ressource。 我的问题是:什么是一个网站的子页面提供语义数据的最佳做法。

在我来说,我想创建一个使用RDFa使用schema.org和opengraph词汇叫做岩浆剧团网站。 比方说,我有欢迎页面( http://magma.com/ ),联系人页面( http://magma.com/contact/ )和个人戏剧页( http://magma.com/play/<playid>/ )。

现在我认为,无论是欢迎页面和联系页面表示相同的ressource(岩浆),同时提供有关的ressource不同的信息。 然而,游戏网页代表剧目,只有发生在岩浆中进行。 还是不如说是玩网页也代表了岩浆,但提供有关将由该组来进行播放信息? 我偶然发现了第三个选项是http://schema.org/WebPage 。 特别喜欢亚型ContactPage似乎是相关的。

当涉及到执行,你在哪里我把RDFa的?

最后:我的选择将如何改变该网站是由第三方处理方式(谷歌,Facebook,...)?

我知道这个问题有点模糊。 为了使它更具体的我要补充一个例子,你可能critizise:

<html vocab="http://schema.org/" typeof="TheaterGroup">
  <head>
    <meta charset="UTF-8"/>
    <title>Magma - Romeo and Juliet</title>

    <!-- magma sematics from a template  file -->
    <meta property="name" content="Magma"/>
    <meta property="logo" content="/static/logo.png"/>
    <link rel="home" property="url" content="http://magma.com/"/>
  </head>

  <body>
    <h1>Romeo and Juliet</h1>

    <!-- semantics of the play -->
    <div typeof="CreativeWork" name="Romeo and Juliet">
      ...
    </div>

    <h2>Shows</h2>

    <!-- samantics of magma events -->
    <ul property="events">
      <li typeof="Event"><time property="startDate">...</time></li>
      ...
    </ul>
  </body>
</html>

Answer 1:

据我所知,每一个URI应代表的ressource。 我认为通过RDFa的网页内提供的所有信息描述该网页的URI代表的ressource。

那么,一个HTTP URI可以识别页面本身或页面是关于事。 你不能告诉如果一个URI通过简单地看它标识页面或东西。

实施例(在龟语法):

<http://en.wikipedia.org/wiki/The_Lord_of_the_Rings> ex:author "John Doe"

可能意味着,与URI的HTML页面http://en.wikipedia.org/wiki/The_Lord_of_the_Rings是“李四”撰写。 或者,它可能意味着由HTML页面(→小说)中描述的事情是“李四”撰写。 当然,这是一个重要的区别。

有多种方法来区分一个URI代表什么,并且有一些关于它的争议。 解决这个问题的讨论被称为httpRange-14的问题 。 例如,见维基百科的文章Web资源 。

一种方法是使用哈希的URI( 也看到这个答案 )。 例如: http://magma.com/play/42可以识别页面与该剧有关的, http://magma.com/play/42#play能识别播放

另一种方法是使用HTTP状态代码303。 代码200给出了页面的表现有关的东西,代码303 See Other给出了一个额外的URI标识的东西。 该方法用于通过DBpedia中:

  • http://dbpedia.org/resource/The_Lord_of_the_Rings表示的新颖
  • http://dbpedia.org/page/The_Lord_of_the_Rings代表关于小说的页

    (分别http://dbpedia.org/data/The_Lord_of_the_Rings为机器)

见303和Hash之间进行选择 。

现在,使用RDFa的时候,你可以对两个语句,页面本身和页所代表的东西。 只要使用相应的URI作为受试者(例如,通过使用resource属性 )。

所以我们可以说http://magma.com/#magma代表的戏剧团体。 现在,你可以在每一页上使用URI(/接触,/播放/ ...),以使有关该组的RESP语句。 来指代基。

<div resource="http://magma.com/#magma">
  <span property="ex:name">Magma</span>
</div>

<div resource="http://magma.com/">
  <span property="ex:name">Website of Magma</span>
</div>


Answer 2:

我建议你先看看schema.org简单的文档 。 这个词汇是您的关注非常全面,并通过各大搜索引擎支持。

这里是一个片段例如你上手,你可以包括这条直线在HTML页面中。 当你谈论的,你可以使用页面上性能的发挥:

<div itemscope itemtype="http://schema.org/TheaterEvent">
  <h1 itemprop="name">Romeo and Juliet</h1>
  <span itemprop="location">Council Bluffs, IA, US</span>
  <meta itemprop="startDate" content="2011-05-23">May 23
  <a href="/offers.html" itemprop="offers">Buy tickets</a>
</div>

在您的联系人页面,你可以包括:

<div itemscope itemtype="http://schema.org/TheaterGroup">
  <span itemprop="name">Magma</span>
  Tel:<span itemprop="telephone">( 33 1) 42 68 53 00 </span>
</div>


文章来源: Best practices for adding semantics to a website