The IPTC welcomes feedback on this guidance document. Please contact office@iptc.org with your feedback and suggestions.

Introduction

Since late 2018, the IPTC News Architecture Working Group has monitored and collaborated with several initiatives around trust, credibility and misinformation in the news industry. Whilst we are leaving specifying the indicators of trust to these organisations, our aim is to make it easy to express those trust indicators using IPTC standards, and to make it easy for IPTC-enabled news content to work well in these trust and credibility ecosystems.

We have worked with The Trust Project, Reporters Without Borders' Journalism Trust Initiative, the Credibility Coalition, the Certified Content Coalition and others to identify all known means of expressing trust in news content.

The IPTC has also been a key stakeholder in Project Origin, the Content Authenticity Initiative and the Coalition for Content Provenance and Authenticity (C2PA) who are looking at embedding credibility and authenticity information into media files, working alongside IPTC Photo and Video metadata.

C2PA logo CredCo logo CAI logo JTI logo Project Origin logo The Trust Project logo

Why has the IPTC worked with these trust initiatives?

We want to make it easy for users of IPTC standards to work with these tools for credibility and to convey the trustworthiness of their content in a way that can be used by platforms and consumers to understand the provenance of their media content, and to understand the journalistics practices of the organisations that create this content.

In particular, we want to make it as easy as possible for syndicated content to be distributed and published in alignment with trust principles.

What has the IPTC done so far?

To achieve those goals, we have done three things:

  • Added new properties and values to IPTC standards where necessary to support trust and credibility indicators

  • Developed these guidelines to show how users of IPTC standards can make use of trust indicators in their content workflows

  • Worked with projects such as C2PA to ensure that IPTC standards can be used to share metadata in cryptographically-signed claims and assertions. This work includes making contributions to other standards, such as the C2PA Specification.

About this guidance document

This guide is comprised of two parts. Part one describes how trust indicators can be embedded into NewsML-G2 and ninjs files, which are used for storing news content in databases or for syndicating content from suppliers such as news agencies to their customers.

The second part describes how the C2PA standard can be used with IPTC Photo Metadata to express trustworthiness indicators directly in media files.

1. Expressing Trust Indicators in NewsML-G2 and ninjs

1.1. What are Trust Indicators?

Some trust and credibility projects have created their own set of "Trust Indicators" which can be shown to readers to build trust in a news publisher, journalist or an individual "piece of work" such as a news story or video.

Generally a trust indicator is a link to a document or a web page describing some aspect of the publisher’s process, ethics or editorial standards.

Warning: Just because there’s a trust indicator doesn’t mean that you can trust the publisher!

It is important to note that "trust indicators" cannot on their own tell readers or viewers that a news outlet is trustworthy. Trust indicators are merely assertions made by publishers, and aren’t audited or checked by third parties (although some trust projects have established mechanisms for third-party audits, in particular the Journalism Trust Initiative).

The idea is that, instead of news publishers simply showing an indicator that says "you should trust me" and hoping that readers will believe them, publishers can now show why they think they can be trusted, by showing trust indicators such as ownership, journalistic standards and fact-checking policies on their site or packaged along with their syndicated content.

Readers are encouraged to follow the trust indicator links, read the linked information, check the sources, and come to their own conclusions as to whether a site is trustworthy or not.

Readers may also choose to use a tool such as NewsGuard which does some of this checking work for them.

1.2. A controlled vocabulary of "trust indicators"

At IPTC, we have looked at the trust indicators of each of these projects and have created a list, or "controlled vocabulary", containing all commonly used trust indicators.

We have published the list as the Trust Indicator NewsCodes, as part of our family of news metadata vocabularies known as IPTC NewsCodes.

The vocabulary is available on our NewsCodes server cv.iptc.org, and a browsable HTML version is also available.

Terms include policy aspects such as ethics policy, organisational credentials such as senior editorial staff (what some news organisations call their "masthead"), ownership and funding information, references to internal and external journalistic sources, corrections and more.

Some of these properties (mostly those created by The Trust Project) have the benefit of already being included in schema.org markup. The schema.org trust indicators are already widely used on real-world publisher sites, e.g. the BBC in the UK, El Pais in Spain, Washington Post in the US, Corriere della Serra in Italy and many more. Where a schema.org and/or Trust Project indicator was available, we aimed to choose very similar names for our indicators where possible, although in some cases we chose names that are more specific (for example "publishing principles" becomes "editorial policy").

1.3. Mapping Trust Indicators from NewsML-g2 and ninjs to schema.org

For IPTC member organisations and others using IPTC’s NewsML-G2 as the format for distributing their news content, here we show how trust indicators can be included in NewsML-G2 files and easily converted to schema.org markup to be embedded on HTML pages.

Similarly we have recently added the ability to add trust indicators to ninjs, IPTC’s standard for news content in JSON. The trustindicators property was added to ninjs 1.3 and is available in the latest 1.x version (1.4) and the currently recommended version, ninjs 2.0.

In this document we show the indicators defined in the standards that we are tracking, currently The Trust Project and the Journalism Trust Initiative. For each indicator, we show its source in Trust Project and/or Journalism Trust Initiative materials, then we show how it can be implemented in NewsML-G2 and ninjs code.

For media organisations receiving content in NewsML-G2 or ninjs format who then publish the stories in HTML format, we show the equivalent schema.org property that can be used.

1.3.1. An example of mapping NewsML-G2 to schema.org

A news agency can publish a story including their name and a link to their editorial policy defined in the story metadata in NewsML-G2:

<provider qcode="providercode:XXX">
  <name>Example Agency Inc.</name>
</provider>
<link rel="trustindicator:editorialPolicy" href="http://agency.org/edPolicy"/>

A publisher receiving that content from an agency which wants to link to the agency’s policy in published stories can convert it to schema.org markup:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "name": "Example Agency Inc.",
  "publishingPrinciples": "http://agency.org/our-editorial-policy"
}
</script>

1.3.2. QCodes or URIs?

