Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce FAQPage as subtype (sibling?) of QAPage, for "Frequently asked questions" #1723

Closed
danbri opened this issue Aug 23, 2017 · 35 comments
Closed

Comments

@danbri
Copy link
Contributor

@danbri danbri commented Aug 23, 2017

Context: when we did the Q/A design a few years ago (/cc @scor) we included a "QAPage" construct, to capture the idea that there are pages which carry collections of questions and answers. In retrospect I wasn't sure that it was a great idea, but the type is there.

Talking with colleagues at Google, we are interested to have schema that distinguishes "Frequently asked questions" content on the Web. Often these are several Q/A pairs to a page, sometimes organized into categories. Other times they are published one page per question.

We think "about" or "keywords" properties could handle the categorization aspect, and that perhaps the itemref construct might be useful to avoid duplication/verbosity when using Microdata and when all the items in one category have the same keywords. As an aside, perhaps in future "categories", "keywords" could be considered as subproperty of "about" and their structure/definition converged.

Proposal:

Add a new type FAQPage as a subtype [edit: or sibling] of QAPage, definition:

A [[FAQPage]] is a [[QAPage]] presenting one or more "Frequently asked questions".

We would add examples for a single page with a single question, and for a larger page with several questions, including categories handled via "about" and/or "keywords" properties on the QAPage and/or the Question (assuming that Answers rarely get dedicated metadata for such things).

Pinging @scor @tmarshbing @nicolastorzec @vholland @rvguha @tilid for perspectives

@danbri
Copy link
Contributor Author

@danbri danbri commented Aug 23, 2017

@rvguha
Copy link
Contributor

@rvguha rvguha commented Aug 23, 2017

Looks good to me.

guha

@vholland
Copy link
Contributor

@vholland vholland commented Aug 23, 2017

Looks good to me

@nicolastorzec
Copy link
Contributor

@nicolastorzec nicolastorzec commented Aug 23, 2017

I like the idea of having FAQs but I don't see the benefit of making it a subclass of QAPage.

  • A QA page from a web portal like Quora, Yahoo Answer, or StackExchange is typically about one question and its answer(s) from one (or more) user(s).

  • A FAQ page is typically a collection of curated <question, answer> pairs, potentially organized into topical sections: i.e. multiple sections/topics per FAQ, multiple questions per section/topic, one official answer per question, one curator, etc.

FAQPage and QAPage should just be siblings.

@emekaokoye
Copy link

@emekaokoye emekaokoye commented Aug 24, 2017

FAQPage is a very good idea.

But let FAQPage be a subclass of schema:webpage while QAPage be a subclass of FAQPage.

Why?

Simply because QAPage represents a schema:webpage with multiple answers and FAQPage represents one of the following:

  1. Schema:webpage with 1 question and N answers.
  2. Schema:webpage with N questions and N answers.
  3. Schema:webpage with 1 question and 1 answer.
  4. Schema:webpage with N questions and 0 answers but questions are linked to #3.
@MrJonPayne
Copy link

@MrJonPayne MrJonPayne commented Aug 24, 2017

I'd be careful about the 'keywords' & 'category' properties. You will likely find a lot of excitable SEO chaps stuffing these with poor quality data in the mistaken belief that they will somehow achieve some sort of answer box nirvana on Google search results pages.

@VladimirAlexiev
Copy link

@VladimirAlexiev VladimirAlexiev commented Aug 24, 2017

  • isn't there a general mechanism to indicate preferredness, notability, or importance? If not, I think we need one.
    I'm thinking of cultural heritage, where it's important to indicate the preferred image and title of an artwork
  • @emekaokoye @nicolastorzec QAPage is defined as "focussed on a specific Question and its Answer(s)" while FAQPage is only about important questions, so indeed these would be siblings.
  • please change the issue title to say "subtype of QAPage" (now it says subtype of itself)
@danbri danbri changed the title Introduce FAQPage as subtype of FAQPage, to indicate "Frequently asked question" pages Introduce FAQPage as subtype (sibling?) of QAPage, for "Frequently asked questions" Aug 24, 2017
@danbri
Copy link
Contributor Author

@danbri danbri commented Aug 24, 2017

@MrJonPayne indeed, a lot of people see 'keywords' as a kind of 1990s relic. But it may yet still have usecases when carefully used.

@danbri
Copy link
Contributor Author

@danbri danbri commented Aug 24, 2017

Ok, the point about sibling rather than subtype is sounding persuasive; I've amended the title here for now

@Aaranged
Copy link

@Aaranged Aaranged commented Aug 24, 2017

I like where this is going. In particular, I think planning to accommodate FAQs that consist of multiple question/answer pairs is critical, as this is probably the most common form of FAQ pages.

I would think it's obvious, but one of the things that this type should leverage is existing Question/question and Answer/answer vocabulary. ItemList may also have a place in being able to address those multiple Q/A pairs

Broadly agree that this makes more sense as a sibling than a subtype.

@nicolastorzec
Copy link
Contributor

@nicolastorzec nicolastorzec commented Aug 24, 2017

