glam/docs/GIFT_SHOP_INTEGRATION.md
2025-11-29 18:05:16 +01:00

9.6 KiB

Gift Shop Integration Guide

Version: 1.0
Date: 2025-11-29
Status: Complete

Overview

The GiftShop class models retail operations associated with heritage custodians, including museum shops, archive bookshops, library retail spaces, and online stores.

Schema Files

File Purpose
schemas/20251121/linkml/modules/classes/GiftShop.yaml Main GiftShop class definition
schemas/20251121/linkml/modules/enums/GiftShopTypeEnum.yaml Shop type classification
schemas/20251121/linkml/modules/enums/ProductCategoryEnum.yaml Product category enumeration

Architecture

Custodian (hub)
    │
    ├── gift_shop → GiftShop[]
    │       │
    │       ├── physical_location → AuxiliaryPlace (RETAIL_SPACE)
    │       │       └── street_address, city, opening_hours
    │       │
    │       ├── online_shop → AuxiliaryDigitalPlatform (WEBSHOP)
    │       │       └── platform_url, e-commerce details
    │       │
    │       ├── product_categories → ProductCategoryEnum[]
    │       │       └── POSTCARDS, PUZZLES, BOOKS, MEMBERSHIP_CARDS, etc.
    │       │
    │       └── business_metrics
    │               └── annual_revenue, visitor_conversion_rate, staff_count
    │
    └── (other custodian aspects: legal_status, collections, etc.)

Shop Types (GiftShopTypeEnum)

Type Description Example
MUSEUM_SHOP General museum merchandise Rijksmuseum Shop
BOOKSHOP Primarily books and publications British Library Bookshop
DESIGN_STORE Design objects and reproductions MoMA Design Store
SPECIALTY_SHOP Themed or collection-specific V&A Jewellery Gallery Shop
POP_UP Temporary retail for exhibitions Vermeer Exhibition Shop
KIOSK Small-format retail point Museum entrance kiosk
ONLINE_ONLY E-commerce without physical presence Digital-only shops
CAFE_SHOP Combined cafe and retail Museum cafe gift corner
CHILDREN_SHOP Focused on children's products Science museum kids store
PUBLICATION_CENTER Institutional publications Archive publications office

Product Categories (ProductCategoryEnum)

Core Categories

Category Description
REPRODUCTIONS Art prints, replicas, facsimiles
BOOKS Catalogs, guides, scholarly works
DESIGN_OBJECTS Home decor, designer items
JEWELRY Inspired by collection pieces
TEXTILES Clothing, scarves, bags
STATIONERY Cards, notebooks, pens
TOYS Educational toys, games
FOOD Specialty foods, chocolates
SOUVENIRS Keychains, magnets, tourist items

Common Museum Shop Items

Category Description
POSTCARDS Individual and sets (staple item)
POSTERS Large format art prints
PUZZLES Jigsaw puzzles (50-1000+ pieces)
MEMBERSHIP_CARDS Museumkaart, annual passes
MAGNETS Refrigerator magnets
CALENDARS Wall, desk, advent calendars
MUGS_DRINKWARE Coffee mugs, water bottles
UMBRELLAS Art print umbrellas
BAGS_ACCESSORIES Tote bags, pouches, lanyards
EXHIBITION_MERCHANDISE Limited-edition exhibition items
EDUCATIONAL_MATERIALS Activity books, flashcards
GIFT_VOUCHERS Gift cards, experience vouchers

Specialized Categories

Category Description
ORIGINAL_ART Limited editions, artist multiples
ANTIQUES Vintage items, period objects
PLANTS Heritage seeds, botanical items
CRAFT_SUPPLIES Art supplies, creative tools
ACCESSIBILITY_ITEMS Tactile models, large print
MULTIMEDIA DVDs, audio guides, apps
GIFTS Curated gift sets
HOME_DECOR Pillows, tableware, decorative items

Physical Location Integration

Gift shops can link to AuxiliaryPlace instances for physical locations:

GiftShop:
  shop_name: "Rijksmuseum Shop"
  physical_location:
    - place_name: "Rijksmuseum Shop - Main Hall"
      auxiliary_place_type: RETAIL_SPACE  # New type added
      street_address: "Museumstraat 1"
      city: "Amsterdam"
      postal_code: "1071 XX"

New AuxiliaryPlaceTypeEnum Values

Added to support gift shop locations:

Type Description
RETAIL_SPACE Gift shop, bookshop, museum store
CAFE_RESTAURANT Food service facilities

Online Shop Integration

Gift shops can link to AuxiliaryDigitalPlatform instances for e-commerce:

