Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
| retegraphprocessing:start [2023/05/15 07:36] – [Approach] gedbadmin | retegraphprocessing:start [2024/01/19 17:40] (current) – removed gedbadmin | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Graph Processing with the Rete Algorithm ====== | ||
| - | |||
| - | ===== Introduction ===== | ||
| - | |||
| - | I believe that the Rete Algorithm is a powerful innovation for graph processing that has been overlooked because it is seen as a component of Expert Systesm are not as a innovation in it's own right. | ||
| - | |||
| - | ===== Motivation ===== | ||
| - | |||
| - | I believe that the adaoption of the RETE algorithms in new contexts will bring the following potential benefits: | ||
| - | - **Language Alignment.** | ||
| - | - **Continuous Matching.** | ||
| - | - **Parallel Execution.** | ||
| - | - **Execution Plan.** | ||
| - | - **Runtime Optimization.** | ||
| - | |||
| - | ===== Approach ===== | ||
| - | |||
| - | In order to test this hypothesis, I will extract the RETE algorithm from it's context of production systems by identifying and isolating the problem it was designed to solve within that context. | ||
| - | |||
| - | The context of The Rete Algorithm was made celar when it was introduced in the paper “A network match routine for production systems” by Chales L Forgy. | ||
| - | |||
| - | Production systems process a set of productions. | ||
| - | - **Match.** | ||
| - | - **Conflict Resolution.** | ||
| - | - **Act.** | ||
| - | |||
| - | Production Systems had a problem: execution speed. | ||
| - | |||
| - | > "Since execution speed has always been a major issue for production systems, several researchers have worked on the problem of efficiency. The most common approach has been to combine a process called indexing with direct interpretation of the LHSs. In the simplest form of indexing, the interpreter begins the match process by extracting one or more features from each working memory element, and uses those features to hash into the collection of productions." | ||
| - | |||
| - | In order to improve efficiency, it is necessary to avoid traversing over the facts working memory. | ||
| - | |||
| - | Forgey' | ||
| - | |||
| - | In summary: | ||
| - | * Context: Production Systems | ||
| - | * Problem: Poor performance due to traversing over many items | ||
| - | * Solution: Use a network of simple feature recognizers to avoid traversal | ||
| - | |||
| - | The next step is to identify a new context where the same problem is evident. | ||
| - | |||
| - | Graph compression’s focus is on reducing the storage space required to store the graph. | ||
| - | |||
| - | The Partition and Code (PnC) framework ((Bouritsas et al., 2021)) provides a framework for systematically applying the RETE approach to the problem of graph compression. | ||
| - | - Partitioning – apply an algorithm to decompose each graph into subgraphs. | ||
| - | - Graph Dictionary – Translate the subgraphs into a mapping of connected subgraphs. | ||
| - | - Graph Encoding – Compress the graph into an encoded output. | ||
| - | |||
| - | The first two steps of Partitioning and Graph Dictionary corresponding to the indexing stage that was commonly used for production systems. | ||
| - | - Iterate over all vertices in the graph and identify grouping into subgraphs using patterns such as neighbourhoods, | ||
| - | - Hash the subgraphs and store them within collections. | ||
| - | - Iterate over those collections to produce an efficient encoded output. | ||
| - | |||
| - | The RETE algorithm would instead adopt a network of simple pattern matchers for identifying subgraphs. | ||
| - | |||
| - | ===== Exploration through Prototyping ===== | ||
| - | |||
| - | For evaluation of the potential benefits of Langauge Alignment and Continous Matching prototypes will be created using the CLIPS rules engine. | ||
| - | |||
| - | This analysis will be applied over the following prototypes: | ||
| - | - **Simple Algorithm.** | ||
| - | - **Existing Algorithm.** | ||
| - | - **New Algorithm.** | ||
| - | - **End to End Process.** | ||
| - | |||
| - | ===== Exploration through Research ===== | ||
| - | |||
| - | For evaluating the potential benefits of Parallel Processing, Execution Plan and Runtime Optmisation research will be carried out. It is believed that the CLIPS runtime would need to be updated in order to demonstrate these benefits. | ||
| - | |||
| - | The research will identify existing solutions that demonstrate these benefits, and provide an overview of the porgress made. Recommendations will be made for how these benefits might be achieved within a RETE based graph processing solution. | ||
| - | |||
| - | |||
| - | ===== Project Structure ===== | ||
| - | The following diagram provides an overview of the project' | ||
| - | |||
| - | {{: | ||
| - | |||
| - | ((Source: {{ : | ||
| - | |||
| - | ===== Contents ===== | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | * [[.: | ||
| - | |||
| - | ===== References ===== | ||
| - | * Boldi, P. and Vigna, S. (2004) “The Webgraph Framework I,” Proceedings of the 13th international conference on World Wide Web [Preprint]. Available at: https:// | ||
| - | * Bouritsas, G. et al. (2021) Partition and code: Learning how to compress graphs, arXiv.org. Available at: https:// | ||
| - | * Claude, F. and Navarro, G. (2010) “Fast and compact web graph representations, | ||
| - | * Edgerton, D. (2010). Innovation, technology, or history: What is the historiography of technology about. Technology and Culture, 51(3), 680-697. | ||
| - | * Forgy, C.L. (1974) “A network match routine for production systems., | ||
| - | * Forgy, C.L. (1982) “Rete: A fast algorithm for the many pattern/ | ||