{'fraction_non_alphanumeric': 0.020222446916076844, 'fraction_numerical': 0.0, 'mean_word_length': 5.6891891891891895, '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}}
Provenance Data Storage

Provenance research has generally focused on issues with data collection and organization. Most approaches represent stored provenance data as a directed acyclic graph (DAG), where objects such as files and processes are nodes in the graph and directed edges specify ancestry relationships between them. While there has been some work addressing logical compression of these provenance graphs, efficient physical storage of provenance data remains unaddressed. In approaching this problem, we implemented and evaluated several techniques tailored for provenance storage, which were inspired by existing representations of general semi-structured data. We considered variants of vertical partitioning, PASS, and RDF, varying two kinds of compression. We compared query runtime, disk usage, and data load time across these storage methods. Our results indicate that vertical partitioning performs best in most cases, while the benefit of compression varies by query.