I was wrong. I found that dated properties are related to qualifiers and
there're some posts about qualifiers of entity framework.
Here's my modified example.
EntityUnregister["beehive"];
EntityRegister[
EntityStore[
"beehive" -> <|
"Entities" -> <|
"lisa" -> <|{"Population", "Date" -> All} ->
TimeSeries[{{{2013}, 100000}, {{2014}, 200000}, {{2015},
150000}}]|>,
"tom" -> <|{"Population", "Date" -> All} ->
TimeSeries[{{{2013}, 300000}, {{2014}, 200000}, {{2015},
200000}}]|>|>,
"Properties" -> <|
"Population" -> <|
"DefaultFunction" ->
Function[ent,
ent[Dated["Population", All]][
"LastValue"]]|>, {"Population",
"Date" -> _?DateObjectQ} -> <|
"DefaultFunction" ->
Function[{ent, quals},
Round[ent[Dated["Population", All]][quals["Date"]]]]|>,
{"Population", "Date" -> _Interval} -> <|
"DefaultFunction" ->
Function[{ent, quals},
TimeSeriesWindow[ent[Dated["Population", All]],
quals["Date"][[1]]]["Values"]]|>
|>|>]];
So, if you want Lisa's population in 2014,
Entity["beehive", "lisa"][Dated["Population", 2014]]
Or, to get the whole time series,
Entity["beehive", "lisa"][Dated["Population", All]]
You can also use DateObject
EntityValue[Entity["beehive", "lisa"],
EntityProperty["beehive",
"Population", {"Date" -> DateObject[{2013}]}]]
And Interval.
EntityValue[Entity["beehive", "lisa"],
EntityProperty["beehive",
"Population", {"Date" ->
Interval[{DateObject[{2013}], DateObject[{2014}]}]}]]
I hope this is useful for someone.
I'm not fluent in Mathematica.
So, please help me improve this example.