Suppose I have a WebPage which gives a lot of semantically marked-up information about a specific collection of things. These things could adequately be identified by the type CreativeWork.

On the same page these CreativeWorks are displayed.

Intuitively I would use http://bib.schema.org/Collection for the information section about the collection (and use the the hasPart property to refer to its items), because the definition of Collection is:

A created collection of Creative Works or other artefacts.

See: http://bib.schema.org/Collection

However, bib.schema.org says it is an extension of schema.org, which

defines terms such as Audiobook, Thesis, ComicStory, and workTranslation

This seems limiting the use of bib.schema.org to collections with textual or spoken content.

I doubt if a CollectionPage is a good choice in this case, because the webpage document does not solely lists collections, but also gives a lot of semantically marked-up information about a the collection itself.


Which type should I use for the collection itself? Are there alternatives for CollectionPage which do not identify a page, but rather a section of it?

See also this link, which I found useful while searching for an answer.

1 Answer 1


I don’t think that you need an alternative.

You have three levels (the page, the collection, the items), and all of the three corresponding types you mention would be the best choice.


It’s perfectly fine (and I would guess it’s even the most common case) that a CollectionPage contains content about the collection in addition to the collection items.

WebPage conveys "Here is a web page", while ItemPage conveys "Here is a web page about a single thing", and CollectionPage conveys "Here is a web page about a group of things".

Of course one could argue that the collection itself is the single thing an ItemPage could be about, but that would make the CollectionPage type pointless. ItemPage for a collection could make sense if you only provide content about the collection, but no collection items.


It doesn’t really matter what an extension’s overall purpose is. The only thing that matters is what each single type means.

The Collection type is defined to be for collections of "Creative Works or other artefacts". If it would only be intended for textual or spoken content, it would have been defined as such. (But it’s likely that it would have been renamed then, because Schema.org tries not to use general terms for types which can’t be used according to the meaning of that term. There can only be one type named Collection, because the core vocabulary and all extensions share the same namespace.)

So if you have a collection of CreativeWork items, it’s perfectly fine to use Collection.

If Collection is not appropriate for your case, you could use ItemList instead. Or you could directly use hasPart on CollectionPage (i.e., omitting the second level).


The structure with all three levels could look like this (in RDFa):

<body typeof="schema:CollectionPage">

  <!-- content about the collection page -->
  <time property="schema:dateModified">2017-11-22</time>

  <!-- the collection -->
  <div property="schema:mainEntity" typeof="schema:Collection">

    <!-- content about the collection -->
    <div property="schema:description">…</div>

    <!-- the collection items -->
    <div property="schema:hasPart" typeof="schema:CreativeWork"></div>
    <div property="schema:hasPart" typeof="schema:CreativeWork"></div>
    <div property="schema:hasPart" typeof="schema:CreativeWork"></div>


  • Perfect answer @unor, exactly the kind of information I was looking for.
    – iep
    Nov 23, 2017 at 7:40

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.