Electepedia core schema

Shared data model for Electepedia and its sub-projects (e.g. Rhetornet). Covers the people and organizations in the political ecosystem (officeholders, candidates, staff, journalists, commentators), their dated roles, what they said, how claims were reviewed, how legislators voted, and money flows, with provenance on every factual record. Classes and slots are mapped to Popolo (people, organizations, memberships, posts, votes), schema.org (claims, fact-checks, creative works), SKOS (topics) and W3C PROV-O / PAV (provenance) so the data can be exchanged as JSON-LD without adopting this codebase.

URI: https://electepedia.com/schema/electepedia

Name: electepedia

Classes

Class Description
Agent Something that can speak, act, publish, send or receive money.
Bill A piece of legislation. name is its title.
Claim A checkable proposition in canonical wording, independent of who said it. Multiple Statements can make the same Claim.
ClaimReview A fact-check of a Claim, either imported from a third-party fact-checker (as published in their schema.org ClaimReview markup) or produced by Electepedia contributors.
Count The number of votes for one option in a VoteEvent.
Dataset A bundle of Electepedia records, e.g. one import batch or an example file.
Event Something that happened at a time: a debate, hearing, interview, broadcast segment, press conference. Rhetornet extends this for debates.
ExternalIdentifier An identifier in an external registry (Popolo Identifier).
FinancialTransaction Money moving between two agents: a contribution to a campaign committee, an independent expenditure, a speaking fee, a lobbying payment. Either side can be a Person or an Organization.
HasProvenance Every factual record says where it came from and who recorded it.
Membership A dated role linking a Person to an Organization, optionally in a Post. This is how every role is represented: office, candidacy, staff job, newsroom job, recurring commentator slot, party office, lobbying client.
Motion A formal proposal put to a vote (passage, amendment, cloture…).
NamedThing Base for records that have a display name and may carry external identifiers.
OnlineAccount A public account the agent operates (official website, social media).
Organization Any organization: legislature, chamber, committee, party, agency, campaign, PAC, news outlet, think tank, etc.
Person A human in the political ecosystem. One record per human regardless of role: a staffer who becomes a commentator and then a candidate is still one Person with three Memberships. Personal contact details, birth dates and home locations are deliberately not modeled.
Post A position that exists independently of who holds it, e.g. “U.S. Senator for Ohio (Class 1)” or “Anchor, Evening News”. Optional: many Memberships (staff, contributors) have no formal Post.
Rating The reviewer’s verdict on their own scale, plus Electepedia’s mapping onto a common scale so verdicts from different checkers can be compared.
Source A document, recording, dataset or post that evidences other records. Prefer primary sources (official records, full recordings, original posts) over coverage of them.
Statement Something a specific person actually said or wrote, on a specific occasion. The checkable proposition(s) inside it are modeled as Claims, so the same claim can be traced across many speakers and outlets.
Topic A subject area, arranged in a hierarchy.
Vote How one person voted in one VoteEvent.
VoteEvent A single vote held on a Motion, with its tallies.

Slots

