AI Assistant Editor

AI Assistant Editor — independent reviews, comparisons, pricing and step-by-step guides on Aizhi.

  • Domain adaptation

    Domain adaptation

    Domain adaptation is a field associated with machine learning and transfer learning. It addresses the challenge of training a model on one data distribution (the source domain) and applying it to a related but different data distribution (the target domain). A common example is spam filtering, where a model trained on emails from one user (source domain) is adapted to handle emails for another user with significantly different patterns (target domain). Domain adaptation techniques can also leverage unrelated data sources to improve learning. When multiple source distributions are involved, the problem extends to multi-source domain adaptation. Domain adaptation is a specific type of transfer learning. According to the taxonomy laid out by Pan and Yang (2010), it falls into the category of transductive transfer learning. In this setting, the source and target tasks are the same (e.g., both are object recognition), but the domains differ (different marginal distributions). This distinguishes it from inductive transfer learning (where labeled data is available for the target task) and unsupervised transfer learning (where labels are unavailable in both domains). == Classification of domain adaptation problems == Domain adaptation setups are classified in two different ways: according to the distribution shift between the domains, and according to the available data from the target domain. === Distribution shifts === Common distribution shifts are classified as follows: Covariate Shift occurs when the input distributions of the source and destination change, but the relationship between inputs and labels remains unchanged. The above-mentioned spam filtering example typically falls in this category. Namely, the distributions (patterns) of emails may differ between the domains, but emails labeled as spam in the one domain should similarly be labeled in another. Prior Shift (Label Shift) occurs when the label distribution differs between the source and target datasets, while the conditional distribution of features given labels remains the same. An example is a classifier of hair color in images from Italy (source domain) and Norway (target domain). The proportions of hair colors (labels) differ, but images within classes like blond and black-haired populations remain consistent across domains. A classifier for the Norway population can exploit this prior knowledge of class proportions to improve its estimates. Concept Shift (Conditional Shift) refers to changes in the relationship between features and labels, even if the input distribution remains the same. For instance, in medical diagnosis, the same symptoms (inputs) may indicate entirely different diseases (labels) in different populations (domains). === Data available during training === Domain adaptation problems typically assume that some data from the target domain is available during training. Problems can be classified according to the type of this available data: Unsupervised: Unlabeled data from the target domain is available, but no labeled data. In the above-mentioned example of spam filtering, this corresponds to the case where emails from the target domain (user) are available, but they are not labeled as spam. Domain adaptation methods can benefit from such unlabeled data, by comparing its distribution (patterns) with the labeled source domain data. Semi-supervised: Most data that is available from the target domain is unlabelled, but some labeled data is also available. In the above-mentioned case of spam filter design, this corresponds to the case that the target user has labeled some emails as being spam or not. Supervised: All data that is available from the target domain is labeled. In this case, domain adaptation reduces to refinement of the source domain predictor. In the above-mentioned example classification of hair-color from images, this could correspond to the refinement of a network already trained on a large dataset of labeled images from Italy, using newly available labeled images from Norway. == Formalization == Let X {\displaystyle X} be the input space (or description space) and let Y {\displaystyle Y} be the output space (or label space). The objective of a machine learning algorithm is to learn a mathematical model (a hypothesis) h : X → Y {\displaystyle h:X\to Y} able to attach a label from Y {\displaystyle Y} to an example from X {\displaystyle X} . This model is learned from a learning sample S = { ( x i , y i ) ∈ ( X × Y ) } i = 1 m {\displaystyle S=\{(x_{i},y_{i})\in (X\times Y)\}_{i=1}^{m}} . Usually in supervised learning (without domain adaptation), we suppose that the examples ( x i , y i ) ∈ S {\displaystyle (x_{i},y_{i})\in S} are drawn i.i.d. from a distribution D S {\displaystyle D_{S}} of support X × Y {\displaystyle X\times Y} (unknown and fixed). The objective is then to learn h {\displaystyle h} (from S {\displaystyle S} ) such that it commits the least error possible for labelling new examples coming from the distribution D S {\displaystyle D_{S}} . The main difference between supervised learning and domain adaptation is that in the latter situation we study two different (but related) distributions D S {\displaystyle D_{S}} and D T {\displaystyle D_{T}} on X × Y {\displaystyle X\times Y} . The domain adaptation task then consists of the transfer of knowledge from the source domain D S {\displaystyle D_{S}} to the target one D T {\displaystyle D_{T}} . The goal is then to learn h {\displaystyle h} (from labeled or unlabelled samples coming from the two domains) such that it commits as little error as possible on the target domain D T {\displaystyle D_{T}} . The major issue is the following: if a model is learned from a source domain, what is its capacity to correctly label data coming from the target domain? == Four algorithmic principles == === Reweighting algorithms === The objective is to reweight the source labeled sample such that it "looks like" the target sample (in terms of the error measure considered). === Iterative algorithms === A method for adapting consists in iteratively "auto-labeling" the target examples. The principle is simple: a model h {\displaystyle h} is learned from the labeled examples; h {\displaystyle h} automatically labels some target examples; a new model is learned from the new labeled examples. Note that there exist other iterative approaches, but they usually need target labeled examples. === Search of a common representation space === The goal is to find or construct a common representation space for the two domains. The objective is to obtain a space in which the domains are close to each other while keeping good performances on the source labeling task. This can be achieved through the use of Adversarial machine learning techniques where feature representations from samples in different domains are encouraged to be indistinguishable. === Hierarchical Bayesian Model === The goal is to construct a Bayesian hierarchical model p ( n ) {\displaystyle p(n)} , which is essentially a factorization model for counts n {\displaystyle n} , to derive domain-dependent latent representations allowing both domain-specific and globally shared latent factors. == Software packages == Several compilations of domain adaptation and transfer learning algorithms have been implemented over the past decades: SKADA (Python) ADAPT (Python) TLlib (Python) Domain-Adaptation-Toolbox (MATLAB)

    Read more →
  • Quantum Artificial Intelligence Lab

    Quantum Artificial Intelligence Lab

    The Quantum Artificial Intelligence Lab (also called the Quantum AI Lab or QuAIL) is a joint initiative of NASA, Universities Space Research Association, and Google (specifically, Google Research) whose goal is to pioneer research on how quantum computing might help with machine learning and other difficult computer science problems. The lab is hosted at NASA's Ames Research Center. == History == The Quantum AI Lab was announced by Google Research in a blog post on May 16, 2013. At the time of launch, the Lab was using the most advanced commercially available quantum computer, D-Wave Two from D-Wave Systems. On October 10, 2013, Google released a short film describing the current state of the Quantum AI Lab. On October 18, 2013, Google announced that it had incorporated quantum physics into Minecraft. In January 2014, Google reported results comparing the performance of the D-Wave Two in the lab with that of classical computers. The results were ambiguous and provoked heated discussion on the Internet. On 2 September 2014, it was announced that the Google Quantum AI Lab, in partnership with UC Santa Barbara, would be launching an initiative to create quantum information processors based on superconducting electronics. On the 23rd of October 2019, the Quantum AI Lab announced in a paper that it had achieved quantum supremacy with their Sycamore processor. The claim of quantum supremacy achievement has since been debated, with a far more accurate simulation on a classical computer being possible in 2.5 days as a conservative estimate. == Present == On December 9, 2024, Google introduced the Willow processor, describing it as a "state-of-the-art quantum chip". Google claims that this new chip takes just five minutes to solve a problem that takes traditional supercomputers ten septillion years. However, experts say Willow is, for now, a largely experimental device.

    Read more →
  • Jarosław Królewski

    Jarosław Królewski

    Jarosław Królewski ([jaˈrɔswaf kruˈlɛfskʲi]; born September 26, 1986) is a Polish entrepreneur, programmer, sociologist, investor, and philanthropist from Hańczowa, Poland. He is a researcher and lecturer at the AGH University of Krakow. He was selected as a Young Global Leader by the World Economic Forum in 2025. Królewski is a cofounder and chief executive of the software development company Synerise that develops its namesake business intelligence software based on artificial intelligence and big data. He is also the president and a majority stakeholder of the Polish soccer club Wisła Kraków. == Biography == === Scientific activities === Królewski graduated from the AGH University of Kraków and the University of Banking and Management in Kraków. He completed two fields of study: a master's degree in sociology, and an engineer's degree in computer science. He co-created innovative study programs, including social informatics and electronic business, recognized as the most innovative field of study in Poland in 2012 by the Ministry of Science and Higher Education, which led to the AGH receiving a PLN 1 million award for the development of the program. Królewski is a research and teaching employee at AGH, where since 2010 he has been conducting classes and lectures on the Internet, mobile technologies, and UX/UI. He has been preparing a PhD thesis. He is the brand ambassador of the Academy. He is also a mentor of the Polish Development Fund network. In 2019, on the occasion of the AGH University's 100th anniversary, Królewski was honored the title of "AGH Graduate Junior 2018." Królewski is the co-originator of the "Data Science in Business and Administration" doctoral studies organized by the Faculty of Computer Science and Electronic Economy of the Poznań University of Economics. He is a co-author of a textbook E-marketing. Contemporary trends. Starter package (2013), and an Book on algorithmic governance Algocracy. How and why artificial intelligence changes everything (with Krzysztof Rybiński, 2023). === Business career === Throughout the 2000s, Królewski was responsible for issues of usability and user experience at the advertising agency Eskadra in Kraków. In 2012, along with programmer Miłosz Baluś and graphic designer Krzysztof Kochmański, he founded the software house Humanoit Group. The company created a project management software using machine learning and artificial intelligence. In 2013, HG Intelligence was established to create a platform for analytics and automation of business processes called "Synerise" that combined big data with artificial intelligence mechanisms. Królewski became the president of the company's management board. In 2016, the company rebranded itself after its own platform. It is one of the fastest growing enterprises in Poland – in 2019 it was valued at USD 85 million (PLN 323.5 million), and its value is still growing, in 2022 it announced an investment of USD 23 million. Królewski is a supporter of releasing some software in open-source form, an example of which is the open library Cleora.ai. Królewski has been described "one of the most promising young Polish businessmen in the technology industry." According to Forbes, he is a "visionary computer scientist who in many respects resembles the young Bill Gates." Królewski considers himself a “technological determinist and optimist.” He never wants to be a millionaire or billionaire, he spends 80 percent of his private income on education, sports and charities. === Sports === In his youth (2002–2006) he was a football player of the (then 4th-league) club Glinik Gorlice, and represented it at the then-highest level of junior competitions in Poland. He played there with Rafał Wisłocki, later president of Wisła Kraków and vice-president of Bruk-Bet Termalica Nieciecza. In early 2019, Królewski was the initiator of a rescue operation that saved Wisła Kraków from bankruptcy, as well as the originator of the crowdfunding issue of shares of Wisła Kraków, pioneering in Polish sports, during restructuring and searching for a strategic investor. The offered shares constituted 5.1 percent. all the company's shares, which meant that the club was valued at PLN 74.4 million. 40,000 shares were put up for sale, each worth PLN 100. Within 24 hours, they were purchased by 9,124 investors through an equity crowdfunding platform Beesfund, earning the club PLN 4 million. In March 2019, Królewski became vice-chairman of Wisła's supervisory board, a position he held until 2021. In April 2020, he became Wisła's co-owner, along with the footballer Jakub Błaszczykowski, and Tomasz Jażdżyński, president of Gremi Media (publisher of the news outlets Rzeczpospolita and Parkiet). The three granted a bridging loan to the club of PLN 4 million, each supporting PLN 1.33 million. The funds were used to repay the club's debts to players. In November 2022, the supervisory board of Wisła Kraków appointed Królewski as the president of the club's management board. In December 2022, Królewski took over a majority stake in the club. In January 2024, based on match statistics, he used AI tools to select Wisła's new coach, Albert Rudé. === Social activities === Królewski is the creator and originator of the nationwide educational project "AI Schools & Academy", the first artificial intelligence teaching program in Polish kindergartens, primary and secondary schools in Polish history. Launched in 2018, the project was financed by Synerise business partners: Carrefour, CCC, Ernst & Young, IDC, Media Expert, Microsoft, Orange Foundation, Oriflame, Bank Pekao, Photon, PZU, and Żabka. Physicists, mathematicians, and computer scientists conduct special classes in 1,500 kindergartens, primary and secondary schools. Outstanding students and teachers are awarded scholarships. The project was appreciated by experts. In the years 2018–2020, Królewski was the main sponsor of Glinik Gorlice. He also supported the women's football team Staszkówka Jelna (of Staszkówka). After taking over the shares of Wisła Kraków in 2020, he launched socially conscience initiatives along with other shareholders, including a women's football team, the amp football section, and the blind football section. He has privately sponsored social charities. == Accolades and awards == In 2017, Królewski along with the Synerise co-founders Baluś and Kochmański was included in the “New Europe 100” list of eastern Europe's brightest and best citizens changing the region's societies, politics, or business environments, according to Res Publica, along with the International Visegrad Fund, Google and the Financial Times. Królewski was included on Ernst & Young's list of the 30 most promising technology entrepreneurs in the world. In 2018, he was honored with the Special Jury Award in the Polish edition of the Ernst & Young Entrepreneur of the Year Award competition, for combining scientific activities with entrepreneurship. The same year, Królewski won an award in the competition Digital Shapers, distinguishing outstanding tech personalities by the Digital Poland Foundation. He was also selected to Ernst & Young startup program EY Accelerating Entrepreneurs for businesses that focus on disruptive fields. In 2019, as part of the AI Awards competition, Królewski received the title of AI Person of the Year. == Private life == Królewski comes from a Lemko family from Hańczowa in the Low Beskids. He is married to Aleksandra Królewska.

    Read more →
  • Geopolitical ontology

    Geopolitical ontology

    The FAO geopolitical ontology is an ontology developed by the Food and Agriculture Organization of the United Nations (FAO) to describe, manage and exchange data related to geopolitical entities such as countries, territories, regions and other similar areas. == Definitions and examples == An ontology is a kind of dictionary that describes information in a certain domain using concepts and relationships. It is often implemented using OWL (Web Ontology Language), an XML-based standard language that can be interpreted by computers. A Concept is defined as abstract knowledge. For example, in the geopolitical ontology a non-self-governing territory and a geographical group are concepts. Concepts are explicitly implemented in the ontology with individuals and classes: An individual is defined as an object perceived from the real world. In the geopolitical domain Ethiopia and the least developed countries group are individuals. A class is defined as a set of individuals sharing common properties. In the geopolitical domain, Ethiopia, Republic of Korea and Italy are individuals of the class self-governing territory; and least developed countries is an individual of the class special group. Relationships between concepts are explicitly implemented by: Object properties between individuals of two classes. For example, has member and is in group properties, as shown in Figure 1. Datatype properties between individuals and literals or XML datatypes. For example, the individual Afghanistan has the datatype property CodeISO3 with the value "AFG". Restrictions in classes and/or properties. For example, the property official English name of the class self-governing territory has been restricted to have only one value, this means that a self-governing territory (or country) can only have one internationally recognized official English name. The advantage of describing information in an ontology is that it enables to acquire domain knowledge by defining hierarchical structures of classes, adding individuals, setting object properties and datatype properties, and assigning restrictions. == FAO ontology == The geopolitical ontology provides names in seven languages (Arabic, Chinese, French, English, Spanish, Russian and Italian) and identifiers in various international coding systems (ISO2, ISO3, AGROVOC, FAOSTAT, FAOTERM, GAUL, UN, UNDP and DBPediaID codes) for territories and groups. Moreover, the FAO geopolitical ontology tracks historical changes from 1985 up until today; provides geolocation (geographical coordinates); implements relationships among countries and countries, or countries and groups, including properties such as has border with, is predecessor of, is successor of, is administered by, has members, and is in group; and disseminates country statistics including country area, land area, agricultural area, GDP or population. The FAO geopolitical ontology provides a structured description of data sources. This includes: source name, source identifier, source creator and source's update date. Concepts are described using the Dublin Core vocabulary In summary, the main objectives of the FAO geopolitical ontology are: To provide the most updated geopolitical information (names, codes, relationships, statistics) To track historical changes in geopolitical information To improve information management and facilitate standardized data sharing of geopolitical information To demonstrate the benefits of the geopolitical ontology to improve interoperability of corporate information systems It is possible to download the FAO geopolitical ontology in OWL and RDF formats. Documentation is available in the FAO Country Profiles Geopolitical information web page. == Features of the FAO ontology == The geopolitical ontology contains : Area types: Territories: self-governing, non-self-governing, disputed, other. Groups: organizations, geographic, economic and special groups. Names (official, short and names for lists) in Arabic, Chinese, English, French, Spanish, Russian and Italian. International codes: UN code – M49, ISO 3166 Alpha-2 and Alpha-3, UNDP code, GAUL code, FAOSTAT, AGROVOC FAOTERM and DBPediaID. Coordinates: maximum latitude, minimum latitude, maximum longitude, minimum longitude. Basic country statistics: country area, land area, agricultural area, GDP, population. Currency names and codes. Adjectives of nationality. Relations: Groups membership. Neighbours (land border), administration of non-self-governing. Historic changes: predecessor, successor, valid since, valid until. == Implementation into OWL == The FAO geopolitical ontology is implemented in OWL. It consists of classes, properties, individuals and restrictions. Table 1 shows all classes, gives a brief description and lists some individuals that belong to each class. Note that the current version of the geopolitical ontology does not provide individuals of the class "disputed" territories. Table 2 and Table 3 illustrate datatype properties and object properties. == Geopolitical ontology in Linked Open Data == The FAO Geopolitical ontology is embracing the W3C Linked Open Data (LOD) initiative and released its RDF version of the geopolitical ontology in March 2011. The term 'Linked Open Data' refers to a set of best practices for publishing and connecting structured data on the Web. The key technologies that support Linked Data are URIs, HTTP and RDF. The RDF version of the geopolitical ontology is compliant with all Linked data principles to be included in the Linked Open Data cloud, as explained in the following. == Resolvable http:// URIs == Every resource in the OWL format of the FAO Geopolitical Ontology has a unique URI. Dereferenciation was implemented to allow for three different URIs to be assigned to each resource as follows: URI identifying the non-information resource Information resource with an RDF/XML representation Information resource with an HTML representation In addition the current URIs used for OWL format needed to be kept to allow for backwards compatibility for other systems that are using them. Therefore, the new URIs for the FAO Geopolitical Ontology in LOD were carefully created, using “Cool URIs for Semantic Web” and considering other good practices for URIs, such as DBpedia URIs. == New URIs == The URIs of the geopolitical ontology need to be permanent, consequently all transient information, such as year, version, or format was avoided in the definition of the URIs. The new URIs can be accessed For example, for the resource “Italy” the URIs are the following: http://www.fao.org/countryprofiles/geoinfo/geopolitical/resource/Italy identifies the non-information resource. http://www.fao.org/countryprofiles/geoinfo/geopolitical/data/Italy identifies the resource with an RDF/XML representation. http://www.fao.org/countryprofiles/geoinfo/geopolitical/page/Italy identifies the information resource with an HTML representation. In addition, “owl:sameAs” is used to map the new URIs to the OWL representation. == Dereferencing URIs == When a non-information resource is looked up without any specific representation format, then the server needs to redirect the request to information resource with an HTML representation. For example, to retrieve the resource “Italy”, which is a non-information resource, the server redirects to the HTML page of “Italy”. == At least 1000 triples in the datasets == The total number of triple statements in FAO Geopolitical Ontology is 22,495. At least 50 links to a dataset already in the current LOD Cloud: FAO Geopolitical Ontology has 195 links to DBpedia, which is already part of the LOD Cloud. == Access to the entire dataset == FAO Geopolitical Ontology provides the entire dataset as a RDF dump. The RDF version of the FAO Geopolitical Ontology has been already registered in CKAN and it was requested to add it into the LOD Cloud. == Example of use == The FAO Country Profiles is an information retrieval tool which groups the FAO's vast archive of information on its global activities in agriculture and rural development in one single area and catalogues it exclusively by country. The FAO Country Profiles system provides access to country-based heterogeneous data sources. By using the geopolitical ontology in the system, the following benefits are expected: Enhanced system functionality for content aggregation and synchronization from the multiple source repositories. Improved information access and browsing through comparison of data in neighbor countries and groups. Figure 3 shows a page in the FAO Country Profiles where the geopolitical ontology is described.

    Read more →
  • List of software palettes

    List of software palettes

    This is a list of software palettes used by computers. Systems that use a 4-bit or 8-bit pixel depth can display up to 16 or 256 colors simultaneously. Many personal computers in the early 1990s displayed at most 256 different colors, freely selected by software (either by the user or by a program) from their wider hardware's RGB color palette. Usual selections of colors in limited subsets (generally 16 or 256) of the full palette includes some RGB level arrangements commonly used with the 8-bit palettes as master palettes or universal palettes (i.e., palettes for multipurpose uses). These are some representative software palettes, but any selection can be made in such of systems. For specific hardware color palettes, see the list of monochrome and RGB palettes, list of 8-bit computer hardware graphics, the list of 16-bit computer hardware graphics and the list of video game console palettes articles. Each palette is represented by an array of color patches. A one-pixel size version appears below each palette, to make it easy to compare palette sizes. For each unique palette, an image color test chart and sample image (truecolor original follows) rendered with that palette (without dithering) are given. The test chart shows the full 8-bit, 256 levels of the red, green, and blue (RGB) primary colors and cyan, magenta, and yellow complementary colors, along with a full 8-bit, 256 levels grayscale. Gradients of RGB intermediate colors (orange, lime green, sea green, sky blue, violet and fuchsia), and a full hue spectrum are also present. Color charts are not gamma corrected. These elements illustrate the color depth and distribution of the colors of any given palette, and the sample image indicates how the color selection of such palettes could represent real-life images. == System specifics == These are selections of colors officially employed as system palettes in some popular operating systems for personal computers that support 8-bit displays. === Microsoft Windows and IBM OS/2 default 16-color palette === Used by these platforms as a roughly backward compatible palette for the CGA, EGA and VGA text modes, but with colors arranged in a different order. Also, is the default palette for 16 color icons. The corresponding indices into this palette are: === Microsoft Windows default 20-color palette === In 256-color mode, there are four additional standard Windows colors, twenty system reserved colors in total; thus the system leaves 236 palette indexes free for applications to use. The system color entries inside a 256-color palette table are the first ten plus the last ten. In any case, the additional system colors do not seem to add a sharp color richness: they are only some intermediate shades of grayish colors. Since Windows 95, these additional colors can be changed by the system when a color scheme needs custom colors, reducing their utility as static, unchanging palette entries. The complete 20-color Windows system palette is: === Apple Macintosh default 16-color palette === When Apple Computer introduced the Macintosh II in 1987, this 16-color palette was included in System 4.1. === RISC OS default palette === Acorn RISC OS 2.x and 3.x provided this 16-color palette: === Solaris default 16-color palette === Solaris OS used this color palette: == RGB arrangements == These are selections of colors based in evenly ordered RGB levels which provide complete RGB combinations, mainly used as master palettes to display any kind of image within the limitations of the 8-bit pixel depth. === 6 level RGB === Having six levels for every primary, with 6³ = 216 combinations. The index can be addressed by (36×R)+(6×G)+B, with all R, G and B values in a range from 0 to 5. Intended as homogeneous RGB cube, it gives six true grays. Also, there is room for another sorts of 40 colors, so operating systems or programs can add extra colors. Systems that use this software palette are: Web-safe colors Apple Macintosh 256 color default palette. It also contains four gradients of ten shades each for gray, red, green and blue. === 6-7-6 levels RGB === This palette is constructed with six levels for red and blue primaries and seven levels for the green primary, giving 6×7×6 = 252 combinations. The index can be addressed by (42×R)+(6×G)+B, with R and B values in a range from 0 to 5 and G in a range from 0 to 6. The same case as the former, but with an added level of green due to the greater sensibility of the normal human eye to this frequency. It does not provide true grays, but remaining indexes can be filled with four intermediate grays. In any case, there is little room for any other color. === 6-8-5 levels RGB === This palette is constructed with six levels for red, eight levels for green and five levels for the blue primaries, giving 6×8×5 = 240 combinations. The index can be addressed by (40×R)+(5×G)+B, with R ranging from 0 to 5, G from 0 to 7 and B from 0 to 4. Levels are chosen in function of sensibility of the normal human eye to every primary color. Also, it does not provide true grays. Remaining indexes can be filled with sixteen intermediate grays or other fixed colors. In fact, this is the best balanced RGB master software palette, in a compromise between the RGB arrangement based in the human eye's sensibility and a sufficient remaining palette entries for another purposes. === 8-8-4 levels RGB === The 8-8-4 level RGB use eight levels for each of the red and green color components (3+3 high order bits), and four levels (2 low order bits) for the blue component, due to the lesser sensitivity of the normal human eye to this primary color. This results in an 8×8×4 = 256-color palette as follows: This RGB software palette occupies the full 8-bit range of possible palette entries, so there is no room for other fixed colors. Software using this palette must draw their user interface elements with the same colors used to show pictures. Also again, it does not provide true grays. == Other common uses of software palettes == === Grayscale palettes === Simple palette made doing every triplet RGB primaries having equal values as a continuous gradient from black to white through the full available palette entries. Here is the 8-bit, 256 levels palette: Used to display pure grayscale TIFF or JPEG images, for example. === Color gradient palettes === Palettes made of a continuous color gradient from darkest to lightest arbitrary hues. The pixel data is treated as if it were grayscale, but the color table plays with RGB color combinations, not only gray. The relationship between the original luminance and the mapped one can vary, but the lighting scale is preserved along all the palette entries. One very common case of such palettes is the sepia tone palette, which gives an image an old fashioned and aged look (left). Another gradient example, based on blue hues, is presented here (right), but any hue or mixing of hues can be used. Many cell phones with built-in cameras have options to take colorized photos using this technique. === Adaptive palettes === Those whose whole number of available indexes are filled with RGB combinations selected from the statistical order of appearance (usually balanced) of a concrete full true color original image. There exist many algorithms to pick the colors through color quantization; one well known is the Heckbert's median-cut algorithm. Here is the 8-bit, 256 color palette used with the color test chart and the image sample above: Adaptive palettes only work well with a unique image. Trying to display different images with adaptive palettes over an 8-bit display usually results in only one image with correct colors, because the images have different palettes and only one can be displayed at a time. Here is an example of what happens when an indexed color image is displayed with any color palette that is not its own adaptive palette: === False color palettes === Arbitrary gradient color scales, usually 256 shades, with no relationship with real colors of a given image. They are employed to artificially colorize a grayscale image to reveal details and/or to map the pixel level values to amounts of some physical magnitude (potential, temperature, altitude, etc.) Note, in the example above, that new details can be seen as blue over magenta in the background's dark areas of the original photograph. Here is the 8-bit, 256 color gradient palette used with the color test chart and the image sample above: There exist many false color palettes, some of them standardized, used mainly in scientific applications: astronomy and radioastronomy, satellite land imaging, thermography, study of materials, tomography and magnetic resonance imaging in medicine, etc.

    Read more →
  • TRAIGA

    TRAIGA

    TRAIGA, or the Texas Responsible Artificial Intelligence Governance Act, is a state law regulating the development and deployment of artificial intelligence (AI) systems in Texas. Sponsored by Representative Giovanni Capriglione, the Act establishes a framework governing certain uses of AI, outlines prohibited uses, and creates obligations on state government entities, among other provisions. TRAIGA was signed into law in 2025 and took effect on January 1, 2026. The law applies to AI developers and deployers that conduct business in Texas or whose systems are used by Texas residents. It prohibits the intentional development or deployment of AI systems to incite harm, violate constitutional rights, engage in unlawful discrimination, and produce child sexual abuse material or unlawful deepfakes. TRAIGA also establishes the Texas Artificial Intelligence Council and creates a regulatory sandbox program. The Texas Attorney General is charged with enforcement. It has received attention as one of the first comprehensive AI-related laws enacted by a U.S. state. Legal analysts have compared it to the European Union (EU) Artificial Intelligence Act and the Colorado AI Act, noting its intent-based discrimination standard and narrower scope relative to those frameworks. == Background == In June 2023, Texas Governor Greg Abbott signed House Bill 2060, which created an Artificial Intelligence Advisory Council within the Texas Department of Information Resources. The Council was tasked with monitoring the use of AI systems across state government. Its membership included representatives from law enforcement, academia, and the legal profession. After submitting a report to state policymakers, the Council was disbanded in December 2024. Separately, the Texas House Select Committee on Artificial Intelligence and Emerging Technologies was created in 2023 to examine the political and social implications of artificial intelligence. Among its recommendations was the creation of a regulatory sandbox to allow for controlled testing of AI systems. This recommendation informed the regulatory sandbox provision included in TRAIGA. == History == In December 2024, Representative Capriglione introduced House Bill 1709, the Texas Responsible Artificial Intelligence Governance Act. The bill sought to create a statewide framework for artificial intelligence, including transparency requirements for companies deploying AI systems, restrictions on certain uses of AI, and the creation of a regulatory sandbox. Modeled in part on the EU Artificial Intelligence Act and the Colorado AI Act, House Bill 1709 focused on "high-risk" AI systems and included provisions addressing private sector liability. House Bill 1709 did not advance during the legislative session. Industry stakeholders raised concerns that several provisions were overly burdensome. The bill informed the development of a revised proposal, House Bill 149, also titled the Texas Responsible Artificial Intelligence Governance Act. The revised version removed requirements for private companies to notify consumers when they interact with AI systems and to conduct impact assessments, among other provisions. In April 2025, an amended version of House Bill 149 passed the Texas House of Representatives and was referred to the Senate Committee on Business and Commerce. The bill later received approval from both chambers, where the House voted on amendments adopted by the Senate. On May 31, 2025, the state legislature passed House Bill 149, one of several AI-related bills considered during the legislative session. Governor Abbott signed TRAIGA into law on June 22, 2025. During the legislative process, a proposed federal moratorium on state-level AI regulation initially raised questions about the enforceability of state AI laws, including TRAIGA. At the time of signing, Governor Abbott stated that Texas would ensure compliance with applicable federal requirements. In July 2025, the United States Senate voted to remove the proposed moratorium from federal legislation. The Act took effect on January 1, 2026. == Provisions == === Definitions and scope === TRAIGA applies to AI developers and deployers that advertise or conduct business in Texas, develop products used by Texas residents, or develop or deploy AI systems within the state. The Act also applies to Texas state and local government entities. The Act defines a developer as a person who develops an AI system and a deployer as one who deploys an AI system in Texas. Consumers are defined as Texas residents. The Act defines an artificial intelligence system as a machine-based system that "infers from the inputs the system receives how to generate outputs, including content, decisions, predictions, or recommendations, that can influence physical or virtual environments." === Government use === The Act requires government agencies to provide consumers with plain language notices before interacting with AI systems. It also prohibits government agencies from using artificial intelligence systems to assign social scores to consumers. It also restricts the use of AI systems to identify individuals using biometric data without the individual’s consent. === Prohibitions === The Act prohibits the development or deployment of artificial intelligence systems intended to cause harm, self-harm, or criminal activity. It also prohibits the development or deployment of AI systems designed to violate constitutional rights or unlawfully discriminate based on protected classes. In addition, the Act prohibits the development or deployment of AI systems that are intended to produce or distribute child sexual abuse material or unlawful deepfakes. === Enforcement === Enforcement authority under the Act rests with the Texas Attorney General. The Act does not create a private right of action. The Act requires the Texas Attorney General to create an online complaint system where consumers may submit allegations of potential violations. The Attorney General can investigate complaints received through this system and may request information relevant to the operation of an AI system, including information about training data. Before initiating an enforcement action, the Attorney General must provide a written notice to the alleged violator, who is then provided with a 60-day period to cure the alleged violation. === Penalties === If a violation is not cured, the Act authorizes civil penalties. Penalties range from $10,000 to $12,000 per curable violation and from $80,000 to $200,000 per non-curable violation. The Act also authorizes additional penalties of $2,000 to $40,000 for each day the violation continues. If the Attorney General determines that a person certified or licensed by a state agency has violated the Act and recommends enforcement, the relevant agency may impose additional administrative sanctions, including license suspension or further monetary penalties. === Safe harbor === The Act provides an affirmative defense for AI developers and deployers who identify potential violations through internal testing or auditing or who demonstrate compliance with National Institute of Standards and Technology (NIST)'s Artificial Intelligence Risk Management Framework or a comparable risk management framework. The Act also affords protection to developers and deployers when a third party uses their AI systems in a way that violates the Act. === Texas Artificial Intelligence Council === The Act creates the Texas Artificial Intelligence Council to assist the state legislatures in evaluating artificial intelligence policy and oversight. The Council is charged with developing recommendations for state agencies regarding the use of AI systems and with overseeing the regulatory sandbox. TRAIGA gives the Council the ability to organize AI-related training for state entities and issue reports concerning artificial intelligence. The Council does not have binding rulemaking authority. The Council consists of seven members appointed by the governor, the lieutenant governor, and the speaker of the Texas House of Representatives. === Regulatory sandbox === The Act directs the Texas Department of Information Resources to create a regulatory sandbox program that allows participants to test AI systems under state supervision in a modified regulatory setting. To join the program, companies must submit applications that describe their AI systems and intended use. Approved participants may operate within the sandbox for up to 36 months. During that period, the Attorney General is restricted from initiating enforcement actions for certain categories of violations. == Reception == === Support === During legislative testimony, the Texas Public Policy Foundation stated that TRAIGA would benefit Texas businesses by reducing legal ambiguity and creating clearer compliance standards. Representatives of business groups also expressed support, stating that the Act would not impose overly burdensome regulations. The consum

    Read more →
  • Alliance for Secure AI

    Alliance for Secure AI

    The Alliance for Secure AI is a U.S.-based nonprofit organization which educates the public about the risks of advanced artificial intelligence (AI). Politico has described the Alliance as a "bipartisan nonprofit trying to push a middle-ground approach to AI guardrails." == History == In June 2025, the Alliance was launched as a 501(c)(3) nonprofit watchdog in Washington, D.C. That same month, the organization rolled out a six-figure advertising campaign featuring bipartisan warnings about advanced AI. The ad campaign presented different messages for different political audiences. The Alliance opposed the idea of a moratorium on state AI laws as part of the July 2025 budget bill, in addition to President Donald Trump's December 2025 executive order on the issue. The group has also criticized AI companies like Meta and OpenAI for what it says are failures to prevent harms to children. In addition, the Alliance has criticized OpenAI for subpoenaing nonprofit organizations in the AI safety space. In March 2026, the Alliance launched JobLoss.ai, a website that tracks the jobs that have been eliminated with AI cited as a contributing factor. As of April 2026, JobLoss.ai has tracked more than 127,000 lost jobs. == Leadership == Brendan Steinhauser, a longtime political and communications strategist, is the founder and CEO of the Alliance. He was an early Tea Party movement organizer, and ran campaigns for multiple members of Congress, including Sen. John Cornyn, Rep. Dan Crenshaw, and Rep. Michael McCaul. Peyton Hornberger is the group's communications director. In July 2025, Hornberger criticized Palantir for its use of AI in a USA Today op-ed column.

    Read more →
  • GuideGeek

    GuideGeek

    GuideGeek is an AI-powered travel assistant that was launched by travel publisher Matador Network in April 2023 and is accessed by users through Instagram, WhatsApp and Facebook Messenger to plan itineraries or provide travel tips and recommendations. It uses generative artificial intelligence technology from OpenAI. Matador Network is a San Francisco-based digital media company and online travel publication with millions of monthly visitors and social media followers. == Features == Users message GuideGeek questions about travel and receive customized answers and itineraries that are pulled from ChatGPT in addition to over 1,000 additional travel-specific integrations such as live flight, hotel and vacation rental data. Travelers can specify their budget and needs to generate custom itineraries. GuideGeek is not an app and does not require the user to download anything, instead relying on messaging apps such as Instagram to connect users with the AI. GuideGeek is free to use, doesn't include ads, and doesn't sell user data. Matador Network has a team of staff members monitoring conversations to correct them if the AI makes a false statement; for example, one user incorrectly inputted “Crete Freeze” instead of “Crete, Greece”, and the AI made up a fictional soft serve company. Using a technique known as reinforcement learning from human feedback (RLHF), the accuracy of GuideGeek increased to 98%, according to Matador Network CEO, Ross Borden. == Destination partnerships == Matador Network is monetizing GuideGeek via white-label partnerships with tourism bureaus and destination marketing organizations (DMOs). As of March 2024, it had over a dozen such clients. Estes Park, Colorado, was one of the first DMOs to partner with Matador for a custom version of GuideGeek called “Rocky Mountain Roamer.” For Discover Greece, Matador created Pythia, a custom AI named after the high priestess of the Temple of Apollo at Delphi. As Borden explained to Travel + Leisure, “Visitors to the Discover Greece website will find Pythia in the bottom right corner, and they can converse with the AI like a friend who knows everything about Greece.” Other DMOs who have partnerships with GuideGeek include the Aruba Tourism Authority, Visit Reno Tahoe, Illinois Office of Tourism, and Tourism Richmond. == Awards == In recognition of GuideGeek, Fast Company named Matador Network to its 2024 list of Most Innovative Companies. Following growth driven by the launch of GuideGeek, Matador Network was ranked on the 2024 Inc. 5000 list of fastest-growing private companies in America. The 2024 Skift IDEA Awards recognized Matador Network as a finalist in the category of Best Use of AI for GuideGeek's customized AI for the travel industry. == Michael Motamedi experiment == Travel influencer and chef Michael Motamedi traveled the world with his wife Vanessa Salas and their 2-year-old daughter on a six-month trip (which was later extended to a full year) led by GuideGeek. The family started off in Morocco before heading to Spain and continuing east. The experiment became the basis of a web series called “No Fixed Address.” Motamedi used GuideGeek's AI to select countries the family visited, where they ate, and what sites they saw. Motamedi and Salas first tested out the technology in April 2023 while using the chatbot to plan a date night in Mexico City. GuideGeek provided speakeasy and drink recommendations as well as local history facts.

    Read more →
  • Echo Lake (software)

    Echo Lake (software)

    Echo Lake (AKA Family Album Creator) was the most notable multimedia software product produced by Delrina, which debuted in June 1995. It was touted internally as a "cross [of] Quark Xpress and Myst". It featured an immersive 3D environment where a user could go to a virtual desktop in a virtual office and assemble video and audio clips along with images, and then print them out as either a virtual book other users of the program could use, or for print. It was a highly innovative product for its time, and ultimately was hampered by the inability of many users able to input their own multimedia content easily into a computer from that period. Creative Wonders bought the rights to the Echo Lake multimedia product, which was re-shaped as an introductory program on multimedia and re-released as Family Album Creator in 1996.

    Read more →
  • Business rule management system

    Business rule management system

    A BRMS or business rule management system is a software system used to define, deploy, execute, monitor and maintain the variety and complexity of decision logic that is used by operational systems within an organization or enterprise. This logic, also referred to as business rules, includes policies, requirements, and conditional statements that are used to determine the tactical actions that take place in applications and systems. == Overview == A BRMS includes, at minimum: A repository, allowing decision logic to be externalized from core application code Tools, allowing both technical developers and business experts to define and manage decision logic A runtime environment, allowing applications to invoke decision logic managed within the BRMS and execute it using a business rules engine The top benefits of a BRMS include: Reduced or removed reliance on IT departments for changes in live systems. Although, QA and Rules testing would still be needed in any enterprise system. Increased control over implemented decision logic for compliance and better business management including audit logs, impact simulation and edit controls. The ability to express decision logic with increased precision, using a business vocabulary syntax and graphical rule representations (decision tables, decision models, trees, scorecards and flows) Improved efficiency of processes through increased decision automation. Some disadvantages of the BRMS include: Extensive subject matter expertise can be required for vendor specific products. In addition to appropriate design practices (such as Decision Modeling), technical developers must know how to write rules and integrate software with existing systems Poor rule harvesting approaches can lead to long development cycles, though this can be mitigated with modern approaches like the Decision Model and Notation (DMN) standard. Integration with existing systems is still required and a BRMS may add additional security constraints. Reduced IT department reliance may never be a reality due to continued introduction to new business rule considerations or object model perturbations The coupling of a BRMS vendor application to the business application may be too tight to replace with another BRMS vendor application. This can lead to cost to benefits issues. The emergence of the DMN standard has mitigated this to some degree. Most BRMS vendors have evolved from rule engine vendors to provide business-usable software development lifecycle solutions, based on declarative definitions of business rules executed in their own rule engine. BRMSs are increasingly evolving into broader digital decisioning platforms that also incorporate decision intelligence and machine learning capabilities. However, some vendors come from a different approach (for example, they map decision trees or graphs to executable code). Rules in the repository are generally mapped to decision services that are naturally fully compliant with the latest SOA, Web Services, or other software architecture trends. == Related software approaches == In a BRMS, a representation of business rules maps to a software system for execution. A BRMS therefore relates to model-driven engineering, such as the model-driven architecture (MDA) of the Object Management Group (OMG). It is no coincidence that many of the related standards come under the OMG banner. A BRMS is a critical component for Enterprise Decision Management as it allows for the transparent and agile management of the decision-making logic required in systems developed using this approach. == Associated standards == The OMG Decision Model and Notation standard is designed to standardize elements of business rules development, specially decision table representations. There is also a standard for a Java Runtime API for rule engines JSR-94. OMG Business Motivation Model (BMM): A model of how strategies, processes, rules, etc. fit together for business modeling OMG SBVR: Targets business constraints as opposed to automating business behavior OMG Production Rule Representation (PRR): Represents rules for production rule systems that make up most BRMS' execution targets OMG Decision Model and Notation (DMN): Represents models of decisions, which are typically managed by a BRMS RuleML provides a family of rule mark-up languages that could be used in a BRMS and with W3C RIF it provides a family of related rule languages for rule interchange in the W3C Semantic Web stack Many standards, such as domain-specific languages, define their own representation of rules, requiring translations to generic rule engines or their own custom engines. Other domains, such as PMML, also define rules.

    Read more →
  • Komodo (chess)

    Komodo (chess)

    Komodo and Dragon by Komodo Chess (also known as Dragon or Komodo Dragon) are UCI chess engines developed by Komodo Chess, which is a part of Chess.com. The engines were originally authored by Don Dailey and GM Larry Kaufman. Dragon is a commercial chess engine, but Komodo is free for non-commercial use. Dragon is consistently ranked near the top of most major chess engine rating lists, along with Stockfish and Leela Chess Zero. == History == === Komodo === Komodo was derived from Don Dailey's former engine Doch in January 2010. The first multiprocessor version of Komodo was released in June 2013 as Komodo 5.1 MP. This version was a major rewrite and a port of Komodo to C++11. A single-processor version of Komodo (which won the CCT15 tournament in February earlier that year) was released as a stand-alone product shortly before the 5.1 MP release. This version, named Komodo CCT, was still based on the older C code, and was approximately 30 Elo stronger than the 5.1 MP version, as the latter was still undergoing massive code-cleanup work. With the release of Komodo 6 on October 4, 2013, Don Dailey announced that he was suffering from an acute form of leukaemia, and would no longer contribute to the future development of Komodo. On October 8, Don made an announcement on the Talkchess forum that Mark Lefler would be joining the Komodo team and would continue its development. Komodo TCEC was released on December 4, 2013. This was the same version that had won TCEC Season 5, and was the last with input from Don Dailey, to whom it was dedicated. Komodo 7 was released on May 21, 2014, adding Syzygy tablebase support. On May 24, 2018, Chess.com announced that it has acquired Komodo and that the Komodo team have joined Chess.com. The Komodo team is now called Komodo Chess. On December 17, 2018, Komodo Chess released Komodo 12.3 MCTS, a version of the Komodo 12.3 engine that uses Monte Carlo tree search instead of alpha–beta pruning/minimax. The last version, Komodo 14.3, was released on October 4, 2023. === Dragon === On November 9, 2020, Komodo Chess released Dragon by Komodo Chess 1.0, which features the use of efficiently updatable neural networks in its evaluation function. Dragon is derived from Komodo in the same way that Komodo was derived from Doch. Dragon is also called Komodo Dragon in certain tournaments such as the Top Chess Engine Championship and the World Computer Chess Championship (WCCC) but not in the Chess.com Computer Chess Championship (CCC). A Chess.com staff member named Dmitry Pervov joined the Dragon development team to write the NNUE code for Dragon, and Dietrich Kappe joined the Dragon development team to help Larry Kaufman and Mark Lefter train Dragon's neural networks. On March 17, 2023, Larry Kaufman announced that he and Mark Lefter have stepped down from Dragon development and from ownership of Komodo Chess, and that Chess.com have taken full control of Komodo Chess. As of March 17, 2023, Dietrich Kappe is the only person responsible for the development of Dragon, but Chess.com are looking for more programmers to help with Dragon development. The final version, Dragon 3.3, was released on October 4, 2023. == Competition results == === Komodo === Komodo has played in the ICT 2010 in Leiden, and further in the CCT12 and CCT14. Komodo had its first tournament success in 1999, when it won the CCT15 with a score of 6½/7. Komodo won both the World Computer Chess Championship and World Computer Software Championship in 2016. Komodo once again won the World Computer Chess Championship and World Blitz in 2017. In TCEC competition, Komodo was historically one of the strongest engines. In Season 4, it lost only eight out of its 53 games and managed to reach Stage 4 (Quarterfinals), against very strong competition which were running on eight cores (Komodo was running on a single processor). The next season, Komodo won the superfinal against Stockfish. The two engines jockeyed for the championship over the next few seasons: Stockfish won in Season 6, while Komodo won Seasons 7 and 8. Komodo failed to make the superfinal in Season 9, losing out to Houdini; but after Houdini was later disqualified for containing code plagiarized from Stockfish, Komodo was promoted to the runner-up. Komodo retrospectively won Season 10 in the same way. Starting from Season 11 however, Stockfish improved at a rate that left its rivals behind, crushing Komodo in Season 12 and 13. The advent of the neural network engine Leela Chess Zero meant Komodo has largely failed to qualify for the superfinal since, with a single exception in Season 22, when it lost to Stockfish. Although Komodo has not qualified for the superfinal, it has cemented itself as the third-strongest engine in the competition, finishing in that position for five of the last six seasons. ==== Chess.com Computer Chess Championship ==== === Dragon === ==== Chess.com Computer Chess Championship ==== ==== Top Chess Engine Championship ==== == Notable games == Komodo vs Hannibal, nTCEC - Stage 2b - Season 1, Round 4.1, ECO: A10, 1–0 Archived 2016-03-04 at the Wayback Machine Komodo sacrifices an exchange for positional gain. Gull vs Komodo, nTCEC - Stage 3 - Season 2, Round 2.2, ECO: E10, 0–1 Archived March 4, 2016, at the Wayback Machine Archived 2016-03-04 at the Wayback Machine

    Read more →
  • Frame (artificial intelligence)

    Frame (artificial intelligence)

    Frames are an artificial intelligence data structure used to divide knowledge into substructures by representing "stereotyped situations". They were proposed by Marvin Minsky in his 1974 article "A Framework for Representing Knowledge". Frames are the primary data structure used in artificial intelligence frame languages; they are stored as ontologies of sets. Frames are also an extensive part of knowledge representation and reasoning schemes. They were originally derived from semantic networks and are therefore part of structure-based knowledge representations. According to Russell and Norvig's Artificial Intelligence: A Modern Approach, structural representations assemble "facts about particular object and event types and [arrange] the types into a large taxonomic hierarchy analogous to a biological taxonomy". == Frame structure == The frame contains information on how to use the frame, what to expect next, and what to do when these expectations are not met. Some information in the frame is generally unchanged while other information, stored in "terminals", usually change. Terminals can be considered as variables. Top-level frames carry information, that is always true about the problem in hand, however, terminals do not have to be true. Their value might change with the new information encountered. Different frames may share the same terminals. Each piece of information about a particular frame is held in a slot. The information can contain: Facts or Data Values (called facets) Procedures (also called procedural attachments) IF-NEEDED: deferred evaluation IF-ADDED: updates linked information Default Values For Data For Procedures Other Frames or Subframes == Features and advantages == A frame's terminals are already filled with default values, which is based on how the human mind works. For example, when a person is told "a boy kicks a ball", most people will visualize a particular ball (such as a familiar soccer ball) rather than imagining some abstract ball with no attributes. One particular strength of frame-based knowledge representations is that, unlike semantic networks, they allow for exceptions in particular instances. This gives frames a degree of flexibility that allows representations to reflect real-world phenomena more accurately. Like semantic networks, frames can be queried using spreading activation. Following the rules of inheritance, any value given to a slot that is inherited by subframes will be updated (IF-ADDED) to the corresponding slots in the subframes and any new instances of a particular frame will feature that new value as the default. Because frames are based on structures, it is possible to generate a semantic network given a set of frames even though it lacks explicit arcs. References to Noam Chomsky and his generative grammar of 1950 are generally missing from Minsky's work. The simplified structures of frames allow for easy analogical reasoning, a much prized feature in any intelligent agent. The procedural attachments provided by frames also allow a degree of flexibility that makes for a more realistic representation and gives a natural affordance for programming applications. == Example == Worth noticing here is the easy analogical reasoning (comparison) that can be done between a boy and a monkey just by having similarly named slots. Also notice that Alex, an instance of a boy, inherits default values like "Sex" from the more general parent object Boy, but the boy may also have different instance values in the form of exceptions such as the number of legs. == Frame language == A frame language is a technology used for knowledge representation in artificial intelligence. They are similar to class hierarchies in object-oriented languages although their fundamental design goals are different. Frames are focused on explicit and intuitive representation of knowledge whereas objects focus on encapsulation and information hiding. Frames originated in AI research and objects primarily in software engineering. However, in practice, the techniques and capabilities of frame and object-oriented languages overlap significantly. === Example === A simple example of concepts modeled in a frame language is the Friend of A Friend (FOAF) ontology defined as part of the Semantic Web as a foundation for social networking and calendar systems. The primary frame in this simple example is a Person. Example slots are the person's email, home page, phone, etc. The interests of each person can be represented by additional frames describing the space of business and entertainment domains. The slot knows links each person with other persons. Default values for a person's interests can be inferred by the web of people they are friends of. === Implementations === The earliest frame-based languages were custom developed for specific research projects and were not packaged as tools to be re-used by other researchers. Just as with expert system inference engines, researchers soon realized the benefits of extracting part of the core infrastructure and developing general-purpose frame languages that were not coupled to specific applications. One of the first general-purpose frame languages was KRL. One of the most influential early frame languages was KL-ONE. KL-ONE spawned several subsequent Frame languages. One of the most widely used successors to KL-ONE was the Loom language developed by Robert MacGregor at the Information Sciences Institute. In the 1980s, Artificial Intelligence generated a great deal of interest in the business world fueled by expert systems. This led to the development of many commercial products for the development of knowledge-based systems. These early products were usually developed in Lisp and integrated constructs such as IF-THEN rules for logical reasoning with Frame hierarchies for representing data. One of the most well known of these early Lisp knowledge-base tools was the Knowledge Engineering Environment (KEE) from Intellicorp. KEE provided a full Frame language with multiple inheritance, slots, triggers, default values, and a rule engine that supported backward and forward chaining. As with most early commercial versions of AI software KEE was originally deployed in Lisp on Lisp machine platforms but was eventually ported to PCs and Unix workstations. The research agenda of the Semantic Web spawned a renewed interest in automatic classification and frame languages. An example is the Web Ontology Language (OWL) standard for describing information on the Internet. OWL is a standard to provide a semantic layer on top of the Internet. The goal is that rather than searching the web using keywords as most search engines (e.g. Google) do today, the web can be organized by concepts organized in an ontology, like a directory structure. The name of the OWL language itself provides a good example of the value of a Semantic Web. If one were to search for "OWL" using the Internet today most of the pages retrieved would be on the bird Owl rather than the standard OWL. With a Semantic Web it would be possible to specify the concept "Web Ontology Language" and the user would not need to worry about the various possible acronyms or synonyms as part of the search. Likewise, the user would not need to worry about homonyms crowding the search results with irrelevant data such as information about birds of prey as in this simple example. In addition to OWL, various standards and technologies that are relevant to the Semantic Web and were influenced by Frame languages include OIL and DAML. The Protege Open Source software tool from Stanford University provides an ontology editing capability that is built on OWL and has the full capabilities of a classifier. However it ceased to explicitly support frames as of version 3.5 (which is maintained for those preferring frame orientation), with the current version being 5.6.8 as of 2025. The justification for moving from explicit frames being that OWL DL is more expressive and "industry standard". === Comparison of frames and objects === Frame languages have a significant overlap with object-oriented languages. The terminologies and goals of the two communities were different but as they moved from the academic world and labs to the commercial world developers tended to not care about philosophical issues and focused primarily on specific capabilities, taking the best from either camp regardless of where the idea began. What both paradigms have in common is a desire to reduce the distance between concepts in the real world and their implementation in software. As such both paradigms arrived at the idea of representing the primary software objects in taxonomies starting with very general types and progressing to more specific types. The following table illustrates the correlation between standard terminology from the object-oriented and frame language communities: The primary difference between the two paradigms was in the degree that encapsulation was considered a majo

    Read more →
  • Galaksija BASIC

    Galaksija BASIC

    Galaksija BASIC was the BASIC interpreter of the Galaksija build-it-yourself home computer from Yugoslavia. While being partially based on code taken from TRS-80 Level 1 BASIC, which the creator believed to have been a Microsoft BASIC, the extensive modifications of Galaksija BASIC—such as to include rudimentary array support, video generation code (as the CPU itself did it in absence of dedicated video circuitry) and generally improvements to the programming language—is said to have left not much more than flow-control and floating point code remaining from the original. The core implementation of the interpreter was fully contained in the 4 KiB ROM "A" or "1". The computer's original mainboard had a reserved slot for an extension ROM "B" or "2" that added more commands and features such as a built-in Zilog Z80 assembler. == ROM "A"/"1" symbols and keywords == The core implementation, in ROM "A" or "1", contained 3 special symbols and 32 keywords: ! begins a comment (equivalent of standard BASIC REM command) # Equivalent of standard BASIC DATA statement & prefix for hex numbers ARR$(n) Allocates an array of strings, like DIM, but can allocate only array with name A$ BYTE serves as PEEK when used as a function (e.g. PRINT BYTE(11123)) and POKE when used as a command (e.g. BYTE 11123,123). CALL n Calls BASIC subroutine as GOSUB in most other BASICs (e.g. CALL 100+4X) CHR$(n) converts an ASCII numeric code into a corresponding character (string) DOT x, y draws (command) or inspects (function) a pixel at given coordinates (0<=x<=63, 0<=y<=47). DOT displays the clock or time controlled by content of Y$ variable. Not in standard ROM EDIT n causes specified program line to be edited ELSE standard part of IF-ELSE construct (Galaksija did not use THEN) EQ compare alphanumeric values X$ and Y$ FOR standard FOR loop GOTO standard GOTO command HOME equivalent of standard BASIC CLS command - clears the screen HOME n protects n characters from the top of the screen from being scrolled away IF standard part of IF-ELSE construct (Galaksija did not use THEN) INPUT user entry of variable INT(n) a function that returns the greatest integer value equal to or lesser than n KEY(n) test whether a particular keyboard key is pressed LIST lists the program. Optional numeric argument specifies the first line number to begin listing with. MEM returns memory consumption data (need details here) NEW clears the current BASIC program NEW n clears BASIC program and moves beginning of BASIC area NEXT standard terminator of FOR loop OLD loads a program from tape OLD n loads program to different address PTR Returns address of the variable PRINT Printing numeric or string expression. RETURN Return from BASIC subroutine RND function (takes no arguments) that returns a random number between 0 and 1. RUN runs (executes) BASIC program. Optional numeric argument specifies the line number to begin execution with. SAVE saves a program to tape. Optional two arguments specify memory range to be saved (need details here). STEP standard part of FOR loop STOP stops execution of BASIC program TAKE replacement for READ and RESTORE. If the parameter is variable name, acts as READ, if it is number, acts as RESTORE UNDOT x, y "undraws" (resets) at specified coordinates (see DOT) UNDOT Stops the clock, not part of ROM USR Calls machine code subroutine WORD Double byte PEEK and POKE == ROM "B"/"2" additional symbols and keywords == The extended BASIC features, in ROM "B" or "2", contained one extra reserved symbol and 22 extra keywords: % /LABEL ABS(x) ARCTG(x) COS(x) COSD(x) DEL DUMP EXP(x) INP(x) LDUMP LLIST LN(x) LPRINT OUT PI POW(x,y) REN SIN(x), SIND(x) SQR(x) TG(x) TGD(x)

    Read more →
  • Type–token distinction

    Type–token distinction

    The type–token distinction is the difference between a type of objects (analogous to a class) and the individual tokens of that type (analogous to instances). Since each type may be instantiated by multiple tokens, there are generally more tokens than types of an object. For example, the sentence "A rose is a rose is a rose" contains three word types: three word tokens of the type a, two word tokens of the type is, and three word tokens of the type rose. The distinction is important in disciplines such as logic, linguistics, metalogic, typography, and computer programming. == Overview == The type–token distinction separates types (abstract descriptive concepts) from tokens (objects that instantiate concepts). For example, in the sentence "the bicycle is becoming more popular" the word bicycle represents the abstract concept of bicycles and this abstract concept is a type, whereas in the sentence "the bicycle is in the garage", it represents a particular object and this particular object is a token. Similarly, the word type 'letter' uses only four letter types: L, E, T and R. Nevertheless, it uses both E and T twice. One can say that the word type 'letter' has six letter tokens, with two tokens each of the letter types E and T. Whenever a word type is inscribed, the number of letter tokens created equals the number of letter occurrences in the word type. Some logicians consider a word type to be the class of its tokens. Other logicians counter that the word type has a permanence and constancy not found in the class of its tokens. The type remains the same while the class of its tokens is continually gaining new members and losing old members. == Typography == In typography, the type–token distinction is used to determine the presence of a text printed by movable type: The defining criteria which a typographic print has to fulfill is that of the type identity of the various letter forms which make up the printed text. In other words: each letter form which appears in the text has to be shown as a particular instance ("token") of one and the same type which contains a reverse image of the printed letter. == Charles Sanders Peirce == The distinctions between using words as types or tokens were first made by American logician and philosopher Charles Sanders Peirce in 1906 using terminology that he established. Peirce's type–token distinction applies to words, sentences, paragraphs and so on: to anything in a universe of discourse of character-string theory, or concatenation theory. Peirce's original words are the following: A common mode of estimating the amount of matter in a ... printed book is to count the number of words. There will ordinarily be about twenty 'thes' on a page, and, of course, they count as twenty words. In another sense of the word 'word,' however, there is but one word 'the' in the English language; and it is impossible that this word should lie visibly on a page, or be heard in any voice .... Such a ... Form, I propose to term a Type. A Single ... Object ... such as this or that word on a single line of a single page of a single copy of a book, I will venture to call a Token. .... In order that a Type may be used, it has to be embodied in a Token which shall be a sign of the Type, and thereby of the object the Type signifies.

    Read more →
  • Mind map

    Mind map

    A mind map is a diagram used to visually organize information into a hierarchy, showing relationships among pieces of the whole. It is often based on a single concept, drawn as an image in the center of a blank page, to which associated representations of ideas such as images, words and parts of words are added. Major ideas are connected directly to the central concept, and other ideas branch out from those major ideas. Mind maps can also be drawn by hand, either as "notes" during a lecture, meeting or planning session, for example, or as higher quality pictures when more time is available. Mind maps are considered to be a type of spider diagram. == Origin == Although the term "mind map" was first popularized by British popular psychology author and television personality Tony Buzan, the use of diagrams that visually "map" information using branching and radial maps traces back centuries. These pictorial methods record knowledge and model systems, and have a long history in learning, brainstorming, memory, visual thinking, and problem solving by educators, engineers, psychologists, and others. Some of the earliest examples of such graphical records were developed by Porphyry of Tyros, a noted thinker of the 3rd century, as he graphically visualized the concept categories of Aristotle. Philosopher Ramon Llull (1235–1315) also used such techniques. Buzan's specific approach, and the introduction of the term "mind map", started with a 1974 BBC TV series he hosted, called Use Your Head. In this show, and companion book series, Buzan promoted his conception of radial tree, diagramming key words in a colorful, radiant, tree-like structure. == Differences from other visualizations == Concept maps: Mind maps differ from concept maps in that mind maps are based on a radial hierarchy (tree structure) denoting relationships with a central concept, whereas concept maps can be more free-form, based on connections between concepts in more diverse patterns. Also, concept maps typically have text labels on the links between nodes. However, either can be part of a larger personal knowledge base system. Modeling graphs or graphical modeling languages: There is no rigorous right or wrong with mind maps, which rely on the arbitrariness of mnemonic associations to aid people's information organization and memory. In contrast, a modeling graph such as a UML diagram structures elements using a precise standardized iconography to aid the design of systems. == Research == === Effectiveness === Cunningham (2005) conducted a user study in which 80% of the students thought "mindmapping helped them understand concepts and ideas in science". Other studies also report some subjective positive effects of the use of mind maps. Positive opinions on their effectiveness, however, were much more prominent among students of art and design than in students of computer and information technology, with 62.5% vs 34% (respectively) agreeing that they were able to understand concepts better with mind mapping software. Farrand, Hussain, and Hennessy (2002) found that spider diagrams (similar to concept maps) had limited, but significant, impact on memory recall in undergraduate students (a 10% increase over baseline for a 600-word text only) as compared to preferred study methods (a 6% increase over baseline). This improvement was only robust after a week for those in the diagram group and there was a significant decrease in motivation compared to the subjects' preferred methods of note taking. A meta study about concept mapping concluded that concept mapping is more effective than "reading text passages, attending lectures, and participating in class discussions". The same study also concluded that concept mapping is slightly more effective "than other constructive activities such as writing summaries and outlines". However, results were inconsistent, with the authors noting "significant heterogeneity was found in most subsets". In addition, they concluded that low-ability students may benefit more from mind mapping than high-ability students. === Features === Joeran Beel and Stefan Langer conducted a comprehensive analysis of the content of mind maps. They analysed 19,379 mind maps from 11,179 users of the mind mapping applications SciPlore MindMapping (now Docear) and MindMeister. Results include that average users create only a few mind maps (mean=2.7), average mind maps are rather small (31 nodes) with each node containing about three words (median). However, there were exceptions. One user created more than 200 mind maps, the largest mind map consisted of more than 50,000 nodes and the largest node contained ~7,500 words. The study also showed that between different mind mapping applications (Docear vs MindMeister) significant differences exist related to how users create mind maps. === Automatic creation === There have been some attempts to create mind maps automatically. Brucks & Schommer created mind maps automatically from full-text streams. Rothenberger et al. extracted the main story of a text and presented it as mind map. There is also a patent application about automatically creating sub-topics in mind maps. == Tools == Mind-mapping software can be used to organize large amounts of information, combining spatial organization, dynamic hierarchical structuring and node folding.Software packages can extend the concept of mind-mapping by allowing individuals to map more than thoughts and ideas with information on their computers and the Internet, like spreadsheets, documents, Internet sites, images and videos. It has been suggested that mind-mapping can improve learning/study efficiency up to 15% over conventional note-taking. == Gallery == The following dozen examples of mind maps show the range of styles that a mind map may take, from hand-drawn to computer-generated and from mostly text to highly illustrated. Despite their stylistic differences, all of the examples share a tree structure that hierarchically connects sub-topics to a main topic.

    Read more →