{'fraction_non_alphanumeric': 0.012416427889207259, 'fraction_numerical': 0.0, 'mean_word_length': 5.7612903225806456, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
An Analytical Taxonomy of Naming Systems

A naming system consists of the mechanisms that govern the definition, binding, and access to the names upon which communication among active objects in a parallel or distributed system depends. A concurrent algorithm may require certain patterns of communication among objects. Naming systems differ significantly in the patterns of communication that they support, and this diversity suggests the existence of efficiency tradeoffs and specialization among the various approaches. To enable the impact of these differences upon the structure of concurrent computations to be examined systematically, we present a taxonomy of naming systems that isolates a small set of fundamental naming system properties, and ranks naming systems in (partial) order of the expressiveness they derive from their properties. We compare the properties of the naming systems that underlie several representative concurrent programming systems, and give examples of algorithms that require specific naming system properties.