schema.org вкладывает ItemList в ресторан

Мне нужно разметить список элементов (свойства ресторана, такие как «коктейль-бар», «терраса», «бесплатные парковки») на веб-сайте ресторана. Schema.org определяет тип «Ресторан» в следующей цепочке:

Thing -> Организация -> Местный бизнес -> FoodEstablishment -> Ресторан

В рамках элемента «Ресторан» не определен «ItemList». Можно ли добавить «ItemList» в блок разметки «Restaurant», хотя «ItemList» определен в этой цепочке?:

Вещь -> Творчество -> Список предметов

Спасибо!
нински


person ninsky    schedule 05.07.2011    source источник


Ответы (4)


Поверхностный ответ: «Нет». Единственная гарантированная обработка ItemList будет в контексте CreativeWork.

Более расплывчатым ответом будет «возможно?». Ничто не мешает вам просто использовать его. В худшем случае его просто проигнорируют. Google может что-то с этим сделать, а может и нет.

Однако в нынешнем виде просто не гарантируется поддержка какой-либо структуры списка в используемых вами типах элементов.

person Chris Pratt    schedule 05.07.2011
comment
Хорошо, но в этом случае я также могу отказаться от разметки этого контента как ItemList. Таким образом, содержание не может быть повреждено из-за неправильной вложенной семантики... но, тем не менее, спасибо за ваш комментарий! - person ninsky; 06.07.2011

Насколько я знаю, ItemLists для таких функций ресторана вообще не понимают. Я рассмотрю более структурированные способы сделать это, но, возможно, на данный момент содержание лучше всего представлено в описании.

person Dan Brickley    schedule 23.10.2011

Технически вы можете использовать itemprop contentLocation списка ItemList для ссылки на ресторан. Например, вы можете использовать следующий код:

<!doctype html>
    <head>
        <title>My Restaurant</title>
    </head>
    <body>
        <div itemscope itemtype="http://schema.org/ItemList">
            <div itemprop="contentLocation" itemscope itemtype="http://schema.org/Restaurant">
            <span itemprop="name">My Restaurant</span>
        </div>
        <ul>
            <li itemprop="itemListElement">cocktailbar</li>
            <li itemprop="itemListElement">terrace</li>
            <li itemprop="itemListElement">free parking lots</li>
        </ul>
    </div>
</body>
</html>

Пример кода приводит к следующему инструменту Google Rich Snippet:

Item
    Type: http://schema.org/itemlist
    contentlocation = Item( 1 )
    itemlistelement = cocktailbar
    itemlistelement = terrace
    itemlistelement = free parking lots
Item 1
    Type: http://schema.org/restaurant
    name = My Restaurant  

Вместо этого вы можете использовать itemprop «о». Если это имеет смысл для вас, то это МОЖЕТ иметь смысл и для бота. Если для вас это не имеет смысла, то я бы не стал заставлять.

person Justin Nafe    schedule 09.12.2011

Да, но не с помощью ItemList. ItemList является Творческой работой и «используется для чего-то, созданного его автором специально в виде списка, такого как «Список 10 лучших»» (из http://www.HTML-5.com/microdata)./schemas/item-list.html). Это не тип данных, и поэтому его не следует использовать как общий набор элементов (см. http://www.HTML-5.com/microdata/index.html#item-list-vs-html-list).

Вместо этого для такого контейнера вы должны использовать свойство «containedIn» с атрибутом «itemref». Вот хороший пример бара и ресторана в одном месте:

http://www.HTML-5.com/microdata/schemas/food-installation.html#examples

Хотя в этом примере бар и ресторан определены как «контактные точки», поскольку у них есть собственный телефон и/или URL-адрес в Интернете, вы, вероятно, опустите это для таких вещей, как парковка (если только там нет камердинера с телефоном!). Тот факт, что свойство itemref всех характеристик («коктейль-бар» — вероятно, «BarOrPub», «терраса» — возможно, «Место», «бесплатные парковки» — может быть, просто «Вещь») заведения ссылается на одно и то же. место обеспечивает отношения, которые вы искали.

person Rob at TVSeries.com    schedule 15.03.2012