NewsML-G2 provides for a shortcut mechanism called "QCodes", which looks like trustindicator:editorialPolicy. These are a shorthand for a URI, in this case http://cv.iptc.org/newscodes/trustindicator/editorialPolicy.

Each time we give a NewsML-G2 example using a QCode, you can substitute the equivalent URI with exactly the same meaning.

So

<link rel="trustindicator:editorialPolicy" href="http://agency.org/edPolicy"/>

means the same as (or as we say in standards world, "is semantically equivalent to"):

<link reluri="http://cv.iptc.org/newscodes/trustindicator/editorialPolicy"
      href="http://agency.org/ourEdPolicy"/>

To learn more about QCodes, see the NewsML-G2 Guidelines.

1.3.3. The same example in ninjs 2.0

In ninjs we use copyrightholder to show the publisher’s name, and we list the controlled vocabulary item as the "role", so the same information looks like:

"copyrightholder": "Example Agency Inc.",
"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/editorialPolicy",
    "title": "Example Agency Inc's Editorial Policy document",
    "href": "http://agency.org/ourEdPolicy"
  }
]

This would be translated to the same schema.org markup:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "name": "Example Agency Inc.",
  "publishingPrinciples": "http://agency.org/ourEdPolicy"
}
</script>

1.4. Editorial policy indicators

These indicators explain the journalistic policies and practices of the organisation or individual journalist.

1.4.1. Editorial Policy

A statement describing the journalistic standards of behaviour expected by the organisation. If no other editorial policy is given separately, this property should be used to link to the organisation’s overall editorial policy.

Trust Project reference

BP11 - Link to Best Practices Policies

JTI reference

JTI98. What is the [editorial guidelines] URL?

NewsML-G2 representation

<link rel="trustindicator:editorialPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/editorialPolicy",
    "title": "Example Agency's Editorial Policy document",
    "href": "..."
  }
]

schema.org property

publishingPrinciples

1.4.2. Corrections Policy

A statement describing a newsroom’s disclosure and correction policy regarding errors.

Trust Project reference

BP3: Corrections Policy and Practice

JTI reference

JTI156. [under 13.1 "dealing with inaccuracies"] If yes, what is the URL where it [the process for communicating errors] can be seen?

NewsML-G2 representation

<link rel="trustindicator:correctionsPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/correctionsPolicy",
    "title": "Example Agency's corrections policy document",
    "href": "..."
  }
]

schema.org property

correctionsPolicy

1.4.3. Coverage Policy

A statement on news coverage priorities, including any public agenda or stance on issues.

Trust Project reference

BP6: Mission Statement with Coverage Priorities / LOC1: Local coverage priorities

JTI reference

JTI26. Does your Media Outlet have an editorial mission statement, or stated set of principles or editorial values? [Y/N]
JTI27. Provide that statement here. [long text field]
JTI28. Is that statement posted online? [Y/N]
JTI29. What is the URL where it is published?

NewsML-G2 representation

<link rel="trustindicator:coveragePolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/coveragePolicy",
    "title": "Example Agency's editorial mission statement / coverage policy",
    "href": "..."
  }
]

schema.org property

missionCoveragePrioritiesPolicy

1.4.4. Editorial Diversity Policy

An organisation’s policy describing diversity of editorial sources.

Trust Project reference

BP2 - Diverse Voices Statement

JTI reference

JTI202. Does your Media Outlet have a diversity policy as a part of the Editorial Guidelines?
JTI205. What is the URL?

NewsML-G2 representation

<link rel="trustindicator:editorialDiversityPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/editorialDiversityPolicy",
    "title": "Example Agency's Editorial Diversity Policy",
    "href": "..."
  }
]

schema.org property

diversityPolicy (the schema.org description says "a statement describing the newsroom’s diversity policy on both staffing and sources" so this covers both editorial and organisational diversity policy)

1.4.5. Ethics Policy

Statement about a news organisation’s ethics policy, e.g. regarding journalistic and publishing practices.

Trust Project reference

BP1: Ethics Policy

JTI reference

JTI33. Does your Media Outlet have a set of Editorial Guidelines or have you agreed to an external set of approved Editorial Guidelines?

NewsML-G2 representation

<link rel="trustindicator:ethicsPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/ethicsPolicy",
    "title": "Our Ethics Policy",
    "href": "https://www.publisher.org/ethicsPolicy/"
  }

schema.org property

ethicsPolicy

1.4.6. Feedback Policy

A statement about how a newsroom involves the public in coverage decisions, reporting and activities after publication.

Trust Project reference

BP9 - Actionable Feedback Policy

JTI reference

JTI163. What is the URL of where this [complaints process] information is available? If it is not on a single page, describe where Stakeholders can find it. 

NewsML-G2 representation

<link rel="trustindicator:feedbackPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/feedbackPolicy",
    "title": "Example Agency's editorial feedback policy document",
    "href": "..."
  }
]

schema.org property

actionableFeedbackPolicy

1.4.7. No Bylines Policy

A statement explaining when authors of articles are not named in bylines.

Trust Project reference

AUTH14: No-byline Explanation

JTI reference

n/a

NewsML-G2 representation

<link rel="trustindicator:noBylinesPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/noBylinesPolicy",
    "title": "Example Agency's No Bylines Policy document",
    "href": "..."
  }
]

schema.org property

noBylinesPolicy

1.4.8. Unnamed Sources Policy

A statement about policy on use of unnamed sources and the decision process required.

Trust Project reference

BP8: Unnamed Sources policy

JTI reference

JTI126. Are there guidelines on the procedures to be followed for granting anonymity to sources?

NewsML-G2 representation

<link rel="trustindicator:unnamedSourcesPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/unnamedSourcesPolicy",
    "title": "Example Agency's Unnamed Sources Policy document",
    "href": "..."
  }
]

schema.org property

unnamedSourcesPolicy

1.5. Party-level indicators

These indicators can apply to any party, i.e. any Person or Organisation.

1.5.1. Archive

