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

Add a Quotation type with supporting properties #247

Open
danbri opened this issue Jan 22, 2015 · 47 comments
Open

Add a Quotation type with supporting properties #247

danbri opened this issue Jan 22, 2015 · 47 comments
Assignees

Comments

@danbri
Copy link
Contributor

danbri commented Jan 22, 2015

https://www.w3.org/wiki/WebSchemas/QuotationSchema

Draft schema (pretty basic)

Quotation A quotation from some work, attributable to real world author and - if associated with a fictional character - to any fictional Person. Use isBasedOnUrl to link to source/origin. Subclass of: CreativeWork
<div typeof="rdf:Property" resource="http://schema.org/spokenByCharacter">
  <span class="h" property="rdfs:label">spokenByCharacter</span>
  <span property="rdfs:comment">The (e.g. fictional) character, Person or Organization to whom the quotation is attributed within the containing CreativeWork.</span>
  <span>domainIncludes: <a property="http://schema.org/domainIncludes" href="http://schema.org/Quotation">Quotation</a></span>
  <span>rangeIncludes: <a property="http://schema.org/rangeIncludes" href="http://schema.org/Person">Person</a></span>
  <span>rangeIncludes: <a property="http://schema.org/rangeIncludes" href="http://schema.org/Organization">Organization</a></span>
</div>
@danbri danbri self-assigned this Jan 22, 2015
danbri referenced this issue in schemaorg/schemaorg Apr 4, 2016
@danbri
Copy link
Contributor Author

danbri commented Apr 4, 2016

This has been floating around forever. I have recently created a 'pending' schema to surface some of these ideas that have been stuck in review, so that they can be seen, implemented, reviewed without diving around inside the issue tracker.

http://pending.webschemas.org/Quotation

The old Wiki page linked above has some more potential properties that could be added. We also should add an example, especially showing how to include the main body of the quotation (via 'text' property).

May also be relevant to schemaorg/schemaorg#1061 for fact-checking sites.

@vholland
Copy link

vholland commented Apr 4, 2016

There are two types of examples: quotes from fiction and quotes by real people. As an example, of both:

{
  "@context": "http://schema.org/",
  "@type": "Quotation",
  "spokenByCharacter": {
    "@type": "Person",
    "name": "Princess Leia"
  },
  "text": "Help my Obi Wan. You're my only hope.",
  "isPartOf": {
    "@type": "Movie",
    "name": "Star Wars Episode IV: A New Hope"
  }
}
{
  "@context": "http://schema.org/",
  "@type": "Quotation",
  "creator": {
    "@type": "Person",
    "name": "Franklin Delano Roosevelt"
  },
  "text": "The only thing we have to fear is fear itself."
}

@danbri
Copy link
Contributor Author

danbri commented Apr 4, 2016

Updated http://pending.webschemas.org/Quotation with these examples.

@danbri
Copy link
Contributor Author

danbri commented Apr 4, 2016

Does anyone want to argue for the inclusion of more properties?

Or know where things got to in the Wikipedia/Wikidata world on this front? I found https://www.wikidata.org/wiki/Q19581108 in Wikidata but it seems incomplete.

@danbri
Copy link
Contributor Author

danbri commented Apr 4, 2016

Note that Vicki's examples simply use isPartOf for the quotation coming from a creative work; earlier sketches used http://schema.org/isBasedOnUrl

@TzviyaSiegman
Copy link

Structurally, I think this covers use cases in publishing without attempting to duplicate PROV-O or FRBR and friends. It would be a good idea to include examples of quotes from publications that are not intended to be credited to fictional characters. It is very common for a book or article to begin with an epigraph.

Something like this:

"@context": "http://schema.org/",
  "@type": "Quotation",
  "creator": {
    "@type": "Person",
    "name": "F Scott Fitzgerald"
  },
    "text": "So we beat on, boats against the current, borne ceaslessly into the past.",
    "isPartOf": {
    "@type": "CreativeWork",
    "name": "The Great Gatsby"
}

@danbri
Copy link
Contributor Author

danbri commented Apr 4, 2016

Thanks, @TzviyaSiegman - are you also suggesting we should figure out a pattern to represent the case where a quote like this one appears within another work? Let's say a book chapter leads with this Great Gatsby quote, ... the example above captures the basics of the quote (who said it and where); but how should we tie that to the chapter itself? /cc @RichardWallis @dbs

