ADAPT - Document / DocumentCorrelation Discussion
Definitions of the Core Documents
Document name | Abb | Type | What does it convey? | Actor |
---|---|---|---|---|
Plan | Plan | Strategic | "This is how we will manage part/all of our crop this season" | Grower, or other actor involved in strategic planning for the operation. |
Recommendation | REC | Tactical | "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 Order | WO | Tactical | "This is what we will do now/soon" | An individual with authority to order the work done. |
Work Record | WR | Tactical / | "This is what actually happened in the field" | May be automatically generated; otherwise, an operator that performed the task. |
Setup Catalog / Machine Setup File | Setup | All | "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. |
Prescription | Rx |
Data Used in the Core Documents
Attribute | Type | Multiplicity | Plan | Rec | WO | WR | Setup Data | Description | |
---|---|---|---|---|---|---|---|---|---|
Id | Integer | 1 | 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 | An informative name for the document: "High-input soybeans," or "Fungicide spray recommendation for river bottom cornfields," or "Spraying Back 40") | ||||||
TimeScopeIds | Integer | 0..n | Done. Important! This allows embedding both CropSeason/ TimingEvent AND specific dates (such as Authorization date) in a document. | ||||||
GrowerID | Integer | 0..1 | 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 | Integer | 0..n |
20150819: Agreed to handle this in documents via PersonRole objects. | ||||||
FarmIDs | Integer | 0..n | Is this an attribute here, or pulled up from the "child" WorkItem(s) via helper method?
| ||||||
FieldIDs | Integer | 0..n | Is this an attribute here, or pulled up from the "child" WorkItem(s) via helper method? | ||||||
CropZoneIDs | Integer | 0..n | Is this an attribute here, or pulled up from the "child" WorkItem(s) via helper method? | ||||||
Version | Integer | 0..1 | 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 | When was this document / object / record created? | ||||||
ModifiedDateTime | DateTime | 1 | 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..* | 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 | Used for creating a non-spatial plan. (The implementation in ADAPT may vary.) | ||||||
NoteIds | Integer | 0..* | A list of references to ReferenceNote objects. | ||||||
PersonRoleIds | Integer | 0..n | A list of IDs of PeopleRole objects that describe "who" is involved and what their role is in the collection of data. | ||||||
WorkItemIds | In the case of the Work Record, there should be at most one work item. | ||||||||
GuidanceIds | Integer | 0..n | |||||||
ReferenceLayerIds | Integer | 0..n | e.g., Obstacle Locations (a.k.a. flags, passible and impassible boundaries) | ||||||
DocumentCorrelations | (not attribute, resolved by helper method) | 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 | ContextItem | 0..n | A list of references to ContextItem objects For example: OSHA, EPA-WPS, etc. | ||||||
ProductIds | Integer | 0..n | Assumed to be referenced in WorkItem objects in Plan, Rec, WO, WR? | ||||||
MachineIds | Integer | 0..n | |||||||
Environmental Conditions | Complex | 0..n | Requirement for /wiki/spaces/SPADE2/pages/38175060 | ||||||
Field Conditions | Complex | 0..n | Requirement for /wiki/spaces/SPADE2/pages/38175060 | ||||||
Package Data (for packaged crop protection products) | Complex | 0..n | Requirement for /wiki/spaces/SPADE2/pages/38175060 | ||||||
LoggedData | LoggedData | 0..* | |||||||
Summaries | Summary | 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.
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | |
RelationshipType | DocRelationShipTypeEnum | 1 | Need to create a preliminary list |
DocumentId | Integer | 1 | "Self" |
OriginatingDocumentId | Integer | 1 | "Other" |
TimeScopes | TimeScope | 0..n | |
PersonRoleIDs | Integer | 0..n |
Document
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | |
ContextItems | ContextItem | 0..* | |
CropIds | Integer | 0..* | |
CropZoneIds | Integer | 0..* | |
Description | String | 0..1 | |
EstimatedArea | NumericRepresentationValue | 0..1 | |
FarmIds | Integer | 0..* | |
FieldIds | Integer | 0..* | |
GrowerId | Integer | 0..1 | |
Notes | Note | 0..* | |
PersonRoleIds | Integer | 0..* | |
TimeScopes | TimeScope | 0..* | |
Version | Integer | 0..1 |
Documents
Attribute | Type | Multiplicity | Description |
---|---|---|---|
WorkItems | WorkItem | 0..* | |
WorkItemOperations | WorkItemOperation | 0..* | |
LoggedData | LoggedData | 0..* | |
Plans | Plan | 0..* | |
WorkOrders | WorkOrder | 0..* | |
WorkRecords | WorkRecord | 0..* | |
Recommendations | Recommendation | 0..* | |
GuidanceAllocations | GuidanceAllocation | 0..* | |
Summaries | Summary | 0..* | |
LoggedDataCatalog | Integer | 1 | |
DeviceElementUses | DeviceElementUse | 0..* | |
Loads | Load | 0..* | |
IrrCollections | IrrCollection | 0..* | |
IrrRecords | IrrRecord | 0..* | |
DocumentCorrelations | DocumentCorrelation | 0..* | |
Obs | Obs | 0..* | |
ObsCollections | ObsCollection | 0..* | |
ObsDatasets | ObsDataset | 0..* | |
Observations | Observations | 0..* |
ApplicationDataModel
Attribute | Type | Multiplicity | Description |
---|---|---|---|
ProprietaryValues | ProprietaryValue | 0..* | |
Catalog | Catalog | 0..1 | |
Documents | Documents | 0..1 | |
ReferenceLayers | IEnumerable | 0..* |
ModelScope
Attribute | Type | Multiplicity | Description |
---|---|---|---|
Id | CompoundIdentifier | 1 | |
Code | String | 0..1 | |
Description | String | 0..1 | |
ModelScopeType | ModelScopeTypeEnum | 1 |
DocRelationshipTypeEnum
Enumeration Literal | Description |
---|---|
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 Literal | Description |
---|---|
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 Wilson, Stuart 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 Wilson, Rob Bullock, Shannon Haringx (Unlicensed), Stuart Rhea (Unlicensed), R. Andres Ferreyra (Unlicensed), Tim Shearouse (Deactivated)
Discuss recent Core Documents work