ADAPT - Load / LoadDestination Discussion

ADAPT - Load / LoadDestination Discussion

Load

See the ADAPT - LoggedData / OperationData / Section / Meter Discussion: each instance of a Load is valid inside the context of a single OperationData instance.

How does this work in the context of non-mechanical harvest? In the context of Summary? (Relegating non-mechanical load discussions for version 2).

Attribute

Type

Multiplicity

Description

Attribute

Type

Multiplicity

Description

Id

CompoundIdentifier

1

Unique identifier

Description

String

0..1

 

TimeScopeIds

Integer

0..1

When was the load created? This is useful for summary-only situations.

Note how it can also include a geographical location.

TimeScopes

TimeScope

0..*

 

LoadNumber

String

0..1

Think about use cases: cotton modules

LoadType

LoadTypeEnum

1

Will ultimately become an EnumeratedRepresentationValue

LoadQuantity

NumericRepresentationValue

0..1

 

DestinationIds

Integer

0..*

Destination(s) to which the load is shipped.

ContextItems

ContextItem

0..*

 

ObservationsId

Integer

0..1

 

ObsCollectionId

Integer

0..1

 

 

 

 

NEED TO ADD WHAT IS CONTAINED IN THE LOAD!

 

LoadTypeEnum

  • Unknown

  • Tank

  • Field

  • Truck

  • Bale

  • Module

LoadDestination [Not Implemented]

Attribute

Type

Multiplicity

Description

Attribute

Type

Multiplicity

Description

Id

CompoundIdentifier

1

Unique identifier

Name

String

1

Note text

DestinationType

EnumeratedRepresentation

1

Unspecified, Bin, Elevator, Terminal, etc.

GLN

Uri

0..1

Global Location Number

ContactInfo

Integer

0..1

 Address, phones, etc. Defined in ADAPT - Grower / Farm / Field / Cropzone / ContactInfo / Location / Facility / FacilityTypeEnum Discussion

Additional Discussion

 

Use cases to use for testing our ideas:

Product coming off the field

  • Single load goes from combine to truck

  • Multiple loads go from combine to truck

  • Single load goes from truck to single bin

  • Multiple loads go from truck to single bin

  • Single load goes from truck to multiple bins

  • Multiple loads go from truck to multiple bins

Product going on the field

  • Instantiation of a disposable container with product in it

  • Instantiation of a reusable container with product in it

  • Application of a product from a contain to the field ("coarse granularity")

  • Application of a product from a container to a specific section (e.g., seed box; "fine granularity")

 

20160405 Attempt to unify ContainerUse, Load and ProductAllocation

Attrib / type

Concept

Load

ContainerUse

ProdAll

Comment

Attrib / type

Concept

Load

ContainerUse

ProdAll

Comment

Load.Id: CompoundIdentifier

ProductAllocation: CompoundIdentifier

Identify standalone instances

ContainerUse does NOT have a unique Id because it is owned by the corresponding LoggedData?

Do Loads, ProductAllocations, etc. need to stand alone?

ProductAllocation.OriginContainerId

Origin of the movement

 

This is implicit in ContainerUse, and explicit in ProductAllocation. Do not have clear semantics in ContainerUse of how to link a succession of container movements: we have to sort through them with timestamps, etc. Need to tighten the causality for the purposes of traceability.

An interesting assumption in ProductAllocation is that products always flow among containers. So does ContainerUse, for that matter.

ProductAllocation.DestinationContainerId

Destination of the movement

 

This is implicit in ContainerUse, and explicit in ProductAllocation. Do not have clear semantics in ContainerUse of how to link a succession of container movements: we have to sort through them with timestamps, etc. Need to tighten the causality for the purposes of traceability.

An interesting assumption in ProductAllocation is that products always flow among containers. So does ContainerUse, for that matter.

Load.DestinationIds[0..*]: Integer

List of destinations

 

A destination is a separate class, an ad-hoc mashup of Location and Facility, with a unique Id and a description.

Note that as of Apr 5, 2016  ContainerUse does not resolve where things go / where they come from.

Load.LoadNumber[0..1]: String

Human-readable identifier of the load.

 

As of Apr 5, 2016 ContainerUse needs a description or LoadNumber or similar.

ProductAllocation.LoadId

Id of the Load that the ProductAllocation is in the context of.

 

 

