RU2631158C1 - Unification unit with parallel therm matching - Google Patents

Unification unit with parallel therm matching Download PDF

Info

Publication number
RU2631158C1
RU2631158C1 RU2016120823A RU2016120823A RU2631158C1 RU 2631158 C1 RU2631158 C1 RU 2631158C1 RU 2016120823 A RU2016120823 A RU 2016120823A RU 2016120823 A RU2016120823 A RU 2016120823A RU 2631158 C1 RU2631158 C1 RU 2631158C1
Authority
RU
Russia
Prior art keywords
inputs
matching
node
outputs
unification
Prior art date
Application number
RU2016120823A
Other languages
Russian (ru)
Inventor
Василий Юрьевич Мельцов
Алексей Сергеевич Куваев
Геннадий Андреевич Чистяков
Анастасия Андреевна Шипицина
Original Assignee
Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет"
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" filed Critical Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет"
Priority to RU2016120823A priority Critical patent/RU2631158C1/en
Application granted granted Critical
Publication of RU2631158C1 publication Critical patent/RU2631158C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Abstract

FIELD: physics.
SUBSTANCE: unification unit with parallel therm matching is used, which contains internal working memory, one of the inputs of which is connected to the input data bus, a control node, one of the inputs of which is connected to the input control bus. The predicate name matching node, the input of which is connected to one of the internal working memory outputs and the output is connected to one of the control node inputs, therm matching nodes, the inputs of which are connected to the internal working memory outputs and the dispatching node outputs, and the outputs are connected to the control node inputs, the inputs of the substitution generating node and the inputs of the dispatching node, the dispatching node, the inputs of which are connected to the outputs of the therm matching nodes, and the outputs are connected to one of the internal working memory inputs and the inputs of the therm matching nodes, the inputs of which are connected to the outputs of the therm matching nodes and one of the outputs of the internal working memory, and the outputs are connected to one of the control node inputs and the output data bus.
EFFECT: reducing the time for the unification of predicates.
8 dwg

Description

Изобретение относится к вычислительной технике, а именно к устройствам обработки символьной информации, и направлено на увеличение производительности процессоров логического вывода и систем, основанных на знаниях, реализующих любой метод логического вывода.The invention relates to computing, and in particular to devices for processing symbolic information, and is aimed at increasing the performance of logical inference processors and systems based on knowledge that implements any method of logical inference.

Изобретение может быть использовано при проектировании специализированных процессоров логического вывода или как самостоятельное устройство для проведения исследований по анализу эффективности различных методов параллельной унификации.The invention can be used in the design of specialized inference processors or as an independent device for conducting research on the analysis of the effectiveness of various methods of parallel unification.

В настоящее время в сфере компьютерных систем и технологий особенно актуальными становятся системы, решающие задачи обработки знаний. Представление знаний о выбранной предметной области является, как правило, достаточно трудоемкой задачей для интерпретации на ЭВМ, поэтому для работы с такой информацией необходимы новые семантические подходы к извлечению, представлению, хранению и обработке информации. К задачам интеллектуальной обработки данных и знаний относятся: управление крупными предприятиями, транспортная логистика, бизнес-аналитика, медицинская и техническая диагностика, логическое прогнозирование и т.д. Количество вышеуказанных задач неуклонно растет, а вычислительный аспект в них уходит на второй план. Именно поэтому были созданы специальные языки логического программирования, а также появился спрос на различного рода экспертные системы и системы поддержки принятия решения. Главная проблема в том, что при реализации на ЭВМ языки логического программирования используются неэффективно, так как они предназначены для обработки символьной информации, а написанные на них программы переводятся в набор микрокоманд для выполнения на серийных универсальных процессорах с архитектурой фон Неймана, предназначенных, в первую очередь, для обработки числовых данных.Currently, in the field of computer systems and technologies, systems that solve knowledge processing tasks are becoming especially relevant. Presentation of knowledge about the selected subject area is, as a rule, a rather laborious task for interpretation on a computer, therefore, to work with such information, new semantic approaches to the extraction, presentation, storage and processing of information are necessary. The tasks of intellectual data and knowledge processing include: management of large enterprises, transport logistics, business analytics, medical and technical diagnostics, logical forecasting, etc. The number of the above tasks is growing steadily, and the computational aspect in them is being relegated to the background. That is why special logical programming languages were created, and there was also a demand for various kinds of expert systems and decision support systems. The main problem is that when implemented on computers, logical programming languages are used inefficiently, since they are designed to process symbolic information, and the programs written on them are translated into a set of microcommands for execution on serial universal processors with von Neumann architecture, designed primarily , to process numerical data.

Решением перечисленных проблем может стать аппаратная поддержка специализированных машин логического вывода, составляющих основу любой интеллектуальный системы обработки знаний.The solution to these problems can be hardware support of specialized inference machines, which form the basis of any intelligent knowledge processing system.

В процессе логического вывода одной из самых частых операций над символьными данными является операция унификации предикатов. Обобщенная структура абстрактной машины логического вывода, а также форматы и структуры данных были взяты из [Meltsov V. Yu. High-performance systems of deductive inference: Monograph. - Yelm, WA, USA: Science Book Publishing House, 2014. - 216 p., стр. 101, 124-132].In the process of inference, one of the most common operations on symbolic data is the operation of unification of predicates. The generalized structure of an abstract inference machine, as well as data formats and structures, were taken from [Meltsov V. Yu. High-performance systems of deductive inference: Monograph. - Yelm, WA, USA: Science Book Publishing House, 2014. - 216 p., P. 101, 124-132].