@VladimirAlexiev: I added some thoughts on preferredness/notability/importance on #1726

@kidehen
Copy link

@kidehen kidehen commented Aug 24, 2017

@danbri ,

Here's our FAQ Ontology : http://www.openlinksw.com/ontology/faq# .

@jeannieh
Copy link

@jeannieh jeannieh commented Aug 26, 2017

With Google Maps now offering a means to both ask and answer questions, this may possibly be confusing if it is made a subclass of QAPage. I too, agree with the thought about using a sibling.

danbri added a commit that referenced this issue Sep 1, 2017
danbri added a commit that referenced this issue Sep 1, 2017
danbri added a commit that referenced this issue Sep 1, 2017
@danbri
Copy link
Contributor Author

@danbri danbri commented Sep 1, 2017

Ok, draft staged at http://pending.webschemas.org/FAQPage - please take a look

(Once we're happy let's cross-reference it back from QAPage too.)

@danbri
Copy link
Contributor Author

@danbri danbri commented Sep 11, 2017

Note that http://pending.schema.org/BackgroundNewsArticle also talks about FAQs. We should figure out how these relate.

@danbri
Copy link
Contributor Author

@danbri danbri commented Sep 11, 2017

I wouldn't say FAQPage is a subtype of BackgroundNewsArticle as not all FAQs are news-related. But we should at least cross-link the definitions.

@danbri
Copy link
Contributor Author

@danbri danbri commented Nov 9, 2017

Any final comments on this? It is on its way to be included in the pending section of our next release

@magico
Copy link

@magico magico commented Nov 9, 2017

Looks good. Would it be useful to add a reference to schema.org/Question? Something along the lines of...

A FAQPage is a WebPage presenting one or more frequently asked Question (see also QAPage).

@Mart-Bogdan
Copy link

@Mart-Bogdan Mart-Bogdan commented Dec 11, 2018

Is it planned to be ever released? Seems around a year have passed.
Is it possible to use QAPage for google to be indexed by? With more then one question+answer on page, or would it just reject all questions but one?

@AnhellO
Copy link

@AnhellO AnhellO commented Dec 11, 2018

Is it planned to be ever released? Seems around a year have passed.
Is it possible to use QAPage for google to be indexed by? With more then one question+answer on page, or would it just reject all questions but one?

@Mart-Bogdan, I am still waiting for the FAQ schema news as well. I am using it in the meantime, even when it is still being under the pending schema, because the Q&A schema markup won't work for pages with more than one question, you will get multiple warnings on the structured data tool, even if you try it:

@Mart-Bogdan
Copy link

@Mart-Bogdan Mart-Bogdan commented Dec 11, 2018

@AnhellO actually there are no errors/warning in test tool, but I believe google would silently ignore it.

image

@AnhellO
Copy link

@AnhellO AnhellO commented Dec 11, 2018

@Mart-Bogdan: That makes sense, maybe they applied those changes to the structured data tool with the recent updates they did to the QAPage schema markup. In any case, I guess for both cases it will silently ignore (FAQPage and QAPage with multiple questions).

@chaduhduh
Copy link

@chaduhduh chaduhduh commented Dec 17, 2018

I would benefit from a FAQPage schema as well, separate from the QAPage schema. Any updates on this??

@ghost
Copy link

@ghost ghost commented Jan 11, 2019

@danbri I was looking at the pending spec would it not be a good idea to add some special properties to that class for example:

  • question
  • answer

Also create an extra @type so people can mark up a list of Question and Answers.

Something like:

<script type="application/ld+json">
{
 "@context": "http://schema.org",
 "@type": "FAQPage",
 "name": "FAQ on Widgets",
 "description": "Find answers to the most popular questions about our range of widgets",
 "url": "https://www.example.com/faq",
 "numberOfItems": 2,
 "itemListElement":
 [
  {
   "@type": "ListItem",
   "position": 1,
   "item":
   {
    "question": "what color widgets do you sell?",
    "answer": "we sell blue and red ones"
    }
  },
  {
   "@type": "ListItem",
  "position": 2,
  "item":
   {
     "qusetion": "how much do the widgets cost?",
     "answer": "1usd each"
   }
  }
 ]
}
</script>
@dbiollo
Copy link
Contributor

@dbiollo dbiollo commented Jan 14, 2019

A sibling type QAPage is documented in Google Structured Docs as having "mainEntity" where the Question & Answers go: https://developers.google.com/search/docs/data-types/qapage#QAPage

schema.org/Question and schema.org/Answer already encapsulate questions and answers.

The same could work for FAQPage, as mainEntity can be a repeated field, containing Question with an Answer.

@MichaelAndrews-RM
Copy link

@MichaelAndrews-RM MichaelAndrews-RM commented Jan 25, 2019

@ayumihamsaki The schema.org vocabulary already has entities for Question (“A specific question - e.g. from a user seeking answers online, or collected in a Frequently Asked Questions (FAQ) document.”) and Answer.

The relationship between Question, Answer, and FAQPage should be explicit in the documentation so that webmasters know how to use them together.