A list of the journalist or news organisation’s work in reverse chronological order, sometimes including a search option.

Trust Project reference

AUTH11: Archive of published texts/pieces for this publisher

NewsML-G2 representation

<link rel="trustindicator:archive" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/archive",
    "title": "Example Journalist's story archive",
    "href": "..."
  }
]

schema.org property

Not available in schema.org

1.5.2. Awards

A list of the honours or awards received by the journalist or news organisation.

Trust Project reference

Honors and awards are not currently included in Trust Project materials.

NewsML-G2 representation

<link rel="trustindicator:award" href="..."/>

Multiple awards can be listed separately.

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/award",
    "title": "Example Journalist's awards list",
    "href": "..."
  }
]

schema.org property

award

1.5.3. Knows About

Indicates a topic that is known about, suggesting possible expertise without distinguishing skill level.

Trust Project reference

AUTH5a: Topic Expertise / AUTH5b: Local/Demographic  Expertise

NewsML-G2 representation

<assert qcode="{id}">
  <type qcode="cpnat:person">
  <name>...</name>
  <link rel="trustindicator:knowsAbout" href="...">
    <note>...</note>
  </link>
</assert>

Or

<note role="trustindicator:knowsAbout">
  ...
</note>
</assert>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/knowsAbout",
    "title": "Example Author's specialist expertise",
    "href": "..."
  }
]

schema.org property

knowsAbout

1.5.4. Knows Language

Indicates knowledge of a human language. The presence of this indicator does not distinguish skill levels or reading/writing/speaking/signing. Language codes should be taken from the IETF BCP 47 standard.

Trust Project reference

AUTH4: Languages Spoken

NewsML-G2 representation

<assert qcode="{id}">
  <type qcode="cpnat:person?">
  <name>...</name>
  <link rel="trustindicator:knowsLanguage" href="...">
    <note>...</note>
  </link>
</assert>

Or

<note role="trustindicator:knowsLanguage">
  ...
</note>
</assert>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/knowsLanguage",
    "title": "Example Author's language expertise",
    "href": "..."
  }
]

schema.org property

knowsLanguage

1.6. Organisation-level indicators

These indicators can describe information about a journalistic organisation, but from a non-journalistic perspective - for example organisational diversity, the date the organisation was founded, or its sources of funding. See [Editorial policy indicators] for an explanation of how to represent an organisation’s journalistic credentials.

1.6.1. Diversity Staffing Report

A report on staffing diversity issues and progress on meeting diversity goals. Note that this is specifically about diversity of the organisation itself, including its journalists, not of the diversity of editorial sources or subjects.

In a news context this might be for example ASNE or RTDNA (US) reports, or self-reported.

Trust Project reference

BP2a - Diverse Staffing Report

JTI reference

JTI187. Do those [recruitment and training] guidelines contain diversity policy?

NewsML-G2 representation

<link rel="trustindicator:diversityStaffingReport" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/diversityStaffingReport",
    "title": "Example Publisher's staff diversity report",
    "href": "..."
  }
]

schema.org property

diversityStaffingReport

1.6.2. Founding Date

The date (or year) when the organisation was founded.

Trust Project reference

BP4a - Founding Date

JTI reference

JTI23. What is the founding date of the Legal Entity?

NewsML-G2 representation

<organisationDetails>
  <founded>2019-01-01</founded>
</organisationDetails>

ninjs representation

We recommend that founding date is included on the ownershipFundingInfo page.

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/ownershipFundingInfo",
    "title": "Example Agency's Ownership and Funding information",
    "href": "..."
  }
]

schema.org property

foundingDate

1.6.3. Membership of Trust Initiatives and Professional Bodies

Here organisations can indicate that they are members of a scheme such as The Trust Project or the Journalism Trust Initiative. It is important to note that this is a self-declaration and readers should check with the organisation concerned.

A related technology that allows organisations to express membership in both directions is the Trust.txt framework managed by JournalList. This allows publishers to specify which organisations they are members of, and also allows organisations to list their members, using a simple text file in a standard location on each organisation’s web site.

Trust Project reference

AUTH13: Professional Memberships
and
BP13: Reference to Participation in Trust Project

JTI reference

JTI113. Do you belong to any other bodies that require members to adhere to published guidelines, standards or norms to maintain status in that organisation?

NewsML-G2 representation

The organisation affiliation construct was added to NewsML-G2 2.29, which was released in Spring 2020.
<organisationDetails>
  <affiliation uri="https://thetrustproject.org/">
    <name>The Trust Project</name>
  </affiliation>
  <affiliation uri="https://jti-rsf.org/">
    <name>Journalism Trust Initiative</name>
  </affiliation>
</organisationDetails>

ninjs representation

We recommend that memberships are included on the ownershipFundingInfo page.

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/ownershipFundingInfo",
    "title": "Example Agency's Ownership and Funding information",
    "href": "..."
  }
]

schema.org property

memberOf

1.6.4. Organisation Contact Info

How to contact the organisation by email, post, phone or other means.

Trust Project reference

BP10: Newsroom Contact Info

JTI reference

2. What is the postal address for the Legal Entity?
72. What are the locations for branches and other offices not listed in the Locations section for headquarters, above?

NewsML-G2 representation

<organisationDetails>
  <contactInfo>...</contactInfo>
</organisationDetails>

ninjs representation

We recommend that the organisation’s address is included on the ownershipFundingInfo page.

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/ownershipFundingInfo",
    "title": "Example Agency's Ownership and Funding information",
    "href": "..."
  }
]

schema.org property

address, contactPoint, email etc.

1.6.5. Organisation Diversity Policy

Statement on the organisation’s staff diversity policy, optionally providing staffing data.

Trust Project reference

DIV1 Diversity Statement

JTI reference

JTI114. Do you have guidelines for the recruitment and training of editorial staff? Do those guidelines contain a diversity policy?

NewsML-G2 representation

<link rel="trustindicator:organisationDiversityPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/organisationDiversityPolicy",
    "title": "Example Agency's staff diversity policy",
    "href": "..."
  }
]

