Class: ClothingCategory
Mixin carrying clothing-specific slots, value maps, and UC rules. Applied to ClothingItem via mixins: [ClothingCategory]. Does NOT include accessories — see AccessoriesCategory (accessories.yaml).
Domain-level rules only (no lifecycle_state references). Lifecycle-aware rules (lc-*) live on ClothingItem in donation_item.yaml because lifecycle_state is a DonationItem slot invisible to this mixin.
Value maps grounded in CPI ontology demographic and size vocabularies. Underwear UC constraints reflect real social-sector hygiene policy. Seasonality: is_winter_suitable (boolean, standard tier) + season (SeasonEnum, optional, detailed tier). See schema description above for the full design rationale.
URI: inkind_knowledge_repo:ClothingCategory
classDiagram
class ClothingCategory
click ClothingCategory href "../ClothingCategory/"
CategoryMixin <|-- ClothingCategory
click CategoryMixin href "../CategoryMixin/"
ClothingCategory <|-- ClothingItem
click ClothingItem href "../ClothingItem/"
ClothingCategory : condition_grade
ClothingCategory --> "0..1" UsedConditionGradeEnum : condition_grade
click UsedConditionGradeEnum href "../UsedConditionGradeEnum/"
ClothingCategory : demographic
ClothingCategory --> "0..1" DemographicEnum : demographic
click DemographicEnum href "../DemographicEnum/"
ClothingCategory : intact_labels
ClothingCategory : is_winter_suitable
ClothingCategory : material
ClothingCategory --> "0..1" ClothingMaterialEnum : material
click ClothingMaterialEnum href "../ClothingMaterialEnum/"
ClothingCategory : season
ClothingCategory --> "*" SeasonEnum : season
click SeasonEnum href "../SeasonEnum/"
ClothingCategory : size
ClothingCategory --> "0..1" ClothingSizeEnum : size
click ClothingSizeEnum href "../ClothingSizeEnum/"
ClothingCategory : subcategory
ClothingCategory --> "0..1" ClothingSubcategoryEnum : subcategory
click ClothingSubcategoryEnum href "../ClothingSubcategoryEnum/"
Inheritance
- CategoryMixin
- ClothingCategory
Class Properties
| Property | Value |
|---|---|
| Mixin | Yes |
Slots
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| condition_grade | 0..1 UsedConditionGradeEnum |
Observed wear/quality grade at sorting time | direct |
| subcategory | 0..1 ClothingSubcategoryEnum |
Subcategory becomes a required field on DonationItem when item's lifecycle is... | direct |
| material | 0..1 ClothingMaterialEnum |
Primary fibre or fabric composition | direct |
| is_winter_suitable | 0..1 Boolean |
Whether this garment provides meaningful warmth in cold-weather conditions | direct |
| demographic | 0..1 DemographicEnum |
Combined age-and-gender demographic suitability of clothing items | direct |
| size | 0..1 ClothingSizeEnum |
Size of the clothing item | direct |
| season | * SeasonEnum |
Seasonal suitability | direct |
| intact_labels | 0..1 Boolean |
Whether care and composition labels are present and legible | direct |
Mixin Usage
| mixed into | description |
|---|---|
| ClothingItem | Clothing garments: tops, bottoms, outerwear, underwear, nightwear, sportswear |
Rules
uc-underwear-condition-block
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'subcategory': {'equals_string': 'underwear'}, 'condition_grade': {'any_of': [{'equals_string': 'fair'}, {'equals_string': 'poor'}]}} |
{'lifecycle_state': {'none_of': [{'equals_string': 'stored'}, {'equals_string': 'distributed'}]}} |
uc-underwear-adult-used-block
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'subcategory': {'equals_string': 'underwear'}, 'demographic': {'any_of': [{'equals_string': 'adult_male'}, {'equals_string': 'adult_female'}]}, 'usage': {'equals_string': 'used'}} |
{'lifecycle_state': {'none_of': [{'equals_string': 'stored'}, {'equals_string': 'distributed'}]}} |
uc-poor-condition-block
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'condition_grade': {'equals_string': 'poor'}} |
{'lifecycle_state': {'none_of': [{'equals_string': 'stored'}, {'equals_string': 'distributed'}]}} |
vm-demographic-underwear
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'subcategory': {'equals_string': 'underwear'}} |
{'demographic': {'any_of': [{'equals_string': 'baby'}, {'equals_string': 'child'}, {'equals_string': 'adult_male'}, {'equals_string': 'adult_female'}]}} |
vm-size-baby
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'demographic': {'equals_string': 'baby'}} |
{'size': {'any_of': [{'equals_string': 'baby_0_3m'}, {'equals_string': 'baby_3_6m'}, {'equals_string': 'baby_6_12m'}, {'equals_string': 'baby_12_18m'}, {'equals_string': 'baby_18_24m'}]}} |
vm-size-child
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'demographic': {'equals_string': 'child'}} |
{'size': {'any_of': [{'equals_string': 'child_2_3T'}, {'equals_string': 'child_4_5T'}, {'equals_string': 'child_6_7'}, {'equals_string': 'child_8_10'}, {'equals_string': 'child_12_14'}]}} |
vm-size-adult
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'demographic': {'any_of': [{'equals_string': 'adult_male'}, {'equals_string': 'adult_female'}, {'equals_string': 'unisex'}]}} |
{'size': {'any_of': [{'equals_string': 'xs_s'}, {'equals_string': 'm_l'}, {'equals_string': 'xl_plus'}, {'equals_string': 'one_size'}]}} |
vm-season-winter
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'season': {'equals_string': 'winter'}} |
{'is_winter_suitable': {'equals_string': 'true'}} |
vm-season-not-winter-suitable
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'is_winter_suitable': {'equals_string': 'false'}} |
{'season': {'any_of': [{'equals_string': 'summer'}, {'equals_string': 'spring_autumn'}]}} |
vm-season-summer
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'season': {'equals_string': 'summer'}} |
{'is_winter_suitable': {'equals_string': 'false'}} |
vm-season-all
| Rule Applied | Preconditions | Postconditions | Elseconditions |
|---|---|---|---|
| slot_conditions | {'season': {'equals_string': 'all_season'}} |
{'is_winter_suitable': {'equals_string': 'true'}} |
See Also
Identifier and Mapping Information
Annotations
| property | value |
|---|---|
| completeness_minimal | subcategory, usage |
| completeness_standard | subcategory, demographic, size, is_winter_suitable, usage, condition_grade |
| completeness_detailed | subcategory, demographic, size, is_winter_suitable, season, material, usage, condition_grade, intact_labels |
| coicop_division | 03.1 |
| material_winter_hint | Fragment compiler may pre-fill is_winter_suitable=true when material in [wool, fleece, down] and is_winter_suitable=false when material in [linen, silk]. Sorter can always override. |
| season_ui_hint | Fragment compiler may pre-fill is_winter_suitable=true when subcategory=outerwear and is_winter_suitable=false when subcategory=sportswear (swimwear). Sorter can override. |
Schema Source
- from schema: https://inkind-at.github.io/inkind-knowledge-repo
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | inkind_knowledge_repo:ClothingCategory |
| native | inkind_knowledge_repo:ClothingCategory |
LinkML Source
Direct
name: ClothingCategory
annotations:
completeness_minimal:
tag: completeness_minimal
value: subcategory, usage
completeness_standard:
tag: completeness_standard
value: subcategory, demographic, size, is_winter_suitable, usage, condition_grade
completeness_detailed:
tag: completeness_detailed
value: subcategory, demographic, size, is_winter_suitable, season, material, usage,
condition_grade, intact_labels
coicop_division:
tag: coicop_division
value: '03.1'
material_winter_hint:
tag: material_winter_hint
value: Fragment compiler may pre-fill is_winter_suitable=true when material in
[wool, fleece, down] and is_winter_suitable=false when material in [linen, silk].
Sorter can always override.
season_ui_hint:
tag: season_ui_hint
value: Fragment compiler may pre-fill is_winter_suitable=true when subcategory=outerwear
and is_winter_suitable=false when subcategory=sportswear (swimwear). Sorter
can override.
description: 'Mixin carrying clothing-specific slots, value maps, and UC rules. Applied
to ClothingItem via mixins: [ClothingCategory]. Does NOT include accessories — see
AccessoriesCategory (accessories.yaml).
Domain-level rules only (no lifecycle_state references). Lifecycle-aware rules (lc-*)
live on ClothingItem in donation_item.yaml because lifecycle_state is a DonationItem
slot invisible to this mixin.
Value maps grounded in CPI ontology demographic and size vocabularies. Underwear
UC constraints reflect real social-sector hygiene policy. Seasonality: is_winter_suitable
(boolean, standard tier) + season (SeasonEnum, optional, detailed tier). See schema
description above for the full design rationale.'
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- http://www.ebusiness-unibw.org/ontologies/cpi/ns#ClothingAndAccessories
is_a: CategoryMixin
mixin: true
slots:
- condition_grade
- subcategory
- material
- is_winter_suitable
- demographic
- size
- season
- intact_labels
slot_usage:
subcategory:
name: subcategory
description: Subcategory becomes a required field on DonationItem when item's
lifecycle is sorted.
range: ClothingSubcategoryEnum
required: false
demographic:
name: demographic
range: DemographicEnum
required: false
size:
name: size
range: ClothingSizeEnum
required: false
is_winter_suitable:
name: is_winter_suitable
description: 'Whether this garment provides meaningful warmth in cold-weather
conditions. Required at standard completeness for tops, bottoms, outerwear,
nightwear. The sorter''s direct assessment — not inferred from subcategory or
material. The primary emergency distribution filter: "all winter-suitable clothing
for adults."'
range: boolean
required: false
season:
name: season
description: 'Seasonal suitability. Optional — detailed completeness tier. Multivalued:
a garment may span seasons (e.g. spring_autumn + summer). VM rules auto-derive
is_winter_suitable for the extreme values (winter, summer, all_season); spring_autumn
leaves the sorter to set is_winter_suitable explicitly.'
range: SeasonEnum
required: false
multivalued: true
material:
name: material
description: Primary fibre or fabric composition. Optional — detailed completeness
tier. Select the dominant fibre for blended fabrics; use synthetic_blend when
no single synthetic dominates. Exact fibre percentages from legible care labels
may be noted in sorting_notes. See ClothingMaterialEnum for full vocabulary
and ontology grounding.
range: ClothingMaterialEnum
required: false
condition_grade:
name: condition_grade
range: UsedConditionGradeEnum
required: false
rules:
- preconditions:
slot_conditions:
subcategory:
name: subcategory
equals_string: underwear
condition_grade:
name: condition_grade
any_of:
- equals_string: fair
- equals_string: poor
postconditions:
slot_conditions:
lifecycle_state:
name: lifecycle_state
none_of:
- equals_string: stored
- equals_string: distributed
description: 'Underwear must be new or like_new condition. fair or poor graded underwear
must not be redistributed. Reflects universal hygiene policy across social organisations.
action: block, suggest: disposal.'
title: uc-underwear-condition-block
- preconditions:
slot_conditions:
subcategory:
name: subcategory
equals_string: underwear
demographic:
name: demographic
any_of:
- equals_string: adult_male
- equals_string: adult_female
usage:
name: usage
equals_string: used
postconditions:
slot_conditions:
lifecycle_state:
name: lifecycle_state
none_of:
- equals_string: stored
- equals_string: distributed
description: 'Used adult underwear (adult_male or adult_female demographic) must
not be redistributed. usage must be new. Reflects hygiene and dignity standards
applied universally in the social sector. action: block.'
title: uc-underwear-adult-used-block
- preconditions:
slot_conditions:
condition_grade:
name: condition_grade
equals_string: poor
postconditions:
slot_conditions:
lifecycle_state:
name: lifecycle_state
none_of:
- equals_string: stored
- equals_string: distributed
description: 'Items in poor condition should not be distributed. action: block,
suggest: disposal.'
title: uc-poor-condition-block
- preconditions:
slot_conditions:
subcategory:
name: subcategory
equals_string: underwear
postconditions:
slot_conditions:
demographic:
name: demographic
any_of:
- equals_string: baby
- equals_string: child
- equals_string: adult_male
- equals_string: adult_female
description: Underwear subcategory restricts demographic to baby, child, adult_male,
adult_female. Unisex is not a valid demographic for underwear — underwear is always
gender-specific at the redistribution level.
title: vm-demographic-underwear
- preconditions:
slot_conditions:
demographic:
name: demographic
equals_string: baby
postconditions:
slot_conditions:
size:
name: size
any_of:
- equals_string: baby_0_3m
- equals_string: baby_3_6m
- equals_string: baby_6_12m
- equals_string: baby_12_18m
- equals_string: baby_18_24m
description: baby demographic constrains size to infant size codes.
title: vm-size-baby
- preconditions:
slot_conditions:
demographic:
name: demographic
equals_string: child
postconditions:
slot_conditions:
size:
name: size
any_of:
- equals_string: child_2_3T
- equals_string: child_4_5T
- equals_string: child_6_7
- equals_string: child_8_10
- equals_string: child_12_14
description: child demographic constrains size to children's size codes.
title: vm-size-child
- preconditions:
slot_conditions:
demographic:
name: demographic
any_of:
- equals_string: adult_male
- equals_string: adult_female
- equals_string: unisex
postconditions:
slot_conditions:
size:
name: size
any_of:
- equals_string: xs_s
- equals_string: m_l
- equals_string: xl_plus
- equals_string: one_size
description: adult/unisex demographics constrain size to adult size codes.
title: vm-size-adult
- preconditions:
slot_conditions:
season:
name: season
equals_string: winter
postconditions:
slot_conditions:
is_winter_suitable:
name: is_winter_suitable
equals_string: 'true'
description: season = winter implies is_winter_suitable = true. A garment explicitly
tagged winter must be winter-suitable.
title: vm-season-winter
- preconditions:
slot_conditions:
is_winter_suitable:
name: is_winter_suitable
equals_string: 'false'
postconditions:
slot_conditions:
season:
name: season
any_of:
- equals_string: summer
- equals_string: spring_autumn
description: is_winter_suitable = false implies that season cannot be winter and
all season.
title: vm-season-not-winter-suitable
- preconditions:
slot_conditions:
season:
name: season
equals_string: summer
postconditions:
slot_conditions:
is_winter_suitable:
name: is_winter_suitable
equals_string: 'false'
description: 'season = summer implies is_winter_suitable = false. A garment explicitly
tagged summer-only is not winter-suitable. Note: if a sorter tags both summer
and spring_autumn, the is_winter_suitable value is their explicit call — no rule
fires.'
title: vm-season-summer
- preconditions:
slot_conditions:
season:
name: season
equals_string: all_season
postconditions:
slot_conditions:
is_winter_suitable:
name: is_winter_suitable
equals_string: 'true'
description: season = all_season implies is_winter_suitable = true. All-season items
are by definition suitable in winter.
title: vm-season-all
Induced
name: ClothingCategory
annotations:
completeness_minimal:
tag: completeness_minimal
value: subcategory, usage
completeness_standard:
tag: completeness_standard
value: subcategory, demographic, size, is_winter_suitable, usage, condition_grade
completeness_detailed:
tag: completeness_detailed
value: subcategory, demographic, size, is_winter_suitable, season, material, usage,
condition_grade, intact_labels
coicop_division:
tag: coicop_division
value: '03.1'
material_winter_hint:
tag: material_winter_hint
value: Fragment compiler may pre-fill is_winter_suitable=true when material in
[wool, fleece, down] and is_winter_suitable=false when material in [linen, silk].
Sorter can always override.
season_ui_hint:
tag: season_ui_hint
value: Fragment compiler may pre-fill is_winter_suitable=true when subcategory=outerwear
and is_winter_suitable=false when subcategory=sportswear (swimwear). Sorter
can override.
description: 'Mixin carrying clothing-specific slots, value maps, and UC rules. Applied
to ClothingItem via mixins: [ClothingCategory]. Does NOT include accessories — see
AccessoriesCategory (accessories.yaml).
Domain-level rules only (no lifecycle_state references). Lifecycle-aware rules (lc-*)
live on ClothingItem in donation_item.yaml because lifecycle_state is a DonationItem
slot invisible to this mixin.
Value maps grounded in CPI ontology demographic and size vocabularies. Underwear
UC constraints reflect real social-sector hygiene policy. Seasonality: is_winter_suitable
(boolean, standard tier) + season (SeasonEnum, optional, detailed tier). See schema
description above for the full design rationale.'
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- http://www.ebusiness-unibw.org/ontologies/cpi/ns#ClothingAndAccessories
is_a: CategoryMixin
mixin: true
slot_usage:
subcategory:
name: subcategory
description: Subcategory becomes a required field on DonationItem when item's
lifecycle is sorted.
range: ClothingSubcategoryEnum
required: false
demographic:
name: demographic
range: DemographicEnum
required: false
size:
name: size
range: ClothingSizeEnum
required: false
is_winter_suitable:
name: is_winter_suitable
description: 'Whether this garment provides meaningful warmth in cold-weather
conditions. Required at standard completeness for tops, bottoms, outerwear,
nightwear. The sorter''s direct assessment — not inferred from subcategory or
material. The primary emergency distribution filter: "all winter-suitable clothing
for adults."'
range: boolean
required: false
season:
name: season
description: 'Seasonal suitability. Optional — detailed completeness tier. Multivalued:
a garment may span seasons (e.g. spring_autumn + summer). VM rules auto-derive
is_winter_suitable for the extreme values (winter, summer, all_season); spring_autumn
leaves the sorter to set is_winter_suitable explicitly.'
range: SeasonEnum
required: false
multivalued: true
material:
name: material
description: Primary fibre or fabric composition. Optional — detailed completeness
tier. Select the dominant fibre for blended fabrics; use synthetic_blend when
no single synthetic dominates. Exact fibre percentages from legible care labels
may be noted in sorting_notes. See ClothingMaterialEnum for full vocabulary
and ontology grounding.
range: ClothingMaterialEnum
required: false
condition_grade:
name: condition_grade
range: UsedConditionGradeEnum
required: false
attributes:
condition_grade:
name: condition_grade
annotations:
label_en:
tag: label_en
value: Wear Grade
label_de:
tag: label_de
value: Abnutzungsgrad
description: "Observed wear/quality grade at sorting time. Grounded in schema:OfferItemCondition\
\ and schema:itemCondition. Applied to wear-graded categories: clothing, accessories,\
\ footwear, books, stationery, household, toys, general sports equipment.\n\
Required at sorted state regardless of usage:\n new item, no defects \
\ → like_new\n new item, manufacturing defect → fair or poor\n used item,\
\ minimal wear → like_new or good\nSorters record what they observe,\
\ not what the label says.\nCategories using structured assessment_result enums\
\ instead (furniture, electronics, bedding, protective sports gear, mobility\
\ aids, baby equipment) do NOT declare this slot."
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- schema:OfferItemCondition
- schema:LikeNewCondition
- schema:DamagedCondition
- schema:itemCondition
rank: 1000
alias: condition_grade
owner: ClothingCategory
domain_of:
- ClothingCategory
- AccessoriesCategory
- FootwearCategory
- HouseholdCategory
- ToysCategory
- SportsCategory
- BooksCategory
- StationeryCategory
- BabyInfantCategory
- OtherItem
range: UsedConditionGradeEnum
required: false
subcategory:
name: subcategory
annotations:
label_en:
tag: label_en
value: Subcategory
label_de:
tag: label_de
value: Unterkategorie
description: Subcategory becomes a required field on DonationItem when item's
lifecycle is sorted.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: subcategory
owner: ClothingCategory
domain_of:
- ClothingCategory
- AccessoriesCategory
- FootwearCategory
- FurnitureCategory
- BeddingTextilesCategory
- HouseholdCategory
- ElectronicsCategory
- ToysCategory
- SportsCategory
- BooksCategory
- StationeryCategory
- PersonalCareCategory
- MobilityAidsCategory
- BabyInfantCategory
- AnyValue
range: ClothingSubcategoryEnum
required: false
material:
name: material
annotations:
label_en:
tag: label_en
value: Material
label_de:
tag: label_de
value: Material
description: Primary fibre or fabric composition. Optional — detailed completeness
tier. Select the dominant fibre for blended fabrics; use synthetic_blend when
no single synthetic dominates. Exact fibre percentages from legible care labels
may be noted in sorting_notes. See ClothingMaterialEnum for full vocabulary
and ontology grounding.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: material
owner: ClothingCategory
domain_of:
- ClothingCategory
- AccessoriesCategory
- FootwearCategory
- FurnitureCategory
- BeddingTextilesCategory
- HouseholdCategory
- ToysCategory
- CategoryMixin
range: ClothingMaterialEnum
required: false
is_winter_suitable:
name: is_winter_suitable
annotations:
label_en:
tag: label_en
value: Winter Suitable
label_de:
tag: label_de
value: Wintertauglich
description: 'Whether this garment provides meaningful warmth in cold-weather
conditions. Required at standard completeness for tops, bottoms, outerwear,
nightwear. The sorter''s direct assessment — not inferred from subcategory or
material. The primary emergency distribution filter: "all winter-suitable clothing
for adults."'
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- schema:itemCondition
rank: 1000
alias: is_winter_suitable
owner: ClothingCategory
domain_of:
- ClothingCategory
- FootwearCategory
- BeddingTextilesCategory
- BabyInfantCategory
range: boolean
required: false
demographic:
name: demographic
annotations:
label_en:
tag: label_en
value: Demographic
label_de:
tag: label_de
value: Demografie
description: Combined age-and-gender demographic suitability of clothing items.
Valid values depend on subcategory (see value_map above). Grounded in cpi:designatedFor
and schema.org wearable size groups. Not applicable to AccessoriesItem — accessories
use the simpler AccessoriesDemographicEnum (baby/child/adult/all_ages).
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- cpi:designatedFor
- schema:WearableSizeGroupBaby
- schema:WearableSizeGroupChildrens
- schema:WearableSizeGroupAdult
rank: 1000
alias: demographic
owner: ClothingCategory
domain_of:
- ClothingCategory
- AccessoriesCategory
- FootwearCategory
- SportsCategory
- AnyValue
range: DemographicEnum
required: false
size:
name: size
annotations:
label_en:
tag: label_en
value: Size
label_de:
tag: label_de
value: Größe
description: Size of the clothing item. Valid values constrained by demographic
via value map rules (vm-size-baby, vm-size-child, vm-size-adult). Grounded in
cpi:ClothingSize and schema.org size systems.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- cpi:ClothingSize
- schema:WearableSizeGroupAdult
- schema:WearableSizeSystemEU
rank: 1000
alias: size
owner: ClothingCategory
domain_of:
- ClothingCategory
- AnyValue
range: ClothingSizeEnum
required: false
season:
name: season
annotations:
label_en:
tag: label_en
value: Season
label_de:
tag: label_de
value: Saison
description: 'Seasonal suitability. Optional — detailed completeness tier. Multivalued:
a garment may span seasons (e.g. spring_autumn + summer). VM rules auto-derive
is_winter_suitable for the extreme values (winter, summer, all_season); spring_autumn
leaves the sorter to set is_winter_suitable explicitly.'
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- schema:itemCondition
rank: 1000
alias: season
owner: ClothingCategory
domain_of:
- ClothingCategory
- FootwearCategory
range: SeasonEnum
required: false
multivalued: true
intact_labels:
name: intact_labels
annotations:
show_if:
tag: show_if
value: subcategory in [tops, bottoms, outerwear, underwear, nightwear, sportswear]
label_en:
tag: label_en
value: Intact care and composition labels
label_de:
tag: label_de
value: Unversehrte Pflege- und Materialetiketten
description: Whether care and composition labels are present and legible. Improves
match quality for beneficiaries with care requirements (e.g. allergy to certain
materials). Detailed completeness tier.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: intact_labels
owner: ClothingCategory
domain_of:
- ClothingCategory
range: boolean
rules:
- preconditions:
slot_conditions:
subcategory:
name: subcategory
equals_string: underwear
condition_grade:
name: condition_grade
any_of:
- equals_string: fair
- equals_string: poor
postconditions:
slot_conditions:
lifecycle_state:
name: lifecycle_state
none_of:
- equals_string: stored
- equals_string: distributed
description: 'Underwear must be new or like_new condition. fair or poor graded underwear
must not be redistributed. Reflects universal hygiene policy across social organisations.
action: block, suggest: disposal.'
title: uc-underwear-condition-block
- preconditions:
slot_conditions:
subcategory:
name: subcategory
equals_string: underwear
demographic:
name: demographic
any_of:
- equals_string: adult_male
- equals_string: adult_female
usage:
name: usage
equals_string: used
postconditions:
slot_conditions:
lifecycle_state:
name: lifecycle_state
none_of:
- equals_string: stored
- equals_string: distributed
description: 'Used adult underwear (adult_male or adult_female demographic) must
not be redistributed. usage must be new. Reflects hygiene and dignity standards
applied universally in the social sector. action: block.'
title: uc-underwear-adult-used-block
- preconditions:
slot_conditions:
condition_grade:
name: condition_grade
equals_string: poor
postconditions:
slot_conditions:
lifecycle_state:
name: lifecycle_state
none_of:
- equals_string: stored
- equals_string: distributed
description: 'Items in poor condition should not be distributed. action: block,
suggest: disposal.'
title: uc-poor-condition-block
- preconditions:
slot_conditions:
subcategory:
name: subcategory
equals_string: underwear
postconditions:
slot_conditions:
demographic:
name: demographic
any_of:
- equals_string: baby
- equals_string: child
- equals_string: adult_male
- equals_string: adult_female
description: Underwear subcategory restricts demographic to baby, child, adult_male,
adult_female. Unisex is not a valid demographic for underwear — underwear is always
gender-specific at the redistribution level.
title: vm-demographic-underwear
- preconditions:
slot_conditions:
demographic:
name: demographic
equals_string: baby
postconditions:
slot_conditions:
size:
name: size
any_of:
- equals_string: baby_0_3m
- equals_string: baby_3_6m
- equals_string: baby_6_12m
- equals_string: baby_12_18m
- equals_string: baby_18_24m
description: baby demographic constrains size to infant size codes.
title: vm-size-baby
- preconditions:
slot_conditions:
demographic:
name: demographic
equals_string: child
postconditions:
slot_conditions:
size:
name: size
any_of:
- equals_string: child_2_3T
- equals_string: child_4_5T
- equals_string: child_6_7
- equals_string: child_8_10
- equals_string: child_12_14
description: child demographic constrains size to children's size codes.
title: vm-size-child
- preconditions:
slot_conditions:
demographic:
name: demographic
any_of:
- equals_string: adult_male
- equals_string: adult_female
- equals_string: unisex
postconditions:
slot_conditions:
size:
name: size
any_of:
- equals_string: xs_s
- equals_string: m_l
- equals_string: xl_plus
- equals_string: one_size
description: adult/unisex demographics constrain size to adult size codes.
title: vm-size-adult
- preconditions:
slot_conditions:
season:
name: season
equals_string: winter
postconditions:
slot_conditions:
is_winter_suitable:
name: is_winter_suitable
equals_string: 'true'
description: season = winter implies is_winter_suitable = true. A garment explicitly
tagged winter must be winter-suitable.
title: vm-season-winter
- preconditions:
slot_conditions:
is_winter_suitable:
name: is_winter_suitable
equals_string: 'false'
postconditions:
slot_conditions:
season:
name: season
any_of:
- equals_string: summer
- equals_string: spring_autumn
description: is_winter_suitable = false implies that season cannot be winter and
all season.
title: vm-season-not-winter-suitable
- preconditions:
slot_conditions:
season:
name: season
equals_string: summer
postconditions:
slot_conditions:
is_winter_suitable:
name: is_winter_suitable
equals_string: 'false'
description: 'season = summer implies is_winter_suitable = false. A garment explicitly
tagged summer-only is not winter-suitable. Note: if a sorter tags both summer
and spring_autumn, the is_winter_suitable value is their explicit call — no rule
fires.'
title: vm-season-summer
- preconditions:
slot_conditions:
season:
name: season
equals_string: all_season
postconditions:
slot_conditions:
is_winter_suitable:
name: is_winter_suitable
equals_string: 'true'
description: season = all_season implies is_winter_suitable = true. All-season items
are by definition suitable in winter.
title: vm-season-all