Formalization of the approach. We now formally describe our approach. We define a RDF knowledge graph \(\mathcal {G}\)  as \(\mathcal {G} \subseteq (\mathcal {U} \cup \mathcal {B}) \times \mathcal {U} \times (\mathcal {U} \cup \mathcal {B} \cup \mathcal {L})\)  where \(\mathcal {U}\) , \(\mathcal {B}\)  and \(\mathcal {L}\)  are the set of URIs, the set of blank nodes and the set of literals, respectively. We assume that ODPs are annotated with OPLa ontology [1]}. Briefly, classes that belong to an ODP are annotated with a relation opla:isNativeTo connecting to the URI of the corresponding ODP pattern. We define \(\mathcal {P}\)  as the set of ODP patterns implemented in \(\mathcal {G}\) . We also define \(implementation_{\mathcal {G}}(P) \subseteq \mathcal {G}\)  as the subgraph (set of tuples) corresponding to the TBox implementation of the pattern in the knowledge graph, induced by the set of source nodes of relations opla:isNativeTo targeted in \(P\) . We also considers a special set of (key concept) nodes \(\mathcal {K}\) , which are special classes that help the user identify and distinguish specific instances of patterns.
