The current implementation, TermPropertyLabelResolver, uses a TermIndex to get all the property labels in a certain language at once, cache that in memcached, and then look up property IDs by label. We should do something similar in the normalized schema – i. e., still pre-fetch everything (and still cache it, using the same key if possible) instead of actually searching for a single text in the term storage – but without implementing TermIndex (because we don’t want to implement full search support yet).
However, the current interfaces for the new term store would only allow us to get all the term IDs for properties (effectively the entire content of wbt_property_terms), then resolve all those terms to a giant array, and then filter for labels in a certain language afterwards. We can’t afford to transfer all that data between PHP and the database, so instead the wbt_property_terms and wbt_term_in_lang parts will have to exchange JOIN conditions somehow, so that we can load all property labels in a certain language with just one query. (It still won’t be as efficient as in wb_terms, but with caching it should do for a while, and we can investigate improvements later.)