Slot Description
additional_name Middle name(s) or initials.
alternate_name The verdict as published, e.g. “Mostly False”, “Four Pinocchios”.
alternate_names Other names the person is known by in sources: nicknames, former names, transliterations.
amount Amount in currency, as reported.
appearances Statements that make this claim.
archived_at Archived copy (e.g. Wayback Machine) in case the original changes or disappears.
author The fact-checking organization or person.
authors People or organizations credited as authors.
best_rating Value of the most-true verdict on the reviewer’s scale.
bill The bill the motion concerns, if any.
bills Bill records in this bundle.
broader The parent topic, e.g. “Medicare” is narrower than “Health care”.
claim_reviewed The claim as worded by the reviewer.
claim_reviews ClaimReview records in this bundle.
claims Claim records in this bundle.
classification What kind of organization this is.
content_hash SHA-256 (hex) of the captured content, for tamper evidence.
counts Tallies per vote option, as officially reported.
coverage_tier Why this person meets Electepedia’s inclusion threshold. People who fit no tier should not be recorded.
currency ISO 4217 code.
date_made When it was said or first published.
date_published When the source was published.
date_submitted When the motion was made.
description Free-text summary of the record.
dissolution_date When the organization ceased to exist. Absent means still active.
district Open Civic Data division ID of the seat’s district, if any.
end_date Absent means ongoing.
event The event where it was said, if any.
event_type What kind of event this is.
events Event records in this bundle.
family_name Last name or surname.
financial_transactions FinancialTransaction records in this bundle.
first_appearance Earliest known statement making this claim.
founding_date When the organization was founded or first convened.
given_name First name, as used publicly.
handle Account name on the platform, e.g. “@example”, if it has one.
id Stable Electepedia identifier, e.g. elp:person/jane-example. External identifiers (Bioguide, FEC, Wikidata…) go in identifiers.
identifiers Identifiers for this entity in external registries.
in_capacity_of The role the speaker held when they said this (e.g. their Senate seat, their slot as a network host, their job as campaign spokesperson). Lets analyses separate what someone said as an official from what they said as a commentator.
is_primary True if this is the original record rather than a report about it.
item_reviewed The Claim being fact-checked.
jurisdiction Open Civic Data division ID, e.g. ocd-division/country:us/state:oh.
label Name of the position, e.g. “U.S. Senator for Ohio (Class 1)”.
legislation_identifier e.g. “H.R. 1234”.
legislative_session e.g. “119th Congress” or “2025 Regular Session”.
legislature The legislature or chamber where the bill was introduced.
location Where it took place, as free text, e.g. “Cleveland, OH” or “Senate floor”.
media_end_seconds Offset into the source recording where the statement ends.
media_start_seconds Offset into the source recording where the statement starts.
member The person holding the role.
memberships Membership records in this bundle.
motion The motion voted on.
motions Motion records in this bundle.
name Primary display name.
normalized_rating The verdict mapped onto Electepedia’s common scale.
online_accounts Official websites and public social media accounts.
option Popolo encodes this as the Count’s rdf:type (opengov:YesCount etc.).
organization The organization the record belongs to or takes place in.
organizations Organization records in this bundle.
organizers Who held or hosted the event, e.g. a broadcaster, committee or campaign.
parent_organization The organization this one is part of, e.g. a committee’s chamber or a program’s network.
participants People who spoke or took part, e.g. debaters, witnesses, panelists, hosts.
people Person records in this bundle.
platform e.g. “website”, “x”, “bluesky”, “youtube”, “substack”.
post The formal position held, if the role has one.
posts Post records in this bundle.
publisher Organization that published the source, e.g. a news outlet or government body.
quote_type How faithful text is to the original wording.
rating_value Numeric verdict on the reviewer’s own scale, if they publish one.
recipient Who received the money (for expenditures, the payee).
record_status Whether this record accurately reflects its sources (e.g. the person really said this, the vote really happened this way). This is NOT a judgement on whether a claim is true; that is what ClaimReview is for.
recorded_at When the record was created in Electepedia, not when the underlying event happened.
recorded_by Contributor account or automated pipeline that created this record (e.g. “user:alice”, “pipeline:congress-votes@v1”).
result Whether the motion passed.
retrieved_on When Electepedia fetched or captured this source.
review_body Summary of the reviewer’s reasoning.
review_rating The reviewer’s verdict.
role_category Normalized kind of role, for filtering across organizations.
role_title Title as used by the organization, e.g. “Press Secretary”.
scheme The registry the identifier belongs to.
sender Who the money came from.
source_type What kind of material this is.
sources The source records this record was derived from.
speaker The person who said or wrote it.
sponsors Legislators who sponsored or cosponsored the bill.
start_date Date the role, position, event or period began.
start_time Precise start, when known; start_date is always set.
statement_type What kind of utterance this is. Only claims are fact-checked.
statements Statement records in this bundle.
text Verbatim where possible; see quote_type.
topics Subject areas the record is about.
transaction_date When the money changed hands, or the date given in the filing.
transaction_type What kind of payment this is.
url Canonical web page for the record, e.g. an official site or the published fact- check.
value The identifier exactly as the registry writes it, e.g. “S000148”.
vote_event The vote this was cast in.
vote_events VoteEvent records in this bundle.
voter The legislator who voted.
votes Vote records in this bundle.
worst_rating Value of the least-true verdict on the reviewer’s scale.

Enumerations

Enumeration Description
CoverageTierEnum Inclusion tiers. Anyone outside these is out of scope.
EventTypeEnum Kinds of event.
IdentifierSchemeEnum External registries whose identifiers Electepedia stores.
MotionTypeEnum Kinds of motion.
NormalizedRatingEnum Common scale that every reviewer’s verdict is mapped onto.
OrganizationTypeEnum Kinds of organization.
QuoteTypeEnum How close a Statement’s text is to the speaker’s own words, strongest evidence first.
RecordStatusEnum Whether a record has been checked against its sources.
RoleCategoryEnum Normalized kinds of role, independent of each organization’s own job titles.
SourceTypeEnum Kinds of evidence a Source can be.
StatementTypeEnum Kinds of utterance.
TransactionTypeEnum Kinds of payment.
VoteOptionEnum How a legislator can be recorded in a vote.
VoteResultEnum Outcome of a vote.

Types

Type Description
Boolean A binary (true or false) value
Curie a compact URI
Date a date (year, month and day) in an idealized calendar
DateOrDatetime Either a date or a datetime
Datetime The combination of a date and time
Decimal A real number with arbitrary precision that conforms to the xsd:decimal specification
Double A real number that conforms to the xsd:double specification
Float A real number that conforms to the xsd:float specification
Integer An integer
Jsonpath A string encoding a JSON Path. The value of the string MUST conform to JSON Point syntax and SHOULD dereference to zero or more valid objects within the current instance document when encoded in tree form.
Jsonpointer A string encoding a JSON Pointer. The value of the string MUST conform to JSON Point syntax and SHOULD dereference to a valid object within the current instance document when encoded in tree form.
Ncname Prefix part of CURIE
Nodeidentifier A URI, CURIE or BNODE that represents a node in a model.
Objectidentifier A URI or CURIE that represents an object in the model.
Sparqlpath A string encoding a SPARQL Property Path. The value of the string MUST conform to SPARQL syntax and SHOULD dereference to zero or more valid objects within the current instance document when encoded as RDF.
String A character string
Time A time object represents a (local) time of day, independent of any particular day
Uri a complete URI
Uriorcurie a URI or a CURIE

Subsets

Subset Description