Global.Church Developer Portal
Reference

People Group Model

The Global.Church knowledge graph models people groups through four layered classes. Each carries a different question:

  • gc:PeopleGroup — the classification concept. Joshua Project's people-list entry for the Kurds (or IMB's, ROP3's, AX's, Etnopedia's, or another scheme's) — a record with its scheme's code, identity criteria, and a prefLabel like "Kurds." Lives under dul:Concept + skos:Concept. The concept has a name, a code, and criteria — not a population, a place, or a reachedness percentage. Those belong to the people the concept names.
  • gc:PeopleGroupCollectivethe Kurds themselves. The actual people the classification concept names, considered across all places and times. The broader who. Carries gc:classifiedByPeopleGroup back to the concept.
  • gc:PeopleGroupPopulationSegment — a scoped slice of a collective. The reusable A-box anchor for population estimates, reachedness assessments, and engagement attestations. One collective is realized by many segments simultaneously: a cross-country rollup, one in-country slice per country, one in-city slice per city the group is reported in, one in-diaspora slice per host place.
  • gc:PeopleGroupCommunity — a local social manifestation. The community on the ground — shared identity, practice, and interaction patterns. A neighborhood, a tribal village, a diaspora hub. One segment can host many communities; one community can sit within multiple segments.

Why split the classification concept from the people

A classification concept is a record in a registry; the people are the actual humans. The JP entry titled "Kurds" carries a ROP3 code, identity criteria, and a prefLabel — it has no population, lives in no country, and isn't more or less reached. Asking "what is the Kurds' population?" is meaningful only when scoped: in Iraq? worldwide? in the German diaspora? Each answer attaches to a different gc:PeopleGroupPopulationSegment — a scoped slice of the Kurdish collective — not to the classification concept itself.

The shape resolves several problems at once. Multi-source disagreement is preserved (two schemes can classify the same segment under different concepts; both classifications coexist with their own provenance chains). Multi-source population numbers are preserved (JP and a local field-research team can each emit their own gc:PeopleGroupPopulationEstimate on the same segment). Sub-country and operational scopes (in-City, in-Diaspora, in-Church, in-MinistryEngagement) compose at query time without minting new subclasses. And the Lausanne maximality definition stays attached to the concept, where it belongs.

The four-layer model

LayerClassWhat it representsIdentity
Classification conceptgc:PeopleGroupThe publishing scheme's entry that names a people group — JP / IMB / ROP3 / AX's record with its code, identity criteria, and a prefLabel like "Kurds"Constituted by the governing scheme's definition
Abstract collectivegc:PeopleGroupCollectiveThe actual people the concept names, considered across all places and timesOne per concept
Scoped slicegc:PeopleGroupPopulationSegmentA specific scope of the collective — across countries, in country, in city, in diaspora, in language, in religion, in church, in network, in denomination, in ministry engagementOne per (concept × scope dimension)
Local bodygc:PeopleGroupCommunityA community on the ground — neighborhood, village, diaspora hubMany per segment; one community can sit within multiple segments

Estimates and assessments hang off the segment, not the concept and not the community. Engagement attestations target a segment (gc:claimedPopulationSegment). Cross-source classifications target a segment (or a community). The concept stays clean: a name plus a gc:hasPeopleClassification link to the corresponding HIS ROP3 SKOS concept that serves as the cross-source join key.

Scope types

gc:PeopleGroupScopeTypeScheme carries 17 controlled-vocabulary concepts that classify the scope dimension of a gc:PeopleGroupPopulationSegment. Every segment must declare exactly one scope type via gc:hasScopeType. The corresponding scope dimension is carried via gc:locatedIn, gc:spatialScope, gc:hostPlace / gc:homelandPlace, gc:withinChurch, gc:withinNetwork, gc:withinDenomination, gc:withinMinistryEngagement, or gc:temporalScope.

Cross-source rollups

CodeConceptWhen to use it
PGST-PGAPeople Group Across Countries (PGAC)The cross-country rollup of a concept — the segment that spans every country in which the group is reported. The natural carrier for global counts and global reachedness rollups.
PGST-PGIPeople Group In Country (PGIC)The per-country segment of a concept — one segment per (concept × ROG country) pair known to the source. The canonical join target for engagement attestations and country-scoped reachedness assessments.

