{'fraction_non_alphanumeric': 0.023450586264656615, 'fraction_numerical': 0.0, 'mean_word_length': 5.828571428571428, '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}}
Towards an Abstraction Ontology

Abstraction is commonly recognized as ubiquitous mechanism in human action. Conceptions about principles, concepts and constructs of abstraction are, however, quite vague and divergent in the literature. This paper proposes an ontology for abstraction, composed of two inter-related parts. The first-order abstraction defines concept things, called primary things, and their abstraction-based relationships. The second-order abstraction, also known as predicate abstraction, involves predicates that characterize primary things. The ontology covers four basic abstraction principles: classification, generalization, composition, and grouping. For each of them, key concepts and structural rules are defined and predicate derivation is discussed. The ontology is also described in meta models in a UML-based ontology representation language. We believe that the abstraction ontology can promote the achievement of a shared understanding of abstraction principles and constructs. Predicate abstraction can also be used as a foundation on which more sound systems of perspectives and viewpoints for database design and information systems development can be built.