schema.org property

diversityPolicy

1.6.6. Organisation Name

The publisher of the creative work. Typically the name of the publisher or a link to an organisation.

Trust Project reference

Contact Info

JTI reference

1. What is the Legal Entity Name?

NewsML-G2 representation

<provider qcode="providercode:XXX">
  <name>Example Publisher Inc.</name>
</provider>

ninjs representation

"copyrightholder": "Example Publisher Inc."

schema.org property

name / legalName / publisher

1.6.7. Ownership and Funding Information

A description of organisational ownership structure, funding and grants, with particular reference to editorial independence.

Trust Project reference

BP4. Ownership Structure, Funding and Grants and Editorial Independence

JTI reference

JTI52. What are the names of all direct or indirect owners?
JTI34. Is the outlet a Public Service Media?
JTI41. What proportion of income is public funds?
JTI49. Is the ownership of the Media Outlet different from the four previous standards in this section?
JTI50. What is the form of ownership?
JTI51. If there is a combination, explain that here along with a breakdown by ownership type.

NewsML-G2 representation

<link rel="trustindicator:ownershipFundingInfo" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/ownershipFundingInfo",
    "title": "Example Agency's Ownership and Funding information",
    "href": "..."
  }
]

schema.org property

ownershipFundingInfo, Grant (type), sponsor

1.6.8. Senior Editorial Staff (Masthead)

Information about a news outlet’s senior editorial staff, sometimes known as the masthead.

Trust Project reference

BP5 - Masthead

JTI reference

JTI71. What are the names, positions, and contact details of all members of management for the Media Outlet?

NewsML-G2 representation

<link rel="trustindicator:seniorEditorialStaff" href="..."/>

Or

<contributor role="cpprol:editor">
  <name>Jane Smith</name>
</contributor>

etc.

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/seniorEditorialStaff",
    "title": "Example Agency's Masthead (Senior Editorial Staff list)",
    "href": "..."
  }
]

schema.org property

masthead

1.6.9. Verification/Fact Checking Policy

Disclosure about verification and fact-checking processes for a news media organisation.

Trust Project reference

BP7: Verification/Fact-checking Standards

JTI reference

JTI138. Do your Editorial Guidelines include a verification process for content supplied by the public?

NewsML-G2 representation

<link rel="trustindicator:factCheckingPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/factCheckingPolicy",
    "title": "Example Agency's Fact Checking Policy document",
    "href": "..."
  }
]

schema.org property

verificationFactCheckingPolicy

1.7. Piece-of-Work-level indicators

These indicators provide trust information that applies to a particular piece of journalistic work, such as references or sources.

Please note that the Journalism Trust Initiative only covers trust indicators at the organisational level, not the piece-of-work or person level.

1.7.1. Dateline

A dateline is a brief piece of text included in news articles that describes where and when the story was written or filed though the date is often omitted.

Trust Project reference

METH1: Dateline/Placeline

NewsML-G2 representation

<dateline></dateline>

ninjs representation

This field was introduced in ninjs 1.3.
"dateline": "..."

schema.org property

dateline

1.7.2. Editor

Specifies the person who edited the news item.

Trust Project reference

METH5a: Identify Editor

NewsML-G2 representation

<contributor role="cpprol:editor">
  <name>Jo Smith</name>
</contributor>

ninjs representation

Currently there is no specific construct in ninjs to represent content contributors such as editors and fact-checkers. We will look at this in the future. In the meantime we suggest using the general seniorEditorialStaff trust indicator:

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/seniorEditorialStaff",
    "title": "Example Publisher's Senior Editorial Staff",
    "href": "..."
  }
]

schema.org property

editor

1.7.3. Fact checker

Specifies the person who fact-checked the news item to ensure its accuracy.

Trust Project reference

METH5b: Identify Fact-Checker

NewsML-G2 representation

<contributor role="cpprol:factChecker">
   <name>Jo Smith</name>
</contributor>

ninjs representation

Currently there is no specific construct in ninjs to represent content contributors such as editors and fact-checkers. We will look at this in the future. In the meantime we suggest using the general seniorEditorialStaff trust indicator:

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/seniorEditorialStaff",
    "title": "Example Publisher's Senior Editorial Staff",
    "href": "..."
  }
]

schema.org property

Not available in schema.org

1.7.4. Corrects / Corrected By

IPTC Trust Indicators handle corrections in both directions: a link from an incorrect work to a corrected one, and the link from the correction to the original incorrect work.

correctedByResource indicates an update to a journalistic work via a link to another document that corrects this document.

correctsResource indicates that this news item corrects the referenced news item.

Trust Project reference

BP3b: Corrected or Clarified  Article

NewsML-G2 representation

Linking from incorrect to corrected version:

<link rel="trustindicator:correctedByResource" residref="{id}" href="..."/>

In this case, @residref is the  id of the article carrying the correction or clarification.

Linking from correct to incorrect version:

<link rel="trustindicator:correctsResource" residref="{id}" href="..."/>

In this case, @residref is the id of the article being corrected or clarified.

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/correctedByResource",
    "title": "This news item contains errors which are corrected by the news item referenced in this link.",
    "href": "..."
  }
]

or

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/correctsResource",
    "title": "This news item corrects errors which were in the referenced news item.",
    "href": "..."
  }
]

schema.org property

correction

1.7.5. Backstory

The backstory provides a textual summary giving a brief explanation of why and how an article was created.

Trust Project reference

METH2: Sourcing and Methodology (applied to select stories)

NewsML-G2 representation

<link rel="trustindicator:internalSourceMaterials" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/internalSourceMaterials",
    "title": "Link to materials used to create this news item, and the process by which it was created.",
    "href": "..."
  }
]

schema.org property

backstory

1.7.6. Provider

A generic property describing the service provider. This may be the source from which the story is provided, such as a news agency.

Trust Project reference

No direct mapping

NewsML-G2 representation

<itemMeta>
  <provider></provider>