Из источника [Вишняков, В.А. Аппаратно-программные средства процессоров логического вывода [Текст] / В.А. Вишняков, Д.Ю. Буланже, О.В. Герман. - М.: Радио и связь, 1991, 264 с., стр. 136-139] известен процессор унификации, который реализует следующие этапы унификации: этап проверки равенства имен унифицируемых структур, этап вычисления аргумента унифицируемых структур, этап перехода к следующим обрабатываемым аргументам, этап дереференсиирования переменной, этап дереференсиирования аргумента, этапы записи в стеки, операции чтения из унифицируемого стека, создание подстановок. Данный процессор унификации имеет следующие элементы: блок регистров общего назначения, который включает в себя: регистры унифицируемых аргументов, регистры хранения максимального верхнего значения глобального, локального и трейлового стеков, регистры хранения текущих адресов в стеках, регистры хранения векторов переменных входящих в скелетоны унифицируемых структур, регистр хранения указателя унифицируемого стека, регистр хранения указателя пары унифицируемых аргументов, регистр адреса тегированного значения, считанного из памяти в регистры унифицируемых аргументов. Также в указанный процессор унификации входят: компараторы, сумматор, регистр состояния, ПЗУ, входные буферные регистры, устройство управления, входная и выходная шины данных, входная шина адреса, входная шина команд, шина стробирования записи и шина состояния. Данное устройство имеет следующие недостатки. Во-первых, значительное время унификации из-за последовательного сопоставления термов. Во-вторых, обрабатываемые данные каждый раз сохраняются во внешнюю для блока унификации память, что значительно увеличивает время унификации при необходимости повторного обращения к ним в процессе унификации. В-третьих, применение сжатых форматов данных, типа молекула, хотя и несколько уменьшает объем требуемой для хранения памяти, однако вызывает необходимость каждый раз распаковывать структуру при унификации подобных термов, что усложняет конструкцию процессора. В-четвертых, операция дереференсирования переменных проводится каждый раз в процессе сопоставления двух аргументов-переменных, что приводит к необходимости проводить ее неоднократно для одной и той же глобальной переменной и соответственно значительному увеличению времени унификации.From the source [Vishnyakov, V.A. Hardware-software means of logical inference processors [Text] / V.A. Vishnyakov, D.Yu. Boulanger, O.V. Hermann. - M .: Radio and communications, 1991, 264 pp., Pp. 136-139] there is a unification processor that implements the following unification stages: the stage of checking the equality of names of unified structures, the stage of calculating the argument of unified structures, the stage of transition to the following processed arguments, variable dereference stage, argument dereference stage, stack writing steps, read operations from the unified stack, creating substitutions. This unification processor has the following elements: a block of general purpose registers, which includes: registers of unified arguments, storage registers for the maximum upper value of the global, local and trail stacks, registers for storing current addresses in stacks, registers for storing vectors of variables included in the skeletons of unified structures, unified stack pointer storage register, unified argument pair register storage register, tagged address address register read from memory and into registers of unified arguments. Also, the specified unification processor includes: comparators, adder, status register, ROM, input buffer registers, control device, input and output data buses, input address bus, input command bus, write gating bus and status bus. This device has the following disadvantages. Firstly, a considerable time of unification due to the consistent comparison of terms. Secondly, the processed data is stored each time in the external memory for the unification unit, which significantly increases the unification time if it is necessary to access it again in the unification process. Thirdly, the use of compressed data formats, such as a molecule, although it slightly reduces the amount of memory required for storage, however, it makes it necessary to unpack the structure each time when unifying such terms, which complicates the design of the processor. Fourth, the operation of de-referencing variables is carried out each time in the process of comparing two arguments-variables, which leads to the need to carry out it repeatedly for the same global variable and, accordingly, a significant increase in unification time.

Из источника [RU №158945 (U1), G06N 5/04. Заявка: 2015120634/08, 29.05.2015; опубл. 20.01.2016. Блок унификации с последовательным сопоставлением термов] известен блок унификации с последовательным сопоставлением термов. Данный блок унификации содержит: устройство управления, рабочую память, мультиплексоры для выбора источника загрузки операнда в регистры, регистры для хранения операндов, счетчики управления адресами первого и второго портов блока рабочей памяти, дешифраторы тэгов операндов, компаратор для сравнения имен термов, счетчик управления адресом памяти подстановок, память подстановок, регистр восстановления значения счетчика, компаратор для сравнения значения адреса памяти подстановок и сохраненного адреса. Данный блок унификации имеет следующие недостатки. Во-первых, значительное время унификации из-за последовательного сопоставления термов. Во-вторых, для учета возможной замены терма-переменной, выполненной при сопоставлении предыдущих аргументов, требуется наличие дополнительной аппаратуры (регистр, счетчик, дешифратор) и значительное время на поиск имеющихся подстановок и восстановление значения счетчика адреса. В-третьих, отсутствует возможность учета подстановок, сделанных до выполняемой в настоящий момент команды унификации.From the source [RU No. 158945 (U1), G06N 5/04. Application: 2015120634/08, 05/29/2015; publ. 01/20/2016. Unification unit with sequential matching of terms] a unit of unification with sequential matching of terms is known. This unification block contains: a control device, working memory, multiplexers for selecting the source of loading the operand into registers, registers for storing operands, address management counters for the first and second ports of the working memory block, operand tag decoders, a comparator for comparing term names, a memory address management counter lookups, lookup memory, counter recovery counter register, comparator for comparing lookup memory address values and stored address. This unit of unification has the following disadvantages. Firstly, a considerable time of unification due to the consistent comparison of terms. Secondly, to take into account the possible replacement of the term variable made by comparing the previous arguments, additional hardware (register, counter, decoder) and considerable time are required to search for existing substitutions and restore the value of the address counter. Thirdly, there is no possibility of accounting for the permutations made before the currently unified command.

Технической задачей, на решение которой направлено изобретение, является разработка устройства, значительно сокращающего время унификации предикатов за счет параллельной реализации операции унификации, одновременного учета всех подстановок, сделанных при сопоставлении термов унифицируемых предикатов, а также учета подстановок, сделанных на предыдущих этапах логического вывода.The technical problem to which the invention is directed is the development of a device that significantly reduces the time for predicate unification due to the parallel implementation of the unification operation, at the same time taking into account all the permutations made when comparing the terms of the unified predicates, as well as accounting for the permutations made in the previous stages of the logical conclusion.