GiftShop:
  shop_name: "Rijksmuseum Online Shop"
  online_shop:
    - platform_name: "Rijksmuseum Online Shop"
      platform_url: "https://www.rijksmuseumshop.nl/"
      auxiliary_platform_type: WEBSHOP  # Existing type

Business Metrics

The GiftShop class captures key retail metrics:

Slot Type Description
annual_revenue string Annual sales (e.g., "EUR 5,000,000")
visitor_conversion_rate float % of visitors who purchase (0.25 = 25%)
staff_count integer Number of shop employees
square_meters float Retail floor space
price_range string Price level ($, , $, )
price_currency string ISO 4217 code (EUR, USD, GBP)

Management Structure

Track whether shop is operated in-house or outsourced:

GiftShop:
  managed_by: "In-house (Rijksmuseum BV)"
  # OR
  managed_by: "Outsourced (Culture Shops Ltd)"

Temporal Validity

Track shop lifecycle with valid_from and valid_to:

# Permanent shop
GiftShop:
  shop_name: "Rijksmuseum Shop"
  valid_from: "2013-04-13"  # Opened with renovated building
  valid_to: null  # Still operational

# Pop-up shop
GiftShop:
  shop_name: "Vermeer Exhibition Pop-up"
  shop_type: POP_UP
  valid_from: "2023-02-10"
  valid_to: "2023-06-04"  # Closed when exhibition ended

Complete Example

Custodian:
  hc_id: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804"
  preferred_label: "Rijksmuseum"
  
  gift_shop:
    - shop_id: "https://nde.nl/ontology/hc/gift-shop/rijksmuseum-shop"
      shop_name: "Rijksmuseum Shop"
      shop_type: MUSEUM_SHOP
      shop_description: >-
        Award-winning museum shop offering reproductions, design objects,
        books, and exclusive Rijksmuseum merchandise.        
      
      physical_location:
        - place_name: "Rijksmuseum Shop - Main Hall"
          auxiliary_place_type: RETAIL_SPACE
          street_address: "Museumstraat 1"
          postal_code: "1071 XX"
          city: "Amsterdam"
      
      online_shop:
        - platform_name: "Rijksmuseum Online Shop"
          platform_url: "https://www.rijksmuseumshop.nl/"
          auxiliary_platform_type: WEBSHOP
      
      product_categories:
        - REPRODUCTIONS
        - POSTERS
        - POSTCARDS
        - PUZZLES
        - BOOKS
        - DESIGN_OBJECTS
        - JEWELRY
        - HOME_DECOR
        - MEMBERSHIP_CARDS
        - EXHIBITION_MERCHANDISE
      
      price_currency: EUR
      price_range: "$$"
      
      accepts_payment_methods:
        - CASH
        - CREDIT_CARD
        - DEBIT_CARD
        - MOBILE_PAYMENT
        - MUSEUM_CARD
      
      opening_hours: "Mo-Su 09:00-18:00"
      staff_count: 25
      square_meters: 450.0
      visitor_conversion_rate: 0.35
      
      managed_by: "In-house (Rijksmuseum BV)"
      valid_from: "2013-04-13"
      
      refers_to_custodian: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804"

Schema.org Alignment

LinkML Class/Slot Schema.org Mapping
GiftShop schema:Store
shop_name schema:name
physical_location schema:location
online_shop schema:url
product_categories schema:category
price_currency schema:priceCurrency
price_range schema:priceRange
accepts_payment_methods schema:paymentAccepted
opening_hours schema:openingHours
annual_revenue schema:annualRevenue
staff_count schema:numberOfEmployees
square_meters schema:floorSize
refers_to_custodian schema:parentOrganization

GoodRelations Integration

For detailed product/offer modeling, GiftShop aligns with GoodRelations:

Concept GoodRelations URI
Business Entity gr:BusinessEntity
Product Offering gr:Offering
Payment Methods gr:PaymentMethod

Use Cases

1. Museum Retail Analysis

Query all museum shops with their product categories and conversion rates:

SELECT ?shop ?name ?conversion WHERE {
  ?shop a schema:Store ;
        schema:name ?name ;
        hc:visitorConversionRate ?conversion .
}
ORDER BY DESC(?conversion)

2. E-commerce Platform Discovery

Find all custodians with online shops:

SELECT ?custodian ?shopUrl WHERE {
  ?custodian hc:gift_shop ?shop .
  ?shop hc:online_shop ?platform .
  ?platform hc:platform_url ?shopUrl .
}

3. Temporary Retail Tracking

Find pop-up shops for exhibitions:

SELECT ?shop ?name ?start ?end WHERE {
  ?shop a schema:Store ;
        hc:shop_type "POP_UP" ;
        schema:name ?name ;
        schema:validFrom ?start ;
        schema:validThrough ?end .
}

Last Updated: 2025-11-29
Schema Version: 20251121