AI Data Usage

AI Data Usage — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Automation integrator

    Automation integrator

    An automation integrator is a systems integrator company or individual who makes different versions of automation hardware and software work together, generally combining several subsystems to work together as one large system. The title may refer to those who only integrate hardware, although these will often work with software integrators. Software created by automation integrators allows devices to communicate with each other, as well as collecting and reporting data. The magazine Control Engineering publishes an annual “Automation Integrator Guide” which lists over 2,000 automation integrators. They also give an annual system integrator of the year award to three automation integration firms. The Control System Integrators Association (CSIA) maintains a buyers' guide of over 1200 member and nonmember systems integrators known as the Industrial Automation Exchange, or CSIA Exchange for short. == Certification == The Control System Integrators Association (CSIA) certifies automation integrators, through an audit based on 79 critical criteria from the best practices manual. Companies must be associate members of the CSIA to be eligible for certification. Integrators can also receive certification through a program launched in 2012 by the Robotics Industries Association. == Industries == Automation Integrators work in a wide variety of industries which use robotics and automation. Some of the most common include:

    Read more →
  • Muller automaton

    Muller automaton

    In automata theory, a Muller automaton is a type of an ω-automaton. The acceptance condition separates a Muller automaton from other ω-automata. The Muller automaton is defined using a Muller acceptance condition, i.e. the set of all states visited infinitely often must be an element of the acceptance set. Both deterministic and non-deterministic Muller automata recognize the ω-regular languages. They are named after David E. Muller, an American mathematician and computer scientist, who invented them in 1963. == Formal definition == Formally, a deterministic Muller-automaton is a tuple A = (Q,Σ,δ,q0,F) that consists of the following information: Q is a finite set. The elements of Q are called the states of A. Σ is a finite set called the alphabet of A. δ: Q × Σ → Q is a function, called the transition function of A. q0 is an element of Q, called the initial state. F is a set of sets of states. Formally, F ⊆ P(Q) where P(Q) is powerset of Q. F defines the acceptance condition. A accepts exactly those runs in which the set of infinitely often occurring states is an element of F In a non-deterministic Muller automaton, the transition function δ is replaced with a transition relation Δ that returns a set of states and the initial state q0 is replaced by a set of initial states Q0. Generally, 'Muller automaton' refers to a non-deterministic Muller automaton. For more comprehensive formalisation look at ω-automaton. == Equivalence with other ω-automata == The Muller automata are equally expressive as parity automata, Rabin automata, Streett automata, and non-deterministic Büchi automata, to mention some, and strictly more expressive than the deterministic Büchi automata. The equivalence of the above automata and non-deterministic Muller automata can be shown very easily as the accepting conditions of these automata can be emulated using the acceptance condition of Muller automata and vice versa. McNaughton's theorem demonstrates the equivalence of non-deterministic Büchi automaton and deterministic Muller automaton. Thus, deterministic and non-deterministic Muller automata are equivalent in terms of the languages they can accept. == Transformation to non-deterministic Muller automata == Following is a list of automata constructions that each transforms a type of ω-automata to a non-deterministic Muller automaton. From Büchi automata If B is the set of final states in a Büchi automaton with the set of states Q, we can construct a Muller automaton with same set of states, transition function and initial state with the Muller accepting condition as F = { X | X ∈ P(Q) ∧ X ∩ B ≠ ∅}. From Rabin automata/parity automata Similarly, the Rabin conditions ( E j , F j ) {\displaystyle (E_{j},F_{j})} can be emulated by constructing the acceptance set in the Muller automaton as all sets F ⊆ Q {\displaystyle F\subseteq Q} that satisfy F ∩ E j = ∅ {\displaystyle F\cap E_{j}=\emptyset } and F ∩ F j ≠ ∅ {\displaystyle F\cap F_{j}\neq \emptyset } , for some j. Note that this covers the case of parity automata too, as the parity acceptance condition can be expressed as a Rabin acceptance condition easily. From Streett automata The Streett conditions ( E j , F j ) {\displaystyle (E_{j},F_{j})} can be emulated by constructing the acceptance set in the Muller automaton as all sets F ⊆ Q {\displaystyle F\subseteq Q} that satisfy F ∩ F j = ∅ ⟹ F ∩ E j = ∅ {\displaystyle F\cap F_{j}=\emptyset \implies F\cap E_{j}=\emptyset } , for all j. == Transformation to deterministic Muller automata == From Büchi automaton McNaughton's theorem provides a procedure to transform any non-deterministic Büchi automaton into a deterministic Muller automaton.

    Read more →
  • Jollo

    Jollo

    Jollo was an online machine translation service where users could instantly translate texts into 23 languages, request human translations from a community of volunteers around the world, and compare the correctness of several leading machine translation websites. It was discontinued in 2012. == System == Jollo was a free Web 2.0 website that attempted to improve the way in which people translate online through the use of existing machine translation websites and a community of volunteers who correct and rate translations. The system relied on a similar methodology as computer-assisted translation to ensure translation quality, and featured a public translation memory that records past translations. Jollo received some notable media attention, including in The Daily Telegraph. According to the blog KillerStartups, Jollo combined the benefits of the speed of machine translations and human reviews to ensure translation quality. According to Jeffrey Hill from The English Blog, the community features made Jollo an interesting alternative to other online translation services. == Development == The Jollo website was classified as beta. It was developed using LAMP and was praised for its colorful graphics and simple user interface. Jollo offered a simple web-based API that could be used for translations. For example, the URL: http://www.jollo.com/translate.php?st=I%20love%20you&sl=en&tl=zh was used to translate the sentence "I love you" from English into Chinese.

    Read more →
  • Top 10 AI Text-to-video Tools Compared (2026)

    Top 10 AI Text-to-video Tools Compared (2026)

    Trying to pick the best AI text-to-video tool? An AI text-to-video tool is software that uses machine learning to help you get more done — it scales effortlessly from a single task to thousands. The best picks balance beginner-friendly simplicity with the depth power users need, and they ship updates often. Whether you are a beginner or a pro, the right AI text-to-video tool slots into your workflow and pays for itself fast. This guide breaks down the top picks, their pros and cons, and who each one is best for.

    Read more →
  • Content as a service

    Content as a service

    Content as a service (CaaS) or managed content as a service (MCaaS) is a service-oriented model, where the service provider delivers the content on demand to the service consumer via web services that are licensed under subscription. The content is hosted by the service provider centrally in the cloud and offered to a number of consumers that need the content delivered into any applications or system, hence content can be demanded by the consumers as and when required. Content as a Service is a way to provide raw content (in other words, without the need for a specific human compatible representation, such as HTML) in a way that other systems can make use of it. Content as a Service is not meant for direct human consumption, but rather for other platforms to consume and make use of the content according to their particular needs. This happens usually on the cloud, with a centralized platform which can be globally accessible and provides a standard format for your content. With Content as a Service, you centralize your content into a single repository, where you can manage it, categorize it, make it available to others, search for it, or do whatever you wish with it. == Overview == The content delivered typically could be one or more of the following The technical terminology related to equipment or spares that is required to procure or design the materials The industrial terminology of the equipment or spares Technical values pertaining to various types, specifications, applications, characteristics of equipment or spares Sourcing information which will help in procurement or supply-chain management of equipment or spares Descriptive specifications of equipment or spares based on the product reference number or identifier UNSPSC codes or industry practiced classifications ISO, IEC compliant terminology Ontology or Technical Dictionary of products & services Predefined content for specific business needs The term "Content as a service" (CaaS) is considered to be part of the nomenclature of cloud computing service models & Service-oriented architecture along with Software as a service (SaaS), Infrastructure as a service (IaaS), and Platform as a service (PaaS).

    Read more →
  • MRF optimization via dual decomposition

    MRF optimization via dual decomposition

    In dual decomposition a problem is broken into smaller subproblems and a solution to the relaxed problem is found. This method can be employed for MRF optimization. Dual decomposition is applied to markov logic programs as an inference technique. == Background == Discrete MRF Optimization (inference) is very important in Machine Learning and Computer vision, which is realized on CUDA graphical processing units. Consider a graph G = ( V , E ) {\displaystyle G=(V,E)} with nodes V {\displaystyle V} and Edges E {\displaystyle E} . The goal is to assign a label l p {\displaystyle l_{p}} to each p ∈ V {\displaystyle p\in V} so that the MRF Energy is minimized: (1) min Σ p ∈ V θ p ( l p ) + Σ p q ∈ ε θ p q ( l p ) ( l q ) {\displaystyle \min \Sigma _{p\in V}\theta _{p}(l_{p})+\Sigma _{pq\in \varepsilon }\theta _{pq}(l_{p})(l_{q})} Major MRF Optimization methods are based on Graph cuts or Message passing. They rely on the following integer linear programming formulation (2) min x E ( θ , x ) = θ . x = ∑ p ∈ V θ p . x p + ∑ p q ∈ ε θ p q . x p q {\displaystyle \min _{x}E(\theta ,x)=\theta .x=\sum _{p\in V}\theta _{p}.x_{p}+\sum _{pq\in \varepsilon }\theta _{pq}.x_{pq}} In many applications, the MRF-variables are {0,1}-variables that satisfy: x p ( l ) = 1 {\displaystyle x_{p}(l)=1} ⇔ {\displaystyle \Leftrightarrow } label l {\displaystyle l} is assigned to p {\displaystyle p} , while x p q ( l , l ′ ) = 1 {\displaystyle x_{pq}(l,l^{\prime })=1} , labels l , l ′ {\displaystyle l,l^{\prime }} are assigned to p , q {\displaystyle p,q} . == Dual Decomposition == The main idea behind decomposition is surprisingly simple: decompose your original complex problem into smaller solvable subproblems, extract a solution by cleverly combining the solutions from these subproblems. A sample problem to decompose: min x Σ i f i ( x ) {\displaystyle \min _{x}\Sigma _{i}f^{i}(x)} where x ∈ C {\displaystyle x\in C} In this problem, separately minimizing every single f i ( x ) {\displaystyle f^{i}(x)} over x {\displaystyle x} is easy; but minimizing their sum is a complex problem. So the problem needs to get decomposed using auxiliary variables { x i } {\displaystyle \{x^{i}\}} and the problem will be as follows: min { x i } , x Σ i f i ( x i ) {\displaystyle \min _{\{x^{i}\},x}\Sigma _{i}f^{i}(x^{i})} where x i ∈ C , x i = x {\displaystyle x^{i}\in C,x^{i}=x} Now we can relax the constraints by multipliers { λ i } {\displaystyle \{\lambda ^{i}\}} which gives us the following Lagrangian dual function: g ( { λ i } ) = min { x i ∈ C } , x Σ i f i ( x i ) + Σ i λ i . ( x i − x ) = min { x i ∈ C } , x Σ i [ f i ( x i ) + λ i . x i ] − ( Σ i λ i ) x {\displaystyle g(\{\lambda ^{i}\})=\min _{\{x^{i}\in C\},x}\Sigma _{i}f^{i}(x^{i})+\Sigma _{i}\lambda ^{i}.(x^{i}-x)=\min _{\{x^{i}\in C\},x}\Sigma _{i}[f^{i}(x^{i})+\lambda ^{i}.x^{i}]-(\Sigma _{i}\lambda ^{i})x} Now we eliminate x {\displaystyle x} from the dual function by minimizing over x {\displaystyle x} and dual function becomes: g ( { λ i } ) = min { x i ∈ C } Σ i [ f i ( x i ) + λ i . x i ] {\displaystyle g(\{\lambda ^{i}\})=\min _{\{x^{i}\in C\}}\Sigma _{i}[f^{i}(x^{i})+\lambda ^{i}.x^{i}]} We can set up a Lagrangian dual problem: (3) max { λ i } ∈ Λ g ( λ i ) = Σ i g i ( x i ) , {\displaystyle \max _{\{\lambda ^{i}\}\in \Lambda }g({\lambda ^{i}})=\Sigma _{i}g^{i}(x^{i}),} The Master problem (4) g i ( x i ) = m i n x i f i ( x i ) + λ i . x i {\displaystyle g^{i}(x^{i})=min_{x^{i}}f^{i}(x^{i})+\lambda ^{i}.x^{i}} where x i ∈ C {\displaystyle x^{i}\in C} The Slave problems == MRF optimization via Dual Decomposition == The original MRF optimization problem is NP-hard and we need to transform it into something easier. τ {\displaystyle \tau } is a set of sub-trees of graph G {\displaystyle G} where its trees cover all nodes and edges of the main graph. And MRFs defined for every tree T {\displaystyle T} in τ {\displaystyle \tau } will be smaller. The vector of MRF parameters is θ T {\displaystyle \theta ^{T}} and the vector of MRF variables is x T {\displaystyle x^{T}} , these two are just smaller in comparison with original MRF vectors θ , x {\displaystyle \theta ,x} . For all vectors θ T {\displaystyle \theta ^{T}} we'll have the following: (5) ∑ T ∈ τ ( p ) θ p T = θ p , ∑ T ∈ τ ( p q ) θ p q T = θ p q . {\displaystyle \sum _{T\in \tau (p)}\theta _{p}^{T}=\theta _{p},\sum _{T\in \tau (pq)}\theta _{pq}^{T}=\theta _{pq}.} Where τ ( p ) {\displaystyle \tau (p)} and τ ( p q ) {\displaystyle \tau (pq)} denote all trees of τ {\displaystyle \tau } than contain node p {\displaystyle p} and edge p q {\displaystyle pq} respectively. We simply can write: (6) E ( θ , x ) = ∑ T ∈ τ E ( θ T , x T ) {\displaystyle E(\theta ,x)=\sum _{T\in \tau }E(\theta ^{T},x^{T})} And our constraints will be: (7) x T ∈ χ T , x T = x | T , ∀ T ∈ τ {\displaystyle x^{T}\in \chi ^{T},x^{T}=x_{|T},\forall T\in \tau } Our original MRF problem will become: (8) min { x T } , x Σ T ∈ τ E ( θ T , x T ) {\displaystyle \min _{\{x^{T}\},x}\Sigma _{T\in \tau }E(\theta ^{T},x^{T})} where x T ∈ χ T , ∀ T ∈ τ {\displaystyle x^{T}\in \chi ^{T},\forall T\in \tau } and x T ∈ x | T , ∀ T ∈ τ {\displaystyle x^{T}\in x_{|T},\forall T\in \tau } And we'll have the dual problem we were seeking: (9) max { λ T } ∈ Λ g ( { λ T } ) = ∑ T ∈ τ g T ( λ T ) , {\displaystyle \max _{\{\lambda ^{T}\}\in \Lambda }g(\{\lambda ^{T}\})=\sum _{T\in \tau }g^{T}(\lambda ^{T}),} The Master problem where each function g T ( . ) {\displaystyle g^{T}(.)} is defined as: (10) g T ( λ T ) = min x T E ( θ T + λ T , x T ) {\displaystyle g^{T}(\lambda ^{T})=\min _{x^{T}}E(\theta ^{T}+\lambda ^{T},x^{T})} where x T ∈ χ T {\displaystyle x^{T}\in \chi ^{T}} The Slave problems == Theoretical Properties == Theorem 1. Lagrangian relaxation (9) is equivalent to the LP relaxation of (2). min { x T } , x { E ( x , θ ) | x p T = s p , x T ∈ CONVEXHULL ( χ T ) } {\displaystyle \min _{\{x^{T}\},x}\{E(x,\theta )|x_{p}^{T}=s_{p},x^{T}\in {\text{CONVEXHULL}}(\chi ^{T})\}} Theorem 2. If the sequence of multipliers { α t } {\displaystyle \{\alpha _{t}\}} satisfies α t ≥ 0 , lim t → ∞ α t = 0 , ∑ t = 0 ∞ α t = ∞ {\displaystyle \alpha _{t}\geq 0,\lim _{t\to \infty }\alpha _{t}=0,\sum _{t=0}^{\infty }\alpha _{t}=\infty } then the algorithm converges to the optimal solution of (9). Theorem 3. The distance of the current solution { θ T } {\displaystyle \{\theta ^{T}\}} to the optimal solution { θ ¯ T } {\displaystyle \{{\bar {\theta }}^{T}\}} , which decreases at every iteration. Theorem 4. Any solution obtained by the method satisfies the WTA (weak tree agreement) condition. Theorem 5. For binary MRFs with sub-modular energies, the method computes a globally optimal solution.

    Read more →
  • METAL MT

    METAL MT

    A machine translation system developed at the University of Texas and at Siemens which ran on Lisp Machines. == Background == Originally titled the Linguistics Research System (LRS), it was later renamed METAL (Mechanical Translation and Analysis of Languages). It started life as a German-English system funded by the USAF. == 1980 == A copy of the Weidner Multi-Lingual Word Processing software was requested by the German Government for the Siemens Corporation of Germany in September 1980 and was nicknamed the Siemens-Weidner Engine (originally English-German). This revolutionary multilingual word processing engine became foundational in the development of the Metal MT project, according to John White of the Siemens Corporation. After the Metal MT, development Rights to the Siemens-Weidner Engine were sold to a Belgium company, Lernout & Hauspie. The Siemens copy of the Weidner Multilingual Word Processing software has since been acquired through the purchase of assets of Lernout & Hauspie by Bowne Global Solutions, Inc., which was later acquired by Lionbridge Technologies, Inc. and is demonstrated in their itranslator software.

    Read more →
  • SYSTRAN

    SYSTRAN

    SYSTRAN, founded by Dr. Peter Toma in 1968, is one of the oldest machine translation companies. SYSTRAN has done extensive work for the United States Department of Defense and the European Commission. SYSTRAN provided the technology for Yahoo! Babel Fish until May 30, 2012, among others. It was used by Google's language tools until 2007. SYSTRAN is used by the Dashboard Translation widget in macOS. Commercial versions of SYSTRAN can run on Microsoft Windows (including Windows Mobile), Linux, and Solaris. Historically, SYSTRAN systems used rule-based machine translation (RbMT) technology. With the release of SYSTRAN Server 7 in 2010, SYSTRAN implemented a hybrid rule-based/statistical machine translation (SMT) technology which was the first of its kind in the marketplace. As of 2008, the company had 59 employees of whom 26 are computational experts and 15 computational linguists. The number of employees decreased from 70 in 2006 to 59 in 2008. In January 2024, ChapsVision acquired Systran. == History == With its origin in the Georgetown machine translation effort, SYSTRAN was one of the few machine translation systems to survive the major decrease of funding after the ALPAC Report of the mid-1960s. The company was established in La Jolla in California to work on translation of Russian to English text for the United States Air Force during the Cold War. Large numbers of Russian scientific and technical documents were translated using SYSTRAN under the auspices of the USAF Foreign Technology Division (later the National Air and Space Intelligence Center) at Wright-Patterson Air Force Base, Ohio. The quality of the translations, although only approximate, was usually adequate for understanding content. The company headquarters is in Paris, while its U.S. headquarters is in San Diego, CA. During the dot-com boom, the international language industry started a new era, and SYSTRAN entered into agreements with a number of translation integrators, the most successful of these being WorldLingo. In 2016, the Harvard NLP group and SYSTRAN founded OpenNMT, an open source ecosystem for neural machine translation and neural sequence learning. This has enabled machine translation software with learning capabilities, dramatically increasing MT translation quality. The project has since been used in several research and industry applications, and its open source ecosystem is currently maintained by SYSTRAN and Ubiqus. == Business situation == Most of SYSTRAN's revenue comes from a few customers. 57.1% comes from the 10 main customers and the three largest customers account for 10.9%, 8.9%, and 8.9% of its revenues, respectively. Revenues had been declining in the early 2000s: 10.2 million euros in 2004, 10.1 million euros in 2005, 9.3 million euros in 2006, 8.8 million euros in 2007, and 7.6 million euros in 2008, before seeing a rebound in 2009 with 8.6 million euros. == Languages == The following is a list of the languages in which SYSTRAN translate from and to English: Russian into English in 1968 and English into Russian in 1973 for the Apollo–Soyuz project.

    Read more →
  • Round-trip engineering

    Round-trip engineering

    Round-trip engineering (RTE) in the context of model-driven architecture is a functionality of software development tools that synchronizes two or more related software artifacts, such as, source code, models, configuration files, documentation, etc. between each other. The need for round-trip engineering arises when the same information is present in multiple artifacts and when an inconsistency may arise in case some artifacts are updated. For example, some piece of information was added to/changed in only one artifact (source code) and, as a result, it became missing in/inconsistent with the other artifacts (in models). == Overview == Round-trip engineering is closely related to traditional software engineering disciplines: forward engineering (creating software from specifications), reverse engineering (creating specifications from existing software), and reengineering (understanding existing software and modifying it). Round-trip engineering is often wrongly defined as simply supporting both forward and reverse engineering. In fact, the key characteristic of round-trip engineering that distinguishes it from forward and reverse engineering is the ability to synchronize existing artifacts that evolved concurrently by incrementally updating each artifact to reflect changes made to the other artifacts. Furthermore, forward engineering can be seen as a special instance of RTE in which only the specification is present and reverse engineering can be seen as a special instance of RTE in which only the software is present. Many reengineering activities can also be understood as RTE when the software is updated to reflect changes made to the previously reverse engineered specification. === Types === Various books describe two types of RTE: partial or uni-directional RTE: changes made to a higher level representation of a code and model are reflected in lower level, but not otherwise; the latter might be allowed, but with limitations that may not affect higher-level abstractions full or bi-directional RTE: regardless of changes, both higher and lower-level code and model representations are synchronized if any of them altered === Auto synchronization === Another characteristic of round-trip engineering is automatic update of the artifacts in response to automatically detected inconsistencies. In that sense, it is different from forward- and reverse engineering which can be both manual (traditionally) and automatic (via automatic generation or analysis of the artifacts). The automatic update can be either instantaneous or on-demand. In instantaneous RTE, all related artifacts are immediately updated after each change made to one of them. In on-demand RTE, authors of the artifacts may concurrently update the artifacts (even in a distributed setting) and at some point choose to execute matching to identify inconsistencies and choose to propagate some of them and reconcile potential conflicts. === Iterative approach === Round trip engineering may involve an iterative development process. After you have synchronized your model with revised code, you are still free to choose the best way to work – make further modifications to the code or make changes to your model. You can synchronize in either direction at any time and you can repeat the cycle as many times as necessary. == Software == Many commercial tools and research prototypes support this form of RTE; a 2007 book lists Rational Rose, Together, ESS-Model, BlueJ, and Fujaba among those capable, with Fujaba said to be capable to also identify design patterns. == Limitations == A 2005 book on Visual Studio notes for instance that a common problem in RTE tools is that the model reversed is not the same as the original one, unless the tools are aided by leaving laborious annotations in the source code. The behavioral parts of UML impose even more challenges for RTE. Usually, UML class diagrams are supported to some degree; however, certain UML concepts, such as associations and containment do not have straightforward representations in many programming languages which limits the usability of the created code and accuracy of code analysis/reverse engineering (e.g., containment is hard to recognize in the code). A more tractable form of round-trip engineering is implemented in the context of framework application programming interfaces (APIs), whereby a model describing the usage of a framework API by an application is synchronized with that application's code. In this setting, the API prescribes all correct ways the framework can be used in applications, which allows precise and complete detection of API usages in the code as well as creation of useful code implementing correct API usages. Two prominent RTE implementations in this category are framework-specific modeling languages and Spring Roo (Java). Round-trip engineering is critical for maintaining consistency among multiple models and between the models and the code in Object Management Group's (OMG) Model-driven architecture. OMG proposed the QVT (query/view/transformation) standard to handle model transformations required for MDA. To date, a few implementations of the standard have been created. (Need to present practical experiences with MDA in relation to RTE). == Controversies == === Code generation controversy === Code generation (forward-engineering) from models means that the user abstractly models solutions, which are connoted by some model data, and then an automated tool derives from the models parts or all of the source code for the software system. In some tools, the user can provide a skeleton of the program source code, in the form of a source code template where predefined tokens are then replaced with program source code parts during the code generation process. UML (if used for MDA) diagrams specification was criticized for lack the detail which is needed to contain the same information as is covered with the program source. Some developers even claim that "the Code is the design". == Disadvantages == There is a serious risk that the generated code will rapidly differ from the model or that the reverse-engineered model will lose its reflection on the code or a mix of these two problems as result of cycled reengineering efforts. Regarding behavioral/dynamic part of UML for features like statechart diagram there is no equivalents in programming languages. Their translation during code-generation will result in common programming statement (.e.g if,switch,enum) being either missing or misinterpreted. If edited and imported back may result in different or incomplete model. The same goes for code snippets used for code generation stage for the pattern-implementation and user-specific logic: intermixed they may not be easily reverse-engineered back. There is also general lack of advanced tooling for modelling that are comparable to that of modern IDEs (for testing, debugging, navigation, etc.) for general-purpose programming languages and domain-specific languages. == Examples in software engineering == Perhaps the most common form of round-trip engineering is synchronization between UML (Unified Modeling Language) models and the corresponding source code and entity–relationship diagrams in data modelling and database modelling. Round-trip engineering based on Unified Modeling Language (UML) needs three basic tools for software development: Source Code Editor; UML Editor for the Attributes and Methods; Visualisation of UML structure

    Read more →
  • Cobham's theorem

    Cobham's theorem

    Cobham's theorem is a theorem in combinatorics on words that has important connections with number theory, notably transcendental numbers, and automata theory. Informally, the theorem gives the condition for the members of a set S of natural numbers written in bases b1 and base b2 to be recognised by finite automata. Specifically, consider bases b1 and b2 such that they are not powers of the same integer. Cobham's theorem states that S written in bases b1 and b2 is recognised by finite automata if and only if S differs by a finite set from a finite union of arithmetic progressions. The theorem was proved by Alan Cobham in 1969 and has since given rise to many extensions and generalisations. == Definitions == Let n > 0 {\displaystyle n>0} be an integer. The representation of a natural number n {\textstyle n} in base b {\textstyle b} is the sequence of digits n 0 n 1 ⋯ n h {\displaystyle n_{0}n_{1}\cdots n_{h}} such that n = n 0 + n 1 b + ⋯ + n h b h {\displaystyle n=n_{0}+n_{1}b+\cdots +n_{h}b^{h}} where 0 ≤ n 0 , n 1 , … , n h < b {\displaystyle 0\leq n_{0},n_{1},\ldots ,n_{h} 0 {\displaystyle n_{h}>0} . The word n 0 n 1 ⋯ n h {\displaystyle n_{0}n_{1}\cdots n_{h}} is often denoted ⟨ n ⟩ b {\displaystyle \langle n\rangle _{b}} , or more simply, n b {\displaystyle n_{b}} . A set of natural numbers S is recognisable in base b {\textstyle b} or more simply b {\textstyle b} -recognisable or b {\textstyle b} -automatic if the set { n b ∣ n ∈ S } {\displaystyle \{n_{b}\mid n\in S\}} of the representations of its elements in base b {\displaystyle b} is a language recognisable by a finite automaton on the alphabet { 0 , 1 , … , b − 1 } {\displaystyle \{0,1,\ldots ,b-1\}} . Two positive integers k {\displaystyle k} and ℓ {\displaystyle \ell } are multiplicatively independent if there are no non-negative integers p {\displaystyle p} and q {\displaystyle q} such that k p = ℓ q {\displaystyle k^{p}=\ell ^{q}} . For example, 2 and 3 are multiplicatively independent, but 8 and 16 are not since 8 4 = 16 3 {\displaystyle 8^{4}=16^{3}} . Two integers are multiplicatively dependent if and only if they are powers of a same third integer. == Problem statements == === Original problem statement === More equivalent statements of the theorem have been given. The original version by Cobham is the following: Another way to state the theorem is by using automatic sequences. Cobham himself calls them "uniform tag sequences." The following form is found in Allouche and Shallit's book:We can show that the characteristic sequence of a set of natural numbers S recognisable by finite automata in base k is a k-automatic sequence and that conversely, for all k-automatic sequences u {\displaystyle u} and all integers 0 ≤ i < k {\displaystyle 0\leq i 1 {\displaystyle \alpha >1} is the dominant eigenvalue of the matrix of morphism f {\displaystyle f} , namely, the matrix M ( f ) = ( m x , y ) x ∈ B , y ∈ A {\displaystyle M(f)=(m_{x,y})_{x\in B,y\in A}} , where m x , y {\displaystyle m_{x,y}} is the number of occurrences of the letter x {\displaystyle x} in the word f ( y ) {\displaystyle f(y)} . A set S of natural numbers is α {\displaystyle \alpha } -recognisable if its characteristic sequence s {\displaystyle s} is α {\displaystyle \alpha } -substitutive. A last definition: a Perron number is an algebraic number z > 1 {\displaystyle z>1} such that all its conjugates belong to the disc { z ′ ∈ C , | z ′ | < z } {\displaystyle \{z'\in \mathbb {C} ,|z'| Read more →

  • RE/flex

    RE/flex

    RE/flex (or RE-flex) is a computer program that generates lexical analyzers also known as "scanners" or "lexers". Lexical analysis is the process of converting an input character stream into a sequence of tokens, a task known as lexical tokenization. == Overview == Most notable lexer generators used in practice, including Flex, Ragel, and RE/flex are based on deterministic finite automata (DFA) for efficient pattern matching, despite the theoretical possibility of an exponential increase in DFA size. In practice, lexer specifications typically use deterministic regular expressions, which makes substantial DFA blowup uncommon. RE/flex translates a POSIX-compliant lexer specification directly into a DFA using standard construction techniques described in the compiler literature, extending the techniques to handle lazy matching and indentation detection applicable to specific programming language tokenization tasks. Like Flex, RE/flex generates efficient DFA-based scanners, but it shares no code with Flex and is implemented as a complete rewrite in C++. In addition to its native DFA-based engine, RE/flex can also be combined with external regular expression libraries that are not DFA-based, such as the C++ standard library regex engine, PCRE, and boost.regex. This is achieved by systematically rewriting the set of lexer patterns into a form suitable for tokenization with the selected external library. RE/flex performs this rewriting automatically using translation rules that are specific to each supported regular expression library. A lexer specification defines a set of regular expression patterns { p i : i = 1 , … , n } {\displaystyle \{p_{i}:i=1,\ldots ,n\}} corresponding to different token classes, such as identifiers, keywords, literals, and operators. These patterns can be combined into a single regular expression R = ( p 1 ) ∣ ( p 2 ) ∣ … ∣ ( p n ) {\displaystyle R=(p_{1})\mid (p_{2})\mid \ldots \mid (p_{n})} . When applied to an input string, a regular expression engine repeatedly matches R {\displaystyle R} , returning the index i of the matched subpattern ( p i ) {\displaystyle (p_{i})} , thereby decomposing the input into a sequence of tokens. Example use cases include: Compiler construction, such as the use of RE/flex in the Tiger Compiler project within the EPITA compiler construction curriculum Compiler-compiler systems, including its use in Ox, an attribute-grammar–based compiling system Pattern matching and search tools, such as grep-like utilities, including the use of RE/flex in ugrep

    Read more →
  • Bernard Vauquois

    Bernard Vauquois

    Bernard Vauquois ((1929-06-14)June 14, 1929 — (1985-09-30)September 30, 1985) was a French mathematician and computer scientist. He was a pioneer of computer science and machine translation (MT) in France. An astronomer-turned-computer scientist, he is known for his work on the programming language ALGOL 60, and later for extensive work on the theoretical and practical problems of MT, of which the eponymous Vauquois triangle is one of the most widely-known contributions. He was a professor at what would become the Grenoble Alpes University. == Biography == Bernard Vauquois was initially a researcher at French National Centre for Scientific Research (CNRS) from 1952 to 1958 at the Astrophysics Institute of the Meudon Observatory, after completing studies in mathematics, physics, and astronomy. Since 1957, his research program has also focused on methods applied to physics from the perspective of electronic computers, and he has taught programming to physicists. This double interest in astrophysics and electronic computers is reflected in the subject of his thesis and that of the complementary thesis in physical sciences that he defended in 1958. In 1960, at 31 years old, he was appointed professor of computer science at Grenoble University, where, alongside professors Jean Kuntzmann and Noël Gastinel, he began work in the field. At that time, he was also contributing to the definition of the language ALGOL 60. Also in 1960, he founded the Centre d'Étude pour la Traduction Automatique (CETA), later renamed as Groupe d'Étude pour la Traduction Automatique (GETA) and currently known as GETALP, a team at the Laboratoire d'informatique de Grenoble, and soon showed his gift for rapid understanding, synthesis, and innovation, and his taste for personal communication across linguistic borders and barriers. After visiting a number of centers, mainly in the United States, where machine translation research was conducted, he analyzed the shortcomings of the "first-generation" approach and evaluated the potential of a new generation based on grammar and formal language theory, and proposed a new approach based on a representational "pivot" and the use of (declarative) rule systems that transform a sequential sentence from one level of representation to another. He led the GETA in constructing the first large second-generation system, applied to Russian–French, from 1962 to 1971. At the end of this period, the accumulated experience led him to correct some defects of the "pure" declarative and interlingual approach, and to use heuristic programming methods, implemented with procedural grammars written in LSPLs ("specialized languages for linguistic programming", langages spécialisés pour la programmation linguistique) that were developed under his direction, and integrated into the ARIANE-78 machine translation system. In 1974, when he cofounded the Leibniz laboratory, he proposed "multilevel structure descriptors" (descripteurs de structures multiniveaux) for units larger than sentence translation. This idea, premonitory of later theoretical work (Ray Jackendoff, Gerald Gazdar) is still the cornerstone of all machine translation software built by GETA and the French national TA project. Bernard Vauquois' last contribution was "static grammar" (grammaire statique) in 1982–83, during the ESOPE project, the preparatory phase of the French national MT project. He was a key figure in the field of computational linguistics in France. At CNRS, he was a member of section 22 of the National Committee in 1963: "General Linguistics, Modern Languages and Comparative Literature", and then, in 1969, of section 28: "General Linguistics, Foreign Languages and Literature". Since 1965, he has been vice-president of the Association for Natural Language Processing (ATALA). He was its president from 1966 to 1971. He was also one of the founders, in 1965, of the ICCL (International Committee on Computational Linguistics), which organizes COLING conferences. He was its president from 1969 to 1984. From France, he often collaborated with other countries (notably Canada, the United States, the USSR, Czechoslovakia, Japan, China, Brazil, Malaysia, and Thailand), working on the specification and implementation of grammars and dictionaries. He began cooperating with Malaysia, for example, in 1979, which led to the creation of the Automatic Terjemaan Project, with a first prototype of an English-Malay MT system demonstrated in 1980. == Vauquois triangle == The Vauquois triangle is a conceptual model and diagram illustrating possible approaches to the design of machine translation systems, first proposed in 1968. == Legacy == Bernard Vauquois is regarded as a pioneer of machine translation in France. He played a key role in developing the first large-scale second-generation machine translation system, and his work influenced the field of machine translation for many years. He supervised some twenty doctoral theses, most of them concerning formal aspects of natural and artificial languages, with an emphasis on machine translation. The Center for Studies on Automatic Translation, which Vauquois founded in 1960, later became the Group for the Study of Machine Translation and Automated Processing of Languages and Speech (GETALP). It is still a research institution in natural language processing. Vauquois was a prolific writer and speaker, disseminating knowledge about machine translation and related topics. His papers and presentations were instrumental in establishing the field of machine translation in France and beyond. == Publications == Vauquois, Bernard (1973). Traduction automatique (in French). Paris: Gauthier-Villars. Vauquois, Bernard (1967). Introduction à la traduction automatique (in French). Paris: Gauthier-Villars.

    Read more →
  • Face Swap Live

    Face Swap Live

    Face Swap Live is a mobile app created by Laan Labs that enables users to swap faces with another person in real-time using the device's camera. It was released on December 14, 2015. In addition to swapping faces with another person, the app enables users to create videos using a set of bundled live filters. The app is available on iOS and Android devices. Face Swap Live was named Apple's #2 best-selling paid app in 2016.

    Read more →
  • Lillian Lee (computer scientist)

    Lillian Lee (computer scientist)

    Lillian Lee is a computer scientist whose research involves natural language processing, sentiment analysis, and computational social science. She is a professor of computer science and information science at Cornell University, and co-editor-in-chief of the journal Transactions of the Association for Computational Linguistics. == Education == Lee graduated from Cornell University in 1993 with an undergraduate degree in math and science. She completed her Ph.D. at Harvard University in 1997. Her dissertation, Similarity-Based Approaches to Natural Language Processing, was supervised by Stuart M. Shieber. == Career == Lee has been a member of the Cornell faculty since 1997. == Recognition == Lee has been a fellow of the Association for the Advancement of Artificial Intelligence since 2013, and of the Association for Computational Linguistics since 2017. Lee was elected as an ACM Fellow in 2018 for "contributions to natural language processing, sentiment analysis, and computational social science".

    Read more →
  • The Best Free AI Coding Assistant for Beginners

    The Best Free AI Coding Assistant for Beginners

    Trying to pick the best AI coding assistant? An AI coding assistant is software that uses machine learning to help you get more done — it scales effortlessly from a single task to thousands. The best picks balance beginner-friendly simplicity with the depth power users need, and they ship updates often. Whether you are a beginner or a pro, the right AI coding assistant slots into your workflow and pays for itself fast. Read on for hands-on impressions, pricing tiers, and the standout features that matter.

    Read more →