Представленные положения обеспечиваются применением специальных форматов унифицируемых предикатов и их аргументов, введением в состав блока унификации узла диспетчеризации, узла сопоставления имен предикатов, узла формирования подстановок, необходимого для согласования конкретизируемых переменных, и специализированных совместно работающих узлов сопоставления термов. Особенностью представления обрабатываемых данных является использование тэгов: 1111 - предикат, 0001 - константа, 0010 - переменная исходного правила (исходной посылки-дизъюнкта), 0011 - переменная выводимого правила (целевого утверждения, запроса), а также уникальных номеров (адресов) таблицы символов для однозначной идентификации обрабатываемых термов. Поле тэгов взято размерностью 4 бита для дальнейшего расширения количества сопоставляемых типов данных, например за счет введения функторов и списков. Таблица имен хранится во внешней общей памяти.The presented provisions are ensured by the use of special formats for unified predicates and their arguments, the introduction of a dispatch node, a predicate name matching node, a substitution generation node necessary to coordinate specific variables, and specialized jointly working terms matching terms as part of the unification block. The peculiarity of the representation of the processed data is the use of tags: 1111 - predicate, 0001 - constant, 0010 - variable of the source rule (the original premise-clause), 0011 - variable of the displayed rule (target statement, request), as well as unique numbers (addresses) of the symbol table for unambiguous identification of processed terms. The tag field is taken in a 4-bit dimension to further expand the number of data types being compared, for example, by introducing functors and lists. The name table is stored in external shared memory.

Введение узлов сопоставления позволяет выполнять сопоставление всех термов параллельно и снизить влияние арности предикатов на продолжительность операции унификации. Кроме того, реализована функциональная возможность изменения количества узлов сопоставления с учетом особенностей данных, имеющихся в базе знаний машины логического вывода (арности предикатов, количества предикатов в исходных посылках и т.д.). Благодаря регулярной структуре устройство можно легко реализовать на основе программируемой логической интегральной схемы (ПЛИС) или заказной СБИС.The introduction of matching nodes allows you to compare all terms in parallel and reduce the effect of predicate arity on the duration of the unification operation. In addition, the functionality was implemented to change the number of matching nodes, taking into account the features of the data available in the knowledge base of the logical inference engine (arity of predicates, number of predicates in the initial premises, etc.). Due to the regular structure, the device can be easily implemented on the basis of a programmable logic integrated circuit (FPGA) or custom VLSI.

Структурная схема блока унификации с параллельным сопоставлением термов показана на фигуре 1.A block diagram of a unification unit with parallel term matching is shown in Figure 1.

Устройство содержит следующее:The device contains the following:

1 - внутренняя рабочая память блока унификации (ВРП);1 - internal working memory of the unification unit (GRP);

2 - однонаправленная линия связи для загрузки унифицируемых предикатов из внешней памяти по входной шине данных;2 - unidirectional communication line for loading unified predicates from external memory via the input data bus;

3 - однонаправленная линия связи с внешним устройством управления для запуска операции унификации по входной шине управления;3 - unidirectional communication line with an external control device to start the unification operation on the input control bus;

4 - узел управления (УУ);4 - control unit (UE);

5 - узел диспетчеризации (УД);5 - scheduling node (UD);

6 - однонаправленная линия связи для управления чтением из внутренней рабочей памяти;6 - unidirectional communication line for controlling reading from the internal working memory;

7 - однонаправленная линия связи для передачи имен предикатов;7 - unidirectional communication line for transmitting predicate names;

8 - узел сопоставления имен предикатов;8 - predicate name matching node;

9 - однонаправленная линия связи для передачи результатов сопоставления имен предикатов;9 - unidirectional communication line for transmitting the results of matching predicate names;

10 - однонаправленная линия связи для передачи термов;10 - unidirectional communication line for transmitting terms;

11 - однонаправленная линия связи для передачи термов;11 - unidirectional communication line for transmitting terms;

12 - первый узел сопоставления термов (УСТ);12 - the first node of the comparison of terms (TSI);

13 - последний УСТ;13 - last TSI;

14 - однонаправленная линия связи для передачи переменных;14 - unidirectional communication line for transmitting variables;

15 - узел формирования подстановок (УФП)15 - node formation of substitutions (UVP)

16 - двунаправленная линия связи для управления УСТ;16 - bidirectional communication line for the management of TSI;

17 - двунаправленная линия связи для управления УСТ;17 - bidirectional communication line for the management of TSI;

18 - однонаправленная линия связи для передачи результатов сопоставления термов;18 - unidirectional communication line for transmitting the results of the comparison of terms;

20 - однонаправленная линия связи для передачи подстановок;20 - unidirectional communication line for transmitting substitutions;

21 - однонаправленная линия связи для передачи подстановок;21 - unidirectional communication line for transmitting substitutions;

22 - однонаправленная линия связи для передачи результата операции согласования переменных;22 - unidirectional communication line for transmitting the result of the operation of matching variables;

23 - однонаправленная линия связи для выдачи результата унификации на выходную шину управления;23 - unidirectional communication line for outputting the result of unification to the output control bus;

22 - однонаправленная линия связи для выдачи результирующих подстановок на выходную шину данных.22 - unidirectional communication line for issuing the resulting substitutions on the output data bus.

В структуру блока унификации введены узлы сопоставления термов (12-13) и предусмотрена возможность изменения их количества, что позволяет реализовать параллельное сопоставлением термов и за счет этого значительно снизить время, затрачиваемое на унификацию в целом. Наличие узла диспетчеризации (5) позволяет балансировать загрузку узлов сопоставления термов в ходе выполнения процедуры унификации, уменьшая время их простоя. Кроме того, возможность вариации количества УСТ позволяет подобрать конфигурацию блока унификации, наиболее эффективно реализующую обработку структур входных данных для конкретной пользовательской задачи.The nodes of the term comparison (12-13) are introduced into the structure of the unification block and the possibility of changing their number is provided, which allows parallel terms to be implemented by matching and thereby significantly reduce the time spent on unification as a whole. The presence of the dispatch node (5) allows you to balance the load of the term mapping nodes during the unification procedure, reducing their downtime. In addition, the possibility of varying the number of TSIs allows you to choose the configuration of the unification block that most effectively implements the processing of input data structures for a specific user task.

Узел сопоставления имен предикатов выделен в отдельный специализированный элемент, поскольку его структура значительно проще, чем УСТ, и отсутствует необходимость формирования подстановок переменных.The predicate name matching node is selected as a separate specialized element, since its structure is much simpler than TSI, and there is no need to form variable substitutions.

