AI Generator Reddit

AI Generator Reddit — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Intelligent automation

    Intelligent automation

    Intelligent automation (IA), or intelligent process automation, is a software term that refers to a combination of artificial intelligence (AI) and robotic process automation (RPA). Companies use intelligent automation to cut costs and streamline tasks by using artificial-intelligence-powered robotic software to mitigate repetitive tasks. As it accumulates data, the system learns in an effort to improve its efficiency. Intelligent automation applications consist of, but are not limited to, pattern analysis, data assembly, and classification. The term is similar to hyperautomation, a concept identified by research group Gartner as being one of the top technology trends of 2020. == Technology == Intelligent automation applies the assembly line concept of breaking tasks into repetitive steps to improve business processes. Rather than having humans perform each step, intelligent automation can replace steps with an intelligent software robot, improving efficiency. Intelligent automation integrates robotic process automation (RPA) with artificial intelligence techniques (such as machine learning, natural-language processing, and computer vision) enabling systems to interpret data, make decisions, and adapt to changing inputs. Modern platforms use a layered architecture combining workflow orchestration, low-code tools, integration middleware, and AI services to coordinate bots and data pipelines across organisational systems. == Applications == Intelligent automation is used to process unstructured content. Common real-world applications include self-driving cars, self-checkouts at grocery stores, smart home assistants, and appliances. Businesses can apply data and machine learning to build predictive analytics that react to consumer behavior changes, or to implement RPA to improve manufacturing floor operations. For example, the technology has also been used to automate the workflow behind distributing COVID-19 vaccines. Data provided by hospital systems’ electronic health records can be processed to identify and educate patients, and schedule vaccinations. Intelligent automation can provide real-time insights on profitability and efficiency. However, in an April 2022 survey by Alchemmy, despite three quarters of businesses acknowledging the importance of Artificial Intelligence to their future development, just a quarter of business leaders (25%) considered Intelligent Automation a “game changer” in understanding current performance. 42% of CTOs see “shortage of talent” as the main obstacle to implementing Intelligent Automation in their business, while 36% of CEOs see ‘upskilling and professional development of existing workforce’ as the most significant adoption barrier. IA is becoming increasingly accessible for firms of all sizes. With this in mind, it is expected to continue to grow rapidly in all industries. This technology has the potential to change the workforce. As it advances, it will be able to perform increasingly complex and difficult tasks. In addition, this may expose certain workforce issues as well as change how tasks are allocated. Tools such as Semrush's AI Visibility Toolkit and Enterprise AIO reflect these developments by analysing how entities are referenced and represented within responses produced by large-language-model-based systems. == Benefits == Streamline processes: Repetitive manual tasks can put a strain on the workforce. However, with AI agents, these tasks can be automated to allow teams to focus on more important matters that require human cognition. Intelligent automation can also be used to mitigate tasks with human error which in turn increases proficiency. This allows the opportunity for firms to scale production without the traditional negative consequences such as reduced quality or increased risk. Customer service improvement: Customer service can be significantly improved, providing the firm with a competitive advantage. IA utilizing chat features allows for instant curated responses to customers. In addition, it can give updates to customers, make appointments, manage calls, and personalize campaigns. Flexibility: Due to the wide range of applications, IA is useful across a variety of fields, technologies, projects and industries. In addition, IA can be integrated with current automated systems in place. This allows for optimized systems unique to each firm to best fit their individual needs. == Capabilities == Cognitive automation: Employs AI techniques to assist humans in decision-making and task completion Natural language processing: Allows computers to automate knowledge work Business process management: Enhances the consistency and agility of corporate operations Process mining: Applies data mining methods to discover, analyze, and improve business processes Intelligent document processing: Utilizes OCR and other advanced technologies to extract data from documents and convert it into structured, usable data Computer vision: Allows computers to extract information from digital images, videos, and other visual inputs Integration automation: Establishes a unified platform with automated workflows that integrate data, applications, and devices.

    Read more →
  • Babelfy

    Babelfy

    Babelfy is a software algorithm for the disambiguation of text written in any language. It performs the tasks of multilingual Word Sense Disambiguation (i.e., the disambiguation of common nouns, verbs, adjectives and adverbs) and Entity Linking (i.e. the disambiguation of mentions to encyclopedic entities like people, companies, places, etc.). == Overview == Babelfy uses the BabelNet multilingual knowledge graph to perform disambiguation and entity linking in three steps: It associates with each vertex of the BabelNet semantic network, i.e., either concept or named entity, a semantic signature, that is, a set of related vertices. This is a preliminary step which needs to be performed only once, independently of the input text. Given an input text, it extracts all the linkable fragments from this text and, for each of them, lists the possible meanings according to the semantic network. It creates a graph-based semantic interpretation of the whole text by linking the candidate meanings of the extracted fragments using the previously computed semantic signatures. It then extracts a dense subgraph of this representation and selects the best candidate meaning for each fragment. As a result, the text, written in any of the 271 languages supported by BabelNet, is output with possibly overlapping semantic annotations.

    Read more →
  • Emospark

    Emospark

    EmoSpark is an artificial intelligence console created in London, United Kingdom by Patrick Levy-Rosenthal. The device uses facial recognition and language analysis to evaluate human emotion and convey responsive content according to the emotion. The console measures 90 mm x 90 mm x 90 mm and is cube shaped. It operates on an "Emotional Processing Unit", an emotion chip developed by Emoshape Inc. that enables the system to create emotional profile graphs of its surroundings. The emotional processing unit is a patent pending technology that is said to create synthesised emotional responses in machines. EmoSpark was funded through an Indiegogo campaign which aimed to raise $200,000. == Product overview == EmoSpark was created by French inventor Patrick Levy-Rosenthal, as an emotionally intelligent artificial life unit for the home that can interact with people. It is powered by Android and can communicate with users through typed input from a computer, tablet, smartphone or TV as well as through spoken commands. The EmoSpark's features are categorized into two types: functional and emotional. EmoSpark is said to have the ability to perform practical software-based tasks. Through the smartphone interface, it is able to gauge a person’s emotions and is reported to have a conversational library of over 2 million sentences. The face-tracking technology identifies users likes and dislikes to categorize their emotional responses to stimuli such as videos and music. The device has an emotional spectrum that is composed of eight emotions which are surprise, sadness, joy, trust, fear, disgust, anger and anticipation. EmoSpark monitors a person's facial expressions and emotions through images from an external camera, which are then processed through an emotion text analysis and content analysis. The New Scientist reported that EmoSpark had the ability to work on the best way to cheer up its users, emotionally. === Connectivity === EmoSpark is able to connect to Facebook and YouTube to present users with content designed to improve their mood, or to Wikipedia for collaborative knowledge that can be shared when users ask questions of it. Through Android OS, EmoSpark is able to be customized with Google Play store apps. The cube is expected to develop its own personality based on the communications it has had with the people using it. == EmoShape == The Emotion Chip (EPU) used in the cube is created by the US company Emoshape Inc, founded by Levy-Rosenthal. EmoShape Ltd (UK) was the company that developed EmoSpark cube. Patrick Levy-Rosenthal also received the IST Prize in 2005 from the European Council for Applied Science, Technology and Engineering.

    Read more →
  • LIFER/LADDER

    LIFER/LADDER

    LIFER/LADDER was one of the first database natural language processing systems. It was designed as a natural language interface to a database of information about US Navy ships. This system, as described in a paper by Hendrix (1978), used a semantic grammar to parse questions and query a distributed database. It was implemented in Interlisp. The LIFER/LADDER system could only support simple one-table queries or multiple table queries with easy join conditions. Some examples of queries it could accept: What are the length, width, and draft of the Kitty Hawk? When will Reeves achieve readiness rating C2? What is the nearest ship to Naples with a doctor on board? What ships are carrying cargo for the United States? Where are they going? Print the American cruisers’ current positions and states of readiness?

    Read more →
  • Paint.NET

    Paint.NET

    Paint.NET (sometimes stylized as paint.net) is a freeware general-purpose raster graphics editor program for Microsoft Windows, developed with the .NET platform. Paint.NET was originally created by Rick Brewster as a Washington State University student project, and has evolved from a simple replacement for the Microsoft Paint program into a program for editing mainly graphics, with support for plugins. == History == Paint.NET originated as a computer science senior design project by Rick Brewster during spring 2004 at Washington State University. Version 1.0 consisted of 36,000 lines of code and was written in four months. In contrast, version 3.35 has approximately 162,000 lines of code. The Paint.NET project continued over the summer and into the autumn 2004 semester for both the version 1.1 and 2.0 releases. Development continued with one programmer who worked on previous versions of Paint.NET while he was a student at WSU. As of May 2006 the program had been downloaded at least 2 million times, at a rate of about 180,000 per month. Initially, Paint.NET was released under a modified version of the MIT License, with the exclusion of the installer, text, and graphics. However, citing issues with the open source code being plagiarized by others that had rebranded the software as their own and bundled user content without their permission, the availability of the source code was restricted, in December 2007 Brewster announced his intent to restrict access to components of the program (including its installer, resources, and user interface). In November 2009, the software was made proprietary, restricting the sale or creation of derivative works of the software. Starting with version 4.0.18, Paint.NET is published in two editions: A classic edition remains freeware, similar to all other versions since 3.5. Another edition, however, is published to Microsoft Store under a trialware license and is available to purchase for US$14.99. According to the developer, this was done to enable the users to contribute to the development with more convenience, even though the old avenue of donation was not closed. In May 2026, Brewster revealed that he obtained the paint.net domain after attempting to do so for 22 years. Historically, the editor was hosted on getpaint.net, and according to Brewster, the previous owners of paint.net would not sell the domain and asked for "lots and lots of money". In December of the previous year, paint.net began hosting content that impersonated Paint.NET, therefore becoming a clear case of trademark infringement and domain squatting. Brewster stated that he was able to obtain the domain afterwards with the help of a lawyer. == Overview == Paint.NET is primarily programmed in the C# programming language. Its native image format, .PDN, is a compressed representation of the application's internal object format, which preserves layering and other information. == Plugins == Paint.NET supports plugins, which add image adjustments, effects, and support for additional file types. They can be programmed using any .NET Framework programming language, though they are most commonly written in C#. These are created by volunteer coders on the program's discussion board, the Paint.NET Forum. Though most are simply published via the discussion board, some have been included with a later release of the program. For instance, a DirectDraw Surface file type plugin, (originally by Dean Ashton) and an Ink Sketch and Soften Portrait effect (originally by David Issel) were added to Paint.NET in version 3.10. Hundreds of plugins have been produced; such as Shape3D, which renders a 2D drawing into a 3D shape. Some plugins expand on the functionality that comes with Paint.NET, such as Curves+ and Sharpen+, which extend the included tools Curves and Sharpen, respectively. Examples of file type plugins include an Animated Cursor and Icon plugin and an Adobe Photoshop file format plugin. Several of these plugins are based on existing open source software, such as a raw image format plugin that uses dcraw and a PNG optimization plugin that uses OptiPNG. == Forks == === paint-mono === Paint.NET was created exclusively for Windows and has no native support for other operating systems. Due to its former open-source licensing, the development of alternative versions was possible. In May 2007, Miguel de Icaza officially started a porting project called paint-mono. This project had partially ported Paint.NET 3.0 to Mono, an open-source implementation of the Common Language Infrastructure on which the .NET Framework is based. This allowed Paint.NET to be run on Mono-supported platforms, such as Linux. This port is no longer maintained and has not been updated since March 2009. Newer Mono runtime 6 versions are able to run original Paint.NET releases up to 3.5.11 with only minor issues. === Pinta === In 2010, developer Jonathan Pobst started a project called Pinta, describing it as a clone of Paint.NET for Mono and Gtk#. Pinta reused the adjustments and effects code from Paint.NET but otherwise is original code.

    Read more →
  • Fooocus

    Fooocus

    Fooocus is an open source generative artificial intelligence program that allows users to generate images from a text prompt. It uses Stable Diffusion XL as the base model for its image capabilities as well as a collection of default settings and prompts to make the image generation process more streamlined. == History == Fooocus was created by Lvmin Zhang, a doctoral student at Stanford University who previously studied at the Chinese University of Hong Kong and Soochow University. He is also the main author of ControlNet, which has been adopted by many other Stable Diffusion interfaces, such as AUTOMATIC1111 and ComfyUI. As of 9 July 2024, the project had 38.1k stars on GitHub. == Features == Fooocus' main feature is that it is easy to set up and does not require users to manually configure model parameters to achieve desirable results. According to the project, it uses GPT-2 to automatically add more detail to the user's prompts. It includes common extensions such LCM low-rank adaptation by default which allows for faster generation speed. Fooocus prefers a photographic style by default, with a list of predefined styles to choose from. While Fooocus aims to provide good results out of the box, it also includes an "advanced" tab that allows for user customization. The user interface is based on Gradio. It appears this project has not been updated in over 1 year. The latest git update for Fooocus was in Aug 12, 2024.

    Read more →
  • Rule-based system

    Rule-based system

    In computer science, a rule-based system is a computer system in which domain-specific knowledge is represented in the form of rules and general-purpose reasoning is used to solve problems in the domain. Two different kinds of rule-based systems emerged within the field of artificial intelligence in the 1970s: Production systems, which use if-then rules to derive actions from conditions. Logic programming systems, which use conclusion if conditions rules to derive conclusions from conditions. The differences and relationships between these two kinds of rule-based system has been a major source of misunderstanding and confusion. Both kinds of rule-based systems use either forward or backward chaining, in contrast with imperative programs, which execute commands listed sequentially. However, logic programming systems have a logical interpretation, whereas production systems do not. == Production system rules == A classic example of a production rule-based system is the domain-specific expert system that uses rules to make deductions or choices. For example, an expert system might help a doctor choose the correct diagnosis based on a cluster of symptoms, or select tactical moves to play a game. Rule-based systems can be used to perform lexical analysis to compile or interpret computer programs, or in natural language processing. Rule-based programming attempts to derive execution instructions from a starting set of data and rules. This is a more indirect method than that employed by an imperative programming language, which lists execution steps sequentially. === Construction === A typical rule-based system has four basic components: A list of rules or rule base, which is a specific type of knowledge base. An inference engine or semantic reasoner, which infers information or takes action based on the interaction of input and the rule base. The interpreter executes a production system program by performing the following match-resolve-act cycle: Match: In this first phase, the condition sides of all productions are matched against the contents of working memory. As a result a set (the conflict set) is obtained, which consists of instantiations of all satisfied productions. An instantiation of a production is an ordered list of working memory elements that satisfies the condition side of the production. Conflict-resolution: In this second phase, one of the production instantiations in the conflict set is chosen for execution. If no productions are satisfied, the interpreter halts. Act: In this third phase, the actions of the production selected in the conflict-resolution phase are executed. These actions may change the contents of working memory. At the end of this phase, execution returns to the first phase. Temporary working memory, which is a database of facts. A user interface or other connection to the outside world through which input and output signals are received and sent. Whereas the matching phase of the inference engine has a logical interpretation, the conflict resolution and action phases do not. Instead, "their semantics is usually described as a series of applications of various state-changing operators, which often gets quite involved (depending on the choices made in deciding which ECA rules fire, when, and so forth), and they can hardly be regarded as declarative". == Logic programming rules == The logic programming family of computer systems includes the programming language Prolog, the database language Datalog and the knowledge representation and problem-solving language Answer Set Programming (ASP). In all of these languages, rules are written in the form of clauses: A :- B1, ..., Bn. and are read as declarative sentences in logical form: A if B1 and ... and Bn. In the simplest case of Horn clauses (or "definite" clauses), which are a subset of first-order logic, all of the A, B1, ..., Bn are atomic formulae. Although Horn clause logic programs are Turing complete, for many practical applications, it is useful to extend Horn clause programs by allowing negative conditions, implemented by negation as failure. Such extended logic programs have the knowledge representation capabilities of a non-monotonic logic. == Differences and relationships between production rules and logic programming rules == The most obvious difference between the two kinds of systems is that production rules are typically written in the forward direction, if A then B, and logic programming rules are typically written in the backward direction, B if A. In the case of logic programming rules, this difference is superficial and purely syntactic. It does not affect the semantics of the rules. Nor does it affect whether the rules are used to reason backwards, Prolog style, to reduce the goal B to the subgoals A, or whether they are used, Datalog style, to derive B from A. In the case of production rules, the forward direction of the syntax reflects the stimulus-response character of most production rules, with the stimulus A coming before the response B. Moreover, even in cases when the response is simply to draw a conclusion B from an assumption A, as in modus ponens, the match-resolve-act cycle is restricted to reasoning forwards from A to B. Reasoning backwards in a production system would require the use of an entirely different kind of inference engine. In his Introduction to Cognitive Science, Paul Thagard includes logic and rules as alternative approaches to modelling human thinking. He does not consider logic programs in general, but he considers Prolog to be, not a rule-based system, but "a programming language that uses logic representations and deductive techniques" (page 40). He argues that rules, which have the form IF condition THEN action, are "very similar" to logical conditionals, but they are simpler and have greater psychological plausibility (page 51). Among other differences between logic and rules, he argues that logic uses deduction, but rules use search (page 45) and can be used to reason either forward or backward (page 47). Sentences in logic "have to be interpreted as universally true", but rules can be defaults, which admit exceptions (page 44). He does not observe that all of these features of rules apply to logic programming systems.

    Read more →
  • SHRDLU

    SHRDLU

    SHRDLU is an early natural-language understanding computer program that was developed by Terry Winograd at MIT in 1968–1970. In the program, the user carries on a conversation with the computer, moving objects, naming collections and querying the state of a simplified "blocks world", essentially a virtual box filled with different blocks. SHRDLU was written in the Micro Planner and Lisp programming language on the DEC PDP-6 computer and a DEC graphics terminal. Later additions were made at the computer graphics labs at the University of Utah, adding a full 3D rendering of SHRDLU's "world". The name SHRDLU was derived from ETAOIN SHRDLU, the arrangement of the letter keys on a Linotype machine, arranged in descending order of usage frequency in English. == Functionality == SHRDLU is primarily a language parser that allows user interaction using English terms. The user instructs SHRDLU to move various objects around in the "blocks world" containing various basic objects such as blocks, cones and balls. SHRDLU combined four simple ideas to make the simulation of "understanding" more convincing. One was that SHRDLU's world is so simple that the entire set of objects and locations could be described by including as few as 50 words: nouns like "block" and "cone", verbs like "place on" and "move to", and adjectives like "big" and "blue". The possible combinations of these basic language building blocks are quite simple. SHRDLU also includes a basic memory to supply context. One could ask SHRDLU to "put the green cone on the red block" and then "take the cone off"; "the cone" would be taken to mean the green cone one had just talked about. SHRDLU can search back further through the interactions to find the proper context in most cases when additional adjectives were supplied. One could also ask questions about the history; for instance, one could ask "did you pick up anything before the cone?" A side effect of this memory, and the original rules SHRDLU was supplied with, is that the program can answer questions about what was possible in the world and what was not. For instance, SHRDLU can deduce that blocks could be stacked by looking for examples, but also realize that triangles could not be stacked, after having tried it. The "world" contains basic physics to make blocks fall over, independent of the language parser. Finally, SHRDLU can also remember names given to objects, or arrangements of them. For instance one could say "a steeple is a small triangle on top of a tall rectangle"; SHRDLU can then answer questions about steeples in the blocks world, and build new ones. This is an example of a SHRDLU session: Person: Pick up a big red block. Computer: OK. Person: Grasp the pyramid. Computer: I DON'T UNDERSTAND WHICH PYRAMID YOU MEAN. Person (changing their mind): Find a block which is taller than the one you are holding and put it into the box. Computer: BY "IT", I ASSUME YOU MEAN THE BLOCK WHICH IS TALLER THAN THE ONE I AM HOLDING. Computer: OK. Person: What does the box contain? Computer: THE BLUE PYRAMID AND THE BLUE BLOCK. Person: What is the pyramid supported by? Computer: THE BOX. Person: How many blocks are not in the box? Computer: FOUR OF THEM. Person: Is at least one of them narrower than the one which i told you to pick up? Computer: YES, THE RED CUBE. Person: Is it supported? Computer: YES, BY THE TABLE. Person: Can the table pick up blocks? Computer: NO. Person: Can a pyramid be supported by a block? Computer: YES. Person: Can a pyramid support a pyramid? Computer: I DON'T KNOW. Person: Stack up two pyramids. Computer: I CAN'T. Person: Will you please stack up both of the red blocks and either a green cube or a pyramid? Computer: OK. Person: Which cube is sitting on the table? Computer: THE LARGE GREEN ONE WHICH SUPPORTS THE RED PYRAMID. Person: Is there a large block behind a pyramid? Computer: YES, THREE OF THEM: A LARGE RED ONE, A LARGE GREEN CUBE, AND THE BLUE ONE. Person: Put a small one onto the green cube which supports a pyramid. Computer: OK. Person: Put the littlest pyramid on top of it. Computer: OK. Person: Does the shortest thing the tallest pyramid's support supports support anything green? Computer: YES, THE GREEN PYRAMID. Person: What color is it? Computer: BY "IT", I ASSUME YOU MEAN THE SHORTEST THING THE TALLEST PYRAMID'S SUPPORT SUPPORTS. Computer: RED Person: How many things are on top of green cubes? Computer: I'M NOT SURE WHAT YOU MEAN BY "ON TOP OF" IN THE PHRASE "ON TOP OF GREEN CUBES" . DO YOU MEAN: 1 - DIRECTLY ON THE SURFACE 2 - ANWHERE ON TOP OF ? Person: 2 Computer: THREE OF THEM. Person: Had you touched any pyramid before you put the green one on the little cube? Computer: YES, THE GREEN ONE. Person: When did you pick it up? Computer: WHILE I WAS STACKING UP THE RED CUBE, A LARGE RED BLOCK AND A LARGE GREEN CUBE. Person: Why? Computer: TO GET RID OF IT. Person: Why did you do that? Computer: TO CLEAN OFF THE RED CUBE. Person: Why did you clear off that cube? Computer: TO PUT IT ON A LARGE GREEN CUBE. Person: Why did you do that? Computer: TO STACK UP THE RED CUBE , A LARGE RED BLOCK AND A LARGE GREEN CUBE. Person: Why did you do that? Computer: BECAUSE YOU ASKED ME TO. Person: How did you do it? Computer: BY PUTTING A LARGE RED BLOCK ON THE TABLE ; THEN LETTING GO OF IT ; THEN PUTTING A LARGE GREEN CUBE ON IT ; THEN LETTING GO OF THAT CUBE ; THEN PUTTING THE RED CUBE ON THAT CUBE; THEN LETTING GO OF THAT CUBE. Person: How many objects did you touch while you were doing it? Computer: FOUR OF THEM. Person: What did the red cube support before you started to clean it off? Computer: THE GREEN PYRAMID. Person: There were five blocks to the left of the box then. Computer: NO, ONLY FOUR OF THEM: THE RED CUBE, TWO LARGE GREEN CUBES AND A LARGE RED BLOCK. Person: Put the blue pyramid on the block in the box. Computer: OK. Person: Is there anything which is bigger than every pyramid but is not as wide as the thing that supports it? Computer: YES, THE BLUE BLOCK. Person: Does a steeple Computer (interrupting): SORRY, I DON'T KNOW THE WORD "STEEPLE". Person: A "steeple" is a stack which contains two green cubes and a pyramid. Computer: I UNDERSTAND. Person: Are there any steeples now? Computer: NO. Person: Build one. Computer: OK. Person: Call the biggest block "superblock". Computer: OK. Person: Have you picked superblock up since we began? Computer: YES. Person: Why did you drop it? Computer: BY "IT", I ASSUME YOU MEAN THE SUPERBLOCK. I CAN'T EXPLAIN A NON-EXISTENT EVENT. Person: Is there anything to the right of the red pyramid? Computer: YES, FOUR THINGS: THE BOX, THE RED CUBE, THE BLUE PYRAMID AND THE BLOCK NAMED SUPERBLOCK Person: Thank you. Computer: YOU'RE WELCOME! == Consequences == SHRDLU was considered a tremendously successful demonstration of artificial intelligence (AI). This led other AI researchers to excessive optimism which was soon lost when later systems attempted to deal with situations with a more realistic level of ambiguity and complexity. Subsequent efforts of the SHRDLU type, such as Cyc, have tended to focus on providing the program with considerably more information from which it can draw conclusions. In a 1991 interview, Winograd said about SHRDLU: [...] the famous dialogue with SHRDLU where you could pick up a block, and so on, I very carefully worked through, line by line. If you sat down in front of it, and asked it a question that wasn't in the dialogue, there was some probability it would answer it. I mean, if it was reasonably close to one of the questions that was there in form and in content, it would probably get it. But there was no attempt to get it to the point where you could actually hand it to somebody and they could use it to move blocks around. And there was no pressure for that whatsoever. Pressure was for something you could demo. Take a recent example, Negroponte's Media Lab, where instead of "perish or publish" it's "demo or die." I think that's a problem. I think AI suffered from that a lot, because it led to "Potemkin villages", things which - for the things they actually did in the demo looked good, but when you looked behind that there wasn't enough structure to make it really work more generally. Though not intentionally developed as such, SHRDLU is considered the first known formal example of interactive fiction, as the user interacts with simple commands to move objects around a virtual environment, though lacking the distinct story-telling normally present in the interactive fiction genre. The 1976-1977 game Colossal Cave Adventure is broadly considered to be the first true work of interactive fiction.

    Read more →
  • Socially assistive robot

    Socially assistive robot

    A socially assistive robot (SAR) aids users through social engagement and support rather than through physical tasks and interactions. == Background == The field of socially assistive robotics emerged in the early 2000s, following the emergence of the field of social robots. In contrast to social robots, SARs aid users with specific goals related to behavior change rather than serving as purely social entities. The term "Socially assistive robot" was initially defined by Maja Matarić and David Feil-Seifer in 2005. Since its inception, the field has gained substantial recognition, featuring numerous research projects, a wealth of global research publications, startup companies, and a growing array of products on the consumer market. The COVID-19 pandemic has underscored the immense potential of socially assistive robots, particularly in addressing the needs of large user populations, including children engaged in remote learning, elderly individuals grappling with loneliness, and those affected by social isolation and its associated negative consequences. == Characteristics of interaction == SARs rely on artificial intelligence (AI) to generate real-time, responsive, natural, and meaningful robot behaviors during interactions with humans. The robots employ various forms of communication, such as facial expressions, gestures, body movements, and speech. In contrast to robots intended for physical tasks, SARs are designed to support and motivate users to perform their own tasks. The tasks a user engages in can be physical (e.g., rehabilitation exercises for post-stroke users), cognitive (e.g., dementia screening for elderly users), or social (e.g., turn-taking for users with autism spectrum disorders). This complex interaction involves detecting and interpreting the user's movement, behavior, intent, goals, speech, and preferences. Machine learning and robot learning techniques are frequently employed to enhance the robot's understanding of the user, predict user preferences, and provide effective assistance. The effectiveness of socially assistive robots is assessed based on objective measurements of user performance and improvement resulting from the robot’s assistance and support. Unlike other branches of robotics, where effectiveness depends on the robot's physical task completion, SAR measures the success of the robot based on the user's progress and achievements. This evaluation is carried out using quantitative objective metrics, such as time spent on tasks, accuracy, retention, and verbalization, as well as quantitative subjective metrics, such as user survey tools. SAR is based on the large body of evidence showing that users tend to respond more positively to interactions with physical robots compared to interactions with screens. Interaction with physical robots also encourages users to learn and retain more information than screen-based interactions. This fundamental insight underlines why physical robots in SAR applications are more effective, as opposed to interactions solely involving screens, tablets, or computers. == Uses and applications == SARs have been developed and validated in a wide array of applications, including healthcare, elder care, education, and training. For example, SARs have been developed to support children on the autism spectrum in acquiring and practicing social and cognitive skills, to motivate and coach stroke patients throughout their rehabilitation exercises, monitoring individuals health (ex. fall detection), and to encourage elderly users to be more physically and socially active. There is a concern that technophobia and lack of trust in robots will pose a barrier to the effectiveness of SARs in older adults.

    Read more →
  • Trustworthy AI

    Trustworthy AI

    Trustworthy AI refers to artificial intelligence systems that are designed to have transparent reasoning, are explainable (XAI), accountable, robust, fair and honest, respectful of data privacy, and steerable or alignable with human goals. == Terminology == Recent work in AI ethics distinguishes trustworthiness and trustability as two different conditions relevant to trustworthy AI. Trustworthiness is concerned with whether an AI system or the institutions deploying it merit trust by being reliable, fair, and accountable. Trustability, on the other hand, is the prior question of whether a given entity is even the kind of thing to which interpersonal trust can coherently apply as opposed to mere instrumental reliance. Some philosophers argue that current AI systems are best understood as tools that are not genuine targets of interpersonal trust. They argue that trust should be directed toward the human and institutional arrangements that govern the systems' design, deployment, and oversight. This stance supports interpreting "trustworthy AI" as trustworthy governance and use of AI rather than trust in the artifacts themselves. Transparency in AI involves making the processes and decisions of such systems understandable to users and stakeholders. Accountability ensures that there are protocols for addressing adverse outcomes or biases that may arise, with designated responsibilities for oversight and remediation. Robustness and security aim to ensure that AI systems perform reliably under various conditions and are safeguarded against malicious attacks. Harmlessness can be achieved by refusal training: training the models to avoid problematic requests, and by adding filters to detect and prevent discussion on biased, unethical, or dangerous outputs. There is research on how to train AI so that it aligns with human goals. == Techniques and ITU standardization == Trustworthy AI creation is a goal of AI governance and policymaking. To achieve transparency and data privacy, several privacy-enhancing technologies (PETs) can be used. These include: Homomorphic encryption for computing with encrypted data without ever decrypting it. Federated learning and secure multi-party computation (MPC) for distributing the model training without sharing information between the learning centers and computing servers. Differential privacy for exposing statistical data while guaranteeing that no private information is exposed. Zero-knowledge proof - providing proven validity for statements without disclosing any extra information. A work programme for achieving Trustworthy AI was set up by the International Telecommunication Union, an agency of the United Nations, initiated under its AI for Good programme. Its origin lies with the ITU-WHO Focus Group on Artificial Intelligence for Health, where a strong need for both privacy and analytics created demand for a standard in these technologies. In 2020, AI for Good moved online, and the TrustworthyAI seminar series was established to initiate discussions on these topics. This eventually led to standardization activities. === Multi-party computation === Secure multi-party computation (MPC) is being standardized under "Question 5" (the incubator) of ITU-T Study Group 17. === Homomorphic encryption === Homomorphic encryption allows for computing on encrypted data, where the outcomes or result is still encrypted and unknown to those performing the computation, but can be deciphered by the original encryptor. It is often developed with the goal of enabling use in jurisdictions different from the data creation (under, for instance, GDPR). ITU has been collaborating since the early stage of the HomomorphicEncryption.org standardization meetings, which has developed a standard on homomorphic encryption. The fifth homomorphic encryption meeting was hosted at ITU HQ in Geneva. === Federated learning === Zero-sum masks as used by federated learning for privacy preservation are used extensively in the multimedia standards of ITU-T Study Group 16 (VCEG) such as JPEG, MP3, H.264, and H.265 (commonly known as MPEG). === Zero-knowledge proof === Previous pre-standardization work on the topic of zero-knowledge proof has been conducted in the ITU-T Focus Group on Digital Ledger Technologies. === Differential privacy === The application of differential privacy in the preservation of privacy was examined at several of the "Day 0" machine learning workshops at AI for Good Global Summits. == Mozilla "Rebel Alliance" == In January 2026, the Mozilla Foundation and its subsidiaries announced a strategic shift to deploy their entire $1.4 billion reserve into building what foundation president Mark Surman termed a "rebel alliance" for trustworthy AI. Framed by Surman as a mission-driven alternative to the market dominance of OpenAI and Anthropic, the initiative seeks to establish an open-source AI stack by 2028. The alliance includes several startups funded via Mozilla Ventures, specifically focusing on decentralized governance and transparency: Trail: A firm developing AI compliance frameworks for regulated industries. Transformer Lab: A developer of open-source tools for AI model management. Oumi: A platform for training and deploying open-source models. The "rebel alliance" terminology is a historical reference to Mozilla's efforts in 1998 to challenge Microsoft's browser monopoly. While the $1.4 billion in funding is significant, it has been contrasted with the tens of billions in capital raised by proprietary competitors like OpenAI.

    Read more →
  • National Security Memorandum on Artificial Intelligence

    National Security Memorandum on Artificial Intelligence

    The Memorandum on Advancing the United States' Leadership in Artificial Intelligence; Harnessing Artificial Intelligence to Fulfill National Security Objectives; and Fostering the Safety, Security, and Trustworthiness of Artificial Intelligence is a memorandum signed by U.S. president Joe Biden. The memorandum is described as seeking to advance U.S. leadership in the development of safe, secure, and trustworthy artificial intelligence (AI); enable the U.S. government to use AI for national security; and contribute to international AI governance.

    Read more →
  • Fifth Generation Computer Systems

    Fifth Generation Computer Systems

    The Fifth Generation Computer Systems (FGCS; Japanese: 第五世代コンピュータ, romanized: daigosedai konpyūta) was a 10-year initiative launched in 1982 by Japan's Ministry of International Trade and Industry (MITI) to develop computers based on massively parallel computing and logic programming. The project aimed to create an "epoch-making computer" with supercomputer-like performance and to establish a platform for future advancements in artificial intelligence. Although FGCS was noted as ahead of its time, and its ambitious goals contributed significantly to the development of concurrent logic programming, it ultimately ended in commercial failure. The term "fifth generation" was chosen to emphasize the system's advanced nature. In the history of computing hardware, there had been four prior "generations" of computers: the first generation utilized vacuum tubes; the second, transistors and diodes; the third, integrated circuits; and the fourth, microprocessors. While earlier generations focused on increasing the number of logic elements within a single CPU, it was widely believed at the time that the fifth generation would achieve enhanced performance through the use of massive numbers of CPUs. == Background == In the late 1960s until the early 1970s, there was much talk about "generations" of computer hardware, then usually organized into three generations First generation: Thermionic vacuum tubes. Mid-1940s. IBM pioneered the arrangement of vacuum tubes in pluggable modules. The IBM 650 was a first-generation computer. Second generation: Transistors. 1956. The era of miniaturization begins. Transistors are much smaller than vacuum tubes, draw less power, and generate less heat. Discrete transistors are soldered to circuit boards, with interconnections accomplished by stencil-screened conductive patterns on the reverse side. The IBM 7090 was a second-generation computer. Third generation: Integrated circuits (silicon chips containing multiple transistors). 1964. A pioneering example is the ACPX module used in the IBM 360/91, which, by stacking layers of silicon over a ceramic substrate, accommodated over 20 transistors per chip; the chips could be packed together onto a circuit board to achieve unprecedented logic densities. The IBM 360/91 was a hybrid second and third-generation computer. Omitted from this taxonomy is the "zeroth-generation" computer based on metal gears (such as the IBM 407) or mechanical relays (such as the Mark I), and the post-third-generation computers based on Very Large Scale Integrated (VLSI) circuits. There was also a parallel set of generations for software: First generation: Machine language. Second generation: Low-level programming languages such as Assembly language. Third generation: Structured high-level programming languages such as C, COBOL and FORTRAN. Fourth generation: "Non-procedural" high-level programming languages (such as object-oriented languages). Throughout these multiple generations up to the 1970s, Japan built computers following U.S. and British leads. In the mid-1970s, the Ministry of International Trade and Industry stopped following western leads and started looking into the future of computing on a small scale. They asked the Japan Information Processing Development Center (JIPDEC) to indicate a number of future directions, and in 1979 offered a three-year contract to carry out more in-depth studies along with industry and academia. It was during this period that the term "fifth-generation computer" started to be used. Prior to the 1970s, MITI guidance had successes such as an improved steel industry, the creation of the oil supertanker, the automotive industry, consumer electronics, and computer memory. MITI decided that the future was going to be information technology. However, the Japanese language, particularly in its written form, presented and still presents obstacles for computers. As a result of these hurdles, MITI held a conference to seek assistance from experts. The primary fields for investigation from this initial project were: Inference computer technologies for knowledge processing Computer technologies to process large-scale data bases and knowledge bases High-performance workstations Distributed functional computer technologies Super-computers for scientific calculation == Project launch == The aim was to build parallel computers for artificial intelligence applications using concurrent logic programming. The project imagined an "epoch-making" computer with supercomputer-like performance running on top of large databases (as opposed to a traditional filesystem) using a logic programming language to define and access the data using massively parallel computing/processing. They envisioned building a prototype machine with performance between 100M and 1G LIPS, where a LIPS is a Logical Inference Per Second. At the time typical workstation machines were capable of about 100k LIPS. They proposed to build this machine over a ten-year period, 3 years for initial R&D, 4 years for building various subsystems, and a final 3 years to complete a working prototype system. In 1982 the government decided to go ahead with the project, and established the Institute for New Generation Computer Technology (ICOT) through joint investment with various Japanese computer companies. After the project ended, MITI would consider an investment in a new "sixth generation" project. Ehud Shapiro captured the rationale and motivations driving this project: "As part of Japan's effort to become a leader in the computer industry, the Institute for New Generation Computer Technology has launched a revolutionary ten-year plan for the development of large computer systems which will be applicable to knowledge information processing systems. These Fifth Generation computers will be built around the concepts of logic programming. In order to refute the accusation that Japan exploits knowledge from abroad without contributing any of its own, this project will stimulate original research and will make its results available to the international research community." === Logic programming === The target defined by the FGCS project was to develop "Knowledge Information Processing systems" (roughly meaning, applied Artificial Intelligence). The chosen tool to implement this goal was logic programming. Logic programming approach as was characterized by Maarten Van Emden – one of its founders – as: The use of logic to express information in a computer. The use of logic to present problems to a computer. The use of logical inference to solve these problems. More technically, it can be summed up in two equations: Program = Set of axioms. Computation = Proof of a statement from axioms. The Axioms typically used are universal axioms of a restricted form, called Horn-clauses or definite-clauses. The statement proved in a computation is an existential statement. The proof is constructive, and provides values for the existentially quantified variables: these values constitute the output of the computation. Logic programming was thought of as something that unified various gradients of computer science (software engineering, databases, computer architecture and artificial intelligence). It seemed that logic programming was a key missing connection between knowledge engineering and parallel computer architectures. == Results == After having influenced the consumer electronics field during the 1970s and the automotive world during the 1980s, the Japanese had developed a strong reputation. The launch of the FGCS project spread the belief that parallel computing was the future of all performance gains, producing a wave of apprehension in the computer field. Soon parallel projects were set up in the US as the Strategic Computing Initiative and the Microelectronics and Computer Technology Corporation (MCC), in the UK as Alvey, and in Europe as the European Strategic Program on Research in Information Technology (ESPRIT), as well as the European Computer‐Industry Research Centre (ECRC) in Munich, a collaboration between ICL in Britain, Bull in France, and Siemens in Germany. The project ran from 1982 to 1994, spending a little less than ¥57 billion (about US$320 million) total. After the FGCS Project, MITI stopped funding large-scale computer research projects, and the research momentum developed by the FGCS Project dissipated. However MITI/ICOT embarked on a neural-net project which some called the Sixth Generation Project in the 1990s, with a similar level of funding. Per-year spending was less than 1% of the entire R&D expenditure of the electronics and communications equipment industry. For example, the project's highest expenditure year was 7.2 million yen in 1991, but IBM alone spent 1.5 billion dollars (370 billion yen) in 1982, while the industry spent 2150 billion yen in 1990. === Concurrent logic programming === In 1982, during a visit to the ICOT, Ehud Shapiro invented Concurrent Prolog, a novel programming language t

    Read more →
  • Inverse consistency

    Inverse consistency

    In image registration, inverse consistency measures the consistency of mappings between images produced by a registration algorithm. The inverse consistency error, introduced by Christiansen and Johnson in 2001, quantifies the distance between the composition of the mappings from each image to the other, produced by the registration procedure, and the identity function, and is used as a regularisation constraint in the loss function of many registration algorithms to enforce consistent mappings. Inverse consistency is necessary for good image registration but it is not sufficient, since a mapping can be perfectly consistent but not register the images at all. == Definition == Image registration is the process of establishing a common coordinate system between two images, and given two images I 1 : Ω 1 → R I 2 : Ω 2 → R {\displaystyle {\begin{aligned}I_{1}:\Omega _{1}\to \mathbb {R} \\I_{2}:\Omega _{2}\to \mathbb {R} \end{aligned}}} registering a source image I 1 {\displaystyle I_{1}} to a target image I 2 {\displaystyle I_{2}} consists of determining a transformation f 1 : Ω 2 → Ω 1 {\displaystyle f_{1}:\Omega _{2}\to \Omega _{1}} that maps points from the target space to the source space. An ideal registration algorithm should not be sensitive to which image in the pair is used as source or target, and the registration operator should be antisymmetric such that the mappings f 1 : Ω 2 → Ω 1 f 2 : Ω 1 → Ω 2 {\displaystyle {\begin{aligned}f_{1}:\Omega _{2}\to \Omega _{1}\\f_{2}:\Omega _{1}\to \Omega _{2}\end{aligned}}} produced when registering I 1 {\displaystyle I_{1}} to I 2 {\displaystyle I_{2}} and I 2 {\displaystyle I_{2}} to I 1 {\displaystyle I_{1}} respectively should be the inverse of each other, i.e. f 2 = f 1 − 1 {\displaystyle f_{2}=f_{1}^{-1}} and f 1 = f 2 − 1 {\displaystyle f_{1}=f_{2}^{-1}} or, equivalently, f 2 ∘ f 1 = id Ω 2 {\displaystyle f_{2}\circ f_{1}=\operatorname {id} _{\Omega _{2}}} and f 1 ∘ f 2 = id Ω 1 {\displaystyle f_{1}\circ f_{2}=\operatorname {id} _{\Omega _{1}}} , where ∘ {\displaystyle \circ } denotes the function composition operator. Real algorithms are not perfect, and when swapping the role of source and target image in a registration problem the so obtained transformations are not the inverse of each other. Inverse consistency can be enforced by adding to the loss function of the registration a symmetric regularisation term that penalises inconsistent transformations ∫ Ω 2 ‖ f 2 ( f 1 ( x ) ) − x ‖ 2 d x + ∫ Ω 1 ‖ f 1 ( f 2 ( x ) ) − x ‖ 2 d x . {\displaystyle \int _{\Omega _{2}}\left\Vert f_{2}(f_{1}(x))-x\right\Vert ^{2}\mathrm {d} x+\int _{\Omega _{1}}\left\Vert f_{1}(f_{2}(x))-x\right\Vert ^{2}\mathrm {d} x.} Inverse consistency can be used as a quality metric to evaluate image registration results. The inverse consistency error ( I C E {\displaystyle ICE} ) measures the distance between the composition of the two transforms and the identity function, and it can be formulated in terms of both average ( I C E a {\displaystyle ICE_{a}} ) or maximum ( I C E m {\displaystyle ICE_{m}} ) over a region of interest Ω {\displaystyle \Omega } of the image: I C E a = 1 ∫ Ω d x ∫ Ω ‖ f 2 ( f 1 ( x ) ) − x ‖ d x I C E m = max x ∈ Ω ‖ f 2 ( f 1 ( x ) ) − x ‖ . {\displaystyle {\begin{aligned}ICE_{a}&={\frac {1}{\int _{\Omega }\mathrm {d} x}}\int _{\Omega }\left\Vert f_{2}(f_{1}(x))-x\right\Vert \mathrm {d} x\\ICE_{m}&=\max _{x\in \Omega }\left\Vert f_{2}(f_{1}(x))-x\right\Vert .\end{aligned}}} While inverse consistency is a necessary property of good registration algorithms, inverse consistency error alone is not a sufficient metric to evaluate the quality of image registration results, since a perfectly consistent mapping, with no other constraint, may be not even close to correctly register a pair of images.

    Read more →
  • JaCoP (solver)

    JaCoP (solver)

    JaCoP is a constraint solver for constraint satisfaction problems. It is written in Java and it is provided as a Java library. JaCoP has an interface to the MiniZinc and AMPL modeling languages. Its main focus is on ease of use, modeling power, as well as efficiency. It has a large collection of global constraints implemented to facilitate problem modeling. JaCoP is actively developed since year 2001. Krzysztof Kuchcinski and Radoslaw Szymanek are the core developers of this Java library. There are number of people who have contributed to JaCoP development in addition to core developers. JaCoP development has been influenced by more than 20 research articles from Constraint Programming community. It has been used as a tool in more than 30 research articles. There are many different examples provided so it is easier to learn how to use JaCoP. The JaCoP project contains a wrapper for the Scala programming language, and a wrapper for Clojure is maintained as a separate project CloCoP.

    Read more →
  • Simulation decomposition

    Simulation decomposition

    SimDec, or Simulation decomposition, is a hybrid uncertainty and sensitivity analysis method, for visually examining the relationships between the output and input variables of a computational model. SimDec maps multivariable scenarios onto the distribution of the model output. This visual analytics approach exposes the underlying nature of the model behavior, including its nonlinear and multivariate interaction effects. SimDec can be used in any range of science, engineering, and social domains. Existing applications include business and environmental issues. == Method == SimDec operates on Monte Carlo simulation (or measured) data where both output and input values are recorded. At least one thousand observations (or simulated iterations) are typically recommended to preserve the readability of the resulting histograms. An outline of the decomposition algorithm, which is readily available in multiple programming languages, proceeds as follows: Select the input variables for decomposition. One can use sensitivity indices (see variance-based sensitivity analysis) to define the most influential variables for decomposition or choose them manually according to the decision-problem context (for example, only those input variables that the decision-maker can act upon). Two to three input variables, ordered by decreasing value of their sensitivity indices, usually provide the most meaningful decomposition results. Divide the inputs into states. The numeric ranges of the inputs are split into several intervals with an equal number of observations in each. For categorical variables, the categories represent states. Form scenarios. All combinations of states of the selected input variables produce unique scenarios or subsets of the data. For example, if the range of X2 is divided into low, medium and high, and X3 takes values of 1 or 2, six scenarios are formed: (i) X2 low & X3 = 1, (ii) X2 low & X3 = 2, (iii) X2 medium & X3 = 1, (iv) X2 medium & X3 = 2, (v) X2 high & X3 = 1, and (vi) X2 high & X3 = 2. Assign scenarios to each output value. The simulation data is used to define the scenario index for each simulation run. For example, if an X2 value falls into the low state and X3 is equal to 2, the corresponding scenario, defined in Step 3, is (ii). Color-code the output distribution. When all output values are assigned scenario indices, they are plotted as series in a stacked histogram, visually separated by color-coding. For ease of visual perception, the states of the most influential input variable are assigned distinct colors, and all the remaining partitions take shades of those colors (see Figure). All of these steps can be run automatically on the given data using the open-source SimDec packages currently available in Python, R, Julia, and Matlab. A SimDec template in Excel runs a Monte Carlo simulation of a spreadsheet model but possesses only a manual option for input selection. == How to read SimDec == === Histogram === Histogram is an approximate representation of the distribution of numerical data. Its horizontal axis shows the range of the variable of interest, and its vertical axis denotes count, also called frequency, or, if divided by the total number of data points, probability. The distribution alone can supply only limited information about the data – its minimum, maximum, and shape (where the most of data occurs). === Judging the importance of inputs === If an input variable has no effect on the output, its states (e.g., low & high) would lie on top of each other on the SimDec histogram, occupying fully overlapping ranges of the output. If an input variable has a strong effect and explains most of the variance of the output, the border between its states on the SimDec histogram would be vertical. Such visualization has an important decision-making implication – e.g., if the high state of X can be achieved, it would guarantee a certain range of Y. All cases in-between with low-to-strong effects would show a diagonal border between the states. The less they overlap, the larger the effect of X on Y. While the horizontal displacement of sub-distributions on the SimDec histogram is the key to interpreting the results, the vertical disposition of sub-distributions is just a technical matter of the order of plotting the series of the stacked histogram. === Exploring the interaction of inputs === When two or more input variables are used for decomposition, it becomes possible to examine their joint effects. A schematic visualization portrays how different types of joint effects of input variables on the output appear on SimDec visualization. Understanding the nature of interaction effects in a computational model and its behavior in general is crucial for effective decision-making. == Limitations == The SimDec method has several limitations: It is based on Monte Carlo simulation and thus requires running a computational model a thousand of times or more. To models that take hours to evaluate once, it would be impossible to use SimDec (unless a supercomputer and/or large of time are available). SimDec is based on a histogram, thus, for binary or categorical output variables, the visualization would be very limited (e.g., only a few bins). The more input variables one selects for the decomposition, the less readable the histogram becomes. Only cases with two and three input variables are presented in.

    Read more →