It appears you can do queries on an EntityProperty
too, with EntityValue
. There's another question, here, which is what are the valid EntityProperty
properties, but at least for what we care about we have this:
EntityValue[
EntityProperty["..."],
"Qualifiers"
]
Here's a fun example:
AssociationThread[
CanonicalName@#,
EntityValue[#, "Qualifiers"]
] &@RandomSample[EntityProperties@"Country", 10]
<|"ExternalBalance" -> {"CurrencyUnit", "Date", "PercentOfGDP",
"TradeSection"}, "ISOCertificationOwnership" -> {"Date"},
"CapitalCity" -> {"Date"},
"BenefitsCostIndex" -> {"Date", "Frequency", "SeasonalAdjustment",
"TimeSeriesOperator"},
"RoadSectorGasolineFuelConsumption" -> {"Date", "PerCapita"},
"FederalDebt" -> {"Adjustment", "Date", "FederalDebtHolder",
"Frequency", "Modifier", "SeasonalAdjustment",
"TimeSeriesOperator"},
"EmploymentToPopulationRatio" -> {"AgeClass", "Date", "Gender"},
"HospitalBedsPer10000Population" -> {"Date"},
"AgriculturalProductionIndex" -> {"Date"},
"TotalFertilityRate" -> {"Date", "DateRange"}|>
Then we can use it like so:
EntityValue[
countryclass,
EntityProperty["Country",
"ExternalBalance", {"Date" ->
Interval[{DateObject["1992"], DateObject["2005"]}]}
]
] // Short
But it's not trivial to figure out how these work in general...
EntityValue[
countryclass,
EntityProperty["Country",
"ExternalBalance", {"CurrencyUnit" -> "Euros"}
]
] // DeleteDuplicates
{Missing["UnknownProperty", {"Country",
"ExternalBalance", {"CurrencyUnit" -> "Euros"}}]}
EntityValue[
countryclass,
EntityProperty["Country",
"ExternalBalance", {"CurrencyUnit" -> Quantity[1, "Euros"]}
]
] // DeleteDuplicates
{Missing["UnknownProperty", {"Country",
"ExternalBalance", {"CurrencyUnit" -> Quantity[1, "Euros"]}}]}
Sometimes you can figure out how these properties work with Ctrl+=, which is how I figured out how to do this:
EntityValue[
countryclass,
EntityProperty["Country",
"ExternalBalance", {"PercentOfGDP" -> "PercentOfGDP"}
]
]
{Quantity[0.703882, "Percent"], Quantity[7.0582, "Percent"],
Quantity[4.48768, "Percent"], Quantity[-6.47908, "Percent"],
Quantity[0.459015, "Percent"], Quantity[7.57397, "Percent"],
Missing["NotAvailable"], Quantity[4.11505, "Percent"],
Quantity[32.1342, "Percent"], Missing["NotAvailable"],
Missing["NotAvailable"], Quantity[-1.32907, "Percent"],
Quantity[2.01432, "Percent"], Quantity[36.0466, "Percent"],
Quantity[11.6811, "Percent"], Quantity[2.42052, "Percent"],
Quantity[3.99459, "Percent"], Missing["NotAvailable"],
Quantity[4.20712, "Percent"], Quantity[-1.40457, "Percent"]}
Another very interesting place where I do know how this works is for the "WolframLanguageSymbol"
property "Ranks"
and its qualifier "Corpus"
:
EntityValue[
EntityClass["WolframLanguageSymbol", "Atomic"],
EntityProperty["WolframLanguageSymbol",
"Ranks", {"Corpus" -> "StackExchange"}],
"Association"
] // TakeSmallest[5]
<|Entity["WolframLanguageSymbol", "Integer"] -> 75,
Entity["WolframLanguageSymbol", "Association"] -> 104,
Entity["WolframLanguageSymbol", "Real"] -> 142,
Entity["WolframLanguageSymbol", "String"] -> 145,
Entity["WolframLanguageSymbol", "Image"] -> 182|>