Узел формирования подстановок (15) содержит в своем составе ассоциативную память, которая необходима не только для хранения подстановок, получаемых в процессе выполнения текущей команды унификации, но и для хранения подстановок, полученных ранее при обработке предыдущих команд унификации предикатов выбранного дизъюнкта-посылки (исходного правила) и выводимого заключения (целевого правила). Это позволяет проводить операцию унификации термов с учетом ранее принятых замен (конкретизаций) переменных, не тратя на согласование подстановок и дереференсирование переменных дополнительное время, весьма значительное, если конкретизации переменных хранятся во внешней памяти.The substitution generation node (15) contains associative memory, which is necessary not only for storing the substitutions received during the execution of the current unification command, but also for storing the substitutions received earlier in the processing of the previous unification commands for the predicates of the selected clause sending (the original rule ) and the conclusion (target rule). This allows us to carry out the operation of unification of terms taking into account previously accepted substitutions (concretizations) of variables without spending extra time on coordinating substitutions and dereference of variables, which is very significant if the concretization of variables is stored in external memory.

Описание работы блока унификаций двух предикатовDescription of the unification block of two predicates

В качестве аргументов (атрибутов, термов) предикатов могут выступать переменные (неконкретизированные переменные), поименованные константы (атомы) и числовые константы. Имена констант всегда начинаются с заглавной буквы, а имена переменных - с прописной. Предикатное имя - все буквы заглавные.Variables (non-specific variables), named constants (atoms), and numerical constants can serve as arguments (attributes, terms) of predicates. Constant names always begin with an uppercase letter, and variable names with an uppercase one. The predicate name is all uppercase letters.

Рассмотрим пример организации таблицы имен (фигура 2) и внутренней рабочей памяти (фигура 3) для команды унификации двух предикатов АВТОМОБИЛЬ (Лада_веста, x, y, z, z, Серебристый, x) и АВТОМОБИЛЬ (u, v, 43, к785не, к875не, Серебристый, Иванов). Предикат АВТОМОБИЛЬ имеет семь термов: модель автомобиля, фамилия владельца, код региона регистрации автомобиля, передний государственный регистрационный номер, задний государственный регистрационный номер, цвет автомобиля и фамилия водителя (за рулем в настоящий момент времени). В данном примере первый предикат характеризует автомобиль Лада Веста серебристого цвета, а владелец, код региона и государственные номера задаются переменными x, y и z соответственно, которые могут уточняться в дальнейшем (переменная ` - переменная выводимого правила). Для второго предиката известны: код региона, номера и цвет автомобиля, фамилия водителя, а владелец и модель автомобиля не определены. С учетом введенных тэгов (см. выше), структура первого предиката будет занимать первые пять ячеек рабочей памяти (фигура 3, ячейки с адреса 000 по 007), второй предикат - ячейки с 008 по 015. По правилам, введенным в теории логического программирования, предикаты с одинаковым именем всегда должны иметь одинаковую арность (количество термов).Consider an example of organizing a name table (figure 2) and internal working memory (figure 3) for the unification command for the two predicates CAR (Lada_vesta, x, y, z, z, Silver, x) and CAR (u, v, 43, к785ne, к875not , Silver, Ivanov). The predicate CAR has seven terms: car model, name of owner, code of the region of registration of the car, front state registration number, rear state registration number, color of the car and surname of the driver (currently driving). In this example, the first predicate characterizes the silver Lada Vesta car, and the owner, region code and state numbers are set by x, y and z variables, respectively, which can be specified later (the variable `is a variable of the displayed rule). For the second predicate, the following are known: the region code, the number and color of the car, the name of the driver, and the owner and model of the car are not defined. Based on the entered tags (see above), the structure of the first predicate will occupy the first five cells of working memory (Figure 3, cells from addresses 000 to 007), the second predicate will occupy cells from 008 to 015. According to the rules introduced in the theory of logical programming, predicates with the same name must always have the same arity (number of terms).

Рассмотрим пример организации таблицы подстановок в УФП (фигура 4). Сначала (столбцы 3 и 4) указывается тэг и номер заменяемой переменной, а в конце (столбцы 5 и 6) - новое значение переменной.Consider an example of organizing a lookup table in UVP (figure 4). At first (columns 3 and 4) the tag and number of the variable to be replaced are indicated, and at the end (columns 5 and 6) - the new value of the variable.

Алгоритм выполнения операции параллельной унификации термов двух предикатов на заявляемом устройстве состоит из следующих этапов.The algorithm for performing the operation of parallel unification of the terms of two predicates on the claimed device consists of the following steps.

Этап 0. Во внутреннюю рабочую память 1 по линии связи 2 загружаются два предиката - сложноструктурированные структуры тэгированных данных. По линии связи 3 в узел управления 4 поступает сигнал о начале выполнения операции унификации.Stage 0. Two predicates are loaded into the internal working memory 1 via the communication line 2 - complex-structured structures of tagged data. On the communication line 3 to the control unit 4 receives a signal about the start of the operation of unification.

Этап 1. Узел диспетчеризации 5 по линии связи 6 посылает команду на чтение из внутренней рабочей памяти 1:Stage 1. Node scheduling 5 on the communication line 6 sends a command to read from the internal working memory 1:

- имен предикатов по линии связи 7 в узел сопоставления имен предикатов 8;- names of predicates on the communication line 7 to the node matching the names of predicates 8;

- термов предикатов (первый, второй, третий, … и т.д.) попарно по линиям связи 10 и 11 в узлы сопоставления термов 12 и 13 соответственно.- predicate terms (first, second, third, ..., etc.) in pairs along the communication lines 10 and 11 to the nodes of the comparison of terms 12 and 13, respectively.

Этап 2. На узлах сопоставления 8, 12-13 производится параллельная асинхронная процедура сопоставления указанных аргументов.Stage 2. On the matching nodes 8, 12-13, a parallel asynchronous procedure for matching the specified arguments is performed.

Если имена предикатов не совпадают, то из узла сопоставления 8 по линии связи 9 в узел управления 4 поступает сигнал - «0». В противном случае поступает сигнал «1».If the names of the predicates do not match, then from the mapping node 8 via the communication line 9 to the control node 4 receives a signal - "0". Otherwise, the signal "1".

При сопоставлении термов возможны следующие ситуации:When matching terms, the following situations are possible:

