Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| retegraphprocessing:start [2023/05/15 07:10] – 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: | ||
| - | - Ordered List Item | ||
| - | |||
| - | |||
| - | ===== 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. | ||
| - | |||
| - | ===== Prototyping ===== | ||
| - | |||
| - | This analysis will be applied over the following prototypes: | ||
| - | - **Simple Algorithm.** | ||
| - | - **Existing Algorithm.** | ||
| - | - **New Algorithm.** | ||
| - | - **End to End Process.** | ||
| - | |||
| - | |||
| - | ===== Project Structure ===== | ||
| - | {{: | ||
| - | |||
| - | ((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/ | ||