Как мне связать элементы в schema.org? - PullRequest
13 голосов
/ 13 октября 2011

Предположим, у меня есть простая HTML-страница о парне, который получает работу:

<!DOCTYPE HTML>
<html>
    <head>
        <meta charset="utf-8">
        <title>New Job for John Doe</title>
    </head>
    <body>
        <h1>New Job for John Doe</h1>
        <p>This week John Doe accepted an offer to become a Software Engineer at MITRE.  John graduated from MIT in 2005 with a BS in Computer Science.  He previously worked at a small company near Boston.  Blah, blah, blah.</p>
        <p>The MITRE Corporation is a not-for-profit organization chartered to work in the public interest.  The MITRE Corporation has two principal locations: Bedford, Massachusetts, and McLean, Virginia.  Blah, blah, blah.</p>
    </body>
</html>

Если я добавлю семантические данные, используя словарь schema.org, это может выглядеть так:

Первый абзац, очевидно, касается человека, Джона Доу, а второй абзац - о компании, корпорации MITRE.Но «МИТЕР» в первом абзаце совпадает с «Корпорацией МИТЕР» во втором.Как я могу явно объявить, что это одно и то же, используя schema.org?

Ответы [ 2 ]

4 голосов
/ 14 января 2013

// Обновление: Schema.org расширил свои спецификации схемы perso

очевидно, что это Лицо связано с Компанией, так что вы можете установить связь между человеком и организацией с помощью человека"itemprop" принадлежность ", поэтому я обернул абзацы с itemscope itemtype =" Person "и расширил Schema Person, добавив itemprop" affiliation "и itemscope itemtype =" Organization ", так что теперь существует семантическое отношение, с которым связан данный человекорганизация.Я также добавил метатег с itemprop = "name", потому что он необходим для выполнения спецификаций "Person"

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="utf-8">
    <title>New Job for John Doe</title>
</head>
<body>
<div itemscope itemtype="http://schema.org/Person">
    <h1>New Job for John Doe</h1>
<meta itemprop="name" content="John Doe" />
    <p>This week John Doe accepted an offer to become a <span itemprop="jobTitle">Software Engineer</span> at <span itemprop="worksFor">MITRE</span>.  John graduated from <span itemprop="alumniOf">MIT</span> in 2005 with a BS in Computer Science.  He previously worked at a small company near Boston.  Blah, blah, blah.</p>
    <p itemprop="affiliation" itemscope itemtype="http://schema.org/Organization">The MITRE Corporation is a not-for-profit organization chartered to work in the public interest.  The MITRE Corporation has two principal locations: <span itemprop="location">Bedford, Massachusetts</span>, and <span itemprop="location">McLean, Virginia</span>.  Blah, blah, blah.</p>
</div> <!-- closing Schema "Person" -->
</body>
</html>

. Вы можете поместить это в инструмент для тестирования фрагментов Google, и я предполагаю, что вывод - это то, что вы гдеищу

Item 
type:   http://schema.org/person
property:   
name:   John Doe
jobtitle:   Software Engineer
worksfor:   MITRE
alumniof:   MIT
affiliation: Item 1


Item 1
type:   http://schema.org/organization
property:   
location:   Bedford, Massachusetts
location:   McLean, Virginia
1 голос
/ 14 октября 2011

Моя первая попытка ответить на мой собственный вопрос состояла в том, чтобы использовать атрибут itemref, например:

<p itemscope itemtype="http://schema.org/Person">
    This week John Doe accepted an offer to become a
    <span itemprop="jobTitle">Software Engineer</span>
    at <span itemprop="worksFor" itemref="TheMitreCorporation">MITRE</span>.
    John graduated from <span itemprop="alumniOf">MIT</span>
    in 2005 with a BS in Computer Science.
    He previously worked at a small company near Boston.  Blah, blah, blah.
</p>

<p itemscope itemtype="http://schema.org/Corporation" id="TheMitreCorporation">
    The MITRE Corporation is a not-for-profit organization chartered to work in the public interest.
    The MITRE Corporation has two principal locations:
    <span itemprop="location" itemscope itemtype="http://schema.org/Place">
        <span itemprop="name">Bedford, Massachusetts</span>
    </span>, and
    <span itemprop="location" itemscope itemtype="http://schema.org/Place">
        <span itemprop="name">McLean, Virginia</span>
    </span>. Blah, blah, blah.
</p>

Но некоторые комментаторы справедливо указали, что это неправильное использование этого атрибута.

Итак, вот моя вторая попытка: используйте вместо этого атрибут itemid.Оба экземпляра названия компании имеют атрибут itemscope и itemtype, и им обоим присвоено одно и то же значение itemid, являющееся URL-адресом.

В спецификации указано : "Атрибут itemid, если он указан, должен иметь значение, являющееся действительным URL-адресом, потенциально окруженным пробелами ... Глобальный идентификатор элемента - это значение атрибута itemid его элемента, если он есть, разрешенный относительноэлемент, для которого указан атрибут ... Атрибут itemid нельзя указывать в элементах, для которых не указан ни атрибут itemscope, ни атрибут itemtype. "

<p itemscope itemtype="http://schema.org/Person">This week John Doe accepted an offer to become a <span itemprop="jobTitle">Software Engineer</span> at <span itemprop="worksFor" itemscope itemtype="http://schema.org/Corporation" itemid="http://www.mitre.org">MITRE</span>.  John graduated from <span itemprop="alumniOf">MIT</span> in 2005 with a BS in Computer Science.  He previously worked at a small company near Boston.  Blah, blah, blah.</p>
<p itemscope itemtype="http://schema.org/Corporation" itemid="http://www.mitre.org">The MITRE Corporation is a not-for-profit organization chartered to work in the public interest.  The MITRE Corporation has two principal locations: <span itemprop="location" itemscope itemtype="http://schema.org/Place"><span itemprop="name">Bedford, Massachusetts</span></span>, and <span itemprop="location" itemscope itemtype="http://schema.org/Place"><span itemprop="name">McLean, Virginia</span></span>.  Blah, blah, blah.</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...