{-# LANGUAGE OverloadedStrings #-} {-| Module : Example Hasklepias Events Description : TODO Copyright : (c) NoviSci, Inc 2020 License : BSD3 Maintainer : bsaul@novisci.com Stability : experimental -} module ExampleEvents ( exampleEvents1 , exampleEvents2 ) where import IntervalAlgebra import Hasklepias.Types.Event import Hasklepias.Types.Context import Data.List exampleEvents1 :: Events Int exampleEvents1 = toEvents exampleEvents1Data exampleEvents2 :: Events Int exampleEvents2 = toEvents exampleEvents2Data type EventData a = (a, a, Concept) toEvent :: (IntervalAlgebraic a) => EventData a -> Event a toEvent x = event (unsafeInterval (t1 x) (t2 x)) (context $ [t3 x]) toEvents :: (IntervalAlgebraic a) => [EventData a] -> Events a toEvents = sort.map toEvent t1 :: (a, b, c) -> a t1 (x , _ , _) = x t2 :: (a, b, c) -> b t2 (_ , x , _) = x t3 :: (a, b, c) -> c t3 (_ , _ , x) = x exampleEvents1Data :: [EventData Int] exampleEvents1Data = [ (1, 10, "enrollment") , (11, 20, "enrollment") , (21, 30, "enrollment") , (31, 40, "enrollment") , (45, 50, "enrollment") , (51, 60, "enrollment") , (61, 63, "enrollment") , (71, 80, "enrollment") , (81, 100, "enrollment") , (2, 3, "wasScratchedByCat") , (45, 46, "wasStruckByDuck") , (46, 47, "wasBitByDuck") , (49, 50, "wasBitByDuck") , (51, 52, "wasBitByDuck") , (60, 61, "wasBitByOrca") , (91, 92, "wasStuckByCow") , (5, 6, "hadMinorSurgery") , (52, 53, "hadMajorSurgery") , (5, 10, "tookAntibiotics") , (52, 60, "wasHospitalized") , (45, 51, "tookAntibiotics") , (60, 73, "tookAntibiotics") , (80, 83, "tookAntibiotics") , (95, 96, "died") ] exampleEvents2Data :: [EventData Int] exampleEvents2Data = [ (1, 10, "enrollment") , (21, 35, "enrollment") , (31, 40, "enrollment") , (45, 59, "enrollment") , (51, 60, "enrollment") , (61, 63, "enrollment") , (71, 80, "enrollment") , (2, 3, "wasPeckedByChicken") , (3, 4, "wasPeckedByChicken") , (4, 5, "wasPeckedByChicken") , (5, 6, "wasPeckedByChicken") , (10, 11, "wasInjuredBySquirrel") , (15, 16, "wasDiagnosedWithSciurophobia") , (20, 21, "hadSquirrelContact") , (20, 21, "hadAnxietyAttack") ]