Used in conjuction with Load, ProductAllocation identifies the product and the amount involved, and Load allows giving that particular instance of an amount of a product an identity.

Load.Description[0..1]: String

 

 

As of  Apr 5, 2016  ContainerUse needs a description or LoadNumber or similar.

Load.TimeScopes[0..*]:Integer

ContainerUse.TimeScopeIds[0..*]:Integer

ProductAllocation.TimeScopeIds[0..*]:Integer

Meaningful timestamps & locations for when the movement took place.

No need to use TimeScopes by reference.

LoadType: Enumeration

Enumeration: Unknown, Tank, Field, Truck, Bale, Module

 

 

A little unclear

Load.LoadQuantity[0..1]: NumericRepresentationValue

ContainerUse.AmountUsed: NumericRepresentationValue

ProductAllocation.ProductAmount: NumericRepresentation

Amount of product/commodity

Note that it was optional in Load, but required in ContainerUse. Unclear why it would be optional.

ContainerUse.ContainerId

What container was the subject

 

 

 

ContainerUse.ProductId

ProductAllocation.ProductId

Identifying what product is being handled

 

Based on latest work on the matter, harvestedCommodity is a specialization of Product, so this ProductId would allow us to identify both products going to the field and commodities coming back from the field.

ContainerUse.ContainerAction: ContainerActionEnum

Tells us what is being done with the container

 

 

 

ContextItems[0..*]

 

 

 

Container has ContextItems that could be used to reflect things like:

  • GTIN of a package

  • Modele ID of a cotton module. This requires the mindset that the module is the container as opposed to the module being the "load". The latter could be modified via the ContainerUse having ContextItems.

DocumentIDs[0..*]: Integer

Identify the document(s) this "load" is associated with. Such documents could include Work Records, Weight Certificates / Scale Tickets, etc.

 

 

 

 

User Stories:

  • From the field:

    • Commodity from the field: Removing a load of grain from the field, taking it to a storage facility going through combine, cart and semi.

  • To the field:

    • Amounts of bulk product A (water) and a reusable-container-mediated product B (a herbicide from a mini-bulk) get blended together on a tank in a transport vehicle, sent to the field, where the product is transferred to the tank on a sprayer, a third product C (from a disposable container) is added, and the subsequent product is applied to the field.  Look at it under the perspectives where the mixing takes place in the shop, and where the mixing takes place in the field.

    • Seed treatment 1: A seed treatment is applied to a crop variety product. The seed treatment rate is specified in units of mass per individual seed, and delivered (by mass) in a disposable container. The seed is delivered in a reusable container with a specified number of seeds in it.

    • Seed treatment 2: A seed treatment is applied to a crop variety product. The seed treatment rate is specified in units of mass per individual seed, and delivered (by volume) in a disposable container. (Density and active ingredient fraction mediate conversion to amount of seed treatment per unit volume.) The seed is delivered in a reusable container with a specified number of seeds in it.

    • Seed treatment 3: A seed treatment is applied to a crop variety product. The seed treatment rate is specified in units of mass per individual seed, and delivered (by mass) in a disposable container. The seed is delivered in a reusable container with a specified mass of seeds. (The number of seeds in the container is derived from a lot-specific test weight  e.g., "2200 seeds per pound").

    • Seed treatment 4: A seed treatment is applied to a crop variety product. The seed treatment rate is specified in units of mass per individual seed, and delivered (by volume) in a disposable container. (Density and active ingredient fraction mediate conversion to amount of seed treatment per unit volume.) The seed is delivered in a reusable container with a specified mass of seeds. (The number of seeds in the container is derived from a lot-specific test weight  e.g., "2200 seeds per pound").

  • In the shop:

    • We create a product out of others. We consider that it is now a lot (i.e., "Load") X of stuff that will go out to the field.

      • Analyze this in case where the user cases / does not care about individual containers.

  • Non-specific

    • How do we capture in ADAPT the ISO PAN use case of making a product available to a task?

    • How do we capture in ADAPT the more subtle aspects of PAN that specify an ISO mask and ISO name?

  • FSMA "One step forward, one step back"

    • Standing on any given lot/ batch/load, be able to trace back 1 (and therefore by induction, n) step, and trace forward 1 (and therefore n) step.

      • Does this include a container-centric view, where we need to know what was in a givven container before / next?

        • Seems like the answer is YES