- если унифицируется пара «константа - константа» и имена констант не совпадают, то из узла сопоставления 12 (13) по линии связи 18 (19) в узел управления 4 поступает сигнал «0». В противном случае поступает сигнал «1»;- if a pair of "constant - constant" is unified and the names of the constants do not match, then from the mapping node 12 (13) via the communication line 18 (19) to the control node 4 receives the signal "0". Otherwise, the signal "1";

- если унифицируется пара «переменная - константа» (или «константа - переменная»), то из узла сопоставления 12 (13) по линии связи 18 (19) в узел управления 4 поступает сигнал «1», а в узел формирования подстановок 15 по линии связи 20 (21) - сформированная при сопоставлении термов подстановка переменной;- if the pair “variable - constant” (or “constant - variable”) is unified, then from the mapping node 12 (13), via the communication line 18 (19), the signal “1” is sent to the control node 4, and to the substitution formation node 15 by communication lines 20 (21) - a variable substitution formed when matching terms;

- если унифицируется пара «переменная - переменная», причем одна из них является переменной выводимого правила, то из узла сопоставления 12 (13) по линии связи 18 (19) в узел управления 4 поступает сигнал «1», а в узел формирования подстановок 15 по линии связи 20 (21) - сформированная при сопоставлении термов подстановка (переменная выводимого правила является «заменяемой переменной»).- if the pair “variable - variable” is unified, and one of them is a variable of the displayed rule, then from the mapping node 12 (13) via the communication line 18 (19), the signal “1” is sent to the control node 4, and to the substitution formation node 15 on the communication line 20 (21) - a substitution formed during the comparison of terms (the variable of the displayed rule is a “replaceable variable”).

Пример организации таблицы подстановок после второго этапа унификации вышеуказанных предикатов АВТОМОБИЛЬ приведен на фигуре 4.An example of the organization of the lookup table after the second stage of unification of the above predicates CAR is shown in figure 4.

Если в результате сопоставления имен предикатов или какой-либо пары термов в узел управления 4 поступил хотя бы один «0», то операция унификации останавливается и по линии связи 23 выдается сигнал («0») о неуспешном завершении операции.If, as a result of matching the names of predicates or any pair of terms, at least one “0” is received in the control unit 4, then the unification operation is stopped and a signal (“0”) is issued on the communication line 23 indicating that the operation was unsuccessful.

Этап 3. Если в результате сопоставления имен предикатов и всех пар термов в узел управления 4 поступили сигналы «1», то в узле формирования подстановок 15 производится процедура согласования конкретизированных переменных, состоящая из следующих шагов:Stage 3. If, as a result of matching the names of predicates and all pairs of terms, the signals “1” are received in the control node 4, then the procedure for matching the specified variables is performed in the node of substitution generation 15, consisting of the following steps:

- шаг 1. Сравниваются все конкретизации одноименных переменных константами (см. фигура 4, столбцы «Заменяемая переменная» и «Новое значение»). Если в столбце «Новое значение» хотя бы один раз встречаются различные значения констант для оной и той же переменной, то в узел управления 4 по линии связи 22 подается сигнал «0» о неуспешном завершении процедуры согласования переменных. Если все записи конкретизируются одной и той же константой, то в ассоциативной памяти подстановок остается только одна (первая) запись о замене этой переменной соответствующей константой, а остальные записи удаляются.- step 1. All instantiations of the variables of the same name are compared by constants (see figure 4, the columns "Replaceable variable" and "New value"). If in the column "New value" at least once there are different constant values for the same variable, then to the control unit 4 via communication line 22 a signal "0" is sent about the failure of the variable matching procedure. If all records are instantiated with the same constant, then in the associative memory of the substitutions there is only one (first) record about replacing this variable with the corresponding constant, and the rest of the records are deleted.

- шаг 2. Во всех парах «переменная - переменная» аргументы-переменные заменяются на имеющиеся в других записях конкретизации соответствующими константами. Причем если в паре заменяется на константу только переменная выводимого правила (столбец «Заменяемая переменная»), а переменная исходного правила нет (столбец «Новое значение»), то ячейки (содержимое ячеек) в столбцах «Заменяемая переменная» и «Новое значение» такой записи меняются местами.- step 2. In all pairs “variable - variable” the argument-variables are replaced with the corresponding constants in the other concretization entries. Moreover, if in a pair only the variable of the displayed rule is replaced with a constant (the column “Replaceable variable”), and the variable of the original rule is not (the column “New value”), then the cells (cell contents) in the columns “Replaceable variable” and “New value” are such records are swapped.

Если для какой-либо записи в столбцах «Заменяемая переменная» и «Новое значение» встречаются две константы с различными значениями (именами), то в узел управления 4 по линии связи 22 подается сигнал «0» о неуспешном завершении процедуры согласования переменных. Записи с двумя одинаковыми константами удаляются для уменьшения объема информации, хранимой в таблице подстановок.If for any record in the columns “Replaceable Variable” and “New Value” there are two constants with different values (names), then a signal “0” is sent to control node 4 via communication line 22 about the unsuccessful completion of the variable matching procedure. Records with two identical constants are deleted to reduce the amount of information stored in the lookup table.

- шаг 3. Сравниваются все конкретизации одноименных переменных константами (см. фигура 4, столбцы «Заменяемая переменная» и «Новое значение»). Если в столбце «Новое значение» хотя бы один раз встречаются различные значения констант, то в узел управления 4 по линии связи 22 подается сигнал «0» о неуспешном завершении процедуры согласования переменных. Если все записи конкретизируются одной и той же константой, то в ассоциативной памяти подстановок остается только одна (первая) запись о замене этой переменной соответствующей константой, а остальные записи удаляются, а в узел управления 4 по линии связи 22 подается сигнал «1» об успешном завершении процедуры согласования переменных.- step 3. All instantiations of the variables of the same name are compared with constants (see figure 4, the columns “Replaceable variable” and “New value”). If in the column "New value" at least once there are different values of constants, then to the control unit 4 via communication line 22 a signal "0" is sent about the unsuccessful completion of the procedure for matching variables. If all records are specified by the same constant, then in the associative memory of the substitutions there is only one (first) record about replacing this variable with the corresponding constant, and the rest of the records are deleted, and a signal “1” is sent to control node 4 via communication line 22 about successful completion of the variable matching procedure.

