Neuroimaging Paper Parse Schema¶
The two artifacts the ingestion workflow hands downstream before any language model has read the paper for its study design: the parsed paper (ParsedPaper) and the coordinate parse (CoordinateParse). The extraction record (neuroimaging-study-extraction) and the storage record (neuroimaging-study-storage) both point back into these artifacts -- evidence spans into the parsed paper's text, analyses into the coordinate parse's keys -- so the three schemas live in one repository and are versioned together.
A ParsedPaper is what a paper is once it has been downloaded and parsed: one text that every later character offset addresses, its tables row by row, and the bibliographic facts the metadata lookup returned. Every download source (PMC, Europe PMC, pubget, Elsevier, ACE, PDF) emits this one shape, so no consumer needs to know which source a paper came from.
A CoordinateParse is the reported coordinates grouped into analyses. Its points are a superset of NIMADS points (coordinates, space, values[{kind, value}]), so the projection to the studyset format NiMARE reads is a field copy. NIMADS itself is not extended: it is the meta-analysis interchange, and the parse needs table rows, keys, a sign split and a revision history that a studyset has no use for.
Two producers write a CoordinateParse. The ingestion workflow writes the original, whose grouping of rows into analyses is a proposal. pondie audits each grouping while it extracts the whole record, and where its verdict differs it writes a revision: a complete CoordinateParse naming the parse it revises and one verdict per original analysis. The revision supersedes the original, and is uploaded with pondie's record so the stored analyses match the analyses the record describes.
URI: https://neurostuff.org/schemas/neuroimaging-paper-parse
Name: neuroimaging-paper-parse
Classes¶
| Class | Description |
|---|---|
| AnalysisVerdict | pondie's verdict on one analysis of the parse a revision revises, reached whi... |
| ArticleIdentifiers | Every identifier known for the paper when the artifact was written |
| ArtifactHeader | Who made an artifact, from what, for which paper |
| Bibliography | The paper's bibliographic facts, as the metadata lookup returned them |
| CellRef | One table cell an analysis was read from, by row and column group |
| Citation | One in-text citation and the reference entries it names |
| CoordinateParse | Every coordinate a paper reports, grouped into analyses |
| Copy | One copy of a paper, where it is, which version it is, and its licence |
| Correction | One notice attached to a paper |
| HeldCopy | A copy we downloaded |
| InputRef | One artifact another was made from |
| License | A licence as one source stated it, or all rights reserved assumed because no ... |
| OmittedAnalysis | A text or figure analysis the producer read but did not keep, the text counte... |
| ParsedAnalysis | The points a paper reports together for one tested effect, or for one non-res... |
| ParsedPaper | One paper as text, tables and bibliographic facts |
| ParsedPoint | One reported coordinate |
| ParsedTable | A table of the paper, cell by cell |
| PointValue | A value reported at a point |
| PreprintDoi | A DOI a preprint server registered, with the server that registered it |
| Producer | The program and stage that wrote an artifact |
| Reference | One entry of a paper's reference list |
| ReportedCopy | A copy a metadata source lists and we do not hold |
| Section | A span of the text and what it is |
| SignSplit | One half of an analysis the producer split by the sign of its points (see Sta... |
| Supplement | One item of supplementary material |
| TableReading | What reading one table for coordinates found |
| TableRow | One body row of a table |
| TableTriage | Whether a table is worth reading for coordinates, and why |
| TextSpan | A range of the parsed paper's text, by character offset |
| TextSweep | How much of the text was searched for coordinates outside tables, so a reader... |
| Threshold | One threshold an analysis's results survived |
Slots¶
| Slot | Description |
|---|---|
| abstract | Absent (null) when no source gave one; never an empty string |
| abstract_provider | The source whose abstract abstract is |
| access | |
| analyses | May be empty: the parse ran and found no analysis |
| anchor_kind | For an anchor, what it defines |
| article_id | The ingestion catalog's key for the paper |
| artifact_kind | |
| authors | Author names in published order |
| bibliography | |
| caption | |
| cells | The row's cells, as printed, in column order |
| citations | Every in-text citation, where it sits in the text and which reference it poin... |
| cluster_measure | |
| cluster_size | |
| column_group | As on ParsedPoint; 0 in a table with one block of coordinate columns |
| column_headings | |
| confidence | For a heuristic alignment, how sure; absent for an exact one |
| coordinate_space | The space of the analysis's points; absent when the paper states none |
| coordinate_space_hint | The source parser's own guess at the table's space |
| coordinates | x, y, z in millimetres |
| correction | For a p value, the correction it is under; absent for a statistic or effect s... |
| corrections | Notices attached to the paper -- errata, retractions, expressions of concern ... |
| created_at | |
| derived_from | On a revision, the keys of the revised parse's analyses this one was made fro... |
| description | |
| determination | |
| doi | The DOI of the version of record |
| end_char | Exclusive |
| evidence | The sentences of the paper the verdict rests on |
| excluded_by_hand | A person marked the table as not holding coordinates |
| exclusion_reason | |
| fetched | |
| fingerprint | The input's identity: text_sha256 for a parsed paper, parse_id for a coor... |
| footer | |
| from_prior_study | The coordinates come from another publication rather than from this study: a ... |
| half | |
| header | |
| heading | The heading as printed |
| id | Stable within the paper: the source's own id where it has one (a JATS ref i... |
| identifiers | |
| inputs | Every artifact this one was made from, by fingerprint |
| is_meta_analysis | Whether the paper is itself a meta-analysis or review, decided here once |
| is_meta_analysis_basis | |
| is_subpeak | |
| issue | |
| journal | |
| key | The analysis's identity, derived from what was extracted -- its name, `coor... |
| keywords | |
| kind | |
| kind_as_printed | |
| label | How the text cites it: the number of a numbered style ("12"), or the author-y... |
| language | Languages of the article, as the E-utilities API reports them -- the three-le... |
| level | Whether the value describes the peak or the cluster the peak belongs to |
| license | The paper's licence: the version of record's, or the latest preprint's while ... |
| license_id | Which licence, as OpenAlex's licence slugs name them (cc-by, cc-by-nc, |
| located_by | |
| method | How the marker was tied to its entries -- what its reliability rests on |
| model | The language model a stage called, if any |
| name | ns-pond-ingestion-workflow or pondie |
| name_is_printed | False when the producer composed the name because the paper printed none, so ... |
| neurostore_base_study_id | Set once the paper has been uploaded; neurostore's BaseStudy id |
| number | |
| oa_status | |
| omitted_analyses | Text or figure analyses the producer read and left out of analyses, each wi... |
| origin | |
| original_analysis | On the inverse half, the key of the original analysis (the other half of th... |
| pages | |
| parse_id | This parse's identity, the fingerprint every later artifact cites |
| passages_found | Passages that looked like they hold coordinates |
| passages_read | Of those, how many were read; fewer when a cap cut the search short |
| passes | |
| path | Where the fetched file is, relative to the bundle directory |
| pmcid | PubMed Central's copy of the version of record |
| pmid | PubMed's record of the version of record |
| points | Empty when the paper names the analysis but reports no coordinates for it -- ... |
| points_dropped_as_table_restatements | Points found in the text but dropped because a table already reports them |
| position | 1-based order in the list, which a numbered citation style cites by |
| preprint_dois | Every DOI a preprint server registered for the paper |
| preprint_pmcid | PubMed Central's copy of the preprint |
| preprint_pmid | PubMed's record of the preprint, which PubMed types Preprint |
| preprint_server | |
| prior_study_evidence | The citation or sentence showing the coordinates come from another publicatio... |
| producer | |
| producer_version | |
| prompt_version | |
| provider | The metadata service the facts came from |
| publication_status | preprint when a preprint_ field is set and doi, pmid and pmcid are ... |
| publication_types | PubMed publication types for this record, verbatim as the E-utilities API ret... |
| publication_year | Year in which the study was first published or made publicly available |
| quantity | What value is measured in |
| raw_path | The source's raw table file, relative to the bundle directory |
| reading | |
| reason | For a table not read, why; for an excluded one, who excluded it |
| references | The paper's reference list, in order |
| replaced_by | The keys in this revision that take the analysis's place: itself for accept a... |
| reported_by | |
| reported_copies | Copies of the paper that a source lists and that we do not hold, each with it... |
| revision_of | The parse_id of the parse this one revises |
| role | What the points are for |
| role_confidence | The classifier's probability for role (and anchor_kind) |
| role_source | The classifier that set the role, by name and version, such as `set-role-enco... |
| route | |
| row | The row's index among the table's body rows, from 0 |
| rows | The body rows, in printed order |
| rule | |
| schema_version | The version of this schema the artifact validates against |
| scope_as_printed | What the correction ran over, as printed, such as "whole brain" or "within th... |
| score | |
| sections | |
| server | Named by the producer from the DOI, so that no consumer needs a table of prep... |
| source | |
| source_reason | Why this source's text was chosen over the others downloaded, such as "most t... |
| space | Only when it differs from the analysis's coordinate_space |
| space_as_printed | |
| space_basis | |
| split | Present on both halves of an analysis split by sign, and only there |
| stage | The stage within the producer, such as extract, space or audit |
| start_char | |
| stated_as | The statement exactly as the source gave it: a licence URL, a licence name, o... |
| stated_by | The source whose statement this is |
| statistic | The test statistic of this analysis's one test -- t, z, F, chi_square -- what... |
| statistic_df | Degrees of freedom as printed, such as "1, 38" or "27" |
| supplements | Supplementary material the paper links to, and whether it was fetched |
| table_id | The table's key, as the source's parser names it |
| tables | |
| text | The characters in the range, kept so a reader can check the offsets |
| text_copy | The copy the text was read from |
| text_length | |
| text_path | The text file's path, relative to the paper's bundle directory |
| text_sha256 | sha256 of the text file's UTF-8 bytes |
| text_span | The citation marker in the text |
| text_spans | For a text or figure analysis, the sentences or legend it was read from: thos... |
| text_sweep | How much of the text was searched for coordinates outside tables |
| thresholds | The thresholds the analysis's results survived, at every level the paper stat... |
| title | |
| triage | |
| truncated | |
| url | |
| value | |
| values | The values at the point |
| verdict | |
| verdicts | On a revision only: one verdict for every analysis of the revised parse, so n... |
| version | |
| volume | |
| year |
Enumerations¶
| Enumeration | Description |
|---|---|
| AnalysisOutcome | Whether the tested effect produced any finding at the threshold the source ap... |
| AnalysisType | The method that produced the statistical map, independent of what was tested ... |
| AnchorKind | What an anchor coordinate set defines |
| ArtifactKind | Which of the two parse artifacts a header belongs to |
| AuditVerdict | pondie's verdict on one analysis of the parse it revises |
| CitationAlignment | How an in-text citation was tied to its reference entries |
| ClusterMeasure | The unit of a reported cluster size |
| ConjunctionImplementation | Procedure used to compute the conjunction, which is not the same statement as... |
| ConnectivityMethod | Method used to estimate connectivity |
| CoordinateOrigin | Where a parsed analysis's points were read from |
| CoordinateRole | What a set of reported coordinates is, by what it is to the study and not by ... |
| CopyAccess | How we obtained a copy we hold |
| CopyRoute | Where a copy of a paper is hosted |
| CopyVersion | Which version of the paper a copy is, in the NISO Journal Article Versions te... |
| CorrectionKind | A notice attached to a paper by its publisher or indexer |
| CorrectionMethod | How a p value or threshold was corrected for multiple comparisons |
| DecompositionMethod | The algorithm that produced the components or latent variables, which decides... |
| Direction | How a term entered or came out of an analysis, using one vocabulary for every... |
| DocumentSource | Where the parsed text came from |
| EdgeDirectionality | Whether a connectivity edge is genuinely directed |
| EffectKind | What kind of test an effect's cells describe |
| EffectPath | The path through a mediation model represented by an effect's map |
| FunctionalForm | Shape of a term's relationship to the measure |
| InferenceTarget | What the connectivity analysis drew inference about |
| LicenseDetermination | Whether a source stated the licence |
| LicenseId | The terms a licence grants |
| MapQuantity | What the values of a component or latent-variable map represent |
| MeasureFamily | Broad imaging or signal family, for coarse filtering |
| MeasureType | Normalized scientific quantity of the map, for cross-study queries |
| MetaAnalysisBasis | What `ParsedPaper |
| MetadataSource | Who stated a bibliographic fact |
| ModelFamily | Statistical model family used to estimate the effect |
| NotStructurableReason | Why a grounded effect has no stable structured decomposition |
| NullHypothesis | The null hypothesis tested by a conjunction |
| OaStatus | How a paper is open to read, in OpenAlex's terms (https://help |
| PerformanceRelation | Direction of a decoding performance metric relative to its reference value |
| PolaritySemantics | Whether the sign of a component map carries meaning |
| PreprintServer | The preprint server that registered a DOI |
| Prespecification | Whether a contrast was planned before the data were seen |
| PublicationStatus | Whether a paper's version of record is known, or only its preprint |
| ReferenceProvider | Where a reference-list entry came from |
| ReportedSpace | The coordinate space a point is in, normalized to the values NiMARE transform... |
| ResultKind | The kind of analysis a result came from, coarse enough to read from a table... |
| SecondBlock | What a decomposition crossed the brain block with, one value per block |
| SectionKind | What a span of the text is |
| SpaceBasis | Where a space was read from, most specific first |
| SpatialScope | Spatial domain of the analysis, and a meta-analysis inclusion criterion |
| SpatialUnit | The element an analysis was carried out over: the surface-versus-volume disti... |
| SplitHalf | Which half of a sign split an analysis is |
| SplitRule | The deterministic rule that split an analysis |
| StatisticFamily | Test statistic family for the tested effect, independent of the thresholding ... |
| StatisticKind | The kind of a value reported at a point |
| StudyType | PubMed publication types, spelled as the E-utilities API returns them so that... |
| TablePurpose | What a table is for |
| TableReadingKind | What reading a table for coordinates found |
| TermType | Whether a model term is categorical or continuous |
| ThresholdLevel | The level a threshold applies at |
| ThresholdQuantity | What a threshold's value is |
| ValueLevel | What a value at a point describes |
| VariationLevel | The level at which a term varies -- whether it moves within a participant or ... |
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 speci... |
| 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 |
| Jsonpointer | A string encoding a JSON Pointer |
| 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 |
| String | A character string |
| Time | A time object represents a (local) time of day, independent of any particular... |
| Uri | a complete URI |
| Uriorcurie | a URI or a CURIE |
Subsets¶
| Subset | Description |
|---|---|
| deterministic | Filled by code rather than by reading the source: an API or web-service looku... |
| model_extracted | Filled by a language model reading the source |
| mvp | Fields the first production release extracts and stores |