AI For Business Edinburgh

AI For Business Edinburgh — 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 →
  • Noam Shazeer

    Noam Shazeer

    Noam Shazeer (born 1975 or 1976) is an American computer scientist and entrepreneur known for his contributions to the field of artificial intelligence and deep learning, particularly in the development of transformer models and natural language processing. He lives in Palo Alto, California. == Career == Noam Shazeer joined Google in 2000. One of his first major achievements was improving the spelling corrector of Google's search engine. In 2017, Shazeer was one of the lead authors of the seminal paper "Attention Is All You Need", which introduced the transformer architecture. At Google, Shazeer and his colleague Daniel de Freitas built a chatbot named Meena. Following the refusal of Google to release the chatbot to the public, Shazeer and Freitas left the company in 2021 to found Character.AI. In September 2023, Time Magazine chose Shazeer as one of the 100 most influential people in the AI world. In August 2024, it was reported that Shazeer would be returning to Google to co-lead the Gemini AI project. Shazeer was appointed as technical lead on Gemini, along with Jeff Dean and Oriol Vinyals. It was part of a $2.7 billion deal for Google to license Character's technology. Since he owns 30-40% of the company, it is estimated he netted $750 million-$1 billion. In 2026, he was elected a member of the National Academy of Engineering. == Views == Shazeer said about artificial general intelligence that he doesn't "particularly care about AGI in the sense of wanting something that can do absolutely everything a person can do”. When asked in 2023 if he is afraid that AGI will destroy the world, he said: "No. Not yet. [...] We’re going to work on it as the technology improves". When asked why do large language models work he answered: "My best guess is divine benevolence [...] Nobody really understands what’s going on. This is a very experimental science [...] It’s more like alchemy or whatever chemistry was in the Middle Ages.” Shazeer has stated, "I do not believe that humans have an attribute called gender... I do not believe that G-d puts people in the wrong bodies. I do not believe that it is okay to sterilize children." == Personal life == Shazeer is an orthodox Jew. His grandparents escaped the Holocaust into the Soviet Union and later lived some time in Israel before emigrating to the USA. His father, Dov Shazeer, was a math teacher who became an engineer and his mother was a homemaker. His sister was ordained as a rabbi by Hebrew College. Shazeer was born in Philadelphia, attended grade school at Cohen Hillel Academy in Marblehead, Massachusetts, and attended Swampscott High School in Swampscott, Massachusetts. He won a gold medal with perfect score at International Mathematical Olympiad 1994 as a member of the USA team. He went on to study math and computer science at Duke University in Durham, North Carolina from 1994 to 1998. At Duke he was a recipient of the Angier B. Duke Memorial Scholarship, and, as part of the Duke math team, won prizes in several math tournaments. He started studying in a graduate program in Berkeley but did not finish it. He is a father of three and is married to Yael Shacham Shazeer

    Read more →
  • Tree (abstract data type)

    Tree (abstract data type)

    In computer science, a tree is a widely used abstract data type that represents a hierarchical tree structure with a set of connected nodes. Each node in the tree can be connected to many children (depending on the type of tree), but must be connected to exactly one parent, except for the root node, which has no parent (i.e., the root node as the top-most node in the tree hierarchy). These constraints mean there are no cycles or "loops" (no node can be its own ancestor), and also that each child can be treated like the root node of its own subtree, making recursion a useful technique for tree traversal. In contrast to linear data structures, many trees cannot be represented by relationships between neighboring nodes (parent and children nodes of a node under consideration, if they exist) in a single straight line (called edge or link between two adjacent nodes). Binary trees are a commonly used type, which constrain the number of children for each parent to at most two. When the order of the children is specified, this data structure corresponds to an ordered tree in graph theory. A value or pointer to other data may be associated with every node in the tree, or sometimes only with the leaf nodes, which have no children nodes. The abstract data type (ADT) can be represented in a number of ways, including a list of parents with pointers to children, a list of children with pointers to parents, or a list of nodes and a separate list of parent-child relations (a specific type of adjacency list). Representations might also be more complicated, for example using indexes or ancestor lists for performance. Trees as used in computing are similar to but can be different from mathematical constructs of trees in graph theory, trees in set theory, and trees in descriptive set theory. == Terminology == A node is a structure which may contain data and connections to other nodes, sometimes called edges or links. Each node in a tree has zero or more child nodes, which are below it in the tree (by convention, trees are drawn with descendants going downwards). A node that has a child is called the child's parent node (or superior). All nodes have exactly one parent, except the topmost root node, which has none. A node might have many ancestor nodes, such as the parent's parent. Child nodes with the same parent are sibling nodes. Typically siblings have an order, with the first one conventionally drawn on the left. Some definitions allow a tree to have no nodes at all, in which case it is called empty. An internal node (also known as an inner node, inode for short, or branch node) is any node of a tree that has child nodes. Similarly, an external node (also known as an outer node, leaf node, or terminal node) is any node that does not have child nodes. The height of a node is the length of the longest downward path to a leaf from that node. The height of the root is the height of the tree. The depth of a node is the length of the path to its root (i.e., its root path). Thus the root node has depth zero, leaf nodes have height zero, and a tree with only a single node (hence both a root and leaf) has depth and height zero. Conventionally, an empty tree (tree with no nodes, if such are allowed) has height −1. Each non-root node can be treated as the root node of its own subtree, which includes that node and all its descendants. Other terms used with trees: Neighbor Parent or child. Ancestor A node reachable by repeated proceeding from child to parent. Descendant A node reachable by repeated proceeding from parent to child. Also known as subchild. Degree For a given node, its number of children. A leaf, by definition, has degree zero. Degree of tree The degree of a tree is the maximum degree of a node in the tree. Distance The number of edges along the shortest path between two nodes. Level The level of a node is the number of edges along the unique path between it and the root node. This is the same as depth. Width The number of nodes in a level. Breadth The number of leaves. Complete tree A tree with every level filled, except the last. Forest A set of one or more disjoint trees. Ordered tree A rooted tree in which an ordering is specified for the children of each vertex. Size of a tree Number of nodes in the tree. == Common operations == Enumerating all the items Enumerating a section of a tree Searching for an item Adding a new item at a certain position on the tree Deleting an item Pruning: Removing a whole section of a tree Grafting: Adding a whole section to a tree Finding the root for any node Finding the lowest common ancestor of two nodes === Traversal and search methods === Stepping through the items of a tree, by means of the connections between parents and children, is called walking the tree, and the action is a walk of the tree. Often, an operation might be performed when a pointer arrives at a particular node. A walk in which each parent node is traversed before its children is called a pre-order walk; a walk in which the children are traversed before their respective parents are traversed is called a post-order walk; a walk in which a node's left subtree, then the node itself, and finally its right subtree are traversed is called an in-order traversal. (This last scenario, referring to exactly two subtrees, a left subtree and a right subtree, assumes specifically a binary tree.) A level-order walk effectively performs a breadth-first search over the entirety of a tree; nodes are traversed level by level, where the root node is visited first, followed by its direct child nodes and their siblings, followed by its grandchild nodes and their siblings, etc., until all nodes in the tree have been traversed. == Representations == There are many different ways to represent trees. In working memory, nodes are typically dynamically allocated records with pointers to their children, their parents, or both, as well as any associated data. If of a fixed size, the nodes might be stored in a list. Nodes and relationships between nodes might be stored in a separate special type of adjacency list. In relational databases, nodes are typically represented as table rows, with indexed row IDs facilitating pointers between parents and children. Nodes can also be stored as items in an array, with relationships between them determined by their positions in the array (as in a binary heap). A binary tree can be implemented as a list of lists: the head of a list (the value of the first term) is the left child (subtree), while the tail (the list of second and subsequent terms) is the right child (subtree). This can be modified to allow values as well, as in Lisp S-expressions, where the head (value of first term) is the value of the node, the head of the tail (value of second term) is the left child, and the tail of the tail (list of third and subsequent terms) is the right child. Ordered trees can be naturally encoded by finite sequences, for example with natural numbers. == Examples of trees and non-trees == == Type theory == As an abstract data type, the abstract tree type T with values of some type E is defined, using the abstract forest type F (list of trees), by the functions: value: T → E children: T → F nil: () → F node: E × F → T with the axioms: value(node(e, f)) = e children(node(e, f)) = f In terms of type theory, a tree is an inductive type defined by the constructors nil (empty forest) and node (tree with root node with given value and children). == Mathematical terminology == Viewed as a whole, a tree data structure is an ordered tree, generally with values attached to each node. Concretely, it is (if required to be non-empty): A rooted tree with the "away from root" direction (a more narrow term is an "arborescence"), meaning: A directed graph, whose underlying undirected graph is a tree (any two vertices are connected by exactly one simple path), with a distinguished root (one vertex is designated as the root), which determines the direction on the edges (arrows point away from the root; given an edge, the node that the edge points from is called the parent and the node that the edge points to is called the child), together with: an ordering on the child nodes of a given node, and a value (of some data type) at each node. Often trees have a fixed (more properly, bounded) branching factor (outdegree), particularly always having two child nodes (possibly empty, hence at most two non-empty child nodes), hence a "binary tree". Allowing empty trees makes some definitions simpler, some more complicated: a rooted tree must be non-empty, hence if empty trees are allowed the above definition instead becomes "an empty tree or a rooted tree such that ...". On the other hand, empty trees simplify defining fixed branching factor: with empty trees allowed, a binary tree is a tree such that every node has exactly two children, each of which is a tree (possibly empty). == Applications == Trees are commonly used to represent or manipulate hierarchical data in ap

    Read more →
  • WordNet

    WordNet

    WordNet is a lexical database of semantic relations between words that links words into semantic relations including synonyms, hyponyms, and meronyms. The synonyms are grouped into synsets with short definitions and usage examples. It can thus be seen as a combination and extension of a dictionary and thesaurus. Its primary use is in automatic text analysis and artificial intelligence applications. It was first created in the English language and the English WordNet database and software tools have been released under a BSD style license and are freely available for download. The latest official release from Princeton was released in 2011. Princeton currently has no plans to release any new versions due to staffing and funding issues. New versions are still being released annually through the Open English WordNet website. Until about 2024 an online version was previously available through wordnet.princeton.edu. That version of WordNet has been deprecated, but a new online version is available at en-word.net. There are now WordNets in more than 200 languages. == History and team members == WordNet was first created in 1985, in English only, in the Cognitive Science Laboratory of Princeton University under the direction of psychology professor George Armitage Miller. It was later directed by Christiane Fellbaum. The project was initially funded by the U.S. Office of Naval Research, and later also by other U.S. government agencies including the DARPA, the National Science Foundation, the Disruptive Technology Office (formerly the Advanced Research and Development Activity) and REFLEX. George Miller and Christiane Fellbaum received the 2006 Antonio Zampolli Prize for their work with WordNet. The Global WordNet Association is a non-commercial organization that provides a platform for discussing, sharing and connecting WordNets for all languages in the world. Christiane Fellbaum and Piek Th.J.M. Vossen are its co-presidents. == Database contents == The database contains 155,327 words organized in 175,979 synsets for a total of 207,016 word-sense pairs; in compressed form, it is about 12 megabytes in size. It includes the lexical categories nouns, verbs, adjectives and adverbs but ignores prepositions, determiners and other function words. Words from the same lexical category that are roughly synonymous are grouped into synsets, which include simplex words as well as collocations like "eat out" and "car pool." The different senses of a polysemous word form are assigned to different synsets. A synset's meaning is further clarified with a short defining gloss and one or more usage examples. An example adjective synset is: good, right, ripe – (most suitable or right for a particular purpose; "a good time to plant tomatoes"; "the right time to act"; "the time is ripe for great sociological changes") All synsets are connected by means of semantic relations. These relations, which are not all shared by all lexical categories, include: Nouns hypernym: Y is a hypernym of X if every X is a (kind of) Y (canine is a hypernym of dog) hyponym: Y is a hyponym of X if every Y is a (kind of) X (dog is a hyponym of canine) coordinate term: Y is a coordinate term of X if X and Y share a hypernym (wolf is a coordinate term of dog, and dog is a coordinate term of wolf) holonym: Y is a holonym of X if X is a part of Y (building is a holonym of window) meronym: Y is a meronym of X if Y is a part of X (window is a meronym of building) Verbs hypernym: the verb Y is a hypernym of the verb X if the activity X is a (kind of) Y (to perceive is an hypernym of to listen) troponym: the verb Y is a troponym of the verb X if the activity Y is doing X in some manner (to lisp is a troponym of to talk) entailment: the verb Y is entailed by the verb X if by doing X you must be doing Y (to sleep is entailed by to snore) coordinate term: the verb Y is a coordinate term of the verb X if X and Y share a hypernym (to lisp is a coordinate term of to yell, and to yell is a coordinate term of to lisp) These semantic relations hold among all members of the linked synsets. Individual synset members (words) can also be connected with lexical relations. For example, (one sense of) the noun "director" is linked to (one sense of) the verb "direct" from which it is derived via a "morphosemantic" link. The morphology functions of the software distributed with the database try to deduce the lemma or stem form of a word from the user's input. Irregular forms are stored in a list, and looking up "ate" will return "eat," for example. == Knowledge structure == Both nouns and verbs are organized into hierarchies, defined by hypernym or IS A relationships. For instance, one sense of the word dog is found following hypernym hierarchy; the words at the same level represent synset members. Each set of synonyms has a unique index. At the top level, these hierarchies are organized into 25 beginner "trees" for nouns and 15 for verbs (called lexicographic files at a maintenance level). All are linked to a unique beginner synset, "entity". Noun hierarchies are far deeper than verb hierarchies. Adjectives are not organized into hierarchical trees. Instead, two "central" antonyms such as "hot" and "cold" form binary poles, while 'satellite' synonyms such as "steaming" and "chilly" connect to their respective poles via a "similarity" relations. The adjectives can be visualized in this way as "dumbbells" rather than as "trees". == Psycholinguistic aspects == The initial goal of the WordNet project was to build a lexical database that would be consistent with theories of human semantic memory developed in the late 1960s. Psychological experiments indicated that speakers organized their knowledge of concepts in an economic, hierarchical fashion. Retrieval time required to access conceptual knowledge seemed to be directly related to the number of hierarchies the speaker needed to "traverse" to access the knowledge. Thus, speakers could more quickly verify that canaries can sing because a canary is a songbird, but required slightly more time to verify that canaries can fly (where they had to access the concept "bird" on the superordinate level) and even more time to verify canaries have skin (requiring look-up across multiple levels of hyponymy, up to "animal"). While such psycholinguistic experiments and the underlying theories have been subject to criticism, some of WordNet's organization is consistent with experimental evidence. For example, anomic aphasia selectively affects speakers' ability to produce words from a specific semantic category, a WordNet hierarchy. Antonymous adjectives (WordNet's central adjectives in the dumbbell structure) are found to co-occur far more frequently than chance, a fact that has been found to hold for many languages. == As a lexical ontology == WordNet is sometimes called an ontology, a persistent claim that its creators do not make. The hypernym/hyponym relationships among the noun synsets can be interpreted as specialization relations among conceptual categories. In other words, WordNet can be interpreted and used as a lexical ontology in the computer science sense. However, such an ontology should be corrected before being used, because it contains hundreds of basic semantic inconsistencies; for example there are, (i) common specializations for exclusive categories and (ii) redundancies in the specialization hierarchy. Furthermore, transforming WordNet into a lexical ontology usable for knowledge representation should normally also involve (i) distinguishing the specialization relations into subtypeOf and instanceOf relations, and (ii) associating intuitive unique identifiers to each category. Although such corrections and transformations have been performed and documented as part of the integration of WordNet 1.7 into the cooperatively updatable knowledge base of WebKB-2, most projects claiming to reuse WordNet for knowledge-based applications (typically, knowledge-oriented information retrieval) simply reuse it directly. WordNet has also been converted to a formal specification, by means of a hybrid bottom-up top-down methodology to automatically extract association relations from it and interpret these associations in terms of a set of conceptual relations, formally defined in the DOLCE foundational ontology. In most works that claim to have integrated WordNet into ontologies, the content of WordNet has not simply been corrected when it seemed necessary; instead, it has been heavily reinterpreted and updated whenever suitable. This was the case when, for example, the top-level ontology of WordNet was restructured according to the OntoClean-based approach, or when it was used as a primary source for constructing the lower classes of the SENSUS ontology. == Limitations == The most widely discussed limitation of WordNet (and related resources like ImageNet) is that some of the semantic relations are more suited to concrete concepts than to abstract concepts. For example,

    Read more →
  • AI washing

    AI washing

    AI washing is a deceptive marketing tactic that consists of promoting a product or a service by overstating the role of artificial intelligence (AI) and the integration of it. Companies often involve in the practice to mislead customers to boost their offerings, and to secure funding from investors. The practice raises concerns regarding transparency, and legal issues. == Definition == AI washing is a deceptive marketing practice. It involves promoting a product or a service by overstating the role of artificial intelligence (AI) and its integration in the design and manufacture of the same. The practice raises concerns regarding transparency, compliance with security regulations, and consumer trust in the AI industry potentially hampering legitimate advancements in AI. The term was first defined by the AI Now Institute, a research institute based at New York University in 2019. The term is derived from greenwashing, another deceptive marketing technique that misrepresents a product's environmental impact in a similar manner. AI washing might involve a company claiming to have used AI in the development or enhancement of its products or services without its actual involvement, or using buzzwords such as "smart" or "AI-powered" without the product actually offering it or making use of it. A company may overstate the usage of AI or misuse the term, which is also construed as AI washing. In 2026, The Washington Post defined AI washing as "a trend for bosses to blame layoffs on the productive capabilities of AI and its ability to replace workers, even when job cuts may have little to do with the technology". == Usage and effects == AI washing can lead to deception of customers and misleading of investors. It is also an illegal and unethical practice that lacks transparency regarding disclosing the details of a product or a service. Companies get involved in such a practice often in response to competition who might have used AI in their offerings. It might also be used as a ploy to secure funding and investment, assuming that it will attract them towards it. AI washing has been compared to dot-com bubble, when businesses appended "dot-com" to the end of the business name to boost their valuation. In September 2023, Coca-Cola released a new product called Coca-Cola Y3000, and the company stated that the Y3000 flavor had been "co-created with human and artificial intelligence". The company was accused of AI washing due to no proof of AI involvement in the creation of the product, and critics believed that AI was used as a way to grab consumer attention more than it was used in the actual product creation. In 2026, mass tech layoffs were attributed to AI washing from AI innovation instead of balance sheet restructuring. == Mitigation == Companies are expected to be transparent and clearer in communicating the usage of AI in their products or services. Consumers can mitigate the same by requesting for hard evidence from the companies regarding the usage of AI tools. Customers should evaluate the product or service as a whole rather than being swayed by the usage of AI. Informed decision making and purchasing can keep them from falling for such marketing gimmicks. The United States Securities and Exchange Commission (SEC) imposes penalties for companies indulging in such practices. In March 2024, the SEC imposed the first civil penalties on two companies for misleading statements about their use of AI, and in July 2024, it charged a corporate executive from a supposed AI hiring startup with fraud for the usage of buzzwords related to AI.

    Read more →
  • Information Coding Classification

    Information Coding Classification

    The Information Coding Classification (ICC) is a classification system covering almost all extant 6500 knowledge fields (knowledge domains). Its conceptualization goes beyond the scope of the well known library classification systems, such as Dewey Decimal Classification (DDC), Universal Decimal Classification (UDC), and Library of Congress Classification (LCC), by extending also to knowledge systems that so far have not afforded to classify literature. ICC actually presents a flexible universal ordering system for both literature and other kinds of information, set out as knowledge fields. From a methodological point of view, ICC differs from the above-mentioned systems along the following three lines: Its main classes are not based on disciplines but on nine live stages of development, so-called ontical levels. It breaks them roughly down into hierarchical steps by further nine categories which makes decimal number coding possible. The contents of a knowledge field is earmarked via a digital position scheme, which makes the first hierarchical step refer to the nine ontical levels (object areas as subject categories), and the second hierarchical step refer to nine functionally ordered form categories. Respective knowledge fields permit to step down by the same principle to a third and forth level, and even further to a fifth and sixth level. Finally, knowledge field subdivisions will have to conform to said digital position scheme. Hence, for a given knowledge field identical codes will mark identical categories under respective numbers of the coding system. This mnemotechnical aspect of the system helps memorizing and straightaway retrieving the whereabouts of respective interdisciplinary and transdisciplinary fields. The first two hierarchical levels may be regarded as a top- or upper ontology for ontologies and other applications. The terms of the first three hierarchical levels were set out in German and English in Wissensorganisation. Entwicklung, Aufgabe, Anwendung, Zukunft, on pp. 82 to 100. It was published in 2014 and available so far only in German. In the meantime, also the French terms of the knowledge fields have been collected. Competence for maintenance and further development rests with the German Chapter of the International Society for Knowledge Organization (ISKO) e.V. == Historical development == At the end of 1970, Prof. Alwin Diemer, Univ.of Düsseldorf proposed to Ingetraut Dahlberg to undertake a philosophical dissertation on The universal classification system of knowledge, its ontological, epistemological, and information theoretical foundations. Diemer had in mind an innovating ontological approach for such a system based on the whole spectrum of kinds of being and complying with epistemological requirements. The third requirement had already been taken up somehow in the Indian Colon Classification, yet it still called for explanations and additions. In 1974, the dissertation was published in German entitled Grundlagen universaler Wissensordnung. It started with conceptual clarifications, and why and how the term „universal“ was linked to knowledge, including knowledge fields, such as commodity science, artefacts, statistics, patents, standardization, communication, utility services et al. In chapter 3, six universal classification systems (DDC, UDC, LCC, BC, CC and BBK) were presented, analyzed and compared. While preparing the dissertation, Dahlberg started with elaborating the new universal system by first gleaning a lot of extant designations of knowledge fields from whatever available reference works. This was funded by the German Documentation Society (DGD) (1971-2) under the title of Order system of knowledge fields. In addition, the syllabuses of German universities and polytechniques were explored for relevant terms and documented (1975). Thereafter, it seemed necessary to add definitions from special dictionaries and encyclopediae; it soon appeared that the 12.500 terms included numerous synonyms, so that the whole collection boiled down to about 6.500 concept designations (Project Logstruktur, supported by the German Science Foundation (DFG) 1976-78). The outcome of this work was the formulation of 30 theses which ended up in 12 principles for the new system, published 40 years later under. These principles refer not only to theoretical foundations but also to structure and other organizational aspects of the whole array of knowledge fields. In 1974, the digital position scheme for field subdivision had already been developed to allow for classifying classification literature in the bibliographical section of the first issue of the Journal International Classification. In 1977, the entire ICC was ready for presentation at a seminar in Bangalore, India. A publication of the first three hierarchical levels appeared however only in 1982. It was applied to the bibliography of classification systems and thesauri in vol.1 of the International Classification and Indexing Bibliography; it has been updated. == Governing principles == These were published in full length in the book Wissensorganisation. Entwicklung, Aufgabe, Anwendung, Zukunft and the article Information Coding Classification. Geschichtliches, Prinzipien, Inhaltliches, hence it suffices to just mention their topics with some necessary additions. Principle 1: Concept theoretical approaches. Concepts are the contents of ICC, they are understood as being units of knowledge. The „birth“ of a concept. Where do the characteristics, the knowledge elements come from? How do conceptual relations arise? Principle 2: The four kinds of concept relations and their applications. Principle 3: Decimal numbers form the ICC codes as its universal language. Principle 4: The nine ontical levels of ICC. They were grouped under three captions: Prolegomena (1-3), life sciences (4-6) and human output (7-9): Structure and form Matter and energy Cosmos and earth Biosphere Anthroposphere Sociosphere Material products (economics and technology) Intellectual products (knowledge and information) Spiritual products (products of mind and culture) Principle 5: Knowledge fields are structured by categories, based on the Aristotelian form-categories, under a digital position scheme, a kind of scaling rule for subdividing a given field as follows: General area: problems, theories, principles (axiom and structure) Object area: objects, kinds, parts, properties of objects Activity area: methods, processes, activities Field properties or first characterization Persons or secondary characterization Societies or tertiary characterization Influences from outside Applications of the field to other fields Field information and synthesizing tasks The digital position scheme, called Systematifier, has also been used for structuring the entire system via the categories figuring on the upper zero level. An example of its application is the structure of the classification system for knowledge organization literature Gliederung der Klassifikationsliteratur. (A simplified version with an additional introduction is given in, p. 71) Principle 6: The ontical levels outlined under principle 4 conform to the „integrative level theory“ which means that every level is integrated in the following one. In addition, each knowledge area presumes the following one. Principle 7: The combination potential of knowledge fields (interdisciplinarity and transdisciplinarity)is determined by the digital position scheme. (Examples are given in, p. 103-4) Principle 8: The categories of the zero-level are general concepts, their possible subdivisions could once be used for classificatory statements. (These subdivisions still need elaboration) Principle 9 and 10: These relate to the combination potential of classificatory statements with space and time concepts. (Still to be elaborated) Principle 11: The system's mnemotechnical aspect relies on the fixed system position codes and on the 3x3 form- and subject-categories. Principle 12: The combination potential of system position 1, 8 and 9 make ICC to a self-networking system which complies with the present scientific development. == In matrix form == The first two levels of ICC can be represented by following matrix. The first hierarchical level of the 9 subject categories results from the first vertical array under codes 1-9. The second hierarchical level of subject categories is structured by the 9 functionally ordered form categories, listed in the first horizontal line under codes 01-09. Some exceptions are mentioned in principle 7. == Research == === Exploration of automatic classification === For classifying web documents as conceived by Jens Hartmann, University of Karlsruhe, Prof.Walter Koch, University of Graz, has explored in his Institute for Applied Information Technology Research Society (AIT) the application of ICC to automatically classifying metadata of some 350.000 documents. This was facilitated by data generated within the framework of an E

    Read more →
  • Partial-order planning

    Partial-order planning

    Partial-order planning is an approach to automated planning that maintains a partial ordering between actions and only commits ordering between actions when forced to, that is, ordering of actions is partial. Also this planning doesn't specify which action will come out first when two actions are processed. By contrast, total-order planning maintains a total ordering between all actions at every stage of planning. Given a problem in which some sequence of actions is needed to achieve a goal, a partial-order plan specifies all actions that must be taken, but specifies an ordering between actions only where needed. Consider the following situation: a person must travel from the start to the end of an obstacle course. The course is composed of a bridge, a see-saw, and a swing-set. The bridge must be traversed before the see-saw and swing-set are reachable. Once reachable, the see-saw and swing-set can be traversed in any order, after which the end is reachable. In a partial-order plan, ordering between these obstacles is specified only when needed. The bridge must be traversed first. Second, either the see-saw or swing-set can be traversed. Third, the remaining obstacle can be traversed. Then the end can be traversed. Partial-order planning relies upon the principle of least commitment for its efficiency. == Partial-order plan == A partial-order plan or partial plan is a plan which specifies all actions that must be taken, but only specifies the order between actions when needed. It is the result of a partial-order planner. A partial-order plan consists of four components: A set of actions (also known as operators). A partial order for the actions. It specifies the conditions about the order of some actions. A set of causal links. It specifies which actions meet which preconditions of other actions. Alternatively, a set of bindings between the variables in actions. A set of open preconditions. It specifies which preconditions are not fulfilled by any action in the partial-order plan. To keep the possible orders of the actions as open as possible, the set of order conditions and causal links must be as small as possible. A plan is a solution if the set of open preconditions is empty. A linearization of a partial order plan is a total order plan derived from the particular partial order plan; in other words, both order plans consist of the same actions, with the order in the linearization being a linear extension of the partial order in the original partial order plan. === Example === For example, a plan for baking a cake might start: go to the store get eggs; get flour; get milk pay for all goods go to the kitchen This is a partial plan because the order for finding eggs, flour and milk is not specified, the agent can wander around the store reactively accumulating all the items on its shopping list until the list is complete. == Partial-order planner == A partial-order planner is an algorithm or program which will construct a partial-order plan and search for a solution. The input is the problem description, consisting of descriptions of the initial state, the goal and possible actions. The problem can be interpreted as a search problem where the set of possible partial-order plans is the search space. The initial state would be the plan with the open preconditions equal to the goal conditions. The final state would be any plan with no open preconditions, i.e. a solution. The initial state is the starting conditions, and can be thought of as the preconditions to the task at hand. For a task of setting the table, the initial state could be a clear table. The goal is simply the final action that needs to be accomplished, for example setting the table. The operators of the algorithm are the actions by which the task is accomplished. For this example there may be two operators: lay (tablecloth), and place (glasses, plates, and silverware). === Plan space === The plan space of the algorithm is constrained between its start and finish. The algorithm starts, producing the initial state and finishes when all parts of the goal have been achieved. In the setting a table example, two types of actions exist that must be addressed: the put-out and lay operators. Four unsolved operators also exist: Action 1, lay-tablecloth, Action 2, Put-out (plates), Action 3, Put-out (silverware), and Action 4, Put-out (glasses). However, a threat arises if Action 2, 3, or 4 comes before Action 1. This threat is that the precondition to the start of the algorithm will be unsatisfied as the table will no longer be clear. Thus, constraints exist that must be added to the algorithm that force Actions 2, 3, and 4 to come after Action 1. Once these steps are completed, the algorithm will finish and the goal will have been completed. === Threats === As seen in the algorithm presented above, partial-order planning can encounter certain threats, meaning orderings that threaten to break connected actions, thus potentially destroying the entire plan. There are two ways to resolve threats: Promotion Demotion Promotion orders the possible threat after the connection it threatens. Demotion orders the possible threat before the connection it threatens. Partial-order planning algorithms are known for being both sound and complete, with sound being defined as the total ordering of the algorithm, and complete being defined as the capability to find a solution, given that a solution does in fact exist. == Partial-order vs. total-order planning == Partial-order planning is the opposite of total-order planning, in which actions are sequenced all at once and for the entirety of the task at hand. The question arises when one has two competing processes, which one is better? Anthony Barret and Daniel Weld have argued in their 1993 book, that partial-order planning is superior to total-order planning, as it is faster and thus more efficient. They tested this theory using Korf’s taxonomy of subgoal collections, in which they found that partial-order planning performs better because it produces more trivial serializability than total-order planning. Trivial serializability facilitates a planner’s ability to perform quickly when dealing with goals that contain subgoals. Planners perform more slowly when dealing with laboriously serializable or nonserializable subgoals. The determining factor that makes a subgoal trivially or laboriously serializable is the search space of different plans. They found that partial-order planning is more adept at finding the quickest path, and is therefore the more efficient of these two main types of planning. == The Sussman anomaly == Partial-order plans are known to easily and optimally solve the Sussman anomaly. Using this type of incremental planning system solves this problem quickly and efficiently. This was a result of partial-order planning that solidified its place as an efficient planning system. == Disadvantages to partial-order planning == One drawback of this type of planning system is that it requires a lot more computational power for each node. This higher per-node cost occurs because the algorithm for partial-order planning is more complex than others. This has important artificial intelligence implications. When coding a robot to do a certain task, the creator needs to take into account how much energy is needed. Though a partial-order plan may be quicker it may not be worth the energy cost for the robot. The creator must be aware of and weigh these two options to build an efficient robot.

    Read more →
  • ProVisual Engine

    ProVisual Engine

    The ProVisual Engine is an AI-powered imaging system developed by Samsung Electronics for mobile devices. It was introduced in 2024 with the Galaxy S24 series as a component of Samsung's Galaxy AI ecosystem, providing advanced image processing to enhance image quality in photography and videography. == Overview == The ProVisual Engine processes images using adaptive scene recognition, real-time optimization, and advanced image processing. It adjusts color accuracy, dynamic range, and noise levels, providing both automated and manual controls to accommodate various user preferences. == Features == The ProVisual Engine encompasses several features. === Quad Tele System === The Quad Tele System features 2x, 3x, 5x, and 10x optical zoom, supported by digital processing to enhance zoom clarity and detail. It incorporates Image Signal Processing (ISP) to refine detail retention, reduce noise, and enhance image clarity at different zoom levels while minimizing distortion. === Nightography === Nightography utilizes noise reduction techniques and advanced sensor technology to enhance low-light photography. By adjusting exposure and minimizing motion blur, the system helps produce more precise and more detailed images in dark environments for both photos and videos. === Generative Edit === Generative Edit allows for object removal, background expansion, and intelligent resizing. It reconstructs missing areas by filling backgrounds and completing cut-off objects, adjusting composition while preserving image integrity and refinement. === Expert RAW === Expert RAW allows users to capture RAW images directly from the camera app for advanced shooting and editing. It includes HDR (High Dynamic Range) support to enhance detail and dynamic range. The ProVisual Engine utilizes multi-frame processing to generate RAW images with increased clarity and depth for post-processing. === Enhance-X and Camera Shift === Enhance-X is an AI-based image processing tool that applies upscaling, noise reduction, and sharpening. Its Camera Shift feature adjusts the perceived camera height by modifying framing and proportions. A recent update extended support to human and pet images. == Compatible devices == As of 2025, the ProVisual Engine is available on the following devices: === Galaxy S series === Galaxy S26 Series (Galaxy S26, S26+. S26 Ultra) Galaxy S25 Series (Galaxy S25, S25+, S25 Edge, S25 Ultra, S25 FE) Galaxy S24 Series (Galaxy S24, S24+, S24 Ultra) === Galaxy Z series === Galaxy Z Fold 7 Galaxy Z Flip 7, Z Flip 7 FE Galaxy Z Fold 6 Galaxy Z Flip 6 === Galaxy Tab S series === Galaxy Tab S10 series (Tab S10+, Tab S10 Ultra) Galaxy Tab S9 series (Tab S9, Tab S9+, Tab S9 Ultra) === Galaxy Z series === Galaxy Z Fold 7, Z Flip 7, Z Flip 7 FE Galaxy Z Fold 6, Z Flip 6 === Galaxy Tab S series === Galaxy Tab S10 series (Tab S10+, Tab S10 Ultra) Galaxy Tab S9 series (Tab S9, Tab S9+, Tab S9 Ultra) Note: Quad Tele System refers to the multi-telephoto setup (2×, 3×, 5×, 10×) available only on the Ultra models (S24 Ultra and S25 Ultra). Note: On Galaxy Tab models, only Enhance-X editing features are supported; the Expert RAW camera app is not available.

    Read more →
  • TAChart

    TAChart

    TAChart is a component for the Lazarus IDE that provides charting services. Similar to Tchart and Teechart for Delphi it supports a collection of different chart types including bar charts, pie charts, line charts and point series. Apart from a screen canvas, output is possible in form of SVG, OpenGL, printer, WMF, and other formats. TAChart is bundled with the Lazarus Component Library. Although not intended to be a TChart clone, why its usage differs in certain points, its basic functionality is very similar and some source code written for TeeChart may be reused. == History == The first version of TAChart was developed by Philippe Martinole for the TeleAuto project, a program for automation of astronomic observations. Later functionality was introduced by Luis Rodrigues while porting the Epanet application from Delphi to Lazarus. In the ensuing years the code has extensively rewritten, expanded and is now maintained by Alexander Klenin. == Data sources == TAChart is able to use input from various sources. Examples include lists of real values, user defined buffers in the computer's memory, vectors of random values, fields in databases, calculated values provided by pre-defined functions and results of embedded code written in Pascal Script

    Read more →
  • Google Nest

    Google Nest

    Google Nest, formerly branded Google Home, is a line of smart home products including smart speakers, smart displays, streaming devices, thermostats, smoke detectors, routers and security systems including smart doorbells, cameras and smart locks. The Nest brand name was originally owned by Nest Labs, co-founded by former Apple engineers Tony Fadell and Matt Rogers in 2010. Its flagship product, which was the company's first offering, is the Nest Learning Thermostat, introduced in 2011. The product is programmable, self-learning, sensor-driven, and Wi-Fi-enabled: features that are often found in other Nest products. It was followed by the Nest Protect smoke and carbon monoxide detectors in October 2013. After its acquisition of Dropcam in 2014, the company introduced its Nest Cam branding of security cameras beginning in June 2015. The company quickly expanded to more than 130 employees by the end of 2012. Google acquired Nest Labs for US$3.2 billion in January 2014, when the company employed 280. As of late 2015, Nest employs more than 1,100 and added a primary engineering center in Seattle. After Google reorganized itself under the holding company Alphabet Inc., Nest operated independently of Google from 2015 to 2018. However, in 2018, Nest was merged into Google's home-devices unit led by Rishi Chandra, effectively ceasing to exist as a separate business. In July 2018, it was announced that all Google Home electronics products will henceforth be marketed under the brand Google Nest. == History == === Nest Labs before acquisition by Google === Nest Labs was founded in 2010 by former Apple engineers Tony Fadell and Matt Rogers. The idea came when Fadell was building a vacation home and found all of the available thermostats on the market to be inadequate, motivated to bring something better on the market. Early investors in Nest Labs included Shasta Ventures and Kleiner Perkins. === Acquisition by Google of Nest Labs, Dropcam, and Revolv === On January 13, 2014, Google announced plans to acquire Nest Labs for $3.2 billion in cash. Google completed the acquisition the next day, on January 14, 2014. The company would operate independently from Google's other businesses. In June 2014, it was announced that Nest would buy camera startup Dropcam for $555 million. With the purchase, Dropcam became integrated with other Nest products; if the Protect alarm is triggered, the Dropcam can automatically start recording, and the Thermostat can use Dropcam to sense for motion. In September 2014, the Nest Thermostat and Nest Protect (a smoke alarm) became available in Belgium, France, Ireland, and the Netherlands. Initially, they were sold in approximately 400 stores across Europe, with another 150 stores to be added by the end of the year. In June 2015, the new Nest Cam, replacing the Dropcam, was announced, together with the second generation of the Nest Protect; there were internal reports that sales of the rebranded camera fell. On October 24, 2014, Nest both acquired the hub service Revolv, and discontinued its product line, gaining the expertise of Revolv's staff. === Nest as a subsidiary of Alphabet Inc. === In August 2015, Google announced that it would restructure its operations under a new parent company, Alphabet Inc., with Nest being separated from Google as a subsidiary of the new holding company. In January 2016, some Nest thermostats stopped working, a fault attributed to a software update from two weeks earlier. There were no lawsuits, individual or class-action, due to an arbitration clause in the contract. All Revolv smart hubs, costing several hundred dollars, were deliberately remotely bricked on May 15, 2016; notice was posted on the company's website in February. The story became news on April 4. The "lifetime subscription" to Revolv's online service, which had been sold with the hub, was defined by Nest to be the lifetime of the device, which ended May 15. Nest's decision to brick the hubs, and its "acerbic" corporate culture, faced substantial criticism from within Google/Alphabet and in press coverage. Many of Nest's staffers came from Dropcam and Revolv, and by November 2015, about 70 of about 1000 staffers had quit, causing management concern. Some countermeasures had been taken in takeover deals, to financially discourage senior people from leaving before set dates. Of the ~100 Dropcam staffers, about half had left by March 2016, when former Dropcam CEO Greg Duffy (who left 8 months after the takeover) wrote a post openly regretting selling his company to Nest. He stated that about 500 people had left (of a 1200-person staff). On June 6, 2016, Tony Fadell, the Nest CEO, announced in a blog post that he was leaving the company he founded with Matt Rogers and stepping into an "advisory" role. At this point the Nest acquisition was described by some press as a "disaster" for Google. As of mid-June 2016, Nest's problems were considered symptomatic of the limited market for home automation. According to Frank Gillet of Forrester Research, only 6% of American households possessed internet-connected devices such as appliances, home-monitoring systems, speakers, or lighting. He also predicted this percentage would grow to only 15% by 2021. Furthermore, 72% of respondents in a 2016 British survey conducted by Pricewaterhouse Coopers did not foresee adopting smart-home technology over the next two to five years. === Nest as a part of Google hardware division === On February 7, 2018, it was announced by hardware head Rick Osterloh that Nest had been merged into Google's hardware division, directly alongside units such as Google Home and Chromecast. It would retain its separate Palo Alto headquarters, but Nest CEO Marwan Fawaz would now report to Osterloh, and there were plans for tighter integration with Google platforms and software such as Google Assistant in future products. Shortly after the announcement, co-founder and chief product officer Matt Rogers announced his plans to leave the company. On July 18, 2018, Nest CEO Marwan Fawaz stepped down. Nest was merged with Google's home devices team, led by Rishi Chandra. During the Google I/O keynote on May 7, 2019, it was announced that Google Nest will now serve as the blanket branding for all of Google's home products. The Google Home Hub was retroactively renamed Google Nest Hub, while a new and larger version of the product is now available called the Nest Hub Max with both a larger screen and an amplified speaker, for a greater low-end audio experience. Also, product lines such as Chromecast, Google Home, and Google Wifi will now be marketed under the Google Nest brand. In addition, Nest began to deprecate its own internal platforms, announcing the discontinuation of the existing "Works with Nest" program in favor of Google Assistant going forward, and pushing users to migrate themselves from Nest's account system to Google accounts. Google published Nest-specific privacy information outlining a commitment to transparency, not selling personal information, and giving users control of their data. In February 2019, a privacy incident affecting the Google Nest Guard system came about. The controversy stemmed from the fact that Nest Guard, a security device that was part of the Nest Secure system, contained a hidden microphone that was not disclosed in any product specifications. It resulted in a public relations failure. === Partnership with ADT === In August 2020 Google announced intent to invest $450 million in ADT Inc. for a 6.6% stake in the company. The companies intend to integrate Nest devices with ADT's security monitoring services and eventually make them the “cornerstone of ADT’s smart home offering”, according to Nest. Upon the announcement, the shares of ADT doubled in value and hit all-time high of $17.21. === Use with Amazon Alexa === As of mid-2022, Google's newer Nest cameras will now work with Amazon Alexa devices such as Amazon Echo Show, Fire TV, and Fire Tablet to view captured security camera footage. === End of support policies === On October 25, 2025, software support was ended for the 1st and 2nd generation Nest Learning Thermostats. In addition, most of the smart functionality including the Home Away features, notifications, and carbon monoxide sensor became inoperative as they were dependent on connection with Google servers. By mid-November, third-party software solutions became available to restore functionality to affected thermostats. == Products == === Nest Learning Thermostat === The Nest Learning Thermostat is an electronic, programmable, and self-learning Wi-Fi-enabled thermostat that optimizes heating and cooling of homes and businesses to conserve energy. It is based on a machine-learning algorithm: for the first weeks users have to regulate the thermostat in order to provide the reference data set. Nest can then learn people's schedules, at which temperature they are used to and when. Using built-in sensors and phones' locations it can

    Read more →
  • REEM

    REEM

    REEM is a prototype humanoid robot built by PAL Robotics in Spain. It is a 1.70 m high humanoid robot with 22 degrees of freedom, with a mobile base with wheels, allowing it to move at 4 km/hour. The upper part of the robot consists of a torso with a touch screen, two motorized arms, which give it a high degree of expression, and a head, which is also motorized. REEM-A and REEM-B are the first and second prototypes of humanoid robots created by PAL Robotics. REEM-B can recognize, grasp and lift objects and walk by itself, avoiding obstacles through simultaneous localization and mapping. The robot accepts voice commands and can recognize faces. == Specifications ==

    Read more →
  • Eline Van der Velden

    Eline Van der Velden

    Eline van der Velden is a Dutch comedian, writer, actress and producer based in London, England. She is best known for her work creating Tilly Norwood, an AI-generated "actress". == Early life == Van der Velden was born on the Dutch island of Curaçao, Netherlands Antilles to Dutch businessman Steven van der Velden and physiotherapist Quirine van der Velden. She moved to the United Kingdom at age 14 to study drama and musical theatre at Tring Park School for the Performing Arts. She graduated with an MSc in physics from Imperial College London in 2008. == Career == She was nominated by the International Academy of Digital Arts and Sciences for the Lovie Awards and won Best Online Comedy in 2013 for two of her submitted entries. She has created multiple online shows such as Sketch My Life with London Hughes and Emily Hartridge and Match.com Parody. She became managing director of Makers Channel (makerschannel.co.uk), the first curated video platform in Europe in 2015. Makers Channel has been recently acquired by a Belgian media company De Persgroep, due to its success in the Netherlands. In 2016, she appeared in adverts for the Dutch shampoo brand Andrelon. Miss Holland, a comedy character created by Van der Velden, made headlines in 2016 as she asked the British public to teach her the national anthem. As an actress, she has starred in Dutch TV series De Troon, Beatrix and the Golden Calf-winning series Overspel. In Belgium, she appeared opposite Jamie Dornan in Flying Home. Van der Velden starred in the BBC Three series Putting It Out There, in which she challenges social perceptions of body hair, heels, spit, personal space, and authority figures. In 2018, she starred in the BBC One comedy series Soft Border Patrol and the BBC Three comedy series Miss Holland. In 2025, Particle6 Group, which Van der Velden founded in 2016, introduced Tilly Norwood, an AI-generated "actress" at the Zurich Film Festival. The announcement was met with outrage and a condemnation by the American actors' union SAG-AFTRA. == Awards and recognition == Miss Holland won the Best Online Comedy at the 2013 Lovie Awards, judged by Stephen Fry. The Match.com Parody video won Best Online Comedy People's Lovie Award, the people's vote. Miss Holland and Match.com Parody Date 1 were also featured in the 2013 Google Lovie Letters.

    Read more →
  • Kernel Assisted Superuser

    Kernel Assisted Superuser

    Kernel Assisted Superuser (short: KernelSU) is an alternative method for obtaining root privileges on Android devices. KernelSU implementations are developed as free and open-source software under the terms of the GPLv3 license. == Technical differences == KernelSU differs from other methods in that root access is implemented directly in the kernel. Compared to other root methods that run in userspace, such as Magisk, this has the advantage that commands with su can be executed like normal commands, but still have root privileges. This is not prevented by SELinux or detected by the PlayIntegrity API check, so applications that use it will continue to function. Unlike Magisk, /system/bin/su is a virtual file implemented by hooking system calls with kprobes, and overlayfs is used for systemless modifications to the system partition instead of magic mount. == History == The planning of KernelSU was started in 2018 by developer Jason Donenfeld, also known as XDA user zx2c4. The lack of a root manager app and the difficulty of creating boot images meant that KernelSU was not suitable for productive use, and for a long time this method remained theoretical and could only be used by developers. In 2021, Google launched Generic Kernel Images (GKI for short), which facilitates the creation of a set of device-independent rooted boot images. In response, the developer known on XDA as weishu, who had also worked on projects such as VirtualXposed, adapted KernelSU for GKI-compatible kernels. The adaptation, which was released in January 2023, ensures that any device booting with Linux kernel version 5.10 or higher should be compatible. In addition, the developer also offers a special manager app that, in addition to managing root privileges, also offers overlay-based modding similar to Magisk modules. As of November 2025, 310 developers have contributed to the development of the KernelSU implementation. == Distribution == KernelSU can be installed on all devices that use GKI, as well as on individually supported devices without GKI. Some custom ROMs already have it integrated by default, including ROMs such as CrDroid, Bliss OS, and Evolution X.

    Read more →
  • Planner (programming language)

    Planner (programming language)

    Planner (often seen in publications as "PLANNER" although it is not an acronym) is a programming language designed by Carl Hewitt at MIT, and first published in 1969. First, subsets such as Micro-Planner and Pico-Planner were implemented, and then essentially the whole language was implemented as Popler by Julian Davies at the University of Edinburgh in the POP-2 programming language. Derivations such as QA4, Conniver, QLISP and Ether (see scientific community metaphor) were important tools in artificial intelligence research in the 1970s, which influenced commercial developments such as Knowledge Engineering Environment (KEE) and Automated Reasoning Tool (ART). == Procedural approach versus logical approach == The two major paradigms for constructing semantic software systems were procedural and logical. The procedural paradigm was epitomized by Lisp which featured recursive procedures that operated on list structures. The logical paradigm was epitomized by uniform proof procedure resolution-based derivation (proof) finders. According to the logical paradigm it was “cheating” to incorporate procedural knowledge. == Procedural embedding of knowledge == Planner was invented for the purposes of the procedural embedding of knowledge and was a rejection of the resolution uniform proof procedure paradigm, which Converted everything to clausal form. Converting all information to clausal form is problematic because it hides the underlying structure of the information. Then used resolution to attempt to obtain a proof by contradiction by adding the clausal form of the negation of the theorem to be proved. Using only resolution as the rule of inference is problematical because it hides the underlying structure of proofs. Also, using proof by contradiction is problematical because the axiomatizations of all practical domains of knowledge are inconsistent in practice. Planner was a kind of hybrid between the procedural and logical paradigms because it combined programmability with logical reasoning. Planner featured a procedural interpretation of logical sentences where an implication of the form (P implies Q) can be procedurally interpreted in the following ways using pattern-directed invocation: Forward chaining (antecedently): If assert P, assert Q If assert not Q, assert not P Backward chaining (consequently) If goal Q, goal P If goal not P, goal not Q In this respect, the development of Planner was influenced by natural deductive logical systems (especially the one by Frederic Fitch [1952]). == Micro-planner implementation == A subset called Micro-Planner was implemented by Gerry Sussman, Eugene Charniak and Terry Winograd and was used in Winograd's natural-language understanding program SHRDLU, Eugene Charniak's story understanding work, Thorne McCarty's work on legal reasoning, and some other projects. This generated a great deal of excitement in the field of AI. It also generated controversy because it proposed an alternative to the logic approach that had been one of the mainstay paradigms for AI. At SRI International, Jeff Rulifson, Jan Derksen, and Richard Waldinger developed QA4 which built on the constructs in Planner and introduced a context mechanism to provide modularity for expressions in the database. Earl Sacerdoti and Rene Reboh developed QLISP, an extension of QA4 embedded in INTERLISP, providing Planner-like reasoning embedded in a procedural language and developed in its rich programming environment. QLISP was used by Richard Waldinger and Karl Levitt for program verification, by Earl Sacerdoti for planning and execution monitoring, by Jean-Claude Latombe for computer-aided design, by Nachum Dershowitz for program synthesis, by Richard Fikes for deductive retrieval, and by Steven Coles for an early expert system that guided use of an econometric model. Computers were expensive. They had only a single slow processor and their memories were very small by comparison with today. So Planner adopted some efficiency expedients including the following: Backtracking was adopted to economize on the use of time and storage by working on and storing only one possibility at a time in exploring alternatives. A unique name assumption was adopted to save space and time by assuming that different names referred to different objects. For example, names like Peking (previous PRC capital name) and Beijing (current PRC capital transliteration) were assumed to refer to different objects. A closed-world assumption could be implemented by conditionally testing whether an attempt to prove a goal exhaustively failed. Later this capability was given the misleading name "negation as failure" because for a goal G it was possible to say: "if attempting to achieve G exhaustively fails then assert (Not G)." == The genesis of Prolog == Gerry Sussman, Eugene Charniak, Seymour Papert and Terry Winograd visited the University of Edinburgh in 1971, spreading the news about Micro-Planner and SHRDLU and casting doubt on the resolution uniform proof procedure approach that had been the mainstay of the Edinburgh Logicists. At the University of Edinburgh, Bruce Anderson implemented a subset of Micro-Planner called PICO-PLANNER, and Julian Davies (1973) implemented essentially all of Planner. According to Donald MacKenzie, Pat Hayes recalled the impact of a visit from Papert to Edinburgh, which had become the "heart of artificial intelligence's Logicland," according to Papert's MIT colleague, Carl Hewitt. Papert eloquently voiced his critique of the resolution approach dominant at Edinburgh "…and at least one person upped sticks and left because of Papert." The above developments generated tension among the Logicists at Edinburgh. These tensions were exacerbated when the UK Science Research Council commissioned Sir James Lighthill to write a report on the AI research situation in the UK. The resulting report [Lighthill 1973; McCarthy 1973] was highly critical although SHRDLU was favorably mentioned. Pat Hayes visited Stanford where he learned about Planner. When he returned to Edinburgh, he tried to influence his friend Bob Kowalski to take Planner into account in their joint work on automated theorem proving. "Resolution theorem-proving was demoted from a hot topic to a relic of the misguided past. Bob Kowalski doggedly stuck to his faith in the potential of resolution theorem proving. He carefully studied Planner.”. Kowalski [1988] states "I can recall trying to convince Hewitt that Planner was similar to SL-resolution." But Planner was invented for the purposes of the procedural embedding of knowledge and was a rejection of the resolution uniform proof procedure paradigm. Colmerauer and Roussel recalled their reaction to learning about Planner in the following way: "While attending an IJCAI convention in September ‘71 with Jean Trudel, we met Robert Kowalski again and heard a lecture by Terry Winograd on natural language processing. The fact that he did not use a unified formalism left us puzzled. It was at this time that we learned of the existence of Carl Hewitt’s programming language, Planner. The lack of formalization of this language, our ignorance of Lisp and, above all, the fact that we were absolutely devoted to logic meant that this work had little influence on our later research." In the fall of 1972, Philippe Roussel implemented a language called Prolog (an abbreviation for PROgrammation en LOGique – French for "programming in logic"). Prolog programs are generically of the following form (which is a special case of the backward-chaining in Planner): When goal Q, goal P1 and ... and goal Pn Prolog duplicated the following aspects of Micro-Planner: Pattern directed invocation of procedures from goals (i.e. backward chaining) An indexed data base of pattern-directed procedures and ground sentences. Giving up on the completeness paradigm that had characterized previous work on theorem proving and replacing it with the programming language procedural embedding of knowledge paradigm. Prolog also duplicated the following capabilities of Micro-Planner which were pragmatically useful for the computers of the era because they saved space and time: Backtracking control structure Unique Name Assumption by which different names are assumed to refer to distinct entities, e.g., Peking and Beijing are assumed to be different. Reification of Failure. The way that Planner established that something was provable was to successfully attempt it as a goal and the way that it establish that something was unprovable was to attempt it as a goal and explicitly fail. Of course the other possibility is that the attempt to prove the goal runs forever and never returns any value. Planner also had a (not expression) construct which succeeded if expression failed, which gave rise to the “Negation as Failure” terminology in Planner. Use of the Unique Name Assumption and Negation as Failure became more questionable when attention turned to Open Systems. The following capabiliti

    Read more →
  • Historical Thesaurus of English

    Historical Thesaurus of English

    The Historical Thesaurus of English (HTE) is the largest thesaurus in the world. It is called a historical thesaurus as it arranges the whole vocabulary of English, from the earliest written records in Old English to the present, according to the first documented occurrence of a word in the entire history of the English language. The HTE was conceived and begun in 1965 by the English Language & Linguistics department of the University of Glasgow, who have ever since continued to compile the thesaurus. From the 1980s onwards the project was moved from paper-based records to a computer database. Today, the HTE is available to the public online, but a print version, the Historical Thesaurus of the Oxford English Dictionary (HTOED), was published in 2009. == Main project: The Historical Thesaurus of English (HTE) == The Historical Thesaurus of English (HTE) is a complete database of all the words in the Oxford English Dictionary and other dictionaries (including Old English), arranged by semantic field and date. In this way, the HTE arranges the whole vocabulary of English, from the earliest written records in Old English to the present, alongside dates of use. It is the first historical thesaurus to be compiled for any of the world's languages and contains 800,000 meanings for 600,000 words, within 230,000 categories. As the HTE website states, "in addition to providing hitherto unavailable information for linguistic and textual scholars, the Historical Thesaurus online is a rich resource for students of social and cultural history, showing how concepts developed through the words that refer to them." === Structure === The work is divided into three main sections: the External World, the Mind, and Society. These are broken down into successively narrower domains. The text eventually discriminates more than 236,000 categories. The second order categories are: === History === The ambitious project was announced at a 1965 meeting of the Philological Society by its originator, Michael Samuels. Work on the HTE started in the same year. In 2017, the University of Glasgow was awarded the Queen's Anniversary Prize for Higher Education for the HTE. A second edition of the online HTE is currently in progress and is expected to be launched in late 2020. Work is released on the freely-available HTE website when available. == Print edition: Historical Thesaurus of the Oxford English Dictionary (HTOED) == On 22 October 2009, after 44 years of work, version 1.0 of the HTE was published by Oxford University Press in a two-volume slipcased set as the Historical Thesaurus of the Oxford English Dictionary (HTOED). The two hardcover volumes together total nearly 4,500 pages.

    Read more →