Feat: Architecture redesign for Assessments, Commands, Modalities, Training Techniques, Reinforcement Schedules, Distractions, and Assessment Responses.

This commit is contained in:
2025-09-06 12:13:16 +01:00
parent 12f5fc994f
commit 2da465935d
158 changed files with 14781 additions and 3477 deletions

View File

@@ -12,7 +12,7 @@ WHERE
ORDER BY A.created_on DESC, D.created_on DESC
;
SELECT *
FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML
FROM fetchmetrics.DOG_Assessment_Command_Link ACML
INNER JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment
WHERE
-- ACML.id_link = 5
@@ -21,7 +21,7 @@ ORDER BY A.created_on DESC, ACML.created_on DESC
;
SELECT *
FROM fetchmetrics.DOG_Assessment_Response AR
INNER JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ACML ON AR.id_assessment_command_modality_link = ACML.id_link
INNER JOIN fetchmetrics.DOG_Assessment_Command_Link ACML ON AR.id_assessment_command_link = ACML.id_link
INNER JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment
WHERE
-- ACML.id_link = 5
@@ -30,7 +30,7 @@ ORDER BY A.created_on DESC, ACML.created_on DESC
;
/*
INSERT INTO fetchmetrics.DOG_Assessment_Command_Modality_Link (
INSERT INTO fetchmetrics.DOG_Assessment_Command_Link (
id_assessment
, id_command
@@ -61,17 +61,17 @@ WHERE (C.id_command % 7 = 0) or (C.id_command % 11 = 0) or (C.id_command % 13 =
;
INSERT INTO fetchmetrics.DOG_Assessment_Response (
id_assessment_command_modality_link
id_assessment_command_link
, id_response_quality_metric
, id_obedience_level
, value_measured
)
SELECT
ACML.id_link AS id_assessment_command_modality_link
ACML.id_link AS id_assessment_command_link
, METRIC.id_response_quality_metric
, 1 + (ACML.id_command % 8) id_obedience_level
, 1 + ((METRIC.id_response_quality_metric * 3 + ACML.id_command) % 8) value_measured
FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML
FROM fetchmetrics.DOG_Assessment_Command_Link ACML
INNER JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment
CROSS JOIN (
SELECT 3 AS id_response_quality_metric
@@ -88,15 +88,15 @@ WITH
SELECT
ACML.id_link
, COUNT(*) AS response_count
FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML
INNER JOIN fetchmetrics.DOG_Assessment_Response AR ON ACML.id_link = AR.id_assessment_command_modality_link
FROM fetchmetrics.DOG_Assessment_Command_Link ACML
INNER JOIN fetchmetrics.DOG_Assessment_Response AR ON ACML.id_link = AR.id_assessment_command_link
GROUP BY ACML.id_link
)
, ACML_With_Responses AS (
SELECT
ACML.id_link
, CASE WHEN IFNULL(ACML_RESPONSE_COUNT.response_count, 0) > 0 THEN 1 ELSE 0 END AS has_responses
FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML
FROM fetchmetrics.DOG_Assessment_Command_Link ACML
LEFT JOIN ACML_Response_Count ACML_RESPONSE_COUNT ON ACML.id_link = ACML_RESPONSE_COUNT.id_link
)
, Category_Size_Known AS (
@@ -105,10 +105,10 @@ WITH
, COUNT(*) AS count_known_commands
FROM fetchmetrics.DOG_Command_Category CC
INNER JOIN fetchmetrics.DOG_Command C ON CC.id_command_category = C.id_command_category
LEFT JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ACML ON C.id_command = ACML.id_command
LEFT JOIN fetchmetrics.DOG_Assessment_Command_Link ACML ON C.id_command = ACML.id_command
LEFT JOIN ACML_With_Responses ACML_WITH_RESPONSES ON ACML.id_link = ACML_WITH_RESPONSES.id_link
LEFT JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment
-- LEFT JOIN fetchmetrics.DOG_Assessment_Response AR ON ACML.id_link = AR.id_assessment_command_modality_link
-- LEFT JOIN fetchmetrics.DOG_Assessment_Response AR ON ACML.id_link = AR.id_assessment_command_link
WHERE
ACML_WITH_RESPONSES.has_responses = 1
AND CC.active = 1
@@ -193,7 +193,7 @@ INNER JOIN fetchmetrics.DOG_Assessment A
-- WHERE A.id_assessment <= 21
;
INSERT INTO fetchmetrics.DOG_Assessment_Command_Modality_Link (
INSERT INTO fetchmetrics.DOG_Assessment_Command_Link (
id_temp
, id_assessment
, id_command
@@ -216,7 +216,7 @@ SELECT
, ACML.is_in_scent_range_of_handler
, ACML.is_in_hearing_range_of_handler
, ACML.is_on_lead
FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML
FROM fetchmetrics.DOG_Assessment_Command_Link ACML
INNER JOIN fetchmetrics.DOG_Assessment A
-- ON ACML.id_assessment = A.id_assessment
ON ACML.id_assessment = A.id_temp
@@ -226,7 +226,7 @@ INNER JOIN fetchmetrics.DOG_Assessment A
INSERT INTO fetchmetrics.DOG_Assessment_Response (
id_temp
, id_assessment_command_modality_link
, id_assessment_command_link
, id_response_quality_metric
, id_obedience_level
, value_measured
@@ -234,15 +234,15 @@ INSERT INTO fetchmetrics.DOG_Assessment_Response (
)
SELECT
AR.id_response
, ACML.id_link -- (SELECT ACML_NEW.id_assessment_command_modality_link FROM fetchmetrics.DOG_Assessment_Command_Modality_Link ACML_NEW WHERE ACML_NEW.id_temp
, ACML.id_link -- (SELECT ACML_NEW.id_assessment_command_link FROM fetchmetrics.DOG_Assessment_Command_Link ACML_NEW WHERE ACML_NEW.id_temp
, AR.id_response_quality_metric
, AR.id_obedience_level
, POWER(CASE WHEN AR.id_obedience_level = 3 THEN 0.9 ELSE 1.35 END, 6) * AR.value_measured
, AR.notes
FROM fetchmetrics.DOG_Assessment_Response AR
INNER JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ACML
-- ON AR.id_assessment_command_modality_link = ACML.id_link
ON AR.id_assessment_command_modality_link = ACML.id_temp
INNER JOIN fetchmetrics.DOG_Assessment_Command_Link ACML
-- ON AR.id_assessment_command_link = ACML.id_link
ON AR.id_assessment_command_link = ACML.id_temp
AND ACML.id_link > 3168
-- INNER JOIN fetchmetrics.DOG_Assessment A ON AR.id_assessment = A.id_assessment
-- WHERE A.id_assessment <= 21
@@ -256,7 +256,7 @@ INNER JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ACML
SELECT *
FROM fetchmetrics.DOG_Assessment_Response AR
INNER JOIN fetchmetrics.DOG_Assessment_Command_Modality_Link ACML ON AR.id_assessment_command_modality_link = ACML.id_link
INNER JOIN fetchmetrics.DOG_Assessment_Command_Link ACML ON AR.id_assessment_command_link = ACML.id_link
INNER JOIN fetchmetrics.DOG_Assessment A ON ACML.id_assessment = A.id_assessment
INNER JOIN fetchmetrics.DOG_Command C ON ACML.id_command = C.id_command
WHERE C.name LIKE '%SIT%'