Этап 4. Если процедура согласования конкретизированных переменных завершилась неуспешно (из узла формирования подстановок 15 по линии связи 22 поступил сигнал «0»), то узел управления 4 по линии связи 23 выдает сигнал «0», означающий невозможность унификации анализируемой пары предикатов. Если процедура согласования конкретизированных переменных завершилась успешно (из узла формирования подстановок 15 по линии связи 22 поступил сигнал «1»), то узел управления 4 по линии связи 23 выдает сигнал «1», означающий успешное окончание операции унификации пары предикатов. При этом из узла формирования подстановок 15 по линии связи 24 выдаются замены всех переменных, полученные при унификации указанной пары предикатов.Stage 4. If the procedure for concretizing the specified variables was unsuccessful (a signal “0” was received from the node of substitution formation 15 on the communication line 22), then the control unit 4 on the communication line 23 gives a “0” signal, which means that it is impossible to unify the analyzed pair of predicates. If the procedure for reconciling the specified variables was completed successfully (from the node of substitution formation 15, the signal “1” was received via the communication line 22), the control unit 4 via the communication line 23 gives the signal “1”, which means the successful completion of the unification of the pair of predicates. In this case, from the node of the formation of substitutions 15 via the communication line 24, replacements are made of all variables obtained by unifying the specified pair of predicates.

Пример 1 (фиг. 5) демонстрирует случай успешного завершения процедуры согласования переменных - все пары отмечены (1), и унификации предикатов в целом. В узел управления 4 из узла формирования подстановок посылается сигнал «1». Конкретизации переменных (подстановки) получены на этапе 3, шаг 1.Example 1 (Fig. 5) demonstrates the case of successful completion of the process of matching variables - all pairs are marked (1), and the unification of predicates as a whole. Signal “1” is sent to control unit 4 from the substitution formation unit. Concretization of variables (substitutions) were obtained at stage 3, step 1.

Пример 2 (фиг. 6) демонстрирует случай неуспешного завершения процедуры согласования переменных на первом шаге третьего этапа и унификации предикатов в целом.Example 2 (Fig. 6) demonstrates the case of unsuccessful completion of the procedure for matching variables in the first step of the third stage and the unification of predicates in general.

Пример 3 (фиг. 7) демонстрирует случай неуспешного завершения процедуры согласования переменных на втором шаге третьего этапа и унификации предикатов в целом.Example 3 (Fig. 7) demonstrates the case of an unsuccessful completion of the procedure for matching variables in the second step of the third stage and the unification of predicates in general.

Пример 4 (фиг. 8) демонстрирует случай неуспешного завершения процедуры согласования переменных на третьем шаге третьего этапа и унификации предикатов в целом.Example 4 (Fig. 8) demonstrates the case of unsuccessful completion of the procedure for matching variables in the third step of the third stage and the unification of predicates in general.

Следует отметить, что традиционные тестовые (искусственные) задачи, используемые для проверки корректности и эффективности различных модификаций классического принципа резолюций (в том числе многочисленных реализаций параллельного Пролога), содержат предикаты с арностью не более 6-7. Однако все более широкое применение методов параллельного логического вывода в таких областях, как управление крупными предприятиями, медицинская и техническая диагностика многокритериальное логическое прогнозирование, приводит к необходимости использовать предикаты с 15-20 и более аргументами. Предварительные оценки аппаратной реализации заявляемого устройства на бюджетной ПЛИС Altera Cyclone III свидетельствуют о свободном размещении на кристалле более 100 узлов сопоставления в одном блоке унификации, что дает возможность параллельного сопоставления всех аргументов обрабатываемых предикатов одновременно.It should be noted that the traditional test (artificial) problems used to verify the correctness and effectiveness of various modifications of the classical principle of resolutions (including numerous implementations of the parallel Prolog) contain predicates with arity no more than 6-7. However, the increasing use of parallel inference methods in areas such as the management of large enterprises, medical and technical diagnostics, multi-criteria logical forecasting, makes it necessary to use predicates with 15–20 or more arguments. Preliminary estimates of the hardware implementation of the claimed device on the budget Altera Cyclone III FPGA indicate the free placement of more than 100 matching nodes on a chip in one unification block, which makes it possible to parallelly compare all arguments of processed predicates at the same time.

Минимальное повышение производительности заявляемым устройством можно оценить следующим образом. Будем считать, что унифицируемые предикаты загружены во внутреннюю память заранее и отсчет времени ведется с момента поступления сигнала запуска (т.е. без учета этапа 0). Время выполнения этапов 1, 2, 4, а также каждого шага этапа 3 (потребуется только в том случае, если в сопоставляемой паре термов имеется хотя бы одна переменная) будем называть тактом работы устройства. Тогда время выполнения унификации для примеров 1 и 2 (фиг. 5 и 6) будет составлять 4 такта: чтение аргументов из внутренней рабочей памяти, сопоставление аргументов, согласование переменных (шаг 1) и выдача результата.The minimum performance increase of the claimed device can be estimated as follows. We assume that the unified predicates are loaded into the internal memory in advance and the time is counted from the moment the trigger signal arrives (i.e., without taking stage 0 into account). The execution time of steps 1, 2, 4, as well as each step of step 3 (it will be required only if there is at least one variable in the pair of terms to be compared) will be called the device operation cycle. Then the unification execution time for examples 1 and 2 (Figs. 5 and 6) will be 4 measures: reading the arguments from the internal working memory, matching the arguments, matching the variables (step 1), and outputting the result.

Для сравнения возьмем устройство [RU №158945 (U1), G06N 5/04. Заявка: 2015120634/08, 29.05.2015; опубл. 20.01.2016. Блок унификации с последовательным сопоставлением термов]. Этапы 1, 2 и 4 на нем выполняются также за один такт каждый. Для поиска и возможного согласования (дереференсирования) переменной в памяти подстановок потребуется 6 тактов (в случае необходимости согласования) или 4 такта (в случае отсутствия в памяти подстановок предыдущих конкретизаций анализируемой переменной). Таким образом, минимально возможное время унификации будет 3 такта, если в унифицируемой паре предикатов в качестве самых первых термов используются константы с разными именами (значениями). В заявляемом устройстве это время также равно 3 тактам.For comparison, take the device [RU No. 158945 (U1), G06N 5/04. Application: 2015120634/08, 05/29/2015; publ. 01/20/2016. Unification block with sequential matching of terms]. Steps 1, 2, and 4 on it are also performed in one cycle each. To search for and possibly coordinate (dereference) a variable in the substitution memory, 6 cycles (if necessary, matching) or 4 cycles (if there are no substitutions in the memory of the previous instantiations of the analyzed variable) are required. Thus, the minimum possible unification time will be 3 cycles if constants with different names (values) are used as the very first terms in the unified pair of predicates. In the inventive device, this time is also equal to 3 ticks.