Ingredients include:

@TzviyaSiegman
Copy link

Yes, and I'm going to let @darobin answer.

On Mon, Apr 4, 2016 at 3:08 PM, Dan Brickley notifications@github.com
wrote:

Thanks, @TzviyaSiegman https://github.com/TzviyaSiegman - are you also
suggesting we should figure out a pattern to represent the case where a
quote like this one appears within another work? Let's say a book chapter
leads with this Great Gatsby quote, ... the example above captures the
basics of the quote (who said it and where); but how should we tie that to
the chapter itself? /cc @RichardWallis https://github.com/RichardWallis
@dbs https://github.com/dbs

Ingredients include:


You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/schemaorg/schemaorg/issues/271#issuecomment-205451202

@Dataliberate
Copy link

A http://schema.org/citation could be http://schema.org/isPartOf a http://bib.schema.org/Chapter

http://schema.org/citation is more about a work that cites another in its text. Source is a better match I believe for defining who or where a quotation came from. However the current definition of http://schema.org/source is way wide of what is needed here.

@danbri
Copy link
Contributor Author

danbri commented Apr 4, 2016

I have just posted a fix for schemaorg/schemaorg#950 so isBasedOn is now available. Queued at http://webschemas.org/isBasedOn

(assuming nobody objects, which I would predict is a reasonable assumption)

@danbri
Copy link
Contributor Author

danbri commented Apr 5, 2016

(Now I'm thinking isBasedOn was a poor name since property isn't boolean. Investigating whether we've used "is*" for non-booleans...)

@philbarker
Copy link

@danbri isPartOf

@danbri
Copy link
Contributor Author

danbri commented Apr 5, 2016

Thanks @philbarker. I just looked at the data too :)

We have lots of relational properties with names beginning with "is*", so this is ok.

  • isRelatedTo, isSimilarTo, isVariantOf, isConsumableFor, isBasedOnUrl, isPartOf, isAccessoryOrSparePartFor (relational)
  • isAccessibleForFree,isGift, isFamilyFriendly, isLiveBroadcast (boolean valued)

(via ./scripts/rdfa2nt data/schema.rdfa | grep "Property" | grep '#type' | grep '/is' )

@SeminAl
Copy link

SeminAl commented Jul 4, 2016

Guys, any idea when this will be published on schema.org? We are planing to implement it on www.quotetab.com. Is it possible to use it while it is in pending status and than once it is published to switch to real version?

@mfhepp
Copy link

mfhepp commented Jul 5, 2016

Can we please avoid using "Quotation" for this and use e.g. "quote"? Quotation is also used in the commercial world and me might want to extend schema.org lateron to support commercial quotations.


martin hepp http://www.heppnetz.de
mhepp@computer.org @mfhepp

On 04 Jul 2016, at 10:27, Semin Alkic notifications@github.com wrote:

Guys, any idea when this will be published on schema.org? We are planing to implement it on www.quotetab.com. Is it possible to use it while it is in pending status and than once it is published to switch to real version?


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

@chaals
Copy link

chaals commented Jul 5, 2016

Business also uses "quote" extensively. I think we should go with "Quotation" and if we want to describe a price offered from a business, we should use something that sounds more clearly like that.

@danbri
Copy link
Contributor Author

danbri commented Jul 5, 2016

I can't speak for technical usage in ecommerce formats but my native speaker intuition for general colloquial usage is that "quote" is very widely used in the business / cost estimation sense and that "quotation", while used in both ways, leans somewhat to the "something someone said" sense.

@RichardWallis
Copy link

My native speaker intuition concurs with @danbri

@Aaranged
Copy link

Aaranged commented Jul 5, 2016

FWIW Google Finance (e.g.) uses these locally-extended schema.org types and properties that include "quote" (none contain "quotation"):

FinancialQuote
afterHoursQuoteTime
quoteTime

@mfhepp
Copy link

mfhepp commented Jul 6, 2016

ok, no more objections against "Quotation" for the liberal arts and "Quote" for the business worlds ;-)

@danbri
Copy link
Contributor Author

danbri commented Jul 6, 2016

@mfhepp Thanks - I may quote you on that!

