Inference
The Inference functionality empowers users to effortlessly generate multi-model schemas from existing single-model datasets. By utilizing compose schema inference techniques and schema editing operations, complex datasets can be transformed into well-structured multi-model representations. Enabling the generation of generally usable multi-model data.
The integration of the inference functionality was achieved by incorporating MM-infer1—a tool previously developed by our research team members—as a dedicated module within the system. This module leverages MM-infer’s schema inference capabilities, enabling the automatic generation of schema representations from single-model datasets.
A key component of this integration is the creation of a new Schema Conversion Component. This component is responsible for converting the output of MM-infer, the Record Schema Description (RSD), into the Schema Category format, while also managing the creation of Mapping.
Furthermore, the integration was enhanced by Inference Editor which enables real live editing of the inferred Schema Category.
And finally, the addition of the inference functionality showed the need for an improved version of the Mapping Editor.
Through this integration, users are now able to infer and adjust a Schema Category from any input data stored in a single-model format.
Detailed class design and structure of MM-infer is documented separately in the tool’s documentation, here we present the underlying classes that make up the Schema Conversion Component and the Inference Editor.
Acts as a wrapper for handling the conversion of the Record Schema Description (RSD) into the Schema Category and Mapping. It serves as an intermediary class whose main responsibility is to encapsulate the RSD as its input and apply the conversion logic via the convertToSchemaCategoryAndMapping()
. Upon receiving the RSD, this method applies a series of transformations secured by the following classes.
Takes the input RSD structure, traverses it and creates an instance of a tree object called AccessTreeNode
, whose nodes encompass all the necessary information for further steps.
Traverses the tree structure and converts it into a Schema Category.
Last, but not least, the information collected in the tree is also used for the creation of Mapping.
If the inferred Schema Category is too complex and unreadable, the Inference Editor comes into play. The available edit operations are encompassed by these classes.
The wrapper class for inferred Schema Category editing. Created with a list of instances of the InferenceEdit
from which it creates the InferenceEditAlgorithm
instances and applies the editing operations.
The current version enables the user to work with multiple nodes at once. Furthermore, it offers context menu as well as keyboard shortcuts for smooth and quick work flow.
-
Koupil, P., Hricko, S., & Holubová, I. Mm-infer: A tool for inference of multi-model schemas. (2022). https://doi.org/10.48786/EDBT.2022.52 ↩︎