The Murderbot Diaries is a science fiction series by American author Martha Wells, published by Tor Books. The series is told from the perspective of the titular cyborg guard, a "SecUnit" owned by a futuristic megacorporation. SecUnits include "governor" modules that control and punish the constructs if they take any actions not approved by the company. The ironically self-named "Murderbot" hacked and disabled the module but pretends to be a normal SecUnit, staving off the boredom of security work by watching media. As it spends more time with a series of caring entities (both humans and artificial intelligences), it develops genuine friendships and emotional connections, which it finds inconvenient. The TV series Murderbot is based on the novels by Martha Wells. == Books == === Setting === In an advanced largely hyper-capitalist space-faring society, travel between star systems is routine due to now-stable wormhole technology. Initially, wormhole travel was unreliable, but has since improved to the point where "lost" colonies are being found. People reside on planets, some of which have been terraformed, or on space habitats which have full life support and artificial gravity. Most people who can afford it have technology that allows them to tap into ubiquitous data feeds supplying all kinds of information, including entertainment. This technology can be worn, or be implanted into the body. Sentient and semi-sentient artificial intelligences perform tasks such as operating starships, mining, controlling habitats, moving cargo, waging corporate warfare, providing physical pleasure and comfort, or security. Most of these purposes are fulfilled by "bots" of varying complexity and intelligence, but the last three are respectively performed by CombatUnits, ComfortUnits, and SecUnits. The characters and narrator of the book call these conscious entities "constructs", but they are functionally cyborgs (cybernetic organisms): part machine, part organic. A significant distinction, however, is that they are manufactured entities, not born and later modified. The Corporation Rim is a profit-oriented, cutthroat part of this society that indulges in espionage, assassination, indentured slavery, and ruthless exploitation of resources. One particular target of the corporations is illegal "alien remnant" exploitation. These remnants are often extremely dangerous to people and machines. The laws are enforced by other corporations. Outside the Corporation Rim are colonies, such as Preservation, that have established their right to exist under various laws that, at least for the time being, the corporations are unwilling to test. Wells noted in 2017 that All Systems Red, Artificial Condition, Rogue Protocol, and Exit Strategy "have an overarching story, with the fourth one bringing the arc to a conclusion". === Story chronology === "Compulsory" All Systems Red Artificial Condition Rogue Protocol Exit Strategy "Rapport" "Home" Fugitive Telemetry Network Effect System Collapse Platform Decay === All Systems Red (2017) === A scientific expedition on an alien planet goes awry when one of its members is attacked by a giant native creature. She is saved by the expedition's SecUnit (Security Unit), a security construct with a mixture of robot and human features. The SecUnit has secretly hacked the governor module allowing it to be controlled by humans and has named itself Murderbot, as it is heavily armed and designed for combat. However, it prefers to spend its time watching space operas and is uncomfortable interacting with humans. The SecUnit has a vested interest in keeping its human clients safe and alive, since it wants to avoid discovery of its autonomy and has an especially grisly expedition on its record. Murderbot soon discovers information regarding hazardous fauna has been deleted from their survey packet of the planet. Further investigation reveals some sections on their maps are missing as well. Meanwhile, the PreservationAux survey team, led by Dr. Mensah, navigate their mixed feelings about the part machine, part human nature of their SecUnit. As members of an egalitarian, independent planet outside of the Corporation Rim, the survey team struggles with the system of indentured servitude (and in many cases de facto slavery) the rim operates under. When they lose contact with the only other known expedition on the planet, the DeltFall Group, Mensah leads a team to the opposite side of the planet to investigate. At the DeltFall habitat, Murderbot discovers everyone there has been brutally murdered, and one of their three SecUnits has been destroyed. Murderbot disables the remaining two as they attack it but is surprised when two additional SecUnits appear. Murderbot destroys one, and Mensah takes the other. During these encounters, Murderbot is seriously injured. It also realizes one of the rogue SecUnits has installed a combat override module into its neck. The Preservation scientists are able to remove it before it completes the data upload which would put Murderbot under the control of whoever has command over the other SecUnits. The team discovers Murderbot is autonomous, and had once malfunctioned and murdered 57 people. The Preservation scientists mostly agree, based on its protective behavior thus far, the SecUnit can be trusted. Remembering small incidents which appear to be attempted sabotage, Murderbot and the group determine there must be a third expedition on the planet, whose members are trying to eliminate DeltFall and Preservation for some reason. The Preservation scientists confirm their HubSystem has been hacked. They flee their habitat before the mystery expedition they have dubbed EvilSurvey comes to kill them. The EvilSurvey team—GrayCris—leaves a message in the Preservation habitat inviting its scientists to meet at a rendezvous point to negotiate terms for their survival. Murderbot knows GrayCris will never let them live, so the SecUnit formulates a plan. It makes an overture to GrayCris to negotiate for its own freedom, but this is a distraction while the Preservation scientists access the GrayCris HubSystem to activate their emergency beacon. The plan works, but Murderbot is injured protecting Mensah from the explosion of the launch. Later, the SecUnit finds itself repaired retaining its memories and disabled governor module. Mensah has bought its contract, and she plans to bring it back to Preservation's home base where it can legally live autonomously. Though grateful, Murderbot is reluctant to have its decisions made for it, and it slips away on a cargo ship. === Artificial Condition (2018) === Murderbot makes deals with bots piloting unmanned cargo ships to travel toward the mining facility where it once malfunctioned—resulting in the death of 57 people. It hopes to learn more about the initial incident in which it went rogue, of which it has little memory. Murderbot boards the final ship and discovers the bot pilot is an unexpectedly powerful, intrusive artificial intelligence. They come to a tentative truce and watch media together during the final leg of the journey to RaviHyral, the station where the incident occurred. Murderbot learns the ship is a deep-space research vessel assigned to cargo runs during downtime, which explains why the bot pilot is so sophisticated. Murderbot reluctantly allows this artificial intelligence—which it has dubbed ART (Asshole Research Transport) due to its sarcastic personality—to make physical modifications to the SecUnit's body to allow it to pass for an augmented human, and to disconnect the data port at the back of its neck which had been used to insert a combat override module in the previous book. To gain access to the RaviHyral facility, Murderbot takes a contract as a security consultant for three scientists who are meeting with their former employer, the head and namesake of Tlacey Excavations, to negotiate the return of their research, which they believe was illegally seized by the company. Their transport craft is sabotaged, but with ART's help, Murderbot is able to land it safely. Now aware Tlacey is actively trying to kill the scientists rather than comply with their demands, Murderbot guides them through their meeting with Tlacey and thwarts another assassination attempt. Murderbot returns to the site of the massacre and learns it was the result of another mining operation's sabotage attempt using malware, which made all of the facility's SecUnits go berserk. The facility's ComfortUnits—weaponless, anatomically correct constructs sometimes disparagingly called "sexbots"—died attempting to stop the massacre. Tlacey's ComfortUnit voices its desire for freedom and willingness to help Murderbot thwart Tlacey. While the SecUnit meets with a Tlacey employee to secretly retrieve a copy of the research, Tlacey abducts one of the scientists, Tapan. Murderbot goes after her, accepting a combat override module intended to control the SecUnit but actually has no effect, due
Natural Language Toolkit
The Natural Language Toolkit, or more commonly NLTK, is a suite of libraries and programs for symbolic and statistical natural language processing (NLP) for English written in the Python programming language. It supports classification, tokenization, stemming, tagging, parsing, and semantic reasoning functionalities. It was developed by Steven Bird and Edward Loper in the Department of Computer and Information Science at the University of Pennsylvania. NLTK includes graphical demonstrations and sample data. It is accompanied by a book that explains the underlying concepts behind the language processing tasks supported by the toolkit, plus a cookbook. NLTK is intended to support research and teaching in NLP or closely related areas, including empirical linguistics, cognitive science, artificial intelligence, information retrieval, and machine learning. NLTK has been used successfully as a teaching tool, as an individual study tool, and as a platform for prototyping and building research systems. == Library highlights == Discourse representation Lexical analysis: Word and text tokenizer n-gram and collocations Part-of-speech tagger Tree model and Text chunker for capturing Named-entity recognition
Region connection calculus
The region connection calculus (RCC) is intended to serve for qualitative spatial representation and reasoning. RCC abstractly describes regions (in Euclidean space, or in a topological space) by their possible relations to each other. RCC8 consists of 8 basic relations that are possible between two regions: disconnected (DC) externally connected (EC) equal (EQ) partially overlapping (PO) tangential proper part (TPP) tangential proper part inverse (TPPi) non-tangential proper part (NTPP) non-tangential proper part inverse (NTPPi) From these basic relations, combinations can be built. For example, proper part (PP) is the union of TPP and NTPP. == Axioms == RCC is governed by two axioms. for any region x, x connects with itself for any region x, y, if x connects with y, y connects with x == Remark on the axioms == The two axioms describe two features of the connection relation, but not the characteristic feature of the connect relation. For example, we can say that an object is less than 10 meters away from itself and that if object A is less than 10 meters away from object B, object B will be less than 10 meters away from object A. So, the relation 'less-than-10-meters' also satisfies the above two axioms, but does not talk about the connection relation in the intended sense of RCC. == Composition table == The composition table of RCC8 are as follows: "" denotes the universal relation, no relation can be discarded. Usage example: if a TPP b and b EC c, (row 4, column 2) of the table says that a DC c or a EC c. == Examples == The RCC8 calculus is intended for reasoning about spatial configurations. Consider the following example: two houses are connected via a road. Each house is located on an own property. The first house possibly touches the boundary of the property; the second one surely does not. What can we infer about the relation of the second property to the road? The spatial configuration can be formalized in RCC8 as the following constraint network: house1 DC house2 house1 {TPP, NTPP} property1 house1 {DC, EC} property2 house1 EC road house2 { DC, EC } property1 house2 NTPP property2 house2 EC road property1 { DC, EC } property2 road { DC, EC, TPP, TPPi, PO, EQ, NTPP, NTPPi } property1 road { DC, EC, TPP, TPPi, PO, EQ, NTPP, NTPPi } property2 Using the RCC8 composition table and the path-consistency algorithm, we can refine the network in the following way: road { PO, EC } property1 road { PO, TPP } property2 That is, the road either overlaps (PO) property2, or is a tangential proper part of it. But, if the road is a tangential proper part of property2, then the road can only be externally connected (EC) to property1. That is, road PO property1 is not possible when road TPP property2. This fact is not obvious, but can be deduced once we examine the consistent "singleton-labelings" of the constraint network. The following paragraph briefly describes singleton-labelings. First, we note that the path-consistency algorithm will also reduce the possible properties between house2 and property1 from { DC, EC } to just DC. So, the path-consistency algorithm leaves multiple possible constraints on 5 of the edges in the constraint network. Since each of the multiple constraints involves 2 constraints, we can reduce the network to 32 (25) possible unique constraint networks, each containing only single labels on each edge ("singleton labelings"). However, of the 32 possible singleton labelings, only 9 are consistent. (See qualreas for details.) Only one of the consistent singleton labelings has the edge road TPP property2 and the same labeling includes road EC property1. Other versions of the region connection calculus include RCC5 (with only five basic relations - the distinction whether two regions touch each other are ignored) and RCC23 (which allows reasoning about convexity). == RCC8 use in GeoSPARQL == RCC8 has been partially implemented in GeoSPARQL as described below: == Implementations == GQR is a reasoner for RCC-5, RCC-8, and RCC-23 (as well as other calculi for spatial and temporal reasoning) qualreas is a Python framework for qualitative reasoning over networks of relation algebras, such as RCC-8, Allen's interval algebra and more.
Oracle Database
Oracle AI Database (commonly referred to as Oracle Database, Oracle DBMS, Oracle Autonomous Database, or simply as Oracle) is a proprietary multi-model database management system produced and marketed by Oracle Corporation. It is a database commonly used for running online transaction processing (OLTP), data warehousing (DW) and mixed (OLTP & DW) database workloads. Oracle AI Database uses SQL for database updating and retrieval. Oracle Database runs on-premises, on Oracle engineered systems such as Oracle Exadata, on Oracle Cloud Infrastructure, and as a managed Autonomous Database service. It is also offered inside Microsoft Azure, Google Cloud, and Amazon Web Services data centers through Oracle's multicloud offerings. The current long-term support release, Oracle AI Database 26ai, became available in the cloud and on Oracle engineered systems in October 2025 and on-premises for Linux x86-64 in January 2026. == History == Larry Ellison and his two friends and former co-workers, Bob Miner and Ed Oates, started a consultancy called Software Development Laboratories (SDL) in 1977, later Oracle Corporation. SDL developed the original version of the Oracle software. The name Oracle comes from the code-name of a Central Intelligence Agency-funded project Ellison had worked on while formerly employed by Ampex; the CIA was Oracle's first customer, and allowed the company to use the code name for the new product. Ellison wanted his database to be compatible with IBM System R, but that company's Don Chamberlin declined to release its error codes. By 1985 Oracle advertised, however, that "Programs written for SQL/DS or DB2 will run unmodified" on the many non-IBM mainframes, minicomputers, and microcomputers its database supported "Because all versions of ORACLE are identical". Later releases introduced capabilities associated with successive eras of the product, including PL/SQL stored procedures and triggers in Oracle7 (1992), Real Application Clusters in Oracle9i (2001), grid infrastructure and automatic management in Oracle 10g (2003), the multitenant architecture and In-Memory Column Store in Oracle Database 12c (2013), and AI Vector Search and JSON Relational Duality in Oracle Database 23ai (2024). In October 2025 Oracle rebranded the 23ai line as Oracle AI Database 26ai. (see Release History) == Architecture == An Oracle Database system consists of an instance and a database. The instance is a set of memory structures and background processes; the database is the set of files that store data. The instance exists only in memory, and a single instance is associated with one multitenant container database. The principal memory structures are the System Global Area, which is shared, and the Program Global Areas, which are private to individual processes. The shared pool, database buffer cache, and redo log buffer are components of the System Global Area, and the optional In-Memory Column Store also resides there. Background processes operate on the database files and use these memory structures; they include the database writer, the log writer, the checkpoint process, and the system and process monitor processes. Server processes handle connections from client programs and run their SQL statements. Storage is organized logically and physically. Logically, data is held in tablespaces composed of segments, extents, and data blocks. Physically, the database comprises datafiles, control files, and online redo log files, with archived redo logs supporting media recovery. == High Availability and Scalability == Oracle Database includes several technologies for high availability, disaster recovery, and scale. Oracle Real Application Clusters allows multiple instances on separate servers to access one shared database concurrently; it was introduced with Oracle9i in 2001. Oracle Data Guard maintains standby databases synchronized with a primary database, and Active Data Guard additionally allows read-only workloads on a standby while it applies changes. Oracle GoldenGate performs logical replication and data integration across heterogeneous systems. Native sharding, introduced in Oracle Database 12c Release 2, distributes one logical database across independent shards. Oracle Exadata is an engineered system that pairs database servers with storage servers and offloads operations such as filtering to the storage tier; it is available on-premises, in Oracle Cloud Infrastructure, and through Cloud@Customer. == Notable Features == AI Vector Search adds a vector data type, vector indexes, and vector distance operators to the database. These allow similarity search over machine-learning embeddings to be expressed in SQL and combined with queries over relational, JSON, spatial, and graph data. It became generally available in Oracle Database 23ai. JSON Relational Duality exposes the same data both as relational tables and as JSON documents through duality views, so that an application can read and write either representation of the data. It became generally available in Oracle Database 23ai. In-Memory Column Store maintains a column-oriented copy of selected tables in memory in addition to the row-oriented format, and the optimizer can use the columnar copy for analytic queries. It was introduced in Oracle Database 12c Release 1.Partitioning divides large tables and indexes into independently managed pieces. Advanced Compression and Hybrid Columnar Compression are compression features for transactional and warehouse data respectively. == Data Types == Oracle AI Database supports a variety of data types and data models within a single system. These include traditional relational data types as well as semi-structured, unstructured, and specialized data formats, enabling different types of data to be stored and queried together. == Releases and versions == Oracle products follow a custom release-numbering and -naming convention. The "ai" in the current release, Oracle AI Database 26ai, stands for "Artificial Intelligence". Previous releases (e.g. Oracle Database 19c, 10g, and Oracle9i Database) have used suffixes of "c", "g", and "i" which stand for "Cloud", "Grid", and "Internet" respectively. Prior to the release of Oracle8i Database, no suffixes featured in Oracle AI Database naming conventions. There was no v1 of Oracle AI Database, as Ellison "knew no one would want to buy version 1". For some database releases, Oracle also provides an Express Edition (XE) that is free to use. Oracle AI Database release numbering has used the following codes: The Introduction to Oracle AI Database includes a brief history on some of the key innovations introduced with each major release of Oracle AI Database. See My Oracle Support (MOS) note Release Schedule of Current Database Releases (Doc ID 742060.1) for the current Oracle AI Database releases and their patching end dates. == Patch updates and security alerts == Prior to Oracle Database 18c, Oracle Corporation released Critical Patch Updates (CPUs) and Security Patch Updates (SPUs) and Security Alerts to close security vulnerabilities. These releases are issued quarterly; some of these releases have updates issued prior to the next quarterly release. Starting with Oracle Database 18c, Oracle Corporation releases Release Updates (RUs) and Release Update Revisions (RURs). RUs usually contain security, regression (bug), optimizer, and functional fixes which may include feature extensions as well. RURs include all fixes from their corresponding RU but only add new security and regression fixes. However, no new optimizer or functional fixes are included. == Competition == In the market for relational databases, Oracle AI Database competes against commercial products such as IBM Db2 and Microsoft SQL Server. Oracle and IBM tend to battle for the mid-range database market on Unix and Linux platforms, while Microsoft dominates the mid-range database market on Microsoft Windows platforms. However, since they share many of the same customers, Oracle and IBM tend to support each other's products in many middleware and application categories (for example: WebSphere, PeopleSoft, and Siebel Systems CRM), and IBM's hardware divisions work closely with Oracle on performance-optimizing server-technologies (for example, Linux on IBM Z). Niche commercial competitors include Teradata (in data warehousing and business intelligence), Software AG's ADABAS, Sybase, and IBM's Informix, among many others. In the cloud, Oracle AI Database competes against the database services of AWS, Microsoft Azure, and Google Cloud Platform. Increasingly, the Oracle AI Database products compete against open-source software relational and non-relational database systems such as PostgreSQL, MongoDB, Couchbase, Neo4j, ArangoDB and others. Oracle acquired Innobase, supplier of the InnoDB codebase to MySQL, in part to compete better against open source alternatives, and acquired Sun Microsystems, owner of MySQL, in 2010. Database products licensed as open
New Classification Scheme for Chinese Libraries
The New Classification Scheme for Chinese Libraries is a system of library classification developed by Lai Yung-hsiang since 1956. It is modified from "A System of Book Classification for Chinese Libraries" of Liu Guojun, which is based on the Dewey Decimal System. The scheme is developed for Chinese books and commonly used in Taiwan, Hong Kong and Macau. == Main classes == 000 Generalities 100 Philosophy 200 Religion 300 Sciences 400 Applied sciences 500 Social sciences 600 History of China and Geography of China 700 World history and Geography 800 Linguistics and Literature 900 Arts == Outline of the classification tables == 000 Generalities 000 Special collections 010 Bibliography; Literacy (Documentation) 020 Library and information science; Archive management 030 Sinology 040 General encyclopedia 050 Serial publications; Periodicals 060 General organization; Museology 070 General collected essays 080 General series 090 Collected Chinese classics 100 Philosophy 100 Philosophy: general 110 Thought; Learning 120 Chinese philosophy 130 Oriental philosophy 140 Western philosophy 150 Logic 160 Metaphysics 170 Psychology 180 Esthetics (Aesthetics) 190 Ethics 200 Religion 200 Religion: general 210 Science of religion 220 Buddhism 230 Taoism 240 Christianity 250 Islam (Mohammedanism) 260 Judaism 270 Other religions 280 Mythology 290 Astrology; Superstition 300 Sciences 300 Sciences: general 310 Mathematics 320 Astronomy 330 Physics 340 Chemistry 350 Earth science; Geology 360 Biological science 370 Botany 380 Zoology 390 Anthropology 400 Applied sciences 400 Applied sciences: general 410 Medical sciences 420 Home economics 430 Agriculture 440 Engineering 450 Mining and metallurgy 460 Chemical engineering 470 Manufacture 480 Commerce: various business 490 Commerce: administration and management 500 Social sciences 500 Social sciences: general 510 Statistics 520 Education 530 Rite and custom 540 Sociology 550 Economy 560 Finance 570 Political science 580 Law; Jurisprudence 590 Military science 600-700 History and geography 600 History and geography: General History and geography of China 610 General history of China 620 Chinese history by period 630 History of Chinese civilization 640 Diplomatic history of China 650 Historical sources 660 Geography of China 670 Local history 680 Topical topography 690 Chinese travels World history and geography 710 World: general history and geography 720 Oceans and seas 730 Asia: history and geography 740 Europe: history and geography 750 America: history and geography 760 Africa: history and geography 770 Oceania: history and geography 780 Biography 790 Antiquities and archaeology 800 Linguistics and literature 800 Linguistics: general 810 Literature: general 820 Chinese literature 830 Chinese literature: general collections 840 Chinese literature: individual works 850 Various Chinese literature 860 Oriental literature 870 Western literature 880 Other countries literatures 890 Journalism 900 Arts 900 Arts: general 910 Music 920 Architecture 930 Sculpture 940 Drawing and painting; Calligraphy 950 Photography; Computer art 960 Decorative arts 970 Arts and Crafts movement 980 Theatre 990 Recreation and leisure
Autonomous aircraft
An autonomous aircraft is an aircraft which flies under the control of on-board autonomous robotic systems and needs no intervention from a human pilot or remote control. Most contemporary autonomous aircraft are unmanned aerial vehicles (drones) with pre-programmed algorithms to perform designated tasks, but advancements in artificial intelligence technologies (e.g. machine learning) mean that autonomous control systems are reaching a point where several air taxis and associated regulatory regimes are being developed. == History == === Unmanned aerial vehicles === The earliest recorded use of an unmanned aerial vehicle for warfighting occurred in July 1849, serving as a balloon carrier (the precursor to the aircraft carrier) Significant development of radio-controlled drones started in the early 1900s, and originally focused on providing practice targets for training military personnel. The earliest attempt at a powered UAV was A. M. Low's "Aerial Target" in 1916. Autonomous features such as the autopilot and automated navigation were developed progressively through the twentieth century, although techniques such as terrain contour matching (TERCOM) were applied mainly to cruise missiles. Before the introduction of the Bayraktar Kızılelma some modern drones have a high degree of autonomy, although they were not fully capable and the regulatory environment prohibits their widespread use in civil aviation. However some limited trials had been undertaken. On December 17, 2025, two Bayraktar Kızılelma performed the world's first autonomous close-formation flight by two unmanned fighter jets, using artificial intelligence. This was the first time in the history of aviation when two unmanned aerial vehicles flew in close formation on their own. === Passengers === As flight, navigation and communications systems have become more sophisticated, safely carrying passengers has emerged as a practical possibility. Autopilot systems are relieving the human pilot of progressively more duties, but the pilot currently remains necessary. A number of air taxis are under development and larger autonomous transports are also being planned. The personal air vehicle is another class where from one to four passengers are not expected to be able to pilot the aircraft and autonomy is seen as necessary for widespread adoption. == Control system architecture == The computing capability of aircraft flight and navigation systems followed the advances of computing technology, beginning with analog controls and evolving into microcontrollers, then system-on-a-chip (SOC) and single-board computers (SBC). === Sensors === Position and movement sensors give information about the aircraft state. Exteroceptive sensors deal with external information like distance measurements, while proprioceptive ones correlate internal and external states. Degrees of freedom (DOF) refers to both the amount and quality of sensors on board: 6 DOF implies 3-axis gyroscopes and accelerometers (a typical inertial measurement unit – IMU), 9 DOF refers to an IMU plus a compass, 10 DOF adds a barometer and 11 DOF usually adds a GPS receiver. === Actuators === UAV actuators include digital electronic speed controllers (which control the RPM of the motors) linked to motors/engines and propellers, servomotors (for planes and helicopters mostly), weapons, payload actuators, LEDs and speakers. === Software === UAV software called the flight stack or autopilot. The purpose of the flight stack is to obtain data from sensors, control motors to ensure UAV stability, and facilitate ground control and mission planning communication. UAVs are real-time systems that require rapid response to changing sensor data. As a result, UAVs rely on single-board computers for their computational needs. Examples of such single-board computers include Raspberry Pis, Beagleboards, etc. shielded with NavIO, PXFMini, etc. or designed from scratch such as NuttX, preemptive-RT Linux, Xenomai, Orocos-Robot Operating System or DDS-ROS 2.0. Civil-use open-source stacks include: Due to the open-source nature of UAV software, they can be customized to fit specific applications. For example, researchers from the Technical University of Košice have replaced the default control algorithm of the PX4 autopilot. This flexibility and collaborative effort has led to a large number of different open-source stacks, some of which are forked from others, such as CleanFlight, which is forked from BaseFlight and from which three other stacks are forked from. === Loop principles === UAVs employ open-loop, closed-loop or hybrid control architectures. Open loop – This type provides a positive control signal (faster, slower, left, right, up, down) without incorporating feedback from sensor data. Closed loop – This type incorporates sensor feedback to adjust behavior (reduce speed to reflect tailwind, move to altitude 300 feet). The PID controller is common. Sometimes, feedforward is employed, transferring the need to close the loop further. == Communications == Most UAVs use a radio for remote control and exchange of video and other data. Early UAVs had only narrowband uplink. Downlinks came later. These bi-directional narrowband radio links carried command and control (C&C) and telemetry data about the status of aircraft systems to the remote operator. For very long range flights, military UAVs also use satellite receivers as part of satellite navigation systems. In cases when video transmission was required, the UAVs will implement a separate analog video radio link. In most modern autonomous applications, video transmission is required. A broadband link is used to carry all types of data on a single radio link. These broadband links can leverage quality of service techniques to optimize the C&C traffic for low latency. Usually, these broadband links carry TCP/IP traffic that can be routed over the Internet. Communications can be established with: Ground control – a military ground control station (GCS). The MAVLink protocol is increasingly becoming popular to carry command and control data between the ground control and the vehicle. Remote network system, such as satellite duplex data links for some military powers. Downstream digital video over mobile networks has also entered consumer markets, while direct UAV control uplink over the cellular mesh and LTE have been demonstrated and are in trials. Another aircraft, serving as a relay or mobile control station – military manned-unmanned teaming (MUM-T). As mobile networks have increased in performance and reliability over the years, drones have begun to use mobile networks for communication. Mobile networks can be used for drone tracking, remote piloting, over the air updates, and cloud computing. Modern networking standards have explicitly considered autonomous aircraft and therefore include optimizations. The 5G standard has mandated reduced user plane latency to 1ms while using ultra-reliable and low-latency communications. == Autonomy == Basic autonomy comes from proprioceptive sensors. Advanced autonomy calls for situational awareness, knowledge about the environment surrounding the aircraft from exteroceptive sensors: sensor fusion integrates information from multiple sensors. Civil aviation regulators and standards bodies have published high-level roadmaps and discussion papers focused on assurance, safety and governance of AI-enabled systems in aviation, particularly as autonomy increases in operations and decision support. === Basic principles === One way to achieve autonomous control employs multiple control-loop layers, as in hierarchical control systems. As of 2016 the low-layer loops (i.e. for flight control) tick as fast as 32,000 times per second, while higher-level loops may cycle once per second. The principle is to decompose the aircraft's behavior into manageable "chunks", or states, with known transitions. Hierarchical control system types range from simple scripts to finite state machines, behavior trees and hierarchical task planners. The most common control mechanism used in these layers is the PID controller which can be used to achieve hover for a quadcopter by using data from the IMU to calculate precise inputs for the electronic speed controllers and motors. Examples of mid-layer algorithms: Path planning: determining an optimal path for vehicle to follow while meeting mission objectives and constraints, such as obstacles or fuel requirements Trajectory generation (motion planning): determining control maneuvers to take in order to follow a given path or to go from one location to another Trajectory regulation: constraining a vehicle within some tolerance to a trajectory Evolved UAV hierarchical task planners use methods like state tree searches or genetic algorithms. === Autonomy features === UAV manufacturers often build in specific autonomous operations, such as: Self-level: attitude stabilization on the pitch and roll axes. Altitude hold: The aircraft maint
Information Processing Language
Information Processing Language (IPL) is a programming language created by Allen Newell, Cliff Shaw, and Herbert A. Simon at RAND Corporation and the Carnegie Institute of Technology about 1956. Newell had the job of language specifier-application programmer, Shaw was the system programmer, and Simon had the job of application programmer-user. IPL included features to facilitate AI programming, specifically problem solving. such as lists, dynamic memory allocation, data types, recursion, functions as arguments, generators, and cooperative multitasking. IPL also introduced the concepts of symbol processing and list processing. Unfortunately, all of these innovations were cast in a difficult assembly-language style. Nonetheless, IPL-V (the only public version of IPL) ran on many computers through the mid 1960s. == Basics of IPL == An IPL computer has: A set of symbols. All symbols are addresses, and name cells. Unlike symbols in later languages, symbols consist of a character followed by a number, and are written H1, A29, 9–7, 9–100. Cell names beginning with a letter are regional, and are absolute addresses. Cell names beginning with "9-" are local, and are meaningful within the context of a single list. One list's 9-1 is independent of another list's 9–1. Other symbols (e.g., pure numbers) are internal. A set of cells. Lists are made from several cells including mutual references. Cells have several fields: P, a 3-bit field used for an operation code when the cell is used as an instruction, and unused when the cell is data. Q, a 3-valued field used for indirect reference when the cell is used as an instruction, and unused when the cell is data. SYMB, a symbol used as the value in the cell. A set of primitive processes, which would be termed primitive functions in modern languages. The data structure of IPL is the list, but lists are more intricate structures than in many languages. A list consists of a singly linked sequence of symbols, as might be expected—plus some description lists, which are subsidiary singly linked lists interpreted as alternating attribute names and values. IPL provides primitives to access and mutate attribute value by name. The description lists are given local names (of the form 9–1). So, a list named L1 containing the symbols S4 and S5, and described by associating value V1 to attribute A1 and V2 to A2, would be stored as follows. 0 indicates the end of a list; the cell names 100, 101, etc. are automatically generated internal symbols whose values are irrelevant. These cells can be scattered throughout memory; only L1, which uses a regional name that must be globally known, needs to reside in a specific place. IPL is an assembly language for manipulating lists. It has a few cells which are used as special-purpose registers. H1, for example, is the program counter. The SYMB field of H1 is the name of the current instruction. However, H1 is interpreted as a list; the LINK of H1 is, in modern terms, a pointer to the beginning of the call stack. For example, subroutine calls push the SYMB of H1 onto this stack. H2 is the free-list. Procedures which need to allocate memory grab cells off of H2; procedures which are finished with memory put it on H2. On entry to a function, the list of parameters is given in H0; on exit, the results should be returned in H0. Many procedures return a Boolean result indicating success or failure, which is put in H5. Ten cells, W0-W9, are reserved for public working storage. Procedures are "morally bound" (to quote the CACM article) to save and restore the values of these cells. There are eight instructions, based on the values of P: subroutine call, push/pop S to H0; push/pop the symbol in S to the list attached to S; copy value to S; conditional branch. In these instructions, S is the target. S is either the value of the SYMB field if Q=0, the symbol in the cell named by SYMB if Q=1, or the symbol in the cell named by the symbol in the cell named by SYMB if Q=2. In all cases but conditional branch, the LINK field of the cell tells which instruction to execute next. IPL has a library of some 150 basic operations. These include such operations as: Test symbols for equality Find, set, or erase an attribute of a list Locate the next symbol in a list; insert a symbol in a list; erase or copy an entire list Arithmetic operations (on symbol names) Manipulation of symbols; e.g., test if a symbol denotes an integer, or make a symbol local I/O operations "Generators", which correspond to iterators and filters in functional programming. For example, a generator may accept a list of numbers and produce the list of their squares. Generators could accept suitably designed functions—strictly, the addresses of code of suitably designed functions—as arguments. == History == IPL was first utilized to demonstrate that the theorems in Principia Mathematica which were proven laboriously by hand, by Bertrand Russell and Alfred North Whitehead, could in fact be proven by computation. According to Simon's autobiography Models of My Life, this application was originally developed first by hand simulation, using his children as the computing elements, while writing on and holding up note cards as the registers which contained the state variables of the program. IPL was used to implement several early artificial intelligence programs, also by the same authors: the Logic Theorist (1956), the General Problem Solver (1957), and their computer chess program NSS (1958). Several versions of IPL were created: IPL-I (never implemented), IPL-II (1957 for JOHNNIAC), IPL-III (existed briefly), IPL-IV, IPL-V (1958, for IBM 650, IBM 704, IBM 7090, Philco model 212, many others. Widely used). IPL-VI was a proposal for an IPL hardware. A co-processor “IPL-VC” for the CDC 3600 at Argonne National Libraries was developed which could run IPL-V commands. It was used to implement another checker-playing program. This hardware implementation did not improve running times sufficiently to “compete favorably with a language more directly oriented to the structure of present-day machines”. IPL was soon displaced by Lisp, which had much more powerful features, a simpler syntax, and the benefit of automatic garbage collection. == Legacy to computer programming == IPL arguably introduced several programming language features: List manipulation—but only lists of atoms, not general lists Property lists—but only when attached to other lists Higher-order functions—while assembly programming had always allowed computing with the addresses of functions, IPL was an early attempt to generalize this property of assembly language in a principled way Computation with symbols—though symbols have a restricted form in IPL (letter followed by number) Virtual machine Many of these features were generalized, rationalized, and incorporated into Lisp and from there into many other programming languages during the next several decades.