ADAPT - Document / DocumentCorrelation Discussion

Definitions of the Core Documents

Document nameAbbTypeWhat does it convey?Actor
PlanPlanStrategic"This is how we will manage part/all of our crop this season"Grower, or other actor involved in strategic planning for the operation.
RecommendationRECTactical

"This is what I think we should do now/soon"

This document is not always acted upon; it is acted upon via a work order, upon approval.

Some jurisdictions require a reason for making the recommendation, including supporting documentation, a guarantee that alternatives were considered, etc.

An individual with the expertise / licensing necessary to recommend a course of action.
Work OrderWOTactical"This is what we will do now/soon"An individual with authority to order the work done.
Work RecordWR

Tactical /
Historical

"This is what actually happened in the field"May be automatically generated; otherwise, an operator that performed the task.
Setup Catalog /
Machine Setup File 
SetupAll"This is the information you need in order for us to exchange data"Grower, or other actor involved in managing the grower's production data.
PrescriptionRx


Data Used in the Core Documents

Attribute
TypeMultiplicityPlanRecWOWRSetup
Data 
Description

Id


Integer

1(tick)(tick)(tick)(tick)(tick)This ID uniquely identifies this object within the scope of a particular instance of an ADAPT ApplicationDataModel. This ID can be associated with one or more unique identifiers (e.g., a UUID or GUID) by means of a CompoundIdentifier object.

Description


String

1(tick)(tick)(tick)(tick)(tick)

An informative name for the document: "High-input soybeans," or "Fungicide spray recommendation for river bottom cornfields," or "Spraying Back 40")

TimeScopeIds
Integer0..n(tick)(tick)(tick)(tick)
 Done. Important! This allows embedding both CropSeason/ TimingEvent AND specific dates (such as Authorization date) in a document.
GrowerID
Integer0..1(tick)(tick)(tick)(tick)(tick)

20150819: ADAPT group agreed to keep GrowerID on documents, PLUS link a person to documents through a PersonRole object, with the role of Grower. This makes it easier to separate the business entity from the person.

 Implemented making this optional to accommodate incoming data where this is unknown; as discussed w group.

PersonRoleIds
Integer0..n(tick)(tick)(tick)(tick)(tick)

20150819: Agreed to handle this in documents via PersonRole objects.

FarmIDs
Integer0..n(tick)(tick)(tick)(tick)(tick)

Is this an attribute here, or pulled up from the "child" WorkItem(s) via helper method?

FieldIDs
Integer0..n(tick)(tick)(tick)(tick)(tick)Is this an attribute here, or pulled up from the "child" WorkItem(s) via helper method?
CropZoneIDs
Integer0..n(tick)(tick)(tick)(tick)(tick)Is this an attribute here, or pulled up from the "child" WorkItem(s) via helper method?
Version
Integer0..1(warning)(warning)(warning)(warning)(warning)20150520: Proposed by Stuart Rhea (Unlicensed) as a means of the FMIS enabling an audit trail; we're not directly implementing an audit trail in the data model.

CreatedDateTime


DateTime

1(tick)(tick)(tick)(tick)(tick)When was this document / object / record created?

ModifiedDateTime


DateTime

1(tick)(tick)(tick)(tick)(tick)

When was the last time someone made changes to this document / object / record?

What would the meaning of "Modified" be in a work record? There are some valid things that could be done to a work record (e.g., adding context items) that seem legitimate.

CropIds


Integer

0..*(tick)(tick)(tick)(tick)(tick)

IMPORTANT: We're going to have difficulty mapping different sources' crop lists. We need to discuss how to map among them, because crop is more than just another Geopolitical-context-dependent enumeration. Also, the case can be made that there could be more than one crop in each document. Discussion is needed.


EstimatedArea


Double

0..1(tick)



Used for creating a non-spatial plan. (The implementation in ADAPT may vary.)

NoteIds


Integer

0..*(tick)(tick)(tick)(tick)(tick)A list of references to ReferenceNote objects.

PersonRoleIds


Integer

0..n(tick)(tick)(tick)(tick)(tick)A list of IDs of PeopleRole objects that describe "who" is involved and what their role is in the collection of data.

WorkItemIds




(tick)(tick)(tick)(warning)

In the case of the Work Record, there should be at most one work item.

GuidanceIds
Integer0..n(tick)(tick)(tick)(tick)(tick)

ReferenceLayerIds


Integer0..n(tick)(tick)(tick)(tick)(tick)

e.g., Obstacle Locations (a.k.a. flags, passible and impassible boundaries) 

DocumentCorrelations



  (not attribute, resolved by helper method)(tick)(tick)(tick)(tick)
IF we are to follow the pattern here that is used elsewhere in the model, this should not be an attribute but instead an helper method that queries based on the "parent" attribute in the Attachment.
ContextItems
ContextItem0..n(tick)(tick)(tick)(tick)

A list of references to ContextItem objects

