타임라인의 개념을 소개하기 위해 시간이 경과함에 따라 변화할 수 있는 일상적인 데이터 예제를 다음과 같이 제공합니다.
- 개인의 급여 인상이나 이직으로 인해 시간이 경과함에 따라 개인의 총 수입은 변경되는 경향이 있습니다. 특정 시점에 개인의 수입이 Number로 표시될 수 있다고 가정하면 시간이 경과함에 따라 변화하는 개인의 수입은 Numbers의 타임라인으로 표시할 수 있습니다. 간편성을 위해 여기서는 Timeline<Number>로 씁니다. 1;
- 총 수입에 상관없이, 개인이 이직을 하면(또는 개인이 무직으로 지낸 기간이 있으면) 시간이 경과함에 따라 개인의 고용 레코드가 변화합니다. 언제든 개인에게 최대 하나의 주 직업이 있는 경우 개인의 주 직업 이력은 Timeline<Employment>로 표시될 수 있습니다. 여기서, Employment는 고용 세부사항을 보유하는 규칙 클래스 또는 Java 유형이며 주 직업이 없는 기간 동안 타임라인의 값은 null("고용 안됨"을 표시)과 같은 특수 마커 값입니다.
- 개인은 결국 처분될 자산을 소유할 수 있습니다(예: 개인이 자동차를 매입한 후 매도할 수 있음). 임의의 날짜에 개인이 자동차를 소유하거나 소유하지 않을 수 있으므로 Boolean로 모델링할 수 있습니다. 시간이 경과함에 따라 특정 날짜에 자동차가 소유되었는지 여부는 Timeline<Boolean>로 모델링할 수 있습니다. 타임라인의 값은 자동차 구매 날짜 이전에는 false이고 구매일로부터 판매일(포함)까지는(또는 자동차가 판매되었는지 모르는 경우 "추후 통보 시까지") true입니다.
- 마찬가지로 개인에게는 생년월일이 있으며 결국 사망년월일도 있게 됩니다. 여전히 생존해 있는 사람은 사망년월일 기록이 비어 있습니다. 임의의 날짜에 개인이 생존해 있거나 사망해 있으므로 "개인이 생존해 있습니까?"의 파생 값은 Boolean로 모델링할 수 있습니다. 시간이 경과함에 따른 개인의 생존 여부는 Timeline<Boolean>로 모델링할 수 있습니다. 타임라인의 값은 개인의 생년월일 이전에는 false이며 개인의 생년월일부터 사망년월일(포함)까지는(또는 개인의 사망년월일이 없는 경우 "추후 통보 시까지") true입니다.
- 부모에게는 서로 다른 날짜에 태어난 여러 자녀가 있을 수 있습니다. 부모에게는 특정 날짜에 생존해 있는 자녀 목록이 있으며 List<Person>으로 모델링할 수 있습니다. 시간이 경과함에 따라 자녀가 더 태어나거나 성년이 되므로(또는 불행하게도 어릴 때 사망) 자녀 목록이 변경되며 이 목록은 Timeline<List<Person>>으로 모델링할 수 있습니다.
위의 예는 아래 그림에서 그래프 양식으로 표시됩니다.
그림 1. 타임라인 데이터의 예제![타임라인 예제.](Images/Timeline1.JPG)