Matching and Rewriting Rules in Object-Oriented Databases
Abstract
:1. Introduction
- Definition of a novel nested relational algebra natural equi-join operator for composing nested morphisms, also supporting left outer joins by parameter tuning (Section 5).
- Definition of an object-oriented database view for updating the databases on the fly without the need for heavy restructuring of the loaded and indexed physical model (Section 4.3).
- As the latter view relies on the definition of a logical model extending GSM (Section 4.1), we show that the physical model is isomorphic to an indexed set of GSM databases expressed within the logical model (Lemma 1).
2. Preliminary Notation
Higher-Order Functions
- The zipping operator maps n tuples (or records) to a record of tuples (or records) r defined as if and only if all n tuples are defined over i:
- Given a function and a generic collection C, the mapping operator returns a new collection by applying f to each component of C:
- Given a binary predicate p and a collection C, the filter function trims C by restricting it to its values satisfying p:
- Given a binary function , an initial value (accumulator), and a tuple C, the (left) fold operator is a tail-recursive function returning either for an empty tuple, or for a tuple :
- Given a collection of strings C and a separator s, collapse (also referred to as join in programming languages such as Javascript or Python ) returns a single string where all the strings in C are separated by s. Given “^” the usual string concatenation operator, this can be expressed in terms of as follows:When s is a space “␣”, then we can use as a shorthand.
- Given a function and two values and , the update of f so that it will return b for a and will return any other previous value for otherwise is defined as follows:
- Given a (finite) function f and an input value y, the HOF optionally obtaining the value of if and returning z otherwise is defined as:Please observe that we can use this function in combination with Put to set multiple nested functions:
3. Related Works
3.1. Graph Data
3.1.1. Logical Model
Direct Acyclic Graphs (DAGs) and Topological Sort
Algorithm 1 Layering DAGs from a vertex topological order in t |
|
Property Graphs
RDF
3.1.2. Query Languages
- Graph Traversal and Pattern Matching: these are mainly navigational languages performing the graph visit through “tractable” algorithms through polynomial time visits with respect to the graph size [18,23,24]. Consequently, such solutions do not necessarily involve running a subgraph isomorphism problem, except when expressly requested by specific semantics [22,25].
- (Simple) Graph Grammars: as discussed in the forthcoming paragraph, they can add and remove new vertices and edges that do not necessarily depend on previously matched data, but they are unable to express full data transformation operations.
- Graph Algebras: these are mainly designed either to change the structure of property graphs through unary operators or to combine them through n-ary (often binary) ones. These are not to be confused with the path-algebras for expressing graph traversal and pattern-matching constructs, as they allow us to completely transform graphs alongside the data associated with them as well as deal with graph data collections [26,27,28,29].
- “Proper” Graph Query Languages: We say that a graph query language is “proper” when its expressive power includes all the aforementioned query languages, and possibly expresses the graph algebraic operators while being able to express, to some extent, graph grammar rewriting rules independently from their ability to express them in a fully-declarative way. This is achieved to some extent in commonly available languages, such as SPARQL and Cypher [4].
Graph Grammars
Proper Graph Query Languages
3.2. Nested Relational Model
3.2.1. Logical Model
3.2.2. Query Languages
3.2.3. Columnar Physical Model
4. Generalised Semistructured Model v2.0
4.1. Logical Model
4.2. Physical Model
Algorithm 2 Loading a Logical Model into the Physical Model and serialising it back |
|
4.3. GSM View
- Start:
- re-initialises the view to evaluating a new morphism by discarding any information being local to each specific morphism:
- DelCont:
- We remove the i-th containment relationship from the database:
- NewObj:
- Generates a new empty object associated with a variable j and with a new unique object ID :
- ReplObj:
- replaces with if and only if was not removed ():
- DelObj:
- We remove an object only if this was already in g or if this was inserted in a previous evaluation of a morphism and, within the evaluation of the current morphism, we remove the original object being replaced by :
- Update:
- updates one of the object property functions by specifying which of those should be updated. In other words, this is the extension of Put2 (Equation (2)) as a higher function for updating the view alongside one of these components:
4.3.1. Object Replacement and Resolution
4.3.2. View Materialisation
4.4. Morphism Notation
5. Nested Natural Equi-Join
Algorithm 3 Nested Natural Equi-Join |
|
Properties
6. Generalised Graph Grammar
Algorithm 4 Generalised Graph Grammar (gg) evaluation |
|
6.1. Syntax and Informal Semantics
6.2. Determining the Order of Application of the Rules
Algorithm 5 Sorting the Graph Grammar rules by application order |
|
6.3. Containment Matching
Algorithm 6 Intermediate Edge Result Caching |
|
6.3.1. Pseudocode Notation for
6.3.2. Procedural Semantics for Matching and Caching Containments
6.3.3. Algorithmic Choices for Optimisation
6.4. Morphism Instantiation and Indexing
Algorithm 7 Morphism instantiation and indexing |
|
6.5. Graph Rewriting Operations (op from )
Algorithm 8 Rewriting phase |
|
7. Language Properties
8. Time Complexity
9. Empirical Evaluation
9.1. Comparing Cypher and Neo4j with Our Proposed Implementation
9.2. Scalability for the Proposed Implementation
10. Conclusions and Future Works
Author Contributions
Funding
Data Availability Statement
Conflicts of Interest
Abbreviations
BNF | Backus-Naur Form |
DAG | Direct Acyclic Graph |
GSM | Generalised Semistructured Model |
HOF | Higher-Order Function |
NLP | Natural Language Processing |
SOS | Structured Operational Semantics |
Appendix A. Full Definitions
Appendix A.1. Variable Resolution
Appendix A.2. Predicate Evaluation (Θ)
Appendix A.3. Expression Evaluation (expr)
Appendix A.4. Full SOS Rewriting Specifications
Appendix A.5. Converting GSM from Any Data Representation
Appendix B. Proofs
Appendix B.1. Transformation Isomorphism
- : We can consider one GSM database being returned at a time, for which we consider its constituents . To do this, we want to show that such a returned database is equivalent to the originally loaded . To conduct this, we need to show that each of the constituents is equivalent.We can prove that as follows:We can prove that , , and as follows:We can also prove that the properties are preserved:For , we can easily show that this is associated with no value only if there are no records referring to a containment for j in the loaded database, which we can easily show that this derives from an originally empty contained from the loaded database . On the other hand, this function returns a set S of identifiers only if there exists at least one containment record in PhiTableκ, for which we can derive the following:Given that and , this sub-goal is closed by transitivity closure over the equality predicate.We can prove similarly the equivalence as a corollary of the previous sub-cases:
- : In this case, we need to show that each table in is equivalent to those in . We can prove similarly to the previous step that , , and .Next, we need to prove that the ActivityTables being returned are equivalent. We can achieve this by guaranteeing that both tables should contain the same records. After remembering that the values of p and x are determined through the indexing phase, from which we determine the offset where the objects with immediately preceding and following IDs are stored, we can then guarantee that these values will be always the same under the condition that the two tables will always contain the same records, for which these values will be the same. After remembering from the previous proof that , for and , we can also have that :Given that the first three components of the record always correspond, this entails that we will preserve the number of records across the board, hence preserving the same record ordering, thus also guaranteeing that and .By adopting the equivalence of the previous and next offset for the AttributeTable from the previous sub-proof, we can then also prove that each record of the always corresponds to an equivalent one in the AttributeTable.Given that we can prove that also by the previous sub-case and as the records’ index will always correspond after sorting and indexing, we can close this sub-goal.Last, we need to prove that the tables are equivalent, which can be closed as follows:
Appendix B.2. Nested Equi-Join Properties
Appendix B.3. Language Properties
Appendix B.4. Time Complexity
References
- Schmitt, I. QQL: A DB&IR Query Language. VLDB J. 2008, 17, 39–56. [Google Scholar] [CrossRef]
- Chamberlin, D.D.; Boyce, R.F. SEQUEL: A Structured English Query Language. In Proceedings of the 1974 ACM-SIGMOD Workshop on Data Description, Access and Control, Ann Arbor, MI, USA, 1–3 May 1974; Altshuler, G., Rustin, R., Plagman, B.D., Eds.; ACM: New York, NY, USA, 1974; Volume 2, pp. 249–264. [Google Scholar] [CrossRef]
- Rodriguez, M.A. The Gremlin graph traversal machine and language (invited talk). In Proceedings of the 15th Symposium on Database Programming Languages, New York, NY, USA, 27 October 2015; pp. 1–10. [Google Scholar] [CrossRef]
- Robinson, I.; Webber, J.; Eifrem, E. Graph Databases; O’Reilly Media, Inc.: Sebastopol, CA, USA, 2013. [Google Scholar]
- Angles, R.; Gutierrez, C. The Expressive Power of SPARQL; Springer: Berlin/Heidelberg, Germany, 2008; pp. 114–129. [Google Scholar]
- Bergami, G.; Petermann, A.; Montesi, D. THoSP: An algorithm for nesting property graphs. In Proceedings of the 1st ACM SIGMOD Joint International Workshop on Graph Data Management Experiences & Systems (GRADES) and Network Data Analytics (NDA), New York, NY, USA, 10–15 June 2018. GRADES-NDA ’18. [Google Scholar] [CrossRef]
- Bergami, G. On Efficiently Equi-Joining Graphs. In Proceedings of the 25th International Database Engineering & Applications Symposium, New York, NY, USA, 14–16 July 2021; IDEAS ’21. pp. 222–231. [Google Scholar] [CrossRef]
- Ehrig, H.; Habel, A.; Kreowski, H.J. Introduction to graph grammars with applications to semantic networks. Comput. Math. Appl. 1992, 23, 557–572. [Google Scholar] [CrossRef]
- Bergami, G. A New Nested Graph Model for Data Integration. Ph.D. Thesis, University of Bologna, Bologna, Italy, 2018. [Google Scholar]
- Das, S.; Srinivasan, J.; Perry, M.; Chong, E.I.; Banerjee, J. A Tale of Two Graphs: Property Graphs as RDF in Oracle. In Proceedings of the 17th International Conference on Extending Database Technology, EDBT 2014, Athens, Greece, 24–28 March 2014; pp. 762–773. [Google Scholar] [CrossRef]
- Bergami, G.; Appleby, S.; Morgan, G. Quickening Data-Aware Conformance Checking through Temporal Algebras. Information 2023, 14, 173. [Google Scholar] [CrossRef]
- Turi, D.; Plotkin, G.D. Towards a Mathematical Operational Semantics. In Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science, Warsaw, Poland, 29 June–2 July 1997; IEEE Computer Society. pp. 280–291. [Google Scholar] [CrossRef]
- Codd, E.F. A relational model of data for large shared data banks. Commun. ACM 1970, 13, 377–387. [Google Scholar] [CrossRef]
- Kahn, A.B. Topological sorting of large networks. Commun. ACM 1962, 5, 558–562. [Google Scholar] [CrossRef]
- Sugiyama, K.; Tagawa, S.; Toda, M. Methods for Visual Understanding of Hierarchical System Structures. IEEE Trans. Syst. Man Cybern. 1981, 11, 109–125. [Google Scholar] [CrossRef]
- Hölsch, J.; Grossniklaus, M. An Algebra and Equivalences to Transform Graph Patterns in Neo4j. In Proceedings of the Workshops of the EDBT/ICDT 2016 Joint Conference, EDBT/ICDT Workshops 2016, Bordeaux, France, 15 March 2016; Volume 1558. [Google Scholar]
- Gutierrez, C.; Hurtado, C.A.; Mendelzon, A.O.; Pérez, J. Foundations of Semantic Web databases. J. Comput. Syst. Sci. 2011, 77, 520–541. [Google Scholar] [CrossRef]
- Fionda, V.; Pirrò, G.; Gutierrez, C. NautiLOD: A Formal Language for the Web of Data Graph. ACM Trans. Web TWEB 2015, 9, 1–43. [Google Scholar] [CrossRef]
- Hartig, O.; Pérez, J. Chapter LDQL: A Query Language for the Web of Linked Data. In Proceedings of the Semantic Web-ISWC 2015 14th International Semantic Web Conference, Bethlehem, PA, USA, 11–15 October 2015; Proceedings, Part I. Springer International Publishing: Cham, Switzerland, 2015; pp. 73–91. [Google Scholar] [CrossRef]
- Carroll, J.J.; Dickinson, I.; Dollin, C.; Reynolds, D.; Seaborne, A.; Wilkinson, K. Jena: Implementing the Semantic Web Recommendations. In Proceedings of the 13th International World Wide Web Conference on Alternate Track Papers & Posters, New York, NY, USA, 17–20 May 2004; WWW Alt. ’04. pp. 74–83. [Google Scholar] [CrossRef]
- Sirin, E.; Parsia, B.; Grau, B.C.; Kalyanpur, A.; Katz, Y. Pellet: A practical OWL-DL reasoner. Web Semant. Sci. Serv. Agents World Wide Web 2007, 5, 51–53. [Google Scholar] [CrossRef]
- Angles, R.; Arenas, M.; Barceló, P.; Hogan, A.; Reutter, J.L.; Vrgoc, D. Foundations of Modern Query Languages for Graph Databases. ACM Comput. Surv. 2017, 50, 1–40. [Google Scholar] [CrossRef]
- Fan, W.; Li, J.; Ma, S.; Tang, N.; Wu, Y. Adding regular expressions to graph reachability and pattern queries. Front. Comput. Sci. 2012, 6, 313–338. [Google Scholar] [CrossRef]
- Barceló, P.; Fontaine, G.; Lin, A.W. Expressive Path Queries on Graphs with Data. In Logic for Programming, Artificial Intelligence, and Reasoning, Proceedings of the 19th International Conference, LPAR-19, Stellenbosch, South Africa, 14–19 December 2013; McMillan, K., Middeldorp, A., Voronkov, A., Eds.; Springer: Berlin/Heidelberg, Germany, 2013; pp. 71–85. [Google Scholar] [CrossRef]
- Junghanns, M.; Kießling, M.; Averbuch, A.; Petermann, A.; Rahm, E. Cypher-based Graph Pattern Matching in Gradoop. In Proceedings of the Fifth International Workshop on Graph Data-management Experiences & Systems, GRADES@SIGMOD/PODS 2017, Chicago, IL, USA, 14–19 May 2017; pp. 1–8. [Google Scholar] [CrossRef]
- Ghrab, A.; Romero, O.; Skhiri, S.; Vaisman, A.A.; Zimányi, E. GRAD: On Graph Database Modeling. arXiv 2016, arXiv:1602.00503. [Google Scholar]
- Ghrab, A.; Romero, O.; Skhiri, S.; Vaisman, A.; Zimányi, E. Advances in Databases and Information Systems. In Proceedings of the 19th East European Conference, ADBIS 2015, Poitiers, France, 8–11 September 2015; Chapter A Framework for Building OLAP Cubes on Graphs. Springer International Publishing: Cham, Switzerland, 2015; pp. 92–105. [Google Scholar] [CrossRef]
- Junghanns, M.; Petermann, A.; Teichmann, N.; Gomez, K.; Rahm, E. Analyzing Extended Property Graphs with Apache Flink. In Proceedings of the SIGMOD Workshop on Network Data Analytics (NDA), San Francisco, CA, USA, 1 July 2016. [Google Scholar]
- Wolter, U.; Truong, T.T. Graph Algebras and Derived Graph Operations. Logics 2023, 1, 10. [Google Scholar] [CrossRef]
- Rozenberg, G. (Ed.) Handbook of Graph Grammars and Computing by Graph Transformation: Volume I. Foundations; WSP: Anchorage, AK, USA, 1997. [Google Scholar]
- Pérez, J.; Arenas, M.; Gutierrez, C. Semantics and Complexity of SPARQL. ACM Trans. Database Syst. (TODS) 2009, 34, 16:1–16:45. [Google Scholar] [CrossRef]
- Szárnyas, G. Incremental View Maintenance for Property Graph Queries. In Proceedings of the 2018 International Conference on Management of Data, SIGMOD, Houston, TX, USA, 10–15 June 2018; ACM: New York, NY, USA, 2018; pp. 1843–1845. [Google Scholar]
- Consens, M.P.; Mendelzon, A.O. GraphLog: A Visual Formalism for Real Life Recursion. In Proceedings of the Ninth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, PODS, Nashville, TN, USA, 2–4 April 1990; ACM: New York, NY, USA, 1990; pp. 404–416. [Google Scholar]
- Bergami, G.; Zegadło, W. Towards a Generalised Semistructured Data Model and Query Language. SIGWEB Newsl. 2023, 2023, 1–22. [Google Scholar] [CrossRef]
- Shmedding, F. Incremental SPARQL Evaluation for Query Answering on Linked Data. In Proceedings of the Second International Workshop on Consuming Linked Data, Bonn, Germany, 23 October 2011. COLD2011. [Google Scholar]
- Huang, J.; Abadi, D.J.; Ren, K. Scalable SPARQL Querying of Large RDF Graphs. Proc. VLDB Endow. PVLDB 2011, 4, 1123–1134. [Google Scholar] [CrossRef]
- Atre, M. Left Bit Right: For SPARQL Join Queries with OPTIONAL Patterns (Left-outer-joins). In Proceedings of the SIGMOD Conference, Melbourne, Australia, 31 May–4 June 2015; ACM: New York, NY, USA, 2015; pp. 1793–1808. [Google Scholar]
- Colby, L.S. A recursive algebra and query optimization for nested relations. In Proceedings of the 1989 ACM SIGMOD International Conference on Management of Data, Portland, OR, USA, 31 May–2 June 1989; SIGMOD ’89. pp. 273–283. [Google Scholar] [CrossRef]
- Liu, H.C.; Ramamohanarao, K. Algebraic equivalences among nested relational expressions. In Proceedings of the Third International Conference on Information and Knowledge Management, Gaithersburg, MD, USA, 29 November–1 December 1994; CIKM ’94. pp. 234–243. [Google Scholar] [CrossRef]
- Leser, U.; Naumann, F. Informationsintegration: Architekturen und Methoden zur Integration Verteilter und Heterogener Datenquellen; dpunkt.verlag: Heidelberg, Germany, 2006. [Google Scholar]
- Elmasri, R.A.; Navathe, S.B. Fundamentals of Database Systems, 7th ed.; Pearson: New York, NY, USA, 2016. [Google Scholar]
- Atzeni, P.; Ceri, S.; Paraboschi, S.; Torlone, R. Database Systems—Concepts, Languages and Architectures; McGraw-Hill Book Company: New York, NY, USA, 1999. [Google Scholar]
- den Bussche, J.V. Simulation of the nested relational algebra by the flat relational algebra, with an application to the complexity of evaluating powerset algebra expressions. Theor. Comput. Sci. 2001, 254, 363–377. [Google Scholar] [CrossRef]
- Green, T.J.; Karvounarakis, G.; Tannen, V. Provenance semirings. In Proceedings of the Twenty-Sixth ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems, Beijing, China, 11–13 June 2007; PODS ’07. pp. 31–40. [Google Scholar] [CrossRef]
- Chapman, A.; Missier, P.; Simonelli, G.; Torlone, R. Capturing and querying fine-grained provenance of preprocessing pipelines in data science. Proc. VLDB Endow. 2020, 14, 507–520. [Google Scholar] [CrossRef]
- Junghanns, M.; Petermann, A.; Rahm, E. Distributed Grouping of Property Graphs with GRADOOP. In Datenbanksysteme für Business, Technologie und Web (BTW 2017); Gesellschaft für Informatik: Bonn, Germany, 2017; pp. 103–122. [Google Scholar]
- Bellatreche, L.; Kechar, M.; Bahloul, S.N. Bringing Common Subexpression Problem from the Dark to Light: Towards Large-Scale Workload Optimizations. In Proceedings of the 25th International Database Engineering & Applications Symposium, IDEAS, Montreal, QC, Canada, 14–16 July 2021; ACM: New York, NY, USA, 2021. [Google Scholar]
- Aho, A.V.; Lam, M.S.; Sethi, R.; Ullman, J.D. Compilers: Principles, Techniques, and Tools, 2nd ed.; Addison-Wesley Longman Publishing Co., Inc.: San Francisco, CA, USA, 2006. [Google Scholar]
- Ulrich, H.; Kern, J.; Tas, D.; Kock-Schoppenhauer, A.; Ückert, F.; Ingenerf, J.; Lablans, M. QL4MDR: A GraphQL query language for ISO 11179-based metadata repositories. BMC Med. Inform. Decis. Mak. 2019, 19, 1–7. [Google Scholar] [CrossRef]
- Zhang, T.; Subburathinam, A.; Shi, G.; Huang, L.; Lu, D.; Pan, X.; Li, M.; Zhang, B.; Wang, Q.; Whitehead, S.; et al. GAIA—A Multi-media Multi-lingual Knowledge Extraction and Hypothesis Generation System. In Proceedings of the 2018 Text Analysis Conference, TAC 2018, Gaithersburg, MD, USA, 13–14 November 2018. [Google Scholar]
- Parr, T. The Definitive ANTLR 4 Reference, 2nd ed.; Pragmatic Bookshelf: Raleigh, NC, USA, 2013. [Google Scholar]
- Tarjan, R.E. Edge-Disjoint Spanning Trees and Depth-First Search. Acta Inform. 1976, 6, 171–185. [Google Scholar] [CrossRef]
- de Marneffe, M.C.; Manning, C.D.; Nivre, J.; Zeman, D. Universal Dependencies. Comput. Linguist. 2021, 47, 255–308. [Google Scholar] [CrossRef]
- Martelli, A.; Montanari, U. Unification in Linear Time and Space: A Structured Presentation; Technical Report Vol. IEI-B76-16; Consiglio Nazionale delle Ricerche, Pisa: Pisa, Italy, 1976. [Google Scholar]
- Rozenberg, G. (Ed.) Handbook of Graph Grammars and Computing by Graph Transformation: Volume II; WSP: Anchorage, AK, USA, 1999. [Google Scholar]
- Talmor, A.; Herzig, J.; Lourie, N.; Berant, J. CommonsenseQA: A Question Answering Challenge Targeting Commonsense Knowledge. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, NAACL-HLT 2019, Minneapolis, MN, USA, 2–7 June 2019; Volume 1 (Long and Short, Papers). Burstein, J., Doran, C., Solorio, T., Eds.; Association for Computational Linguistics: Stroudsburg, PA, USA, 2019; pp. 4149–4158. [Google Scholar] [CrossRef]
- de Marneffe, M.; MacCartney, B.; Manning, C.D. Generating Typed Dependency Parses from Phrase Structure Parses. In Proceedings of the Fifth International Conference on Language Resources and Evaluation, LREC 2006, Genoa, Italy, 22–28 May 2006; Calzolari, N., Choukri, K., Gangemi, A., Maegaard, B., Mariani, J., Odijk, J., Tapias, D., Eds.; European Language Resources Association (ELRA): Paris, France, 2006; pp. 449–454. [Google Scholar]
- Chen, D.; Manning, C.D. A Fast and Accurate Dependency Parser using Neural Networks. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing, EMNLP 2014, Doha, Qatar, 25–29 October 2014; A Meeting of SIGDAT, a Special Interest Group of the ACL. Moschitti, A., Pang, B., Daelemans, W., Eds.; ACL: Doha, Qatar, 2014; pp. 740–750. [Google Scholar] [CrossRef]
- Kotiranta, P.; Junkkari, M.; Nummenmaa, J. Performance of Graph and Relational Databases in Complex Queries. Appl. Sci. 2022, 12, 6490. [Google Scholar] [CrossRef]
- Győrödi, C.; Győrödi, R.; Pecherle, G.; Olah, A. A comparative study: MongoDB vs. MySQL. In Proceedings of the 2015 13th International Conference on Engineering of Modern Electric Systems (EMES), Oradea, Romania, 11–12 June 2015; pp. 1–6. [Google Scholar] [CrossRef]
Data Model | Loading/Indexing (avg. ms) | Querying (avg. ms) | Materialisation (avg. ms) | Total (ms) | |
---|---|---|---|---|---|
Neo4j { | Simple | N/A | |||
Complex | N/A | ||||
GSM { | Simple | ||||
Complex |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2024 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Bergami, G.; Fox, O.R.; Morgan, G. Matching and Rewriting Rules in Object-Oriented Databases. Mathematics 2024, 12, 2677. https://doi.org/10.3390/math12172677
Bergami G, Fox OR, Morgan G. Matching and Rewriting Rules in Object-Oriented Databases. Mathematics. 2024; 12(17):2677. https://doi.org/10.3390/math12172677
Chicago/Turabian StyleBergami, Giacomo, Oliver Robert Fox, and Graham Morgan. 2024. "Matching and Rewriting Rules in Object-Oriented Databases" Mathematics 12, no. 17: 2677. https://doi.org/10.3390/math12172677
APA StyleBergami, G., Fox, O. R., & Morgan, G. (2024). Matching and Rewriting Rules in Object-Oriented Databases. Mathematics, 12(17), 2677. https://doi.org/10.3390/math12172677