Geographic finer-grained scopes

CodeConceptWhen to use it
PGST-CITPeople Group In CityA segment scoped to a specific city. Useful for urban-targeted ministry, urban diaspora, or city-level Hotspot lists.
PGST-ADMPeople Group In Admin AreaA segment scoped to an administrative subdivision below the country level (state, province, governorate, ADM1 / ADM2). The carrier for sub-national Hotspot lists.
PGST-RGNPeople Group In RegionA segment scoped to a multi-country region (HIS ROG region, IMB affinity-region grouping).
PGST-PLYPeople Group In PolygonA segment scoped to an arbitrary polygon — a watershed, a tribal territory, a refugee-camp zone — that does not align with administrative geography.
PGST-PLCPeople Group In PlaceA segment scoped to a named place that is not a city, admin area, or region — a refugee camp, an island, a settlement.

Demographic scopes

CodeConceptWhen to use it
PGST-LNGPeople Group In LanguageA segment scoped to a specific language community within a multilingual concept.
PGST-RELPeople Group In ReligionA segment scoped to a religious sub-population — e.g., the Sunni Kurdish segment vs. the Yezidi Kurdish segment.
PGST-CCTPeople Group In Caste, Clan, or TribeA segment scoped to a constituent caste, clan, or tribe within an aggregating concept.
PGST-AFGPeople Group In Affinity GroupA segment scoped to an IMB-style affinity grouping — kinship, professional, or shared-experience cohort.
PGST-CLUPeople Group In ClusterA segment scoped to a cluster of related people groups under a higher-level grouping (HIS People Cluster, IMB Kinship Group).

Diaspora

CodeConceptWhen to use it
PGST-DIAPeople Group In DiasporaA segment scoped to a diaspora population — persons of the people group living outside the homeland. Carries gc:hostPlace and gc:homelandPlace.

Operational scopes

CodeConceptWhen to use it
PGST-MEGPeople Group In Ministry EngagementA segment scoped to the population reached by a specific engagement (gc:EngagementSituation, gc:EngagementActivity, or gc:MinistryActivity). Carries gc:withinMinistryEngagement.
PGST-CHUPeople Group In ChurchA segment scoped to the population gathered within a specific church or ekklesia body. Carries gc:withinChurch.
PGST-NETPeople Group In NetworkA segment scoped to the population organized within a specific network of churches or ministries. Carries gc:withinNetwork.
PGST-DENPeople Group In DenominationA segment scoped to the population gathered within a specific denomination. Carries gc:withinDenomination.

Segments compose hierarchically: a PGAC segment may contain per-country PGIC segments via gc:hasSubPopulationSegment; a PGIC segment may contain per-city or per-cluster sub-segments. Non-hierarchical overlap (a Kurds-in-Iraq PGIC slice overlapping a Kurds-Diaspora-in-Germany segment via the moving population) is recorded with gc:overlapsPopulationSegment.

Classification: placing a concept under one or more schemes

A gc:PeopleGroupClassification is a time-indexed source-attributed claim that a particular gc:PeopleGroup concept classifies a particular entity (typically a gc:PeopleGroupPopulationSegment or gc:PeopleGroupCommunity). gc:PeopleGroupClassificationScheme instances are minted per source — one for the Joshua Project people-list, one for the HIS ROP3 registry, one for the IMB Affinity Bloc framework, one for AX, one for Etnopedia, one for a local research team's naming scheme.

Classification is its own first-class entity rather than a property on the segment, which preserves disagreement: when JP's ROP3-anchored scheme and a local-research team classify the same segment under different concepts (one publishes a single "Kurds" concept; another splits it into "Kurmanji" and "Sorani" sub-groupings), both classifications coexist with their own provenance chains. Cross-scheme alignment runs through skos:exactMatch / skos:closeMatch on the contained concepts, with ROP3 typically serving as the join key.