</itemMeta>

ninjs representation

"infosources": [
  {
    "name": "Example Agency",
    "role": "http://cv.iptc.org/newscodes/contentprodpartyrole/origcont",
    "uri": "http://www.exampleagency.com/"
  }
]

schema.org property

provider

1.7.7. Editorial Policy (aka Publishing Principles or Best Practice Policies)

The same as Editorial Policy at the organisation level, but linked from an individual piece of work.

Note that all link structures can be expressed either at the organisation level or the article level.

Trust Project reference

BP11 - Link to Best Practices Policies

NewsML-G2 representation

<link rel="trustindicator:editorialPolicy" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/editorialPolicy",
    "title": "Example Agency's Editorial Policy document",
    "href": "..."
  }
]

schema.org property

publishingPrinciples

1.7.8. Policies relevant to the work

A place to link to specific policies that are especially relevant to this particular piece of work, for example a link to the "unnamed sources" policy on an article that relies on that policy.

Trust Project reference

BP12 Policies Especially Relevant to the Work

NewsML-G2 representation

All link structures can be expressed either at the organisation level or the article level. For example:

<link rel="trustindicator:unnamedSourcesPolicy" residref="{id}" href="..."/>

1.7.9. Content Location

The location of the content/story itself (not the location of the content’s author).

Trust Project reference

LOC4: Geo-location of Story

NewsML-G2 representation

<subject type="cpnat:geoArea" qcode="val*>
  <name xml:lang="en-GB">...</name>
</subject>

ninjs representation

"located": "Washington, DC"

or

"places": [
    {
        "name" : "Ljubljana",
        "rel" : "about",
        "uri" : "http://sws.geonames.org/3196359"
    }
]

schema.org property

contentLocation

1.7.10. Internal Source Materials

Indicates journalistic materials used to create this news item, such as interview transcripts or data analysis.

Trust Project reference

REF1: Internal Original Documents and Data

NewsML-G2 representation

<link rel="trustindicator:internalSourceMaterials" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/internalSourceMaterials",
    "title": "Link to internal materials used to create this news item, and the process by which it was created.",
    "href": "..."
  }
]

schema.org property

backstory

1.7.11. External Source Materials

External material that this news item is based on, such as a press release or parliamentary record.

Trust Project reference

REF2: External Original Documents and Data; Source Bios

NewsML-G2 representation

<link rel="trustindicator:externalSourceMaterials" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/externalSourceMaterials",
    "title": "Link to the SEC filing used as the basis for this article.",
    "href": "http://www.sec.gov/..."
  }
]

schema.org property

Not available in schema.org

1.7.12. Secondary Sources

Indicator of an external source that this news item is based on, such as an existing news report elsewhere in the media.

Trust Project reference

REF3: Secondary News Sources

NewsML-G2 representation

<link rel="trustindicator:secondarySources" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/secondarySources",
    "title": "Link to secondary source upon which this article is based",
    "href": "..."
  }
]

schema.org property

Not available in schema.org

1.8. Person-level indicators

Indicators of trustworthiness concerning the person who created or edited the news content. Generally sed for indicators relevant to an individual journalist at a larger organisation but could also be used for independent writers, bloggers etc.

Please note that the Journalism Trust Initiative only covers trust indicators at the organisational level, not the article or person level.

1.8.1. Journalist Name

The name(s) of the creator(s) of the journalistic work.

Trust Project reference

AUTH1: Name (or byline)

NewsML-G2 representation

<creator>
  <name>...</name>
</creator>

ninjs representation

"by": "Jo Smith"

schema.org property

author /

1.8.2. Journalist Image

Link to photograph or image of the journalist that created a piece of editorial content.

Trust Project reference

https://docs.google.com/document/d/1lK_F_6r__seoE90ze6Kk6geONR3C6OcPmfw7WRJ3GYQ/edit#bookmark=kix.xe5366c9qd8tAUTH2: Photo]

NewsML-G2 representation

<link rel="trustindicator:journalistImage" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/journalistImage",
    "href": "..."
  }
]

schema.org property

image of type Person.

1.8.3. Journalist Location

Where the journalist is based (city). This is not the same as dateline/placeline, which captures instances when a journalist travelled to cover a story or is stationed away from the home office.

Trust Project reference

AUTH2: Location

NewsML-G2 representation

<assert> 
  <personDetails>
    <contactInfo role="ciprol:office">
    ...
    </contactInfo>
  </personDetails>
</assert>

ninjs representation

"located": "..."

schema.org property

homeLocation of type Person.

1.8.4. Journalist Biography

Brief journalistic biography. Can include previous employers, education, outside interests, commitments associated with ethics (such as voting, community involvement). According to the Trust Project, biography must include any affiliations that may pose a conflict of interest and how this is handled. A biography’s length is not necessarily an indicator of trustworthiness.

Trust Project reference

AUTH6: Biography

schema.org property

description

NewsML-G2 representation

<link rel="trustindicator:biography" href="..."/>

ninjs representation

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/biography",
    "href": "..."
  }
]

1.8.5. Journalist Contact Details

Details for how to contact the author of the news item. As with other fields, this is optional.

Trust Project reference

AUTH7: Contact Details and Actionable Feedback: Contact Point

NewsML-G2 representation

<personDetails>
 <contactInfo role="...">
  <address role="ciprol:office">
    <line>...</line>
    <locality>
        <name>...</name>
    </locality>
    <country qcode="iso3166-1a2:..">
        <name xml:lang="en">...</name>
    </country>
    <postalCode>...</postalCode>
    <worldRegion qcode="maxmindcc:..">...</worldRegion>
  </address>
 </contactInfo>
</personDetails>

ninjs representation

We recommend using the biography page to express this information:

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/biography",
    "href": "..."
  }
]

schema.org property

contactPoint

1.8.6. Journalist Identifier

External to publisher and persistent across organisations. Example: A Twitter or LinkedIn handle, or both.

schema.org property

identifier

Trust Project reference

