Seeding and data quality
Seeding
Section titled “Seeding”Venues are seeded from OpenStreetMap:
/api/bars/seed— the admin bootstrap route (legacy name), which upserts OSM-derived places directly intoplaces.places.- The platform Fundi worker — city-by-city seeding at scale across the continent.
Every seeded place gets an ownerEntityId: a tier-0 organization is auto-created in entity.entities for each place, so ownership edges exist from day one and the claim flow always has a target.
Junk-name policy
Section titled “Junk-name policy”Some OSM records carry names that are not names — ".", "8318", stray punctuation. The rule:
- A name containing no letters in any script is junk. It is seeded with
status: 'flagged'andisActive: false, queued for admin review, and never published live. - A name containing letters in any real script passes — Arabic, Shona, Ndebele, Portuguese, and every other script are valid.
Category taxonomy
Section titled “Category taxonomy”The taxonomy lives in places.categories and maps each categorySlug to one or more schema.org @type values via schemaOrgType. Examples:
categorySlug | schema.org @type(s) |
|---|---|
restaurants | Restaurant, FoodEstablishment |
national-parks | Park, TouristAttraction |
tech-companies | Organization |
education | EducationalOrganization |
landmarks | LandmarksOrHistoricalBuildings |
Places reference the taxonomy via primaryCategoryId and secondaryCategoryIds — categories are never duplicated onto place documents.