I have pushed library(hashtable) as a proposed new library. It implements hash tables as a mutable and backtrackable data structure. Not very Prolog-like of course, but relational style updates do not work for hash tables and (binary) trees are the way to go for relational key-value pair dictionaries with O log(N). Hash tables are often faster though and us less memory. The code is also sufficiently simple to be eventually moved to the C core.
CHR provided chr_hashtable_store.pl, but the interface is quite tightly connected to what CHR needs.
I’ve implemented this as a closed hashtable, which seems to perform about equal to the open hash tables of CHR, but uses considerably less memory.
Is there an established API for this in the Prolog world? In that case I’m happy to sync.