How to relate an ItemList to a Person

15 views
Skip to first unread message

Sergio Redondo

unread,
Mar 14, 2023, 3:21:52 AM3/14/23
to Semantic Search Marketing
Hi all! 
I'm preparing schema markup for author's pages in a magazine website. These pages contains a list of several articles published by each author, list that I markup as ItemList, being each article a ListItem. How can I relate this ItemList to the author (Person)?

I know I can indicate Person as mainEntityOfPage of the page, and ItemList as subjectOf of this same page, but then, Person and ItemList appears as fragmented types:

schemas.png

Thanks in advanced!

jarnovandriel

unread,
Mar 14, 2023, 7:48:52 AM3/14/23
to Semantic Search Marketing
The way I do this is by specifying the Person as the mainEntityOfPage whereas each article in the ItemList refers back to the Person through the author property and the Person's fragment identifier.

Here's an example:

{
  "@context":"https://schema.org",
  "@graph":[{
    "@id": "https://example.com/authors/wile-e-coyote/#mainEntityOfPage",
    "@type": "Person",
    "name": "Wile E. Coyote",
    "url": "https://example.com/authors/wile-e-coyote/",
    "mainEntityOfPage": {
      "@type": "ProfilePage",
      "@id": "https://example.com/authors/wile-e-coyote/"
    }
  },{
    "@type":"ItemList",
    "name": "Articles by Wile E. Coyote",
    "url": "https://example.com/authors/wile-e-coyote/",
    "itemListElement": [{
      "@type": "ListItem",
      "position": 1,
      "item": {
        "@type": "Article",
        "url": "https://example.com/blog/new-explosive-tennis-balls-are-da-bomb/",
        "headline": "New explosive tennis balls are da bomb",
        "author": {"@id": "https://example.com/authors/wile-e-coyote/
#mainEntityOfPage"}
      }
    },{
      "@type": "ListItem",
      "position": 2,
      "item": {
        "@type": "Article",
        "url": "https://example.com/blog/diy-paint-tunnels-are-super-realistic/",
        "headline": "DIY paint tunnels are super realistic",
        "author": {"@id": "https://example.com/authors/wile-e-coyote/
#mainEntityOfPage"}
      }
    }]
  }]
}

jarnovandriel

unread,
Mar 14, 2023, 8:24:44 AM3/14/23
to Semantic Search Marketing
And if you want to the ItemList to be eligible for a carousel you need to multi-type each ListItem as opposed to specifying an "item" property for each a such:

{
  "@context":"https://schema.org",
  "@graph":[{
    "@id": "https://example.com/authors/wile-e-coyote/#mainEntityOfPage",
    "@type": "Person",
    "name": "Wile E. Coyote",
    "url": "https://example.com/authors/wile-e-coyote/",
    "mainEntityOfPage": {
      "@type": "ProfilePage",
      "@id": "https://example.com/authors/wile-e-coyote/"
    }
  },{
    "@type": "ItemList",
    "name": "Articles by Wile E. Coyote",
    "url": "https://example.com/authors/wile-e-coyote/",
    "itemListElement": [{
      "@type": ["ListItem", "Article"],
      "position": 1,

      "url": "https://example.com/blog/new-explosive-tennis-balls-are-da-bomb/",
      "headline": "New explosive tennis balls are da bomb",
      "author": {"@id": "https://example.com/authors/wile-e-coyote/#mainEntityOfPage"}
    },{
      "@type": ["ListItem", "Article"],
      "position": 2,

      "url": "https://example.com/blog/diy-paint-tunnels-are-super-realistic/",
      "headline": "DIY paint tunnels are super realistic",
      "author": {"@id": "https://example.com/authors/wile-e-coyote/#mainEntityOfPage"}
    }]
  }]
}
Reply all
Reply to author
Forward
0 new messages