Code
<https://data.global.church/peoplegroup/classification/kurd-IQ-jp> a gc:PeopleGroupClassification ; gc:classificationScheme <https://data.global.church/peoplegroup/scheme/joshua-project> ; gc:classificationConcept <https://data.global.church/peoplegroup/concept/kurd> ; gc:classifiedEntity <https://data.global.church/segments/kurd/IQ> ; prov:wasAttributedTo <https://data.global.church/org/joshua-project> ; prov:generatedAtTime "2026-01-15T10:00:00Z"^^xsd:dateTime .

Population estimates: multi-source disagreement preserved

A gc:PeopleGroupPopulationEstimate is an information-bearing datum about a segment — count, percent Christian, percent evangelical, source metric, confidence, source, date. It's a gc:AssessmentDatum so it inherits the finer-grained provenance machinery (source, confidence, generation time) that the assessment family uses.

Multi-source disagreement is preserved by minting separate estimates per source rather than coalescing values onto the segment. JP and a local field-research team can each emit their own estimate for Kurds-in-Iraq; both attach to the same segment via gc:hasPopulationEstimate. If anyone authors a reconciled estimate later, that is a third entity that prov:wasDerivedFrom both sources — not an overwrite.

Code
<https://data.global.church/segments/kurd/IQ> a gc:PeopleGroupPopulationSegment ; gc:hasPopulationEstimate <https://data.global.church/peoplegroup/estimate/kurd-IQ-jp-2026> , <https://data.global.church/peoplegroup/estimate/kurd-IQ-local-2026> . <https://data.global.church/peoplegroup/estimate/kurd-IQ-jp-2026> a gc:PeopleGroupPopulationEstimate ; gc:estimateForPopulationSegment <https://data.global.church/segments/kurd/IQ> ; gc:datumValue "6500000"^^xsd:integer ; gc:confidenceScore "0.85"^^xsd:decimal ; prov:wasAttributedTo <https://data.global.church/org/joshua-project> ; prov:generatedAtTime "2026-01-15T10:00:00Z"^^xsd:dateTime . <https://data.global.church/peoplegroup/estimate/kurd-IQ-local-2026> a gc:PeopleGroupPopulationEstimate ; gc:estimateForPopulationSegment <https://data.global.church/segments/kurd/IQ> ; gc:datumValue "7100000"^^xsd:integer ; gc:confidenceScore "0.70"^^xsd:decimal ; prov:wasAttributedTo <https://data.global.church/org/example-field-team> ; prov:generatedAtTime "2026-03-01T14:00:00Z"^^xsd:dateTime .

Reachedness assessment results

A gc:ReachednessAssessmentResult is the source-specific assessment-result of gospel access, evangelical presence, church presence, and engagement on a gc:PeopleGroupPopulationSegment. It's a gc:AssessmentResult, so it slots into the methodology + result-target machinery shared with people-group and church-health assessments — see Assessment Frameworks.

A reachedness result links back to its segment via gc:resultForPopulationSegment (or the parallel inverse gc:assessmentResultOfPopulationSegment) and carries one or more reachedness payloads:

PropertyRangeWhat it carries
gc:hasReachednessStatusskos:ConceptThe reachedness status reported by this result — typically a JP / IMB / AX scheme value (e.g., a JP Progress Scale concept).
gc:hasEngagementStatusskos:ConceptThe engagement status — typically an IMB engagement-status value or a poe:PhasesOfEngagementScheme phase.
gc:percentEvangelicalxsd:doubleEstimated percentage of the segment's population that is evangelical Christian (0.0–100.0).
gc:percentChristianxsd:doubleEstimated percentage that is Christian-adherent (0.0–100.0).

The result is the natural carrier for verification level (V1–V4) and data confidence (Low/Med/High) when those are scoped per-segment rather than per-claim. As with population estimates, multi-source disagreement is preserved: JP, IMB, AX, Etnopedia, and a local research team can each emit their own reachedness result on the same segment, and downstream tools roll up per-source rather than coercing cross-framework equivalences.

Code
<https://data.global.church/peoplegroup/reachedness/kurd-IQ-jp-2026> a gc:ReachednessAssessmentResult ; gc:resultForPopulationSegment <https://data.global.church/segments/kurd/IQ> ; gc:hasReachednessStatus jp:JPScale1 ; gc:percentEvangelical "0.1"^^xsd:double ; gc:percentChristian "0.3"^^xsd:double ; gc:resultDate "2026-01-15T10:00:00Z"^^xsd:dateTime ; prov:wasAttributedTo <https://data.global.church/org/joshua-project> ; prov:generatedAtTime "2026-01-15T10:00:00Z"^^xsd:dateTime .