AUTH8: Persistent ID

NewsML-G2 representation

<assert qcode="{id}">
...
</assert>

ninjs representation

We recommend using the biography page to express this information:

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/biography",
    "href": "..."
  }
]

1.8.7. Journalist Affiliation

An affiliation between the author of the news item and another organisation (such as their employer, a journalist union or association, or a group conferring status on the member such as an opinion piece being written by the president of a non-profit organisation).

Trust Project reference

AUTH9: Affiliation with Publisher/Job Title or Role

NewsML-G2 representation

assert/ personDetails / affiliation:
----
<affiliation type="orgnat:publisher" qcode="org:NYT">
  <name>New York Times</name>
</affiliation>
----

ninjs representation

We recommend using the biography page to express this information:

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/biography",
    "href": "..."
  }
]

schema.org property

affiliation or memberOf

1.8.8. Journalist Page

A page describing the journalist or their work, such as a page on a news outlet aggregating all of that journalist’s news items.

Trust Project reference

AUTH13: Journalist Page

NewsML-G2 representation

We recommend using the biography indicator to express this information:

<link rel="trustindicator:biography" href="..."/>

ninjs representation

We recommend using the biography indicator to express this information:

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/biography",
    "href": "..."
  }
]

schema.org property

url property of Creator

1.8.9. Journalist Memberships

Here individual people can indicate that they are members of an organisation such as a journalist trade union or guild, a professional journalism association or another relevant body, such as a science membership organisation for a science writer.

It is important to note that this is a self-declaration and readers should check with the organisation concerned.

NewsML-G2 representation

<assert>
  <personDetails>
    <affiliation uri="https://thetrustproject.org/">
      <name>The Trust Project</name>
    </affiliation>
  </personDetails>
</assert>

ninjs representation

We recommend using the biography page to express this information:

"trustindicators": [
  {
    "role": "http://cv.iptc.org/newscodes/trustindicator/biography",
    "title": "Example Author's Biography",
    "href": "..."
  }
]

schema.org property

memberOf

1.9. Type of Work Indicator

The Trust Project also includes an indication of the "type of work" as an indicator to show whether a news item is satirical (and therefore should not be considered factual), advertiser sponsored or supported by a third party such as a charitable foundation, or is an opinion piece and therefore doesn’t necessarily contain objective reporting.

1.9.1. News Report/Feature

Content about a particular event or individual that may not be significant to current breaking news.

Trust Project reference

TOW1: News (Reportage, feature, news report)

NewsML-G2 representation

<genre qcode="genre:Feature">
<name>Feature</name>
</genre>

ninjs representation

"genres": [
   {
      "name": "Feature",
      "uri": "http://cv.iptc.org/newscodes/genre/Feature"
   }
]

schema.org type

ReportageNewsArticle

1.9.2. News Article

The content is about events taking place at the time of the report.

Trust Project reference

TOW2: News Article

NewsML-G2 representation

<genre qcode="genre:Current">
<name>Current news</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Current",
      "uri": "http://cv.iptc.org/newscodes/genre/Current"
   }
]

schema.org type

NewsArticle

1.9.3. Opinion

Editorial comment that reflects the views of the author.

Trust Project reference

TOW4: Opinion

NewsML-G2 representation

<genre qcode="genre:Opinion">
<name>Opinion</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Opinion",
      "uri": "http://cv.iptc.org/newscodes/genre/Opinion"
   }
]

schema.org type

https://pending.schema.org/OpinionNewsArticle

1.9.4. Analysis

Data and conclusions drawn by a journalist who has researched the story in depth.

Trust Project reference

TOW3: Analysis

NewsML-G2 representation

<genre qcode="genre:Analysis">
<name>Analysis</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Analysis",
      "uri": "http://cv.iptc.org/newscodes/genre/Analysis"
   }
]

schema.org type

https://pending.schema.org/AnalysisNewsArticle

1.9.5. Background

The news item provides some scene setting and explanation for the event being reported.

Trust Project reference

TOW9: Explainer

NewsML-G2 representation

<genre qcode="genre:Background">
<name>Background</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Background",
      "uri": "http://cv.iptc.org/newscodes/genre/Background"
   }
]

schema.org type

BackgroundNewsArticle

1.9.6. Fact Check

The news item looks into the truth or falsehood of another reported news item or assertion (for example a statement on social media by a public figure).

"Fact Check" was added to the IPTC Genre vocabulary in April 2020.

Trust Project reference

TOW9: Fact Check

NewsML-G2 representation

<genre qcode="genre:Fact_Check">
<name>Fact Check</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Fact Check",
      "uri": "http://cv.iptc.org/newscodes/genre/Fact_Check"
   }
]

schema.org type

https://schema.org/ClaimReview

1.9.7. Help Us to Report

The news item is a call for readers to provide information that may help journalists to investigate a potential news story.

"Help Us to Report" was added to the IPTC Genre vocabulary in April 2020.

Trust Project reference

TOW10: Help Us Report (request to users)

NewsML-G2 representation

<genre qcode="genre:Help_Us_to_Report">
<name>Help us to report</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Help Us to Report",
      "uri": "http://cv.iptc.org/newscodes/genre/Help_Us_to_Report"
   }
]

schema.org type

https://pending.schema.org/AskPublicNewsArticle

1.9.8. Special Report

In-depth examination of a single subject requiring extensive research and usually presented at great length, either as a single item or as a series of items.

Trust Project reference

TOW13: Investigative/Enterprise

NewsML-G2 representation

<genre qcode="genre:Special_Report">
<name>Special Report</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Special Report",
      "uri": "http://cv.iptc.org/newscodes/genre/Special_Report"
   }
]

schema.org type

https://schema.org/NewsArticle

1.9.9. Obituary

A narrative about an individual’s life and achievements for publication after death.

Trust Project reference

TOW11: Obituary

NewsML-G2 representation

<genre qcode="genre:Obituary">
<name>Obituary</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Obituary",
      "uri": "http://cv.iptc.org/newscodes/genre/Obituary"
   }
]

