AI Chatbot Agent

AI Chatbot Agent — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Language-Theoretic Security

    Language-Theoretic Security

    Language-theoretic security, or LangSec, is an approach to software security that focuses on input handling, complexity, and program design as strategies to improve the verifiability of computer programs. It was introduced in 2005 by Robert J. Hansen and Meredith L. Patterson at BlackHat and in 2011 by Len Sassaman and Patterson. It aims to create a formal description of which software is likely to have security vulnerabilities of particular classes, and why. It considers programs to have an inherent parser component, whether or not explicit, composed of that part of the program which operates on external input before that input is fully parsed. A central hypothesis of language-theoretic security is that vulnerabilities in software increase according to the computational power of the notional input-accepting automaton equivalent to this parser, using the definitions of automata theory. The lower bound on this computational power is the input language complexity of the program. The extent to which reducing this complexity is possible is a function of the specification of the communication protocol or file format the program takes as input. == Parsing as a security mechanism == The behaviour of a program is defined with reference to its expected input. Unexpected input being used by a program is a factor in numerous security bugs, including the so-called Android master key vulnerability (CVE-2013-4787), because accepting unexpected input renders the program's specification ambiguous. In that instance, the unexpected ambiguity came in the form of a ZIP file with duplicate filenames. If a program fully parses its input and only acts on input that unambiguously meets the specification, it follows that the program will avoid these types of vulnerabilities. This is an intentional inversion of the Postel principle. Accepting only unambiguous and valid input is a more formal requirement than input validation or sanitization, and narrows the number of possible but unanticipated program states that can be induced in an application via user input. Conversely, failure to do this is associated with security vulnerabilities. Input sanitization in particular is held to be an inadequate approach to avoiding malicious input because it inherently ignores context-sensitive properties of the input; it can therefore result in paradoxical effects, such as sanitization code activating otherwise inert cross-site scripting payloads in browsers. === Parser differentials === If the language of accepted program input is sufficiently simple, it is possible to verify that two implementations parse the same input language consistently. This is advantageous because it shows no parser differential exists between the two implementations. The requisite level of simplicity is theoretically that for which there is a solution to the equivalence problem. If the two parsers involved in CVE-2013-4787 were equivalent - that is, if they rendered the same output state given the same input state - the vulnerability could not have existed. One strategy for doing this is to publish machine-readable specifications of a format or protocol, and then use a parser generator to generate the parser code. An example of a parser generator built for this purpose is DaeDaLus. The combination of Lex with any of GNU Bison, ANTLR, or Yacc also accomplishes this. However, many parser generators allow the mixing of general purpose code with the parsing definitions, which weakens the guarantees provided by parsing. === Analysis of injection attacks === Injection attacks are generally the result of differences between the serializer (or "unparser") and the corresponding parser at a layer boundary in a system; therefore, they are a special case of parser differentials. In a SQL injection attack, for example, an attacker is able to cause the application with which they are interacting to serialize a SQL query that has different semantics than intended. In the simplest case where the payload ends a string and adds new code, the payload has crossed the code-data boundary in SQL. In language-theoretic security, this is treated as a bug in the serializer of the SQL query, which should instead be written in a way that constrains its possible outputs to those within the scope of the intended query. === Parser combinators === If a parser generator is not used, it is still possible to avoid implementation bugs by using parser combinator such as Nom to implement the parser code. This has the drawback of relying on a programmer correctly translating the specification into the language of the parser generator library, though this task is still less error-prone than hand-coding a parser. == Input format complexity == Complexity in computer programs is associated with security vulnerabilities. Within the domain of language-theoretic security, complexity is described with reference to the computational power of the abstract machine necessary to implement the program, or more particularly, to implement the parser for its input language. This complexity describes whether it is possible to show that there is no unintended or undesired functionality in the program which might be exploitable by an attacker. To be bounded in complexity, the program's input must be well-defined both in terms of form and of semantics. === Weird machines === A weird machine is a model of computation in a program that exists in parallel with, but is distinct from, the intended abstract model of computation in that program. Some classes of weird machine arise from the multi-layered nature of computer programs, or the context in which the programs run; others result from the unanticipated functionality a program has due to its complexity or to software bugs. The more complex the computation model of a program, the more likely it is to implement a weird machine. Depending on context, the weird machine may or may not be concretely useful for an attacker. Since the space of weird machines in the context of some program is the universe of all possible states that are not within the program's intended states, many exploited states including remote code execution and injection attacks belong to the domain of weird machines. A reduction in weird machines is therefore a likely correlate with reduced program vulnerability. === SafeDocs project === SafeDocs is a DARPA project undertaken in 2018 to take existing file formats, create safer subsets of them, and develop programming tools to work for the safer formats. The initial test case for this was PDF. The purpose of creating safer subsets in this case is to lower the minimum bound on parser complexity so that it becomes possible to create tools that will generate correct, normative parsers for them. == Relation to programming languages == The analytic framework of language-theoretic security assumes programs to be virtual machines that execute their input. A document that is read by an application is in this sense a form of machine code, in a generalization of the data as code idea, following the automata theory description of parsers. === Type-safe programming languages === Parsing input and serializing output are operations that consume one data type and emit another. A programming language can therefore check that data is correctly parsed and contains the expected structure by checking data types, and correct serializing (or unparsing) can be implemented as operations on the data types that are relevant to the program's output. This approach can be used to show that the recognizer and unparser patterns have been implemented. It is also possible to implement type checking across a distributed system to enforce parsing and unparsing of the expected structures and to verify that the assumptions made in designing the compositional properties of a distributed system have been followed. === Memory-safe programming languages === In the general case, spatial memory correctness is undecidable. If any proof of spatial memory correctness is to be made, it is therefore necessary to bound the complexity of the code. Interpreted languages such as Java and Python effectively accomplish this via runtime bounds checking, and frameworks for runtime bounds checking also exist for C. The effect of these strategies for spatial memory correctness are to create a halt state in place of a spatial memory correctness violation; therefore, it can be shown that the program will not violate spatial memory correctness, but in exchange, it cannot be shown in the general case that programs will not have runtime bounds checking exceptions. Some programming languages, such as Rust, accomplish this using borrow checking. The borrow checker acts to assure spatial memory correctness by compile-time reference counting. Code for which spatial memory correctness cannot be shown to not be violated therefore does not compile, inherently limiting the complexity of the spatial memory correctness of the program to what is decidable. Thi

    Read more →
  • Perceptual computing

    Perceptual computing

    Perceptual computing is an application of Zadeh's theory of computing with words on the field of assisting people to make subjective judgments. == Perceptual computer == The perceptual computer – Per-C – an instantiation of perceptual computing – has the architecture that is depicted in Fig. 1 [2]–[6]. It consists of three components: encoder, CWW engine and decoder. Perceptions – words – activate the Per-C and are the Per-C output (along with data); so, it is possible for a human to interact with the Per-C using just a vocabulary. A vocabulary is application (context) dependent, and must be large enough so that it lets the end-user interact with the Per-C in a user-friendly manner. The encoder transforms words into fuzzy sets (FSs) and leads to a codebook – words with their associated FS models. The outputs of the encoder activate a Computing With Words (CWW) engine, whose output is one or more other FSs, which are then mapped by the decoder into a recommendation (subjective judgment) with supporting data. The recommendation may be in the form of a word, group of similar words, rank or class. Although many details are needed in order to implement the Per-C's three components – encoder, decoder and CWW engine – and they are covered in [5], it is when the Per-C is applied to specific applications, that the focus on the methodology becomes clear. Stepping back from those details, the methodology of perceptual computing is: Focus on an application (A). Establish a vocabulary (or vocabularies) for A. Collect interval end-point data from a group of subjects (representative of the subjects who will use the Per-C) for all of the words in the vocabulary. Map the collected word data into word-FOUs by using the Interval Approach [1], [5, Ch. 3]. The result of doing this is the codebook (or codebooks) for A, and completes the design of the encoder of the Per-C. Choose an appropriate CWW engine for A. It will map IT2 FSs into one or more IT2 FSs. Examples of CWW engines are: IF-THEN rules [5, Ch. 6] and Linguistic Weighted Averages [6], [5, Ch. 5]. If an existing CWW engine is available for A, then use its available mathematics to compute its output(s). Otherwise, develop such mathematics for the new kind of CWW engine. The new CWW engine should be constrained so that its output(s) resemble the FOUs in the codebook(s) for A. Map the IT2 FS outputs from the CWW engine into a recommendation at the output of the decoder. If the recommendation is a word, rank or class, then use existing mathematics to accomplish this mapping [5, Ch. 4]. Otherwise, develop such mathematics for the new kind of decoder. == Applications of Per-C == To-date a Per-C has been implemented for the following four applications: (1) investment decision-making, (2) social judgment making, (3) distributed decision making, and (4) hierarchical and distributed decision-making. A specific example of the fourth application is the so-called Journal Publication Judgment Advisor [5, Ch. 10] in which for the first time only words are used at every level of the following hierarchical and distributed decision making process: n reviewers have to provide a subjective recommendation about a journal article that has been sent to them by the Associate Editor, who then has to aggregate the independent recommendations into a final recommendation that is sent to the Editor-in-Chief of the journal. Because it is very problematic to ask reviewers to provide numerical scores for paper-evaluation sub-categories (the two major categories are Technical Merit and Presentation), such as importance, content, depth, style, organization, clarity, references, etc., each reviewer will only be asked to provide a linguistic score for each of these categories. They will not be asked for an overall recommendation about the paper because in the past it is quite common for reviewers who provide the same numerical scores for such categories to give very different publishing recommendations. By leaving a specific recommendation to the associate editor such inconsistencies can hope to be eliminated. How words can be aggregated to reflect each reviewer's recommendation as well as the expertise of each reviewer about the paper's subject matter is done using a linguistic weighted average. Although the journal publication judgment advisor uses reviewers and an associate editor, the word “reviewer” could be replaced by judge, expert, low-level manager, commander, referee, etc., and the term “associate editor” could be replaced by control center, command center, higher-level manager, etc. So, this application has potential wide applicability to many other applications. Recently, a new Per-C based Failure mode and effects analysis (FMEA) methodology was developed, with its application to edible bird's nest farming, in Borneo, has been reported. In addition, application of Per-C based method to educational assessment, for cooperative learning of students has been reported. In summary, the Per-C (whose development has taken more than a decade) is the first complete implementation of Zadeh's CWW paradigm, as applied to assisting people to make subjective judgments.

    Read more →
  • Dry Drowning

    Dry Drowning

    Dry Drowning is a cyberpunk mystery visual novel developed by Studio V and published by VLG Publishing and WhisperGames for Microsoft Windows on August 2, 2019. It was released on the Nintendo Switch on February 22, 2021. == Gameplay == The player takes control of Mordred Foley and has to read through the story, while making decisions at certain points. Depending on the choices, the player can influence the relationship to other characters as well as the course of the game, discovering more than 150 story branches, and eventually reach one out of three different endings with variations. The game also includes passages where the player has to find clues or items on the screen by clicking on them. These can be used in interrogation scenes with certain characters in order to unmask them and discover their lies. Throughout the game, the player has access to an in-game operating system called AquaOS. With that, they can re-read their conversations, look at their found items, and read biographies of the characters encountered. == Plot == The game is set in the fictional and totalitarian city Nova Polemos in Europa in 2066. Mordred Foley and Hera Kairis are private investigators and before the events of the game, they sent two of the most dangerous serial killers ever, Jennifer Kingston and Robert Herrington, to the electric chair. However, after their execution, their agency underwent an investigation for falsifying the evidence presented during the case, which completely destroyed its reputation. Now they want to restart their careers and lives, while dealing with their past traumas. Soon, Mordred is caught up in several cases that all led him to believe that the dreaded serial killer named Pandora has returned. In order to solve these cases, both Mordred and Hera have to face their pasts and fears, all while a racist political party is about to make the lives of refugees in Nova Polemos even worse. == Development == The game was initially conceived by Giacomo Masi and Samuele Zolfanelli, then developed by Studio V and directed and written by Giacomo Masi. It was originally written in Italian and translated into English, Chinese, Japanese, Korean, and German. The soundtrack was composed, written, and performed by Giorgio Maioli. The ending theme and Hera's pieces, performed on piano, were created by Alessandro Masi. The background and character artworks were made by Giulia Carli, other graphic elements such as the UI were created by Samuele Zolfanelli. The developers cited L.A. Noire, Ace Attorney, Blade Runner and Heavy Rain as some of their inspirations for the game. === Releases === Dry Drowning was originally released on Microsoft Windows through Steam, GOG, Itch.io, and Utomik in August 2019. In July 2019, Giacomo Masi announced the game would be released for Xbox One in 2020, though it was not released that year. A Nintendo Switch port was released on February 22, 2021, and a version for PlayStation 4 is set to release in 2021. == Reception == According to review aggregator platform Metacritic, Dry Drowning received "mixed or average reviews" for PC based on 11 reviews and "generally favorable reviews" for Nintendo Switch based on 6 reviews. Fellow review aggregator OpenCritic assessed that the game received fair approval, being recommended by 55% of critics. 4players.de gave a positive rating of 80% and wrote: "Stylish noir thriller with an interesting story, but mechanical limitations – despite a variety of possible interactions." Screen Rant gave a mixed rating of 3 out of 5 stars and wrote, "Dry Drowning may be a fair bit messy, but there's charm here. Players who are willing to embrace the cheesier elements will find some joy in its well-crafted setting and a decent murder mystery plot. The game is constrictive and lacks the genuine shock and engagement of top tier visual novels like Doki Doki Literature Club!, but there are some moments of clever world building and a strong enough mystery propelling it." The Italian review site SpazioGames gave a positive rating of 8.5 out of 10 points and wrote: "Dry Drowning is a very good game with great narrative experience. Every relationship between the characters is layered to increase player involvement, and each choice has different consequences. A thriller game that deserves to be played." === Awards === The game won Best of EGS 2019 and Best of JOIN 2019 awards, an honorable mention at GAMEROME and was nominated as "Best Italian Debut Game" at the Italian Video Game Awards 2020. It was also declared Best Game at Join The Indie 2019.

    Read more →
  • Type-2 fuzzy sets and systems

    Type-2 fuzzy sets and systems

    Type-2 fuzzy sets and systems generalize standard type-1 fuzzy sets and systems so that more uncertainty can be handled. From the beginning of fuzzy sets, criticism was made about the fact that the membership function of a type-1 fuzzy set has no uncertainty associated with it, something that seems to contradict the word fuzzy, since that word has the connotation of much uncertainty. So, what does one do when there is uncertainty about the value of the membership function? The answer to this question was provided in 1975 by the inventor of fuzzy sets, Lotfi A. Zadeh, when he proposed more sophisticated kinds of fuzzy sets, the first of which he called a "type-2 fuzzy set". A type-2 fuzzy set lets us incorporate uncertainty about the membership function into fuzzy set theory, and is a way to address the above criticism of type-1 fuzzy sets head-on. And, if there is no uncertainty, then a type-2 fuzzy set reduces to a type-1 fuzzy set, which is analogous to probability reducing to determinism when unpredictability vanishes. Type1 fuzzy systems are working with a fixed membership function, while in type-2 fuzzy systems the membership function is fluctuating. A fuzzy set determines how input values are converted into fuzzy variables. == Overview == In order to symbolically distinguish between a type-1 fuzzy set and a type-2 fuzzy set, a tilde symbol is put over the symbol for the fuzzy set; so, A denotes a type-1 fuzzy set, whereas à denotes the comparable type-2 fuzzy set. When the latter is done, the resulting type-2 fuzzy set is called a "general type-2 fuzzy set" (to distinguish it from the special interval type-2 fuzzy set). Zadeh didn't stop with type-2 fuzzy sets, because in that 1976 paper he also generalized all of this to type-n fuzzy sets. The present article focuses only on type-2 fuzzy sets because they are the next step in the logical progression from type-1 to type-n fuzzy sets, where n = 1, 2, ... . Although some researchers are beginning to explore higher than type-2 fuzzy sets, as of early 2009, this work is in its infancy. The membership function of a general type-2 fuzzy set, Ã, is three-dimensional (Fig. 1), where the third dimension is the value of the membership function at each point on its two-dimensional domain that is called its "footprint of uncertainty"(FOU). For an interval type-2 fuzzy set that third-dimension value is the same (e.g., 1) everywhere, which means that no new information is contained in the third dimension of an interval type-2 fuzzy set. So, for such a set, the third dimension is ignored, and only the FOU is used to describe it. It is for this reason that an interval type-2 fuzzy set is sometimes called a first-order uncertainty fuzzy set model, whereas a general type-2 fuzzy set (with its useful third-dimension) is sometimes referred to as a second-order uncertainty fuzzy set model. The FOU represents the blurring of a type-1 membership function, and is completely described by its two bounding functions (Fig. 2), a lower membership function (LMF) and an upper membership function (UMF), both of which are type-1 fuzzy sets! Consequently, it is possible to use type-1 fuzzy set mathematics to characterize and work with interval type-2 fuzzy sets. This means that engineers and scientists who already know type-1 fuzzy sets will not have to invest a lot of time learning about general type-2 fuzzy set mathematics in order to understand and use interval type-2 fuzzy sets. Work on type-2 fuzzy sets languished during the 1980s and early-to-mid 1990s, although a small number of articles were published about them. People were still trying to figure out what to do with type-1 fuzzy sets, so even though Zadeh proposed type-2 fuzzy sets in 1976, the time was not right for researchers to drop what they were doing with type-1 fuzzy sets to focus on type-2 fuzzy sets. This changed in the latter part of the 1990s as a result of Jerry Mendel and his student's works on type-2 fuzzy sets and systems. Since then, more researchers around the world are writing articles about type-2 fuzzy sets and systems. == Interval type-2 fuzzy sets == Interval type-2 fuzzy sets have received the most attention because the mathematics that is needed for such sets—primarily Interval arithmetic—is much simpler than the mathematics that is needed for general type-2 fuzzy sets. The literature about interval type-2 fuzzy sets is large, whereas the literature about general type-2 fuzzy sets is much smaller. Both kinds of fuzzy sets are being actively researched by an ever-growing number of researchers around the world and have resulted in successful employment in a variety of domains such as robot control. Formally, the following have already been worked out for interval type-2 fuzzy sets: Fuzzy set operations: union, intersection and complement Centroid (a very widely used operation by practitioners of such sets, and also an important uncertainty measure for them) Other uncertainty measures [fuzziness, cardinality, variance and skewness and uncertainty bounds Similarity Subsethood Embedded fuzzy sets Fuzzy set ranking Fuzzy rule ranking and selection Type-reduction methods Firing intervals for an interval type-2 fuzzy logic system Fuzzy weighted average Linguistic weighted average Synthesizing an FOU from data that are collected from a group of subject == Interval type-2 fuzzy logic systems == Type-2 fuzzy sets are finding very wide applicability in rule-based fuzzy logic systems (FLSs) because they let uncertainties be modeled by them whereas such uncertainties cannot be modeled by type-1 fuzzy sets. A block diagram of a type-2 FLS is depicted in Fig. 3. This kind of FLS is used in fuzzy logic control, fuzzy logic signal processing, rule-based classification, etc., and is sometimes referred to as a function approximation application of fuzzy sets, because the FLS is designed to minimize an error function. The following discussions, about the four components in Fig. 3 rule-based FLS, are given for an interval type-2 FLS, because to-date they are the most popular kind of type-2 FLS; however, most of the discussions are also applicable for a general type-2 FLS. Rules, that are either provided by subject experts or are extracted from numerical data, are expressed as a collection of IF-THEN statements, e.g., IF temperature is moderate and pressure is high, then rotate the valve a bit to the right. Fuzzy sets are associated with the terms that appear in the antecedents (IF-part) or consequents (THEN-part) of rules, and with the inputs to and the outputs of the FLS. Membership functions are used to describe these fuzzy sets, and in a type-1 FLS they are all type-1 fuzzy sets, whereas in an interval type-2 FLS at least one membership function is an interval type-2 fuzzy set. An interval type-2 FLS lets any one or all of the following kinds of uncertainties be quantified: Words that are used in antecedents and consequents of rules—because words can mean different things to different people. Uncertain consequents—because when rules are obtained from a group of experts, consequents will often be different for the same rule, i.e. the experts will not necessarily be in agreement. Membership function parameters—because when those parameters are optimized using uncertain (noisy) training data, the parameters become uncertain. Noisy measurements—because very often it is such measurements that activate the FLS. In Fig. 3, measured (crisp) inputs are first transformed into fuzzy sets in the Fuzzifier block because it is fuzzy sets and not numbers that activate the rules which are described in terms of fuzzy sets and not numbers. Three kinds of fuzzifiers are possible in an interval type-2 FLS. When measurements are: Perfect, they are modeled as a crisp set; Noisy, but the noise is stationary, they are modeled as a type-1 fuzzy set; and, Noisy, but the noise is non-stationary, they are modeled as an interval type-2 fuzzy set (this latter kind of fuzzification cannot be done in a type-1 FLS). In Fig. 3, after measurements are fuzzified, the resulting input fuzzy sets are mapped into fuzzy output sets by the Inference block. This is accomplished by first quantifying each rule using fuzzy set theory, and by then using the mathematics of fuzzy sets to establish the output of each rule, with the help of an inference mechanism. If there are M rules then the fuzzy input sets to the Inference block will activate only a subset of those rules, where the subset contains at least one rule and usually way fewer than M rules. The inference is done one rule at a time. So, at the output of the Inference block, there will be one or more fired-rule fuzzy output sets. In most engineering applications of an FLS, a number (and not a fuzzy set) is needed as its final output, e.g., the consequent of the rule given above is "Rotate the valve a bit to the right." No automatic valve will know what this means because "a bit to the right" is a linguistic expression, and a valv

    Read more →
  • Anderson's rule (computer science)

    Anderson's rule (computer science)

    In the field of computer security, Anderson's rule refers to a principle formulated by Ross J. Anderson: systems that handle sensitive personal information involve a trilemma of security, functionality, and scale, of which you can choose any two. A system that has information on many data subjects and to which many people require access is hard to secure unless its functionality is severely restricted. If it has rich functionality, you may have to restrict the number of people with access, or accept that some information will leak.

    Read more →
  • Padre Pio (2022 film)

    Padre Pio (2022 film)

    Padre Pio is a 2022 biographical drama film co-written and directed by Abel Ferrara. It stars Shia LaBeouf as the titular role of Padre Pio, a Capuchin Franciscan priest who receives the stigmata, in the background of the World War I in Italy. The film is a co-production of Italy, Germany and the United Kingdom. During its production, LaBeouf converted to Catholicism as result of his spiritual experiences in character as Pio, who is venerated as a saint by the Catholic Church. The film had its world premiere in the Giornate degli Autori section of the 79th Venice International Film Festival on 2 September 2022. It was released theatrically in the United Kingdom on 26 January 2024 by Dazzler Media and in Italy on 18 July 2024 by RS Productions. == Plot == It is the year 1920. Italian WWI veterans have returned to their impoverished villages. Padre Pio arrives at San Giovanni Rotondo after living with his family in Pietrelcina for a number of years. While still sick, he continues to encounter Satan. Satan reveals himself as the instigator of the war and the sociopolitical problems of San Giovanni. While having little contact with the people of this town, Padre Pio learns what the poor are suffering from in the Sacrament of Confession and the Holy Mass, such as when a crippled man walks again because of Padre Pio's prayer. Besides the effects of war, such as medical inadequacy, health conditions and labourers dying from the effects of mustard gas, the people suffer from corrupt, wealthy landowners. Gerardo, a militaristic anti-socialist, threatens to kill any communal labourers tending his land. Many of them join the socialist party as a way to improve their lives. However, after they win the first free election in San Giovanni, Gerardo's forces massacre many of them. Padre Pio asks God that he may become a suffering servant for their salvation. He receives the wounds of Jesus Christ. The stigmata disrupts Satan's influence on San Giovanni Rotondo. == Cast == Shia LaBeouf as Padre Pio Marco Leonardi as Gerardo Salvatore Ruocco as Vincenzo Cristina Chiriac as Giovanna Brando Pacitto as Renato Luca Lionello as Silvestro Asia Argento as Tall Man == Production == According to Abel Ferrara, actor Willem Dafoe suggested that Shia LaBeouf should be cast for the film's leading role. After Ferrara held several Zoom calls with LaBeouf, the latter agreed to join the film, even though very little money was raised (the film was almost never made) and LaBeouf did the project for free. LaBeouf arrived at Old Mission Santa Inés in July 2021 to learn about Padre Pio with the Capuchin Franciscan friars. Thanks to Father Bobby Barbato and Brother Jude Quinto, Br. Alexander Rodriguez met LaBeouf while he attended Mass every day. He learned about the Catholic Church and the Capuchins while living in his truck or spending a few nights in the Capuchin's guest room. He was immersing himself in the Catholic faith. He enrolled in RCIA, revised the script with Rodriguez and trained to do the Latin Mass. Rodriguez traveled with LaBeouf as his spiritual adviser and catechist and was in the film as Padre Pio's companion. Filming occurred in Apulia, Italy, in December 2021. The first place was at the Capuchin friary in San Marco la Catola. Padre Pio exchanged letters with his provincial and spiritual director while living in Pietrelcina with his family. The time was around 1909–1916. Both directors were living in San Marco during these years. Padre Pio expressed in his letters his deep and mysterious relationship with God and health difficulties. This event is in the film. While filming, LaBeouf slept in Padre Pio's bedroom. After San Marco, filming continued outside the Sanctuary of Saint Michael the Archangel in Monte Sant'Angelo. Traditionally, St. Michael appeared here in the late 400s. LaBeouf stayed and filmed for a few weeks at the Abbey of Saint Mary of Pulsano. It is near the sanctuary. The rest of the filming took place outside the sanctuary. Ferrara said in 2024 that he used AI for the Italian dub of this film. == Release == Padre Pio had its world premiere in the Giornate degli Autori section of the 79th Venice International Film Festival on 2 September 2022. It received a four-minute ovation. It also competed at the Rio de Janeiro International Film Festival. At the Lisbon & Estoril Film Festival, it was chosen to compete for the "Best Film Award." During its North American premiere at the Mammoth Film Festival, it won the "Achievement for Filmmaking" award for cinematography. At the Taormina Film Festival, it premiered worldwide in Italian. In March 2023, Gravitas Ventures acquired North American rights to the film. It was released in select theaters and on video on demand in the United States on 2 June 2023. The film was released in the United Kingdom and Ireland on 26 January 2024 by Dazzler Media. RS Productions released it in Italy on 18 July 2024. == Reception == On the review aggregator website Rotten Tomatoes, the film holds an approval rating of 30% based on 43 reviews, with an average rating of 4.5/10. The website's critics consensus reads, "Tonally unbalanced and burdened with a distracting Shia LaBeouf performance, Padre Pio is one of Abel Ferrara's less divine works." Metacritic, which uses a weighted average, assigned the film a score of 45 out of 100, based on 6 critics, indicating "mixed or average" reviews.. Jordan Mintzer of The Hollywood Reporter gave the film a negative review, describing it as "clunky" and criticizing its political themes for possessing "the subtlety of a cartoon for preschoolers." Brian Tallerico of RogerEbert.com gave the film one and a half stars out of four, describing it as a "dull slog". Journalist Glenn Kenny of The New York Times found the film "occasionally rank" and panned LaBeouf's performance, though complimented Ferrara's "sometimes Brechtian consideration of the nodes of political history and spirituality." Film critic Armond White of National Review also criticized the film, describing it as "a work of deluded, semi-improvisational navel-gazing". Film critic Peter Bradshaw of The Guardian gave the film a positive review, with three out of five stars, writing that it is "a weird film...with an undeveloped, improvised feel, like a fragment or shard of something else. Yet there is a background hum there...an awareness of something dark and malign. It is a minor film but interesting." Writing for The New Yorker, Richard Brody considered that "in its hectic, scattershot way, Padre Pio feels very much of the desperate present day," describing it as "a historical drama without historical distance" and "a wild effort to reach the immediate experience of the past and its furies." Faith-based reviews for the film were generally negative. It received negative reviews from Catholic Answers, The Catholic World Report, The Catholic Weekly, The Catholic Thing, and Crisis Magazine. Conversely, it received a mixed review from The Catholic Review, as well as a positive review from America. Criticisms were generally aimed at the film's sexual content and perceived support of left-wing politics.

    Read more →
  • Sugeno integral

    Sugeno integral

    In mathematics, the Sugeno integral, introduced by Michio Sugeno as a fuzzy integral in work on fuzzy measures at the Tokyo Institute of Technology, is a type of integral with respect to a fuzzy measure. Let ( X , Ω ) {\displaystyle (X,\Omega )} be a measurable space and let h : X → [ 0 , 1 ] {\displaystyle h:X\to [0,1]} be an Ω {\displaystyle \Omega } -measurable function. The Sugeno integral over the crisp set A ⊆ X {\displaystyle A\subseteq X} of the function h {\displaystyle h} with respect to the fuzzy measure g {\displaystyle g} is defined by: ∫ A h ( x ) ∘ g = sup E ⊆ X [ min ( min x ∈ E h ( x ) , g ( A ∩ E ) ) ] = sup α ∈ [ 0 , 1 ] [ min ( α , g ( A ∩ F α ) ) ] {\displaystyle \int _{A}h(x)\circ g={\sup _{E\subseteq X}}\left[\min \left(\min _{x\in E}h(x),g(A\cap E)\right)\right]={\sup _{\alpha \in [0,1]}}\left[\min \left(\alpha ,g(A\cap F_{\alpha })\right)\right]} where F α = { x | h ( x ) ≥ α } {\displaystyle F_{\alpha }=\left\{x|h(x)\geq \alpha \right\}} . The Sugeno integral over the fuzzy set A ~ {\displaystyle {\tilde {A}}} of the function h {\displaystyle h} with respect to the fuzzy measure g {\displaystyle g} is defined by: ∫ A h ( x ) ∘ g = ∫ X [ h A ( x ) ∧ h ( x ) ] ∘ g {\displaystyle \int _{A}h(x)\circ g=\int _{X}\left[h_{A}(x)\wedge h(x)\right]\circ g} where h A ( x ) {\displaystyle h_{A}(x)} is the membership function of the fuzzy set A ~ {\displaystyle {\tilde {A}}} . == Usage and Relationships == Sugeno integral is related to h-index.

    Read more →
  • Grokipedia

    Grokipedia

    Grokipedia is an AI-generated online encyclopedia operated by the American company xAI. The site was launched on October 27, 2025. Some entries are generated by Grok, a large language model owned by the same company, while others were forked from Wikipedia, with some altered and some used nearly verbatim. Articles cannot be directly edited, though logged-in visitors to the encyclopedia can suggest new articles or corrections via a pop-up form, which are reviewed by Grok. The xAI founder Elon Musk suggested Grokipedia could be an alternative to Wikipedia that would "purge out the propaganda" he believes is promoted by the latter, describing Wikipedia as "woke" and an "extension of legacy media propaganda". External analysis of Grokipedia's content has focused on its accuracy and biases due to hallucinations and potential algorithmic bias, which reviewers have described as promoting right-wing perspectives and Musk's views. The majority of coverage has described the website as validating, promoting, and legitimizing a variety of debunked conspiracy theories and ideas against scientific consensus on topics such as HIV/AIDS denialism, vaccines and autism, climate change, and race and intelligence. The site has been accused of whitewashing far-right extremism, such as by falsely claiming a white genocide is actively occurring. Several right-wing figures have welcomed the site. Studies have highlighted its use of sources deemed as having very low credibility such as X conversations and neo-Nazi websites, and for writing about far-right figures and topics in a promotional manner. == Background == Wikipedia is an online encyclopedia written and maintained by a community of volunteers. Its possible bias has been studied and debated. In 2018, Haaretz noted "Wikipedia has succeeded in being accused of being both too liberal and too conservative, and has critics from across the spectrum". xAI is an American AI company founded by Elon Musk in 2023. Its flagship product is the family of large language models called Grok. == History == In 2021, Musk expressed affection for Wikipedia on its 20th anniversary. In 2022, however, Musk argued that Wikipedia was "losing its objectivity", and in 2023, said he would donate US$1 billion to the project if it was pejoratively renamed "Dickipedia". In December 2024, Musk called for a boycott of donations to Wikipedia over its perceived left-wing bias, calling it "Wokepedia". In January 2025, Musk made a series of statements on Twitter denouncing Wikipedia for its description of the incident where he made a controversial gesture, which many viewed as resembling a Nazi salute, at president Donald Trump's second inauguration. Musk has since positioned Grokipedia as an alternative to Wikipedia that would "purge out the propaganda" in the latter, with Musk describing Wikipedia as "woke" and an "extension of legacy media propaganda". === Idea and announcement === In September 2025, Musk spoke at the All-In podcast conference with David O. Sacks, the White House advisor on AI and cryptocurrency, about how Grok consumed data from Wikipedia and other sources to gain more complete knowledge of the world. Sacks suggested publishing its knowledge base as an artifact called "Grokipedia", saying "Wikipedia is so biased, it's a constant war". Following the conversation, Musk announced that xAI was building a new AI-generated online encyclopedia called Grokipedia. According to Musk's announcement, it would be an AI-powered knowledge base designed to rival Wikipedia by addressing its perceived biases, errors, and ideological slants. The project positioned itself within a history of ideologically driven alternatives to Wikipedia, such as the conservative Conservapedia (launched in 2006) and the Russian-government-friendly Ruwiki (launched in 2023). However, Grokipedia is distinct in its core reliance on artificial intelligence rather than human community editing. === Launch and traffic === On October 6, 2025, Musk announced that the early version of Grokipedia was scheduled for release in two weeks, but the project was postponed briefly to address content quality issues. It launched on October 27, 2025, labeled "v 0.1", with over 800,000 articles, compared to over seven million English Wikipedia articles as of September 1, 2025. According to an initial analysis of usage figures by Similarweb, which evaluates data from registered users and partners, Grokipedia recorded a peak of over 460,000 website visits in the US on October 28, 2025. After that, traffic dropped significantly and settled at around 35,000 visits per day between November 8 and 11, 2025. As of early 2026, it had over 5.6 million articles. In January 2026, The Guardian reported that GPT-5.2 frequently cited Grokipedia as a source in responses, raising concerns of misinformation on ChatGPT. The same month, The Verge reported that Google's AI Overviews, AI Mode, and Gemini language model, as well as Microsoft Copilot and Perplexity AI, used Grokipedia to answer niche, obscure, or highly specific factual questions or "non-sensitive queries." According to a case study published by SEO Engico, the site received only 19 clicks from Google Search in November 2025 but reached approximately 3.2 million monthly clicks by January 2026, with over 900,000 pages indexed and millions of ranking keywords. Analysts attributed the surge in part to the site's technical structure and large-scale AI-generated content production. In early February 2026, Grokipedia's visibility in Google Search declined sharply. SEO analysts, including Glenn Gabe and Malte Landwehr, reported a significant drop in rankings across Google organic results as well as in Google AI Overviews and AI Mode. The same case study cited independent reviews that identified citation quality concerns, including references to low-credibility sources and instances of self-citation. By mid-February 2026, Grokipedia had reportedly lost much of its previous search visibility, and Wikipedia ranked above it for searches related to its own name. === Updates === ==== Future ==== In November 2025, Musk announced that he eventually plans to change the name of the site to Encyclopedia Galactica when Grokipedia is "good enough", saying that it had a "long way to go". This name is taken from the publication of that title in the works of Isaac Asimov and Douglas Adams. Musk said that he hoped to send copies of the encyclopedia to "the Moon and Mars and out to deep space". == Content == The Grok large language model generates and fact-checks articles on Grokipedia. Users cannot directly edit Grokipedia articles, but logged-in users can suggest edits and report errors, with such submissions being reviewed and implemented by the Grok AI. Some articles are nearly identical to their Wikipedia entries, but the format of Grokipedia citations is different, and some Grokipedia articles were republished almost verbatim, accompanied by a disclaimer noting that the content was "adapted from Wikipedia" under a Creative Commons license. Others were completely rewritten from scratch using Musk's AI chatbot, Grok. Forbes identified the articles AMD, Lamborghini, and PlayStation 5 as examples of copied Wikipedia articles. Articles attributed to Wikipedia carry a Creative Commons Attribution-ShareAlike license, while the license of other articles is licensed under the "X Community License", a license that accepts reuse and remixing for "non-commercial and research purposes" and commercial use that abides to "all of the guardrails provided in xAI's Acceptable Use Policy". On October 31, 2025, Musk clarified that the duplication of Wikipedia articles was intentional, saying that the Grokipedia team instructed Grok to compile Wikipedia's top 1 million articles and make content changes to them. The site's design has been described as minimalist with a simple homepage including little more than a large search bar. In a comparative textual analysis of the most heavily edited matched article pairs from Grokipedia and Wikipedia, Grokipedia entries are substantially longer and less densely referenced, indicating that AI-produced encyclopedias prioritize exposition rather than source-based validation. Starting in version 0.2, Grok reviews and implements approved suggested edits, and a small panel rotates through a display of the names of several recently edited articles. In February 2026, the Columbia Journalism Review reported on an analysis by the Tow Center for Digital Journalism finding that Grok, the AI behind Grokipedia, had increasingly begun suggesting and approving edits to the site itself without human involvement. According to the report, AI-generated edit suggestions overtook human submissions in December 2025 and accounted for more than three-quarters of proposed changes. The analysis raised concerns about transparency, editorial oversight, and fact-checking standards, particularly after instances in which Grok proposed or modified politically s

    Read more →
  • Transportation Economic Development Impact System

    Transportation Economic Development Impact System

    Transportation Economic Development Impact System (TREDIS) is an economic analysis system sold by consulting firm Economic Development Research Group that is used in planning major transportation investments in the US and Canada. The role of economic impact analysis and TREDIS in the transportation planning process is explained in guidebooks of the US Department of Transportation and the American Association of State Highway and Transportation Officials. TREDIS has been most commonly used for assessing the expected economic impacts of statewide highway programs, regional multi-modal plans and public transport investment. Its history and theoretical foundation are explained in peer reviewed journal articles. == How It Works == TREDIS has a series of modules that calculate different forms of impacts and benefits. One module is an accounting framework that calculates user benefits, including impacts on cargo transportation and commuting costs, based on transportation forecasting results. A second module calculates wider economic development benefits, including impacts on business productivity, economic development and multiplier effects from the input-output analysis. It applies an economic model to estimate impacts on jobs, income, gross regional product and business output, by sector of the economy. A third module applies cost-benefit analysis from alternative perspectives.

    Read more →
  • Pop music automation

    Pop music automation

    Pop music automation is a field of study among musicians and computer scientists with a goal of producing successful pop music algorithmically. It is often based on the premise that pop music is especially formulaic, unchanging, and easy to compose. The idea of automating pop music composition is related to many ideas in algorithmic music, artificial intelligence (AI) and computational creativity. == History of automation in music == Algorithms (or, at the very least, formal sets of rules) have been used to compose music for centuries; the procedures used to plot voice-leading in counterpoint, for example, can often be reduced to algorithmic determinant. Now the term is usually reserved, however, for the use of formal procedures to make music without human intervention. Classical music automation software exists that generates music in the style of Mozart and Bach and jazz. Most notably, David Cope has written a software system called "Experiments in Musical Intelligence" (or "EMI") that is capable of analyzing and generalizing from existing music by a human composer to generate novel musical compositions in the same style. EMI's output is convincing enough to persuade human listeners that its music is human-generated to a high level of competence. Creativity research in jazz has focused on the process of improvisation and the cognitive demands that this places on a musical agent: reasoning about time, remembering and conceptualizing what has already been played, and planning ahead for what might be played next. Inevitably associated with pop music automation is pop music analysis. Projects in pop music automation may include, but are not limited to, ideas in melody creation and song development, vocal generation or improvement, automatic accompaniment and lyric composition. == Automatic accompaniment == Some systems exist that automatically choose chords to accompany a vocal melody in real-time. A user with no musical experience can create a song with instrumental accompaniment just by singing into a microphone. An example is a Microsoft Research project called Songsmith, which trains a Hidden Markov model using a music database and uses that model to select chords for new melodies. == Melody generation == Automatic melody generation is often done with a Markov chain, the states of the system become note or pitch values, and a probability vector for each note is constructed, completing a transition probability matrix (see below). An algorithm is constructed to produce an output note values based on the transition matrix weightings, which could be MIDI note values, frequency (Hz), or any other desirable metric. A second-order Markov chain can be introduced by considering the current state and also the previous state, as indicated in the second table. Higher, nth-order chains tend to "group" particular notes together, while 'breaking off' into other patterns and sequences occasionally. These higher-order chains tend to generate results with a sense of phrasal structure, rather than the 'aimless wandering' produced by a first-order system. == Lyric composition == Automated lyric creating software may take forms such as: Selecting words according to their rhythm The Tra-la-Lyrics system produces song lyrics, in Portuguese, for a given melody. This not only involves matching each word syllable with a note in the melody, but also matching the word's stress with the strong beats of the melody. Parsing existing pop music (e.g. for content or word choice) This involves natural language processing. Pablo Gervás has developed a noteworthy system called ASPERA that employs a case-based reasoning (CBR) approach to generating poetic formulations of a given input text via a composition of poetic fragments that are retrieved from a case-base of existing poems. Each poem fragment in the ASPERA case-base is annotated with a prose string that expresses the meaning of the fragment, and this prose string is used as the retrieval key for each fragment. Metrical rules are then used to combine these fragments into a well-formed poetic structure. Automatic analogy or story creation Programs like TALE-SPIN and The MINSTREL system represent a complex elaboration of this basis approach, distinguishing a range of character-level goals in the story from a range of author-level goals for the story. Systems like Bringsjord's BRUTUS can create stories with complex interpersonal themes like betrayal. On-line metaphor generation systems like 'Sardonicus' or 'Aristotle' can suggest lexical metaphors for a given descriptive goal (e.g., to describe a supermodel as skinny, the source terms “pencil”, “whip”, “whippet”, “rope”, “stick-insect” and “snake” are suggested). Free association of grouped words Using a language database (such as wordnet) one can create musings on a subject that may be weak grammatically but are still sensical. See such projects as the Flowerewolf automatic poetry generator or the Dada engine. == Software == === More or less free === BreathCube by xoxos. Simple lyrical vocal content is generated with simple music. CubeBreath by xoxos. Audio input is vocoded in tune with the music. Midi Internet Algorithmic Composition infno, infinite generator of electronic dance music and synth-pop. Algorithmic Trap, trap beat generator. === Commercial === Band in a box generates any element, potentially creates whole new songs from scratch. Musical Palette - Melody Composing Tool SongSmith: Automatic accompaniment for vocal melodies Ludwig 3.0 automatic accompaniment, writes arrangements for given instruments, plays its own songs for an infinitely long time. Automated Composing System creates music in many different styles

    Read more →
  • The Fractal Prince

    The Fractal Prince

    The Fractal Prince is the second science fiction novel by Hannu Rajaniemi and the second novel to feature the post-human gentleman thief Jean le Flambeur. It was published in Britain by Gollancz in September 2012, and by Tor in the same year in the US. The novel is the second in the trilogy, following The Quantum Thief (2010) and preceding The Causal Angel (2014). == Plot summary == After the events of The Quantum Thief, Jean le Flambeur and Mieli are on their way to Earth. Jean is trying to open the Schrödinger's Box he retrieved from the memory palace on the Oubliette. After making little progress, he is prodded by the ship Perhonen to talk to Mieli, who turns out to be possessed by the pellegrini again. This time, Jean identifies Mieli's employer as a Sobornost Founder, Joséphine Pellegrini, and gets her to reveal how he got captured, thereby picking up the clues to make plans for his next heist. No sooner is that done than an attack comes from the Hunter. The ship and crew barely survived that, and Jean realizes that he has to find a better way to open the Box - fast. Mieli has been very quiet after they left Mars. She has given up almost everything to the pellegrini, even her identity, as she has promised to let the pellegrini make gogols of her in exchange for rescuing the thief. Yet, having to work with the thief is testing her, especially when the thief eventually does something even more unforgivable than stealing Sydän's jewel from her. In the city of Sirr, on an Earth ravaged by wildcode, Tawaddud and Dunyazad are sisters and members of the powerful Gomelez family. Tawaddud is the black sheep of the family, having run away from her husband and consorted with a notorious jinn, a disembodied intelligence from the wildcode desert. Now Cassar Gomelez, her father, hopes to get her to curry favor with a gogol merchant, Abu Nuwas, so that he has enough votes in the Council for the upcoming decision to renegotiate the Cry of Wrath Accords with the Sobornost. Soon, Tawaddud is embroiled in an investigation with a Sobornost envoy into the murder that triggered the need for her father to forge a new alliance in the first place, and forced to confront old secrets that will change Sirr forever. Somewhere else, in a bookshop and on a beach, a young boy is at play. His mother has told him not to talk to strangers, but there has never been anyone here before. Until now. Should he talk to them? == Influences == In the acknowledgments, Rajaniemi cites the influence of "Andy Clark, Douglas Hofstadter, Maurice Leblanc, Jan Potocki and [...] The Arabian Nights." === Self-loops === In the novel, the idea that the mind is a self-loop may have been influenced by the theories of the Professor of Philosophy, Andy Clark, and the book I Am a Strange Loop by Douglas Hofstadter. === Frame stories === The novel uses frame stories rather extensively, a feature also of The Arabian Nights and Jan Potocki's The Manuscript Found in Saragossa. Several characters in Sirr are the namesakes of characters in these two earlier works as well. The events in The Quantum Thief are also retold at least once by Jean le Flambeur in the course of the events in this novel. == Reception == The novel has received generally positive reviews. However, criticisms of the novel still revolve around Rajaniemi's uncompromising "show, don't tell" style. For example, Amy Goldschlager, writing for the Los Angeles Review of Books, suggested that "[a] bit more explication of the physics involved (“surfing the deficit angle”?) would really be helpful, more helpful than the description of the Schrödinger’s Cat problem given earlier in the book".

    Read more →
  • Adaptive neuro fuzzy inference system

    Adaptive neuro fuzzy inference system

    An adaptive neuro-fuzzy inference system or adaptive network-based fuzzy inference system (ANFIS) is a kind of artificial neural network that is based on Takagi–Sugeno fuzzy inference system, a class of fuzzy models introduced by Tomohiro Takagi and Michio Sugeno for system identification and control. The technique was developed in the early 1990s. Since it integrates both neural networks and fuzzy logic principles, it has potential to capture the benefits of both in a single framework. Its inference system corresponds to a set of fuzzy IF–THEN rules that have learning capability to approximate nonlinear functions. Hence, ANFIS is considered to be a universal estimator. For using the ANFIS in a more efficient and optimal way, one can use the best parameters obtained by genetic algorithm. It has uses in intelligent situational aware energy management system. == ANFIS architecture == It is possible to identify two parts in the network structure, namely premise and consequence parts. In more details, the architecture is composed by five layers. The first layer takes the input values and determines the membership functions belonging to them. It is commonly called fuzzification layer. The membership degrees of each function are computed by using the premise parameter set, namely {a,b,c}. The second layer is responsible of generating the firing strengths for the rules. Due to its task, the second layer is denoted as "rule layer". The role of the third layer is to normalize the computed firing strengths, by dividing each value for the total firing strength. The fourth layer takes as input the normalized values and the consequence parameter set {p,q,r}. The values returned by this layer are the defuzzificated ones and those values are passed to the last layer to return the final output. === Fuzzification layer === The first layer of an ANFIS network describes the difference to a vanilla neural network. Neural networks in general are operating with a data pre-processing step, in which the features are converted into normalized values between 0 and 1. An ANFIS neural network doesn't need a sigmoid function, but it's doing the preprocessing step by converting numeric values into fuzzy values. Here is an example: Suppose, the network gets as input the distance between two points in the 2d space. The distance is measured in pixels and it can have values from 0 up to 500 pixels. Converting the numerical values into fuzzy numbers is done with the membership function which consists of semantic descriptions like near, middle and far. Each possible linguistic value is given by an individual neuron. The neuron “near” fires with a value from 0 until 1, if the distance is located within the category "near". While the neuron “middle” fires, if the distance in that category. The input value “distance in pixels” is split into three different neurons for near, middle and far.

    Read more →
  • Retrieval-augmented generation

    Retrieval-augmented generation

    Retrieval-augmented generation (RAG) is a technique that enables large language models (LLMs) to retrieve and incorporate new information from external data sources. With RAG, LLMs first refer to a specified set of documents, then respond to user queries. These documents supplement information from the LLM's pre-existing training data. This allows LLMs to use domain-specific and/or updated information that is not available in the training data. For example, this enables LLM-based chatbots to access internal company data or generate responses based on authoritative sources. RAG improves LLMs by incorporating information retrieval before generating responses. Unlike LLMs that rely on static training data, RAG pulls relevant text from databases, uploaded documents, or web sources. According to Ars Technica, "RAG is a way of improving LLM performance, in essence by blending the LLM process with a web search or other document look-up process to help LLMs stick to the facts." This method helps reduce AI hallucinations, which have caused chatbots to describe policies that don't exist, or recommend nonexistent legal cases to lawyers that are looking for citations to support their arguments. RAG also reduces the need to retrain LLMs with new data, saving on computational and financial costs. Beyond efficiency gains, RAG also allows LLMs to include sources in their responses, so users can verify the cited sources. This provides greater transparency, as users can cross-check retrieved content to ensure accuracy and relevance. The term retrieval-augmented generation (RAG) was introduced in a 2020 paper that described combining a parametric language model with a non-parametric external memory accessed through retrieval at inference time. == RAG and LLM limitations == LLMs can provide incorrect information. For example, when Google first demonstrated its LLM tool "Google Bard" (later re-branded to Gemini), the LLM provided incorrect information about the James Webb Space Telescope. This error contributed to a $100 billion decline in Google's stock value. RAG is used to prevent these errors, but it does not solve all the problems. For example, LLMs can generate misinformation even when pulling from factually correct sources if they misinterpret the context. MIT Technology Review gives the example of an AI-generated response stating, "The United States has had one Muslim president, Barack Hussein Obama." The model retrieved this from an academic book rhetorically titled Barack Hussein Obama: America's First Muslim President? The LLM did not "know" or "understand" the context of the title, generating a false statement. LLMs with RAG are programmed to prioritize new information. This technique has been called "prompt stuffing." Without prompt stuffing, the LLM's input is generated by a user; with prompt stuffing, additional relevant context is added to this input to guide the model's response. This approach provides the LLM with key information early in the prompt, encouraging it to prioritize the supplied data over pre-existing training knowledge. == Process == Retrieval-augmented generation (RAG) enhances large language models (LLMs) by incorporating an information-retrieval mechanism that allows models to access and utilize additional data beyond their original training set. Ars Technica notes that "when new information becomes available, rather than having to retrain the model, all that's needed is to augment the model's external knowledge base with the updated information" ("augmentation"). IBM states that "in the generative phase, the LLM draws from the augmented prompt and its internal representation of its training data to synthesize" an answer. === RAG key stages === Typically, the data to be referenced is converted into LLM embeddings, numerical representations in the form of a large vector space. RAG can be used on unstructured (usually text), semi-structured, or structured data (for example knowledge graphs). These embeddings are then stored in a vector database to allow for document retrieval. Given a user query, a document retriever is first called to select the most relevant documents that will be used to augment the query. This comparison can be done using a variety of methods, which depend in part on the type of indexing used. The model feeds this relevant retrieved information into the LLM via prompt engineering of the user's original query. Newer implementations (as of 2023) can also incorporate specific augmentation modules with abilities such as expanding queries into multiple domains and using memory and self-improvement to learn from previous retrievals. Finally, the LLM can generate output based on both the query and the retrieved documents. Some models incorporate extra steps to improve output, such as the re-ranking of retrieved information, context selection, and fine-tuning. == Applications == Retrieval-augmented generation is used in applications where generated responses need to be grounded in external or frequently updated information. Commonly cited use cases include search engines, question-answering systems, customer support chatbots, enterprise knowledge assistants, content generation, recommendation systems, retail and e-commerce, and industrial or manufacturing workflows. In healthcare, RAG has been studied as a way to ground large language model outputs in external medical knowledge sources, although reviews have noted continuing challenges around evaluation, ethics, and clinical reliability. == Improvements == Improvements to the basic process above can be applied at different stages in the RAG flow. === Encoder === These methods focus on the encoding of text as either dense or sparse vectors. Sparse vectors, which encode the identity of a word, are typically dictionary-length and contain mostly zeros. Dense vectors, which encode meaning, are more compact and contain fewer zeros. Various enhancements can improve the way similarities are calculated in the vector stores (databases). Performance improves by optimizing how vector similarities are calculated. Dot products enhance similarity scoring, while approximate nearest neighbor (ANN) searches improve retrieval efficiency over K-nearest neighbors (KNN) searches. Accuracy may be improved with Late Interactions, which allow the system to compare words more precisely after retrieval. This helps refine document ranking and improve search relevance. Hybrid vector approaches may be used to combine dense vector representations with sparse one-hot vectors, taking advantage of the computational efficiency of sparse dot products over dense vector operations. Other retrieval techniques focus on improving accuracy by refining how documents are selected. Some retrieval methods combine sparse representations, such as SPLADE, with query expansion strategies to improve search accuracy and recall. === Retriever-centric methods === These methods aim to enhance the quality of document retrieval in vector databases: Pre-training the retriever using the Inverse Cloze Task (ICT), a technique that helps the model learn retrieval patterns by predicting masked text within documents. Supervised retriever optimization aligns retrieval probabilities with the generator model's likelihood distribution. This involves retrieving the top-k vectors for a given prompt, scoring the generated response's perplexity, and minimizing KL divergence between the retriever's selections and the model's likelihoods to refine retrieval. Reranking techniques can refine retriever performance by prioritizing the most relevant retrieved documents during training. === Language model === By redesigning the language model with the retriever in mind, a 25-time smaller network can get comparable perplexity as its much larger counterparts. Because it is trained from scratch, this method (Retro) incurs the high cost of training runs that the original RAG scheme avoided. The hypothesis is that by giving domain knowledge during training, Retro needs less focus on the domain and can devote its smaller weight resources only to language semantics. The redesigned language model is shown here. It has been reported that Retro is not reproducible, so modifications were made to make it so. The more reproducible version is called Retro++ and includes in-context RAG. === Chunking === Chunking involves various strategies for breaking up the data into vectors so the retriever can find details in it. Three types of chunking strategies are: Fixed length with overlap. This is fast and easy. Overlapping consecutive chunks helps to maintain semantic context across chunks. Syntax-based chunks can break the document up into sentences. Libraries such as spaCy or NLTK can also help. File format-based chunking. Certain file types have natural chunks built in, and it's best to respect them. For example, code files are best chunked and vectorized as whole functions or classes. HTML files should leave

    or base64 encoded elements

    Read more →
  • Argument Interchange Format

    Argument Interchange Format

    The Argument Interchange Format (AIF) is an international effort to develop a representational mechanism for exchanging argument resources between research groups, tools, and domains using a semantically rich language. AIF traces its history back to a 2005 colloquium in Budapest. The result of the work in Budapest was first published as a draft description in 2006. Building on this foundation, further work then used the AIF to build foundations for the Argument Web. AIF-RDF is the extended ontology represented in the Resource Description Framework Schema (RDFS) semantic language. The Argument Interchange Format introduces a small set of ontological concepts that aim to capture a common understanding of argument -- one that works in multiple domains (both domains of argumentation and also domains of academic research), so that data can be shared and re-used across different projects in different areas. These ontological concepts are: Information (I-nodes) Applications of Rules of Inference (RA-nodes) Applications of Rules of Conflict (CA-nodes) Applications of Rules of Preference (PA-nodes) extended by: Schematic Forms (F-nodes) that are instantiated by RA, CA and PA nodes The AIF has reifications in a variety of development environments and implementation languages including MySQL database schema RDF Prolog JSON as well as translations to visual languages such as DOT and SVG. AIF data can be accessed online at AIFdb.

    Read more →
  • HYPO CBR

    HYPO CBR

    HYPO is a computer program, an expert system, that models reasoning with cases and hypotheticals in the legal domain. It is the first of its kind and the most sophisticated of the case-based legal reasoners, which was designed by Kevin Ashley for his Ph.D dissertation in 1987 at the University of Massachusetts Amherst under the supervision of Edwina Rissland. HYPO's design represents a hybrid generalization/comparative evaluation method appropriate for a domain with a weak analytical theory and applies to tasks that rarely involve just one right answer. The domain covers US trade secret law, and is substantially a common law domain. Since Anglo-American common law operates under the doctrine of precedent, the definitive way of interpreting problems is of necessity and case-based. Thus, HYPO did not involve the analysis of a statute, as required by the Prolog program. Rissland and Ashley (1987) envisioned HYPO as employing the key tasks performed by lawyers when analyzing case law for precedence to generate arguments for the prosecution or the defence. HYPO was a successful example of a general category of legal expert systems (LESs), it applies artificial intelligence (A.I.) techniques to the domain of legal reasoning in patent law, implementing a case-based reasoning (CBR) system, in contrast to rule based systems like MYCIN, or mixed-paradigm systems integrating CBR with rule-based or model-based reasoning like IKBALS II. A legal case-based reasoning essentially reasons from prior tried cases, comparing the contextual information in the current input case with that of cases previously tried and entered into the system. As noted by Ashley and Rissland (1988) CBR is used to "... capture expertise in domains where rules are ill-defined, incomplete or inconsistent". The HYPO project set out to model the creation of hypotheticals in law, where no case matches well enough. HYPO uses hypotheticals for a variety of tasks necessary for good interpretation: "to redefine old situations in terms of new dimensions, to create new standard cases when an appropriate one doesn’t exist, to explore and test the limits of a concept, to refocus a case by excluding some issues and to organize or cluster cases". Hypotheticals can include facts that support two conflicting lines of reasoning. So, it makes and responds to arguments from competing viewpoints about who should win the dispute. HYPO use heuristics such as making a case weaker or stronger, making a case extreme, enabling a near-miss, disabling a near-hit to generate hypotheticals in the context of an argument by using the dimensions mechanism. Dimensions have a range of values, along which the supportive strength that may shift from one side to the other. What differentiated this expert system from others was its facility not only to return a primary to best-case response but to return near-best-fit responses also. == Components == Legal knowledge in HYPO is contained in: the case-knowledge-base (CKB) and the library of dimensions. The CKB contains HYPO's base of known cases that are highly structured objects and sub-objects both real and hypothetical in the area of trade secret law. Each case is represented as a hierarchical set of frames whose slots are important facets of the case (e.g. Plaintiff, defendant, secret knowledge, employer/employee data).Ashley’s HYPO system used a database of thirty cases in the area indexed by thirteen dimensions. A key mechanism in HYPO is a dimension i.e. a mechanism to allow retrieval from the CKB, in order to represent legal cases. Ashley's dimensions are composed of (i) prerequisites, which are a set of factual predicates that must be satisfied for the dimension to apply (ii) focal slots, which accommodate one or two of the dimension's prerequisites designated as being indicative of the case's strength along that dimension and (iii) range information, which tells how a change in focal slot value effects the strength of a party's case along a given dimension. Dimensions focus attention on important aspects of cases. In HYPO's domain of misappropriation of trade secrets the dimension called “secrets voluntary disclosed” captures the idea that the more disclosures the plaintiff has made of his/her putative secret, the less convincing is his/her argument that the defendant is responsible for letting the secret. HYPO, like any other CBR system has also the following components: Similarity/relevancy metrics: that is, standards by which to evaluate the closeness of cases, judge their relevancy to the instant case, and select “most on point” cases. Half-Order Theory of the Application Domain: that is, hierarchies and taxonomies of knowledge, especially regarding the application domain. Precedent-based argumentation abilities: that is, capabilities to generate and evaluate precedent-based arguments. Knowledge to generate hypotheticals: that is, the ability to generate hypothetical cases to deal with various circumstances, like testing the validity of an interpretation or argument by providing gedanken experiments such as test cases or to fill in a weak CKB. == Functions == HYPO's method of creating an argument and justifying a solution or position has several steps. HYPO begins its processing with the current fact situation (cfs) which is direct input by the user into HYPO's representation framework. Once the user inputs the case, HYPO begins its legal analysis. The cfc is analyzed for relevant factors. Based on these factors HYPO selects the relevant cases and produces a case-analysis-record that records which dimensions apply to the cfc and which nearly apply (i.e. are "near misses"). The combined list of applicable and near miss dimensions is called the D-list. At this point the fact gathered module may request additional information from the user in order to draw a legal conclusion. Once all the facts are in the case-positioner module it uses the case-analysis record to create the claim lattice. This is a technique that organizes the relevant retrieved cases from the point of view of the cfc and makes it easy for HYPO to ascertain the most-on point cases (mopc) and to least on-point-cases. HYPO's arguments are 3ply, leading to the construction of the skeleton of an argument: it makes a point for one side, drawing the analogy between the problem and the precedent, responds with an argument for the opponent side, endeavoring to differentiate the cited case and citing other cases as counterarguments. Then it makes a final rebuttal, attempting to differentiate the counterarguments. The claim lattice also enables the HYPO-generator module to produce legally hypotheticals. With its use of dimension-based heuristics, the HYPO-generator does a heuristic search of the space of all possible cases. Lastly, the Explanation module expands upon the argument skeleton and provides explanation and justification for the different lines of analysis and cases found by HYPO. == An intelligent legal tutoring system == Legal expert systems are specifically designed to teach an area of law and are useful for pedagogical purposes. Ashley's work was mainly concerned to build tools to help students understand legal reasoning. Explanation and argument are the bases of the case method used in many professional schools in the U.S., first introduced by the Dean of the Harvard Law School, Christopher Columbus Langdell in 1870. The case method focuses on close readings of cases and principles; it involves students in pointed Socratic dialogue and makes strong use of hypotheticals (hypos). Thus, CATO (Aleven 1997) was a research project to device and test an intelligent, case-based tutorial program for teaching law students how to argue with cases implementing the HYPO program. Within the tutor system, Ashley and Aleven (1991) proposed to leverage an understanding of legal reasoning against the standard case-based tutoring methodology. What makes this tutoring system stand out is the additional levels of abstraction involved in its results. The system presents exercises, including the facts of a problem and a set of on-line cases and instructions to make, or respond to, a legal argument about the problem. The student/user will have a set of tools to analyze the problem and fashion an answer comparing it to other cases. Instead of simply generating precedent cases, the system works to interpret student responses, comparing them against a list of possibilities and responding to student entries, for example, by citing counterexamples, and providing feedback on a student's problem solving activities with explanations of correctness or giving further hints as to what may be wrong with evaluating a student's ability to perform legal reasoning and argument, examples and follow-up assignments by employing HYPO's model of case-based structure. == HYPO’s progeny == The quality of HYPO's results speak for themselves, in that a number of sequent legal reasoning systems are either directly based upon H

    Read more →