Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 20:14:14 +0000 (20:14 +0000)]
Fix check for unique roles per event
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:18:25 +0000 (19:18 +0000)]
Update roles docs to note that roles apply to feeding station attendance
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:09:57 +0000 (19:09 +0000)]
Update diagrams for event based attendance design
Split ATTENDANCE table, creating ARRIVALS_A, an attendance arrival
and departure event table.
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:06:15 +0000 (19:06 +0000)]
Grammer
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:04:31 +0000 (19:04 +0000)]
Use macro to enforce Certainty = sdb_identity_certain
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 19:01:22 +0000 (19:01 +0000)]
Use macro to enforce Start = Stop
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 17:30:22 +0000 (17:30 +0000)]
Shorten EVENTS.Behavior constraint name to fit within limits
Unfortunately, there is not enough space to list the allowed
behavior codes. The user will just have to refer to the documentaion
when they violate the constraint.
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 17:27:23 +0000 (17:27 +0000)]
Allow the EVENT.Behavior to be sdb_groom_scan
Karl O. Pinc kop@karlpinc.com [Mon, 1 Jun 2026 04:55:59 +0000 (04:55 +0000)]
Give time precision docs their own section
Karl O. Pinc kop@karlpinc.com [Sun, 31 May 2026 22:00:43 +0000 (22:00 +0000)]
Hyperlink to tables that have been documented
Karl O. Pinc kop@karlpinc.com [Sun, 31 May 2026 21:19:58 +0000 (21:19 +0000)]
Move docs of sdb_actor, sdb_actee, and sdb_mutual into ROLE_CODES
Karl O. Pinc kop@karlpinc.com [Sun, 31 May 2026 13:20:10 +0000 (13:20 +0000)]
Update copyright date
Karl O. Pinc kop@karlpinc.com [Sun, 31 May 2026 13:17:21 +0000 (13:17 +0000)]
Grammar
Karl O. Pinc kop@karlpinc.com [Sat, 30 May 2026 00:05:42 +0000 (00:05 +0000)]
Make sdb_mutual (Mutual) a special ROLE_CODES.Role value
When there is one participant with a sdb_mutual role, there must be
at least one other participant with this role.
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 17:46:05 +0000 (17:46 +0000)]
Allow EVENTS and ATTENDANCE to relate, add EVENTS.AtID column
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 17:43:02 +0000 (17:43 +0000)]
New null_xor_null() macro: exactly one of 2 columns must be NULL
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 17:35:00 +0000 (17:35 +0000)]
EVENTS is to reference ATTENDANCE, so create ATTENDANCE first
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 15:00:34 +0000 (15:00 +0000)]
Convert the follow_map_time_problems table into the clean schema
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 13:04:55 +0000 (13:04 +0000)]
With groom scans, start must equal stop
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 00:53:15 +0000 (00:53 +0000)]
Change table name GROOM_SCANS -> GROOM_SCANS_B
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 00:34:56 +0000 (00:34 +0000)]
Replace "estrus" with "swelling", FEMALE_STATES -> REPRO_STATES
Karl O. Pinc kop@karlpinc.com [Thu, 28 May 2026 00:17:42 +0000 (00:17 +0000)]
Change "estrus" to "swelling" in ESTRUS_STATES names
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 23:57:36 +0000 (23:57 +0000)]
Talk about "swelling" not "estrus" in the CYCLE_STATES docs
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 23:53:02 +0000 (23:53 +0000)]
Change global constant name sdb_manual_estrus -> sdb_manual_swelling
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 23:33:32 +0000 (23:33 +0000)]
Change "estrus" to "swelling" in ESTRUS_SOURCES names
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:59:47 +0000 (19:59 +0000)]
Fix so FOLLOWS.CommID is validated against COMM_IDS
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 23:46:36 +0000 (23:46 +0000)]
Change column name: FOLLOWS.Community -> CommID
Make consistent with other column names. Per 2026-05-26 meeting.
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:50:08 +0000 (19:50 +0000)]
Fix copyright dates
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:41:29 +0000 (19:41 +0000)]
Change column name: AGGRESSIONS.Community ->CommID
Make consistent with other column names. Per 2026-05-26 meeting.
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:27:09 +0000 (19:27 +0000)]
Change column name: AGGRESSION_EVENT_LOG.Community ->CommID
Make consistent with other column names. Per 2026-05-26 meeting.
Karl O. Pinc kop@karlpinc.com [Wed, 27 May 2026 19:07:02 +0000 (19:07 +0000)]
Create, document, index, and trigger ATTENDANCE
Karl O. Pinc kop@karlpinc.com [Tue, 26 May 2026 19:07:49 +0000 (19:07 +0000)]
Increase maximum FOOD_EVENTS per EVENTS row
Some of the MS Access columns have semi-colons separating food values,
so instead of 2 values to go with the 2 MS Access columns we need
4 possible values.
Karl O. Pinc [Mon, 25 May 2026 22:54:56 +0000 (17:54 -0500)]
Add ATTENDANCE to demography ER diagram
Karl O. Pinc [Mon, 25 May 2026 21:55:13 +0000 (16:55 -0500)]
Remove estrus tables from demography ER diagram
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 18:22:33 +0000 (18:22 +0000)]
Table qualify column names for clarity
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 18:12:49 +0000 (18:12 +0000)]
Create, document, index, and trigger GROOM_SCANS
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 18:10:17 +0000 (18:10 +0000)]
Typos
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 17:53:15 +0000 (17:53 +0000)]
EVENTS.Start and Stop have semantics that depend on the behavior
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 17:51:41 +0000 (17:51 +0000)]
Link to the detailed description of behavior codes
Karl O. Pinc [Mon, 25 May 2026 17:39:47 +0000 (12:39 -0500)]
Add GROOM_SCANS to the Events ER diagram
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 17:24:08 +0000 (17:24 +0000)]
Adjust data integrity rules to allow "other" grooming participants
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 16:55:46 +0000 (16:55 +0000)]
Removed dropped GROOMINGS.Other column
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 16:52:50 +0000 (16:52 +0000)]
Remove index from dropped columns
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 16:27:23 +0000 (16:27 +0000)]
Generalize EVENTS.Certainty description
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 15:00:13 +0000 (15:00 +0000)]
Document Observer check on transaction commit
Karl O. Pinc kop@karlpinc.com [Mon, 25 May 2026 14:40:24 +0000 (14:40 +0000)]
Add female reproductive ER diagram to docs
Karl O. Pinc [Mon, 25 May 2026 14:29:07 +0000 (09:29 -0500)]
A ER diagram related to female sexual cycling
We'll see if we want to keep this. For the hot minute, the
estrus states are left on the demography ER diagram.
Karl O. Pinc [Sun, 24 May 2026 01:00:01 +0000 (20:00 -0500)]
Drop GROOMINGS.Other column
Karl O. Pinc kop@karlpinc.com [Sat, 23 May 2026 23:36:03 +0000 (23:36 +0000)]
Create, document, index, and trigger GROOMINGS
Karl O. Pinc kop@karlpinc.com [Sat, 23 May 2026 21:04:40 +0000 (21:04 +0000)]
The ROLES.Role of sdb_actor and sdb_actee must occur in pairs
Karl O. Pinc kop@karlpinc.com [Thu, 21 May 2026 23:26:38 +0000 (23:26 +0000)]
Remove hardcoding of aggression event
We will need to execute this code to support grooming events.
Karl O. Pinc kop@karlpinc.com [Thu, 21 May 2026 23:25:39 +0000 (23:25 +0000)]
Prevent updates to ROLES.Role
Karl O. Pinc kop@karlpinc.com [Thu, 21 May 2026 23:08:30 +0000 (23:08 +0000)]
There can only be one individual related to a food event
Karl O. Pinc kop@karlpinc.com [Wed, 20 May 2026 15:12:04 +0000 (15:12 +0000)]
The individual consuming the food must be the focal
Karl O. Pinc kop@karlpinc.com [Wed, 20 May 2026 14:40:49 +0000 (14:40 +0000)]
Declare variables needed to to check focal participantion as globals
Karl O. Pinc kop@karlpinc.com [Wed, 20 May 2026 14:25:28 +0000 (14:25 +0000)]
Place an upper limit (2) on the foods consumed per food event
Karl O. Pinc kop@karlpinc.com [Mon, 18 May 2026 16:16:30 +0000 (16:16 +0000)]
Fix markup
Karl O. Pinc kop@karlpinc.com [Mon, 18 May 2026 15:53:44 +0000 (15:53 +0000)]
Give unique indexes descriptive names
The user can see these names on index violations, which are db rule
integrity violations. Give them a clue as to what the probem is.
Karl O. Pinc kop@karlpinc.com [Mon, 18 May 2026 15:27:52 +0000 (15:27 +0000)]
An individual can only appear in an event once
Karl O. Pinc kop@karlpinc.com [Mon, 18 May 2026 15:02:51 +0000 (15:02 +0000)]
Correct markup, improve text of "participant must be studyed" paragraph
Karl O. Pinc kop@karlpinc.com [Sun, 17 May 2026 00:48:25 +0000 (00:48 +0000)]
Move the "not there" warning from AGGRESSIONS to ROLES
Karl O. Pinc kop@karlpinc.com [Sun, 17 May 2026 00:38:43 +0000 (00:38 +0000)]
Change GROOMINS.Others -> Other in ER diagram
Karl O. Pinc kop@karlpinc.com [Sat, 16 May 2026 17:12:53 +0000 (17:12 +0000)]
Remove extra words
Karl O. Pinc kop@karlpinc.com [Sat, 16 May 2026 12:10:40 +0000 (12:10 +0000)]
Improve AGGRESSIONS docs
Based on Ian's review of 2026-05-15
Karl O. Pinc kop@karlpinc.com [Sat, 16 May 2026 11:58:28 +0000 (11:58 +0000)]
Allow aggression event logs back to 1960
Per Ian's review of 2026-05-15
Karl O. Pinc [Fri, 15 May 2026 01:30:20 +0000 (20:30 -0500)]
Remove GROOMINGS.TimeCertainty and Duplicate columns, add Problems
Karl O. Pinc [Thu, 14 May 2026 20:43:53 +0000 (15:43 -0500)]
Add new columns to AGGRESSIONS ER diagram
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 20:04:00 +0000 (20:04 +0000)]
Create, document, index, and trigger FOOD_EVENTS
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 19:25:42 +0000 (19:25 +0000)]
Fix "must" v.s. "should" wording
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 17:27:11 +0000 (17:27 +0000)]
Document the transaction concept
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 19:16:07 +0000 (19:16 +0000)]
Better handle :ref:s that show up in sentences
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 16:16:44 +0000 (16:16 +0000)]
Fix hyperlink
Karl O. Pinc kop@karlpinc.com [Thu, 14 May 2026 00:00:07 +0000 (00:00 +0000)]
Create, document, and index FOOD_NAMES table
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:58:49 +0000 (23:58 +0000)]
Create, document, and index FOOD_PARTS table
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:53:14 +0000 (23:53 +0000)]
New macro: positive_check() Checks a column is a positive number
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:51:44 +0000 (23:51 +0000)]
Get rid of trailing spaces
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:49:54 +0000 (23:49 +0000)]
Alphabetize by code table name
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:03:47 +0000 (23:03 +0000)]
Re-arrange the overview paragraphs
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 23:01:24 +0000 (23:01 +0000)]
Better docs regards EVENTS.Behavior codes and the event detail tables
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:33:34 +0000 (22:33 +0000)]
Index AGGRESSIONS
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:29:04 +0000 (22:29 +0000)]
Change note regarding extracted text into a sidebar
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:12:46 +0000 (22:12 +0000)]
Index SIGHTINGS
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:07:03 +0000 (22:07 +0000)]
Explicitly document that SIGHTINGS.AnimID and Date pair must be unique
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 22:05:28 +0000 (22:05 +0000)]
Fix SIGHTINGS.Date link text in RST references
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 20:19:32 +0000 (20:19 +0000)]
Create SIGHTINGS trigger
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 20:15:44 +0000 (20:15 +0000)]
Put lower bound on SIGHTINGS.Date
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 19:40:22 +0000 (19:40 +0000)]
Add note documenting relations between extracted AGGRESSIONS columns
Document that AGGRESSIONS FullAccount, AggressorBehavior, and
RecipientBehavior can all be duplicate information.
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 19:39:16 +0000 (19:39 +0000)]
Add the AGGRESSIONS.RecipientBehavior column
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 19:38:53 +0000 (19:38 +0000)]
Add the AGGRESSIONS.AggressorBehavior column
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 19:37:45 +0000 (19:37 +0000)]
Add the AGGRESSIONS.FullAccount column
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 18:30:15 +0000 (18:30 +0000)]
Fix AGGRESSIONS substituition references' anchors
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 18:27:07 +0000 (18:27 +0000)]
Fix RST syntax
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 17:58:37 +0000 (17:58 +0000)]
Have AGGRESSIONS.Severity validate off the AGG_SEVERITIES table
The clean.ae_fight_category column needs to have a single space
normalized to NULL.
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 17:52:36 +0000 (17:52 +0000)]
Create and document the AGG_SEVERITIES table
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 17:16:24 +0000 (17:16 +0000)]
For aggressions, EVENTS.Certainty is the certainty of the recipient
After phone discussion with Ian, 2026-05-13.
The MS Access aggression_event.ae_recipient_certainty_flag column
will need to be normalized to 'Y' and 'N' in the "clean" schema.
NULL and N means false, Y and X means true. And some other
illegitimate values exist.
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 17:14:13 +0000 (17:14 +0000)]
Use better SQL literal syntax
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 17:00:04 +0000 (17:00 +0000)]
Spelling
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 16:59:57 +0000 (16:59 +0000)]
Produce warning when AGGRESSIONS.Community <> FOLLOWS.Community
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 16:50:21 +0000 (16:50 +0000)]
Create SIGHTINGS table
Somehow, the file that defines the table was empty.
This fixes the error that prevents comments from loading into the db
when the db is (re)created.
Karl O. Pinc kop@karlpinc.com [Wed, 13 May 2026 15:57:57 +0000 (15:57 +0000)]
Create the NON_BREC_SIGHTING_SOURCES table
This fixes errors reported by gen_comments.py when creating the database.