schema.org type

https://schema.org/Article

1.9.10. Review

A critique of a creative activity or service (for example a book, a film or a restaurant).

Trust Project reference

TOW12: Review

NewsML-G2 representation

<genre qcode="genre:Review">
<name>Review</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Review",
      "uri": "http://cv.iptc.org/newscodes/genre/Review"
   }
]

schema.org type

https://pending.schema.org/ReviewNewsArticle

1.9.11. Behind the Story

Clarifies for the public how a story was reported.

Trust Project reference

TOW14: Behind the Story

NewsML-G2 representation

<genre qcode="genre:Behind_the_Story">
<name>Behind the Story</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Behind the Story",
      "uri": "http://cv.iptc.org/newscodes/genre/Behind_the_Story"
   }
]

1.9.12. Satire

Uses exaggeration, irony, or humour to make a point; not intended to be understood as factual.

"Satire" was added to the IPTC Genre vocabulary in April 2020.

Trust Project reference

TOW15: Satire

NewsML-G2 representation

<genre qcode="genre:Satire">
<name>Satire</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Satire",
      "uri": "http://cv.iptc.org/newscodes/genre/Satire"
   }
]

schema.org type

https://schema.org/SatiricalArticle

1.9.13. Advertiser Supplied

Content that was supplied by an organisation or individual that has paid the news provider for its placement.

"Advertiser Supplied" was added to the IPTC Genre vocabulary in April 2020.

Trust Project reference

TOW5: Advertiser Content

NewsML-G2 representation

<genre qcode="genre:Advertiser_Supplied">
<name>Advertiser Supplied</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Advertiser Supplied",
      "uri": "http://cv.iptc.org/newscodes/genre/Advertiser_Supplied"
   }
]

schema.org type

AdvertiserContentArticle

1.9.14. Sponsored/created for

Produced on behalf of an organisation or individual that has paid the news provider for production and may approve content publication.

"Sponsored" was added to the IPTC Genre vocabulary in April 2020.

Trust Project reference

TOW6: Sponsored / Created For

NewsML-G2 representation

<genre qcode="genre:Sponsored">
<name>Sponsored</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Sponsored",
      "uri": "http://cv.iptc.org/newscodes/genre/Sponsored"
   }
]

schema.org type

AdvertiserContentArticle

1.9.15. Supported content

Produced with financial support from an organisation or individual, yet not approved by the underwriter before or after publication.

"Supported" was added to the IPTC Genre vocabulary in April 2020.

Trust Project reference

TOW7: Underwritten/Supported

NewsML-G2 representation

<genre qcode="genre:Supported">
<name>Supported</name>
</genre>

ninjs representation

"genre": [
   {
      "name": "Supported",
      "uri": "http://cv.iptc.org/newscodes/genre/Supported"
   }
]

schema.org type

AdvertiserContentArticle

2. Embedding trust information into image and video files

A different but complementary approach to trust and credibility is taken by the C2PA Specification. C2PA, the Coalition for Content Provenance and Authenticity, is a non-profit group operating under the Linux Foundation. The group was created to implement the requirements of both Project Origin (a consortium of news organisations along with Microsoft) and the Content Authenticity Initiative (an organisation with broad membership, spearheaded by Adobe, aiming to improve content provenance information across many creative industries).

C2PA Ecosystem
Figure 1. C2PA Ecosystem

The C2PA specification uses cryptographic techniques to ensure that content is digitally signed and is tamper-evident. That is, the content is "fingerprinted" using an algorithm called a "hash function" and then signed with a cryptographic key attached to a publisher certificate, in a similar mechanism to the way that SSL certificates are used to secure websites.

Once the content is signed, it is possible to compare the hash on the content with the hash in the signature, and thus detect if the content has been altered since the signature was added.

An additional aspect to the C2PA mechanism is that metadata can be added to the content before it is signed. Either existing IPTC or other embedded metadata can be signed as part of the image or video file, or metadata can be added in the form of embedded statements known as assertions. These assertions are compiled in a manifest which is then embedded into the media file.

It’s important to note that the C2PA technique does NOT guarantee that the content is true, or that the assertions made are true. But it can ensure that the content has been signed by the holder of the certificate, and that the claims and the content itself have not been tampered with, as long as the signature validates correctly.

2.1. How news providers can get started using C2PA

The use of C2PA technology is still quite new to the industry, and is not yet supported by many of the standard tools used by media companies to manage and publish their content.

While the long-term goal is to use C2PA manifests at all stages of the media workflow, in the short term the easiest way to get started is to sign all image and video content at the point of publishing. In this way, consumers can be reassured that the news outlet was indeed the entity that published the content.

The steps involved for a media publisher such as a news provider to add C2PA metadta to their content are:

  1. Obtain a C2PA-compliant certificate
    For media companies, Project Origin is planning to supply certificates that will allow media companies to sign their content.

    Please contact Project Origin to be notified when this service is available.

  2. Decide what metadata should be added to signed content
    Using the guide below, publishers should think about what information they would like to be included in the tamper-evident metadata package (known in C2PA terminology as a "manifest").

    We would suggest as a minimum:

  3. Sign content upon publishing
    Currently we recommend the use of the open source c2patool system, created by the Content Authenticity Initiative, to sign content and add metadata.

    The IPTC has created a short guide to using c2patool to embed IPTC metadata in media content, located at https://iptc.atlassian.net/wiki/spaces/PMD/pages/613613569/Exploring+c2patool+and+IPTC+Photo+Metadata

2.2. How consumers can verify content that was created with C2PA metadata

Currently the best way to examine a piece of media content to view its C2PA metadata is the Verify tool created by the Content Authenticity Initiative.

The online tool is located at https://verify.contentauthenticity.org/inspect

Users can upload images or videos to this tool, and view some of the basic metadata included, such as the "producer" information included in the stds.schema-org.CreativeWork assertion.

Unfortunately, the Verify tool does not yet show metadata included in the stds.iptc or stds.exif metadata assertions.

