{'fraction_non_alphanumeric': 0.015873015873015872, 'fraction_numerical': 0.0, 'mean_word_length': 5.425925925925926, '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}}
A knowledge structure for reusing abstract data types

A knowledge structure for a software library consisting of abstract data types (ADTs) is defined. Both automatically-derived and explicitly-defined relationships are used to impose a knowledge structure on the ADTs. ADTs are defined by an ADT descriptor and one or more ADT implementations. Performance characteristics and default implementations are provided to assist users in choosing among alternatives. An explanation is given as to how the knowledge structure helps users find ADTs of interest, browse through similar ADTs to investigate alternatives, and build and customize executable software components from ADTs in the library.