В устройстве [RU №158945 (U1), G06N 5/04. Заявка: 2015120634/08, 29.05.2015; опубл. 20.01.2016. Блок унификации с последовательным сопоставлением термов] унификация для примера 1 (фиг. 5) выполнится за 45 тактов: считывание имен предикатов (1 такт); сопоставление имен предикатов (1 такт); считывание первой пары аргументов (1 такт); сопоставление первой пары аргументов (1 такт); считывание второй пары аргументов (1 такт); сопоставление второй пары аргументов (1 такт); попытка согласования переменной x (4 такта); попытка согласования переменной v (4 такта); считывание третьей пары аргументов (1 такт); сопоставление третьей пары аргументов (1 такт); попытка согласования переменной y (4 такта); считывание четвертой пары аргументов (1 такт); сопоставление четвертой пары аргументов - 1 такт; попытка согласования переменной z (4 такта); считывание пятой пары аргументов (1 такт); сопоставление пятой пары аргументов (1 такт); согласование переменной z (6 тактов); считывание шестой пары аргументов (1 такт); сопоставление шестой пары аргументов (1 такт); считывание седьмой пары аргументов (1 такт); сопоставление седьмой пары аргументов (1 такт); согласование переменной x (6 тактов); выдача результатов (1 такт). В заявляемом устройстве - 4 такта.In the device [RU No. 158945 (U1), G06N 5/04. Application: 2015120634/08, 05/29/2015; publ. 01/20/2016. Unification unit with sequential comparison of terms] unification for example 1 (Fig. 5) will be performed in 45 cycles: reading predicate names (1 cycle); matching predicate names (1 measure); reading the first pair of arguments (1 clock); matching the first pair of arguments (1 clock); reading the second pair of arguments (1 clock); matching the second pair of arguments (1 clock); attempt to reconcile the variable x (4 measures); attempt to match the variable v (4 measures); reading the third pair of arguments (1 clock); matching the third pair of arguments (1 clock); attempt to reconcile y variable (4 measures); reading the fourth pair of arguments (1 clock); matching the fourth pair of arguments - 1 clock; attempt to match the variable z (4 measures); reading the fifth pair of arguments (1 clock); matching the fifth pair of arguments (1 clock); matching z variable (6 measures); reading the sixth pair of arguments (1 clock); matching the sixth pair of arguments (1 clock); reading the seventh pair of arguments (1 clock); matching the seventh pair of arguments (1 clock); coordination of the variable x (6 measures); delivery of results (1 step). In the inventive device - 4 cycles.

В устройстве [RU №158945 (U1), G06N 5/04. Заявка: 2015120634/08, 29.05.2015; опубл. 20.01.2016. Блок унификации с последовательным сопоставлением термов] унификация для примера 2 (фиг. 6) выполнится за 35 тактов. Унификация закончится неуспешно при согласовании переменной z из пары z/е578кн с ранее конкретизированным значением z/к875не. В заявляемом устройстве унификация выполнится за 4 такта.In the device [RU No. 158945 (U1), G06N 5/04. Application: 2015120634/08, 05/29/2015; publ. 01/20/2016. Unit unification with sequential comparison of terms] unification for example 2 (Fig. 6) will be performed in 35 cycles. Unification will fail when matching the variable z from the pair z / е578kn with the previously specified value z / к875not. In the inventive device, unification will be performed in 4 cycles.

В устройстве [RU №158945 (U1), G06N 5/04. Заявка: 2015120634/08, 29.05.2015; опубл. 20.01.2016. Блок унификации с последовательным сопоставлением термов] унификация для примера 4 (фиг. 6) выполнится за 23 такта. В заявляемом устройстве унификация выполнится за 6 тактов: чтение аргументов из внутренней рабочей памяти, сопоставление аргументов, согласование переменных (шаг 1), согласование переменных (шаг 2), согласование переменных (шаг 3), выдача результата.In the device [RU No. 158945 (U1), G06N 5/04. Application: 2015120634/08, 05/29/2015; publ. 01/20/2016. Unit unification with sequential comparison of terms] unification for example 4 (Fig. 6) will be performed in 23 cycles. In the inventive device, unification will be performed in 6 cycles: reading arguments from the internal working memory, matching arguments, matching variables (step 1), matching variables (step 2), matching variables (step 3), outputting the result.

Все сравнения приведены для случая, когда предыдущие подстановки переменных находятся во внутренней памяти блока унификации. Для заявляемого устройства это условие выполняется всегда. Для устройства [RU №158945 (U1), G06N 5/04. Заявка: 2015120634/08, 29.05.2015; опубл. 20.01.2016. Блок унификации с последовательным сопоставлением термов] во внутренней памяти хранятся только подстановки, выполненные при унификации текущей пары предикатов обрабатываемых правил-дизъюнктов. Остальные конкретизации хранятся во внешней памяти. Для устройства [Вишняков, В.А., Аппаратно-программные средства процессоров логического вывода [Текст] / В.А. Вишняков, Д.Ю. Буланже, О.В. Герман. - М.: Радио и связь, 1991. - 264 с.] все конкретизации переменных хранятся во внешней памяти, к которой необходимо обращаться при каждом согласовании сопоставляемых переменных. Это существенно увеличивает общее время унификации пары предикатов.All comparisons are given for the case when the previous variable substitutions are in the internal memory of the unification block. For the inventive device, this condition is always satisfied. For the device [RU No. 158945 (U1), G06N 5/04. Application: 2015120634/08, 05/29/2015; publ. 01/20/2016. Unification unit with sequential matching of terms] in the internal memory, only the substitutions performed during the unification of the current pair of predicates of the processed clause rules are stored. The remaining instantiations are stored in external memory. For the device [Vishnyakov, VA, Hardware-software means of logical output processors [Text] / V.A. Vishnyakov, D.Yu. Boulanger, O.V. Hermann. - M.: Radio and Communications, 1991. - 264 p.] All instantiations of variables are stored in external memory, which must be accessed at each agreement of the compared variables. This significantly increases the total unification time of a pair of predicates.

