Class: DemandSignal
A signal representing demand for a category of items. Covers standing interests, time-bounded campaigns, and specific beneficiary requests under a single unified model.
URI: inkind_knowledge_repo:DemandSignal
classDiagram
class DemandSignal
click DemandSignal href "../DemandSignal/"
DemandSignal : attributes
DemandSignal --> "0..1" AnyValue : attributes
click AnyValue href "../AnyValue/"
DemandSignal : campaign
DemandSignal --> "0..1" Campaign : campaign
click Campaign href "../Campaign/"
DemandSignal : category
DemandSignal --> "1" CategoryEnum : category
click CategoryEnum href "../CategoryEnum/"
DemandSignal : context_note
DemandSignal : deadline
DemandSignal : holder
DemandSignal : id
DemandSignal : lifecycle_state
DemandSignal --> "1" DemandSignalLifecycleEnum : lifecycle_state
click DemandSignalLifecycleEnum href "../DemandSignalLifecycleEnum/"
DemandSignal : org
DemandSignal --> "1" SocialOrganisation : org
click SocialOrganisation href "../SocialOrganisation/"
DemandSignal : public_visibility
DemandSignal : quantity_fulfilled
DemandSignal : quantity_requested
DemandSignal : registered_at
DemandSignal : signal_type
DemandSignal --> "1" DemandSignalTypeEnum : signal_type
click DemandSignalTypeEnum href "../DemandSignalTypeEnum/"
DemandSignal : urgency_tier
DemandSignal --> "0..1" UrgencyTierEnum : urgency_tier
click UrgencyTierEnum href "../UrgencyTierEnum/"
Slots
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| id | 1 Uriorcurie |
A unique identifier for the entity | direct |
| org | 1 SocialOrganisation |
Reference to the owning SocialOrganisation | direct |
| signal_type | 1 DemandSignalTypeEnum |
Discriminator — standing (permanent interest), campaign (time-bounded), or sp... | direct |
| category | 1 CategoryEnum |
Type-defining slot on DonationItem | direct |
| attributes | 0..1 AnyValue |
Category-specific demand attribute filters | direct |
| quantity_requested | 0..1 Integer |
Target quantity | direct |
| quantity_fulfilled | 1 Integer |
Items matched to this signal — derived at runtime | direct |
| campaign | 0..1 Campaign |
FK to Campaign — set only for campaign signal_type |
direct |
| holder | 0..1 String |
FK reference to Beneficiary or SocialOrganisation — used for specific signa... |
direct |
| context_note | 0..1 String |
Human-readable context note, e | direct |
| deadline | 0..1 Date |
Deadline for fulfilment | direct |
| urgency_tier | 0..1 UrgencyTierEnum |
Urgency classification | direct |
| lifecycle_state | 1 DemandSignalLifecycleEnum |
Current lifecycle state of the entity | direct |
| registered_at | 1 Datetime |
Timestamp when this demand signal was registered | direct |
| public_visibility | 1 Boolean |
Whether to expose this signal on the public API and Donor Portal | direct |
Usages
| used by | used in | type | used |
|---|---|---|---|
| Campaign | signals | range | DemandSignal |
See Also
Identifier and Mapping Information
Schema Source
- from schema: https://inkind-at.github.io/inkind-knowledge-repo
Mappings
| Mapping Type | Mapped Value |
|---|---|
| self | inkind_knowledge_repo:DemandSignal |
| native | inkind_knowledge_repo:DemandSignal |
LinkML Source
Direct
name: DemandSignal
description: A signal representing demand for a category of items. Covers standing
interests, time-bounded campaigns, and specific beneficiary requests under a single
unified model.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- schema:Demand
slots:
- id
- org
- signal_type
- category
- attributes
- quantity_requested
- quantity_fulfilled
- campaign
- holder
- context_note
- deadline
- urgency_tier
- lifecycle_state
- registered_at
- public_visibility
slot_usage:
org:
name: org
range: SocialOrganisation
required: true
category:
name: category
see_also:
- openeligibility:ServiceTag
range: CategoryEnum
required: true
lifecycle_state:
name: lifecycle_state
range: DemandSignalLifecycleEnum
required: true
urgency_tier:
name: urgency_tier
see_also:
- openeligibility:HumanSituation
range: UrgencyTierEnum
required: false
Induced
name: DemandSignal
description: A signal representing demand for a category of items. Covers standing
interests, time-bounded campaigns, and specific beneficiary requests under a single
unified model.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- schema:Demand
slot_usage:
org:
name: org
range: SocialOrganisation
required: true
category:
name: category
see_also:
- openeligibility:ServiceTag
range: CategoryEnum
required: true
lifecycle_state:
name: lifecycle_state
range: DemandSignalLifecycleEnum
required: true
urgency_tier:
name: urgency_tier
see_also:
- openeligibility:HumanSituation
range: UrgencyTierEnum
required: false
attributes:
id:
name: id
description: A unique identifier for the entity.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
slot_uri: schema:identifier
identifier: true
alias: id
owner: DemandSignal
domain_of:
- NamedThing
- SocialOrganisation
- Actor
- StorageLocation
- DonationSource
- DonationCollection
- DonationItem
- DemandSignal
- Campaign
- ProvenanceRecord
range: uriorcurie
required: true
org:
name: org
description: Reference to the owning SocialOrganisation. Concrete range applied
via slot_usage in each class.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: org
owner: DemandSignal
domain_of:
- Actor
- StorageLocation
- DonationCollection
- DemandSignal
- Campaign
- ProvenanceRecord
range: SocialOrganisation
required: true
signal_type:
name: signal_type
description: Discriminator — standing (permanent interest), campaign (time-bounded),
or specific (concrete beneficiary request).
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: signal_type
owner: DemandSignal
domain_of:
- DemandSignal
range: DemandSignalTypeEnum
required: true
category:
name: category
annotations:
label_en:
tag: label_en
value: Item Type
label_de:
tag: label_de
value: Artikeltyp
description: Type-defining slot on DonationItem. Value is the class URI of the
concrete subclass (e.g. inkind_knowledge_repo:ClothingItem). linkml-validate,
gen-json-schema, and gen-pydantic all use this slot to dispatch to the correct
subclass schema and valid slot set. For other entities (DemandSignal, StorageLocation)
the range is overridden via slot_usage to CategoryEnum.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- openeligibility:ServiceTag
rank: 1000
slot_uri: schema:additionalType
alias: category
owner: DemandSignal
domain_of:
- DonationItem
- DemandSignal
range: CategoryEnum
required: true
attributes:
name: attributes
description: 'Category-specific demand attribute filters. Structure mirrors the
attribute vocabulary defined in the category schema for the given category value.
Phase 2 refactor: replace Any with typed ItemAttributes subclass hierarchy,
moving category mixin slots into *Attributes classes shared between DonationItem
and DemandSignal.'
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: attributes
owner: DemandSignal
domain_of:
- DemandSignal
range: AnyValue
quantity_requested:
name: quantity_requested
description: Target quantity. Null = any amount welcome (standing signals have
no target).
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: quantity_requested
owner: DemandSignal
domain_of:
- DemandSignal
range: integer
quantity_fulfilled:
name: quantity_fulfilled
description: Items matched to this signal — derived at runtime.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: quantity_fulfilled
owner: DemandSignal
domain_of:
- DemandSignal
range: integer
required: true
campaign:
name: campaign
description: FK to Campaign — set only for `campaign` signal_type.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: campaign
owner: DemandSignal
domain_of:
- DemandSignal
range: Campaign
holder:
name: holder
description: FK reference to Beneficiary or SocialOrganisation — used for `specific`
signal_type.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: holder
owner: DemandSignal
domain_of:
- DemandSignal
range: string
context_note:
name: context_note
description: Human-readable context note, e.g. "Back to school for 30 primary
school children".
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: context_note
owner: DemandSignal
domain_of:
- DemandSignal
range: string
deadline:
name: deadline
description: Deadline for fulfilment. Null for standing signals.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: deadline
owner: DemandSignal
domain_of:
- DemandSignal
range: date
urgency_tier:
name: urgency_tier
description: Urgency classification. Null for standing signals; set for campaign
and specific types.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
see_also:
- openeligibility:HumanSituation
rank: 1000
alias: urgency_tier
owner: DemandSignal
domain_of:
- DemandSignal
range: UrgencyTierEnum
required: false
lifecycle_state:
name: lifecycle_state
description: Current lifecycle state of the entity. Concrete enum range applied
via slot_usage. Transitions enforced by Django model clean().
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: lifecycle_state
owner: DemandSignal
domain_of:
- DonationSource
- DonationCollection
- DonationItem
- DemandSignal
- Campaign
range: DemandSignalLifecycleEnum
required: true
registered_at:
name: registered_at
description: Timestamp when this demand signal was registered.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: registered_at
owner: DemandSignal
domain_of:
- DemandSignal
range: datetime
required: true
public_visibility:
name: public_visibility
description: Whether to expose this signal on the public API and Donor Portal.
from_schema: https://inkind-at.github.io/inkind-knowledge-repo
rank: 1000
alias: public_visibility
owner: DemandSignal
domain_of:
- DemandSignal
range: boolean
required: true