@mfhepp
Copy link

mfhepp commented Jul 6, 2016

@danbri I am looking forward to the quotation ;-)

@jaygray0919
Copy link

When doing so will you use single quotes or double quotes?

@danbri
Copy link
Contributor Author

danbri commented Aug 10, 2016

This is available in pending, http://pending.schema.org/Quotation

... any feedback on it? Should we move it towards inclusion in the core?

@thadguidry
Copy link

@danbri

  1. Improve definition grammer...

    A quotation from some work, attributable to a real world author and - if associated with a fictional character - to any fictional Person. Use isBasedOnUrl to link to source/origin.

  2. Need to add or expand example to have the WHEN of the quotation. We have the property spokenByCharacter but no dateSpoken. We cannot use any dates from the CreativeWork because that aligns a work to a quote, but what if there is no creative work and a journalist has a need to state what date/time they got a quotation?...(see 3.)

    For instance, how can we use Quotation to note the date/time of when Abraham Lincoln said "Four score and seven years ago our fathers brought forth on this continent a new nation..." without jumping hoops to linking it to the Gettysburg Address ?

  3. The Quotation definition is narrowed a bit too much I think in the definition with the phrase..."from some work". Can we remove that ?

@ibobo
Copy link

ibobo commented Aug 24, 2016

Hi, just saw this proposal; I was waiting for a schema.org for Quotations! I will implement it on our website PensieriParole as soon as it's released officially.

@thadguidry
I think dateSpoken could be a duplication of dateCreated. The dateCreated in the case of the Quotation to me refers to the date on which the Quotation was conceived, so for a quotation from a book it's the date on which the book was written, for a part of a speech it will be the date on which the speech was written; datePublished for a quotation from a book is the date of the publishing of the book, for a part of a speech it's the date on which the speech was given. I don't see any problem in linking the quotation dates to its "owning" creative work.

danbri referenced this issue in schemaorg/schemaorg Aug 24, 2016
danbri referenced this issue in schemaorg/schemaorg Aug 24, 2016
danbri referenced this issue in schemaorg/schemaorg Aug 24, 2016
@danbri
Copy link
Contributor Author

danbri commented Aug 24, 2016

Could http://pending.schema.org/contentReferenceTime be useful for Quotation?

I have addressed @thadguidry 's points 1.) and 3.) with some minor edits.

2.) (spoken time) is partially addressed by noting that Event has recordedIn. As @ibobo mentions dateCreated, datePublished is relevant too.

@Dataliberate
Copy link

Dataliberate commented Aug 24, 2016

Also many quotations are not spoken, they appear in literary form only. So
I think that dateCreated is even more valid.

@danbri
Copy link
Contributor Author

danbri commented Aug 24, 2016

@Dataliberate the definition to date was very literary-minded, today's tweaks make it more applicable to quotations that don't have a canonical literary reference.

@thadguidry
Copy link

@danbri
No, contentReferenceTime still mentions 'works' ... I don't care about 'works'. rNews doesn't have this idea of a 'date of a quote' either yet. And Apple News Format has the Type, but not WHEN properties on them yet
Quote https://developer.apple.com/library/ios/documentation/General/Conceptual/Apple_News_Format_Ref/Quote.html#//apple_ref/doc/uid/TP40015408-CH32-SW1
and Pull Quote
https://developer.apple.com/library/ios/documentation/General/Conceptual/Apple_News_Format_Ref/Pullquote.html#//apple_ref/doc/uid/TP40015408-CH31-SW1

re: 2. (spoken time) - I don't want to have to attach a quote to an Event.
I just have a need to attach additional data about a Quote itself.
When your a journalist... you write down who said what and when. We just need to capture all of these at a Quote level. Then the Wordpress, Drupal, and even rNews communities will have their cake.

@danbri
Copy link
Contributor Author

danbri commented Sep 8, 2016

My preference would be to live with using dateCreated for the "date spoken" usecase, since not all quotes are from spoken speeches.

For example, Donald Trump recently said:

"Mainstream media never covered Hillary’s massive “hacking” or coughing attack, yet it is schemaorg/schemaorg#1 trending. What’s up?"
URL: https://twitter.com/realDonaldTrump/status/773181751749402624

He said this on Twitter via a textual post; he did not AFAIK speak those exact words.