С учетом вышесказанного можно утверждать, что заявляемое устройство многократно снижает время унификации, что позволит достичь значительного превосходства по производительности разрабатываемых на его основе специализированных процессоров логического вывода над существующими аналогами.Based on the foregoing, it can be argued that the inventive device significantly reduces the time of unification, which will allow to achieve significant superiority in performance of specialized logical output processors developed on its basis over existing analogs.

Claims (5)

Блок унификации с параллельным сопоставлением термов, содержащий внутреннюю рабочую память, один из входов которой соединен с входной шиной данных, узел управления, один из входов которого соединен с входной шиной управления, отличающийся тем, что дополнительно содержит:A unification unit with parallel term matching, containing an internal working memory, one of the inputs of which is connected to the input data bus, a control unit, one of the inputs of which is connected to the input control bus, characterized in that it further comprises: узел сопоставления имен предикатов, вход которого соединен с одним из выходов внутренней рабочей памяти, а выход соединен с одним из входов узла управления,node predicate name matching, the input of which is connected to one of the outputs of the internal working memory, and the output is connected to one of the inputs of the control node, узлы сопоставления термов, входы которых соединены с выходами внутренней рабочей памяти и выходами узла диспетчеризации, а выходы соединены с входами узла управления, входами узла формирования подстановок и входами узла диспетчеризации,term comparison nodes, the inputs of which are connected to the outputs of the internal working memory and the outputs of the dispatch node, and the outputs are connected to the inputs of the control node, the inputs of the substitution formation node and the inputs of the dispatch node, узел диспетчеризации, входы которого соединены с выходами узлов сопоставления термов, а выходы соединены с одним из входов внутренней рабочей памяти и входами узлов сопоставления термов,a dispatching node, the inputs of which are connected to the outputs of the term mapping nodes, and the outputs are connected to one of the inputs of the internal working memory and the inputs of the term mapping nodes, узел формирования подстановок, входы которого соединены с выходами узлов сопоставления термов и одним из выходов внутренней рабочей памяти, а выходы соединены с одним из входов узла управления и выходной шиной данных.a substitution formation unit, the inputs of which are connected to the outputs of the term mapping nodes and one of the outputs of the internal working memory, and the outputs are connected to one of the inputs of the control node and the output data bus.
RU2016120823A 2016-05-26 2016-05-26 Unification unit with parallel therm matching RU2631158C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2016120823A RU2631158C1 (en) 2016-05-26 2016-05-26 Unification unit with parallel therm matching

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2016120823A RU2631158C1 (en) 2016-05-26 2016-05-26 Unification unit with parallel therm matching

Publications (1)

Publication Number Publication Date
RU2631158C1 true RU2631158C1 (en) 2017-09-19

Family

ID=59893872

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2016120823A RU2631158C1 (en) 2016-05-26 2016-05-26 Unification unit with parallel therm matching

Country Status (1)

Country Link
RU (1) RU2631158C1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103013A1 (en) * 2002-11-25 2004-05-27 Joel Jameson Optimal scenario forecasting, risk sharing, and risk trading
WO2005055073A1 (en) * 2003-11-27 2005-06-16 Qinetiq Limited Automated anomaly detection
RU158945U1 (en) * 2015-05-29 2016-01-20 Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" UNIFICATION UNIT WITH SERIAL COMPARISON OF TERMS

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040103013A1 (en) * 2002-11-25 2004-05-27 Joel Jameson Optimal scenario forecasting, risk sharing, and risk trading
US20080027774A1 (en) * 2002-11-25 2008-01-31 Joel Jameson Optimal Scenario Forecasting, Risk Sharing, and Risk Trading
WO2005055073A1 (en) * 2003-11-27 2005-06-16 Qinetiq Limited Automated anomaly detection
RU158945U1 (en) * 2015-05-29 2016-01-20 Федеральное государственное бюджетное образовательное учреждение высшего образования "Вятский государственный университет" UNIFICATION UNIT WITH SERIAL COMPARISON OF TERMS

Similar Documents

Publication Publication Date Title
CN107451219B (en) Method for analyzing second index and distributed New SQL database
Ramírez-Gallego et al. An information theory-based feature selection framework for big data under apache spark
CN100495342C (en) High efficiency simulating method and system for multiprocessor storage consistency
CN104364775A (en) Special memory access path with segment-offset addressing
Van Hee et al. Soundness of resource-constrained workflow nets
Hosabettu et al. Proof of correctness of a processor with reorder buffer using the completion functions approach
CN103999036A (en) Method and system using exceptions for code specialization in a computer architecture that supports transactions
US20110302394A1 (en) System and method for processing regular expressions using simd and parallel streams
US11681691B2 (en) Presenting updated data using persisting views
Xu et al. Neutrino: Revisiting memory caching for iterative data analytics
Zhao et al. Vertical partitioning for query processing over raw data
Tar et al. Parallel search paths for the simplex algorithm
Petersohn et al. Flexible rule-based decomposition and metadata independence in modin: a parallel dataframe system
Geffroy et al. Occam's Razor applied to the Petri net coverability problem
Mays et al. A persistent store for large shared knowledge bases
Neele et al. Solving parameterised boolean equation systems with infinite data through quotienting
JP5108252B2 (en) Index updating method and system
US20240004871A1 (en) Systems and methods for targeted data discovery
RU2659492C1 (en) Unification unit with parallel comparison of terms
RU2631158C1 (en) Unification unit with parallel therm matching
US9418137B2 (en) Database without structured query language
US10997497B2 (en) Calculation device for and calculation method of performing convolution
JP4254954B2 (en) Data processing device
RU158945U1 (en) UNIFICATION UNIT WITH SERIAL COMPARISON OF TERMS
Eisenstadt et al. Flea-cbr–a flexible alternative to the classic 4r cycle of case-based reasoning