2.3. How to use IPTC metadata with C2PA content

As explained in the C2PA Specification, IPTC Photo Metadata and IPTC Video Metadata Hub metadata can both be added to a C2PA Manifest via the stds.iptc assertion.

IPTC metadata assertions can be used to express any of the fields specified in the IPTC Photo Metadata Standard, such as Copyright Notice, Image Creator, Location Shown, Licensor, Artwork or Object and many more.

In addition, any of the properties defined as part of the IPTC Video Metadata Hub recommendation may also be used in an IPTC assertion.

As described in the C2PA specification, to convert IPTC Photo Metadata or IPTC Video Metadata Hub metadata to the format used for C2PA assertions, the "XMP Specs" part of the specification for each property must be used. For example the Person Shown in Image with Details definition specifies that the XMP tag used should be Iptc4xmpExt:PersonInImageWDetails, and that the value takes the form of the Person structure. Therefore the appropriate contents for the C2PA assertion would be the JSON-LD representation of those XMP tags.

A useful subset of IPTC Photo and Video Metadata properties that could be used in C2PA assertions is listed below:

Property name IPTC Photo Metadata property? IPTC Video Metadata Hub property? XMP tag Value notes

Date Created

yes

yes

photoshop:DateCreated

ISO8601 date (see note)

Location created / Location shot

yes

yes

Iptc4xmpExt:LocationCreated

Location structure

Copyright Notice

yes

yes

dc:rights

string

Digital Source Type

yes

yes

Iptc4xmpExt:DigitalSourceType

Alt Text (Accessibility)

yes

yes

Iptc4xmpCore:AltTextAccessibility

string

File Duration

no

yes

xmpDM:duration

XMP-DM Time structure

Content Warning

no

yes

Iptc4xmpExt:ContentWarning

Timed Text Link

no

yes

Iptc4xmpExt:TimedTextLink

Qualified Link with Language structure

In particular, the Location Created property can be used to assert the broad location associated with an asset. To assert the precise GPS location associated with an asset, the stds.exif assertion should be used.

Here’s a complete example, adapting the example from the C2PA Specification document to include the example person structure:

{
  "@context" : {
    "Iptc4xmpCore": "http://iptc.org/std/Iptc4xmpCore/1.0/xmlns/",
    "Iptc4xmpExt": "http://iptc.org/std/Iptc4xmpExt/2008-02-29/",
    "dc" : "http://purl.org/dc/elements/1.1/",
    "photoshop" : "http://ns.adobe.com/photoshop/1.0/",
    "plus" : "http://ns.useplus.org/ldf/xmp/1.0/",
    "xmp" : "http://ns.adobe.com/xap/1.0/",
    "xmpRights" : "http://ns.adobe.com/xap/1.0/rights/"
  },
  "photoshop:DateCreated": "Aug 31, 2022",
  "dc:creator": [ "Julie Smith" ],
  "dc:rights": "Copyright (C) 2022 Example Photo Agency. All Rights Reserved.",
  "photoshop:Credit": [ "Julie Smith/Example Photo Agency via Example Distributor" ],
  "Iptc4xmpExt:PersonInImageWDetails": [
    {
      "Iptc4xmpExt:PersonName": "Erika Fictional",
      "Iptc4xmpExt:PersonId": [ "http://www.wikidata.org/entity/Q765877" ]
    }
  ],
  "Iptc4xmpExt:LocationCreated": {
    "Iptc4xmpExt:City": "San Francisco"
  },
  "plus:licensor": [
    {
      "plus:LicensorName": "Example Photo Agency",
      "plus:LicensorURL": "http://examplephotoagency.com/images/"
    }
  ],
  "xmpRights:WebStatement": "http://examplephotoagency.com/terms.html",
  "xmpRights:UsageTerms": [
    "Not for online publication. Germany OUT"
  ],
  "Iptc4xmpCore:AltTextAccessibility": "Photo of Erika Fictional standing in front of the Golden Gate Bridge at sunset."
}

2.4. Embedding Trust Indicators into media files using C2PA

How can we include the Trust Indicators, explained in Part 1 of this document, in C2PA assertions?

C2PA includes the stds.schema-org.CreativeWork assertion type, which can make use of any of the properties defined as part of the CreativeWork schema.org property.

We can use this to embed the schema.org versions of trust assertions.

Here is an example:

{
  "@context": "http://schema.org/",
  "@type": "CreativeWork",
  "datePublished": "2023-05-05T23:02:36+00:00",
  "publisher": {
    "name": "Example Corp. News",
    "logo": "https://www.example.com/news/images/example_news_logo.png",
    "publishingPrinciples": "https://www.example.com/news/publishing-principles",
    "actionableFeedbackPolicy": "...",
    "correctionsPolicy": "...",
    "diversityPolicy": "...",
    "diversityStaffingReport": "...",
    "ethicsPolicy": "...",
    "ownershipFundingInfo": "...",
    "parentOrganization": "...",
    "publishingPrinciples": "...",
    "unnamedSourcesPolicy": "..."
    "parentOrganization": {
      "name": "Example Corp",
      "legalName": "The Example Corporation"
    }
  }
}

Note that the same media file can contain both an IPTC Photo/Video Metadata assertion and a schema.org assertion, so both of the assertions described here can be used at the same time.

Another assertion type is stds.exif which may also be used to embed Exif tags originally embedded by the camera, such as GPS location or the date and time that the image was originally created and/or digitised.

Conclusion

The area of trust and credibility in media is always changing, so we expect this guide to evolve along with moves in the industry. The IPTC is always looking at how we can help media organisations to better convey trust information around their content, and how we can help consumers of media content to better understand the origin and provenance of the work.

Our hope is that these indicators of trust will be adopted by news organisations in the way that public-facing trust indicators are already used (via schema.org markup) by many news outlets around the world.

If you have any feedback on this guidance document, or suggestions for new ways that we can enable news providers to express trust information, please let us know via email to office@iptc.org.