Multi-tier assessment hooks

The same Assessment / AssessmentResult infrastructure that scores people groups, churches, and disciples extends naturally to per-segment assessment via two subproperties of the union-range gc:assessmentTarget / gc:resultTarget superproperties:

SubpropertyOfRange
gc:assessesPopulationSegmentgc:assessmentTargetgc:PeopleGroupPopulationSegment
gc:resultForPopulationSegmentgc:resultTargetgc:PeopleGroupPopulationSegment

Existing concept-targeted data (gc:assessesPeopleGroup / gc:resultForPeopleGroup) continues to validate against the broader superproperty without re-emission. New per-segment assessments use the narrower subproperties and are reachable from queries that walk gc:assessmentTarget regardless of which tier they were authored at. See Assessment Frameworks for the methodology side.

Querying the People Group model

Find a segment, its concept, and its latest population estimate

Code
PREFIX gc: <https://ontology.global.church/core#> PREFIX prov: <http://www.w3.org/ns/prov#> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> SELECT ?segment ?conceptLabel ?value ?source ?asOf WHERE { ?segment a gc:PeopleGroupPopulationSegment ; gc:ofPeopleGroup ?concept ; gc:hasPopulationEstimate ?estimate . ?concept skos:prefLabel ?conceptLabel . ?estimate gc:datumValue ?value ; prov:wasAttributedTo ?source ; prov:generatedAtTime ?asOf . } ORDER BY ?segment DESC(?asOf)

Find all per-country segments inside a region

Code
PREFIX gc: <https://ontology.global.church/core#> PREFIX rog: <https://data.global.church/his/rog/> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> SELECT ?segment ?country WHERE { ?segment a gc:PeopleGroupPopulationSegment ; gc:hasScopeType gc:ScopeTypePGIC ; gc:locatedIn ?country . ?country skos:broader rog:region-africa . }

Replace gc:ScopeTypePGIC with gc:ScopeTypePGAC to find the cross-country rollup segments instead, or with gc:ScopeTypePGInDiaspora for diaspora-scoped segments.

Find segments where two or more sources disagree on population

Code
PREFIX gc: <https://ontology.global.church/core#> PREFIX prov: <http://www.w3.org/ns/prov#> SELECT ?segment (COUNT(DISTINCT ?source) AS ?nSources) (MIN(?value) AS ?lowEstimate) (MAX(?value) AS ?highEstimate) WHERE { ?segment gc:hasPopulationEstimate ?estimate . ?estimate gc:datumValue ?value ; prov:wasAttributedTo ?source . } GROUP BY ?segment HAVING (COUNT(DISTINCT ?source) >= 2) ORDER BY DESC(?highEstimate - ?lowEstimate)

This is the kind of query the multi-source shape unlocks: which segments have the largest source-to-source disagreement on population? — without a normalization step that hides the disagreement.

Where the schemes live in the ontology

SchemeURI
gc:PeopleGroupScopeTypeSchemehttps://ontology.global.church/core#PeopleGroupScopeTypeScheme
gc:PeopleGroupClassificationScheme (per-source instances)minted per scheme, e.g. https://data.global.church/peoplegroup/scheme/joshua-project

Full per-concept definitions, scope notes, and relationships are published at the Ontology Reference under SKOS Vocabularies.

See also

  • Ekklesia Model — the parallel four-axis classification of churches and church-like bodies. People Group and Ekklesia share the same Concept / Collective / Segment / Community shape.
  • Data Modeling Cookbook — Modeling a People Group — worked Turtle + JSON-LD example for a single concept with classification properties and a 3-block assessment.
  • HIS Registries — ROP3 as the cross-source join key, plus ROL / ROR / ROG.
  • Assessment Frameworks — methodology registry and the multi-tier assessment subproperty pattern.
  • URI Patterns — JP-bridge URI scheme (ROP3 + ISO country) for bridge-emitted people-group resources.
Last modified on