But if others here agree with @thadguidry on this I'm not going to argue strongly against dateSpoken, it might have its uses. The pending extension was designed to reduce friction for adding potentially-useful properties. Perhaps we can evolve Quotation into the core and have a dateSpoken sub-property of dateCreated and leave that in pending a little longer? Thoughts?

@thadguidry
Copy link

@danbri I would like to see that dateSpoken sub-property to be in pending, sure.

@danielpetrica
Copy link

Any news about this?

@danbri
Copy link
Contributor Author

danbri commented Mar 16, 2017

Noting that we should at least update to use isBasedOn instead of isBasedOnUrl

@dvs1
Copy link

dvs1 commented Jan 1, 2019

  • quotationDate | quotationWhen = when it was originally spoken or written
  • quotationSource | quotationWhere = where it was originally spoken or written

@kappmeier
Copy link

Should the case of falsely accused quotations also be adressed? Something like "640K ought to be enough for anybody" or many sentences that Einstein never said?

@tmciver
Copy link

tmciver commented Dec 31, 2019

I'd like to ask how one would say that a quotation was "anonymous." Is there an IRI for an anonymous person? Or possibly just use a blank node for spokenByCharacter?

@thadguidry
Copy link

thadguidry commented Dec 31, 2019

@tmciver You could use the creator property and fill in with Anonymous from wikidata? https://www.wikidata.org/wiki/Q4233718

Look at Example 2 - JSON-LD

    <script type="application/ld+json">
    {
      "@context": "http://schema.org/",
      "@type": "Quotation",
      "creator": {
        "@type": "Person",
        "name": "Anonymous",
        "url": "https://www.wikidata.org/wiki/Q4233718"
      },
      "text": "The only thing we have to fear is death by chocolate cake!!!"
    }
    </script>

I'd also suggest joining the Schema.org mailing list for these general questions instead of hijacking an issue :) but we're nice around here. :-)

@tmciver
Copy link

tmciver commented Dec 31, 2019

@thadguidry Thanks. I didn't know about the Anonymous wikidata link but I'm not surprised it exists.

I've joined the mail list.

One final question: why do you use creator in your example rather than spokenByCharacter? Perhaps I should ask this on the mailing list . . .

@github-actions
Copy link

github-actions bot commented Sep 4, 2020

This issue is being tagged as Stale due to inactivity.

@danbri
Copy link
Contributor Author

danbri commented Sep 4, 2020

tagged for moving to brainstorming repo

we should work through how this relates to Claim / ClaimReview

@RichardWallis RichardWallis transferred this issue from schemaorg/schemaorg Sep 29, 2020
@RichardWallis
Copy link

See issue #7 for the context of the move from the main Schema.org issue tracker to this repository.

@Seirdy
Copy link

Seirdy commented Feb 26, 2022

Here's a microdata example from my site:

<figure itemscope itemtype="https://schema.org/Quotation">
  <blockquote>
    <p>
      I've said it before but let me say it again: fuzzing is really the top method to find problems in curl once we've fixed all flaws that the static analyzers we use have pointed out. The primary fuzzing for curl is done by OSS-Fuzz, that tirelessly keeps hammering on the most recent curl code.
    </p>
  </blockquote>
  <figcaption itemprop="citation">
    &mdash;
    <span itemprop="creator" itemscope itemtype="https://schema.org/Person">
      <a itemprop="url" href="https://daniel.haxx.se/">
        <span itemprop="name">
          <span itemprop="givenName">Daniel</span>
          <span itemprop="familyName">Stenberg</span>
        </span>
      </a>
    </span>,
    <cite itemprop="isPartOf" itemscope itemtype="https://schema.org/BlogPosting">
      <a itemprop="url" href="https://daniel.haxx.se/blog/2020/09/23/a-google-grant-for-libcurl-work/">
        <span itemprop="name">A Google grant for libcurl work</span>
      </a>
    </cite>
  </figcaption>
</figure>

Rendered, it looks like this:


I've said it before but let me say it again: fuzzing is really the top method to find problems in curl once we've fixed all flaws that the static analyzers we use have pointed out. The primary fuzzing for curl is done by OSS-Fuzz, that tirelessly keeps hammering on the most recent curl code.

,