<script type="application/ld+json">
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": {
      "@type": "Question",
      "name": "How many ounces are there in a pound?",
      "text": "I have taken up a new interest in baking and keep running across directions in ounces and pounds. I have to translate between them and was wondering how many ounces are in a pound?",
      "dateCreated": "2016-07-23T21:11Z",
      "author": {
        "@type": "Person",
        "name": "New Baking User"
      },      
       "acceptedAnswer": {
        "@type": "Answer",
        "text": "1 pound (lb) is equal to 16 ounces (oz).",
        "dateCreated": "2016-11-02T21:11Z",
       "url": "https://example.com/question1#acceptedAnswer",
        "author": {
          "@type": "Person",
          "name": "Customer Service team"
        }      
       }
    }
}
</script>

@ghost
Copy link

@ghost ghost commented Jan 25, 2019

Thanks both for your answers. I would like to re-write my comment to this:

The problem is that Schema.org is the 'Spec' and Google uses the Spec (not Schema using the Google Developers infomation). Everyone is linking to the Google Developers Page here: https://developers.google.com/search/docs/data-types/qapage

Yet the Schema.org webpages found here:

https://schema.org/QAPage
https://pending.schema.org/FAQPage

There is no mention under the section "Properties from CreativeWork" listing the properties:

https://schema.org/Question
https://schema.org/Answer
etc.

I suggest that the schema team add the extra information to the schema.org web pages, with the missing properties. I think the web pages with either required or recommended properties have to be listed to the relevant schema.org class web pages.

Otherwise the schema.org website is useless and doesn't match the Namespace (filled with all the class and property elements), see here: https://www.w3.org/2012/pyRdfa/extract?uri=http%3A%2F%2Fschema.org%2Fdocs%2Fschema_org_rdfa.html&format=n3

Both should match perfectly!

Also I have one last question, schema:QAPage Spec says to use only ONE QUESTION and schema:FAQPage you can use MULTIPLE QUESTIONS!

I would like to see an example code with MULTIPLE QUESTIONS please.

Thanks.

@MichaelAndrews-RM
Copy link

@MichaelAndrews-RM MichaelAndrews-RM commented Jan 25, 2019

@ayumihamsaki Good questions. I agree that the community documentation needs more detailed examples -- I think we are drawing on the Google example of QAPage because an example in schema.org's documentation for an FAQPage is lacking an example. In the schema.org spec, there are no recommended properties, so the publisher needs to consider how consumers will use the data. I won't expect suggestedAnswers and upvoteCounts would be used.

I would expect a FAQPage to have multiple questions. @dbiollo says a mainEntity can be repeated (though the definition of mainEntity in the documentation reads in the single: "the primary entity described in some page") If mainEntity can handle more than one question, I would create an array and list all the Question & Answer statements within the array. Someone more expert than me can correct me about that approach!

@ghost
Copy link

@ghost ghost commented Jan 25, 2019

@MichaelAndrews-RM Thanks for the extra info! Didn't know that the mainEntity can be repeated.

@riazhamed143
Copy link

@riazhamed143 riazhamed143 commented Jan 27, 2019

Any comments on the below code as it is working fine with Structure Data Testing Tool. No Errors or warning

<script type="application/ld+json"> { "@context": "http://schema.org/", "@type": "FAQPage", "@graph": [ { "@type": "Question", "text": "What is a cat?", "dateCreated": "2019-01-27T14:01Z", "acceptedAnswer": { "@type": "Answer", "text": "(The text of the accepted answer goes here...).", "dateCreated": "2019-01-27T14:01Z" } }, { "@type": "Question", "text": "Who is the best play in the world?", "dateCreated": "2019-01-27T14:01Z", "acceptedAnswer": { "@type": "Answer", "text": "Cristiano Ronaldo", "dateCreated": "2019-01-27T14:01Z" } } ] } </script>

image

@Ezra-Siton-UIX
Copy link

@Ezra-Siton-UIX Ezra-Siton-UIX commented Feb 4, 2019

Please add this feature (Usefull for endless sites) - like @ayumihamsaki wrote above. The QA is to complex (Most sites without this data structure).

Q --> Answer
Q --> Answer

@chaduhduh
Copy link

@chaduhduh chaduhduh commented Feb 11, 2019

@riazhamed143 , I believe @Mart-Bogdan (and others) suggested that although there are no errors or warnings (with the provided snippet), it will simply be ignored by Google. Not sure if that is the info you are after or not.

danbri added a commit that referenced this issue Feb 19, 2019
@DamonHD
Copy link

@DamonHD DamonHD commented Mar 9, 2019

How is one meant to deal with pages which embed a FAQ/Q&A section, eg within an article or review?

@DamonHD
Copy link

@DamonHD DamonHD commented Apr 8, 2019

To answer my own question, though I have no idea whether this is a Good Idea, is that I have made a typical such page BOTH an Article and a FAQPage (ie itemtype has both), so that it can have features of both. (Yandex and Google checkers seem happy with this, for example.)

@RichardWallis
Copy link
Contributor

@RichardWallis RichardWallis commented Apr 10, 2019

Implemented in release 3.5

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
You can’t perform that action at this time.