Warehouse
Related classes: Loading_Dock · Receiving_Area · Picking_Zone · Forklift · Autonomous_Mobile_Robot · Conveyor · Person · Location_Sensor
There is no Warehouse class. A warehouse is a Building on a Site; what makes it a warehouse is the set of zones, equipment and agents inside it. This page walks through those layers with the classes that exist today.
Site, floors, zones
Containment follows Place.hasPart / isPartOf: Site → Building → Floor (a mezzanine is REC's MezzanineLevel) → rooms and zones. A Yard is an Outdoor_Area on the site for trailers and outdoor staging.
| Function | Class | Kind |
|---|---|---|
| Dock | Loading_Dock | Room |
| Inbound | Receiving_Area | Zone |
| Outbound | Shipping_Area | Zone |
| Buffer | Staging_Area | Zone; replaces the deprecated Staging_Zone |
| Picking | Picking_Zone | Zone |
| Aisles | Aisle | Zone |
| Bulk storage | Storage_Room → Hazardous_Materials_Storage, Waste_Storage | Room |
| Robot charging | Charging_Area (open floor) or Robot_Charging_Room (enclosed) | Zone / Room |
| Access and safety | Restricted_Zone, Security_Patrol_Zone, Fly_Zone / No_Fly_Zone | Zone |
| Workstations | Workspace | Zone (REC) |
Zones and spaces that touch can be linked with isAdjacentTo. Cold storage is equipment, not a place: Walk_In_Freezer and Walk_In_Refrigerator are Refrigeration_Equipment Things located in a room.
Docks, doors and fixed equipment
A dock position is a Loading_Dock room with an Overhead_Door and a Loading_Dock_Leveler. The site perimeter uses Gate and Boom_Barrier; a staff entrance a Turnstile. Fixed material handling: Conveyor (a Device; Tire_Conveyor is its only subclass), Pallet_Rack and Scale. There is no sorter, shelving or tote class; use the nearest parent (Conveyor, Thing) and the entity name.
Mobile equipment and robots
- Vehicle → Forklift → Electric_Forklift, Propane_Forklift; Work_Assist_Vehicle
- Pallet_Jack → Electric_Pallet_Jack
- Robot → Automated_Guided_Vehicle, Autonomous_Mobile_Robot, Drone
These are all Things, so each has exactly one hasLocation → Place; for a mobile asset that is its home or current zone, and the live position comes from points (below). An Asset_Tag is itself a Thing that can be isPartOf the asset it labels. Thing carries serialNumber, assetTrackingID, assetLifecycleState, dateInstalled and firmwareVersion for the asset register, and hasDeviceModel → Device_Model for make and model.
People and organizations
Person is a direct child of Entity, not a Thing. It has givenName, familyName and additionalName, and the relationships isMemberOf → Organization, hasEmail, hasPhoneNumber, hasCalendar and hasAccessCredential → Access_Credential (a badge; its value doubles as an Access_Credential_Identity).
Organizations descend from REC's Agent: Organization → Company, People_Group. A People_Group (a shift, the maintenance team) isResponsibleFor Things, and an Organization can be the 3PL that a device serves.
Identities are how keys from other systems attach. Every Entity has hasIdentity → Identity, which holds a required value and scope. The useful subclasses here are External_Identity (a WMS or HR system id), Email_Identity, Name_Identity and Postal_Address_Identity.
Live positions and other points
Points attach with hasPoint / isPointOf to a Thing, Place or Collection and are isHostedBy the device that produces them. isPointOf does not target Person: a person's position is modelled on the Thing they carry (a badge, a phone, an Asset_Tag) or on the zone they are in.
| Point | Reports |
|---|---|
| Geo_Location_Sensor | Earth coordinates of the subject |
| Pose_Sensor | Position and orientation in a declared coordinate frame (indoor positioning, robots) |
| Symbolic_Location_Sensor | A named place rather than coordinates, "Dock 4" |
| RFID_Signal, Radio_Signal | Raw tag reads, signal strength, angle of arrival |
| Inertial_Measurement_Unit_Sensor | Angular rate and acceleration |
| Battery_Level_Sensor | Remaining charge of a robot or forklift |
| Occupancy_Count_Sensor, People_Count_Sensor | Headcount in a zone |
| Utilization_Status | Capacity in use, e.g. of a conveyor |
The three location sensors are children of Location_Sensor. Static footprints use Thing.frameGeometry (2D geometry per coordinate frame); 3D representations follow the OpenUSD guide.
Example
Site "Regional DC 12"
├─ Yard "Trailer yard"
└─ Building "Warehouse"
└─ Floor "Ground"
├─ Loading_Dock "Dock 04"
│ ├─ Overhead_Door "Door 04" hasLocation → Dock 04
│ └─ Loading_Dock_Leveler "Leveler 04"
├─ Receiving_Area "Inbound"
│ └─ Conveyor "CV-1" feeds → Buffer A
├─ Staging_Area "Buffer A"
├─ Picking_Zone "Pick 1"
│ ├─ Pallet_Rack "PR-1-01"
│ └─ Autonomous_Mobile_Robot "AMR-07" hasLocation → Pick 1
│ ├─ Pose_Sensor "pose" isPointOf AMR-07, isHostedBy AMR-07
│ └─ Battery_Level_Sensor "battery"
├─ Charging_Area "Charge bay"
└─ Shipping_Area "Outbound"
Organization "3PL Co" hasMember → Person "J. Doe"
People_Group "Day shift" isResponsibleFor → AMR-07
Person "J. Doe" hasAccessCredential → Access_Credential "badge 4471"