glam/schemas/20251121/linkml/modules/classes/GoogleMapsEnrichment.yaml
2026-01-19 00:09:28 +01:00

381 lines
13 KiB
YAML

# GoogleMapsEnrichment - Full Google Maps Places API enrichment data
# Extracted from custodian_source.yaml per Rule 38 (modular schema files)
# Extraction date: 2026-01-08
id: https://nde.nl/ontology/hc/classes/GoogleMapsEnrichment
name: GoogleMapsEnrichment
title: GoogleMapsEnrichment
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
- ./AddressComponent
- ./AdmissionInfo
- ./Coordinates
- ./GooglePhoto
- ./GoogleReview
- ./LlmVerification
- ./OpeningHours
- ./PhotoMetadata
- ./PlaceFeature
- ./RejectedGoogleMapsData
- ./RelatedPlace
- ./ReviewBreakdown
- ./ReviewsSummary
default_range: string
classes:
GoogleMapsEnrichment:
class_uri: prov:Entity
description: >-
Full Google Maps Places API enrichment data for a heritage custodian location.
prov:Entity - "An entity is a physical, digital, conceptual, or other kind of thing
with some fixed aspects; entities may be real or imaginary."
This class represents ENRICHMENT DATA extracted from Google Maps API about a place,
not the place itself. It captures metadata like ratings, reviews, photos, opening hours,
and address components that describe a heritage institution's physical location.
Mapping rationale:
- Uses prov:Entity because this is data derived from an external source (Google Maps API)
- The enrichment has clear provenance (API call, timestamp, place_id)
- NOT schema:Place - that would represent the actual location, not metadata about it
- Related to schema:Place as the subject being described
close_mappings:
- schema:PropertyValue # Similar: structured metadata about something
related_mappings:
- schema:Place # The subject this enrichment describes
- schema:LocalBusiness # Related: Google Maps often returns business data
- prov:Generation # The activity that created this enrichment
attributes:
place_id:
range: string
description: Google Maps place ID
name:
range: string
description: Place name from Google
fetch_timestamp:
range: datetime
api_status:
range: string
coordinates:
range: Coordinates
formatted_address:
range: string
short_address:
range: string
address_components:
range: AddressComponent
multivalued: true
inlined_as_list: true
phone_local:
range: string
phone_international:
range: string
website:
slot_uri: hc:hasWebsite
range: uri
description: Official website URL from Google Maps data
close_mappings:
- schema:url
google_place_types:
range: string
multivalued: true
inlined_as_list: true
types:
range: string
multivalued: true
inlined_as_list: true
description: Place types (alias for google_place_types, from older API versions)
primary_type:
range: string
business_status:
range: string
opening_hour:
range: OpeningHours
opening_hours:
range: Any
description: Opening hours information (flexible structure for various formats)
inlined: true
rating:
range: float
description: Average rating (0-5)
total_ratings:
range: integer
description: Number of ratings
reviews:
range: GoogleReview
multivalued: true
inlined_as_list: true
photo_urls:
range: uri
multivalued: true
inlined_as_list: true
photos_metadata:
range: PhotoMetadata
multivalued: true
inlined_as_list: true
google_maps_url:
range: uri
street_view_url:
range: uri
icon_mask_uri:
range: uri
icon_background_color:
range: string
utc_offset_minutes:
range: integer
editorial_summary:
range: string
description: Editorial summary text from Google Maps
photo_count:
range: integer
description: Number of photos available
llm_verification:
range: LlmVerification
description: LLM verification results
user_rating_count:
range: integer
description: Alias for total_ratings
user_ratings_total:
range: integer
description: Total number of user ratings (Google Places API v2 field name)
latitude:
range: float
description: Latitude (flat structure alternative)
longitude:
range: float
description: Longitude (flat structure alternative)
source:
range: string
description: Data source identifier
enriched_at:
range: datetime
description: When enrichment was performed
search_query:
range: string
description: Search query used to find the place
photos:
range: GooglePhoto
multivalued: true
inlined_as_list: true
description: Photo metadata from Google Places API
_match_error:
range: string
description: Error message if Google Maps match failed
google_maps_name:
range: string
description: Place name from Google Maps
name_note:
range: string
description: Note about the place name (e.g., explanation of name mapping)
also_known_as:
range: string
description: Alternative names for the place
address:
range: string
description: Full address from Google Maps
plus_code:
range: string
description: Google Plus Code
phone:
range: string
description: Phone number from Google Maps
business_type:
range: string
description: Business category/type
hours:
any_of:
- range: string
- range: HoursStatus
description: Opening hours information (string or status object)
admission:
any_of:
- range: string
- range: AdmissionInfo
description: Admission price information (string or structured object)
related_places:
any_of:
- range: string
multivalued: true
- range: RelatedPlace
multivalued: true
inlined_as_list: true
description: Related places nearby (strings or structured objects)
review_topics:
range: string
multivalued: true
inlined_as_list: true
description: Topics mentioned in reviews
reviews_summary:
any_of:
- range: string
- range: ReviewsSummary
description: Summary of reviews (string or structured breakdown)
sample_reviews:
any_of:
- range: string
multivalued: true
- range: GoogleReview
multivalued: true
inlined_as_list: true
description: Sample review texts or review objects
total_reviews:
range: integer
description: Total number of reviews
enrichement_timestamp:
range: datetime
description: When Google Maps enrichment was performed
place_name:
range: string
description: Place name (alternative to name field)
place_type:
range: string
description: Place type classification
google_place_type:
range: string
description: Google place type (alternative name)
located_in:
range: string
description: Containing location or building
nearby_organizations:
any_of:
- range: string
multivalued: true
- range: NearbyOrganization
multivalued: true
inlined_as_list: true
description: Nearby organizations (strings or structured objects)
features:
any_of:
- range: string
multivalued: true
- range: PlaceFeature
multivalued: true
inlined_as_list: true
description: Features of the place (strings or key-value objects)
hours_status:
range: string
description: Current opening status (e.g., "Closed · Opens 2 pm Wed")
review_breakdown:
range: ReviewBreakdown
description: Breakdown of reviews by star rating
review_summary:
range: ReviewBreakdown
description: Summary of reviews by star rating (alias)
enrichment_timestamp:
range: datetime
description: When enrichment was performed (alternative spelling)
updated_timestamp:
range: datetime
description: When data was last updated
user_provided_link:
range: uri
description: User-provided Google Maps link
associated_organization:
range: string
description: Associated organization name
note:
range: string
description: Notes about the Google Maps entry
status:
range: string
description: Status of enrichment (REJECTED, VERIFIED, FALSE_MATCH, etc.)
rejection_reason:
range: string
description: Reason for rejection if status is REJECTED
correction_agent:
range: string
description: Agent that performed the correction (e.g., opencode-claude-sonnet-4)
correction_timestamp:
range: datetime
description: When the correction was made
correction_method:
range: string
description: Method used for correction (e.g., manual_name_mismatch_review, automated_rejection)
false_match_reason:
range: string
description: Explanation of why Google Maps returned an incorrect match (per Rule 40)
original_false_match:
range: Any
description: >-
Original data from the false Google Maps match, preserved for audit trail.
Contains place_id, name, address, coordinates, website, etc. from the incorrectly
matched place.
inlined: true
rejected_data:
range: RejectedGoogleMapsData
description: Original rejected Google Maps data
search_status:
range: string
description: Search status (found_via_user_link, etc.)
search_timestamp:
range: datetime
description: When search was performed
search_queries_tried:
range: string
multivalued: true
inlined_as_list: true
description: List of search queries that were attempted
alternate_address:
range: string
description: Alternative address for the location
wheelchair_accessible:
range: boolean
description: Whether the location is wheelchair accessible
rejection_timestamp:
range: datetime
description: When the Google Maps data was rejected
business_status_note:
range: string
description: Note about business status
place_name_local:
range: string
description: Place name in local language
nearby_attractions:
range: string
multivalued: true
inlined_as_list: true
description: Nearby tourist attractions
review_keywords:
range: string
multivalued: true
inlined_as_list: true
description: Keywords extracted from reviews
match_notes:
range: string
description: Notes about how the Google Maps match was determined
price_level:
any_of:
- range: integer
- range: string
description: Google Maps price level (0-4 or string description)
match_warning:
range: string
description: Warning about potential issues with the match
location_note:
range: string
description: Note about the physical location of the place
search_attempted:
range: boolean
description: Whether a Google Maps search was attempted
result:
range: string
description: Result of search operation (found, not_found, found_via_user_link,
etc.)
_provenance:
range: Any
description: >-
Provenance metadata for the Google Maps enrichment section, including content hash,
PROV-O triples (wasGeneratedBy, wasDerivedFrom), and verification status.
Uses flexible Any type to accommodate varying provenance structures.
inlined: true