A claim that two events or coordinates on different timelines correspond.
A MatchClaim always knows which two timelines it connects via top-level timeline_a_id and timeline_b_id fields. Anchors are only present for synchronous claims.
Four cases
from_events: Two timed things on different timelines correspond.
from_projection: An event is projected onto a timeline with no matching event.
nomatch: An event has no equivalent on the other timeline.
implicit: Implicit claim generated by MatchGraph group extension.
Check if this claim connects two specific timelines.
Parameters
Name
Type
Description
Default
timeline_a_id
str
First timeline.
required
timeline_b_id
str
Second timeline.
required
Returns
Name
Type
Description
bool
True if the claim connects exactly these two timelines.
from_dict
alignment.MatchClaim.from_dict(data)
Deserialize from dictionary.
Two normalisations precede validation: an absent timeline ID is taken from the start anchor, and a missing or null id becomes the empty string that triggers ID generation.
A synchronous MatchClaim with 1 or 2 anchors and source event info.
from_row
alignment.MatchClaim.from_row(row)
Reconstruct a claim from a struct-shaped Arrow row dict.
This is the entry point SemanticField.__getitem__ uses to materialise a scalar from the backing struct column. The row dict carries the nested start_anchor / end_anchor / metadata sub-dicts (or None for absent slots), so the shape is exactly the one :meth:from_dict already accepts.
Return a MatchStamp for this claim’s start anchor.
With from_graph=True (the default), the method builds or retrieves the full MatchGraph for this claim’s coordinate from the bundle’s cache and returns the FULL MatchStamp combining timestamps from ALL groups connected at this coordinate.
With from_graph=False, constructs a reduced MatchStamp from only the two timelines in this claim (no graph construction needed).
Parameters
Name
Type
Description
Default
bundle
'AlignmentBundle | None'
The AlignmentBundle containing this claim. Required for from_graph=True. Provides group info and the MatchGraph cache.
None
from_graph
bool
If True (default), build/retrieve the full MatchGraph and return the FULL MatchStamp across ALL connected groups. If False, return a reduced 2-timeline MatchStamp.
True
conversion_maps
'ConversionMapsSpec'
C-map conversions available through unit lookup. Opt-in: defaults to False.
False
Returns
Name
Type
Description
'MatchStamp | None'
MatchStamp with coordinates, or None if this claim is
'MatchStamp | None'
non-synchronous (NOMATCH).
Raises
Name
Type
Description
ValueError
If from_graph=True but no bundle is available (neither passed nor set via set_bundle()).
Examples
Full stamp (default – from graph, all groups)::
>>> stamp = claim.get_matchstamp() # uses claim's bundle
>>> stamp.n_timelines
23 # score + 22 performers at this coordinate
Reduced stamp (two timelines only)::
>>> stamp = claim.get_matchstamp(from_graph=False)
>>> stamp.n_timelines
2 # just the two timelines in this claim
A non-synchronous MatchClaim with no anchors but source event
'MatchClaim'
info. The source-side coordinate (event["start"]) is
'MatchClaim'
preserved as source_coordinate for display.
set_bundle
alignment.MatchClaim.set_bundle(bundle)
Associate this claim with an AlignmentBundle.
This is called automatically when claims are added to a bundle. Once set, get_matchstamp(from_graph=True) can be called without passing the bundle explicitly.
Parameters
Name
Type
Description
Default
bundle
Any
The AlignmentBundle containing this claim.
required
to_dict
alignment.MatchClaim.to_dict()
Serialize to dictionary for storage.
The values come straight from model_dump; only the key order and the omission of an absent source_claim_id are applied on top, since both are part of the stored shape.