For example: OSHA, EPA-WPS, etc.

ProductIds
Integer0..n(tick)(tick)(tick)(tick)(tick)Assumed to be referenced in WorkItem objects in Plan, Rec, WO, WR?
MachineIds
Integer0..n(tick)(tick)(tick)(tick)(tick)
Environmental Conditions
Complex0..n


(tick)
Requirement for /wiki/spaces/SPADE2/pages/38175060
Field Conditions
Complex0..n


(tick)
Requirement for /wiki/spaces/SPADE2/pages/38175060 
Package Data
(for packaged crop protection products) 

Complex0..n
(tick)(tick)(tick)(tick)Requirement for /wiki/spaces/SPADE2/pages/38175060 
LoggedData
LoggedData



(tick)

0..*



Summaries
Summary



(tick)

0..*



DocumentCorrelation (Needs work and examples in the ADAPT space)

This object's purpose is to describe the relationship between documents, not to describe one document WITHIN another. 

AttributeTypeMultiplicityDescription

Id

CompoundIdentifier

1
RelationshipTypeDocRelationShipTypeEnumNeed to create a preliminary list
DocumentIdInteger 1 "Self"
OriginatingDocumentIdInteger1 "Other"
TimeScopesTimeScope0..n
TimeStampDateTime1We may need to generalize our multiple uses of “time” into an external object that will also encapsulate the meaning. This would be similar to the approach we tool with People and Role.
PersonRoleIDs Integer 0..n

Document

AttributeTypeMultiplicityDescription
IdCompoundIdentifier1
ContextItemsContextItem0..*
CropIdsInteger0..*
CropZoneIdsInteger0..*
DescriptionString0..1
EstimatedAreaNumericRepresentationValue0..1
FarmIdsInteger0..*
FieldIdsInteger0..*
GrowerIdInteger0..1
NotesNote0..*
PersonRoleIdsInteger0..*
TimeScopesTimeScope0..*
VersionInteger0..1

Documents

AttributeTypeMultiplicityDescription
WorkItemsWorkItem0..*
WorkItemOperationsWorkItemOperation0..*
LoggedDataLoggedData0..*
PlansPlan0..*
WorkOrdersWorkOrder0..*
WorkRecordsWorkRecord0..*
RecommendationsRecommendation0..*
GuidanceAllocationsGuidanceAllocation0..*
SummariesSummary0..*
LoggedDataCatalogInteger1
DeviceElementUsesDeviceElementUse0..*
LoadsLoad0..*
IrrCollectionsIrrCollection0..*
IrrRecordsIrrRecord0..*
DocumentCorrelationsDocumentCorrelation0..*
ObsObs0..*
ObsCollectionsObsCollection0..*
ObsDatasetsObsDataset0..*
ObservationsObservations0..*

ApplicationDataModel

AttributeTypeMultiplicityDescription
ProprietaryValuesProprietaryValue0..*
CatalogCatalog0..1
DocumentsDocuments0..1
ReferenceLayersIEnumerable0..*

ModelScope

AttributeTypeMultiplicityDescription
IdCompoundIdentifier1
CodeString0..1
DescriptionString0..1
ModelScopeTypeModelScopeTypeEnum1

DocRelationshipTypeEnum

Enumeration LiteralDescription
Casual
Contextual
Compositional

DateWithContext Type

An enumeration. Its possible values (expandible). This is analogous to the ASP tag's Type attribute in ISO 11783.

  • CropSeason
  • Approval Date
  • Proposed Start
  • Proposed End
  • Requested Start
  • Requested End
  • Actual Start
  • Actual End
  • Expiration
  • Creation Date
  • Modified Date

The DateTime class could be extended to include the DataTime and the DateMeaning. The resulting class could be called DateWithContext, and we could allow documents to have 0..n of those; the "required" character of some of them (e.g., a Work Record should have a start date) would be mediated by business rules.

DateContextEnum

Enumeration LiteralDescription
Approval
ProposedStart
ProposedEnd
CropSeason
TimingEvent
ActualStart
ActualEnd
RequestedStart
RequestedEnd
Expiration
Creation
Modification
ValidityRange
RequestedShipping
ActualShipping
Calibration
Load
Unload
Suspend
Resume
Unspecified
Installation
Maintenance
PhenomenonTime
ResultTime


20150520 Meeting: Andrea Gowler (Unlicensed)Dan Berne (Unlicensed)Jeremy W WilsonStuart Rhea (Unlicensed)Tim Shearouse (Deactivated)R. Andres Ferreyra (Unlicensed)aberger@agsense.net (Unlicensed)Rob Bullock

Discuss recent Core Documents work


20150522 Meeting: aberger@agsense.net (Unlicensed)Jeremy W WilsonRob BullockShannon Haringx (Unlicensed)Stuart Rhea (Unlicensed)R. Andres Ferreyra (Unlicensed)Tim Shearouse (Deactivated)

Discuss recent Core Documents work