5LMYPB2QHNVDLYCRWLOMCPY35ZKHHPYVW5XHASE66L6PJZSOCXYQC IXUBSV7T75PV2G2WI7XFM4U2IAMDUTQLKCN73IY47FONS5LNJTRQC GGFJ6IS5SHXLHNJ4JXRGI4OQB3T4V7HF75WG4TBEYJT56LDJABGAC IFVRAERTCCDICNTYTG3TX2WASB6RXQQEJWWXQMQZJSQDQ3HLE5OQC YCGYOCFORTFK53WZ2B7GYZLT4HYXT55LCCKOTXM76ATWJNZ5WLJQC OGLLBQQYE5KICDMI6EX7ZI4TZT5RB7UFHH7O2DUOZ44QQXVL5YAAC 25GQ5TYGSGL7QED7L2IAPFLZ4WJJ2ZFAM6O6X5AOSTYPVJNCOGPQC VZGXBNYYO3E7EPFQ4GOLNVMRXXTQDDQZUU2BZ6JHNBDY4B2QLDAAC 2GJMZ6YA6OPHNS5KFFFI6POQ2BJ33SSS3NIPXYBFTJSN4BZBVEVAC -- NOTE: DBML does not like functions and materialised views-- from this: $npm install -g @dbml/cli-- sql2dbml schema.sql --postgres -o schema.dbml-- from this: $npm install -g @softwaretechnik/dbml-renderer-- dbml-renderer -i schema.dbml -o schema.svg-- junction table for files-dataset relationship-- (file can be a member of many datasets)-- (selections apply only to 1 dataset)-- use suncalc.js-- could use a function for night, on client not db, but want to filter on night-- in file table use mid point of file as time-- all times must be zoned to utc-- dataset type enumCREATE TYPE dataset_type AS ENUM ('organise', 'test', 'train');-- ALTER TYPE dataset_type ADD VALUE 'miscellaneous';-- Dataset Table-- Add type column to the dataset table, so that I do not ever mix testing data with training data.CREATE TABLE dataset (id VARCHAR(12) PRIMARY KEY, -- nanoid(12)name VARCHAR(255) NOT NULL,description VARCHAR(255),created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,type dataset_type NOT NULL DEFAULT 'organise');-- Not implemented but desirable, used uniqe index instead-- ALTER TABLE dataset ADD CONSTRAINT uq_dataset_name UNIQUE (name);-- Not implemented Error:-- No support for that ALTER TABLE option yet!CREATE UNIQUE INDEX idx_dataset_name ON dataset(name);CREATE INDEX idx_dataset_active ON dataset(active);CREATE INDEX idx_dataset_public ON dataset(public);-- Locations TableCREATE TABLE location (id VARCHAR(12) PRIMARY KEY, -- nanoid(12)dataset_id VARCHAR(12) NOT NULL, -- nanoid, link to datasetname VARCHAR(140) NOT NULL,latitude DECIMAL(10, 7) NOT NULL CHECK (latitude BETWEEN -90.0 AND 90.0), -- -45.5027longitude DECIMAL(10, 7) NOT NULL CHECK (longitude BETWEEN -180.0 AND 180.0), -- 167.48406description VARCHAR(255), -- Limited to 255 characters for efficiencycreated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,timezone_id VARCHAR(40) NOT NULL, -- XXnot required as may need to auto generate cluster, can't always ask or checkFOREIGN KEY (dataset_id) REFERENCES dataset(id));-- N--ALTER TABLE location ADD CONSTRAINT uq_location_dataset_name UNIQUE (dataset_id, name);CREATE UNIQUE INDEX idx_location_dataset_name ON location(dataset_id, name);CREATE INDEX idx_location_name ON location(name);CREATE INDEX idx_location_dataset ON location(dataset_id); -- ??CREATE INDEX idx_location_active ON location(active); -- ??CREATE INDEX idx_location_dataset_active ON location(dataset_id, active);-- Add recording pattern, mainly so it can be searchable,-- this is an optional field, audio moth needs this, to help-- with searching and filtering-- i have 24/7: 1 in 30 and 1 in 40CREATE TABLE cyclic_recording_pattern (id VARCHAR(12) PRIMARY KEY, -- nanoid(12)record_s INTEGER NOT NULL,sleep_s INTEGER NOT NULL,created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,-- UNIQUE (record_s, sleep_s) -- not implemented as duckdb won't allow an alter table, should be though.);-- Could not do this as duckdb refuses, the unique index is meant to do it.-- Add unique constraint-- ALTER TABLE cyclic_recording_pattern-- ADD CONSTRAINT unique_record_sleep UNIQUE (record_s, sleep_s);CREATE INDEX idx_cyclic_recording_pattern_active ON cyclic_recording_pattern(active);-- Ensure no duplicate record/sleep combinationsCREATE UNIQUE INDEX idx_cyclic_recording_pattern_unique_combo ON cyclic_recording_pattern(record_s, sleep_s);-- Cluster Table (think of a cluster of files as all the files on 1 SD Card)-- a statistical unit with no major time gaps, to enable call rate stats-- See changes below, added foreign key on location, added recording pattern-- added timezone_id for iana timezone idCREATE TABLE cluster (id VARCHAR(12) PRIMARY KEY, -- nanoid(12)dataset_id VARCHAR(12) NOT NULL, -- nanoid, link to datasetlocation_id VARCHAR(12) NOT NULL, -- A cluster must have a location, as well as a datasetname VARCHAR(140) NOT NULL,description VARCHAR(255), -- Limited to 255 characters for efficiencycreated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,cyclic_recording_pattern_id VARCHAR(12),sample_rate INTEGER NOT NULL,path VARCHAR(255) NULL, -- optional hint for local accessFOREIGN KEY (dataset_id) REFERENCES dataset(id),FOREIGN KEY (location_id) REFERENCES location(id),FOREIGN KEY (cyclic_recording_pattern_id) REFERENCES cyclic_recording_pattern(id));-- Not implemented but desirable, using unique index instead-- ALTER TABLE cluster ADD CONSTRAINT uq_cluster_location_name UNIQUE (location_id, name);CREATE UNIQUE INDEX idx_cluster_location_name ON cluster(location_id, name);CREATE INDEX idx_cluster_dataset ON cluster(dataset_id);CREATE INDEX idx_cluster_active ON cluster(active);CREATE INDEX idx_cluster_dataset_active ON cluster(dataset_id, active);CREATE INDEX idx_cluster_recording_pattern ON cluster(cyclic_recording_pattern_id);CREATE INDEX idx_cluster_location_id ON cluster(location_id);-- values in my data is medium and medium-highCREATE TYPE gain_level AS ENUM ('low', 'low-medium', 'medium', 'medium-high', 'high');-- Files Table (removed dataset_id as now use junction table)-- Note: timestamp_local should reflect local time, not timestamp in filename, this is important-- duration must not have more than 3 decimal places, check in uiCREATE TABLE file (id VARCHAR(21) PRIMARY KEY, -- nanoidfile_name VARCHAR(255) NOT NULL,xxh64_hash VARCHAR(16) NOT NULL, -- hash of original file cbe675a69a5fef1clocation_id VARCHAR(12) NOT NULL, -- nanoid, from locations tabletimestamp_local TIMESTAMP WITH TIME ZONE NOT NULL, -- parsed from filename, adjust for daylight savingcluster_id VARCHAR(12), -- nanoid(12), optional if imported one by oneduration DECIMAL(7, 3) NOT NULL CHECK (duration > 0), -- in seconds, allowing for millisecond precision (9999.999s)sample_rate INTEGER NOT NULL,description VARCHAR(255), -- Limited to 255 characters for efficiencymaybe_solar_night BOOLEAN, --calculate with function on client. this is a more accurate value to file tablemaybe_civil_night BOOLEAN, --calculate with function on client. this is a more accurate value to file tablemoon_phase DECIMAL(3,2) CHECK (moon_phase BETWEEN 0.00 AND 1.00), -- 0.00 to 1.00 (new moon to full moon)created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,FOREIGN KEY (location_id) REFERENCES location(id),FOREIGN KEY (cluster_id) REFERENCES cluster(id));CREATE INDEX idx_file_location ON file(location_id);CREATE INDEX idx_file_active ON file(active);CREATE INDEX idx_file_timestamp_local ON file(timestamp_local);CREATE INDEX idx_file_cluster ON file(cluster_id);CREATE INDEX idx_file_maybe_solar_night ON file(maybe_solar_night);CREATE INDEX idx_file_maybe_civil_night ON file(maybe_civil_night);-- ALTER TABLE file-- ALTER COLUMN location_id DROP NOT NULL;-- UNIMPLEMENTED-- Unique constraint on xxh64_hash to prevent duplicate file hashes-- ALTER TABLE file ADD CONSTRAINT unique_xxh64_hash UNIQUE (xxh64_hash);CREATE TABLE moth_metadata (file_id VARCHAR(21) PRIMARY KEY,timestamp TIMESTAMP WITH TIME ZONE NOT NULL,recorder_id VARCHAR(16), -- 24F31901603710CD (16)gain gain_level NULL, -- low, medium, high or nullbattery_v DECIMAL(2, 1) CHECK (battery_v >= 0), -- for values from 0 to 9.9temp_c DECIMAL(3, 1), -- e.g., 24.2created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,FOREIGN KEY (file_id) REFERENCES file(id));CREATE INDEX idx_moth_metadata_active ON moth_metadata(active);CREATE TABLE file_metadata (file_id VARCHAR(21) PRIMARY KEY,json JSON, -- For noise levels and other file-level metadatacreated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,FOREIGN KEY (file_id) REFERENCES file(id));-- CREATE INDEX idx_file_metadata_json ON file_metadata USING gin(json); -- unimplementedCREATE INDEX idx_file_metadata_active ON file_metadata(active);-- Junction Table for Files to Dataset (many-to-many)CREATE TABLE file_dataset (file_id VARCHAR(21) NOT NULL,dataset_id VARCHAR(12) NOT NULL,created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (file_id, dataset_id),FOREIGN KEY (file_id) REFERENCES file(id),FOREIGN KEY (dataset_id) REFERENCES dataset(id));-- indexes for the junction tableCREATE INDEX idx_file_dataset_file ON file_dataset(file_id);CREATE INDEX idx_file_dataset_dataset ON file_dataset(dataset_id);-- Selection TableCREATE TABLE selection(id VARCHAR(21) PRIMARY KEY, -- nanoidfile_id VARCHAR(21) NOT NULL, -- nanoiddataset_id VARCHAR(12) NOT NULL, -- nanoid, link to datasetstart_time DECIMAL(7,3) NOT NULL, --up to 9999.999 secondsend_time DECIMAL(7,3) NOT NULL, -- up to 9999.999 secondsfreq_low DECIMAL(9,3) CHECK (freq_low < 300000), -- LOOK AT CHECKfreq_high DECIMAL(9,3) CHECK (freq_high < 300000), -- LOOK AT CHECKdescription VARCHAR(255), -- Limited to 255 characters for efficiencycreated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,FOREIGN KEY (file_id) REFERENCES file(id),FOREIGN KEY (dataset_id) REFERENCES dataset(id));CREATE INDEX idx_selection_file ON selection(file_id);CREATE INDEX idx_selection_dataset ON selection(dataset_id);CREATE INDEX idx_selection_active ON selection(active);CREATE TABLE selection_metadata (selection_id VARCHAR(21) PRIMARY KEY,json JSON, -- for loudness, noise, and other selection-level metadaatacreated_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,FOREIGN KEY (selection_id) REFERENCES selection(id));-- CREATE INDEX idx_selection_metadata_json ON selection_metadata USING gin(json); -- unimplemensedCREATE INDEX idx_selection_metadata_active ON selection_metadata(active);-- eBird Taxonomy Table-- will need to update INDEX too when introducing a new version-- see working with ebird taxonomies, aichat, deepseek, macbook-- see materialised view and index on it-- see alter table stuff below, modificationsCREATE TABLE ebird_taxonomy (id VARCHAR(12) PRIMARY KEY,taxonomy_version VARCHAR(4) NOT NULL,taxon_order INTEGER NOT NULL,category VARCHAR(15) NOT NULL,species_code VARCHAR(15) NOT NULL,taxon_concept_id VARCHAR(15),primary_com_name VARCHAR(100) NOT NULL,sci_name VARCHAR(100) NOT NULL,bird_order VARCHAR(30),family VARCHAR(100),species_group VARCHAR(100),report_as VARCHAR(15),valid_from DATE NOT NULL,valid_to DATE,UNIQUE (species_code, taxonomy_version));-- Species Table (mutable)CREATE TABLE species (id VARCHAR(12) PRIMARY KEY, -- nanoid(12)label VARCHAR(100) NOT NULL, -- display label for the speciesebird_code VARCHAR(12), -- link to ebird taxonomytaxonomy_version VARCHAR(4),description VARCHAR(255),created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,FOREIGN KEY (ebird_code, taxonomy_version) REFERENCES ebird_taxonomy(species_code, taxonomy_version));CREATE INDEX idx_species_label ON species(label);CREATE INDEX idx_species_ebird ON species(ebird_code);-- Call Types Table (mutable)CREATE TABLE call_type (id VARCHAR(12) PRIMARY KEY, -- nanoid(12)species_id VARCHAR(12) NOT NULL, -- link to parent specieslabel VARCHAR(100) NOT NULL, -- display name like "male", "female", "duet"created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN DEFAULT TRUE,FOREIGN KEY (species_id) REFERENCES species(id));CREATE INDEX idx_call_type_species ON call_type(species_id);CREATE INDEX idx_call_type_label ON call_type(label);CREATE TABLE filter (id VARCHAR(12) PRIMARY KEY, -- nanoidname VARCHAR(140) NOT NULL,description VARCHAR(255),created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN NOT NULL DEFAULT true);-- Label Table, many to 1 relationship withCREATE TABLE label (id VARCHAR(21) PRIMARY KEY, -- nanoidselection_id VARCHAR(21) NOT NULL, -- link to selection tablespecies_id VARCHAR(12) NOT NULL, -- link to species tablefilter_id VARCHAR(12),certainty DECIMAL(5,2) CHECK (certainty <= 100 AND certainty >= 0),created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN NOT NULL DEFAULT true,FOREIGN KEY (selection_id) REFERENCES selection(id),FOREIGN KEY (species_id) REFERENCES species(id),FOREIGN KEY (filter_id) REFERENCES filter(id));CREATE INDEX idx_label_selection_id ON label(selection_id);CREATE INDEX idx_label_species_id ON label(species_id);-- Label Sub-type Table (optional 1:1 relationship with label)CREATE TABLE label_subtype (id VARCHAR(21) PRIMARY KEY, -- nanoidlabel_id VARCHAR(21) NOT NULL, -- link to parent labelcalltype_id VARCHAR(12) NOT NULL, -- link to call_type tablefilter_id VARCHAR(12),certainty DECIMAL(5,2) CHECK (certainty <= 100 AND certainty >= 0),created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,active BOOLEAN NOT NULL DEFAULT true,FOREIGN KEY (label_id) REFERENCES label(id),FOREIGN KEY (calltype_id) REFERENCES call_type(id),FOREIGN KEY (filter_id) REFERENCES filter(id)-- UNIQUE (label_id) -- ensures 1:1 relationship with label. how do i handle multiple call type filters? needs 1:many relation);-- UNIMPLEMENTED-- file_dataset must exist first-- Referential Integrity for Selections-- To ensure `selections.dataset_id` is valid for the associated file:-- Add composite foreign key (requires file_dataset to exist first)-- ALTER TABLE selection ADD CONSTRAINT fk_selection_file_dataset-- FOREIGN KEY (file_id, dataset_id) REFERENCES file_dataset(file_id, dataset_id);-- 2024 Taxonomy View, after populating underlying table-- see working with ebird taxonomies, aichat, deepseek, macbook-- I think I still need this to display the options when someone creates a speciesCREATE TABLE ebird_taxonomy_v2024 ASSELECTid,species_code,primary_com_name,sci_name,bird_order, -- AS "order", order is reserved word in pgsqlfamilyFROM ebird_taxonomyWHERE taxonomy_version = '2024';-- to help with plain text search on common name and scientific nameCREATE INDEX idx_ebird_name_search ON ebird_taxonomy_v2024 USING gin(to_tsvector('english', primary_com_name || ' ' || sci_name));CREATE INDEX ebird_taxonomy_species_code ON ebird_taxonomy_v2024(species_code);-- Junction Table for Species to Dataset (many-to-many)CREATE TABLE species_dataset (species_id VARCHAR(12) NOT NULL,dataset_id VARCHAR(12) NOT NULL,created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (species_id, dataset_id),FOREIGN KEY (species_id) REFERENCES species(id),FOREIGN KEY (dataset_id) REFERENCES dataset(id));-- indexes for the junction tableCREATE INDEX idx_species_dataset_species ON species_dataset(species_id);CREATE INDEX idx_species_dataset_dataset ON species_dataset(dataset_id);
<svg width="5455pt" height="4960pt"viewBox="0.00 0.00 5455.18 4959.60" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 4955.6)">
<svg width="6222pt" height="3691pt"viewBox="0.00 0.00 6222.32 3691.05" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 3687.05)">
<ellipse fill="none" stroke="black" stroke-width="0" cx="1019.59" cy="-1394.95" rx="235.43" ry="172.57"/><polygon fill="#29235c" stroke="transparent" points="855.59,-1454.95 855.59,-1514.95 1184.59,-1514.95 1184.59,-1454.95 855.59,-1454.95"/><polygon fill="none" stroke="#29235c" points="855.59,-1454.95 855.59,-1514.95 1184.59,-1514.95 1184.59,-1454.95 855.59,-1454.95"/><text text-anchor="start" x="866.24" y="-1476.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       dataset_type       </text><polygon fill="#e7e2dd" stroke="transparent" points="855.59,-1394.95 855.59,-1454.95 1184.59,-1454.95 1184.59,-1394.95 855.59,-1394.95"/><polygon fill="none" stroke="#29235c" points="855.59,-1394.95 855.59,-1454.95 1184.59,-1454.95 1184.59,-1394.95 855.59,-1394.95"/><text text-anchor="start" x="923.17" y="-1416.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    organise    </text><polygon fill="#e7e2dd" stroke="transparent" points="855.59,-1334.95 855.59,-1394.95 1184.59,-1394.95 1184.59,-1334.95 855.59,-1334.95"/><polygon fill="none" stroke="#29235c" points="855.59,-1334.95 855.59,-1394.95 1184.59,-1394.95 1184.59,-1334.95 855.59,-1334.95"/><text text-anchor="start" x="958.73" y="-1356.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    test    </text><polygon fill="#e7e2dd" stroke="transparent" points="855.59,-1274.95 855.59,-1334.95 1184.59,-1334.95 1184.59,-1274.95 855.59,-1274.95"/><polygon fill="none" stroke="#29235c" points="855.59,-1274.95 855.59,-1334.95 1184.59,-1334.95 1184.59,-1274.95 855.59,-1274.95"/><text text-anchor="start" x="953.4" y="-1296.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    train    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="854.09,-1273.95 854.09,-1515.95 1185.09,-1515.95 1185.09,-1273.95 854.09,-1273.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1019.59" cy="-1148.65" rx="235.43" ry="214.92"/><polygon fill="#29235c" stroke="transparent" points="855.59,-1238.65 855.59,-1298.65 1184.59,-1298.65 1184.59,-1238.65 855.59,-1238.65"/><polygon fill="none" stroke="#29235c" points="855.59,-1238.65 855.59,-1298.65 1184.59,-1298.65 1184.59,-1238.65 855.59,-1238.65"/><text text-anchor="start" x="866.24" y="-1259.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       dataset_type       </text><polygon fill="#e7e2dd" stroke="transparent" points="855.59,-1178.65 855.59,-1238.65 1184.59,-1238.65 1184.59,-1178.65 855.59,-1178.65"/><polygon fill="none" stroke="#29235c" points="855.59,-1178.65 855.59,-1238.65 1184.59,-1238.65 1184.59,-1178.65 855.59,-1178.65"/><text text-anchor="start" x="913.39" y="-1199.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    structured    </text><polygon fill="#e7e2dd" stroke="transparent" points="855.59,-1118.65 855.59,-1178.65 1184.59,-1178.65 1184.59,-1118.65 855.59,-1118.65"/><polygon fill="none" stroke="#29235c" points="855.59,-1118.65 855.59,-1178.65 1184.59,-1178.65 1184.59,-1118.65 855.59,-1118.65"/><text text-anchor="start" x="895.6" y="-1139.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    unstructured    </text><polygon fill="#e7e2dd" stroke="transparent" points="855.59,-1058.65 855.59,-1118.65 1184.59,-1118.65 1184.59,-1058.65 855.59,-1058.65"/><polygon fill="none" stroke="#29235c" points="855.59,-1058.65 855.59,-1118.65 1184.59,-1118.65 1184.59,-1058.65 855.59,-1058.65"/><text text-anchor="start" x="958.73" y="-1079.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    test    </text><polygon fill="#e7e2dd" stroke="transparent" points="855.59,-998.65 855.59,-1058.65 1184.59,-1058.65 1184.59,-998.65 855.59,-998.65"/><polygon fill="none" stroke="#29235c" points="855.59,-998.65 855.59,-1058.65 1184.59,-1058.65 1184.59,-998.65 855.59,-998.65"/><text text-anchor="start" x="953.4" y="-1019.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    train    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="854.09,-997.65 854.09,-1299.65 1185.09,-1299.65 1185.09,-997.65 854.09,-997.65"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="4414.16" cy="-1348.95" rx="207.78" ry="257.27"/><polygon fill="#29235c" stroke="transparent" points="4269.16,-1468.95 4269.16,-1528.95 4559.16,-1528.95 4559.16,-1468.95 4269.16,-1468.95"/><polygon fill="none" stroke="#29235c" points="4269.16,-1468.95 4269.16,-1528.95 4559.16,-1528.95 4559.16,-1468.95 4269.16,-1468.95"/><text text-anchor="start" x="4279.89" y="-1490.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       gain_level       </text><polygon fill="#e7e2dd" stroke="transparent" points="4269.16,-1408.95 4269.16,-1468.95 4559.16,-1468.95 4559.16,-1408.95 4269.16,-1408.95"/><polygon fill="none" stroke="#29235c" points="4269.16,-1408.95 4269.16,-1468.95 4559.16,-1468.95 4559.16,-1408.95 4269.16,-1408.95"/><text text-anchor="start" x="4354.59" y="-1430.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    low    </text><polygon fill="#e7e2dd" stroke="transparent" points="4269.16,-1348.95 4269.16,-1408.95 4559.16,-1408.95 4559.16,-1348.95 4269.16,-1348.95"/><polygon fill="none" stroke="#29235c" points="4269.16,-1348.95 4269.16,-1408.95 4559.16,-1408.95 4559.16,-1348.95 4269.16,-1348.95"/><text text-anchor="start" x="4292.38" y="-1370.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    low-medium    </text><polygon fill="#e7e2dd" stroke="transparent" points="4269.16,-1288.95 4269.16,-1348.95 4559.16,-1348.95 4559.16,-1288.95 4269.16,-1288.95"/><polygon fill="none" stroke="#29235c" points="4269.16,-1288.95 4269.16,-1348.95 4559.16,-1348.95 4559.16,-1288.95 4269.16,-1288.95"/><text text-anchor="start" x="4321.7" y="-1310.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    medium    </text><polygon fill="#e7e2dd" stroke="transparent" points="4269.16,-1228.95 4269.16,-1288.95 4559.16,-1288.95 4559.16,-1228.95 4269.16,-1228.95"/><polygon fill="none" stroke="#29235c" points="4269.16,-1228.95 4269.16,-1288.95 4559.16,-1288.95 4559.16,-1228.95 4269.16,-1228.95"/><text text-anchor="start" x="4286.14" y="-1250.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    medium-high    </text><polygon fill="#e7e2dd" stroke="transparent" points="4269.16,-1168.95 4269.16,-1228.95 4559.16,-1228.95 4559.16,-1168.95 4269.16,-1168.95"/><polygon fill="none" stroke="#29235c" points="4269.16,-1168.95 4269.16,-1228.95 4559.16,-1228.95 4559.16,-1168.95 4269.16,-1168.95"/><text text-anchor="start" x="4348.35" y="-1190.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    high    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4268.16,-1167.95 4268.16,-1529.95 4560.16,-1529.95 4560.16,-1167.95 4268.16,-1167.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="4428.3" cy="-2117.65" rx="207.78" ry="257.27"/><polygon fill="#29235c" stroke="transparent" points="4283.3,-2237.65 4283.3,-2297.65 4573.3,-2297.65 4573.3,-2237.65 4283.3,-2237.65"/><polygon fill="none" stroke="#29235c" points="4283.3,-2237.65 4283.3,-2297.65 4573.3,-2297.65 4573.3,-2237.65 4283.3,-2237.65"/><text text-anchor="start" x="4294.03" y="-2258.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       gain_level       </text><polygon fill="#e7e2dd" stroke="transparent" points="4283.3,-2177.65 4283.3,-2237.65 4573.3,-2237.65 4573.3,-2177.65 4283.3,-2177.65"/><polygon fill="none" stroke="#29235c" points="4283.3,-2177.65 4283.3,-2237.65 4573.3,-2237.65 4573.3,-2177.65 4283.3,-2177.65"/><text text-anchor="start" x="4368.73" y="-2198.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    low    </text><polygon fill="#e7e2dd" stroke="transparent" points="4283.3,-2117.65 4283.3,-2177.65 4573.3,-2177.65 4573.3,-2117.65 4283.3,-2117.65"/><polygon fill="none" stroke="#29235c" points="4283.3,-2117.65 4283.3,-2177.65 4573.3,-2177.65 4573.3,-2117.65 4283.3,-2117.65"/><text text-anchor="start" x="4306.52" y="-2138.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    low-medium    </text><polygon fill="#e7e2dd" stroke="transparent" points="4283.3,-2057.65 4283.3,-2117.65 4573.3,-2117.65 4573.3,-2057.65 4283.3,-2057.65"/><polygon fill="none" stroke="#29235c" points="4283.3,-2057.65 4283.3,-2117.65 4573.3,-2117.65 4573.3,-2057.65 4283.3,-2057.65"/><text text-anchor="start" x="4335.84" y="-2078.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    medium    </text><polygon fill="#e7e2dd" stroke="transparent" points="4283.3,-1997.65 4283.3,-2057.65 4573.3,-2057.65 4573.3,-1997.65 4283.3,-1997.65"/><polygon fill="none" stroke="#29235c" points="4283.3,-1997.65 4283.3,-2057.65 4573.3,-2057.65 4573.3,-1997.65 4283.3,-1997.65"/><text text-anchor="start" x="4300.28" y="-2018.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    medium-high    </text><polygon fill="#e7e2dd" stroke="transparent" points="4283.3,-1937.65 4283.3,-1997.65 4573.3,-1997.65 4573.3,-1937.65 4283.3,-1937.65"/><polygon fill="none" stroke="#29235c" points="4283.3,-1937.65 4283.3,-1997.65 4573.3,-1997.65 4573.3,-1937.65 4283.3,-1937.65"/><text text-anchor="start" x="4362.49" y="-1958.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    high    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4282.3,-1936.65 4282.3,-2298.65 4574.3,-2298.65 4574.3,-1936.65 4282.3,-1936.65"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="316.08" cy="-3074.95" rx="316.15" ry="342.48"/><polygon fill="#1d71b8" stroke="transparent" points="95.08,-3254.95 95.08,-3314.95 538.08,-3314.95 538.08,-3254.95 95.08,-3254.95"/><polygon fill="none" stroke="#29235c" points="95.08,-3254.95 95.08,-3314.95 538.08,-3314.95 538.08,-3254.95 95.08,-3254.95"/><text text-anchor="start" x="201.86" y="-3276.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       dataset       </text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3194.95 95.08,-3254.95 538.08,-3254.95 538.08,-3194.95 95.08,-3194.95"/><polygon fill="none" stroke="#29235c" points="95.08,-3194.95 95.08,-3254.95 538.08,-3254.95 538.08,-3194.95 95.08,-3194.95"/><text text-anchor="start" x="106.08" y="-3216.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="130.97" y="-3216.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="313.77" y="-3216.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3134.95 95.08,-3194.95 538.08,-3194.95 538.08,-3134.95 95.08,-3134.95"/><polygon fill="none" stroke="#29235c" points="95.08,-3134.95 95.08,-3194.95 538.08,-3194.95 538.08,-3134.95 95.08,-3134.95"/><text text-anchor="start" x="106.08" y="-3155.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name    </text><text text-anchor="start" x="256.89" y="-3156.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><text text-anchor="start" x="487.99" y="-3156.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="496.88" y="-3156.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3074.95 95.08,-3134.95 538.08,-3134.95 538.08,-3074.95 95.08,-3074.95"/><polygon fill="none" stroke="#29235c" points="95.08,-3074.95 95.08,-3134.95 538.08,-3134.95 538.08,-3074.95 95.08,-3074.95"/><text text-anchor="start" x="105.95" y="-3095.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="296.03" y="-3096.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3014.95 95.08,-3074.95 538.08,-3074.95 538.08,-3014.95 95.08,-3014.95"/><polygon fill="none" stroke="#29235c" points="95.08,-3014.95 95.08,-3074.95 538.08,-3074.95 538.08,-3014.95 95.08,-3014.95"/><text text-anchor="start" x="106.08" y="-3035.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="340.42" y="-3036.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-2954.95 95.08,-3014.95 538.08,-3014.95 538.08,-2954.95 95.08,-2954.95"/><polygon fill="none" stroke="#29235c" points="95.08,-2954.95 95.08,-3014.95 538.08,-3014.95 538.08,-2954.95 95.08,-2954.95"/><text text-anchor="start" x="106.08" y="-2975.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="340.42" y="-2976.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-2894.95 95.08,-2954.95 538.08,-2954.95 538.08,-2894.95 95.08,-2894.95"/><polygon fill="none" stroke="#29235c" points="95.08,-2894.95 95.08,-2954.95 538.08,-2954.95 538.08,-2894.95 95.08,-2894.95"/><text text-anchor="start" x="106.08" y="-2915.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="372.38" y="-2916.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-2834.95 95.08,-2894.95 538.08,-2894.95 538.08,-2834.95 95.08,-2834.95"/><polygon fill="none" stroke="#29235c" points="95.08,-2834.95 95.08,-2894.95 538.08,-2894.95 538.08,-2834.95 95.08,-2834.95"/><text text-anchor="start" x="106.08" y="-2855.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">type    </text><text text-anchor="start" x="304.79" y="-2856.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">dataset_type</text><text text-anchor="start" x="487.99" y="-2856.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="496.88" y="-2856.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="93.58,-2833.95 93.58,-3315.95 538.58,-3315.95 538.58,-2833.95 93.58,-2833.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="316.08" cy="-3232.65" rx="316.15" ry="342.48"/><polygon fill="#1d71b8" stroke="transparent" points="95.08,-3412.65 95.08,-3472.65 538.08,-3472.65 538.08,-3412.65 95.08,-3412.65"/><polygon fill="none" stroke="#29235c" points="95.08,-3412.65 95.08,-3472.65 538.08,-3472.65 538.08,-3412.65 95.08,-3412.65"/><text text-anchor="start" x="201.86" y="-3433.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       dataset       </text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3352.65 95.08,-3412.65 538.08,-3412.65 538.08,-3352.65 95.08,-3352.65"/><polygon fill="none" stroke="#29235c" points="95.08,-3352.65 95.08,-3412.65 538.08,-3412.65 538.08,-3352.65 95.08,-3352.65"/><text text-anchor="start" x="106.08" y="-3373.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="130.97" y="-3373.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="313.77" y="-3373.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3292.65 95.08,-3352.65 538.08,-3352.65 538.08,-3292.65 95.08,-3292.65"/><polygon fill="none" stroke="#29235c" points="95.08,-3292.65 95.08,-3352.65 538.08,-3352.65 538.08,-3292.65 95.08,-3292.65"/><text text-anchor="start" x="106.08" y="-3312.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name    </text><text text-anchor="start" x="256.89" y="-3313.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><text text-anchor="start" x="487.99" y="-3313.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="496.88" y="-3313.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3232.65 95.08,-3292.65 538.08,-3292.65 538.08,-3232.65 95.08,-3232.65"/><polygon fill="none" stroke="#29235c" points="95.08,-3232.65 95.08,-3292.65 538.08,-3292.65 538.08,-3232.65 95.08,-3232.65"/><text text-anchor="start" x="105.95" y="-3252.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="296.03" y="-3253.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3172.65 95.08,-3232.65 538.08,-3232.65 538.08,-3172.65 95.08,-3172.65"/><polygon fill="none" stroke="#29235c" points="95.08,-3172.65 95.08,-3232.65 538.08,-3232.65 538.08,-3172.65 95.08,-3172.65"/><text text-anchor="start" x="106.08" y="-3192.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="340.42" y="-3193.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3112.65 95.08,-3172.65 538.08,-3172.65 538.08,-3112.65 95.08,-3112.65"/><polygon fill="none" stroke="#29235c" points="95.08,-3112.65 95.08,-3172.65 538.08,-3172.65 538.08,-3112.65 95.08,-3112.65"/><text text-anchor="start" x="106.08" y="-3132.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="340.42" y="-3133.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-3052.65 95.08,-3112.65 538.08,-3112.65 538.08,-3052.65 95.08,-3052.65"/><polygon fill="none" stroke="#29235c" points="95.08,-3052.65 95.08,-3112.65 538.08,-3112.65 538.08,-3052.65 95.08,-3052.65"/><text text-anchor="start" x="106.08" y="-3072.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="372.38" y="-3073.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="95.08,-2992.65 95.08,-3052.65 538.08,-3052.65 538.08,-2992.65 95.08,-2992.65"/><polygon fill="none" stroke="#29235c" points="95.08,-2992.65 95.08,-3052.65 538.08,-3052.65 538.08,-2992.65 95.08,-2992.65"/><text text-anchor="start" x="106.08" y="-3012.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">type    </text><text text-anchor="start" x="304.79" y="-3013.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">dataset_type</text><text text-anchor="start" x="487.99" y="-3013.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="496.88" y="-3013.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="93.58,-2991.65 93.58,-3473.65 538.58,-3473.65 538.58,-2991.65 93.58,-2991.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-2864.95C825.63,-2864.95 507.38,-1819.15 668.15,-1581.95 720.56,-1504.63 761.18,-1484.95 854.59,-1484.95"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3022.65C722.42,-3022.65 570.76,-1532.98 668.15,-1377.65 719.14,-1296.33 758.6,-1268.65 854.59,-1268.65"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1019.59" cy="-2786.95" rx="343.81" ry="469.54"/><polygon fill="#1d71b8" stroke="transparent" points="778.59,-3056.95 778.59,-3116.95 1260.59,-3116.95 1260.59,-3056.95 778.59,-3056.95"/><polygon fill="none" stroke="#29235c" points="778.59,-3056.95 778.59,-3116.95 1260.59,-3116.95 1260.59,-3056.95 778.59,-3056.95"/><text text-anchor="start" x="902.21" y="-3078.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       location       </text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2996.95 778.59,-3056.95 1260.59,-3056.95 1260.59,-2996.95 778.59,-2996.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2996.95 778.59,-3056.95 1260.59,-3056.95 1260.59,-2996.95 778.59,-2996.95"/><text text-anchor="start" x="789.59" y="-3018.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="814.48" y="-3018.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="1036.28" y="-3018.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2936.95 778.59,-2996.95 1260.59,-2996.95 1260.59,-2936.95 778.59,-2936.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2936.95 778.59,-2996.95 1260.59,-2996.95 1260.59,-2936.95 778.59,-2936.95"/><text text-anchor="start" x="789.59" y="-2957.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">dataset_id    </text><text text-anchor="start" x="997.19" y="-2958.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="1210.49" y="-2958.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.39" y="-2958.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2876.95 778.59,-2936.95 1260.59,-2936.95 1260.59,-2876.95 778.59,-2876.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2876.95 778.59,-2936.95 1260.59,-2936.95 1260.59,-2876.95 778.59,-2876.95"/><text text-anchor="start" x="789.59" y="-2897.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name    </text><text text-anchor="start" x="979.4" y="-2898.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(140)</text><text text-anchor="start" x="1210.49" y="-2898.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.39" y="-2898.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2816.95 778.59,-2876.95 1260.59,-2876.95 1260.59,-2816.95 778.59,-2816.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2816.95 778.59,-2876.95 1260.59,-2876.95 1260.59,-2816.95 778.59,-2816.95"/><text text-anchor="start" x="789.59" y="-2837.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">latitude    </text><text text-anchor="start" x="984.71" y="-2838.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(10,7)</text><text text-anchor="start" x="1210.49" y="-2838.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.39" y="-2838.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2756.95 778.59,-2816.95 1260.59,-2816.95 1260.59,-2756.95 778.59,-2756.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2756.95 778.59,-2816.95 1260.59,-2816.95 1260.59,-2756.95 778.59,-2756.95"/><text text-anchor="start" x="789.59" y="-2777.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">longitude    </text><text text-anchor="start" x="984.71" y="-2778.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(10,7)</text><text text-anchor="start" x="1210.49" y="-2778.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.39" y="-2778.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2696.95 778.59,-2756.95 1260.59,-2756.95 1260.59,-2696.95 778.59,-2696.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2696.95 778.59,-2756.95 1260.59,-2756.95 1260.59,-2696.95 778.59,-2696.95"/><text text-anchor="start" x="789.59" y="-2717.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="1018.49" y="-2718.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2636.95 778.59,-2696.95 1260.59,-2696.95 1260.59,-2636.95 778.59,-2636.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2636.95 778.59,-2696.95 1260.59,-2696.95 1260.59,-2636.95 778.59,-2636.95"/><text text-anchor="start" x="789.59" y="-2657.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="1062.93" y="-2658.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2576.95 778.59,-2636.95 1260.59,-2636.95 1260.59,-2576.95 778.59,-2576.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2576.95 778.59,-2636.95 1260.59,-2636.95 1260.59,-2576.95 778.59,-2576.95"/><text text-anchor="start" x="789.59" y="-2597.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="1062.93" y="-2598.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2516.95 778.59,-2576.95 1260.59,-2576.95 1260.59,-2516.95 778.59,-2516.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2516.95 778.59,-2576.95 1260.59,-2576.95 1260.59,-2516.95 778.59,-2516.95"/><text text-anchor="start" x="789.59" y="-2537.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="1094.89" y="-2538.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2456.95 778.59,-2516.95 1260.59,-2516.95 1260.59,-2456.95 778.59,-2456.95"/><polygon fill="none" stroke="#29235c" points="778.59,-2456.95 778.59,-2516.95 1260.59,-2516.95 1260.59,-2456.95 778.59,-2456.95"/><text text-anchor="start" x="789.56" y="-2477.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">timezone_id    </text><text text-anchor="start" x="997.39" y="-2478.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(40)</text><text text-anchor="start" x="1210.69" y="-2478.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.59" y="-2478.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="777.59,-2455.95 777.59,-3117.95 1261.59,-3117.95 1261.59,-2455.95 777.59,-2455.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1019.59" cy="-2906.65" rx="343.81" ry="469.54"/><polygon fill="#1d71b8" stroke="transparent" points="778.59,-3176.65 778.59,-3236.65 1260.59,-3236.65 1260.59,-3176.65 778.59,-3176.65"/><polygon fill="none" stroke="#29235c" points="778.59,-3176.65 778.59,-3236.65 1260.59,-3236.65 1260.59,-3176.65 778.59,-3176.65"/><text text-anchor="start" x="902.21" y="-3197.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       location       </text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-3116.65 778.59,-3176.65 1260.59,-3176.65 1260.59,-3116.65 778.59,-3116.65"/><polygon fill="none" stroke="#29235c" points="778.59,-3116.65 778.59,-3176.65 1260.59,-3176.65 1260.59,-3116.65 778.59,-3116.65"/><text text-anchor="start" x="789.59" y="-3137.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="814.48" y="-3137.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="1036.28" y="-3137.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-3056.65 778.59,-3116.65 1260.59,-3116.65 1260.59,-3056.65 778.59,-3056.65"/><polygon fill="none" stroke="#29235c" points="778.59,-3056.65 778.59,-3116.65 1260.59,-3116.65 1260.59,-3056.65 778.59,-3056.65"/><text text-anchor="start" x="789.59" y="-3076.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">dataset_id    </text><text text-anchor="start" x="997.19" y="-3077.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="1210.49" y="-3077.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.39" y="-3077.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2996.65 778.59,-3056.65 1260.59,-3056.65 1260.59,-2996.65 778.59,-2996.65"/><polygon fill="none" stroke="#29235c" points="778.59,-2996.65 778.59,-3056.65 1260.59,-3056.65 1260.59,-2996.65 778.59,-2996.65"/><text text-anchor="start" x="789.59" y="-3016.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name    </text><text text-anchor="start" x="979.4" y="-3017.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(140)</text><text text-anchor="start" x="1210.49" y="-3017.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.39" y="-3017.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2936.65 778.59,-2996.65 1260.59,-2996.65 1260.59,-2936.65 778.59,-2936.65"/><polygon fill="none" stroke="#29235c" points="778.59,-2936.65 778.59,-2996.65 1260.59,-2996.65 1260.59,-2936.65 778.59,-2936.65"/><text text-anchor="start" x="789.59" y="-2956.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">latitude    </text><text text-anchor="start" x="984.71" y="-2957.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(10,7)</text><text text-anchor="start" x="1210.49" y="-2957.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.39" y="-2957.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2876.65 778.59,-2936.65 1260.59,-2936.65 1260.59,-2876.65 778.59,-2876.65"/><polygon fill="none" stroke="#29235c" points="778.59,-2876.65 778.59,-2936.65 1260.59,-2936.65 1260.59,-2876.65 778.59,-2876.65"/><text text-anchor="start" x="789.59" y="-2896.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">longitude    </text><text text-anchor="start" x="984.71" y="-2897.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(10,7)</text><text text-anchor="start" x="1210.49" y="-2897.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.39" y="-2897.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2816.65 778.59,-2876.65 1260.59,-2876.65 1260.59,-2816.65 778.59,-2816.65"/><polygon fill="none" stroke="#29235c" points="778.59,-2816.65 778.59,-2876.65 1260.59,-2876.65 1260.59,-2816.65 778.59,-2816.65"/><text text-anchor="start" x="789.59" y="-2836.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="1018.49" y="-2837.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2756.65 778.59,-2816.65 1260.59,-2816.65 1260.59,-2756.65 778.59,-2756.65"/><polygon fill="none" stroke="#29235c" points="778.59,-2756.65 778.59,-2816.65 1260.59,-2816.65 1260.59,-2756.65 778.59,-2756.65"/><text text-anchor="start" x="789.59" y="-2776.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="1062.93" y="-2777.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2696.65 778.59,-2756.65 1260.59,-2756.65 1260.59,-2696.65 778.59,-2696.65"/><polygon fill="none" stroke="#29235c" points="778.59,-2696.65 778.59,-2756.65 1260.59,-2756.65 1260.59,-2696.65 778.59,-2696.65"/><text text-anchor="start" x="789.59" y="-2716.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="1062.93" y="-2717.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2636.65 778.59,-2696.65 1260.59,-2696.65 1260.59,-2636.65 778.59,-2636.65"/><polygon fill="none" stroke="#29235c" points="778.59,-2636.65 778.59,-2696.65 1260.59,-2696.65 1260.59,-2636.65 778.59,-2636.65"/><text text-anchor="start" x="789.59" y="-2656.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="1094.89" y="-2657.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="778.59,-2576.65 778.59,-2636.65 1260.59,-2636.65 1260.59,-2576.65 778.59,-2576.65"/><polygon fill="none" stroke="#29235c" points="778.59,-2576.65 778.59,-2636.65 1260.59,-2636.65 1260.59,-2576.65 778.59,-2576.65"/><text text-anchor="start" x="789.56" y="-2596.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">timezone_id    </text><text text-anchor="start" x="997.39" y="-2597.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(40)</text><text text-anchor="start" x="1210.69" y="-2597.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1219.59" y="-2597.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="777.59,-2575.65 777.59,-3237.65 1261.59,-3237.65 1261.59,-2575.65 777.59,-2575.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3224.95C691.73,-3224.95 624.63,-2978.4 767.41,-2967.33"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="767.72,-2970.82 777.59,-2966.95 767.46,-2963.83 767.72,-2970.82"/><text text-anchor="middle" x="783.81" y="-2976.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="530.18" y="-3234.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3382.65C704.56,-3382.65 612.6,-3098.67 767.53,-3087.02"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="767.72,-3090.51 777.59,-3086.65 767.46,-3083.52 767.72,-3090.51"/><text text-anchor="middle" x="783.81" y="-3096.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="530.18" y="-3392.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1875.83" cy="-2508.95" rx="468.62" ry="511.89"/><polygon fill="#1d71b8" stroke="transparent" points="1546.83,-2808.95 1546.83,-2868.95 2205.83,-2868.95 2205.83,-2808.95 1546.83,-2808.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2808.95 1546.83,-2868.95 2205.83,-2868.95 2205.83,-2808.95 1546.83,-2808.95"/><text text-anchor="start" x="1766.97" y="-2830.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       cluster       </text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2748.95 1546.83,-2808.95 2205.83,-2808.95 2205.83,-2748.95 1546.83,-2748.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2748.95 1546.83,-2808.95 2205.83,-2808.95 2205.83,-2748.95 1546.83,-2748.95"/><text text-anchor="start" x="1557.83" y="-2770.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="1582.72" y="-2770.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="1981.52" y="-2770.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2688.95 1546.83,-2748.95 2205.83,-2748.95 2205.83,-2688.95 1546.83,-2688.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2688.95 1546.83,-2748.95 2205.83,-2748.95 2205.83,-2688.95 1546.83,-2688.95"/><text text-anchor="start" x="1557.83" y="-2709.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">dataset_id    </text><text text-anchor="start" x="1942.43" y="-2710.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="2155.74" y="-2710.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2164.63" y="-2710.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2628.95 1546.83,-2688.95 2205.83,-2688.95 2205.83,-2628.95 1546.83,-2628.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2628.95 1546.83,-2688.95 2205.83,-2688.95 2205.83,-2628.95 1546.83,-2628.95"/><text text-anchor="start" x="1557.83" y="-2649.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">location_id    </text><text text-anchor="start" x="1942.43" y="-2650.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="2155.74" y="-2650.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2164.63" y="-2650.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2568.95 1546.83,-2628.95 2205.83,-2628.95 2205.83,-2568.95 1546.83,-2568.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2568.95 1546.83,-2628.95 2205.83,-2628.95 2205.83,-2568.95 1546.83,-2568.95"/><text text-anchor="start" x="1557.83" y="-2589.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name    </text><text text-anchor="start" x="1924.64" y="-2590.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(140)</text><text text-anchor="start" x="2155.74" y="-2590.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2164.63" y="-2590.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2508.95 1546.83,-2568.95 2205.83,-2568.95 2205.83,-2508.95 1546.83,-2508.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2508.95 1546.83,-2568.95 2205.83,-2568.95 2205.83,-2508.95 1546.83,-2508.95"/><text text-anchor="start" x="1557.83" y="-2529.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="1963.73" y="-2530.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2448.95 1546.83,-2508.95 2205.83,-2508.95 2205.83,-2448.95 1546.83,-2448.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2448.95 1546.83,-2508.95 2205.83,-2508.95 2205.83,-2448.95 1546.83,-2448.95"/><text text-anchor="start" x="1557.83" y="-2469.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="2008.17" y="-2470.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2388.95 1546.83,-2448.95 2205.83,-2448.95 2205.83,-2388.95 1546.83,-2388.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2388.95 1546.83,-2448.95 2205.83,-2448.95 2205.83,-2388.95 1546.83,-2388.95"/><text text-anchor="start" x="1557.83" y="-2409.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="2008.17" y="-2410.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2328.95 1546.83,-2388.95 2205.83,-2388.95 2205.83,-2328.95 1546.83,-2328.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2328.95 1546.83,-2388.95 2205.83,-2388.95 2205.83,-2328.95 1546.83,-2328.95"/><text text-anchor="start" x="1557.83" y="-2349.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="2040.13" y="-2350.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2268.95 1546.83,-2328.95 2205.83,-2328.95 2205.83,-2268.95 1546.83,-2268.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2268.95 1546.83,-2328.95 2205.83,-2328.95 2205.83,-2268.95 1546.83,-2268.95"/><text text-anchor="start" x="1557.34" y="-2289.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">cyclic_recording_pattern_id    </text><text text-anchor="start" x="1981.67" y="-2290.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2208.95 1546.83,-2268.95 2205.83,-2268.95 2205.83,-2208.95 1546.83,-2208.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2208.95 1546.83,-2268.95 2205.83,-2268.95 2205.83,-2208.95 1546.83,-2208.95"/><text text-anchor="start" x="1557.83" y="-2229.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">sample_rate    </text><text text-anchor="start" x="2013.52" y="-2230.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="2155.74" y="-2230.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2164.63" y="-2230.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2148.95 1546.83,-2208.95 2205.83,-2208.95 2205.83,-2148.95 1546.83,-2148.95"/><polygon fill="none" stroke="#29235c" points="1546.83,-2148.95 1546.83,-2208.95 2205.83,-2208.95 2205.83,-2148.95 1546.83,-2148.95"/><text text-anchor="start" x="1557.83" y="-2169.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">path    </text><text text-anchor="start" x="1963.73" y="-2170.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="1545.33,-2147.95 1545.33,-2869.95 2206.33,-2869.95 2206.33,-2147.95 1545.33,-2147.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1875.83" cy="-2628.65" rx="468.62" ry="511.89"/><polygon fill="#1d71b8" stroke="transparent" points="1546.83,-2928.65 1546.83,-2988.65 2205.83,-2988.65 2205.83,-2928.65 1546.83,-2928.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2928.65 1546.83,-2988.65 2205.83,-2988.65 2205.83,-2928.65 1546.83,-2928.65"/><text text-anchor="start" x="1766.97" y="-2949.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       cluster       </text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2868.65 1546.83,-2928.65 2205.83,-2928.65 2205.83,-2868.65 1546.83,-2868.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2868.65 1546.83,-2928.65 2205.83,-2928.65 2205.83,-2868.65 1546.83,-2868.65"/><text text-anchor="start" x="1557.83" y="-2889.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="1582.72" y="-2889.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="1981.52" y="-2889.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2808.65 1546.83,-2868.65 2205.83,-2868.65 2205.83,-2808.65 1546.83,-2808.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2808.65 1546.83,-2868.65 2205.83,-2868.65 2205.83,-2808.65 1546.83,-2808.65"/><text text-anchor="start" x="1557.83" y="-2828.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">dataset_id    </text><text text-anchor="start" x="1942.43" y="-2829.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="2155.74" y="-2829.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2164.63" y="-2829.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2748.65 1546.83,-2808.65 2205.83,-2808.65 2205.83,-2748.65 1546.83,-2748.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2748.65 1546.83,-2808.65 2205.83,-2808.65 2205.83,-2748.65 1546.83,-2748.65"/><text text-anchor="start" x="1557.83" y="-2768.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">location_id    </text><text text-anchor="start" x="1942.43" y="-2769.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="2155.74" y="-2769.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2164.63" y="-2769.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2688.65 1546.83,-2748.65 2205.83,-2748.65 2205.83,-2688.65 1546.83,-2688.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2688.65 1546.83,-2748.65 2205.83,-2748.65 2205.83,-2688.65 1546.83,-2688.65"/><text text-anchor="start" x="1557.83" y="-2708.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name    </text><text text-anchor="start" x="1924.64" y="-2709.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(140)</text><text text-anchor="start" x="2155.74" y="-2709.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2164.63" y="-2709.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2628.65 1546.83,-2688.65 2205.83,-2688.65 2205.83,-2628.65 1546.83,-2628.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2628.65 1546.83,-2688.65 2205.83,-2688.65 2205.83,-2628.65 1546.83,-2628.65"/><text text-anchor="start" x="1557.83" y="-2648.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="1963.73" y="-2649.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2568.65 1546.83,-2628.65 2205.83,-2628.65 2205.83,-2568.65 1546.83,-2568.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2568.65 1546.83,-2628.65 2205.83,-2628.65 2205.83,-2568.65 1546.83,-2568.65"/><text text-anchor="start" x="1557.83" y="-2588.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="2008.17" y="-2589.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2508.65 1546.83,-2568.65 2205.83,-2568.65 2205.83,-2508.65 1546.83,-2508.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2508.65 1546.83,-2568.65 2205.83,-2568.65 2205.83,-2508.65 1546.83,-2508.65"/><text text-anchor="start" x="1557.83" y="-2528.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="2008.17" y="-2529.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2448.65 1546.83,-2508.65 2205.83,-2508.65 2205.83,-2448.65 1546.83,-2448.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2448.65 1546.83,-2508.65 2205.83,-2508.65 2205.83,-2448.65 1546.83,-2448.65"/><text text-anchor="start" x="1557.83" y="-2468.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="2040.13" y="-2469.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2388.65 1546.83,-2448.65 2205.83,-2448.65 2205.83,-2388.65 1546.83,-2388.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2388.65 1546.83,-2448.65 2205.83,-2448.65 2205.83,-2388.65 1546.83,-2388.65"/><text text-anchor="start" x="1557.34" y="-2408.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">cyclic_recording_pattern_id    </text><text text-anchor="start" x="1981.67" y="-2409.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2328.65 1546.83,-2388.65 2205.83,-2388.65 2205.83,-2328.65 1546.83,-2328.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2328.65 1546.83,-2388.65 2205.83,-2388.65 2205.83,-2328.65 1546.83,-2328.65"/><text text-anchor="start" x="1557.83" y="-2348.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">sample_rate    </text><text text-anchor="start" x="2013.52" y="-2349.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="2155.74" y="-2349.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2164.63" y="-2349.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="1546.83,-2268.65 1546.83,-2328.65 2205.83,-2328.65 2205.83,-2268.65 1546.83,-2268.65"/><polygon fill="none" stroke="#29235c" points="1546.83,-2268.65 1546.83,-2328.65 2205.83,-2328.65 2205.83,-2268.65 1546.83,-2268.65"/><text text-anchor="start" x="1557.83" y="-2288.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">path    </text><text text-anchor="start" x="1963.73" y="-2289.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="1545.33,-2267.65 1545.33,-2989.65 2206.33,-2989.65 2206.33,-2267.65 1545.33,-2267.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3224.95C710.12,-3224.95 542.24,-1806.71 668.15,-1690.95 725.64,-1638.09 1311.35,-1640.56 1371.02,-1690.95 1545.39,-1838.17 1321.09,-2692.52 1535.62,-2718.35"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1535.64,-2721.85 1545.83,-2718.95 1536.05,-2714.87 1535.64,-2721.85"/><text text-anchor="middle" x="1539.61" y="-2728.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="530.18" y="-3196.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3382.65C714.33,-3382.65 539.26,-1929.4 668.15,-1810.65 725.59,-1757.74 1311.35,-1760.27 1371.02,-1810.65 1545.39,-1957.88 1321.09,-2812.22 1535.62,-2838.05"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1535.64,-2841.56 1545.83,-2838.65 1536.05,-2834.57 1535.64,-2841.56"/><text text-anchor="middle" x="1539.61" y="-2848.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="547.97" y="-3392.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3661.15" cy="-3278.95" rx="325.95" ry="214.92"/><polygon fill="#1d71b8" stroke="transparent" points="3433.15,-3368.95 3433.15,-3428.95 3890.15,-3428.95 3890.15,-3368.95 3433.15,-3368.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-3368.95 3433.15,-3428.95 3890.15,-3428.95 3890.15,-3368.95 3433.15,-3368.95"/><text text-anchor="start" x="3517.59" y="-3390.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       file_dataset       </text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-3308.95 3433.15,-3368.95 3890.15,-3368.95 3890.15,-3308.95 3433.15,-3308.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-3308.95 3433.15,-3368.95 3890.15,-3368.95 3890.15,-3308.95 3433.15,-3308.95"/><text text-anchor="start" x="3444.15" y="-3330.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">file_id</text><text text-anchor="start" x="3527.71" y="-3330.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3626.75" y="-3330.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><text text-anchor="start" x="3840.06" y="-3330.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3848.95" y="-3330.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-3248.95 3433.15,-3308.95 3890.15,-3308.95 3890.15,-3248.95 3433.15,-3248.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-3248.95 3433.15,-3308.95 3890.15,-3308.95 3890.15,-3248.95 3433.15,-3248.95"/><text text-anchor="start" x="3444.05" y="-3270.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">dataset_id</text><text text-anchor="start" x="3591.67" y="-3270.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3626.95" y="-3270.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="3840.26" y="-3270.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3849.15" y="-3270.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-3188.95 3433.15,-3248.95 3890.15,-3248.95 3890.15,-3188.95 3433.15,-3188.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-3188.95 3433.15,-3248.95 3890.15,-3248.95 3890.15,-3188.95 3433.15,-3188.95"/><text text-anchor="start" x="3444.15" y="-3209.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="3692.49" y="-3210.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-3128.95 3433.15,-3188.95 3890.15,-3188.95 3890.15,-3128.95 3433.15,-3128.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-3128.95 3433.15,-3188.95 3890.15,-3188.95 3890.15,-3128.95 3433.15,-3128.95"/><text text-anchor="start" x="3444.15" y="-3149.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="3692.49" y="-3150.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3431.65,-3127.95 3431.65,-3429.95 3890.65,-3429.95 3890.65,-3127.95 3431.65,-3127.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3581.95" cy="-3157.65" rx="325.95" ry="257.27"/><polygon fill="#1d71b8" stroke="transparent" points="3353.95,-3277.65 3353.95,-3337.65 3810.95,-3337.65 3810.95,-3277.65 3353.95,-3277.65"/><polygon fill="none" stroke="#29235c" points="3353.95,-3277.65 3353.95,-3337.65 3810.95,-3337.65 3810.95,-3277.65 3353.95,-3277.65"/><text text-anchor="start" x="3438.4" y="-3298.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       file_dataset       </text><polygon fill="#e7e2dd" stroke="transparent" points="3353.95,-3217.65 3353.95,-3277.65 3810.95,-3277.65 3810.95,-3217.65 3353.95,-3217.65"/><polygon fill="none" stroke="#29235c" points="3353.95,-3217.65 3353.95,-3277.65 3810.95,-3277.65 3810.95,-3217.65 3353.95,-3217.65"/><text text-anchor="start" x="3364.95" y="-3238.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">file_id</text><text text-anchor="start" x="3448.51" y="-3238.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3547.55" y="-3238.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><text text-anchor="start" x="3760.86" y="-3238.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3769.75" y="-3238.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3353.95,-3157.65 3353.95,-3217.65 3810.95,-3217.65 3810.95,-3157.65 3353.95,-3157.65"/><polygon fill="none" stroke="#29235c" points="3353.95,-3157.65 3353.95,-3217.65 3810.95,-3217.65 3810.95,-3157.65 3353.95,-3157.65"/><text text-anchor="start" x="3364.86" y="-3178.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">dataset_id</text><text text-anchor="start" x="3512.48" y="-3178.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3547.75" y="-3178.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="3761.06" y="-3178.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3769.95" y="-3178.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3353.95,-3097.65 3353.95,-3157.65 3810.95,-3157.65 3810.95,-3097.65 3353.95,-3097.65"/><polygon fill="none" stroke="#29235c" points="3353.95,-3097.65 3353.95,-3157.65 3810.95,-3157.65 3810.95,-3097.65 3353.95,-3097.65"/><text text-anchor="start" x="3364.95" y="-3117.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="3613.29" y="-3118.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3353.95,-3037.65 3353.95,-3097.65 3810.95,-3097.65 3810.95,-3037.65 3353.95,-3037.65"/><polygon fill="none" stroke="#29235c" points="3353.95,-3037.65 3353.95,-3097.65 3810.95,-3097.65 3810.95,-3037.65 3353.95,-3037.65"/><text text-anchor="start" x="3364.95" y="-3057.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="3613.29" y="-3058.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3353.95,-2977.65 3353.95,-3037.65 3810.95,-3037.65 3810.95,-2977.65 3353.95,-2977.65"/><polygon fill="none" stroke="#29235c" points="3353.95,-2977.65 3353.95,-3037.65 3810.95,-3037.65 3810.95,-2977.65 3353.95,-2977.65"/><text text-anchor="start" x="3422.4" y="-2998.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    file_id, dataset_id    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3352.45,-2976.65 3352.45,-3338.65 3811.45,-3338.65 3811.45,-2976.65 3352.45,-2976.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3224.95C604.13,-3224.95 605.05,-3278.14 668.15,-3293.95 971.17,-3369.85 1058.64,-3295.08 1371.02,-3293.95 2283.74,-3290.62 2514.38,-3279.03 3422.11,-3278.95"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3422.15,-3282.45 3432.15,-3278.95 3422.15,-3275.45 3422.15,-3282.45"/><text text-anchor="middle" x="3425.93" y="-3288.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="547.97" y="-3234.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3382.65C718.98,-3382.65 535.97,-1890.69 668.15,-1768.65 1067.6,-1399.87 2473.92,-1255.85 3111.79,-1929.65 3185.25,-2007.25 3114.08,-2789.26 3147.79,-2890.65 3197.32,-3039.62 3192.75,-3181.43 3342.84,-3187.45"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3342.89,-3190.95 3352.95,-3187.65 3343.02,-3183.95 3342.89,-3190.95"/><text text-anchor="middle" x="3346.73" y="-3197.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="530.18" y="-3353.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3661.15" cy="-511.95" rx="325.95" ry="511.89"/><polygon fill="#1d71b8" stroke="transparent" points="3433.15,-811.95 3433.15,-871.95 3890.15,-871.95 3890.15,-811.95 3433.15,-811.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-811.95 3433.15,-871.95 3890.15,-871.95 3890.15,-811.95 3433.15,-811.95"/><text text-anchor="start" x="3536.27" y="-833.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       selection       </text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-751.95 3433.15,-811.95 3890.15,-811.95 3890.15,-751.95 3433.15,-751.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-751.95 3433.15,-811.95 3890.15,-811.95 3890.15,-751.95 3433.15,-751.95"/><text text-anchor="start" x="3444.15" y="-773.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="3469.04" y="-773.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3665.84" y="-773.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-691.95 3433.15,-751.95 3890.15,-751.95 3890.15,-691.95 3433.15,-691.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-691.95 3433.15,-751.95 3890.15,-751.95 3890.15,-691.95 3433.15,-691.95"/><text text-anchor="start" x="3444.15" y="-712.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">file_id    </text><text text-anchor="start" x="3626.75" y="-713.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><text text-anchor="start" x="3840.06" y="-713.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3848.95" y="-713.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-631.95 3433.15,-691.95 3890.15,-691.95 3890.15,-631.95 3433.15,-631.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-631.95 3433.15,-691.95 3890.15,-691.95 3890.15,-631.95 3433.15,-631.95"/><text text-anchor="start" x="3444.05" y="-652.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">dataset_id    </text><text text-anchor="start" x="3626.95" y="-653.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="3840.26" y="-653.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3849.15" y="-653.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-571.95 3433.15,-631.95 3890.15,-631.95 3890.15,-571.95 3433.15,-571.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-571.95 3433.15,-631.95 3890.15,-631.95 3890.15,-571.95 3433.15,-571.95"/><text text-anchor="start" x="3444.15" y="-592.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">start_time    </text><text text-anchor="start" x="3632.06" y="-593.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(7,3)</text><text text-anchor="start" x="3840.06" y="-593.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3848.95" y="-593.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-511.95 3433.15,-571.95 3890.15,-571.95 3890.15,-511.95 3433.15,-511.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-511.95 3433.15,-571.95 3890.15,-571.95 3890.15,-511.95 3433.15,-511.95"/><text text-anchor="start" x="3444.15" y="-532.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">end_time    </text><text text-anchor="start" x="3632.06" y="-533.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(7,3)</text><text text-anchor="start" x="3840.06" y="-533.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3848.95" y="-533.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-451.95 3433.15,-511.95 3890.15,-511.95 3890.15,-451.95 3433.15,-451.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-451.95 3433.15,-511.95 3890.15,-511.95 3890.15,-451.95 3433.15,-451.95"/><text text-anchor="start" x="3444.15" y="-472.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">freq_low    </text><text text-anchor="start" x="3671.16" y="-473.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(9,3)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-391.95 3433.15,-451.95 3890.15,-451.95 3890.15,-391.95 3433.15,-391.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-391.95 3433.15,-451.95 3890.15,-451.95 3890.15,-391.95 3433.15,-391.95"/><text text-anchor="start" x="3444.15" y="-412.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">freq_high    </text><text text-anchor="start" x="3671.16" y="-413.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(9,3)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-331.95 3433.15,-391.95 3890.15,-391.95 3890.15,-331.95 3433.15,-331.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-331.95 3433.15,-391.95 3890.15,-391.95 3890.15,-331.95 3433.15,-331.95"/><text text-anchor="start" x="3444.15" y="-352.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="3648.05" y="-353.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-271.95 3433.15,-331.95 3890.15,-331.95 3890.15,-271.95 3433.15,-271.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-271.95 3433.15,-331.95 3890.15,-331.95 3890.15,-271.95 3433.15,-271.95"/><text text-anchor="start" x="3444.15" y="-292.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="3692.49" y="-293.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-211.95 3433.15,-271.95 3890.15,-271.95 3890.15,-211.95 3433.15,-211.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-211.95 3433.15,-271.95 3890.15,-271.95 3890.15,-211.95 3433.15,-211.95"/><text text-anchor="start" x="3444.15" y="-232.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="3692.49" y="-233.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3433.15,-151.95 3433.15,-211.95 3890.15,-211.95 3890.15,-151.95 3433.15,-151.95"/><polygon fill="none" stroke="#29235c" points="3433.15,-151.95 3433.15,-211.95 3890.15,-211.95 3890.15,-151.95 3433.15,-151.95"/><text text-anchor="start" x="3444.15" y="-172.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="3724.45" y="-173.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3431.65,-150.95 3431.65,-872.95 3890.65,-872.95 3890.65,-150.95 3431.65,-150.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="4428.3" cy="-2947.65" rx="325.95" ry="554.24"/><polygon fill="#1d71b8" stroke="transparent" points="4200.3,-3277.65 4200.3,-3337.65 4657.3,-3337.65 4657.3,-3277.65 4200.3,-3277.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-3277.65 4200.3,-3337.65 4657.3,-3337.65 4657.3,-3277.65 4200.3,-3277.65"/><text text-anchor="start" x="4303.42" y="-3298.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       selection       </text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-3217.65 4200.3,-3277.65 4657.3,-3277.65 4657.3,-3217.65 4200.3,-3217.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-3217.65 4200.3,-3277.65 4657.3,-3277.65 4657.3,-3217.65 4200.3,-3217.65"/><text text-anchor="start" x="4211.3" y="-3238.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="4236.19" y="-3238.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="4432.99" y="-3238.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-3157.65 4200.3,-3217.65 4657.3,-3217.65 4657.3,-3157.65 4200.3,-3157.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-3157.65 4200.3,-3217.65 4657.3,-3217.65 4657.3,-3157.65 4200.3,-3157.65"/><text text-anchor="start" x="4211.3" y="-3177.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">file_id    </text><text text-anchor="start" x="4393.9" y="-3178.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><text text-anchor="start" x="4607.21" y="-3178.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4616.1" y="-3178.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-3097.65 4200.3,-3157.65 4657.3,-3157.65 4657.3,-3097.65 4200.3,-3097.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-3097.65 4200.3,-3157.65 4657.3,-3157.65 4657.3,-3097.65 4200.3,-3097.65"/><text text-anchor="start" x="4211.2" y="-3117.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">dataset_id    </text><text text-anchor="start" x="4394.1" y="-3118.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="4607.41" y="-3118.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4616.3" y="-3118.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-3037.65 4200.3,-3097.65 4657.3,-3097.65 4657.3,-3037.65 4200.3,-3037.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-3037.65 4200.3,-3097.65 4657.3,-3097.65 4657.3,-3037.65 4200.3,-3037.65"/><text text-anchor="start" x="4211.3" y="-3057.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">start_time    </text><text text-anchor="start" x="4399.21" y="-3058.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(7,3)</text><text text-anchor="start" x="4607.21" y="-3058.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4616.1" y="-3058.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-2977.65 4200.3,-3037.65 4657.3,-3037.65 4657.3,-2977.65 4200.3,-2977.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-2977.65 4200.3,-3037.65 4657.3,-3037.65 4657.3,-2977.65 4200.3,-2977.65"/><text text-anchor="start" x="4211.3" y="-2997.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">end_time    </text><text text-anchor="start" x="4399.21" y="-2998.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(7,3)</text><text text-anchor="start" x="4607.21" y="-2998.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4616.1" y="-2998.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-2917.65 4200.3,-2977.65 4657.3,-2977.65 4657.3,-2917.65 4200.3,-2917.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-2917.65 4200.3,-2977.65 4657.3,-2977.65 4657.3,-2917.65 4200.3,-2917.65"/><text text-anchor="start" x="4211.3" y="-2937.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">freq_low    </text><text text-anchor="start" x="4438.3" y="-2938.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(9,3)</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-2857.65 4200.3,-2917.65 4657.3,-2917.65 4657.3,-2857.65 4200.3,-2857.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-2857.65 4200.3,-2917.65 4657.3,-2917.65 4657.3,-2857.65 4200.3,-2857.65"/><text text-anchor="start" x="4211.3" y="-2877.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">freq_high    </text><text text-anchor="start" x="4438.3" y="-2878.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(9,3)</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-2797.65 4200.3,-2857.65 4657.3,-2857.65 4657.3,-2797.65 4200.3,-2797.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-2797.65 4200.3,-2857.65 4657.3,-2857.65 4657.3,-2797.65 4200.3,-2797.65"/><text text-anchor="start" x="4211.3" y="-2817.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="4415.2" y="-2818.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-2737.65 4200.3,-2797.65 4657.3,-2797.65 4657.3,-2737.65 4200.3,-2737.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-2737.65 4200.3,-2797.65 4657.3,-2797.65 4657.3,-2737.65 4200.3,-2737.65"/><text text-anchor="start" x="4211.3" y="-2757.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="4459.64" y="-2758.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-2677.65 4200.3,-2737.65 4657.3,-2737.65 4657.3,-2677.65 4200.3,-2677.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-2677.65 4200.3,-2737.65 4657.3,-2737.65 4657.3,-2677.65 4200.3,-2677.65"/><text text-anchor="start" x="4211.3" y="-2697.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="4459.64" y="-2698.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-2617.65 4200.3,-2677.65 4657.3,-2677.65 4657.3,-2617.65 4200.3,-2617.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-2617.65 4200.3,-2677.65 4657.3,-2677.65 4657.3,-2617.65 4200.3,-2617.65"/><text text-anchor="start" x="4211.3" y="-2637.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="4491.6" y="-2638.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="4200.3,-2557.65 4200.3,-2617.65 4657.3,-2617.65 4657.3,-2557.65 4200.3,-2557.65"/><polygon fill="none" stroke="#29235c" points="4200.3,-2557.65 4200.3,-2617.65 4657.3,-2617.65 4657.3,-2557.65 4200.3,-2557.65"/><text text-anchor="start" x="4268.74" y="-2578.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    file_id, dataset_id    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4198.8,-2556.65 4198.8,-3338.65 4657.8,-3338.65 4657.8,-2556.65 4198.8,-2556.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3224.95C718.87,-3224.95 539.12,-1737.15 668.15,-1611.95 724.27,-1557.49 1294.95,-1595.06 1371.02,-1576.95 2342.69,-1345.56 2429.3,-666.61 3421.9,-661.97"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3422.16,-665.47 3432.15,-661.95 3422.14,-658.47 3422.16,-665.47"/><text text-anchor="middle" x="3425.93" y="-633.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="547.97" y="-3196.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3382.65C750.01,-3382.65 517.58,-1636.36 668.15,-1488.65 763.98,-1394.65 1740.59,-1429.65 1874.83,-1429.65 1874.83,-1429.65 1874.83,-1429.65 2747.22,-1429.65 2888.24,-1429.65 3915.6,-1359.73 4016.12,-1458.65 4052.77,-1494.72 4046.11,-2332.58 4052.12,-2383.65 4071.4,-2547.6 4032.42,-3104.17 4189.19,-3126.93"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4189.07,-3130.43 4199.3,-3127.65 4189.57,-3123.45 4189.07,-3130.43"/><text text-anchor="middle" x="4193.08" y="-3137.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="547.97" y="-3353.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="4414.16" cy="-3533.95" rx="328.2" ry="214.92"/><polygon fill="#1d71b8" stroke="transparent" points="4184.16,-3623.95 4184.16,-3683.95 4644.16,-3683.95 4644.16,-3623.95 4184.16,-3623.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-3623.95 4184.16,-3683.95 4644.16,-3683.95 4644.16,-3623.95 4184.16,-3623.95"/><text text-anchor="start" x="4236.31" y="-3645.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       species_dataset       </text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-3563.95 4184.16,-3623.95 4644.16,-3623.95 4644.16,-3563.95 4184.16,-3563.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-3563.95 4184.16,-3623.95 4644.16,-3623.95 4644.16,-3563.95 4184.16,-3563.95"/><text text-anchor="start" x="4194.8" y="-3585.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">species_id</text><text text-anchor="start" x="4345.94" y="-3585.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="4380.96" y="-3585.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="4594.26" y="-3585.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4603.16" y="-3585.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-3503.95 4184.16,-3563.95 4644.16,-3563.95 4644.16,-3503.95 4184.16,-3503.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-3503.95 4184.16,-3563.95 4644.16,-3563.95 4644.16,-3503.95 4184.16,-3503.95"/><text text-anchor="start" x="4195.16" y="-3525.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">dataset_id</text><text text-anchor="start" x="4342.77" y="-3525.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="4380.76" y="-3525.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="4594.06" y="-3525.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4602.96" y="-3525.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-3443.95 4184.16,-3503.95 4644.16,-3503.95 4644.16,-3443.95 4184.16,-3443.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-3443.95 4184.16,-3503.95 4644.16,-3503.95 4644.16,-3443.95 4184.16,-3443.95"/><text text-anchor="start" x="4195.16" y="-3464.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="4446.5" y="-3465.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-3383.95 4184.16,-3443.95 4644.16,-3443.95 4644.16,-3383.95 4184.16,-3383.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-3383.95 4184.16,-3443.95 4644.16,-3443.95 4644.16,-3383.95 4184.16,-3383.95"/><text text-anchor="start" x="4195.16" y="-3404.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="4446.5" y="-3405.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4183.16,-3382.95 4183.16,-3684.95 4645.16,-3684.95 4645.16,-3382.95 4183.16,-3382.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="5181.3" cy="-2460.65" rx="328.2" ry="214.92"/><polygon fill="#1d71b8" stroke="transparent" points="4951.3,-2550.65 4951.3,-2610.65 5411.3,-2610.65 5411.3,-2550.65 4951.3,-2550.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-2550.65 4951.3,-2610.65 5411.3,-2610.65 5411.3,-2550.65 4951.3,-2550.65"/><text text-anchor="start" x="5003.46" y="-2571.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       species_dataset       </text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-2490.65 4951.3,-2550.65 5411.3,-2550.65 5411.3,-2490.65 4951.3,-2490.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-2490.65 4951.3,-2550.65 5411.3,-2550.65 5411.3,-2490.65 4951.3,-2490.65"/><text text-anchor="start" x="4961.95" y="-2511.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">species_id</text><text text-anchor="start" x="5113.09" y="-2511.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="5148.1" y="-2511.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="5361.41" y="-2511.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5370.31" y="-2511.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-2430.65 4951.3,-2490.65 5411.3,-2490.65 5411.3,-2430.65 4951.3,-2430.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-2430.65 4951.3,-2490.65 5411.3,-2490.65 5411.3,-2430.65 4951.3,-2430.65"/><text text-anchor="start" x="4962.3" y="-2451.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">dataset_id</text><text text-anchor="start" x="5109.92" y="-2451.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="5147.9" y="-2451.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="5361.21" y="-2451.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5370.11" y="-2451.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-2370.65 4951.3,-2430.65 5411.3,-2430.65 5411.3,-2370.65 4951.3,-2370.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-2370.65 4951.3,-2430.65 5411.3,-2430.65 5411.3,-2370.65 4951.3,-2370.65"/><text text-anchor="start" x="4962.3" y="-2390.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="5213.64" y="-2391.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-2310.65 4951.3,-2370.65 5411.3,-2370.65 5411.3,-2310.65 4951.3,-2310.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-2310.65 4951.3,-2370.65 5411.3,-2370.65 5411.3,-2310.65 4951.3,-2310.65"/><text text-anchor="start" x="4962.3" y="-2330.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="5213.64" y="-2331.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4950.3,-2309.65 4950.3,-2611.65 5412.3,-2611.65 5412.3,-2309.65 4950.3,-2309.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3224.95C611.37,-3224.95 600.52,-3298.39 668.15,-3323.95 804.46,-3375.45 3139.44,-3495.46 3284.97,-3502.95 3680.46,-3523.29 3782,-3533.77 4172.98,-3533.94"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4173.15,-3537.44 4183.16,-3533.95 4173.16,-3530.44 4173.15,-3537.44"/><text text-anchor="middle" x="4176.93" y="-3543.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="530.18" y="-3234.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M539.08,-3382.65C757.66,-3382.65 510.35,-1570.9 668.15,-1419.65 716.56,-1373.25 1807.77,-1391.65 1874.83,-1391.65 1874.83,-1391.65 1874.83,-1391.65 2747.22,-1391.65 2817.71,-1391.65 3964.39,-1357.76 4016.12,-1405.65 4082.91,-1467.49 3986.56,-1750.51 4052.12,-1813.65 4112.4,-1871.72 4744.04,-1793.74 4804.48,-1851.65 4866.52,-1911.1 4817.18,-2153.94 4840.48,-2236.65 4869.57,-2339.94 4841.37,-2453.1 4940.02,-2460.29"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4940.19,-2463.8 4950.3,-2460.65 4940.43,-2456.8 4940.19,-2463.8"/><text text-anchor="middle" x="4944.08" y="-2470.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="530.18" y="-3392.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1261.59,-3026.95C1464.82,-3026.95 1343.36,-2671.06 1535.81,-2659.25"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1535.94,-2662.74 1545.83,-2658.95 1535.73,-2655.75 1535.94,-2662.74"/><text text-anchor="middle" x="1539.61" y="-2668.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="1252.69" y="-3036.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1261.59,-3146.65C1464.82,-3146.65 1343.36,-2790.77 1535.81,-2778.95"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1535.94,-2782.45 1545.83,-2778.65 1535.73,-2775.45 1535.94,-2782.45"/><text text-anchor="middle" x="1539.61" y="-2788.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="1252.69" y="-3156.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2814.8" cy="-2488.95" rx="365.65" ry="681.8"/><polygon fill="#1d71b8" stroke="transparent" points="2558.8,-2908.95 2558.8,-2968.95 3071.8,-2968.95 3071.8,-2908.95 2558.8,-2908.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2908.95 2558.8,-2968.95 3071.8,-2968.95 3071.8,-2908.95 2558.8,-2908.95"/><text text-anchor="start" x="2732.61" y="-2930.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       file       </text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2848.95 2558.8,-2908.95 3071.8,-2908.95 3071.8,-2848.95 2558.8,-2848.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2848.95 2558.8,-2908.95 3071.8,-2908.95 3071.8,-2848.95 2558.8,-2848.95"/><text text-anchor="start" x="2569.8" y="-2870.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="2594.69" y="-2870.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="2847.5" y="-2870.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2788.95 2558.8,-2848.95 3071.8,-2848.95 3071.8,-2788.95 2558.8,-2788.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2788.95 2558.8,-2848.95 3071.8,-2848.95 3071.8,-2788.95 2558.8,-2788.95"/><text text-anchor="start" x="2569.8" y="-2809.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">file_name    </text><text text-anchor="start" x="2790.62" y="-2810.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><text text-anchor="start" x="3021.71" y="-2810.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3030.61" y="-2810.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2728.95 2558.8,-2788.95 3071.8,-2788.95 3071.8,-2728.95 2558.8,-2728.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2728.95 2558.8,-2788.95 3071.8,-2788.95 3071.8,-2728.95 2558.8,-2728.95"/><text text-anchor="start" x="2569.8" y="-2749.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">xxh64_hash    </text><text text-anchor="start" x="2808.4" y="-2750.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(16)</text><text text-anchor="start" x="3021.71" y="-2750.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3030.61" y="-2750.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2668.95 2558.8,-2728.95 3071.8,-2728.95 3071.8,-2668.95 2558.8,-2668.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2668.95 2558.8,-2728.95 3071.8,-2728.95 3071.8,-2668.95 2558.8,-2668.95"/><text text-anchor="start" x="2569.8" y="-2689.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">location_id    </text><text text-anchor="start" x="2808.4" y="-2690.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="3021.71" y="-2690.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3030.61" y="-2690.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2608.95 2558.8,-2668.95 3071.8,-2668.95 3071.8,-2608.95 2558.8,-2608.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2608.95 2558.8,-2668.95 3071.8,-2668.95 3071.8,-2608.95 2558.8,-2608.95"/><text text-anchor="start" x="2569.46" y="-2629.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">timestamp_local    </text><text text-anchor="start" x="2835.43" y="-2630.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><text text-anchor="start" x="3022.09" y="-2630.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3030.98" y="-2630.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2548.95 2558.8,-2608.95 3071.8,-2608.95 3071.8,-2548.95 2558.8,-2548.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2548.95 2558.8,-2608.95 3071.8,-2608.95 3071.8,-2548.95 2558.8,-2548.95"/><text text-anchor="start" x="2569.8" y="-2569.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">cluster_id    </text><text text-anchor="start" x="2847.5" y="-2570.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2488.95 2558.8,-2548.95 3071.8,-2548.95 3071.8,-2488.95 2558.8,-2488.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2488.95 2558.8,-2548.95 3071.8,-2548.95 3071.8,-2488.95 2558.8,-2488.95"/><text text-anchor="start" x="2569.8" y="-2509.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">duration    </text><text text-anchor="start" x="2813.72" y="-2510.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(7,3)</text><text text-anchor="start" x="3021.71" y="-2510.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3030.61" y="-2510.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2428.95 2558.8,-2488.95 3071.8,-2488.95 3071.8,-2428.95 2558.8,-2428.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2428.95 2558.8,-2488.95 3071.8,-2488.95 3071.8,-2428.95 2558.8,-2428.95"/><text text-anchor="start" x="2569.8" y="-2449.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">sample_rate    </text><text text-anchor="start" x="2879.5" y="-2450.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="3021.71" y="-2450.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3030.61" y="-2450.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2368.95 2558.8,-2428.95 3071.8,-2428.95 3071.8,-2368.95 2558.8,-2368.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2368.95 2558.8,-2428.95 3071.8,-2428.95 3071.8,-2368.95 2558.8,-2368.95"/><text text-anchor="start" x="2569.8" y="-2389.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="2829.71" y="-2390.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2308.95 2558.8,-2368.95 3071.8,-2368.95 3071.8,-2308.95 2558.8,-2308.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2308.95 2558.8,-2368.95 3071.8,-2368.95 3071.8,-2308.95 2558.8,-2308.95"/><text text-anchor="start" x="2569.8" y="-2329.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">maybe_solar_night    </text><text text-anchor="start" x="2906.11" y="-2330.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2248.95 2558.8,-2308.95 3071.8,-2308.95 3071.8,-2248.95 2558.8,-2248.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2248.95 2558.8,-2308.95 3071.8,-2308.95 3071.8,-2248.95 2558.8,-2248.95"/><text text-anchor="start" x="2569.8" y="-2269.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">maybe_civil_night    </text><text text-anchor="start" x="2906.11" y="-2270.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2188.95 2558.8,-2248.95 3071.8,-2248.95 3071.8,-2188.95 2558.8,-2188.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2188.95 2558.8,-2248.95 3071.8,-2248.95 3071.8,-2188.95 2558.8,-2188.95"/><text text-anchor="start" x="2569.8" y="-2209.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">moon_phase    </text><text text-anchor="start" x="2852.81" y="-2210.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(3,2)</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2128.95 2558.8,-2188.95 3071.8,-2188.95 3071.8,-2128.95 2558.8,-2128.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2128.95 2558.8,-2188.95 3071.8,-2188.95 3071.8,-2128.95 2558.8,-2128.95"/><text text-anchor="start" x="2569.8" y="-2149.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="2874.15" y="-2150.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2068.95 2558.8,-2128.95 3071.8,-2128.95 3071.8,-2068.95 2558.8,-2068.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2068.95 2558.8,-2128.95 3071.8,-2128.95 3071.8,-2068.95 2558.8,-2068.95"/><text text-anchor="start" x="2569.8" y="-2089.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="2874.15" y="-2090.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="2558.8,-2008.95 2558.8,-2068.95 3071.8,-2068.95 3071.8,-2008.95 2558.8,-2008.95"/><polygon fill="none" stroke="#29235c" points="2558.8,-2008.95 2558.8,-2068.95 3071.8,-2068.95 3071.8,-2008.95 2558.8,-2008.95"/><text text-anchor="start" x="2569.8" y="-2029.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="2906.11" y="-2030.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="2557.3,-2007.95 2557.3,-2969.95 3072.3,-2969.95 3072.3,-2007.95 2557.3,-2007.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2746.22" cy="-2620.65" rx="365.65" ry="681.8"/><polygon fill="#1d71b8" stroke="transparent" points="2490.22,-3040.65 2490.22,-3100.65 3003.22,-3100.65 3003.22,-3040.65 2490.22,-3040.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-3040.65 2490.22,-3100.65 3003.22,-3100.65 3003.22,-3040.65 2490.22,-3040.65"/><text text-anchor="start" x="2664.02" y="-3061.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       file       </text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2980.65 2490.22,-3040.65 3003.22,-3040.65 3003.22,-2980.65 2490.22,-2980.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2980.65 2490.22,-3040.65 3003.22,-3040.65 3003.22,-2980.65 2490.22,-2980.65"/><text text-anchor="start" x="2501.22" y="-3001.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="2526.11" y="-3001.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="2778.91" y="-3001.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2920.65 2490.22,-2980.65 3003.22,-2980.65 3003.22,-2920.65 2490.22,-2920.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2920.65 2490.22,-2980.65 3003.22,-2980.65 3003.22,-2920.65 2490.22,-2920.65"/><text text-anchor="start" x="2501.22" y="-2940.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">file_name    </text><text text-anchor="start" x="2722.03" y="-2941.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><text text-anchor="start" x="2953.12" y="-2941.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2962.02" y="-2941.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2860.65 2490.22,-2920.65 3003.22,-2920.65 3003.22,-2860.65 2490.22,-2860.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2860.65 2490.22,-2920.65 3003.22,-2920.65 3003.22,-2860.65 2490.22,-2860.65"/><text text-anchor="start" x="2501.22" y="-2880.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">xxh64_hash    </text><text text-anchor="start" x="2739.82" y="-2881.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(16)</text><text text-anchor="start" x="2953.12" y="-2881.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2962.02" y="-2881.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2800.65 2490.22,-2860.65 3003.22,-2860.65 3003.22,-2800.65 2490.22,-2800.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2800.65 2490.22,-2860.65 3003.22,-2860.65 3003.22,-2800.65 2490.22,-2800.65"/><text text-anchor="start" x="2501.22" y="-2820.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">location_id    </text><text text-anchor="start" x="2778.91" y="-2821.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2740.65 2490.22,-2800.65 3003.22,-2800.65 3003.22,-2740.65 2490.22,-2740.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2740.65 2490.22,-2800.65 3003.22,-2800.65 3003.22,-2740.65 2490.22,-2740.65"/><text text-anchor="start" x="2500.87" y="-2760.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">timestamp_local    </text><text text-anchor="start" x="2766.84" y="-2761.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><text text-anchor="start" x="2953.5" y="-2761.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2962.39" y="-2761.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2680.65 2490.22,-2740.65 3003.22,-2740.65 3003.22,-2680.65 2490.22,-2680.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2680.65 2490.22,-2740.65 3003.22,-2740.65 3003.22,-2680.65 2490.22,-2680.65"/><text text-anchor="start" x="2501.22" y="-2700.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">cluster_id    </text><text text-anchor="start" x="2778.91" y="-2701.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2620.65 2490.22,-2680.65 3003.22,-2680.65 3003.22,-2620.65 2490.22,-2620.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2620.65 2490.22,-2680.65 3003.22,-2680.65 3003.22,-2620.65 2490.22,-2620.65"/><text text-anchor="start" x="2501.22" y="-2640.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">duration    </text><text text-anchor="start" x="2745.13" y="-2641.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(7,3)</text><text text-anchor="start" x="2953.12" y="-2641.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2962.02" y="-2641.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2560.65 2490.22,-2620.65 3003.22,-2620.65 3003.22,-2560.65 2490.22,-2560.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2560.65 2490.22,-2620.65 3003.22,-2620.65 3003.22,-2560.65 2490.22,-2560.65"/><text text-anchor="start" x="2501.22" y="-2580.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">sample_rate    </text><text text-anchor="start" x="2810.91" y="-2581.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="2953.12" y="-2581.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="2962.02" y="-2581.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2500.65 2490.22,-2560.65 3003.22,-2560.65 3003.22,-2500.65 2490.22,-2500.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2500.65 2490.22,-2560.65 3003.22,-2560.65 3003.22,-2500.65 2490.22,-2500.65"/><text text-anchor="start" x="2501.22" y="-2520.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="2761.12" y="-2521.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2440.65 2490.22,-2500.65 3003.22,-2500.65 3003.22,-2440.65 2490.22,-2440.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2440.65 2490.22,-2500.65 3003.22,-2500.65 3003.22,-2440.65 2490.22,-2440.65"/><text text-anchor="start" x="2501.22" y="-2460.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">maybe_solar_night    </text><text text-anchor="start" x="2837.52" y="-2461.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2380.65 2490.22,-2440.65 3003.22,-2440.65 3003.22,-2380.65 2490.22,-2380.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2380.65 2490.22,-2440.65 3003.22,-2440.65 3003.22,-2380.65 2490.22,-2380.65"/><text text-anchor="start" x="2501.22" y="-2400.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">maybe_civil_night    </text><text text-anchor="start" x="2837.52" y="-2401.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2320.65 2490.22,-2380.65 3003.22,-2380.65 3003.22,-2320.65 2490.22,-2320.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2320.65 2490.22,-2380.65 3003.22,-2380.65 3003.22,-2320.65 2490.22,-2320.65"/><text text-anchor="start" x="2501.22" y="-2340.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">moon_phase    </text><text text-anchor="start" x="2784.22" y="-2341.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(3,2)</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2260.65 2490.22,-2320.65 3003.22,-2320.65 3003.22,-2260.65 2490.22,-2260.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2260.65 2490.22,-2320.65 3003.22,-2320.65 3003.22,-2260.65 2490.22,-2260.65"/><text text-anchor="start" x="2501.22" y="-2280.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="2805.56" y="-2281.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2200.65 2490.22,-2260.65 3003.22,-2260.65 3003.22,-2200.65 2490.22,-2200.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2200.65 2490.22,-2260.65 3003.22,-2260.65 3003.22,-2200.65 2490.22,-2200.65"/><text text-anchor="start" x="2501.22" y="-2220.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="2805.56" y="-2221.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="2490.22,-2140.65 2490.22,-2200.65 3003.22,-2200.65 3003.22,-2140.65 2490.22,-2140.65"/><polygon fill="none" stroke="#29235c" points="2490.22,-2140.65 2490.22,-2200.65 3003.22,-2200.65 3003.22,-2140.65 2490.22,-2140.65"/><text text-anchor="start" x="2501.22" y="-2160.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="2837.52" y="-2161.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="2488.72,-2139.65 2488.72,-3101.65 3003.72,-3101.65 3003.72,-2139.65 2488.72,-2139.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1261.59,-3026.95C1381.93,-3026.95 2238.99,-3087.57 2344.64,-3029.95 2495.1,-2947.88 2387.45,-2709.02 2547.4,-2699.25"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2547.91,-2702.74 2557.8,-2698.95 2547.71,-2695.74 2547.91,-2702.74"/><text text-anchor="middle" x="2551.58" y="-2708.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="1270.48" y="-3036.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1261.59,-3146.65C1381.93,-3146.65 2243.5,-3214.86 2344.64,-3149.65 2472.53,-3067.2 2339.79,-2841.12 2479.17,-2831"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2479.34,-2834.5 2489.22,-2830.65 2479.1,-2827.5 2479.34,-2834.5"/><text text-anchor="middle" x="2482.99" y="-2840.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="1270.48" y="-3156.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1019.59" cy="-1999.95" rx="351.36" ry="299.63"/><polygon fill="#1d71b8" stroke="transparent" points="773.59,-2149.95 773.59,-2209.95 1266.59,-2209.95 1266.59,-2149.95 773.59,-2149.95"/><polygon fill="none" stroke="#29235c" points="773.59,-2149.95 773.59,-2209.95 1266.59,-2209.95 1266.59,-2149.95 773.59,-2149.95"/><text text-anchor="start" x="784.47" y="-2171.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       cyclic_recording_pattern       </text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-2089.95 773.59,-2149.95 1266.59,-2149.95 1266.59,-2089.95 773.59,-2089.95"/><polygon fill="none" stroke="#29235c" points="773.59,-2089.95 773.59,-2149.95 1266.59,-2149.95 1266.59,-2089.95 773.59,-2089.95"/><text text-anchor="start" x="784.59" y="-2111.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="809.48" y="-2111.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="1042.28" y="-2111.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-2029.95 773.59,-2089.95 1266.59,-2089.95 1266.59,-2029.95 773.59,-2029.95"/><polygon fill="none" stroke="#29235c" points="773.59,-2029.95 773.59,-2089.95 1266.59,-2089.95 1266.59,-2029.95 773.59,-2029.95"/><text text-anchor="start" x="784.59" y="-2050.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">record_s    </text><text text-anchor="start" x="1074.28" y="-2051.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="1216.49" y="-2051.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1225.39" y="-2051.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-1969.95 773.59,-2029.95 1266.59,-2029.95 1266.59,-1969.95 773.59,-1969.95"/><polygon fill="none" stroke="#29235c" points="773.59,-1969.95 773.59,-2029.95 1266.59,-2029.95 1266.59,-1969.95 773.59,-1969.95"/><text text-anchor="start" x="784.59" y="-1990.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">sleep_s    </text><text text-anchor="start" x="1074.28" y="-1991.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="1216.49" y="-1991.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1225.39" y="-1991.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-1909.95 773.59,-1969.95 1266.59,-1969.95 1266.59,-1909.95 773.59,-1909.95"/><polygon fill="none" stroke="#29235c" points="773.59,-1909.95 773.59,-1969.95 1266.59,-1969.95 1266.59,-1909.95 773.59,-1909.95"/><text text-anchor="start" x="784.59" y="-1930.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="1068.93" y="-1931.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-1849.95 773.59,-1909.95 1266.59,-1909.95 1266.59,-1849.95 773.59,-1849.95"/><polygon fill="none" stroke="#29235c" points="773.59,-1849.95 773.59,-1909.95 1266.59,-1909.95 1266.59,-1849.95 773.59,-1849.95"/><text text-anchor="start" x="784.59" y="-1870.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="1068.93" y="-1871.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-1789.95 773.59,-1849.95 1266.59,-1849.95 1266.59,-1789.95 773.59,-1789.95"/><polygon fill="none" stroke="#29235c" points="773.59,-1789.95 773.59,-1849.95 1266.59,-1849.95 1266.59,-1789.95 773.59,-1789.95"/><text text-anchor="start" x="784.59" y="-1810.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="1100.89" y="-1811.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="772.09,-1788.95 772.09,-2210.95 1267.09,-2210.95 1267.09,-1788.95 772.09,-1788.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="1019.59" cy="-2119.65" rx="351.36" ry="299.63"/><polygon fill="#1d71b8" stroke="transparent" points="773.59,-2269.65 773.59,-2329.65 1266.59,-2329.65 1266.59,-2269.65 773.59,-2269.65"/><polygon fill="none" stroke="#29235c" points="773.59,-2269.65 773.59,-2329.65 1266.59,-2329.65 1266.59,-2269.65 773.59,-2269.65"/><text text-anchor="start" x="784.47" y="-2290.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       cyclic_recording_pattern       </text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-2209.65 773.59,-2269.65 1266.59,-2269.65 1266.59,-2209.65 773.59,-2209.65"/><polygon fill="none" stroke="#29235c" points="773.59,-2209.65 773.59,-2269.65 1266.59,-2269.65 1266.59,-2209.65 773.59,-2209.65"/><text text-anchor="start" x="784.59" y="-2230.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="809.48" y="-2230.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="1042.28" y="-2230.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-2149.65 773.59,-2209.65 1266.59,-2209.65 1266.59,-2149.65 773.59,-2149.65"/><polygon fill="none" stroke="#29235c" points="773.59,-2149.65 773.59,-2209.65 1266.59,-2209.65 1266.59,-2149.65 773.59,-2149.65"/><text text-anchor="start" x="784.59" y="-2169.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">record_s    </text><text text-anchor="start" x="1074.28" y="-2170.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="1216.49" y="-2170.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1225.39" y="-2170.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-2089.65 773.59,-2149.65 1266.59,-2149.65 1266.59,-2089.65 773.59,-2089.65"/><polygon fill="none" stroke="#29235c" points="773.59,-2089.65 773.59,-2149.65 1266.59,-2149.65 1266.59,-2089.65 773.59,-2089.65"/><text text-anchor="start" x="784.59" y="-2109.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">sleep_s    </text><text text-anchor="start" x="1074.28" y="-2110.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="1216.49" y="-2110.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="1225.39" y="-2110.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-2029.65 773.59,-2089.65 1266.59,-2089.65 1266.59,-2029.65 773.59,-2029.65"/><polygon fill="none" stroke="#29235c" points="773.59,-2029.65 773.59,-2089.65 1266.59,-2089.65 1266.59,-2029.65 773.59,-2029.65"/><text text-anchor="start" x="784.59" y="-2049.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="1068.93" y="-2050.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-1969.65 773.59,-2029.65 1266.59,-2029.65 1266.59,-1969.65 773.59,-1969.65"/><polygon fill="none" stroke="#29235c" points="773.59,-1969.65 773.59,-2029.65 1266.59,-2029.65 1266.59,-1969.65 773.59,-1969.65"/><text text-anchor="start" x="784.59" y="-1989.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="1068.93" y="-1990.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="773.59,-1909.65 773.59,-1969.65 1266.59,-1969.65 1266.59,-1909.65 773.59,-1909.65"/><polygon fill="none" stroke="#29235c" points="773.59,-1909.65 773.59,-1969.65 1266.59,-1969.65 1266.59,-1909.65 773.59,-1909.65"/><text text-anchor="start" x="784.59" y="-1929.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="1100.89" y="-1930.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="772.09,-1908.65 772.09,-2330.65 1267.09,-2330.65 1267.09,-1908.65 772.09,-1908.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1267.59,-2119.95C1411.18,-2119.95 1399.44,-2290.65 1535.75,-2298.65"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1535.73,-2302.16 1545.83,-2298.95 1535.93,-2295.16 1535.73,-2302.16"/><text text-anchor="middle" x="1539.61" y="-2308.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="1258.69" y="-2129.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M1267.59,-2239.65C1411.18,-2239.65 1399.44,-2410.36 1535.75,-2418.36"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="1535.73,-2421.86 1545.83,-2418.65 1535.93,-2414.86 1535.73,-2421.86"/><text text-anchor="middle" x="1539.61" y="-2428.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="1258.69" y="-2249.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2206.83,-2778.95C2382.95,-2778.95 2378.51,-2586.49 2547.75,-2579.16"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2547.88,-2582.66 2557.8,-2578.95 2547.73,-2575.66 2547.88,-2582.66"/><text text-anchor="middle" x="2551.58" y="-2588.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="2197.93" y="-2788.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M2206.83,-2898.65C2354.07,-2898.65 2339.25,-2719.36 2478.89,-2710.96"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="2479.32,-2714.44 2489.22,-2710.65 2479.12,-2707.45 2479.32,-2714.44"/><text text-anchor="middle" x="2482.99" y="-2720.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="2197.93" y="-2908.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3661.15" cy="-1468.95" rx="308.1" ry="427.19"/><polygon fill="#1d71b8" stroke="transparent" points="3445.15,-1708.95 3445.15,-1768.95 3877.15,-1768.95 3877.15,-1708.95 3445.15,-1708.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1708.95 3445.15,-1768.95 3877.15,-1768.95 3877.15,-1708.95 3445.15,-1708.95"/><text text-anchor="start" x="3487.75" y="-1730.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       moth_metadata       </text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-1648.95 3445.15,-1708.95 3877.15,-1708.95 3877.15,-1648.95 3445.15,-1648.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1648.95 3445.15,-1708.95 3877.15,-1708.95 3877.15,-1648.95 3445.15,-1648.95"/><text text-anchor="start" x="3456.15" y="-1670.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">file_id</text><text text-anchor="start" x="3539.71" y="-1670.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3652.84" y="-1670.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-1588.95 3445.15,-1648.95 3877.15,-1648.95 3877.15,-1588.95 3445.15,-1588.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1588.95 3445.15,-1648.95 3877.15,-1648.95 3877.15,-1588.95 3445.15,-1588.95"/><text text-anchor="start" x="3456.15" y="-1609.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">timestamp    </text><text text-anchor="start" x="3640.4" y="-1610.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><text text-anchor="start" x="3827.06" y="-1610.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3835.95" y="-1610.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-1528.95 3445.15,-1588.95 3877.15,-1588.95 3877.15,-1528.95 3445.15,-1528.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1528.95 3445.15,-1588.95 3877.15,-1588.95 3877.15,-1528.95 3445.15,-1528.95"/><text text-anchor="start" x="3455.97" y="-1549.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">recorder_id    </text><text text-anchor="start" x="3652.99" y="-1550.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(16)</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-1468.95 3445.15,-1528.95 3877.15,-1528.95 3877.15,-1468.95 3445.15,-1468.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1468.95 3445.15,-1528.95 3877.15,-1528.95 3877.15,-1468.95 3445.15,-1468.95"/><text text-anchor="start" x="3456.15" y="-1489.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">gain    </text><text text-anchor="start" x="3722.11" y="-1490.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">gain_level</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-1408.95 3445.15,-1468.95 3877.15,-1468.95 3877.15,-1408.95 3445.15,-1408.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1408.95 3445.15,-1468.95 3877.15,-1468.95 3877.15,-1408.95 3445.15,-1408.95"/><text text-anchor="start" x="3456.15" y="-1429.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">battery_v    </text><text text-anchor="start" x="3658.16" y="-1430.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(2,1)</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-1348.95 3445.15,-1408.95 3877.15,-1408.95 3877.15,-1348.95 3445.15,-1348.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1348.95 3445.15,-1408.95 3877.15,-1408.95 3877.15,-1348.95 3445.15,-1348.95"/><text text-anchor="start" x="3456.15" y="-1369.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">temp_c    </text><text text-anchor="start" x="3658.16" y="-1370.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(3,1)</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-1288.95 3445.15,-1348.95 3877.15,-1348.95 3877.15,-1288.95 3445.15,-1288.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1288.95 3445.15,-1348.95 3877.15,-1348.95 3877.15,-1288.95 3445.15,-1288.95"/><text text-anchor="start" x="3456.15" y="-1309.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="3679.49" y="-1310.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-1228.95 3445.15,-1288.95 3877.15,-1288.95 3877.15,-1228.95 3445.15,-1228.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1228.95 3445.15,-1288.95 3877.15,-1288.95 3877.15,-1228.95 3445.15,-1228.95"/><text text-anchor="start" x="3456.13" y="-1249.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="3679.82" y="-1250.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-1168.95 3445.15,-1228.95 3877.15,-1228.95 3877.15,-1168.95 3445.15,-1168.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-1168.95 3445.15,-1228.95 3877.15,-1228.95 3877.15,-1168.95 3445.15,-1168.95"/><text text-anchor="start" x="3456.15" y="-1189.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="3711.45" y="-1190.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3444.15,-1167.95 3444.15,-1769.95 3878.15,-1769.95 3878.15,-1167.95 3444.15,-1167.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3581.95" cy="-1922.65" rx="308.1" ry="427.19"/><polygon fill="#1d71b8" stroke="transparent" points="3365.95,-2162.65 3365.95,-2222.65 3797.95,-2222.65 3797.95,-2162.65 3365.95,-2162.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-2162.65 3365.95,-2222.65 3797.95,-2222.65 3797.95,-2162.65 3365.95,-2162.65"/><text text-anchor="start" x="3408.56" y="-2183.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       moth_metadata       </text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-2102.65 3365.95,-2162.65 3797.95,-2162.65 3797.95,-2102.65 3365.95,-2102.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-2102.65 3365.95,-2162.65 3797.95,-2162.65 3797.95,-2102.65 3365.95,-2102.65"/><text text-anchor="start" x="3376.95" y="-2123.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">file_id</text><text text-anchor="start" x="3460.51" y="-2123.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3573.64" y="-2123.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-2042.65 3365.95,-2102.65 3797.95,-2102.65 3797.95,-2042.65 3365.95,-2042.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-2042.65 3365.95,-2102.65 3797.95,-2102.65 3797.95,-2042.65 3365.95,-2042.65"/><text text-anchor="start" x="3376.95" y="-2062.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">timestamp    </text><text text-anchor="start" x="3561.2" y="-2063.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><text text-anchor="start" x="3747.86" y="-2063.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3756.75" y="-2063.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-1982.65 3365.95,-2042.65 3797.95,-2042.65 3797.95,-1982.65 3365.95,-1982.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-1982.65 3365.95,-2042.65 3797.95,-2042.65 3797.95,-1982.65 3365.95,-1982.65"/><text text-anchor="start" x="3376.77" y="-2002.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">recorder_id    </text><text text-anchor="start" x="3573.8" y="-2003.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(16)</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-1922.65 3365.95,-1982.65 3797.95,-1982.65 3797.95,-1922.65 3365.95,-1922.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-1922.65 3365.95,-1982.65 3797.95,-1982.65 3797.95,-1922.65 3365.95,-1922.65"/><text text-anchor="start" x="3376.95" y="-1942.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">gain    </text><text text-anchor="start" x="3642.92" y="-1943.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">gain_level</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-1862.65 3365.95,-1922.65 3797.95,-1922.65 3797.95,-1862.65 3365.95,-1862.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-1862.65 3365.95,-1922.65 3797.95,-1922.65 3797.95,-1862.65 3365.95,-1862.65"/><text text-anchor="start" x="3376.95" y="-1882.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">battery_v    </text><text text-anchor="start" x="3578.96" y="-1883.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(2,1)</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-1802.65 3365.95,-1862.65 3797.95,-1862.65 3797.95,-1802.65 3365.95,-1802.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-1802.65 3365.95,-1862.65 3797.95,-1862.65 3797.95,-1802.65 3365.95,-1802.65"/><text text-anchor="start" x="3376.95" y="-1822.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">temp_c    </text><text text-anchor="start" x="3578.96" y="-1823.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(3,1)</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-1742.65 3365.95,-1802.65 3797.95,-1802.65 3797.95,-1742.65 3365.95,-1742.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-1742.65 3365.95,-1802.65 3797.95,-1802.65 3797.95,-1742.65 3365.95,-1742.65"/><text text-anchor="start" x="3376.95" y="-1762.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="3600.29" y="-1763.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-1682.65 3365.95,-1742.65 3797.95,-1742.65 3797.95,-1682.65 3365.95,-1682.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-1682.65 3365.95,-1742.65 3797.95,-1742.65 3797.95,-1682.65 3365.95,-1682.65"/><text text-anchor="start" x="3376.93" y="-1702.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="3600.62" y="-1703.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-1622.65 3365.95,-1682.65 3797.95,-1682.65 3797.95,-1622.65 3365.95,-1622.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-1622.65 3365.95,-1682.65 3797.95,-1682.65 3797.95,-1622.65 3365.95,-1622.65"/><text text-anchor="start" x="3376.95" y="-1642.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="3632.26" y="-1643.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3364.95,-1621.65 3364.95,-2223.65 3798.95,-2223.65 3798.95,-1621.65 3364.95,-1621.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3072.8,-2878.95C3294.32,-2878.95 3195.85,-2107.75 3284.97,-1904.95 3333,-1795.65 3321.98,-1685.37 3434.03,-1679.22"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3434.25,-1682.71 3444.15,-1678.95 3434.06,-1675.71 3434.25,-1682.71"/><text text-anchor="middle" x="3437.93" y="-1650.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3063.91" y="-2888.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3004.22,-3010.65C3300.94,-3010.65 3007.86,-2620.3 3147.79,-2358.65 3211.82,-2238.93 3225,-2137.9 3354.59,-2132.85"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3355.02,-2136.34 3364.95,-2132.65 3354.89,-2129.34 3355.02,-2136.34"/><text text-anchor="middle" x="3358.73" y="-2103.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="2995.32" y="-3020.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3661.15" cy="-2788.95" rx="308.1" ry="257.27"/><polygon fill="#1d71b8" stroke="transparent" points="3445.15,-2908.95 3445.15,-2968.95 3877.15,-2968.95 3877.15,-2908.95 3445.15,-2908.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-2908.95 3445.15,-2968.95 3877.15,-2968.95 3877.15,-2908.95 3445.15,-2908.95"/><text text-anchor="start" x="3502.87" y="-2930.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       file_metadata       </text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-2848.95 3445.15,-2908.95 3877.15,-2908.95 3877.15,-2848.95 3445.15,-2848.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-2848.95 3445.15,-2908.95 3877.15,-2908.95 3877.15,-2848.95 3445.15,-2848.95"/><text text-anchor="start" x="3456.15" y="-2870.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">file_id</text><text text-anchor="start" x="3539.71" y="-2870.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3652.84" y="-2870.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-2788.95 3445.15,-2848.95 3877.15,-2848.95 3877.15,-2788.95 3445.15,-2788.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-2788.95 3445.15,-2848.95 3877.15,-2848.95 3877.15,-2788.95 3445.15,-2788.95"/><text text-anchor="start" x="3456.15" y="-2809.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">json    </text><text text-anchor="start" x="3780.81" y="-2810.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">JSON</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-2728.95 3445.15,-2788.95 3877.15,-2788.95 3877.15,-2728.95 3445.15,-2728.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-2728.95 3445.15,-2788.95 3877.15,-2788.95 3877.15,-2728.95 3445.15,-2728.95"/><text text-anchor="start" x="3456.15" y="-2749.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="3679.49" y="-2750.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-2668.95 3445.15,-2728.95 3877.15,-2728.95 3877.15,-2668.95 3445.15,-2668.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-2668.95 3445.15,-2728.95 3877.15,-2728.95 3877.15,-2668.95 3445.15,-2668.95"/><text text-anchor="start" x="3456.13" y="-2689.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="3679.82" y="-2690.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3445.15,-2608.95 3445.15,-2668.95 3877.15,-2668.95 3877.15,-2608.95 3445.15,-2608.95"/><polygon fill="none" stroke="#29235c" points="3445.15,-2608.95 3445.15,-2668.95 3877.15,-2668.95 3877.15,-2608.95 3445.15,-2608.95"/><text text-anchor="start" x="3456.15" y="-2629.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="3711.45" y="-2630.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3444.15,-2607.95 3444.15,-2969.95 3878.15,-2969.95 3878.15,-2607.95 3444.15,-2607.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3581.95" cy="-2624.65" rx="308.1" ry="257.27"/><polygon fill="#1d71b8" stroke="transparent" points="3365.95,-2744.65 3365.95,-2804.65 3797.95,-2804.65 3797.95,-2744.65 3365.95,-2744.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-2744.65 3365.95,-2804.65 3797.95,-2804.65 3797.95,-2744.65 3365.95,-2744.65"/><text text-anchor="start" x="3423.68" y="-2765.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       file_metadata       </text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-2684.65 3365.95,-2744.65 3797.95,-2744.65 3797.95,-2684.65 3365.95,-2684.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-2684.65 3365.95,-2744.65 3797.95,-2744.65 3797.95,-2684.65 3365.95,-2684.65"/><text text-anchor="start" x="3376.95" y="-2705.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">file_id</text><text text-anchor="start" x="3460.51" y="-2705.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3573.64" y="-2705.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-2624.65 3365.95,-2684.65 3797.95,-2684.65 3797.95,-2624.65 3365.95,-2624.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-2624.65 3365.95,-2684.65 3797.95,-2684.65 3797.95,-2624.65 3365.95,-2624.65"/><text text-anchor="start" x="3376.95" y="-2644.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">json    </text><text text-anchor="start" x="3701.62" y="-2645.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">JSON</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-2564.65 3365.95,-2624.65 3797.95,-2624.65 3797.95,-2564.65 3365.95,-2564.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-2564.65 3365.95,-2624.65 3797.95,-2624.65 3797.95,-2564.65 3365.95,-2564.65"/><text text-anchor="start" x="3376.95" y="-2584.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="3600.29" y="-2585.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-2504.65 3365.95,-2564.65 3797.95,-2564.65 3797.95,-2504.65 3365.95,-2504.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-2504.65 3365.95,-2564.65 3797.95,-2564.65 3797.95,-2504.65 3365.95,-2504.65"/><text text-anchor="start" x="3376.93" y="-2524.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="3600.62" y="-2525.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3365.95,-2444.65 3365.95,-2504.65 3797.95,-2504.65 3797.95,-2444.65 3365.95,-2444.65"/><polygon fill="none" stroke="#29235c" points="3365.95,-2444.65 3365.95,-2504.65 3797.95,-2504.65 3797.95,-2444.65 3365.95,-2444.65"/><text text-anchor="start" x="3376.95" y="-2464.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="3632.26" y="-2465.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3364.95,-2443.65 3364.95,-2805.65 3798.95,-2805.65 3798.95,-2443.65 3364.95,-2443.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3072.8,-2878.95C3234.3,-2878.95 3277.28,-2878.95 3433.68,-2878.95"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3434.15,-2882.45 3444.15,-2878.95 3434.15,-2875.45 3434.15,-2882.45"/><text text-anchor="middle" x="3437.93" y="-2888.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3081.7" y="-2888.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3004.22,-3010.65C3087.1,-3010.65 3083.76,-2944.28 3147.79,-2891.65 3241.26,-2814.83 3240.56,-2720.18 3354.68,-2714.88"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3355.04,-2718.38 3364.95,-2714.65 3354.88,-2711.38 3355.04,-2718.38"/><text text-anchor="middle" x="3358.73" y="-2724.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="2995.32" y="-2981.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3072.8,-2878.95C3328.82,-2878.95 3176.85,-3326.9 3422.1,-3338.71"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3422.07,-3342.21 3432.15,-3338.95 3422.23,-3335.21 3422.07,-3342.21"/><text text-anchor="middle" x="3425.93" y="-3348.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3063.91" y="-2850.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3004.22,-3010.65C3188.14,-3010.65 3166.45,-3238.94 3342.74,-3247.41"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3342.87,-3250.91 3352.95,-3247.65 3343.04,-3243.92 3342.87,-3250.91"/><text text-anchor="middle" x="3346.73" y="-3257.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3013.11" y="-3020.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3072.8,-2878.95C3279.27,-2878.95 3233.84,-1232.98 3284.97,-1032.95 3321.99,-888.12 3281.15,-729.25 3422.14,-722.19"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3422.24,-725.69 3432.15,-721.95 3422.07,-718.69 3422.24,-725.69"/><text text-anchor="middle" x="3425.93" y="-693.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3081.7" y="-2850.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3004.22,-3010.65C3344.38,-3010.65 2896.23,-1715.63 3147.79,-1486.65 3183.46,-1454.18 3981.33,-1453.23 4016.12,-1486.65 4052.08,-1521.2 4046.61,-2334.08 4052.12,-2383.65 4071.78,-2560.74 4019.71,-3164.07 4189.18,-3186.98"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4189.09,-3190.48 4199.3,-3187.65 4189.55,-3183.5 4189.09,-3190.48"/><text text-anchor="middle" x="4193.08" y="-3197.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3013.11" y="-2981.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3878.15,-1498.95C4051.49,-1498.95 4094.82,-1498.95 4268.16,-1498.95"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3798.95,-1952.65C4055.37,-1952.65 4025.88,-2267.65 4282.3,-2267.65"/></g><!-- file_dataset->selection --><!-- file_dataset->selection --><g id="edge26" class="edge"><title>file_dataset:e->selection:w</title><path fill="none" stroke="#29235c" stroke-width="3" d="M3811.95,-3007.65C3916.54,-3007.65 3941.31,-2963.73 4016.12,-2890.65 4126.15,-2783.16 4045.73,-2596.28 4189.06,-2587.94"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4189.4,-2591.43 4199.3,-2587.65 4189.2,-2584.43 4189.4,-2591.43"/><text text-anchor="middle" x="4193.08" y="-2597.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3803.06" y="-3017.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="4414.16" cy="-691.95" rx="313.5" ry="257.27"/><polygon fill="#1d71b8" stroke="transparent" points="4195.16,-811.95 4195.16,-871.95 4634.16,-871.95 4634.16,-811.95 4195.16,-811.95"/><polygon fill="none" stroke="#29235c" points="4195.16,-811.95 4195.16,-871.95 4634.16,-871.95 4634.16,-811.95 4195.16,-811.95"/><text text-anchor="start" x="4213.7" y="-833.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       selection_metadata       </text><polygon fill="#e7e2dd" stroke="transparent" points="4195.16,-751.95 4195.16,-811.95 4634.16,-811.95 4634.16,-751.95 4195.16,-751.95"/><polygon fill="none" stroke="#29235c" points="4195.16,-751.95 4195.16,-811.95 4634.16,-811.95 4634.16,-751.95 4195.16,-751.95"/><text text-anchor="start" x="4205.91" y="-773.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">selection_id</text><text text-anchor="start" x="4374.83" y="-773.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="4410" y="-773.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="4195.16,-691.95 4195.16,-751.95 4634.16,-751.95 4634.16,-691.95 4195.16,-691.95"/><polygon fill="none" stroke="#29235c" points="4195.16,-691.95 4195.16,-751.95 4634.16,-751.95 4634.16,-691.95 4195.16,-691.95"/><text text-anchor="start" x="4206.16" y="-712.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">json    </text><text text-anchor="start" x="4537.82" y="-713.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">JSON</text><polygon fill="#e7e2dd" stroke="transparent" points="4195.16,-631.95 4195.16,-691.95 4634.16,-691.95 4634.16,-631.95 4195.16,-631.95"/><polygon fill="none" stroke="#29235c" points="4195.16,-631.95 4195.16,-691.95 4634.16,-691.95 4634.16,-631.95 4195.16,-631.95"/><text text-anchor="start" x="4206.16" y="-652.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="4436.5" y="-653.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4195.16,-571.95 4195.16,-631.95 4634.16,-631.95 4634.16,-571.95 4195.16,-571.95"/><polygon fill="none" stroke="#29235c" points="4195.16,-571.95 4195.16,-631.95 4634.16,-631.95 4634.16,-571.95 4195.16,-571.95"/><text text-anchor="start" x="4206.16" y="-592.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="4436.5" y="-593.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4195.16,-511.95 4195.16,-571.95 4634.16,-571.95 4634.16,-511.95 4195.16,-511.95"/><polygon fill="none" stroke="#29235c" points="4195.16,-511.95 4195.16,-571.95 4634.16,-571.95 4634.16,-511.95 4195.16,-511.95"/><text text-anchor="start" x="4206.16" y="-532.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="4468.46" y="-533.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4193.66,-510.95 4193.66,-872.95 4634.66,-872.95 4634.66,-510.95 4193.66,-510.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="5181.3" cy="-3157.65" rx="313.5" ry="257.27"/><polygon fill="#1d71b8" stroke="transparent" points="4962.3,-3277.65 4962.3,-3337.65 5401.3,-3337.65 5401.3,-3277.65 4962.3,-3277.65"/><polygon fill="none" stroke="#29235c" points="4962.3,-3277.65 4962.3,-3337.65 5401.3,-3337.65 5401.3,-3277.65 4962.3,-3277.65"/><text text-anchor="start" x="4980.84" y="-3298.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       selection_metadata       </text><polygon fill="#e7e2dd" stroke="transparent" points="4962.3,-3217.65 4962.3,-3277.65 5401.3,-3277.65 5401.3,-3217.65 4962.3,-3217.65"/><polygon fill="none" stroke="#29235c" points="4962.3,-3217.65 4962.3,-3277.65 5401.3,-3277.65 5401.3,-3217.65 4962.3,-3217.65"/><text text-anchor="start" x="4973.05" y="-3238.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">selection_id</text><text text-anchor="start" x="5141.98" y="-3238.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="5177.15" y="-3238.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="4962.3,-3157.65 4962.3,-3217.65 5401.3,-3217.65 5401.3,-3157.65 4962.3,-3157.65"/><polygon fill="none" stroke="#29235c" points="4962.3,-3157.65 4962.3,-3217.65 5401.3,-3217.65 5401.3,-3157.65 4962.3,-3157.65"/><text text-anchor="start" x="4973.3" y="-3177.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">json    </text><text text-anchor="start" x="5304.97" y="-3178.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">JSON</text><polygon fill="#e7e2dd" stroke="transparent" points="4962.3,-3097.65 4962.3,-3157.65 5401.3,-3157.65 5401.3,-3097.65 4962.3,-3097.65"/><polygon fill="none" stroke="#29235c" points="4962.3,-3097.65 4962.3,-3157.65 5401.3,-3157.65 5401.3,-3097.65 4962.3,-3097.65"/><text text-anchor="start" x="4973.3" y="-3117.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="5203.64" y="-3118.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4962.3,-3037.65 4962.3,-3097.65 5401.3,-3097.65 5401.3,-3037.65 4962.3,-3037.65"/><polygon fill="none" stroke="#29235c" points="4962.3,-3037.65 4962.3,-3097.65 5401.3,-3097.65 5401.3,-3037.65 4962.3,-3037.65"/><text text-anchor="start" x="4973.3" y="-3057.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="5203.64" y="-3058.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4962.3,-2977.65 4962.3,-3037.65 5401.3,-3037.65 5401.3,-2977.65 4962.3,-2977.65"/><polygon fill="none" stroke="#29235c" points="4962.3,-2977.65 4962.3,-3037.65 5401.3,-3037.65 5401.3,-2977.65 4962.3,-2977.65"/><text text-anchor="start" x="4973.3" y="-2997.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="5235.61" y="-2998.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4960.8,-2976.65 4960.8,-3338.65 5401.8,-3338.65 5401.8,-2976.65 4960.8,-2976.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3891.15,-781.95C4022.4,-781.95 4057.71,-781.95 4184.09,-781.95"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4184.16,-785.45 4194.16,-781.95 4184.16,-778.45 4184.16,-785.45"/><text text-anchor="middle" x="4187.93" y="-753.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3882.25" y="-753.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M4658.3,-3247.65C4789.55,-3247.65 4824.86,-3247.65 4951.24,-3247.65"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4951.3,-3251.15 4961.3,-3247.65 4951.3,-3244.15 4951.3,-3251.15"/><text text-anchor="middle" x="4955.08" y="-3257.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="4649.4" y="-3257.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="4414.16" cy="-2153.95" rx="340.65" ry="384.83"/><polygon fill="#1d71b8" stroke="transparent" points="4175.16,-2363.95 4175.16,-2423.95 4653.16,-2423.95 4653.16,-2363.95 4175.16,-2363.95"/><polygon fill="none" stroke="#29235c" points="4175.16,-2363.95 4175.16,-2423.95 4653.16,-2423.95 4653.16,-2363.95 4175.16,-2363.95"/><text text-anchor="start" x="4318.12" y="-2385.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       label       </text><polygon fill="#e7e2dd" stroke="transparent" points="4175.16,-2303.95 4175.16,-2363.95 4653.16,-2363.95 4653.16,-2303.95 4175.16,-2303.95"/><polygon fill="none" stroke="#29235c" points="4175.16,-2303.95 4175.16,-2363.95 4653.16,-2363.95 4653.16,-2303.95 4175.16,-2303.95"/><text text-anchor="start" x="4186.16" y="-2325.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="4211.05" y="-2325.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="4428.85" y="-2325.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="4175.16,-2243.95 4175.16,-2303.95 4653.16,-2303.95 4653.16,-2243.95 4175.16,-2243.95"/><polygon fill="none" stroke="#29235c" points="4175.16,-2243.95 4175.16,-2303.95 4653.16,-2303.95 4653.16,-2243.95 4175.16,-2243.95"/><text text-anchor="start" x="4185.91" y="-2264.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">selection_id    </text><text text-anchor="start" x="4389.96" y="-2265.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><text text-anchor="start" x="4603.26" y="-2265.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4612.16" y="-2265.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4175.16,-2183.95 4175.16,-2243.95 4653.16,-2243.95 4653.16,-2183.95 4175.16,-2183.95"/><polygon fill="none" stroke="#29235c" points="4175.16,-2183.95 4175.16,-2243.95 4653.16,-2243.95 4653.16,-2183.95 4175.16,-2183.95"/><text text-anchor="start" x="4186.16" y="-2204.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">species_id    </text><text text-anchor="start" x="4389.76" y="-2205.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="4603.06" y="-2205.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4611.96" y="-2205.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4175.16,-2123.95 4175.16,-2183.95 4653.16,-2183.95 4653.16,-2123.95 4175.16,-2123.95"/><polygon fill="none" stroke="#29235c" points="4175.16,-2123.95 4175.16,-2183.95 4653.16,-2183.95 4653.16,-2123.95 4175.16,-2123.95"/><text text-anchor="start" x="4186.16" y="-2144.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">filter_id    </text><text text-anchor="start" x="4428.85" y="-2145.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="4175.16,-2063.95 4175.16,-2123.95 4653.16,-2123.95 4653.16,-2063.95 4175.16,-2063.95"/><polygon fill="none" stroke="#29235c" points="4175.16,-2063.95 4175.16,-2123.95 4653.16,-2123.95 4653.16,-2063.95 4175.16,-2063.95"/><text text-anchor="start" x="4186.16" y="-2084.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">certainty    </text><text text-anchor="start" x="4434.16" y="-2085.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(5,2)</text><polygon fill="#e7e2dd" stroke="transparent" points="4175.16,-2003.95 4175.16,-2063.95 4653.16,-2063.95 4653.16,-2003.95 4175.16,-2003.95"/><polygon fill="none" stroke="#29235c" points="4175.16,-2003.95 4175.16,-2063.95 4653.16,-2063.95 4653.16,-2003.95 4175.16,-2003.95"/><text text-anchor="start" x="4186.16" y="-2024.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="4455.5" y="-2025.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4175.16,-1943.95 4175.16,-2003.95 4653.16,-2003.95 4653.16,-1943.95 4175.16,-1943.95"/><polygon fill="none" stroke="#29235c" points="4175.16,-1943.95 4175.16,-2003.95 4653.16,-2003.95 4653.16,-1943.95 4175.16,-1943.95"/><text text-anchor="start" x="4186.16" y="-1964.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="4455.5" y="-1965.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4175.16,-1883.95 4175.16,-1943.95 4653.16,-1943.95 4653.16,-1883.95 4175.16,-1883.95"/><polygon fill="none" stroke="#29235c" points="4175.16,-1883.95 4175.16,-1943.95 4653.16,-1943.95 4653.16,-1883.95 4175.16,-1883.95"/><text text-anchor="start" x="4186.16" y="-1904.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="4448.37" y="-1905.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><text text-anchor="start" x="4603.06" y="-1905.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4611.96" y="-1905.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4174.16,-1882.95 4174.16,-2424.95 4654.16,-2424.95 4654.16,-1882.95 4174.16,-1882.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="5181.3" cy="-1842.65" rx="340.65" ry="384.83"/><polygon fill="#1d71b8" stroke="transparent" points="4942.3,-2052.65 4942.3,-2112.65 5420.3,-2112.65 5420.3,-2052.65 4942.3,-2052.65"/><polygon fill="none" stroke="#29235c" points="4942.3,-2052.65 4942.3,-2112.65 5420.3,-2112.65 5420.3,-2052.65 4942.3,-2052.65"/><text text-anchor="start" x="5085.27" y="-2073.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       label       </text><polygon fill="#e7e2dd" stroke="transparent" points="4942.3,-1992.65 4942.3,-2052.65 5420.3,-2052.65 5420.3,-1992.65 4942.3,-1992.65"/><polygon fill="none" stroke="#29235c" points="4942.3,-1992.65 4942.3,-2052.65 5420.3,-2052.65 5420.3,-1992.65 4942.3,-1992.65"/><text text-anchor="start" x="4953.3" y="-2013.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="4978.19" y="-2013.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="5196" y="-2013.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="4942.3,-1932.65 4942.3,-1992.65 5420.3,-1992.65 5420.3,-1932.65 4942.3,-1932.65"/><polygon fill="none" stroke="#29235c" points="4942.3,-1932.65 4942.3,-1992.65 5420.3,-1992.65 5420.3,-1932.65 4942.3,-1932.65"/><text text-anchor="start" x="4953.05" y="-1952.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">selection_id    </text><text text-anchor="start" x="5157.1" y="-1953.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><text text-anchor="start" x="5370.41" y="-1953.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5379.31" y="-1953.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4942.3,-1872.65 4942.3,-1932.65 5420.3,-1932.65 5420.3,-1872.65 4942.3,-1872.65"/><polygon fill="none" stroke="#29235c" points="4942.3,-1872.65 4942.3,-1932.65 5420.3,-1932.65 5420.3,-1872.65 4942.3,-1872.65"/><text text-anchor="start" x="4953.3" y="-1892.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">species_id    </text><text text-anchor="start" x="5156.9" y="-1893.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="5370.21" y="-1893.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5379.11" y="-1893.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4942.3,-1812.65 4942.3,-1872.65 5420.3,-1872.65 5420.3,-1812.65 4942.3,-1812.65"/><polygon fill="none" stroke="#29235c" points="4942.3,-1812.65 4942.3,-1872.65 5420.3,-1872.65 5420.3,-1812.65 4942.3,-1812.65"/><text text-anchor="start" x="4953.3" y="-1832.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">filter_id    </text><text text-anchor="start" x="5196" y="-1833.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="4942.3,-1752.65 4942.3,-1812.65 5420.3,-1812.65 5420.3,-1752.65 4942.3,-1752.65"/><polygon fill="none" stroke="#29235c" points="4942.3,-1752.65 4942.3,-1812.65 5420.3,-1812.65 5420.3,-1752.65 4942.3,-1752.65"/><text text-anchor="start" x="4953.3" y="-1772.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">certainty    </text><text text-anchor="start" x="5201.31" y="-1773.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(5,2)</text><polygon fill="#e7e2dd" stroke="transparent" points="4942.3,-1692.65 4942.3,-1752.65 5420.3,-1752.65 5420.3,-1692.65 4942.3,-1692.65"/><polygon fill="none" stroke="#29235c" points="4942.3,-1692.65 4942.3,-1752.65 5420.3,-1752.65 5420.3,-1692.65 4942.3,-1692.65"/><text text-anchor="start" x="4953.3" y="-1712.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="5222.64" y="-1713.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4942.3,-1632.65 4942.3,-1692.65 5420.3,-1692.65 5420.3,-1632.65 4942.3,-1632.65"/><polygon fill="none" stroke="#29235c" points="4942.3,-1632.65 4942.3,-1692.65 5420.3,-1692.65 5420.3,-1632.65 4942.3,-1632.65"/><text text-anchor="start" x="4953.3" y="-1652.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="5222.64" y="-1653.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4942.3,-1572.65 4942.3,-1632.65 5420.3,-1632.65 5420.3,-1572.65 4942.3,-1572.65"/><polygon fill="none" stroke="#29235c" points="4942.3,-1572.65 4942.3,-1632.65 5420.3,-1632.65 5420.3,-1572.65 4942.3,-1572.65"/><text text-anchor="start" x="4953.3" y="-1592.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="5215.52" y="-1593.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><text text-anchor="start" x="5370.21" y="-1593.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5379.11" y="-1593.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4941.3,-1571.65 4941.3,-2113.65 5421.3,-2113.65 5421.3,-1571.65 4941.3,-1571.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3891.15,-781.95C4020.24,-781.95 3999.85,-909.41 4037.33,-1032.95 4076.62,-1162.45 4037.44,-2220.41 4164.31,-2271.99"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4163.67,-2275.43 4174.16,-2273.95 4165.03,-2268.57 4163.67,-2275.43"/><text text-anchor="middle" x="4167.93" y="-2283.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3882.25" y="-791.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M4658.3,-3247.65C4886.58,-3247.65 4780.59,-2456.94 4840.48,-2236.65 4873.59,-2114.86 4814.91,-1970.77 4931.09,-1962.98"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4931.42,-1966.47 4941.3,-1962.65 4931.2,-1959.48 4931.42,-1966.47"/><text text-anchor="middle" x="4935.08" y="-1933.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="4649.4" y="-3218.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="2814.8" cy="-4269.95" rx="434.33" ry="681.8"/><polygon fill="#1d71b8" stroke="transparent" points="2509.8,-4689.95 2509.8,-4749.95 3119.8,-4749.95 3119.8,-4689.95 2509.8,-4689.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4689.95 2509.8,-4749.95 3119.8,-4749.95 3119.8,-4689.95 2509.8,-4689.95"/><text text-anchor="start" x="2638.75" y="-4711.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       ebird_taxonomy       </text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4629.95 2509.8,-4689.95 3119.8,-4689.95 3119.8,-4629.95 2509.8,-4629.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4629.95 2509.8,-4689.95 3119.8,-4689.95 3119.8,-4629.95 2509.8,-4629.95"/><text text-anchor="start" x="2520.8" y="-4651.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="2545.69" y="-4651.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="2895.5" y="-4651.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4569.95 2509.8,-4629.95 3119.8,-4629.95 3119.8,-4569.95 2509.8,-4569.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4569.95 2509.8,-4629.95 3119.8,-4629.95 3119.8,-4569.95 2509.8,-4569.95"/><text text-anchor="start" x="2520.8" y="-4590.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">taxonomy_version    </text><text text-anchor="start" x="2874.19" y="-4591.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(4)</text><text text-anchor="start" x="3069.71" y="-4591.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3078.61" y="-4591.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4509.95 2509.8,-4569.95 3119.8,-4569.95 3119.8,-4509.95 2509.8,-4509.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4509.95 2509.8,-4569.95 3119.8,-4569.95 3119.8,-4509.95 2509.8,-4509.95"/><text text-anchor="start" x="2520.8" y="-4530.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">taxon_order    </text><text text-anchor="start" x="2927.5" y="-4531.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="3069.71" y="-4531.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3078.61" y="-4531.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4449.95 2509.8,-4509.95 3119.8,-4509.95 3119.8,-4449.95 2509.8,-4449.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4449.95 2509.8,-4509.95 3119.8,-4509.95 3119.8,-4449.95 2509.8,-4449.95"/><text text-anchor="start" x="2520.8" y="-4470.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">category    </text><text text-anchor="start" x="2856.4" y="-4471.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(15)</text><text text-anchor="start" x="3069.71" y="-4471.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3078.61" y="-4471.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4389.95 2509.8,-4449.95 3119.8,-4449.95 3119.8,-4389.95 2509.8,-4389.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4389.95 2509.8,-4449.95 3119.8,-4449.95 3119.8,-4389.95 2509.8,-4389.95"/><text text-anchor="start" x="2520.8" y="-4410.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">species_code    </text><text text-anchor="start" x="2856.4" y="-4411.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(15)</text><text text-anchor="start" x="3069.71" y="-4411.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3078.61" y="-4411.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4329.95 2509.8,-4389.95 3119.8,-4389.95 3119.8,-4329.95 2509.8,-4329.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4329.95 2509.8,-4389.95 3119.8,-4389.95 3119.8,-4329.95 2509.8,-4329.95"/><text text-anchor="start" x="2520.8" y="-4350.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">taxon_concept_id    </text><text text-anchor="start" x="2895.5" y="-4351.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(15)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4269.95 2509.8,-4329.95 3119.8,-4329.95 3119.8,-4269.95 2509.8,-4269.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4269.95 2509.8,-4329.95 3119.8,-4329.95 3119.8,-4269.95 2509.8,-4269.95"/><text text-anchor="start" x="2520.68" y="-4290.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">primary_com_name    </text><text text-anchor="start" x="2838.71" y="-4291.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><text text-anchor="start" x="3069.81" y="-4291.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3078.7" y="-4291.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4209.95 2509.8,-4269.95 3119.8,-4269.95 3119.8,-4209.95 2509.8,-4209.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4209.95 2509.8,-4269.95 3119.8,-4269.95 3119.8,-4209.95 2509.8,-4209.95"/><text text-anchor="start" x="2520.8" y="-4230.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">sci_name    </text><text text-anchor="start" x="2838.62" y="-4231.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><text text-anchor="start" x="3069.71" y="-4231.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3078.61" y="-4231.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4149.95 2509.8,-4209.95 3119.8,-4209.95 3119.8,-4149.95 2509.8,-4149.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4149.95 2509.8,-4209.95 3119.8,-4209.95 3119.8,-4149.95 2509.8,-4149.95"/><text text-anchor="start" x="2520.8" y="-4170.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">bird_order    </text><text text-anchor="start" x="2895.5" y="-4171.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(30)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4089.95 2509.8,-4149.95 3119.8,-4149.95 3119.8,-4089.95 2509.8,-4089.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4089.95 2509.8,-4149.95 3119.8,-4149.95 3119.8,-4089.95 2509.8,-4089.95"/><text text-anchor="start" x="2520.8" y="-4110.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">family    </text><text text-anchor="start" x="2877.71" y="-4111.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-4029.95 2509.8,-4089.95 3119.8,-4089.95 3119.8,-4029.95 2509.8,-4029.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-4029.95 2509.8,-4089.95 3119.8,-4089.95 3119.8,-4029.95 2509.8,-4029.95"/><text text-anchor="start" x="2520.8" y="-4050.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">species_group    </text><text text-anchor="start" x="2877.71" y="-4051.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-3969.95 2509.8,-4029.95 3119.8,-4029.95 3119.8,-3969.95 2509.8,-3969.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-3969.95 2509.8,-4029.95 3119.8,-4029.95 3119.8,-3969.95 2509.8,-3969.95"/><text text-anchor="start" x="2520.8" y="-3990.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_as    </text><text text-anchor="start" x="2895.5" y="-3991.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(15)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-3909.95 2509.8,-3969.95 3119.8,-3969.95 3119.8,-3909.95 2509.8,-3909.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-3909.95 2509.8,-3969.95 3119.8,-3969.95 3119.8,-3909.95 2509.8,-3909.95"/><text text-anchor="start" x="2520.8" y="-3930.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">valid_from    </text><text text-anchor="start" x="2984.38" y="-3931.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DATE</text><text text-anchor="start" x="3069.71" y="-3931.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3078.61" y="-3931.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-3849.95 2509.8,-3909.95 3119.8,-3909.95 3119.8,-3849.95 2509.8,-3849.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-3849.95 2509.8,-3909.95 3119.8,-3909.95 3119.8,-3849.95 2509.8,-3849.95"/><text text-anchor="start" x="2520.8" y="-3870.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">valid_to    </text><text text-anchor="start" x="3023.47" y="-3871.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DATE</text><polygon fill="#e7e2dd" stroke="transparent" points="2509.8,-3789.95 2509.8,-3849.95 3119.8,-3849.95 3119.8,-3789.95 2509.8,-3789.95"/><polygon fill="none" stroke="#29235c" points="2509.8,-3789.95 2509.8,-3849.95 3119.8,-3849.95 3119.8,-3789.95 2509.8,-3789.95"/><text text-anchor="start" x="2542.72" y="-3811.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    taxonomy_version, species_code    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="2508.8,-3788.95 2508.8,-4750.95 3120.8,-4750.95 3120.8,-3788.95 2508.8,-3788.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3581.95" cy="-681.65" rx="434.33" ry="681.8"/><polygon fill="#1d71b8" stroke="transparent" points="3276.95,-1101.65 3276.95,-1161.65 3886.95,-1161.65 3886.95,-1101.65 3276.95,-1101.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-1101.65 3276.95,-1161.65 3886.95,-1161.65 3886.95,-1101.65 3276.95,-1101.65"/><text text-anchor="start" x="3405.9" y="-1122.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       ebird_taxonomy       </text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-1041.65 3276.95,-1101.65 3886.95,-1101.65 3886.95,-1041.65 3276.95,-1041.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-1041.65 3276.95,-1101.65 3886.95,-1101.65 3886.95,-1041.65 3276.95,-1041.65"/><text text-anchor="start" x="3287.95" y="-1062.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="3312.84" y="-1062.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3662.64" y="-1062.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-981.65 3276.95,-1041.65 3886.95,-1041.65 3886.95,-981.65 3276.95,-981.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-981.65 3276.95,-1041.65 3886.95,-1041.65 3886.95,-981.65 3276.95,-981.65"/><text text-anchor="start" x="3287.95" y="-1001.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">taxonomy_version    </text><text text-anchor="start" x="3641.34" y="-1002.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(4)</text><text text-anchor="start" x="3836.86" y="-1002.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3845.75" y="-1002.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-921.65 3276.95,-981.65 3886.95,-981.65 3886.95,-921.65 3276.95,-921.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-921.65 3276.95,-981.65 3886.95,-981.65 3886.95,-921.65 3276.95,-921.65"/><text text-anchor="start" x="3287.95" y="-941.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">taxon_order    </text><text text-anchor="start" x="3694.64" y="-942.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">INTEGER</text><text text-anchor="start" x="3836.86" y="-942.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3845.75" y="-942.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-861.65 3276.95,-921.65 3886.95,-921.65 3886.95,-861.65 3276.95,-861.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-861.65 3276.95,-921.65 3886.95,-921.65 3886.95,-861.65 3276.95,-861.65"/><text text-anchor="start" x="3287.95" y="-881.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">category    </text><text text-anchor="start" x="3623.55" y="-882.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(15)</text><text text-anchor="start" x="3836.86" y="-882.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3845.75" y="-882.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-801.65 3276.95,-861.65 3886.95,-861.65 3886.95,-801.65 3276.95,-801.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-801.65 3276.95,-861.65 3886.95,-861.65 3886.95,-801.65 3276.95,-801.65"/><text text-anchor="start" x="3287.95" y="-821.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">species_code    </text><text text-anchor="start" x="3623.55" y="-822.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(15)</text><text text-anchor="start" x="3836.86" y="-822.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3845.75" y="-822.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-741.65 3276.95,-801.65 3886.95,-801.65 3886.95,-741.65 3276.95,-741.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-741.65 3276.95,-801.65 3886.95,-801.65 3886.95,-741.65 3276.95,-741.65"/><text text-anchor="start" x="3287.95" y="-761.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">taxon_concept_id    </text><text text-anchor="start" x="3662.64" y="-762.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(15)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-681.65 3276.95,-741.65 3886.95,-741.65 3886.95,-681.65 3276.95,-681.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-681.65 3276.95,-741.65 3886.95,-741.65 3886.95,-681.65 3276.95,-681.65"/><text text-anchor="start" x="3287.83" y="-701.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">primary_com_name    </text><text text-anchor="start" x="3605.86" y="-702.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><text text-anchor="start" x="3836.96" y="-702.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3845.85" y="-702.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-621.65 3276.95,-681.65 3886.95,-681.65 3886.95,-621.65 3276.95,-621.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-621.65 3276.95,-681.65 3886.95,-681.65 3886.95,-621.65 3276.95,-621.65"/><text text-anchor="start" x="3287.95" y="-641.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">sci_name    </text><text text-anchor="start" x="3605.76" y="-642.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><text text-anchor="start" x="3836.86" y="-642.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3845.75" y="-642.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-561.65 3276.95,-621.65 3886.95,-621.65 3886.95,-561.65 3276.95,-561.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-561.65 3276.95,-621.65 3886.95,-621.65 3886.95,-561.65 3276.95,-561.65"/><text text-anchor="start" x="3287.95" y="-581.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">bird_order    </text><text text-anchor="start" x="3662.64" y="-582.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(30)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-501.65 3276.95,-561.65 3886.95,-561.65 3886.95,-501.65 3276.95,-501.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-501.65 3276.95,-561.65 3886.95,-561.65 3886.95,-501.65 3276.95,-501.65"/><text text-anchor="start" x="3287.95" y="-521.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">family    </text><text text-anchor="start" x="3644.86" y="-522.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-441.65 3276.95,-501.65 3886.95,-501.65 3886.95,-441.65 3276.95,-441.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-441.65 3276.95,-501.65 3886.95,-501.65 3886.95,-441.65 3276.95,-441.65"/><text text-anchor="start" x="3287.95" y="-461.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">species_group    </text><text text-anchor="start" x="3644.86" y="-462.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-381.65 3276.95,-441.65 3886.95,-441.65 3886.95,-381.65 3276.95,-381.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-381.65 3276.95,-441.65 3886.95,-441.65 3886.95,-381.65 3276.95,-381.65"/><text text-anchor="start" x="3287.95" y="-401.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">report_as    </text><text text-anchor="start" x="3662.64" y="-402.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(15)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-321.65 3276.95,-381.65 3886.95,-381.65 3886.95,-321.65 3276.95,-321.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-321.65 3276.95,-381.65 3886.95,-381.65 3886.95,-321.65 3276.95,-321.65"/><text text-anchor="start" x="3287.95" y="-341.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">valid_from    </text><text text-anchor="start" x="3751.53" y="-342.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DATE</text><text text-anchor="start" x="3836.86" y="-342.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3845.75" y="-342.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-261.65 3276.95,-321.65 3886.95,-321.65 3886.95,-261.65 3276.95,-261.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-261.65 3276.95,-321.65 3886.95,-321.65 3886.95,-261.65 3276.95,-261.65"/><text text-anchor="start" x="3287.95" y="-281.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">valid_to    </text><text text-anchor="start" x="3790.62" y="-282.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DATE</text><polygon fill="#e7e2dd" stroke="transparent" points="3276.95,-201.65 3276.95,-261.65 3886.95,-261.65 3886.95,-201.65 3276.95,-201.65"/><polygon fill="none" stroke="#29235c" points="3276.95,-201.65 3276.95,-261.65 3886.95,-261.65 3886.95,-201.65 3276.95,-201.65"/><text text-anchor="start" x="3309.87" y="-222.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    taxonomy_version, species_code    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3275.95,-200.65 3275.95,-1162.65 3887.95,-1162.65 3887.95,-200.65 3275.95,-200.65"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3661.15" cy="-4014.95" rx="376.36" ry="427.19"/><polygon fill="#1d71b8" stroke="transparent" points="3397.15,-4254.95 3397.15,-4314.95 3925.15,-4314.95 3925.15,-4254.95 3397.15,-4254.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-4254.95 3397.15,-4314.95 3925.15,-4314.95 3925.15,-4254.95 3397.15,-4254.95"/><text text-anchor="start" x="3544.67" y="-4276.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       species       </text><polygon fill="#e7e2dd" stroke="transparent" points="3397.15,-4194.95 3397.15,-4254.95 3925.15,-4254.95 3925.15,-4194.95 3397.15,-4194.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-4194.95 3397.15,-4254.95 3925.15,-4254.95 3925.15,-4194.95 3397.15,-4194.95"/><text text-anchor="start" x="3408.15" y="-4216.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="3433.04" y="-4216.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3700.84" y="-4216.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="3397.15,-4134.95 3397.15,-4194.95 3925.15,-4194.95 3925.15,-4134.95 3397.15,-4134.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-4134.95 3397.15,-4194.95 3925.15,-4194.95 3925.15,-4134.95 3397.15,-4134.95"/><text text-anchor="start" x="3408.15" y="-4155.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">label    </text><text text-anchor="start" x="3643.96" y="-4156.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><text text-anchor="start" x="3875.06" y="-4156.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3883.95" y="-4156.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3397.15,-4074.95 3397.15,-4134.95 3925.15,-4134.95 3925.15,-4074.95 3397.15,-4074.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-4074.95 3397.15,-4134.95 3925.15,-4134.95 3925.15,-4074.95 3397.15,-4074.95"/><text text-anchor="start" x="3408.15" y="-4095.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">ebird_code    </text><text text-anchor="start" x="3700.84" y="-4096.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="3397.15,-4014.95 3397.15,-4074.95 3925.15,-4074.95 3925.15,-4014.95 3397.15,-4014.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-4014.95 3397.15,-4074.95 3925.15,-4074.95 3925.15,-4014.95 3397.15,-4014.95"/><text text-anchor="start" x="3408.15" y="-4035.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">taxonomy_version    </text><text text-anchor="start" x="3718.63" y="-4036.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(4)</text><polygon fill="#e7e2dd" stroke="transparent" points="3397.15,-3954.95 3397.15,-4014.95 3925.15,-4014.95 3925.15,-3954.95 3397.15,-3954.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-3954.95 3397.15,-4014.95 3925.15,-4014.95 3925.15,-3954.95 3397.15,-3954.95"/><text text-anchor="start" x="3408.15" y="-3975.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="3683.05" y="-3976.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="3397.15,-3894.95 3397.15,-3954.95 3925.15,-3954.95 3925.15,-3894.95 3397.15,-3894.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-3894.95 3397.15,-3954.95 3925.15,-3954.95 3925.15,-3894.95 3397.15,-3894.95"/><text text-anchor="start" x="3408.15" y="-3915.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="3727.49" y="-3916.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3397.15,-3834.95 3397.15,-3894.95 3925.15,-3894.95 3925.15,-3834.95 3397.15,-3834.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-3834.95 3397.15,-3894.95 3925.15,-3894.95 3925.15,-3834.95 3397.15,-3834.95"/><text text-anchor="start" x="3408.15" y="-3855.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="3727.49" y="-3856.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3397.15,-3774.95 3397.15,-3834.95 3925.15,-3834.95 3925.15,-3774.95 3397.15,-3774.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-3774.95 3397.15,-3834.95 3925.15,-3834.95 3925.15,-3774.95 3397.15,-3774.95"/><text text-anchor="start" x="3408.15" y="-3795.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="3759.45" y="-3796.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="3397.15,-3714.95 3397.15,-3774.95 3925.15,-3774.95 3925.15,-3714.95 3397.15,-3714.95"/><polygon fill="none" stroke="#29235c" points="3397.15,-3714.95 3397.15,-3774.95 3925.15,-3774.95 3925.15,-3714.95 3397.15,-3714.95"/><text text-anchor="start" x="3407.74" y="-3736.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    ebird_code, taxonomy_version    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3396.15,-3713.95 3396.15,-4315.95 3926.15,-4315.95 3926.15,-3713.95 3396.15,-3713.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="4428.3" cy="-1377.65" rx="376.36" ry="427.19"/><polygon fill="#1d71b8" stroke="transparent" points="4164.3,-1617.65 4164.3,-1677.65 4692.3,-1677.65 4692.3,-1617.65 4164.3,-1617.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1617.65 4164.3,-1677.65 4692.3,-1677.65 4692.3,-1617.65 4164.3,-1617.65"/><text text-anchor="start" x="4311.81" y="-1638.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       species       </text><polygon fill="#e7e2dd" stroke="transparent" points="4164.3,-1557.65 4164.3,-1617.65 4692.3,-1617.65 4692.3,-1557.65 4164.3,-1557.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1557.65 4164.3,-1617.65 4692.3,-1617.65 4692.3,-1557.65 4164.3,-1557.65"/><text text-anchor="start" x="4175.3" y="-1578.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="4200.19" y="-1578.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="4467.99" y="-1578.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="4164.3,-1497.65 4164.3,-1557.65 4692.3,-1557.65 4692.3,-1497.65 4164.3,-1497.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1497.65 4164.3,-1557.65 4692.3,-1557.65 4692.3,-1497.65 4164.3,-1497.65"/><text text-anchor="start" x="4175.3" y="-1517.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">label    </text><text text-anchor="start" x="4411.11" y="-1518.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><text text-anchor="start" x="4642.21" y="-1518.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4651.1" y="-1518.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4164.3,-1437.65 4164.3,-1497.65 4692.3,-1497.65 4692.3,-1437.65 4164.3,-1437.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1437.65 4164.3,-1497.65 4692.3,-1497.65 4692.3,-1437.65 4164.3,-1437.65"/><text text-anchor="start" x="4175.3" y="-1457.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">ebird_code    </text><text text-anchor="start" x="4467.99" y="-1458.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="4164.3,-1377.65 4164.3,-1437.65 4692.3,-1437.65 4692.3,-1377.65 4164.3,-1377.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1377.65 4164.3,-1437.65 4692.3,-1437.65 4692.3,-1377.65 4164.3,-1377.65"/><text text-anchor="start" x="4175.3" y="-1397.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">taxonomy_version    </text><text text-anchor="start" x="4485.78" y="-1398.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(4)</text><polygon fill="#e7e2dd" stroke="transparent" points="4164.3,-1317.65 4164.3,-1377.65 4692.3,-1377.65 4692.3,-1317.65 4164.3,-1317.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1317.65 4164.3,-1377.65 4692.3,-1377.65 4692.3,-1317.65 4164.3,-1317.65"/><text text-anchor="start" x="4175.3" y="-1337.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="4450.2" y="-1338.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="4164.3,-1257.65 4164.3,-1317.65 4692.3,-1317.65 4692.3,-1257.65 4164.3,-1257.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1257.65 4164.3,-1317.65 4692.3,-1317.65 4692.3,-1257.65 4164.3,-1257.65"/><text text-anchor="start" x="4175.3" y="-1277.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="4494.64" y="-1278.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4164.3,-1197.65 4164.3,-1257.65 4692.3,-1257.65 4692.3,-1197.65 4164.3,-1197.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1197.65 4164.3,-1257.65 4692.3,-1257.65 4692.3,-1197.65 4164.3,-1197.65"/><text text-anchor="start" x="4175.3" y="-1217.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="4494.64" y="-1218.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4164.3,-1137.65 4164.3,-1197.65 4692.3,-1197.65 4692.3,-1137.65 4164.3,-1137.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1137.65 4164.3,-1197.65 4692.3,-1197.65 4692.3,-1137.65 4164.3,-1137.65"/><text text-anchor="start" x="4175.3" y="-1157.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="4526.6" y="-1158.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="#e7e2dd" stroke="transparent" points="4164.3,-1077.65 4164.3,-1137.65 4692.3,-1137.65 4692.3,-1077.65 4164.3,-1077.65"/><polygon fill="none" stroke="#29235c" points="4164.3,-1077.65 4164.3,-1137.65 4692.3,-1137.65 4692.3,-1077.65 4164.3,-1077.65"/><text text-anchor="start" x="4174.89" y="-1098.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#1d71b8">    ebird_code, taxonomy_version    </text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4163.3,-1076.65 4163.3,-1678.65 4693.3,-1678.65 4693.3,-1076.65 4163.3,-1076.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3120.8,-3819.95C3244.17,-3819.95 3268.05,-3748.99 3385.98,-3745.11"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="3386.21,-3748.61 3396.15,-3744.95 3386.09,-3741.61 3386.21,-3748.61"/><text text-anchor="middle" x="3389.93" y="-3754.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3111.91" y="-3829.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3887.95,-231.65C4292.58,-231.65 3764.36,-1092.74 4153.04,-1107.46"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4153.23,-1110.96 4163.3,-1107.65 4153.36,-1103.97 4153.23,-1110.96"/><text text-anchor="middle" x="4157.08" y="-1078.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3879.06" y="-202.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="4414.16" cy="-4091.95" rx="328.2" ry="299.63"/><polygon fill="#1d71b8" stroke="transparent" points="4184.16,-4241.95 4184.16,-4301.95 4644.16,-4301.95 4644.16,-4241.95 4184.16,-4241.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-4241.95 4184.16,-4301.95 4644.16,-4301.95 4644.16,-4241.95 4184.16,-4241.95"/><text text-anchor="start" x="4288.78" y="-4263.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       call_type       </text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-4181.95 4184.16,-4241.95 4644.16,-4241.95 4644.16,-4181.95 4184.16,-4181.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-4181.95 4184.16,-4241.95 4644.16,-4241.95 4644.16,-4181.95 4184.16,-4181.95"/><text text-anchor="start" x="4195.16" y="-4203.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="4220.05" y="-4203.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="4419.85" y="-4203.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-4121.95 4184.16,-4181.95 4644.16,-4181.95 4644.16,-4121.95 4184.16,-4121.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-4121.95 4184.16,-4181.95 4644.16,-4181.95 4644.16,-4121.95 4184.16,-4121.95"/><text text-anchor="start" x="4194.8" y="-4142.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">species_id    </text><text text-anchor="start" x="4380.96" y="-4143.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="4594.26" y="-4143.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4603.16" y="-4143.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-4061.95 4184.16,-4121.95 4644.16,-4121.95 4644.16,-4061.95 4184.16,-4061.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-4061.95 4184.16,-4121.95 4644.16,-4121.95 4644.16,-4061.95 4184.16,-4061.95"/><text text-anchor="start" x="4195.16" y="-4082.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">label    </text><text text-anchor="start" x="4362.97" y="-4083.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><text text-anchor="start" x="4594.06" y="-4083.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4602.96" y="-4083.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-4001.95 4184.16,-4061.95 4644.16,-4061.95 4644.16,-4001.95 4184.16,-4001.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-4001.95 4184.16,-4061.95 4644.16,-4061.95 4644.16,-4001.95 4184.16,-4001.95"/><text text-anchor="start" x="4195.16" y="-4022.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="4446.5" y="-4023.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-3941.95 4184.16,-4001.95 4644.16,-4001.95 4644.16,-3941.95 4184.16,-3941.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-3941.95 4184.16,-4001.95 4644.16,-4001.95 4644.16,-3941.95 4184.16,-3941.95"/><text text-anchor="start" x="4195.16" y="-3962.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="4446.5" y="-3963.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4184.16,-3881.95 4184.16,-3941.95 4644.16,-3941.95 4644.16,-3881.95 4184.16,-3881.95"/><polygon fill="none" stroke="#29235c" points="4184.16,-3881.95 4184.16,-3941.95 4644.16,-3941.95 4644.16,-3881.95 4184.16,-3881.95"/><text text-anchor="start" x="4195.16" y="-3902.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="4478.46" y="-3903.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4183.16,-3880.95 4183.16,-4302.95 4645.16,-4302.95 4645.16,-3880.95 4183.16,-3880.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="5181.3" cy="-1140.65" rx="328.2" ry="299.63"/><polygon fill="#1d71b8" stroke="transparent" points="4951.3,-1290.65 4951.3,-1350.65 5411.3,-1350.65 5411.3,-1290.65 4951.3,-1290.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-1290.65 4951.3,-1350.65 5411.3,-1350.65 5411.3,-1290.65 4951.3,-1290.65"/><text text-anchor="start" x="5055.93" y="-1311.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       call_type       </text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-1230.65 4951.3,-1290.65 5411.3,-1290.65 5411.3,-1230.65 4951.3,-1230.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-1230.65 4951.3,-1290.65 5411.3,-1290.65 5411.3,-1230.65 4951.3,-1230.65"/><text text-anchor="start" x="4962.3" y="-1251.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="4987.19" y="-1251.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="5187" y="-1251.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-1170.65 4951.3,-1230.65 5411.3,-1230.65 5411.3,-1170.65 4951.3,-1170.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-1170.65 4951.3,-1230.65 5411.3,-1230.65 5411.3,-1170.65 4951.3,-1170.65"/><text text-anchor="start" x="4961.95" y="-1190.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">species_id    </text><text text-anchor="start" x="5148.1" y="-1191.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="5361.41" y="-1191.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5370.31" y="-1191.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-1110.65 4951.3,-1170.65 5411.3,-1170.65 5411.3,-1110.65 4951.3,-1110.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-1110.65 4951.3,-1170.65 5411.3,-1170.65 5411.3,-1110.65 4951.3,-1110.65"/><text text-anchor="start" x="4962.3" y="-1130.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">label    </text><text text-anchor="start" x="5130.12" y="-1131.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(100)</text><text text-anchor="start" x="5361.21" y="-1131.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5370.11" y="-1131.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-1050.65 4951.3,-1110.65 5411.3,-1110.65 5411.3,-1050.65 4951.3,-1050.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-1050.65 4951.3,-1110.65 5411.3,-1110.65 5411.3,-1050.65 4951.3,-1050.65"/><text text-anchor="start" x="4962.3" y="-1070.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="5213.64" y="-1071.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-990.65 4951.3,-1050.65 5411.3,-1050.65 5411.3,-990.65 4951.3,-990.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-990.65 4951.3,-1050.65 5411.3,-1050.65 5411.3,-990.65 4951.3,-990.65"/><text text-anchor="start" x="4962.3" y="-1010.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="5213.64" y="-1011.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4951.3,-930.65 4951.3,-990.65 5411.3,-990.65 5411.3,-930.65 4951.3,-930.65"/><polygon fill="none" stroke="#29235c" points="4951.3,-930.65 4951.3,-990.65 5411.3,-990.65 5411.3,-930.65 4951.3,-930.65"/><text text-anchor="start" x="4962.3" y="-950.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="5245.61" y="-951.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4950.3,-929.65 4950.3,-1351.65 5412.3,-1351.65 5412.3,-929.65 4950.3,-929.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3926.15,-4224.95C4041.41,-4224.95 4063.18,-4156.16 4172.97,-4152.13"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4173.22,-4155.63 4183.16,-4151.95 4173.09,-4148.63 4173.22,-4155.63"/><text text-anchor="middle" x="4176.93" y="-4161.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3917.25" y="-4234.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M4693.3,-1587.65C4896.24,-1587.65 4749.05,-1213.77 4940.03,-1200.99"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4940.42,-1204.48 4950.3,-1200.65 4940.19,-1197.48 4940.42,-1204.48"/><text text-anchor="middle" x="4944.08" y="-1171.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="4684.4" y="-1558.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3926.15,-4224.95C4147.88,-4224.95 3955.04,-2274.36 4164.22,-2215.31"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4164.73,-2218.78 4174.16,-2213.95 4163.77,-2211.84 4164.73,-2218.78"/><text text-anchor="middle" x="4167.93" y="-2223.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3917.25" y="-4196.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M4693.3,-1587.65C4868,-1587.65 4767.24,-1890.47 4931.19,-1902.3"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4931.19,-1905.8 4941.3,-1902.65 4931.43,-1898.8 4931.19,-1905.8"/><text text-anchor="middle" x="4935.08" y="-1873.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="4684.4" y="-1597.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3926.15,-4224.95C4225.41,-4224.95 3888.42,-3608.65 4172.78,-3594.2"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4173.25,-3597.69 4183.16,-3593.95 4173.07,-3590.69 4173.25,-3597.69"/><text text-anchor="middle" x="4176.93" y="-3603.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3935.04" y="-4234.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M4693.3,-1587.65C4904.89,-1587.65 4740.73,-2490.83 4940.21,-2519.93"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4940.08,-2523.43 4950.3,-2520.65 4940.58,-2516.45 4940.08,-2523.43"/><text text-anchor="middle" x="4944.08" y="-2530.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="4702.19" y="-1558.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="5119.08" cy="-2326.95" rx="328.2" ry="384.83"/><polygon fill="#1d71b8" stroke="transparent" points="4889.08,-2536.95 4889.08,-2596.95 5349.08,-2596.95 5349.08,-2536.95 4889.08,-2536.95"/><polygon fill="none" stroke="#29235c" points="4889.08,-2536.95 4889.08,-2596.95 5349.08,-2596.95 5349.08,-2536.95 4889.08,-2536.95"/><text text-anchor="start" x="4958.13" y="-2558.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       label_subtype       </text><polygon fill="#e7e2dd" stroke="transparent" points="4889.08,-2476.95 4889.08,-2536.95 5349.08,-2536.95 5349.08,-2476.95 4889.08,-2476.95"/><polygon fill="none" stroke="#29235c" points="4889.08,-2476.95 4889.08,-2536.95 5349.08,-2536.95 5349.08,-2476.95 4889.08,-2476.95"/><text text-anchor="start" x="4900.08" y="-2498.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="4924.97" y="-2498.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="5124.77" y="-2498.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="4889.08,-2416.95 4889.08,-2476.95 5349.08,-2476.95 5349.08,-2416.95 4889.08,-2416.95"/><polygon fill="none" stroke="#29235c" points="4889.08,-2416.95 4889.08,-2476.95 5349.08,-2476.95 5349.08,-2416.95 4889.08,-2416.95"/><text text-anchor="start" x="4900.08" y="-2437.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">label_id    </text><text text-anchor="start" x="5085.68" y="-2438.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><text text-anchor="start" x="5298.99" y="-2438.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5307.88" y="-2438.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4889.08,-2356.95 4889.08,-2416.95 5349.08,-2416.95 5349.08,-2356.95 4889.08,-2356.95"/><polygon fill="none" stroke="#29235c" points="4889.08,-2356.95 4889.08,-2416.95 5349.08,-2416.95 5349.08,-2356.95 4889.08,-2356.95"/><text text-anchor="start" x="4899.72" y="-2377.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">calltype_id    </text><text text-anchor="start" x="5085.88" y="-2378.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="5299.19" y="-2378.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5308.08" y="-2378.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4889.08,-2296.95 4889.08,-2356.95 5349.08,-2356.95 5349.08,-2296.95 4889.08,-2296.95"/><polygon fill="none" stroke="#29235c" points="4889.08,-2296.95 4889.08,-2356.95 5349.08,-2356.95 5349.08,-2296.95 4889.08,-2296.95"/><text text-anchor="start" x="4900.08" y="-2317.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">filter_id    </text><text text-anchor="start" x="5124.77" y="-2318.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="4889.08,-2236.95 4889.08,-2296.95 5349.08,-2296.95 5349.08,-2236.95 4889.08,-2236.95"/><polygon fill="none" stroke="#29235c" points="4889.08,-2236.95 4889.08,-2296.95 5349.08,-2296.95 5349.08,-2236.95 4889.08,-2236.95"/><text text-anchor="start" x="4900.08" y="-2257.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">certainty    </text><text text-anchor="start" x="5130.08" y="-2258.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(5,2)</text><polygon fill="#e7e2dd" stroke="transparent" points="4889.08,-2176.95 4889.08,-2236.95 5349.08,-2236.95 5349.08,-2176.95 4889.08,-2176.95"/><polygon fill="none" stroke="#29235c" points="4889.08,-2176.95 4889.08,-2236.95 5349.08,-2236.95 5349.08,-2176.95 4889.08,-2176.95"/><text text-anchor="start" x="4900.08" y="-2197.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="5151.42" y="-2198.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4889.08,-2116.95 4889.08,-2176.95 5349.08,-2176.95 5349.08,-2116.95 4889.08,-2116.95"/><polygon fill="none" stroke="#29235c" points="4889.08,-2116.95 4889.08,-2176.95 5349.08,-2176.95 5349.08,-2116.95 4889.08,-2116.95"/><text text-anchor="start" x="4900.08" y="-2137.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="5151.42" y="-2138.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4889.08,-2056.95 4889.08,-2116.95 5349.08,-2116.95 5349.08,-2056.95 4889.08,-2056.95"/><polygon fill="none" stroke="#29235c" points="4889.08,-2056.95 4889.08,-2116.95 5349.08,-2116.95 5349.08,-2056.95 4889.08,-2056.95"/><text text-anchor="start" x="4900.08" y="-2077.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="5144.29" y="-2078.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><text text-anchor="start" x="5298.99" y="-2078.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="5307.88" y="-2078.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4888.08,-2055.95 4888.08,-2597.95 5350.08,-2597.95 5350.08,-2055.95 4888.08,-2055.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="5886.23" cy="-1080.65" rx="328.2" ry="384.83"/><polygon fill="#1d71b8" stroke="transparent" points="5656.23,-1290.65 5656.23,-1350.65 6116.23,-1350.65 6116.23,-1290.65 5656.23,-1290.65"/><polygon fill="none" stroke="#29235c" points="5656.23,-1290.65 5656.23,-1350.65 6116.23,-1350.65 6116.23,-1290.65 5656.23,-1290.65"/><text text-anchor="start" x="5725.27" y="-1311.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       label_subtype       </text><polygon fill="#e7e2dd" stroke="transparent" points="5656.23,-1230.65 5656.23,-1290.65 6116.23,-1290.65 6116.23,-1230.65 5656.23,-1230.65"/><polygon fill="none" stroke="#29235c" points="5656.23,-1230.65 5656.23,-1290.65 6116.23,-1290.65 6116.23,-1230.65 5656.23,-1230.65"/><text text-anchor="start" x="5667.23" y="-1251.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="5692.12" y="-1251.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="5891.92" y="-1251.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><polygon fill="#e7e2dd" stroke="transparent" points="5656.23,-1170.65 5656.23,-1230.65 6116.23,-1230.65 6116.23,-1170.65 5656.23,-1170.65"/><polygon fill="none" stroke="#29235c" points="5656.23,-1170.65 5656.23,-1230.65 6116.23,-1230.65 6116.23,-1170.65 5656.23,-1170.65"/><text text-anchor="start" x="5667.23" y="-1190.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">label_id    </text><text text-anchor="start" x="5852.83" y="-1191.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(21)</text><text text-anchor="start" x="6066.14" y="-1191.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="6075.03" y="-1191.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="5656.23,-1110.65 5656.23,-1170.65 6116.23,-1170.65 6116.23,-1110.65 5656.23,-1110.65"/><polygon fill="none" stroke="#29235c" points="5656.23,-1110.65 5656.23,-1170.65 6116.23,-1170.65 6116.23,-1110.65 5656.23,-1110.65"/><text text-anchor="start" x="5666.87" y="-1130.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">calltype_id    </text><text text-anchor="start" x="5853.03" y="-1131.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><text text-anchor="start" x="6066.34" y="-1131.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="6075.23" y="-1131.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="5656.23,-1050.65 5656.23,-1110.65 6116.23,-1110.65 6116.23,-1050.65 5656.23,-1050.65"/><polygon fill="none" stroke="#29235c" points="5656.23,-1050.65 5656.23,-1110.65 6116.23,-1110.65 6116.23,-1050.65 5656.23,-1050.65"/><text text-anchor="start" x="5667.23" y="-1070.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">filter_id    </text><text text-anchor="start" x="5891.92" y="-1071.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="5656.23,-990.65 5656.23,-1050.65 6116.23,-1050.65 6116.23,-990.65 5656.23,-990.65"/><polygon fill="none" stroke="#29235c" points="5656.23,-990.65 5656.23,-1050.65 6116.23,-1050.65 6116.23,-990.65 5656.23,-990.65"/><text text-anchor="start" x="5667.23" y="-1010.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">certainty    </text><text text-anchor="start" x="5897.23" y="-1011.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">DECIMAL(5,2)</text><polygon fill="#e7e2dd" stroke="transparent" points="5656.23,-930.65 5656.23,-990.65 6116.23,-990.65 6116.23,-930.65 5656.23,-930.65"/><polygon fill="none" stroke="#29235c" points="5656.23,-930.65 5656.23,-990.65 6116.23,-990.65 6116.23,-930.65 5656.23,-930.65"/><text text-anchor="start" x="5667.23" y="-950.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="5918.57" y="-951.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="5656.23,-870.65 5656.23,-930.65 6116.23,-930.65 6116.23,-870.65 5656.23,-870.65"/><polygon fill="none" stroke="#29235c" points="5656.23,-870.65 5656.23,-930.65 6116.23,-930.65 6116.23,-870.65 5656.23,-870.65"/><text text-anchor="start" x="5667.23" y="-890.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="5918.57" y="-891.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="5656.23,-810.65 5656.23,-870.65 6116.23,-870.65 6116.23,-810.65 5656.23,-810.65"/><polygon fill="none" stroke="#29235c" points="5656.23,-810.65 5656.23,-870.65 6116.23,-870.65 6116.23,-810.65 5656.23,-810.65"/><text text-anchor="start" x="5667.23" y="-830.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="5911.44" y="-831.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><text text-anchor="start" x="6066.14" y="-831.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="6075.03" y="-831.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="5655.23,-809.65 5655.23,-1351.65 6117.23,-1351.65 6117.23,-809.65 5655.23,-809.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M4645.16,-4211.95C4852.75,-4211.95 4720.46,-3962.65 4754.98,-3757.95 4779.86,-3610.42 4737.03,-2441.21 4878.06,-2388.77"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4878.87,-2392.18 4888.08,-2386.95 4877.61,-2385.29 4878.87,-2392.18"/><text text-anchor="middle" x="4881.86" y="-2396.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="4636.26" y="-4221.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M5412.3,-1260.65C5529.2,-1260.65 5534.58,-1147.58 5644.94,-1140.95"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="5645.33,-1144.44 5655.23,-1140.65 5645.13,-1137.45 5645.33,-1144.44"/><text text-anchor="middle" x="5649" y="-1111.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="5403.41" y="-1231.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<ellipse fill="none" stroke="black" stroke-width="0" cx="3661.15" cy="-2213.95" rx="316.15" ry="299.63"/><polygon fill="#1d71b8" stroke="transparent" points="3440.15,-2363.95 3440.15,-2423.95 3883.15,-2423.95 3883.15,-2363.95 3440.15,-2363.95"/><polygon fill="none" stroke="#29235c" points="3440.15,-2363.95 3440.15,-2423.95 3883.15,-2423.95 3883.15,-2363.95 3440.15,-2363.95"/><text text-anchor="start" x="3569.19" y="-2385.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       filter       </text><polygon fill="#e7e2dd" stroke="transparent" points="3440.15,-2303.95 3440.15,-2363.95 3883.15,-2363.95 3883.15,-2303.95 3440.15,-2303.95"/><polygon fill="none" stroke="#29235c" points="3440.15,-2303.95 3440.15,-2363.95 3883.15,-2363.95 3883.15,-2303.95 3440.15,-2303.95"/><text text-anchor="start" x="3451.15" y="-2325.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="3476.04" y="-2325.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="3658.84" y="-2325.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="3440.15,-2243.95 3440.15,-2303.95 3883.15,-2303.95 3883.15,-2243.95 3440.15,-2243.95"/><polygon fill="none" stroke="#29235c" points="3440.15,-2243.95 3440.15,-2303.95 3883.15,-2303.95 3883.15,-2243.95 3440.15,-2243.95"/><text text-anchor="start" x="3451.15" y="-2264.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name    </text><text text-anchor="start" x="3601.96" y="-2265.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(140)</text><text text-anchor="start" x="3833.06" y="-2265.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3841.95" y="-2265.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="3440.15,-2183.95 3440.15,-2243.95 3883.15,-2243.95 3883.15,-2183.95 3440.15,-2183.95"/><polygon fill="none" stroke="#29235c" points="3440.15,-2183.95 3440.15,-2243.95 3883.15,-2243.95 3883.15,-2183.95 3440.15,-2183.95"/><text text-anchor="start" x="3451.02" y="-2204.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="3641.1" y="-2205.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="3440.15,-2123.95 3440.15,-2183.95 3883.15,-2183.95 3883.15,-2123.95 3440.15,-2123.95"/><polygon fill="none" stroke="#29235c" points="3440.15,-2123.95 3440.15,-2183.95 3883.15,-2183.95 3883.15,-2123.95 3440.15,-2123.95"/><text text-anchor="start" x="3451.15" y="-2144.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="3685.49" y="-2145.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3440.15,-2063.95 3440.15,-2123.95 3883.15,-2123.95 3883.15,-2063.95 3440.15,-2063.95"/><polygon fill="none" stroke="#29235c" points="3440.15,-2063.95 3440.15,-2123.95 3883.15,-2123.95 3883.15,-2063.95 3440.15,-2063.95"/><text text-anchor="start" x="3451.15" y="-2084.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="3685.49" y="-2085.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="3440.15,-2003.95 3440.15,-2063.95 3883.15,-2063.95 3883.15,-2003.95 3440.15,-2003.95"/><polygon fill="none" stroke="#29235c" points="3440.15,-2003.95 3440.15,-2063.95 3883.15,-2063.95 3883.15,-2003.95 3440.15,-2003.95"/><text text-anchor="start" x="3451.15" y="-2024.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="3678.36" y="-2025.15" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><text text-anchor="start" x="3833.06" y="-2025.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="3841.95" y="-2025.15" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="3438.65,-2002.95 3438.65,-2424.95 3883.65,-2424.95 3883.65,-2002.95 3438.65,-2002.95"/>
<ellipse fill="none" stroke="black" stroke-width="0" cx="4428.3" cy="-632.65" rx="316.15" ry="299.63"/><polygon fill="#1d71b8" stroke="transparent" points="4207.3,-782.65 4207.3,-842.65 4650.3,-842.65 4650.3,-782.65 4207.3,-782.65"/><polygon fill="none" stroke="#29235c" points="4207.3,-782.65 4207.3,-842.65 4650.3,-842.65 4650.3,-782.65 4207.3,-782.65"/><text text-anchor="start" x="4336.33" y="-803.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#ffffff">       filter       </text><polygon fill="#e7e2dd" stroke="transparent" points="4207.3,-722.65 4207.3,-782.65 4650.3,-782.65 4650.3,-722.65 4207.3,-722.65"/><polygon fill="none" stroke="#29235c" points="4207.3,-722.65 4207.3,-782.65 4650.3,-782.65 4650.3,-722.65 4207.3,-722.65"/><text text-anchor="start" x="4218.3" y="-743.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">id</text><text text-anchor="start" x="4243.19" y="-743.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">    </text><text text-anchor="start" x="4425.99" y="-743.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(12)</text><polygon fill="#e7e2dd" stroke="transparent" points="4207.3,-662.65 4207.3,-722.65 4650.3,-722.65 4650.3,-662.65 4207.3,-662.65"/><polygon fill="none" stroke="#29235c" points="4207.3,-662.65 4207.3,-722.65 4650.3,-722.65 4650.3,-662.65 4207.3,-662.65"/><text text-anchor="start" x="4218.3" y="-682.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">name    </text><text text-anchor="start" x="4369.11" y="-683.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(140)</text><text text-anchor="start" x="4600.21" y="-683.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4609.1" y="-683.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="#e7e2dd" stroke="transparent" points="4207.3,-602.65 4207.3,-662.65 4650.3,-662.65 4650.3,-602.65 4207.3,-602.65"/><polygon fill="none" stroke="#29235c" points="4207.3,-602.65 4207.3,-662.65 4650.3,-662.65 4650.3,-602.65 4207.3,-602.65"/><text text-anchor="start" x="4218.17" y="-622.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">description    </text><text text-anchor="start" x="4408.25" y="-623.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">VARCHAR(255)</text><polygon fill="#e7e2dd" stroke="transparent" points="4207.3,-542.65 4207.3,-602.65 4650.3,-602.65 4650.3,-542.65 4207.3,-542.65"/><polygon fill="none" stroke="#29235c" points="4207.3,-542.65 4207.3,-602.65 4650.3,-602.65 4650.3,-542.65 4207.3,-542.65"/><text text-anchor="start" x="4218.3" y="-562.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">created_at    </text><text text-anchor="start" x="4452.64" y="-563.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4207.3,-482.65 4207.3,-542.65 4650.3,-542.65 4650.3,-482.65 4207.3,-482.65"/><polygon fill="none" stroke="#29235c" points="4207.3,-482.65 4207.3,-542.65 4650.3,-542.65 4650.3,-482.65 4207.3,-482.65"/><text text-anchor="start" x="4218.3" y="-502.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">last_modified    </text><text text-anchor="start" x="4452.64" y="-503.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">TIMESTAMP</text><polygon fill="#e7e2dd" stroke="transparent" points="4207.3,-422.65 4207.3,-482.65 4650.3,-482.65 4650.3,-422.65 4207.3,-422.65"/><polygon fill="none" stroke="#29235c" points="4207.3,-422.65 4207.3,-482.65 4650.3,-482.65 4650.3,-422.65 4207.3,-422.65"/><text text-anchor="start" x="4218.3" y="-442.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">active    </text><text text-anchor="start" x="4445.51" y="-443.85" font-family="Helvetica,sans-Serif" font-style="italic" font-size="32.00" fill="#29235c">BOOLEAN</text><text text-anchor="start" x="4600.21" y="-443.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c"> </text><text text-anchor="start" x="4609.1" y="-443.85" font-family="Helvetica,sans-Serif" font-weight="bold" font-size="32.00" fill="#29235c">(!)</text><polygon fill="none" stroke="#29235c" stroke-width="2" points="4205.8,-421.65 4205.8,-843.65 4650.8,-843.65 4650.8,-421.65 4205.8,-421.65"/>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3884.15,-2333.95C4032.29,-2333.95 4022.99,-2162.28 4163.76,-2154.24"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4164.26,-2157.72 4174.16,-2153.95 4164.06,-2150.73 4164.26,-2157.72"/><text text-anchor="middle" x="4167.93" y="-2163.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3875.25" y="-2343.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M4651.3,-752.65C4759.42,-752.65 4764.78,-841.08 4804.48,-941.65 4877.56,-1126.81 4743.51,-1818.45 4931.22,-1842.03"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4931.11,-1845.53 4941.3,-1842.65 4931.54,-1838.55 4931.11,-1845.53"/><text text-anchor="middle" x="4935.08" y="-1813.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="4642.4" y="-723.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M3884.15,-2333.95C4086.61,-2333.95 3978.83,-2098.76 4037.33,-1904.95 4056.52,-1841.38 4021.03,-1800.85 4073.33,-1759.95 4311.97,-1573.31 4517.54,-1571.79 4754.98,-1759.95 4955.08,-1918.51 4638.12,-2315.88 4877.79,-2326.72"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4878,-2330.22 4888.08,-2326.95 4878.16,-2323.23 4878,-2330.22"/><text text-anchor="middle" x="4881.86" y="-2336.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="3875.25" y="-2305.15" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M4651.3,-752.65C5038.81,-752.65 5200.48,-579.54 5522.13,-795.65 5635.22,-871.64 5521.51,-1070.22 5645.08,-1080.26"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="5645.1,-1083.76 5655.23,-1080.65 5645.37,-1076.76 5645.1,-1083.76"/><text text-anchor="middle" x="5649" y="-1051.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="4642.4" y="-762.25" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M4654.16,-2333.95C4766.12,-2333.95 4772.33,-2440.21 4877.9,-2446.64"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="4877.98,-2450.14 4888.08,-2446.95 4878.19,-2443.15 4877.98,-2450.14"/><text text-anchor="middle" x="4881.86" y="-2456.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="4645.26" y="-2343.55" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
<path fill="none" stroke="#29235c" stroke-width="3" d="M5421.3,-2022.65C5607.79,-2022.65 5470.47,-1230.08 5645.26,-1201.45"/><polygon fill="#29235c" stroke="#29235c" stroke-width="3" points="5645.54,-1204.94 5655.23,-1200.65 5644.98,-1197.96 5645.54,-1204.94"/><text text-anchor="middle" x="5649" y="-1171.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">*</text><text text-anchor="middle" x="5412.41" y="-1993.85" font-family="Helvetica,sans-Serif" font-size="32.00" fill="#29235c">1</text>
-- junction table for files-dataset relationship-- (file can be a member of many datasets)-- (selections apply only to 1 dataset)-- use suncalc.js-- could use a function for night, on client not db, but want to filter on night-- in file table use mid point of file as time
-- dataset type enumCREATE TYPE dataset_type AS ENUM ('organise', 'test', 'train');-- ALTER TYPE dataset_type ADD VALUE 'miscellaneous';-- Dataset Table-- Add type column to the dataset table, so that I do not ever mix testing data with training data.
latitude DECIMAL(10, 7) NOT NULL CHECK (latitude BETWEEN -90.0 AND 90.0), -- -45.5027longitude DECIMAL(10, 7) NOT NULL CHECK (longitude BETWEEN -180.0 AND 180.0), -- 167.48406description VARCHAR(255), -- Limited to 255 characters for efficiency
latitude DECIMAL(10, 7) NOT NULL CHECK (latitude BETWEEN -90.0 AND 90.0),longitude DECIMAL(10, 7) NOT NULL CHECK (longitude BETWEEN -180.0 AND 180.0),description VARCHAR(255),
timezone_id VARCHAR(40) NOT NULL, -- XXnot required as may need to auto generate cluster, can't always ask or checkFOREIGN KEY (dataset_id) REFERENCES dataset(id)
timezone_id VARCHAR(40) NOT NULL,FOREIGN KEY (dataset_id) REFERENCES dataset(id),UNIQUE (dataset_id, name)
-- N--ALTER TABLE location ADD CONSTRAINT uq_location_dataset_name UNIQUE (dataset_id, name);CREATE UNIQUE INDEX idx_location_dataset_name ON location(dataset_id, name);CREATE INDEX idx_location_name ON location(name);CREATE INDEX idx_location_dataset ON location(dataset_id); -- ??CREATE INDEX idx_location_active ON location(active); -- ??CREATE INDEX idx_location_dataset_active ON location(dataset_id, active);
-- Could not do this as duckdb refuses, the unique index is meant to do it.-- Add unique constraint-- ALTER TABLE cyclic_recording_pattern-- ADD CONSTRAINT unique_record_sleep UNIQUE (record_s, sleep_s);CREATE INDEX idx_cyclic_recording_pattern_active ON cyclic_recording_pattern(active);-- Ensure no duplicate record/sleep combinationsCREATE UNIQUE INDEX idx_cyclic_recording_pattern_unique_combo ON cyclic_recording_pattern(record_s, sleep_s);
-- Cluster Table (think of a cluster of files as all the files on 1 SD Card)-- a statistical unit with no major time gaps, to enable call rate stats-- See changes below, added foreign key on location, added recording pattern-- added timezone_id for iana timezone id
id VARCHAR(12) PRIMARY KEY, -- nanoid(12)dataset_id VARCHAR(12) NOT NULL, -- nanoid, link to datasetlocation_id VARCHAR(12) NOT NULL, -- A cluster must have a location, as well as a dataset
id VARCHAR(12) PRIMARY KEY,dataset_id VARCHAR(12) NOT NULL,location_id VARCHAR(12) NOT NULL,
-- Not implemented but desirable, using unique index instead-- ALTER TABLE cluster ADD CONSTRAINT uq_cluster_location_name UNIQUE (location_id, name);CREATE UNIQUE INDEX idx_cluster_location_name ON cluster(location_id, name);CREATE INDEX idx_cluster_dataset ON cluster(dataset_id);CREATE INDEX idx_cluster_active ON cluster(active);CREATE INDEX idx_cluster_dataset_active ON cluster(dataset_id, active);CREATE INDEX idx_cluster_recording_pattern ON cluster(cyclic_recording_pattern_id);CREATE INDEX idx_cluster_location_id ON cluster(location_id);-- values in my data is medium and medium-high
xxh64_hash VARCHAR(16) NOT NULL, -- hash of original file cbe675a69a5fef1clocation_id VARCHAR(12) NOT NULL, -- nanoid, from locations tabletimestamp_local TIMESTAMP WITH TIME ZONE NOT NULL, -- parsed from filename, adjust for daylight savingcluster_id VARCHAR(12), -- nanoid(12), optional if imported one by oneduration DECIMAL(7, 3) NOT NULL CHECK (duration > 0), -- in seconds, allowing for millisecond precision (9999.999s)
xxh64_hash VARCHAR(16) UNIQUE NOT NULL,location_id VARCHAR(12),timestamp_local TIMESTAMP WITH TIME ZONE NOT NULL,cluster_id VARCHAR(12),duration DECIMAL(7, 3) NOT NULL CHECK (duration > 0),
description VARCHAR(255), -- Limited to 255 characters for efficiencymaybe_solar_night BOOLEAN, --calculate with function on client. this is a more accurate value to file tablemaybe_civil_night BOOLEAN, --calculate with function on client. this is a more accurate value to file tablemoon_phase DECIMAL(3,2) CHECK (moon_phase BETWEEN 0.00 AND 1.00), -- 0.00 to 1.00 (new moon to full moon)
description VARCHAR(255),maybe_solar_night BOOLEAN,maybe_civil_night BOOLEAN,moon_phase DECIMAL(3,2) CHECK (moon_phase BETWEEN 0.00 AND 1.00),
CREATE INDEX idx_file_location ON file(location_id);CREATE INDEX idx_file_active ON file(active);CREATE INDEX idx_file_timestamp_local ON file(timestamp_local);CREATE INDEX idx_file_cluster ON file(cluster_id);CREATE INDEX idx_file_maybe_solar_night ON file(maybe_solar_night);CREATE INDEX idx_file_maybe_civil_night ON file(maybe_civil_night);-- ALTER TABLE file-- ALTER COLUMN location_id DROP NOT NULL;-- UNIMPLEMENTED-- Unique constraint on xxh64_hash to prevent duplicate file hashes-- ALTER TABLE file ADD CONSTRAINT unique_xxh64_hash UNIQUE (xxh64_hash);
recorder_id VARCHAR(16), -- 24F31901603710CD (16)gain gain_level NULL, -- low, medium, high or nullbattery_v DECIMAL(2, 1) CHECK (battery_v >= 0), -- for values from 0 to 9.9temp_c DECIMAL(3, 1), -- e.g., 24.2
recorder_id VARCHAR(16),gain gain_level NULL,battery_v DECIMAL(2, 1) CHECK (battery_v >= 0),temp_c DECIMAL(3, 1),
id VARCHAR(21) PRIMARY KEY, -- nanoidfile_id VARCHAR(21) NOT NULL, -- nanoiddataset_id VARCHAR(12) NOT NULL, -- nanoid, link to datasetstart_time DECIMAL(7,3) NOT NULL, --up to 9999.999 secondsend_time DECIMAL(7,3) NOT NULL, -- up to 9999.999 secondsfreq_low DECIMAL(9,3) CHECK (freq_low < 300000), -- LOOK AT CHECKfreq_high DECIMAL(9,3) CHECK (freq_high < 300000), -- LOOK AT CHECKdescription VARCHAR(255), -- Limited to 255 characters for efficiency
id VARCHAR(21) PRIMARY KEY,file_id VARCHAR(21) NOT NULL,dataset_id VARCHAR(12) NOT NULL,start_time DECIMAL(7,3) NOT NULL,end_time DECIMAL(7,3) NOT NULL,freq_low DECIMAL(9,3) CHECK (freq_low < 300000),freq_high DECIMAL(9,3) CHECK (freq_high < 300000),description VARCHAR(255),
-- CREATE INDEX idx_selection_metadata_json ON selection_metadata USING gin(json); -- unimplemensedCREATE INDEX idx_selection_metadata_active ON selection_metadata(active);-- eBird Taxonomy Table-- will need to update INDEX too when introducing a new version-- see working with ebird taxonomies, aichat, deepseek, macbook-- see materialised view and index on it-- see alter table stuff below, modifications
id VARCHAR(12) PRIMARY KEY, -- nanoid(12)species_id VARCHAR(12) NOT NULL, -- link to parent specieslabel VARCHAR(100) NOT NULL, -- display name like "male", "female", "duet"
id VARCHAR(12) PRIMARY KEY,species_id VARCHAR(12) NOT NULL,label VARCHAR(100) NOT NULL,
id VARCHAR(21) PRIMARY KEY, -- nanoidselection_id VARCHAR(21) NOT NULL, -- link to selection tablespecies_id VARCHAR(12) NOT NULL, -- link to species table
id VARCHAR(21) PRIMARY KEY,selection_id VARCHAR(21) NOT NULL,species_id VARCHAR(12) NOT NULL,
id VARCHAR(21) PRIMARY KEY, -- nanoidlabel_id VARCHAR(21) NOT NULL, -- link to parent labelcalltype_id VARCHAR(12) NOT NULL, -- link to call_type table
id VARCHAR(21) PRIMARY KEY,label_id VARCHAR(21) NOT NULL,calltype_id VARCHAR(12) NOT NULL,
-- UNIQUE (label_id) -- ensures 1:1 relationship with label. how do i handle multiple call type filters? needs 1:many relation
);CREATE TABLE species_dataset (species_id VARCHAR(12) NOT NULL,dataset_id VARCHAR(12) NOT NULL,created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (species_id, dataset_id),FOREIGN KEY (species_id) REFERENCES species(id),FOREIGN KEY (dataset_id) REFERENCES dataset(id)
-- UNIMPLEMENTED-- file_dataset must exist first-- Referential Integrity for Selections-- To ensure `selections.dataset_id` is valid for the associated file:-- Add composite foreign key (requires file_dataset to exist first)-- ALTER TABLE selection ADD CONSTRAINT fk_selection_file_dataset-- FOREIGN KEY (file_id, dataset_id) REFERENCES file_dataset(file_id, dataset_id);
-- to help with plain text search on common name and scientific nameCREATE INDEX idx_ebird_name_search ON ebird_taxonomy_v2024 USING gin(to_tsvector('english', primary_com_name || ' ' || sci_name));CREATE INDEX ebird_taxonomy_species_code ON ebird_taxonomy_v2024(species_code);-- Junction Table for Species to Dataset (many-to-many)CREATE TABLE species_dataset (species_id VARCHAR(12) NOT NULL,dataset_id VARCHAR(12) NOT NULL,created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,last_modified TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,PRIMARY KEY (species_id, dataset_id),FOREIGN KEY (species_id) REFERENCES species(id),FOREIGN KEY (dataset_id) REFERENCES dataset(id));-- indexes for the junction tableCREATE INDEX idx_species_dataset_species ON species_dataset(species_id);
-- FK indexes on file table (1.26M rows)CREATE INDEX idx_file_location ON file(location_id);CREATE INDEX idx_file_cluster ON file(cluster_id);-- Performance index on file for time-based queriesCREATE INDEX idx_file_timestamp_local ON file(timestamp_local);-- FK indexes on selection table (201K rows)CREATE INDEX idx_selection_file ON selection(file_id);CREATE INDEX idx_selection_dataset ON selection(dataset_id);-- FK indexes on label table (200K rows)CREATE INDEX idx_label_selection_id ON label(selection_id);CREATE INDEX idx_label_species_id ON label(species_id);-- FK indexes on label_subtype table (114K rows)CREATE INDEX idx_label_subtype_label_id ON label_subtype(label_id);CREATE INDEX idx_label_subtype_calltype_id ON label_subtype(calltype_id);CREATE INDEX idx_label_subtype_filter_id ON label_subtype(filter_id);-- FK lookup for ebird taxonomy (used by species table FK)CREATE INDEX idx_ebird_taxonomy_species_code ON ebird_taxonomy(species_code, taxonomy_version);-- Junction table reverse lookupsCREATE INDEX idx_file_dataset_dataset ON file_dataset(dataset_id);
CREATE INDEX idx_species_dataset_species ON species_dataset(species_id);
dataset_id [name: "idx_cluster_dataset"]active [name: "idx_cluster_active"](dataset_id, active) [name: "idx_cluster_dataset_active"]cyclic_recording_pattern_id [name: "idx_cluster_recording_pattern"]location_id [name: "idx_cluster_location_id"]
(location_id, name) [unique]
# Skraak MCP ServerA production-ready Model Context Protocol (MCP) server implemented in Go that provides a generic SQL interface for an acoustic monitoring database, plus time utilities for AI assistants.## OverviewThis MCP server provides AI assistants with direct SQL query access to an acoustic monitoring database containing recordings, locations, species data, and classifications. Built using the official MCP Go SDK, it follows MCP's three-primitive architecture with an LLM-friendly design focused on providing schema context rather than rigid tool APIs.## Features### Tools (Model-Controlled)- **execute_sql**: Execute arbitrary SQL SELECT queries against the database- Supports: SELECT, WITH (CTEs), parameterized queries (? placeholders)- Security: Read-only database access, forbidden keyword validation- Limits: Default 1000 rows (max 10000)- **get_current_time**: Returns current system time in RFC3339 format with timezone and Unix timestamp### Resources (Application-Driven)- **schema://full**: Complete database schema (348 lines)- **schema://table/{name}**: Individual table definitions- Provides full context for LLM to construct any query
# Skraak
### Prompts (User-Controlled)- 6 SQL workflow templates teaching query patterns- Examples for JOINs, aggregates, filtering, hierarchical queries- Help LLMs construct appropriate queries for common tasks
Acoustic monitoring database toolkit in Go. Use as an MCP server for AI assistants or as a CLI for direct access.
### Architecture Benefits- **Generic SQL > Specialized Tools**: Infinite query flexibility vs rigid APIs- **Schema-Driven**: LLMs construct queries from full database context- **Read-Only Safety**: Database enforced read-only mode + validation layers- **Full SQL Expressiveness**: JOINs, aggregates, CTEs, subqueries all available### Utility Libraries- **Filename parsing**: Smart date format detection (YYYYMMDD, YYMMDD, DDMMYY) with variance-based disambiguation- **Timezone handling**: Fixed-offset strategy for DST transitions- **AudioMoth parsing**: Extract metadata from AudioMoth WAV comments- **WAV metadata**: Efficient header parsing for duration, sample rate, INFO chunks- **Astronomical calculations**: Solar/civil night detection, moon phase- **XXH64 hashing**: Fast file hashing for deduplication### Testing- **136 unit tests** with **91.5% code coverage**- Comprehensive test suite ported from TypeScript original- End-to-end shell script tests for MCP protocol- Full MCP protocol compliance via stdio transport- Type-safe tool handlers with automatic JSON schema generation- Extensible architecture for adding new tools### Tool Count- **14 total tools**: Read (2) + Write (8) + Import (4)## Requirements- Go 1.25.6 or later- MCP-compatible client (Claude Desktop, etc.)
**Database Options:**- **Production**: `./db/skraak.duckdb` - Real data, use for Claude Desktop- **Testing**: `./db/test.duckdb` - Test data, use for development/testing**⚠️ IMPORTANT**: Always use `test.duckdb` for testing and development to avoid corrupting production data!
Examples:```bash# Production use (Claude Desktop)./skraak_mcp ./db/skraak.duckdb# Testing (development, shell scripts)./skraak_mcp ./db/test.duckdb```### Configuring with Claude DesktopAdd to your Claude Desktop MCP configuration file:**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`**Linux**: `~/.config/Claude/claude_desktop_config.json`
**Claude Desktop config** (`~/.config/Claude/claude_desktop_config.json`):
}```## Available Tools### Query Tools### execute_sqlExecute arbitrary SQL SELECT queries against the acoustic monitoring database.**Input**:```json{"query": "SELECT id, name FROM dataset WHERE active = true","parameters": [],"limit": 1000}```**Parameters**:- `query` (required): SQL query (must start with SELECT or WITH)- `parameters` (optional): Array of values for ? placeholders- `limit` (optional): Row limit (default 1000, max 10000)**Output**:```json{"rows": [...],"row_count": 42,"columns": ["id", "name", "active"]}```**Security**:- Database is read-only (enforced by DuckDB)- Forbidden keywords blocked: INSERT, UPDATE, DELETE, DROP, CREATE, ALTER- Row limits prevent overwhelming responses**Example Queries**:```sql-- Basic querySELECT * FROM dataset WHERE active = true-- Parameterized querySELECT * FROM location WHERE dataset_id = ? AND active = true-- JOIN with aggregatesSELECT d.name, COUNT(l.id) as locationsFROM dataset dLEFT JOIN location l ON d.id = l.dataset_idWHERE d.active = trueGROUP BY d.name```### get_current_timeReturns the current system time with comprehensive timezone information.**Input**: None**Output**:```json{"time": "2024-01-25T10:30:45Z","timezone": "UTC","unix": 1706181045}```**Fields**:- `time`: Current system time in RFC3339 format (ISO 8601 compatible)- `timezone`: System timezone identifier- `unix`: Unix timestamp in seconds since epoch### Import Tools### import_audio_filesBatch import WAV files from a folder into the database.**Input**:```json{"folder_path": "/absolute/path/to/recordings","dataset_id": "abc123xyz789","location_id": "def456uvw012","cluster_id": "ghi789rst345","recursive": true}```**Parameters**:- `folder_path` (required): Absolute path to folder containing WAV files- `dataset_id` (required): Dataset ID (12 characters)- `location_id` (required): Location ID (12 characters)- `cluster_id` (required): Cluster ID (12 characters)- `recursive` (optional): Scan subfolders recursively (default: true)**Features**:- Automatically parses AudioMoth and filename timestamps- Calculates XXH64 hashes for deduplication- Extracts WAV metadata (duration, sample rate, channels)- Computes astronomical data (solar/civil night, moon phase)- Skips duplicates (by hash)- Imports in single transaction (all-or-nothing)### import_fileImport a single WAV file into the database.**Input**:```json{"file_path": "/absolute/path/to/recording.wav","dataset_id": "abc123xyz789","location_id": "def456uvw012","cluster_id": "ghi789rst345"}```**Output**:```json{"file_id": "nB3xK8pLm9qR5sT7uV2wX","file_name": "recording.wav","hash": "a1b2c3d4e5f6g7h8","duration_seconds": 60.0,"sample_rate": 250000,"timestamp_local": "2024-01-15T20:30:00+13:00","is_audiomoth": true,"is_duplicate": false,"processing_time": "250ms"}```**Use Cases**:- Import individual files with detailed feedback- Programmatic import with known file paths- Get immediate duplicate detection feedback### import_ml_selectionsImport ML-detected kiwi call selections from folder structure.**Input**:```json{"folder_path": "/path/to/Clips_filter_date","dataset_id": "abc123xyz789","cluster_id": "def456uvw012"}```**Features**:- **Folder structure**: `Clips_{filter_name}_{date}/Species/CallType/*.wav+.png`- **Filename parsing**: `{base}-{start}-{end}.wav` format- **Two-pass file matching**: Exact match, then fuzzy date_time pattern match- **Comprehensive validation**: Filter, species, call types, files, selection bounds- **Transactional import**: All-or-nothing with error collection- **Database relations**: selection → label (species) → label_subtype (call type)### bulk_file_importBatch import WAV files across multiple locations/clusters using a CSV file.**Input**:```json{"dataset_id": "abc123xyz789","csv_path": "/absolute/path/to/import.csv","log_file_path": "/absolute/path/to/progress.log"}```**CSV Format**:```csvlocation_name,location_id,directory_path,date_range,sample_rate,file_countSite A,loc123456789,/path/to/siteA,2024-01,48000,150Site B,loc987654321,/path/to/siteB,2024-02,48000,200```**Required CSV Columns**:- `location_name`: Human-readable location name- `location_id`: 12-character location ID from database- `directory_path`: Absolute path to folder containing WAV files- `date_range`: Cluster name (typically date range like "2024-01" or "Jan-2024")- `sample_rate`: Sample rate in Hz (e.g., 48000, 250000)- `file_count`: Expected number of files (for validation)**Features**:- **Auto-creates clusters**: Creates clusters if they don't exist for location/date_range- **Progress logging**: Writes detailed logs to file for real-time monitoring (use `tail -f`)- **Synchronous execution**: Processes locations sequentially, fail-fast on errors- **Summary statistics**: Returns counts for clusters, files, duplicates, errors- **Duplicate handling**: Skips files with duplicate hashes across all clusters**Output**:```json{"total_locations": 10,"clusters_created": 5,"clusters_existing": 5,"total_files_scanned": 1500,"files_imported": 1200,"files_duplicate": 250,"files_error": 50,"processing_time": "5m30s","errors": []}```**Use Cases**:- Bulk import across many locations at once- Automated import pipelines with CSV generation- Large-scale data migration- Batch processing with progress monitoring### Write Tools### create_datasetCreate a new dataset.**Input**:```json{"name": "My Dataset","description": "Description of dataset","type": "organise"
**Parameters**:- `name` (required): Dataset name (max 255 characters)- `description` (optional): Dataset description (max 255 characters)- `type` (optional): Dataset type - "organise", "test", or "train" (default: "organise")
### CLI Commands
Create a new location within a dataset.**Input**:```json{"dataset_id": "abc123xyz789","name": "Recording Site A","latitude": -41.2865,"longitude": 174.7762,"timezone_id": "Pacific/Auckland","description": "Forest recording site"}
# Bulk import from CSV./skraak import bulk --db ./db/skraak.duckdb --dataset abc123 --csv import.csv --log progress.log
**Parameters**:- `dataset_id` (required): Parent dataset ID (12 characters)- `name` (required): Location name (max 140 characters)- `latitude` (required): Latitude in decimal degrees (-90 to 90)- `longitude` (required): Longitude in decimal degrees (-180 to 180)- `timezone_id` (required): IANA timezone ID (e.g., "Pacific/Auckland")- `description` (optional): Location description (max 255 characters)
## Available Tools
**Input**:```json{"dataset_id": "abc123xyz789","location_id": "def456uvw012","name": "2024-01","sample_rate": 48000,"description": "January 2024 recordings","cyclic_recording_pattern_id": "pat123456789"}```
**Write:**- `create_or_update_dataset` - Create or update a dataset- `create_or_update_location` - Create or update a location with GPS/timezone- `create_or_update_cluster` - Create or update a cluster within a location- `create_or_update_pattern` - Create or update a cyclic recording pattern
**Parameters**:- `dataset_id` (required): Parent dataset ID (12 characters)- `location_id` (required): Parent location ID (12 characters)- `name` (required): Cluster name (max 140 characters)- `sample_rate` (required): Sample rate in Hz (must be positive)- `description` (optional): Cluster description (max 255 characters)- `cyclic_recording_pattern_id` (optional): Recording pattern ID (12 characters)
**Import:**- `import_audio_files` - Batch import WAV files from a folder- `import_file` - Import a single WAV file- `import_ml_selections` - Import ML-detected selections from folder structure- `bulk_file_import` - Bulk import from CSV across multiple locations
**Parameters**:- `record_seconds` (required): Number of seconds to record (must be positive)- `sleep_seconds` (required): Number of seconds to sleep between recordings (must be positive)
MCP server provides:- `schema://full` - Complete database schema- `schema://table/{name}` - Individual table definitions- 6 SQL workflow prompts teaching query patterns
### Project Structure```skraak_mcp/├── go.mod # Go module definition├── go.sum # Dependency checksums├── main.go # Server entry point, tool registration├── README.md # This file├── CLAUDE.md # Development notes and best practices├── db/ # Database files│ ├── db.go # Database connection (read-only)│ ├── types.go # Type definitions│ ├── schema.sql # Database schema (348 lines)│ ├── skraak.duckdb # Production database ⚠️│ └── test.duckdb # Test database ✅├── tools/ # MCP tool implementations│ ├── time.go # get_current_time│ ├── sql.go # execute_sql│ ├── import_files.go # import_audio_files (batch WAV import)│ ├── import_file.go # import_file (single WAV file)│ ├── import_ml_selections.go # import_ml_selections (ML detections)│ ├── bulk_file_import.go # bulk_file_import (CSV-based bulk import)│ ├── write_dataset.go # create_dataset│ ├── write_location.go # create_location│ ├── write_cluster.go # create_cluster│ ├── write_pattern.go # create_cyclic_recording_pattern│ ├── update_dataset.go # update_dataset│ ├── update_location.go # update_location│ ├── update_cluster.go # update_cluster│ └── update_pattern.go # update_pattern├── resources/ # MCP resources│ └── schema.go # Database schema resources├── prompts/ # MCP prompts│ └── examples.go # SQL workflow templates├── utils/ # Utility functions│ ├── astronomical.go # Solar/civil night, moon phase│ ├── astronomical_test.go # Tests (11 cases)│ ├── audiomoth_parser.go # AudioMoth WAV parsing│ ├── audiomoth_parser_test.go # Tests (36 cases)│ ├── filename_parser.go # Filename timestamp parsing│ ├── filename_parser_test.go # Tests (60 cases)│ ├── wav_metadata.go # WAV header parsing│ ├── wav_metadata_test.go # Tests (22 cases)│ ├── xxh64.go # File hashing│ └── xxh64_test.go # Tests (6 cases)└── shell_scripts/ # End-to-end test scripts├── test_sql.sh # SQL tool tests├── test_resources_prompts.sh # Resources/prompts tests├── test_all_prompts.sh # All prompts tests└── get_time.sh # Time tool test```### Database SchemaThe acoustic monitoring database contains:**Core Tables:**- **dataset** - Recording projects (organise/test/train types)- **location** - Recording sites with GPS coordinates (139 active locations)- **cluster** - Grouped recordings at each location- **file** - Individual audio files with metadata
**Annotation Tables:**- **selection** - Time-frequency selections within files- **label** - Classifications and annotations- **kiwi_call**, **call**, **syllable** - Hierarchical call structure**Taxonomy Tables:**- **species**, **genus**, **family**, **order**, **class**, **phylum**, **kingdom**- **species_group**, **family_group**, **order_group** - Grouping tables**Key Fields:**- Most tables have `active` boolean for soft deletes- Timestamps use `timestamp_local` (with timezone) and may include `timestamp_utc`- Files include astronomical data: `maybe_solar_night`, `maybe_civil_night`, `moon_phase`- AudioMoth metadata: `recorder_id`, `gain`, `battery_v`, `temp_c`Full schema available via `schema://full` resource.### Adding New ToolsThe server follows MCP best practices with type-safe tool handlers:1. **Create tool file** in `tools/` package (e.g., `tools/analysis.go`)2. **Define input/output structures** with jsonschema tags:```gotype AnalysisInput struct {ClusterID string `json:"cluster_id" jsonschema:"Cluster to analyze"`Metric string `json:"metric" jsonschema:"Metric to calculate"`}type AnalysisOutput struct {Value float64 `json:"value" jsonschema:"Calculated metric value"`Unit string `json:"unit" jsonschema:"Unit of measurement"`}```3. **Implement handler function**:```gofunc Analyze(ctx context.Context, req *mcp.CallToolRequest, input AnalysisInput) (*mcp.CallToolResult,AnalysisOutput,error,) {// Implementationreturn &mcp.CallToolResult{}, output, nil}```4. **Register in main.go**:```goerr := mcp.AddTool(server,"analyze_cluster","Calculate metrics for a recording cluster",tools.Analyze,)```5. **Add tests** in `tools/analysis_test.go`### Testing#### Unit TestsComprehensive test suite with **91.5% code coverage**:
# Run specific package testsgo test ./utils/# Verbose output with test namesgo test -v ./utils/# Run specific testgo test -v ./utils/ -run TestParseFilenameTimestamps# Coverage reportgo test -cover ./utils/# Generate HTML coverage reportgo test -coverprofile=coverage.out ./utils/go tool cover -html=coverage.out```**Test Coverage:**- **136 unit tests** across 5 test files- Filename parsing: Format detection, variance disambiguation, timezone handling- AudioMoth: Comment parsing, all gain levels, temperature/battery- WAV metadata: Duration, sample rate, INFO chunks- Astronomical: Solar/civil night, moon phase calculations- Edge cases: Invalid dates, leap years, DST transitions
#### End-to-End TestsShell scripts test the MCP protocol integration:```bash# Navigate to test scriptscd shell_scripts# ⚠️ ALWAYS use test.duckdb for testing!# Test SQL tool (pipe to file to avoid token overflow)./test_sql.sh ../db/test.duckdb > test.txt 2>&1rg '"result":' test.txt | wc -l # Count successful queries# Test resources and prompts./test_resources_prompts.sh ../db/test.duckdb > test_resources.txt 2>&1cat test_resources.txt | jq '.'# Test all prompts./test_all_prompts.sh ../db/test.duckdb > test_prompts.txt 2>&1# Test time tool (no database needed)./get_time.sh
# Run with coveragego test -cover ./...
**Important**: Always use `test.duckdb` for testing to avoid corrupting production data!## Dependencies### Core- Go 1.25.6 or later- [MCP Go SDK](https://github.com/modelcontextprotocol/go-sdk) v1.2.0+- [DuckDB Go SDK](https://github.com/duckdb/duckdb-go) v2### Utilities- [SunCalc Go](https://github.com/sixdouglas/suncalc) - Astronomical calculations- [XXHash](https://github.com/cespare/xxhash/v2) - Fast hashing algorithm
## Protocol ComplianceThis server implements:- MCP Protocol version: Latest- Transport: stdio (JSON-RPC 2.0)- Capabilities: Tools- Future support: Resources, Prompts## LicenseMIT## ContributingContributions welcome! Please ensure:- Code follows Go best practices- Tools include comprehensive descriptions- JSON schema tags document all fields- Error handling is robust## Troubleshooting**Server won't start**:- Check Go version: `go version`- Rebuild: `go build -o skraak_mcp`- Check logs in stderr**Tool not appearing in client**:- Verify MCP configuration path- Restart Claude Desktop- Check server binary path is correct**Time format issues**:- Output uses RFC3339 (ISO 8601) format- Timezone reflects system configuration- Unix timestamp is in seconds (not milliseconds)
See `CLAUDE.md` for detailed development notes.