This repository has been archived by the owner on Oct 20, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Model 1.0: Instance_Dataset_User_Configuration
Yu Liu edited this page Dec 26, 2018
·
1 revision
- This model aims to provide a standard to store, communicate, analyze, version, and archive FRC Scouting Data. The intended end user of this model are strategists, data analysists, and decision making groups of an FRC team that require organized scouting data
- This model also aims to provide a decentralized standard of communication between users of the model, which accounts for the use of multiple computers
- An Application is a program that provides some interface to interact with the Model
- A Working Directory contains files and records organized according to the Model
- An Instance of the Model is an Application using a specific Working Directory
- An User is a person using an Instance
- A Table is a two dimensional data structure with unique row and column headers, and will always have the same data structure in each column
- A Table Type is the description type of a Table's row headers
- Event, Match, Team, Entry, Scout are specific Table Types used for FRC Scouting Data
- A Table Set is a set of Tables with unique Table Types
- A Dataset is a Table Set in the Working Directory used by an Instance for information analysis
- Configurations represent any state of the Working Directory that is not a Dataset and that represent some arrangements affecting the state of the Instance
- A Version represents the difference in Datasets and Configurations of an Instance in a certain period of time, attributed to a User
- A View is a Configuration that structures and displays a Dataset in a specific way without modifying it
- A Script is a Configuration written in a programming language that aids the Instance in data analysis
From this point on, specific implementation details will be presented instead of generic terms listed above. The following is the structure in terms of the file system:
{ApplicationExecutable}
python-embed/
{PythonEmbedExecutable}/
.../
tables/
{ExternalMedia}/
photos/
{TeamPhotos...}
videos/
{MatchVideos...}
{WorkingDirectory}/
output/
html/
{HTMLOutput...}
csv/
{CSVOutput...}
{ExcelOutput...}
scripts/
{PythonScripts...}
boards/
{BoardFiles...}
datasets/
{DatasetIndexConfiguration}
{InactiveZippedDataset...}
{ActiveDataset...}/
intermediate/
{IntermediateFiles...}
raw/
{RawData...}
scripts/
{PythonScripts...}
tba-cache/
{TheBlueAllianceCachedData...}
tables/
{TableData...}
verified/
{VerifiedData...}
views/
{ViewConfiguration...}
{BoardsConfiguration}
{DatasetConfiguration}
{TablesConfiguration}
{WrongDataConfiguration}
{ScriptConfiguration}
{UserConfiguration}
{CurrentDatasetConfiguration}
The top level directories should all be in the same parent directory in a distribution, but it is not necessary during development. The structure of the Working Directory, however, must be preserved so data can be imported
- An Instance has the ability to update its Data and Configurations when given the Working Directory from another Instance. This means Data and Configurations can be transferred between devices
- An Instance has the ability to merge Versions when updating from another Working Directory
- For the purposes of attributing changes and actions to the user who made them, all such changes and actions should have the ability to record their user.
- All data meant to communicate between instances of the model must contain its source use