Some issues:

  • How do we cite a Person and a CreativeWork, when the Person is the author of that CreativeWork? Ideally the person would be an author itemprop of the CreativeWork and the author of the Quotation
  • Some clarification on using creator, author, and spokenByCharacter would be appreciated; I don't see any on schema.org.
  • Similarly, there seems to be confusion regarding isBasedOn versus isPartOf.

@Seirdy
Copy link

Seirdy commented Apr 2, 2022

I think I figured out quote attribution:

<figure itemscope itemtype="https://schema.org/Quotation">
  <blockquote>
    <p>
      There is only one honest measure of web performance:
      <strong>the time from when you click a link to when you’ve finished skipping the last ad.</strong>
    </p>
  </blockquote>
  <figcaption><span itemprop="citation" role="doc-credit">
      <span itemprop="isPartOf" itemscope itemtype="https://schema.org/PresentationDigitalDocument">
        <span itemprop="author" itemscope itemtype="https://schema.org/Person">
          <a itemprop="url" href="https://idlewords.com/about.htm">
            <span itemprop="name">
              <span itemprop="givenName">Maciej</span>
              <span itemprop="familyName">Cegłowski</span>
            </span>
          </a>
        </span>,
        <cite itemprop="name">
          <a itemprop="url" href="https://idlewords.com/talks/website_obesity.htm">The Website Obesity Crisis
          </a>
        </cite>
      </span>
    </span>
  </figcaption>
</figure>

Rendered, it looks like this:


There is only one honest measure of web performance: the time from when you click a link to when you’ve finished skipping the last ad.

,

I left some extra whitespace in for readability.

My live example seems to pass the validator; select "Quotation" in the rendered outline.

This approach makes the quotation semantically represented as being a part of a larger work authored by a given individual. It combines nicely with microformats2 classes like h-cite, h-entry, and h-card.

@dparizek
Copy link

dparizek commented Apr 29, 2022

I just implemented the Quotation schema.org markup on my quotes website on about 1.4 million quotes. Well, I implemented a first try but having troubles with marking up the author of the quotation.

Some feedback, questions, and a request for help below. I only mean the feedback in the most respectful way - I am overall very impressed with the great work everyone has done here.

-- The microdata format is what I chose as it seems most intuitive and to have the least payload (faster sites).

-- I followed the directions in your getting started guide (https://schema.org/docs/gs.html) and it seemed fairly straightforward - the directions overall were well written, thank you all!

-- However, the examples in microdata format were generally still to be done - so without examples, I am confused some and concerned about whether or not I have marked up my site correctly - can anyone please look at e.g. https://discoverquotes.com/nature/ and/or https://discoverquotes.com/nature/ and see if they are fully correctly done? They validate, but still I have questions, see below...

-- that second example - I understand I should likely handle "unknown author" a different way.

-- I tried the validator at https://validator.schema.org/ - and ultimately it was very helpful - I got confused about author being a prop not a type at one point - so the error message was "author not a schema.org type" - maybe add to validator an error with hint message saying - "Did you confuse type with property?"

-- For the quote body (itemType text) I markup thus:

 <span itemprop="text" itemscope itemtype="https://schema.org/text" class="quote">
                    {{ quote.body|safe|linebreaks }}
                </span>
in my code generator. The validator says no errors/warnings for the output of that - but I wonder - if the body has line feeds then html p and br tags get fed in by my generator - within the scope of the itemscope.  Will the existence of those html tags within the text itemscope be an issue?  If so, how to handle markup of line breaks? [update- appears not an issue as validates fine so I guess was dumb question]

-- is the Quotation type in official use yet?

-- Do folks know of other general quotations sites that have implemented it widely?

-- Plus one that "Quotation" is better than "Quote" for "things people said."

-- I love that you made allowances for fictional characters versus real people although I have not adjusted in my markup for that yet... I do have some fictional characters as "authors" for the moment.

-- should I add something like a meta tag for version or anything in the header of my html files? I am wondering if I am missing something because some SEO tools I use indicate that I have no schema.org markup in my files even though I now do.

-- Last, thanks all here for all your hard work!

@Seirdy
Copy link

Seirdy commented Apr 30, 2022 via email

@dparizek
Copy link

@Seirdy Thank YOU!! I will dive into your suggestions.

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

No branches or pull requests