title: Algorithmic skeleton

abstract: In computing, algorithmic skeletons, or parallelism patterns, are a high-level parallel programming model for parallel and distributed computing. Algorithmic skeletons take advantage of common programming patterns to hide the complexity of parallel and distributed applications. Starting from a basic set of patterns (skeletons), more complex patterns can be built by combining the basic ones.

text:
# Algorithmic skeleton

In computing, **algorithmic skeletons**, or **parallelism patterns**, are a high-level parallel programming model for parallel and distributed computing.

Algorithmic skeletons take advantage of common programming patterns to hide the complexity of parallel and distributed applications. Starting from a basic set of patterns (skeletons), more complex patterns can be built by combining the basic ones.

## Overview

The most outstanding feature of algorithmic skeletons, which differentiates them from other high-level parallel programming models, is that orchestration and synchronization of the parallel activities is implicitly defined by the skeleton patterns. Programmers do not have to specify the synchronizations between the application's sequential parts. This yields two implications. First, as the communication/data access patterns are known in advance, cost models can be applied to schedule skeletons programs. Second, that algorithmic skeleton programming reduces the number of errors when compared to traditional lower-level parallel programming models (Threads, MPI).

## Example program

The following example is based on the Java Skandium library for parallel programming.

The objective is to implement an Algorithmic Skeleton-based parallel version of the **QuickSort** algorithm using the Divide and Conquer pattern. Notice that the high-level approach hides Thread management from the programmer.

```
// 1. Define the skeleton program
Skeleton<Range, Range> sort =   new DaC<Range, Range>(
    new ShouldSplit(threshold, maxTimes),
    new SplitList(),
    new Sort(),
    new MergeList());

// 2. Input parameters
Future<Range> future = sort.input(new Range(generate(...)));

// 3. Do something else here.
// ...

// 4. Block for the results
Range result = future.get();

```
1. The first thing is to define a new instance of the skeleton with the functional code that fills the pattern (ShouldSplit, SplitList, Sort, MergeList). The functional code is written by the programmer without parallelism concerns.
2. The second step is the input of data which triggers the computation. In this case Range is a class holding an array and two indexes which allow the representation of a subarray. For every data entered into the framework a new Future object is created. More than one Future can be entered into a skeleton simultaneously.
3. The Future allows for asynchronous computation, as other tasks can be performed while the results are computed.
4. We can retrieve the result of the computation, blocking if necessary (i.e. results not yet available).

The functional codes in this example correspond to four types Condition, Split, Execute, and Merge.

```
public class ShouldSplit implements Condition<Range>{

  int threshold, maxTimes, times;

  public ShouldSplit(int threshold, int maxTimes){
    this.threshold = threshold;
    this.maxTimes  = maxTimes;
    this.times     = 0;
  }

  @Override
  public synchronized boolean condition(Range r){
    return r.right - r.left > threshold &&
    	   times++ < this.maxTimes;
  }
}

```

The ShouldSplit class implements the Condition interface. The function receives an input, Range r in this case, and returning true or false. In the context of the Divide and Conquer where this function will be used, this will decide whether a sub-array should be subdivided again or not.

The SplitList class implements the split interface, which in this case divides an (sub-)array into smaller sub-arrays. The class uses a helper function `partition(...)` which implements the well-known QuickSort pivot and swap scheme.

```
public class SplitList implements Split<Range, Range>{

 @Override
 public Range[] split(Range r){

    int i = partition(r.array, r.left, r.right);

    Range[] intervals = {new Range(r.array, r.left, i-1),
                         new Range(r.array, i+1, r.right)};

    return intervals;
 }
}

```

The Sort class implements and Execute interface, and is in charge of sorting the sub-array specified by `Range r`. In this case we simply invoke Java's default (Arrays.sort) method for the given sub-array.

```
public class Sort implements Execute<Range, Range> {

  @Override
  public Range execute(Range r){

    if (r.right <= r.left) return r;

    Arrays.sort(r.array, r.left, r.right+1);

    return r;
  }
}

```

Finally, once a set of sub-arrays are sorted we merge the sub-array parts into a bigger array with the MergeList class which implements a Merge interface.

```
public class MergeList implements Merge<Range, Range>{

  @Override
  public Range merge(Range[] r){

    Range result = new Range( r[0].array, r[0].left, r[1].right);

    return result;
  }
}

```

## Frameworks and libraries

### ASSIST

**ASSIST** is a programming environment which provides programmers with a structured coordination language. The coordination language can express parallel programs as an arbitrary graph of software modules. The module graph describes how a set of modules interact with each other using a set of typed data streams. The modules can be sequential or parallel. Sequential modules can be written in C, C++, or Fortran; and parallel modules are programmed with a special ASSIST parallel module (*parmod*).

AdHoc, a hierarchical and fault-tolerant Distributed Shared Memory (DSM) system is used to interconnect streams of data between processing elements by providing a repository with: get/put/remove/execute operations. Research around AdHoc has focused on transparency, scalability, and fault-tolerance of the data repository.

While not a classical skeleton framework, in the sense that no skeletons are provided, ASSIST's generic *parmod* can be specialized into classical skeletons such as: *farm*, *map*, etc. ASSIST also supports autonomic control of *parmods*, and can be subject to a performance contract by dynamically adapting the number of resources used.

### CO2P3S

**CO2P3S** (Correct Object-Oriented Pattern-based Parallel Programming System), is a pattern oriented development environment, which achieves parallelism using threads in Java.

**CO2P3S** is concerned with the complete development process of a parallel application. Programmers interact through a programming GUI to choose a pattern and its configuration options. Then, programmers fill the hooks required for the pattern, and new code is generated as a framework in Java for the parallel execution of the application. The generated framework uses three levels, in descending order of abstraction: patterns layer, intermediate code layer, and native code layer. Thus, advanced programmers may intervene the generated code at multiple levels to tune the performance of their applications. The generated code is mostly type safe, using the types provided by the programmer which do not require extension of superclass, but fails to be completely type safe such as in the reduce(..., Object reducer) method in the mesh pattern.

The set of patterns supported in CO2P3S corresponds to method-sequence, distributor, mesh, and wavefront. Complex applications can be built by composing frameworks with their object references. Nevertheless, if no pattern is suitable, the MetaCO2P3S graphical tool addresses extensibility by allowing programmers to modify the pattern designs and introduce new patterns into CO2P3S.

Support for distributed memory architectures in CO2P3S was introduced in later. To use a distributed memory pattern, programmers must change the pattern's memory option from shared to distributed, and generate the new code. From the usage perspective, the distributed memory version of the code requires the management of remote exceptions.

### Calcium & Skandium

**Calcium** is greatly inspired by Lithium and Muskel. As such, it provides algorithmic skeleton programming as a Java library. Both task and data parallel skeletons are fully nestable; and are instantiated via parametric skeleton objects, not inheritance.

**Calcium** supports the execution of skeleton applications on top of the ProActive environment for distributed cluster like infrastructure. Additionally, Calcium has three distinctive features for algorithmic skeleton programming. First, a performance tuning model which helps programmers identify code responsible for performance bugs. Second, a type system for nestable skeletons which is proven to guarantee subject reduction properties and is implemented using Java Generics. Third, a transparent algorithmic skeleton file access model, which enables skeletons for data intensive applications.

Skandium is a complete re-implementation of **Calcium** for multi-core computing. Programs written on **Skandium** may take advantage of shared memory to simplify parallel programming.

### Eden

**Eden** is a parallel programming language for distributed memory environments, which extends Haskell. Processes are defined explicitly to achieve parallel programming, while their communications remain implicit. Processes communicate through unidirectional channels, which connect one writer to exactly one reader. Programmers only need to specify which data a processes depends on. Eden's process model provides direct control over process granularity, data distribution and communication topology.

**Eden** is not a skeleton language in the sense that skeletons are not provided as language constructs. Instead, skeletons are defined on top of Eden's lower-level process abstraction, supporting both task and data parallelism. So, contrary to most other approaches, Eden lets the skeletons be defined in the same language and at the same level, the skeleton instantiation is written: Eden itself. Because Eden is an extension of a functional language, Eden skeletons are higher order functions. Eden introduces the concept of implementation skeleton, which is an architecture independent scheme that describes a parallel implementation of an algorithmic skeleton.

### eSkel

The **Edinburgh Skeleton Library** (**eSkel**) is provided in C and runs on top of MPI. The first version of eSkel was described in, while a later version is presented in.

In, nesting-mode and interaction-mode for skeletons are defined. The nesting-mode can be either transient or persistent, while the interaction-mode can be either implicit or explicit. Transient nesting means that the nested skeleton is instantiated for each invocation and destroyed Afterwards, while persistent means that the skeleton is instantiated once and the same skeleton instance will be invoked throughout the application. Implicit interaction means that the flow of data between skeletons is completely defined by the skeleton composition, while explicit means that data can be generated or removed from the flow in a way not specified by the skeleton composition. For example, a skeleton that produces an output without ever receiving an input has explicit interaction.

Performance prediction for scheduling and resource mapping, mainly for pipe-lines, has been explored by Benoit et al. They provided a performance model for each mapping, based on process algebra, and determine the best scheduling strategy based on the results of the model.

More recent works have addressed the problem of adaptation on structured parallel programming, in particular for the pipe skeleton.

### FastFlow

**FastFlow** is a skeletal parallel programming framework specifically targeted to the development of streaming and data-parallel applications. Being initially developed to target multi-core platforms, it has been successively extended to target heterogeneous platforms composed of clusters of shared-memory platforms, possibly equipped with computing accelerators such as NVidia GPGPUs, Xeon Phi, Tilera TILE64. The main design philosophy of **FastFlow** is to provide application designers with key features for parallel programming (e.g. time-to-market, portability, efficiency and performance portability) via suitable parallel programming abstractions and a carefully designed run-time support. **FastFlow** is a general-purpose C++ programming framework for heterogeneous parallel platforms. Like other high-level programming frameworks, such as Intel TBB and OpenMP, it simplifies the design and engineering of portable parallel applications. However, it has a clear edge in terms of expressiveness and performance with respect to other parallel programming frameworks in specific application scenarios, including, inter alia: fine-grain parallelism on cache-coherent shared-memory platforms; streaming applications; coupled usage of multi-core and accelerators. In other cases **FastFlow** is typically comparable to (and is some cases slightly faster than) state-of-the-art parallel programming frameworks such as Intel TBB, OpenMP, Cilk, etc.

### HDC

**Higher-order Divide and Conquer** (**HDC**) is a subset of the functional language Haskell. Functional programs are presented as polymorphic higher-order functions, which can be compiled into C/MPI, and linked with skeleton implementations. The language focus on divide and conquer paradigm, and starting from a general kind of divide and conquer skeleton, more specific cases with efficient implementations are derived. The specific cases correspond to: fixed recursion depth, constant recursion degree, multiple block recursion, elementwise operations, and correspondent communications

**HDC** pays special attention to the subproblem's granularity and its relation with the number of Available processors. The total number of processors is a key parameter for the performance of the skeleton program as HDC strives to estimate an adequate assignment of processors for each part of the program. Thus, the performance of the application is strongly related with the estimated number of processors leading to either exceeding number of subproblems, or not enough parallelism to exploit available processors.

### HOC-SA

HOC-SA is an Globus Incubator project.
HOC-SA stands for Higher-Order Components-Service Architecture. Higher-Order Components (HOCs) have the aim of simplifying Grid application development.
The objective of HOC-SA is to provide Globus users, who do not want to know about all the details of the Globus middleware (GRAM RSL documents, Web services and resource configuration etc.), with HOCs that provide a higher-level interface to the Grid than the core Globus Toolkit.
HOCs are Grid-enabled skeletons, implemented as components on top of the Globus Toolkit, remotely accessibly via Web Services.

### JaSkel

**JaSkel** is a Java-based skeleton framework providing skeletons such as farm, pipe and heartbeat. Skeletons are specialized using inheritance. Programmers implement the abstract methods for each skeleton to provide their application specific code. Skeletons in JaSkel are provided in both sequential, concurrent and dynamic versions. For example, the concurrent farm can be used in shared memory environments (threads), but not in distributed environments (clusters) where the distributed farm should be used. To change from one version to the other, programmers must change their classes' signature to inherit from a different skeleton. The nesting of skeletons uses the basic Java Object class, and therefore no type system is enforced during the skeleton composition.

The distribution aspects of the computation are handled in **JaSkel** using AOP, more specifically the AspectJ implementation. Thus, **JaSkel** can be deployed on both cluster and Grid like infrastructures. Nevertheless, a drawback of the **JaSkel** approach is that the nesting of the skeleton strictly relates to the deployment infrastructure. Thus, a double nesting of farm yields a better performance than a single farm on hierarchical infrastructures. This defeats the purpose of using AOP to separate the distribution and functional concerns of the skeleton program.

### Lithium & Muskel

**Lithium** and its successor **Muskel** are skeleton frameworks developed at University of Pisa, Italy. Both of them provide nestable skeletons to the programmer as Java libraries. The evaluation of a skeleton application follows a formal definition of operational semantics introduced by Aldinucci and Danelutto, which can handle both task and data parallelism. The semantics describe both functional and parallel behavior of the skeleton language using a labeled transition system. Additionally, several performance optimization are applied such as: skeleton rewriting techniques \[18, 10\], task lookahead, and server-to-server lazy binding.

At the implementation level, Lithium exploits macro-data flow to achieve parallelism. When the input stream receives a new parameter, the skeleton program is processed to obtain a macro-data flow graph. The nodes of the graph are macro-data flow instructions (MDFi) which represent the sequential pieces of code provided by the programmer. Tasks are used to group together several MDFi, and are consumed by idle processing elements from a task pool. When the computation of the graph is concluded, the result is placed into the output stream and thus delivered back to the user.

**Muskel** also provides non-functional features such as Quality of Service (QoS); security between task pool and interpreters; and resource discovery, load balancing, and fault tolerance when interfaced with Java / Jini Parallel Framework (JJPF), a distributed execution framework. **Muskel** also provides support for combining structured with unstructured programming and recent research has addressed extensibility.

### Mallba

**Mallba** is a library for combinatorial optimizations supporting exact, heuristic and hybrid search strategies. Each strategy is implemented in Mallba as a generic skeleton which can be used by providing the required code. On the exact search algorithms Mallba provides branch-and-bound and dynamic-optimization skeletons. For local search heuristics Mallba supports: hill climbing, metropolis, simulated annealing, and tabu search; and also population based heuristics derived from evolutionary algorithms such as genetic algorithms, evolution strategy, and others (CHC). The hybrid skeletons combine strategies, such as: GASA, a mixture of genetic algorithm and simulated annealing, and CHCCES which combines CHC and ES.

The skeletons are provided as a C++ library and are not nestable but type safe. A custom MPI abstraction layer is used, NetStream, which takes care of primitive data type marshalling, synchronization, etc. A skeleton may have multiple lower-level parallel implementations depending on the target architectures: sequential, LAN, and WAN. For example: centralized master-slave, distributed master-slave, etc.

**Mallba** also provides state variables which hold the state of the search skeleton. The state links the search with the environment, and can be accessed to inspect the evolution of the search and decide on future actions. For example, the state can be used to store the best solution found so far, or α, β values for branch and bound pruning.

Compared with other frameworks, Mallba's usage of skeletons concepts is unique. Skeletons are provided as parametric search strategies rather than parametric parallelization patterns.

### Marrow

**Marrow** is a C++ algorithmic skeleton framework for the orchestration of OpenCL computations in, possibly heterogeneous, multi-GPU environments. It provides a set of both task and data-parallel skeletons that can be composed, through nesting, to build compound computations. The leaf nodes of the resulting composition trees represent the GPU computational kernels, while the remainder nodes denote the skeleton applied to the nested sub-tree. The framework takes upon itself the entire host-side orchestration required to correctly execute these trees in heterogeneous multi-GPU environments, including the proper ordering of the data-transfer and of the execution requests, and the communication required between the tree's nodes.

Among Marrow's most distinguishable features are a set of skeletons previously unavailable in the GPU context, such as Pipeline and Loop, and the skeleton nesting ability – a feature also new in this context. Moreover, the framework introduces optimizations that overlap communication and computation, hence masking the latency imposed by the PCIe bus.

The parallel execution of a Marrow composition tree by multiple GPUs follows a data-parallel decomposition strategy, that concurrently applies the entire computational tree to different partitions of the input dataset. Other than expressing which kernel parameters may be decomposed and, when required, defining how the partial results should be merged, the programmer is completely abstracted from the underlying multi-GPU architecture.

More information, as well as the source code, can be found at the Marrow website

### Muesli

The Muenster Skeleton Library **Muesli** is a C++ template library which re-implements many of the ideas and concepts introduced in Skil, e.g. higher order functions, currying, and polymorphic types . It is built on top of MPI 1.2 and OpenMP 2.5 and supports, unlike many other skeleton libraries, both task and data parallel skeletons. Skeleton nesting (composition) is similar to the two tier approach of P3L, i.e. task parallel skeletons can be nested arbitrarily while data parallel skeletons cannot, but may be used at the leaves of a task parallel nesting tree. C++ templates are used to render skeletons polymorphic, but no type system is enforced. However, the library implements an automated serialization mechanism inspired by such that, in addition to the standard MPI data types, arbitrary user-defined data types can be used within the skeletons. The supported task parallel skeletons are Branch & Bound, Divide & Conquer, Farm, and Pipe, auxiliary skeletons are Filter, Final, and Initial. Data parallel skeletons, such as fold (reduce), map, permute, zip, and their variants are implemented as higher order member functions of a distributed data structure. Currently, Muesli supports distributed data structures for arrays, matrices, and sparse matrices.

As a unique feature, Muesli's data parallel skeletons automatically scale both on single- as well as on multi-core, multi-node cluster architectures. Here, scalability across nodes and cores is ensured by simultaneously using MPI and OpenMP, respectively. However, this feature is optional in the sense that a program written with Muesli still compiles and runs on a single-core, multi-node cluster computer without changes to the source code, i.e. backward compatibility is guaranteed. This is ensured by providing a very thin OpenMP abstraction layer such that the support of multi-core architectures can be switched on/off by simply providing/omitting the OpenMP compiler flag when compiling the program. By doing so, virtually no overhead is introduced at runtime.

### P3L, SkIE, SKElib

**P3L** (Pisa Parallel Programming Language) is a skeleton based coordination language. **P3L** provides skeleton constructs which are used to coordinate the parallel or sequential execution of C code. A compiler named Anacleto is provided for the language. Anacleto uses implementation templates to compile P3 L code into a target architecture. Thus, a skeleton can have several templates each optimized for a different architecture. A template implements a skeleton on a specific architecture and provides a parametric process graph with a performance model. The performance model can then be used to decide program transformations which can lead to performance optimizations.

A **P3L** module corresponds to a properly defined skeleton construct with input and output streams, and other sub-modules or sequential C code. Modules can be nested using the two tier model, where the outer level is composed of task parallel skeletons, while data parallel skeletons may be used in the inner level \[64\]. Type verification is performed at the data flow level, when the programmer explicitly specifies the type of the input and output streams, and by specifying the flow of data between sub-modules.

**SkIE** (Skeleton-based Integrated Environment) is quite similar to **P3L**, as it is also based on a coordination language, but provides advanced features such as debugging tools, performance analysis, visualization and graphical user interface. Instead of directly using the coordination language, programmers interact with a graphical tool, where parallel modules based on skeletons can be composed.

**SKELib** builds upon the contributions of **P3L** and **SkIE** by inheriting, among others, the template system. It differs from them because a coordination language is no longer used, but instead skeletons are provided as a library in C, with performance similar as the one achieved in **P3L**. Contrary to **Skil**, another C like skeleton framework, type safety is not addressed in **SKELib**.

### PAS and EPAS

**PAS** (Parallel Architectural Skeletons) is a framework for skeleton programming developed in C++ and MPI. Programmers use an extension of C++ to write their skeleton applications1 . The code is then passed through a Perl script which expands the code to pure C++ where skeletons are specialized through inheritance.

In **PAS**, every skeleton has a Representative (Rep) object which must be provided by the programmer and is in charge of coordinating the skeleton's execution. Skeletons can be nested in a hierarchical fashion via the Rep objects. Besides the skeleton's execution, the Rep also explicitly manages the reception of data from the higher level skeleton, and the sending of data to the sub-skeletons. A parametrized communication/synchronization protocol is used to send and receive data between parent and sub-skeletons.

An extension of PAS labeled as **SuperPas** and later as **EPAS** addresses skeleton extensibility concerns. With the **EPAS** tool, new skeletons can be added to **PAS**. A Skeleton Description Language (SDL) is used to describe the skeleton pattern by specifying the topology with respect to a virtual processor grid. The SDL can then be compiled into native C++ code, which can be used as any other skeleton.

### SBASCO

**SBASCO** (**Skeleton-BAsed Scientific COmponents**) is a programming environment oriented towards efficient development of parallel and distributed numerical applications. **SBASCO** aims at integrating two programming models: skeletons and components with a custom composition language. An application view of a component provides a description of its interfaces (input and output type); while a configuration view provides, in addition, a description of the component's internal structure and processor layout. A component's internal structure can be defined using three skeletons: farm, pipe and multi-block.

**SBASCO'**s addresses domain decomposable applications through its multi-block skeleton. Domains are specified through arrays (mainly two dimensional), which are decomposed into sub-arrays with possible overlapping boundaries. The computation then takes place in an iterative BSP like fashion. The first stage consists of local computations, while the second stage performs boundary exchanges. A use case is presented for a reaction-diffusion problem in.

Two type of components are presented in. Scientific Components (SC) which provide the functional code; and Communication Aspect Components (CAC) which encapsulate non-functional behavior such as communication, distribution processor layout and replication. For example, SC components are connected to a CAC component which can act as a manager at runtime by dynamically re-mapping processors assigned to a SC. A use case showing improved performance when using CAC components is shown in.

### SCL

The **Structured Coordination Language** (**SCL**) was one of the earliest skeleton programming languages. It provides a co-ordination language approach for skeleton programming over software components. SCL is considered a base language, and was designed to be integrated with a host language, for example Fortran or C, used for developing sequential software components. In **SCL**, skeletons are classified into three types: **configuration**, **elementary** and **computation**. Configuration skeletons abstract patterns for commonly used data structures such as distributed arrays (ParArray). Elementary skeletons correspond to data parallel skeletons such as map, scan, and fold. Computation skeletons which abstract the control flow and correspond mainly to task parallel skeletons such as farm, SPMD, and iterateUntil. The coordination language approach was used in conjunction with performance models for programming traditional parallel machines as well as parallel heterogeneous machines that have different multiple cores on each processing node.

### SkePU

**SkePU** SkePU is a skeleton programming framework for multicore CPUs and multi-GPU systems. It is a C++ template library with six data-parallel and one task-parallel skeletons, two container types, and support for execution on multi-GPU systems both with CUDA and OpenCL. Recently, support for hybrid execution, performance-aware dynamic scheduling and load balancing is developed in SkePU by implementing a backend for the StarPU runtime system. SkePU is being extended for GPU clusters.

### SKiPPER & QUAFF

**SKiPPER** is a domain specific skeleton library for vision applications which provides skeletons in CAML, and thus relies on CAML for type safety. Skeletons are presented in two ways: declarative and operational. Declarative skeletons are directly used by programmers, while their operational versions provide an architecture specific target implementation. From the runtime environment, CAML skeleton specifications, and application specific functions (provided in C by the programmer), new C code is generated and compiled to run the application on the target architecture. One of the interesting things about **SKiPPER** is that the skeleton program can be executed sequentially for debugging.

Different approaches have been explored in **SKiPPER** for writing operational skeletons: static data-flow graphs, parametric process networks, hierarchical task graphs, and tagged-token data-flow graphs.

**QUAFF** is a more recent skeleton library written in C++ and MPI. QUAFF relies on template-based meta-programming techniques to reduce runtime overheads and perform skeleton expansions and optimizations at compilation time. Skeletons can be nested and sequential functions are stateful. Besides type checking, QUAFF takes advantage of C++ templates to generate, at compilation time, new C/MPI code. QUAFF is based on the CSP-model, where the skeleton program is described as a process network and production rules (single, serial, par, join).

### SkeTo

The **SkeTo** project is a C++ library which achieves parallelization using MPI. SkeTo is different from other skeleton libraries because instead of providing nestable parallelism patterns, SkeTo provides parallel skeletons for parallel data structures such as: lists, trees, and matrices. The data structures are typed using templates, and several parallel operations can be invoked on them. For example, the list structure provides parallel operations such as: map, reduce, scan, zip, shift, etc...

Additional research around SkeTo has also focused on optimizations strategies by transformation, and more recently domain specific optimizations. For example, **SkeTo** provides a fusion transformation which merges two successive function invocations into a single one, thus decreasing the function call overheads and avoiding the creation of intermediate data structures passed between functions.

### Skil

**Skil** is an imperative language for skeleton programming. Skeletons are not directly part of the language but are implemented with it. **Skil** uses a subset of C language which provides functional language like features such as higher order functions, curring and polymorphic types. When **Skil** is compiled, such features are eliminated and a regular C code is produced. Thus, **Skil** transforms polymorphic high order functions into monomorphic first order C functions. **Skil** does not support nestable composition of skeletons. Data parallelism is achieved using specific data parallel structures, for example to spread arrays among available processors. Filter skeletons can be used.

### STAPL Skeleton Framework

In **STAPL Skeleton Framework** skeletons are defined as parametric data flow graphs, letting them scale beyond 100,000 cores. In addition, this framework addresses composition of skeletons as point-to-point composition of their corresponding data flow graphs through the notion of ports, allowing new skeletons to be easily added to the framework. As a result, this framework eliminate the need for reimplementation and global synchronizations in composed skeletons. **STAPL Skeleton Framework** supports nested composition and can switch between parallel and sequential execution in each level of nesting. This framework benefits from scalable implementation of STAPL parallel containers and can run skeletons on various containers including vectors, multidimensional arrays, and lists.

### T4P

**T4P** was one of the first systems introduced for skeleton programming. The system relied heavily on functional programming properties, and five skeletons were defined as higher order functions: Divide-and-Conquer, Farm, Map, Pipe and RaMP. A program could have more than one implementation, each using a combination of different skeletons. Furthermore, each skeleton could have different parallel implementations. A methodology based on functional program transformations guided by performance models of the skeletons was used to select the most appropriate skeleton to be used for the program as well as the most appropriate implementation of the skeleton.

## Frameworks comparison

* **Activity years** is the known activity years span. The dates represented in this column correspond to the first and last publication date of a related article in a scientific journal or conference proceeding. Note that a project may still be active beyond the activity span, and that we have failed to find a publication for it beyond the given date.
* **Programming language** is the interface with which programmers interact to code their skeleton applications. These languages are diverse, encompassing paradigms such as: functional languages, coordination languages, markup languages, imperative languages, object-oriented languages, and even graphical user interfaces. Inside the programming language, skeletons have been provided either as language constructs or libraries. Providing skeletons as language construct implies the development of a custom domain specific language and its compiler. This was clearly the stronger trend at the beginning of skeleton research. The more recent trend is to provide skeletons as libraries, in particular with object-oriented languages such as C++ and Java.
* **Execution language** is the language in which the skeleton applications are run or compiled. It was recognized very early that the programming languages (specially in the functional cases), were not efficient enough to execute the skeleton programs. Therefore, skeleton programming languages were simplified by executing skeleton application on other languages. Transformation processes were introduced to convert the skeleton applications (defined in the programming language) into an equivalent application on the target execution language. Different transformation processes were introduced, such as code generation or instantiation of lowerlevel skeletons (sometimes called operational skeletons) which were capable of interacting with a library in the execution language. The transformed application also gave the opportunity to introduce target architecture code, customized for performance, into the transformed application. Table 1 shows that a favorite for execution language has been the C language.
* **Distribution library** provides the functionality to achieve parallel/distributed computations. The big favorite in this sense has been MPI, which is not surprising since it integrates well with the C language, and is probably the most used tool for parallelism in cluster computing. The dangers of directly programming with the distribution library are, of course, safely hidden away from the programmers who never interact with the distribution library. Recently, the trend has been to develop skeleton frameworks capable of interacting with more than one distribution library. For example, CO2 P3 S can use Threads, RMI or Sockets; Mallba can use Netstream or MPI; or JaSkel which uses AspectJ to execute the skeleton applications on different skeleton frameworks.
* **Type safety** refers to the capability of detecting type incompatibility errors in skeleton program. Since the first skeleton frameworks were built on functional languages such as Haskell, type safety was simply inherited from the host language. Nevertheless, as custom languages were developed for skeleton programming, compilers had to be written to take type checking into consideration; which was not as difficult as skeleton nesting was not fully supported. Recently however, as we began to host skeleton frameworks on object-oriented languages with full nesting, the type safety issue has resurfaced. Unfortunately, type checking has been mostly overlooked (with the exception of QUAFF), and specially in Java based skeleton frameworks.
* **Skeleton nesting** is the capability of hierarchical composition of skeleton patterns. Skeleton Nesting was identified as an important feature in skeleton programming from the very beginning, because it allows the composition of more complex patterns starting from a basic set of simpler patterns. Nevertheless, it has taken the community a long time to fully support arbitrary nesting of skeletons, mainly because of the scheduling and type verification difficulties. The trend is clear that recent skeleton frameworks support full nesting of skeletons.
* **File access** is the capability to access and manipulate files from an application. In the past, skeleton programming has proven useful mostly for computational intensive applications, where small amounts of data require big amounts of computation time. Nevertheless, many distributed applications require or produce large amounts of data during their computation. This is the case for astrophysics, particle physics, bio-informatics, etc. Thus, providing file transfer support that integrates with skeleton programming is a key concern which has been mostly overlooked.
* **Skeleton set** is the list of supported skeleton patterns. Skeleton sets vary greatly from one framework to the other, and more shocking, some skeletons with the same name have different semantics on different frameworks. The most common skeleton patterns in the literature are probably farm, pipe, and map.

Non-object oriented algorithmic skeleton frameworks
|  | Activity years | Programming language | Execution language | Distribution library | Type safe | Skeleton nesting | File access | Skeleton set |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| ASSIST | 2004–2007 | Custom control language | C++ | TCP/IP + ssh/scp | Yes | No | explicit | seq, parmod |
| SBSACO | 2004–2006 | Custom composition language | C++ | MPI | Yes | Yes | No | farm, pipe, multi-block |
| eSkel | 2004–2005 | C | C | MPI | No | ? | No | pipeline, farm, deal, butterfly, hallowSwap |
| HDC | 2004–2005 | Haskell subset | C | MPI | Yes | ? | No | dcA, dcB, dcD, dcE, dcF, map, red, scan, filter |
| SKELib | 2000-2000 | C | C | MPI | No | No | No | farm, pipe |
| SkiPPER | 1999–2002 | CAML | C | SynDex | Yes | limited | No | scm, df, tf, intermem |
| SkIE | 1999-1999 | GUI/Custom control language | C++ | MPI | Yes | limited | No | pipe, farm, map, reduce, loop |
| Eden | 1997–2011 | Haskell extension | Haskell | PVM/MPI | Yes | Yes | No | map, farm, workpool, nr, dc, pipe, iterUntil, torus, ring |
| P3L | 1995–1998 | Custom control language | C | MPI | Yes | limited | No | map, reduce, scan, comp, pipe, farm, seq, loop |
| Skil | 1995–1998 | C subset | C | ? | Yes | No | No | pardata, map, fold |
| SCL | 1994–1999 | Custom control language | Fortran/C | MPI | Yes | limited | No | map, scan, fold, farm, SPMD, iterateUntil |
| T4P | 1990–1994 | Hope+ | Hope+ | CSTools | Yes | limited | No | D&C (Divide-and-Conquer), Map, Pipe, RaMP |

Object-oriented algorithmic skeleton frameworks
|  | Activity years | Programming language | Execution language | Distribution library | Type safe | Skeleton nesting | File access | Skeleton set |
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
| Skandium | 2009–2012 | Java | Java | Threads | Yes | Yes | No | seq, pipe, farm, for, while, map, d&c, fork |
| FastFlow | 2009– | C++ | C++11 / CUDA / OpenCL | C++11 threads / Posix threads / TCP-IP / OFED-IB / CUDA / OpenCL | Yes | Yes | Yes | Pipeline, Farm, ParallelFor, ParallelForReduce, MapReduce, StencilReduce, PoolEvolution, MacroDataFlow |
| Calcium | 2006–2008 | Java | Java | ProActive | Yes | Yes | Yes | seq, pipe, farm, for, while, map, d&c, fork |
| QUAFF | 2006–2007 | C++ | C | MPI | Yes | Yes | No | seq, pipe, farm, scm, pardo |
| JaSkel | 2006–2007 | Java | Java/AspectJ | MPP / RMI | No | Yes | No | farm, pipeline, heartbeat |
| Muskel | 2005–2008 | Java | Java | RMI | No | Yes | No | farm, pipe, seq, + custom MDF Graphs |
| HOC-SA | 2004–2008 | Java | Java | Globus, KOALA | No | No | No | farm, pipeline, wavefront |
| SkeTo | 2003–2013 | C++ | C++ | MPI | Yes | No | No | list, matrix, tree |
| Mallba | 2002–2007 | C++ | C++ | NetStream / MPI | Yes | No | No | exact, heuristic, hybrid |
| Marrow | 2013– | C++ | C++ plus OpenCL | (none) | No | Yes | No | data parallel: map, map-reduce. task parallel: pipeline, loop, for |
| Muesli | 2002–2013 | C++ | C++ | MPI / OpenMP | Yes | Yes | No | data parallel: fold, map, permute, scan, zip, and variants. task parallel: branch & bound, divide & conquer, farm, pipe. auxiliary: filter, final, initial |
| Alt | 2002–2003 | Java/GworkflowDL | Java | Java RMI | Yes | No | No | map, zip, reduction, scan, dh, replicate, apply, sort |
| (E)PAS | 1999–2005 | C++ extension | C++ | MPI | No | Yes | No | singleton, replication, compositional, pipeline, divideconquer, dataparallel |
| Lithium | 1999–2004 | Java | Java | RMI | No | Yes | No | pipe, map, farm, reduce |
| CO2P3S | 1999–2003 | GUI/Java | Java (generated) | Threads / RMI / Sockets | Partial | No | No | method-sequence, distributor, mesh, wavefront |
| STAPL | 2010– | C++ | C++11 | STAPL Runtime Library( MPI, OpenMP, PThreads) | Yes | Yes | Yes | map, zip\<arity\>, reduce, scan, farm, (reverse-)butterfly, (reverse-)tree\<k-ary\>, recursive-doubling, serial, transpose, stencil\<n-dim\>, wavefront\<n-dim\>, allreduce, allgather, gather, scatter, broadcast Operators: compose, repeat, do-while, do-all, do-across |


title: Anime and manga

abstract: " Anime and manga or animanga for short are forms of mass media produced by the content industry of Japan. The anime and manga industry forms an integral part of Japan's soft power as one of its most prominent cultural exports. Anime are Japanese animated shows with a distinctive artstyle. Anime storylines can include fantasy or real life. They are famous for elements like vivid graphics and character expressions. In contrast, manga is strictly paper drawings, with comic book style drawings. Usually, animes are adaptations of manga but some of the animes with original stories adapted into manga form.

text:
# Anime and manga

**Anime and manga** or **animanga** for short are forms of mass media produced by the content industry of Japan.

2006 Wikipedia mascot Wikipe-tan portrayed in anime and manga art styles

The anime and manga industry forms an integral part of Japan's soft power as one of its most prominent cultural exports. Anime are Japanese animated shows with a distinctive artstyle. Anime storylines can include fantasy or real life. They are famous for elements like vivid graphics and character expressions. In contrast, manga is strictly paper drawings, with comic book style drawings. Usually, animes are adaptations of manga but some of the animes with original stories adapted into manga form.

## Subculture

In Japanese, the word "subculture" (サブカルチャー, *sabukaruchā*) does not have the same connotation of oppositional culture as it does in English, so it is frequently used in situations where "fandom" might be preferred by Westerners instead.

In Japan, most works start out as manga, with the most successful titles receiving an anime adaptation (アニメ化, *anime-ka*). However, for overseas fans their first encounter with the subculture is typically through broadcast anime. It is common for a work to be distributed overseas via fansubs and scanlations, or unauthorized fanmade translations of anime and manga, respectively, before official translations become available. Typically, overseas fans will first translate the work into English, French, and Chinese, and then into other languages using those as an intermediary. The legality of ethics of these fanmade translations has been hotly debated. Many of those involved refuse to profit from their translations out of principle, and destroy the copies once officially licensed versions become available. Some industry participants in both Japan and the United States have expressed tacit acceptance of fanmade translations, seeing them as a trial run for the American market.

Other types of media such as light novels and video games are frequently associated with and considered part of the anime and manga subculture.

## History

The explosive growth in Japan's soft power began in the 1970s, when it changed from a net importer to a net exporter of information. Prior to the late 1990s, the primary export of Japan's content industry was video games. However, beginning in 2000, the Ministry of Education, Culture, Sports, Science and Technology recognized anime and manga as part of "traditional" Japanese culture, and the government began to promote them as part of its Cool Japan strategy, passing the Content Industry Promotion Law in June 2004. The value of the anime and manga industry is estimated at US$5 billion as of 2008.

Anime and manga were not widely marketed in the United States before the mid-1990s, with only a few titles available on network television. The rapid growth of the genre in the United States has led some commentators to deem it an American import rather than a Japanese export. Due to anime and manga's increased popularity overseas, various companies have begun catering to foreign audiences such as Kadokawa Corporation which has adopted the "Overseas first" policy.

In April 2023, the Japan Business Federation laid out a proposal aiming to spur the economic growth of Japan by further promoting the contents industry abroad, primarily anime, manga and video games, for measures to invite industry experts from abroad to come to Japan to work, and to link with the tourism sector to help foreign fans of manga and anime visit sites across the country associated with particular manga stories. The federation seeks on quadrupling the sales of Japanese content in overseas markets within the upcoming 10 years.

## Industry growth

In 2021, the Association of Japanese Animations valued the country's anime market at $19.2 billion. Precedence Research, a research company for market insights, projects that the anime market will increase from $24.5 billion to $47.14 billion by 2028.

## In other languages

In China, **dongman** (traditional Chinese: 動漫; simplified Chinese: 动漫; pinyin: *dòngmàn*) is a portmanteau of donghua and manhua, used as an umbrella term for animation and comics. The term "dongman" is often mistakenly used to exclusively refer to the animation; in fact, the term should include both the donghua and the manhua. When video games are included, the term used is ACG (traditional Chinese: 動漫遊戲; simplified Chinese: 动漫游戏; pinyin: *dòngmànyóuxì*), short for "animation, comics, and games". A further extension which includes light novels is ACGN, or "animation, comics, games, and novels". Another term for the genre as a whole is *erciyuan* (Chinese: 二次元; pinyin: *èrcìyuán*), meaning "two-dimensional space". One of the most popular websites for ACGN content is bilibili.

1. "ANI-MANGA". OpenCorporates. Retrieved February 1, 2024.
2. Manion, Annie (2005). "Discovering Japan: Anime and Learning Japanese Culture" (PDF). *East Asian Studies Center, USC*. Archived from the original (PDF) on December 15, 2017. Retrieved April 27, 2009.
3. Hernández, Álvaro David Hernández (2018). "The Anime Industry, Networks of Participation, and Environments for the Management of Content in Japan". *Arts*. **7** (3): 42. doi:10.3390/arts7030042. S2CID 54694319.
4. Choo, Kukhee (2012). "Nationalizing 'cool': Japan's global promotion of the content industry". In Otmazgin, Nissim; Ben-Ari, Eyal (eds.). *Popular Culture and the State in East and Southeast Asia*. London: Routledge. pp. 85–105. ISBN 9780203801536.
5. "Anime vs. Manga – What's the Difference?". May 20, 2017.
6. Ōtsuka, Eiji; Steinberg, Marc (2010). "World and Variation: The Reproduction and Consumption of Narrative". *Mechademia*. **5**: 99–116. Retrieved June 19, 2020.
7. Cooper-Chen, Anne (2011). "Japan's illustrated storytelling: A thematic analysis of globalized Anime and Manga" (PDF). *Keio Communication Review*. **33**: 85–98. Retrieved June 19, 2020.
8. Levi, Antonia (2006). "The Americanization of Anime and Manga: Negotiating Popular Culture". In Brown, Steven T. (ed.). *Cinema Anime: Critical Engagements with Japanese Animation*. New York: Palgrave Macmillan. pp. 43–63. ISBN 9780230606210.
9. Wahab, Juliana Abdul; Anuar & Farhani, Mustafa K. (2012). "Global Media Product and Construction of "Japanese Identity": a Case Study of Anime on Malaysian Television". *Jurnal Komunikasi: Malaysian Journal of Communication*. **28** (2). S2CID 58935141.
10. Morrissy, Kim (November 2, 2021). "Kadokawa Anime Producers Want Isekai To Take Over the World". *Anime News Network*. Retrieved April 26, 2022.
11. Nguyen, Joana (April 10, 2023). "Japan's leading business lobby group says anime, manga key to economic growth". *South China Morning Post*.
12. "Japan: Manga to spearhead nation's economic growth". *DW*. April 23, 2023.
13. Kuroda, Kenro (June 17, 2023). "Group founded to improve work conditions in anime industry". *The Asahi Shimbun*.
14. "Anime Market Size Expected to Reach US$ 48.3 Billion by 2030".
15. "三部门印发关于动漫企业认定管理办法(试行)通知\_A notice regarding recognition for Dongman enterprises". *The State Council of China* (in Chinese). Retrieved December 21, 2018.


title: 1972 Scottish local elections

text:
# 1972 Scottish local elections

Local elections took place in Scotland on 2 May 1972.

The Labour Party built upon their success in the 1971 local elections, coming close to winning control of all four Scottish cities: they fell short in Edinburgh by two seats. One of their other gains was in Greenock, which had been the only council controlled by the Liberal Party.

The Scottish National Party suffered a disastrous result, losing their last remaining ward in Shettleston, Glasgow, for instance, although they increased their majority in their last remaining stronghold of Cumbernauld. Similarly, the Progressives lost all three of the seats they were defending in Glasgow.


title: El Camino Angosto, Texas

abstract: El Camino Angosto is a census-designated place (CDP) in Cameron County, Texas, United States. The population was 186 at the 2020 census. It is part of the Brownsville–Harlingen Metropolitan Statistical Area.

text:
# El Camino Angosto, Texas

**El Camino Angosto** is a census-designated place (CDP) in Cameron County, Texas, United States. The population was 186 at the 2020 census. It is part of the BrownsvilleHarlingen Metropolitan Statistical Area.

## Geography

El Camino Angosto is located in west-central Cameron County at 26°6′46″N 97°38′33″W / 26.11278°N 97.64250°W / 26.11278; -97.64250 (26.112751, -97.642585). It is bordered to the north by the city of San Benito.

According to the United States Census Bureau, the CDP has a total area of 0.32 square miles (0.84 km2), all land.

## Demographics

Historical population
| Census | Pop. | Note |  |
| --- | --- | --- | --- |
| 2000 | 254 |  |  |
| 2010 | 253 |  | −0.4% |
| 2020 | 186 |  | −26.5% |
| U.S. Decennial Census
1850–1900 1910
1920 1930 1940
1950 1960 1970
1980 1990 2000
2010 2020 | | | |

El Camino Angosto first appeared as a census designated place in the 2000 U.S. Census.

### 2020 census

**El Camino Angosto CDP, Texas – Racial and ethnic composition**
*Note: the US Census treats Hispanic/Latino as an ethnic category. This table excludes Latinos from the racial categories and assigns them to a separate category. Hispanics/Latinos may be of any race.*
| Race / Ethnicity (*NH = Non-Hispanic*) | Pop 2000 | Pop 2010 | Pop 2020 | % 2000 | % 2010 | % 2020 |
| --- | --- | --- | --- | --- | --- | --- |
| White alone (NH) | 2 | 13 | 10 | 0.79% | 5.14% | 5.38% |
| Black or African American alone (NH) | 0 | 0 | 0 | 0.00% | 0.00% | 0.00% |
| Native American or Alaska Native alone (NH) | 0 | 0 | 0 | 0.00% | 0.00% | 0.00% |
| Asian alone (NH) | 0 | 0 | 0 | 0.00% | 0.00% | 0.00% |
| Pacific Islander alone (NH) | 0 | 0 | 0 | 0.00% | 0.00% | 0.00% |
| Some Other Race alone (NH) | 0 | 0 | 4 | 0.00% | 0.00% | 2.15% |
| Mixed race or Multiracial (NH) | 0 | 0 | 3 | 0.00% | 0.00% | 1.61% |
| Hispanic or Latino (any race) | 252 | 240 | 169 | 99.21% | 94.86% | 90.86% |
| **Total** | **254** | **253** | **186** | **100.00%** | **100.00%** | **100.00%** |

As of the census of 2000, there were 254 people, 64 households, and 57 families residing in the CDP. The population density was 683.8 inhabitants per square mile (264.0/km2). There were 70 housing units at an average density of 188.5 per square mile (72.8/km2). The racial makeup of the CDP was 23.23% White, 76.77% from other races. Hispanic or Latino of any race were 99.21% of the population.

There were 64 households, out of which 50.0% had children under the age of 18 living with them, 75.0% were married couples living together, 9.4% had a female householder with no husband present, and 10.9% were non-families. 7.8% of all households were made up of individuals, and 4.7% had someone living alone who was 65 years of age or older. The average household size was 3.97 and the average family size was 4.19.

In the CDP, the population was spread out, with 35.0% under the age of 18, 9.4% from 18 to 24, 31.9% from 25 to 44, 15.4% from 45 to 64, and 8.3% who were 65 years of age or older. The median age was 28 years. For every 100 females, there were 100.0 males. For every 100 females age 18 and over, there were 89.7 males.

The median income for a household in the CDP was $26,053, and the median income for a family was $26,645. Males had a median income of $26,579 versus $8,795 for females. The per capita income for the CDP was $8,749. About 28.1% of families and 44.7% of the population were below the poverty line, including 57.5% of those under the age of eighteen and 25.8% of those 65 or over.

## Education

El Camino Angosto is served by the San Benito Consolidated Independent School District.

In addition, South Texas Independent School District operates magnet schools that serve the community.

1. "U.S. Census website". United States Census Bureau. Retrieved January 31, 2008.
2. "US Board on Geographic Names". United States Geological Survey. October 25, 2007. Retrieved January 31, 2008.
3. "US Gazetteer files: 2010, 2000, and 1990". United States Census Bureau. February 12, 2011. Retrieved April 23, 2011.
4. "Geographic Identifiers: 2010 Census Summary File 1 (G001): El Camino Angosto CDP, Texas". U.S. Census Bureau, American Factfinder. Archived from the original on February 13, 2020. Retrieved July 10, 2015.
5. "Decennial Census by Decade". *United States Census Bureau*.
6. "1900 Census of Population - Population of Texas By Counties And Minor Civil Divisions" (PDF). *United States Census Bureau*.
7. "1910 Census of Population - Supplement for Texas" (PDF). *United States Census Bureau*.
8. "1920 Census of Population - Number of Inhabitants - Texas" (PDF). *United States Census Bureau*.
9. "1930 Census of Population - Number of Inhabitants - Texas" (PDF). *United States Census Bureau*.
10. "1940 Census of Population - Number of Inhabitants - Texas" (PDF). *United States Census Bureau*.
11. "1950 Census of Population - Number of Inhabitants - Texas" (PDF). *United States Census Bureau*.
12. "1960 Census of Population - Number of Inhabitants - Texas" (PDF). *United States Census Bureau*.
13. "1970 Census of Population - Number of Inhabitants - Texas" (PDF). *United States Census Bureau*.
14. "1980 Census of Population - Number of Inhabitants - Texas" (PDF). *United States Census Bureau*.
15. "1990 Census of Population - Population and Housing Unit Counts - Texas" (PDF). *United States Census Bureau*.
16. "2000 Census of Population - Population and Housing Unit Counts - Texas" (PDF). *United States Census Bureau*.
17. "2010 Census of Population - Population and Housing Unit Counts - Texas" (PDF). *United States Census Bureau*.
18. "Census Bureau profile: El Camino Angosto, Texas". United States Census Bureau. May 2023. Retrieved May 17, 2024.
19. "P004: Hispanic or Latino, and Not Hispanic or Latino by Race – 2000: DEC Summary File 1 – El Camino Angosto CDP, Texas". United States Census Bureau.
20. "P2: Hispanic or Latino, and Not Hispanic or Latino by Race – 2010: DEC Redistricting Data (PL 94-171) – El Camino Angosto CDP, Texas". United States Census Bureau.
21. "P2: Hispanic or Latino, and Not Hispanic or Latino by Race – 2020: DEC Redistricting Data (PL 94-171) – El Camino Angosto CDP, Texas". United States Census Bureau.

## InfoBox

| El Camino Angosto, Texas | |
| --- | --- |
| Census-designated place | |
|  | |
| Coordinates: 26°6′46″N 97°38′33″W / 26.11278°N 97.64250°W / 26.11278; -97.64250 | |
| Country | United States |
| State | Texas |
| County | Cameron |
| Area | |
| Total | 0.32 sq mi (0.84 km2) |
| Land | 0.32 sq mi (0.84 km2) |
| Water | 0.0 sq mi (0.0 km2) |
| Elevation | 36 ft (11 m) |
| Population (2020) | |
| Total | 186 |
| Density | 570/sq mi (220/km2) |
| Time zone | UTC-6 (Central (CST)) |
| Summer (DST) | UTC-5 (CDT) |
| FIPS code | 48-22858 |
| GNIS feature ID | 1852703 |


title: El Cambio

abstract: El Cambio is the debut studio album by Miguel de la Bastide. It was recorded at La Bastide Productions and mastered by George Graves at Lacquer Channel in Toronto Canada in 1998. The track "Calle Torrecillo del Leal" was mixed by Jesse Cook at his recording studio, which was stated in the liner notes and also in an article in "20th Century Guitar Magazine". The album contains four re-recorded tracks that were previously released under the Narada Productions label onto various Flamenco and Nuevo Flamenco compilations. "Morir Soñando" was previously recorded in 1996 as "Morí Soñando" and was one of his first contributions to the compilation Flamenco: Fire and Grace. The other was "Viajeros", which was originally titled "Viajero". "Calle Torrecillo del Leal" was originally titled "Torrecillo del Leal" on the compilation Gypsy Passion in 1997. "A Mi Carmen" was originally titled "Mi Carmen" on the compilation Gypsy Soul in 1998. Two tracks from the album were later included in Narada compilations: "Candela" was his contribution to Gypsy Fire in early 2000 and a shortened version of the title track, renamed "El Cambio (edit)" on Viva Flamenco! in the later part of 2000, which was the highly anticipated sequel to "Flamenco: Fire and Grace".

text:
# El Cambio

***El Cambio*** is the debut studio album by Miguel de la Bastide. It was recorded at La Bastide Productions and mastered by George Graves at Lacquer Channel in Toronto Canada in 1998. The track "Calle Torrecillo del Leal" was mixed by Jesse Cook at his recording studio, which was stated in the liner notes and also in an article in "20th Century Guitar Magazine".

The album contains four re-recorded tracks that were previously released under the Narada Productions label onto various Flamenco and Nuevo Flamenco compilations. "Morir Soñando" was previously recorded in 1996 as "Morí Soñando" and was one of his first contributions to the compilation *Flamenco: Fire and Grace*. The other was "Viajeros", which was originally titled "Viajero". "Calle Torrecillo del Leal" was originally titled "Torrecillo del Leal" on the compilation *Gypsy Passion* in 1997. "A Mi Carmen" was originally titled "Mi Carmen" on the compilation *Gypsy Soul* in 1998.

Two tracks from the album were later included in Narada compilations: "Candela" was his contribution to *Gypsy Fire* in early 2000 and a shortened version of the title track, renamed "El Cambio (edit)" on *Viva Flamenco!* in the later part of 2000, which was the highly anticipated sequel to "Flamenco: Fire and Grace".

## Track listing

1. "El Cambio" – 7:10
2. "A Mi Carmen" – 4:41
3. "Arrimate” – 4:53
4. "Candela" – 3:27
5. "Calle Torrecillo del Leal" – 5:40
6. "Morir Soñando" – 5:03
7. "Viajeros" – 5:33
8. "Alma Libre" – 10:45 (Contains a hidden track "Soleá")

## Musicians

* Miguel de la Bastide \- Flamenco guitar and palmas
* Mario Melo - percussions and palmas (track 6)
* Debashis Sinha - tables and udu drum (track 2 and 6)
* Rudy Bolanos - bass
* David Slater - sax and flute
* Alfonso Mogaburo Cid - singer
* Carmen Romero - palmas

## InfoBox

| El Cambio | |
| --- | --- |
|  | |
| Studio album by Miguel de la Bastide | |
| Released | 1998 |
| Genre | Flamenco |
| Length | 48:23 |
| Label | La Bastide Productions |
| Miguel de la Bastide chronology | |
| ***El Cambio***
(1998) *Siento*
(2003) | |


title: Anna Hempstead Branch

abstract: Anna Hempstead Branch was an American poet. She was regarded as a major poet during her life, labeled by William Thomas Stead "the Browning of American poetry".

text:
# Anna Hempstead Branch

**Anna Hempstead Branch** (March 18, 1875 – September 8, 1937) was an American poet. She was regarded as a major poet during her life, labeled by William Thomas Stead "the Browning of American poetry".

## Early life

Branch was born at Hempsted House in New London, Connecticut in 1875, the younger child of John Locke Branch, a lawyer, and Mary Lydia Bolles Branch (1840–1922), a children's author and poet who was part of Hempstead family, who had lived in the area since 1640 and owned some of the oldest houses in southeast Connecticut.

## Education

Branch spent most of her school years in New York and Brooklyn where she studied at Smith College, as well as Froebel and Adelphi Academies, which were near her father's law practice. After graduating from Smith College in 1897, she studied dramaturgy at the American Academy of Dramatic Arts, earning her degree in 1900. A year after graduating from Smith, her poem "The Road 'Twixt Heaven and Hell" was selected as the year's best verse by a college graduate by *Century Magazine*. Starting with that recognition, Branch regularly placed her poetry in a variety of national magazines, and Houghton Mifflin published her first collection of poetry in 1901

Branch's reputation was made with her first two collections *The Shoes That Danced* (1905) and *Rose of the Wind* (1910). Both works show a Pre-Raphaelite influence on her poetry, especially in the use of non-traditional characters and allusions. "The Wedding Feast," a poem from the first collection, reworks Coleridge's "The Rime of the Ancient Mariner." The second collection features odd settings and characters. And her most famous single poem "Nimrod"—a blank verse epic staged at the Empire Theatre in 1908—is about a Biblical king who inspired several pre-Raphaelite works.

*Sonnets from a Lock Box* (1929) is regarded as her best work. It is a collection of thirty-eight sonnets using the first person, noted for its directness and mystical symbolism. Her final collection of poetry, *Last Poems* (1944), was published posthumously by Ridgely Torrence. Branch was also the author of *A Christmas Miracle and God Bless this House* (1925) and *Bubble Blower's House* (1926).

Branch was also known for her philanthropy, mostly centered around Christodora House, a settlement house in New York City. There she created the Poet's Guild, whose members, including Edwin Arlington Robinson, William Rose Benét, Percy MacKaye, and Margaret Widdemer, taught classes at the house. Branch was also vice president of the Poetry Society of America.

## Later life

In 1918 she served as the vice president of the National League for Women's Service and chaired the education and festival committees in the War Camp Community Service. She founded and directed the Poets' Guild of Christodora House which thrived due to her assiduous attention and ability to enlist the participation of an impressive array of fellow poets. Among this involved were Edwin Markham, Josephine Preston Peabody, Percy MacKaye, William Rose Benét, Margaret Widdemer, Ridgely Torrence, Sara Teasdale, Robert Frost, and Edwin Arlington Robinson. Branch was very active in trying to bring poetry into people's lives during the 1910s and 1920s. The Guild also created the "Unbound Anthology". Poems were nicely printed and sold for five cents each, people were able to get poetry cheaply and the profits would go back into the settlement house work. in 1934 Branch received an honorary degree from Smith College.

Hempstead often was invited to various colleges and high schools in the east. She was invited to speak at Wellesley College, which is a women's college, on November 9, 1926.

Branch never married. She died of cancer at the age of 62.

## InfoBox

| Anna Hempstead Branch | |
| --- | --- |
|  | |
| Born | March 18, 1875
Hempsted House in New London, Connecticut |
| Died | September 8, 1937
New London, Connecticut |
| Occupation | Poet |
| Alma mater | Smith College |
| Notable works | *Sonnets From a Lock Box* |


title: Anjos do Sol

abstract: Anjos do Sol is a 2006 Brazilian film directed by Rudi Lagemann. The film had its world premiere at the Miami International Film Festival, winning the Audience Awards. Anjos do Sol won Best Picture Award at 34º Gramado Film Festival.

text:
# Anjos do Sol

***Anjos do Sol*** (English: ***Angels of the Sun***) is a 2006 Brazilian film directed by Rudi Lagemann. The film had its world premiere at the Miami International Film Festival, winning the Audience Awards. *Anjos do Sol* won Best Picture Award at 34º Gramado Film Festival.

## Cast

1. "Anjos do Sol". Globo Filmes. Retrieved July 26, 2019.
2. ""Anjos do Sol" retrata drama da prostituição infantil; veja o trailer e o álbum de fotos". Uol. Retrieved July 26, 2019.
3. ""Serras da Desordem" e "Anjos do Sol" dividem kikito de ouro em Gramado". Folha de S. Paulo. August 20, 2006. Retrieved July 26, 2019.

## InfoBox

| Anjos do Sol | |
| --- | --- |
| Directed by | Rudi Lagemann |
| Written by | Rudi Lagemann |
| Starring | Antonio Calloni
Otávio Augusto
Darlene Glória
Vera Holtz |
| Cinematography | Tuca Moraes |
| Edited by | Leo Alves
Felipe Lacerda
Rudi Lagemann |
| Distributed by | Globo Filmes |
| Release date | * 16 August 2006 (2006-08-16) (Brazil) |
| Running time | 92 minutes |
| Country | Brazil |
| Language | Portuguese |
| Budget | R$ 1,500,000 |


title: Anjos

abstract: Anjos is a former parish (freguesia) in the municipality of Lisbon, Portugal. At the administrative reorganization of Lisbon on 8 December 2012 it became part of the parish Arroios. It was created in 1564. It has a total area of 0.48 km⁲ and total population of 9,738 inhabitants (2001); density: 20,372.4 inhabitants/km⁲.

text:
# Anjos

**Anjos** is a former parish (*freguesia*) in the municipality of Lisbon, Portugal. At the administrative reorganization of Lisbon on 8 December 2012 it became part of the parish Arroios. It was created in 1564. It has a total area of 0.48 km2 and total population of 9,738 inhabitants (2001); density: 20,372.4 inhabitants/km2.

1. Lei n.º 56/2012 (Reorganização administrativa de Lisboa). *Diário da República*, 1.ª Série, n.º 216. Accessed 25/11/2012.

38°25′N 9°05′W / 38.42°N 9.08°W / 38.42; -9.08


abstract: This is a list of electoral results for the Electoral district of Northern Rivers in Western Australian state elections.

text:
# Electoral results for the district of Northern Rivers

This is a list of **electoral results for the Electoral district of Northern Rivers** in Western Australian state elections.

## Members for Northern Rivers

| Member | | Party | Term |
| --- | --- | --- | --- |
|  | Kevin Leahy | Labor | 1989–1996 |
|

## Election results

### Elections in the 1990s

1993 Western Australian state election: Northern Rivers
| Party | | Candidate | Votes | % | ±% |
| --- | --- | --- | --- | --- | --- |
|  | Labor | Kevin Leahy | 4,307 | 46.1 | -4.5 |
|  | Liberal | Dudley Maslen | 3,657 | 39.2 | -10.2 |
|  | National | Paquita Boston | 677 | 7.2 | +7.2 |
|  | Greens | Lorraine Hatchwell | 424 | 4.5 | +4.5 |
|  | Democrats | Jill Bond | 159 | 1.7 | +1.7 |
|  | Independent | Nabil Rowland | 115 | 1.2 | +1.2 |
| Total formal votes | | | 9,339 | 96.2 | −1.6 |
| Informal votes | | | 372 | 3.8 | +1.6 |
| Turnout | | | 9,711 | 89.0 | +5.8 |
| Two-party-preferred result | | | | | |
|  | Labor | Kevin Leahy | 4,835 | 51.8 | +1.2 |
|  | Liberal | Dudley Maslen | 4,504 | 48.2 | -1.2 |
|  | Labor **hold** | | **Swing** | +1.2 |  |

### Elections in the 1980s

1989 Western Australian state election: Northern Rivers
| Party | | Candidate | Votes | % | ±% |
| --- | --- | --- | --- | --- | --- |
|  | Labor | Kevin Leahy | 4,392 | 50.6 | -3.0 |
|  | Liberal | Dudley Maslen | 4,284 | 49.4 | +4.5 |
| Total formal votes | | | 8,676 | 97.8 |  |
| Informal votes | | | 193 | 2.2 |  |
| Turnout | | | 8,869 | 83.2 |  |
|  | Labor **hold** | | **Swing** | -3.8 |  |


abstract:
The 11th Division was created in February 1949 under the Regulation of the Redesignations of All Organizations and Units of the Army, issued by Central Military Commission on November 1, 1948, basing on the 3rd Security Brigade, 4th Column of the PLA Northwest Field Army. Its composition can be traced to 84th Division of 27th Corps, Military Division of Shaanxi-Gansu, 29th Corps, Independent Division of Shanganning, 2nd Regiment of Shanganning, 1st Independent Division of Northern Shaanxi and Headquarters, 4th Corps, all parts of Chinese Workers' and Peasants' Red Army. The division was composed of 31st, 32nd, and 33rd Regiments. Under the command of 4th Corps, it took part in the Chinese Civil War. including the Battle of Yan'an and Lanzhou Campaign. After the foundation of the People's Republic of China, the division took part in the Campaign to Suppress Bandits in Northwestern China and the suppression of 1959 Tibetan uprising. In June 1952 the division was renamed as 11th Infantry Division. 33rd Infantry Regiment was disbanded and absorbed into 31st and 32nd Regiments, while 30th Infantry Regiment, 10th Division was attached to the division as 30th Infantry Regiment, 11th Infantry Division. Artillery Training Regiment, 4th Corps was attached to the division as Artillery Regiment, 11th Infantry Division. In April-June 1953, all regiments of the division were renamed as:
  - 31st Infantry Regiment;
  - 32nd Infantry Regiment;
  - 33rd Infantry Regiment;
  - 305th Artillery Regiment. From October 1960 the division was renamed as 11th Army Division. The division was then stationed in Shigatse, Tibet. In October 1962 the division took part in Sino-Indian War. During the campaign, the division allegedly neutralized 2,000 Indian soldiers, captured 9 tanks and over 300 trucks. From 1962 the division maintained as a category A unit. In 1965, in order to distract the Indian Army and support Pakistan in the Indo-Pakistani War of 1965, the division conducted two camouflage maneuvers alongside the border. In 1967 the division took part in Nathu La and Cho La clashes. In June 1969, 305th Artillery Regiment was renamed as Artillery Regiment, 11th Army Division. From April 1979, the division moved to Urumqi, Xinjiang. From 1983 the division was reduced to a category B unit. In 1985 the division was renamed as 11th Motorized Infantry Division, as a northern motorized infantry division, category A unit. By then the division was composed of:
  - 31st Infantry Regiment;
  - 32nd Infantry Regiment;
  - 33rd Infantry Regiment;
  - Tank Regiment;
  - Artillery Regiment;
  - Anti-Aircraft Artillery Regiment. From September 1985 to September 1986, Reconnaissance Company, 11th Infantry Division participated in the Sino-Vietnamese War subordinated to the 8th Reconnaissance Group, Lanzhou Military Region. During its deployment, the company was engaged in 27 engagement and recon missions, killed 50, and captured 2 confronting PAVN soldiers. The company suffered 0 killed, 3 heavily wounded, and 2 lightly wounded. In 1988, the 11th Motorized Infantry Division was decorated as a Red Army Division, with all three infantry regiments as Red Army Regiments. In 1998, 33rd Infantry Regiment was disbanded. Tank Regiment, 11th Motorized Infantry Division was renamed as Armored Regiment, 11th Motorized Infantry Division. Since then the division was composed of:
  - 31st Infantry Regiment;
  - 32nd Infantry Regiment;
  - Armored Regiment;
  - Artillery Regiment;
  - Anti-Aircraft Regiment. The division is now a maneuver unit of Xinjiang Military Region and one of few divisions left in the Ground Force of People's Liberation Army.

text:
# 11th Motorized Infantry Division (People's Republic of China)

The **11th Division** (Chinese: 第11师) was created in February 1949 under *the Regulation of the Redesignations of All Organizations and Units of the Army*, issued by Central Military Commission on November 1, 1948, basing on the 3rd Security Brigade, 4th Column of the PLA Northwest Field Army. Its composition can be traced to 84th Division of 27th Corps, Military Division of Shaanxi-Gansu, 29th Corps, Independent Division of Shanganning, 2nd Regiment of Shanganning, 1st Independent Division of Northern Shaanxi and Headquarters, 4th Corps, all parts of Chinese Workers' and Peasants' Red Army.

The division was composed of 31st, 32nd, and 33rd Regiments. Under the command of 4th Corps, it took part in the Chinese Civil War. including the Battle of Yan'an and Lanzhou Campaign. After the foundation of the People's Republic of China, the division took part in the Campaign to Suppress Bandits in Northwestern China and the suppression of 1959 Tibetan uprising.

In June 1952 the division was renamed as **11th Infantry Division**. 33rd Infantry Regiment was disbanded and absorbed into 31st and 32nd Regiments, while 30th Infantry Regiment, 10th Division was attached to the division as 30th Infantry Regiment, 11th Infantry Division. Artillery Training Regiment, 4th Corps was attached to the division as Artillery Regiment, 11th Infantry Division.

In April-June 1953, all regiments of the division were renamed as:

* 31st Infantry Regiment (former 30th);
* 32nd Infantry Regiment (former 31st);
* 33rd Infantry Regiment (former 32nd);
* 305th Artillery Regiment (former Artillery).

From October 1960 the division was renamed as 11th Army Division (Chinese: 陆军第11师). The division was then stationed in Shigatse, Tibet.

In October 1962 the division took part in Sino-Indian War. During the campaign, the division allegedly neutralized 2,000 Indian soldiers, captured 9 tanks and over 300 trucks. From 1962 the division maintained as a *category A* unit.

In 1965, in order to distract the Indian Army and support Pakistan in the Indo-Pakistani War of 1965, the division conducted two camouflage maneuvers alongside the border.

In 1967 the division took part in Nathu La and Cho La clashes.

In June 1969, 305th Artillery Regiment was renamed as Artillery Regiment, 11th Army Division.

From April 1979, the division moved to Urumqi, Xinjiang.

From 1983 the division was reduced to a *category B* unit.

In 1985 the division was renamed as 11th Motorized Infantry Division (Chinese: 摩托化步兵第11师), as a *northern motorized infantry division, category A* unit. By then the division was composed of:

* 31st Infantry Regiment;
* 32nd Infantry Regiment;
* 33rd Infantry Regiment;
* Tank Regiment (former Independent Tank Regiment of Urumqi Military Region);
* Artillery Regiment;
* Anti-Aircraft Artillery Regiment (former 662nd Anti-Aircraft Artillery Regiment of 73rd Artillery Division).

From September 1985 to September 1986, Reconnaissance Company, 11th Infantry Division participated in the Sino-Vietnamese War subordinated to the 8th Reconnaissance Group, Lanzhou Military Region. During its deployment, the company was engaged in 27 engagement and recon missions, killed 50, and captured 2 confronting PAVN soldiers. The company suffered 0 killed, 3 heavily wounded, and 2 lightly wounded.

In 1988, the 11th Motorized Infantry Division was decorated as a *Red Army Division*, with all three infantry regiments as *Red Army Regiments*.

In 1998, 33rd Infantry Regiment was disbanded. Tank Regiment, 11th Motorized Infantry Division was renamed as Armored Regiment, 11th Motorized Infantry Division. Since then the division was composed of:

* 31st Infantry Regiment;
* 32nd Infantry Regiment;
* Armored Regiment;
* Artillery Regiment;
* Anti-Aircraft Regiment.

The division is now a maneuver unit of Xinjiang Military Region and one of few divisions left in the Ground Force of People's Liberation Army.

1. 《中央军委关于统一全军组织及部队番号的规定》, http://blog.sina.com.cn/s/blog\_7254c7350100xb56.html
2. 中国人民解放军步兵第十一师战史编写组，《中国人民解放军步兵第十一师军战史》，pp.328

## InfoBox

| 11th Division (1949–52)
11th Infantry Division (1952–60)
11th Army Division (1960–85)
11th Motorized Infantry Division (1985–) | |
| --- | --- |
| Active | February 1949–present |
| Country | People's Republic of China |
| Branch | People's Liberation Army |
| Type | Division |
| Role | Motorized Infantry |
| Part of | Xinjiang Military Region |
| Garrison/HQ | Urumqi, Xinjiang |
| Nickname(s) | Red Army Division(Chinese: 红军师) |
| Engagements | Chinese Civil War
Sino-Indian War
Sino-Indian War of 1967
Sino-Vietnam War
Sino-Indian border dispute |


abstract: The 11th National Congress of the Chinese Communist Party was held in the Great Hall of the People, Beijing, between August 12–18, 1977, about five years before the 12th National Congress, and four years after the 10th National Congress. 1,510 delegates represented the party's estimated 35 million members. The Congress formally declared the Cultural Revolution officially over after 11 long years, ending a long chapter of Chinese history. The Gang of Four were fully criticized for their role in the revolution. However, it also affirmed the "success" of the revolution and declared that class struggle would remain the hallmark of Chinese socialism. Hua Guofeng was formally elected as Chairman of the 11th Central Committee of the Chinese Communist Party and was elected to the chairmanship of the Central Military Commission. The Political Bureau was also renewed with new memberships when the 11th Politburo was elected as a result of the congress.

text:
# 11th National Congress of the Chinese Communist Party

| 11th National Congress of the Chinese Communist Party | |
| --- | --- |
|  | |
| Traditional Chinese | 中國共產黨第十一次全國代表大會 |
| Simplified Chinese | 中国共产党第十一次全国代表大会 |
| Transcriptions  Standard Mandarin  Hanyu Pinyin Zhōngguó Gòngchǎndǎng Dìshíyī cì Quánguó Dàibiǎo Dàhuì | |
| Abbreviated name | |
| Chinese | 十一大 |
| Transcriptions  Standard Mandarin  Hanyu Pinyin Shíyī dà | |
|  | |

The **11th National Congress of the Chinese Communist Party** was held in the Great Hall of the People, Beijing, between August 12–18, 1977, about five years before the 12th National Congress, and four years after the 10th National Congress. 1,510 delegates represented the party's estimated 35 million members.

The Congress formally declared the Cultural Revolution officially over after 11 long years, ending a long chapter of Chinese history. The Gang of Four were fully criticized for their role in the revolution. However, it also affirmed the "success" of the revolution and declared that class struggle would remain the hallmark of Chinese socialism. Hua Guofeng was formally elected as Chairman of the 11th Central Committee of the Chinese Communist Party and was elected to the chairmanship of the Central Military Commission. The Political Bureau was also renewed with new memberships when the 11th Politburo was elected as a result of the congress.

## InfoBox

11th National Congress of the Chinese Communist Party
| The flag of the Chinese Communist Party before 1996 | |
| --- | --- |
| Date | 12–18 August 1977 (4 days) |
| Location | Great Hall of the People, Beijing, China |
| Participants | 1,510 delegates |
| Outcome | The election of the 11th Central Committee |


title: Anton Janša

abstract: Anton Janša was a Carniolan apiarist and painter. Janša is known as a pioneer of modern apiculture and a great expert in the field. He was educated as a painter, but was employed as a teacher of apiculture at the Habsburg court in Vienna.

text:
# Anton Janša

**Anton Janša** (c. 20 May 1734  13 September 1773) was a Carniolan apiarist and painter. Janša is known as a pioneer of modern apiculture and a great expert in the field. He was educated as a painter, but was employed as a teacher of apiculture at the Habsburg court in Vienna.

## Biography

Anton Janša was born in a family of nine children from Slovene parents in Breznica, Carniola (now in Slovenia). His exact birth date is not known, however, he was baptised on 20 May 1734. At a young age Janša, together with his brothers Tine and Lovro, showed a great interest in painting (they had a studio in their barn). All three brothers, despite being illiterate, went to Vienna and entered the painters' academy there. Ceferin wrote "Anton rose to the challenge, and even distinguished himself, winning the prestigious state scholarship for a study tour of Italy, awarded only to exceptional students." His two brothers actually finished their studies at the academy and became professors there.

Anton, despite a talent for painting, soon discovered that his true interests were in bee-keeping. His interest came early on, since his father had over one hundred hives at home and neighbouring farmers would gather at the village and discuss farming and bee-keeping. In 1769 he began to work full-time as a bee-keeper and a year later became the first royally appointed teacher of apiculture for all Austrian lands. He kept bees in the imperial gardens (*Augarten*) and travelled around Austria presenting his observations in regard to moving hives to various pastures. He died in Vienna.

## Importance

He became famous for his lectures in which he demonstrated his knowledge of bees. He also wrote two books in German: *Abhandlung vom Schwärmen der Bienen* (Discussion on Beekeeping, 1771) and *Vollständige Lehre von der Bienenzucht* (A Full Guide to Beekeeping). The latter was published in 1775, after his death. In his 1775 work he noted: "Bees are a type of fly, hardworking, created by God to provide man with all needed honey and wax. Among all God's beings there are none so hard working and useful to man with so little attention needed for its keep as the bee." The Empress Maria Theresa issued a decree after Janša's death obliging all teachers of apiculture to use his books.

In beekeeping he is noted for changing the size and shape of hives to a form where they can be stacked together like blocks. As a painter he also decorated the fronts of hives with paintings. Janša rejected the belief that the male bees are water carriers and assumed that the queen is fertilized mid-air. He advocated moving hives to pastures.

The Janša Beehive was preserved by Slovene beekeepers and in 1884 a plaque was put on the house where he was born. The Museum of Apiculture in Radovljica is also named after him.

1. Ceferin 2008.
2. Šalehar 2019.
3. *Taufbuch – Radovljica*. Radovljica. 1732–1740. p. 36. Retrieved June 29, 2021.

## Sources

* Ceferin, Aleksandra (2008). "Anton Janša". *thezaurus.com*. Institute for Slovenian Studies of Victoria..

* "Janša, Anton (1734–1773)". *slovenska-biografija.si* (in Slovenian). slovenska-biografija..
* Šalehar, Andrej (2019). *Anton Janša, prvi učitelj čebelarstva* \[*Anton Janša, the first teacher of beekeeping*\] (in Slovenian). Ljubljana: Buča. ISBN 9789616704892.

## InfoBox

| Anton Janša | |
| --- | --- |
| Born | c. (1734-05-20)20 May 1734
Breznica, Carniola (now in Slovenia) |
| Died | 13 September 1773(1773-09-13) (aged 39)
Vienna, Holy Roman Empire (now in Austria) |
| Nationality | Slovene |
| Occupation(s) | apiarist
painter |
| Known for | Pioneer of modern apiculture |
| Notable work | *Discussion on Beekeeping* (1771)
*A Full guide to Beekeeping* |


title: Audrey Gale

abstract: Audrey Ngaere Gale was a New Zealand lawyer, local politician, and community leader. She was born in New Plymouth on 17 March 1909. In the 1979 Queen's Birthday Honours, Gale was appointed an Officer of the Order of the British Empire, for services to the community. In 1989, Merrilands Domain in New Plymouth was named Audrey Gale Reserve in recognition of her service to the city and its parks and reserves.

text:
# Audrey Gale

**Audrey Ngaere Gale** OBE (née **Eberlet**; 17 March 1909  27 July 1992) was a New Zealand lawyer, local politician, and community leader. She was born in New Plymouth on 17 March 1909.

In the 1979 Queen's Birthday Honours, Gale was appointed an Officer of the Order of the British Empire, for services to the community. In 1989, Merrilands Domain in New Plymouth was named Audrey Gale Reserve in recognition of her service to the city and its parks and reserves.

## InfoBox

| Audrey GaleOBE | |
| --- | --- |
| Born | Audrey Ngaere Eberlet
(1909-03-17)17 March 1909
New Plymouth, New Zealand |
| Died | 27 July 1992(1992-07-27) (aged 83)
New Plymouth, New Zealand |


title: 12th Filmfare Awards South

abstract: The 12th Filmfare Awards South Ceremony honoring the winners of the best of South Indian cinema in 1964 is an event held on 1965. The awards were introduced in 1954, around the films released in 1953. Filmfare Awards initially recognizing the Hindi film industries. In 1964 Awards extended to Best Picture in Tamil, Telugu, Bengali & Marathi.

text:
# 12th Filmfare Awards South

The **12th Filmfare Awards South** Ceremony honoring the winners of the best of South Indian cinema in 1964 is an event held on 1965.

The awards were introduced in 1954, around the films released in 1953. Filmfare Awards initially recognizing the Hindi film industries. In 1964 Awards extended to Best Picture in Tamil, Telugu, Bengali & Marathi.

## Awards

| Best Tamil Film | Best Telugu Film |
| --- | --- |
|  |  |

* Filmfare Magazine 1965.

### General

## InfoBox

| 12th Filmfare Awards South | |
| --- | --- |
| Date | 1965 |
| Site | Bombay |
|


title: 1992 P&G Taiwan Women's Open

abstract: The 1992 P&G Taiwan Women's Open was a women's tennis tournament played on outdoor hard courts at the Taipei City Courts in Taipei, Taiwan that was part of the Tier V category of the 1992 WTA Tour. It was the fifth edition of the tournament and was held from 25 September through 4 October 1992. Unseeded Shaun Stafford won the singles title and earned $18,000 first-prize money.

text:
# 1992 P&G Taiwan Women's Open

The **1992 P&G Taiwan Women's Open** was a women's tennis tournament played on outdoor hard courts at the Taipei City Courts in Taipei, Taiwan that was part of the Tier V category of the 1992 WTA Tour. It was the fifth edition of the tournament and was held from 25 September through 4 October 1992. Unseeded Shaun Stafford won the singles title and earned $18,000 first-prize money.

## Finals

### Singles

Shaun Stafford defeated  Ann Grossman 6–1, 6–3

* It was Stafford's only singles title of her career.

### Doubles

Jo-Anne Faull /  Julie Richardson defeated  Amanda Coetzer /  Cammy MacGregor 3–6, 6–3, 6–2

* It was Faull's 1st doubles title of the year and the 2nd of her career. It was Richardson's only doubles title of the year and the 7th and last of her career.

## InfoBox

| 1992 P&G Taiwan Women's Open | |
| --- | --- |
| Date | 25 September – 4 October |
| Edition | 5th |
| Category | Tier V |
| Draw | 32S / 16D |
| Prize money | 100,000 |
| Surface | Hard / outdoor |
| Location | Taipei, Taiwan |
| Venue | Taipei City Courts |
| Champions | |
| Singles | |
| Shaun Stafford | |
| Doubles | |
| Jo-Anne Faull /  Julie Richardson | |
|  | |


title: 1978 Colgate-Hong Kong Patrons Classic

abstract: The 1978 Colgate-Hong Kong Patrons Classic, also known as the Hong Kong Open, was a men's tennis tournament played on outdoor hard courts in Hong Kong that was part of the 1978 Grand Prix tennis circuit. It was the sixth edition of the event and was held from 7 November through 12 November 1978. Eighth-seeded Eliot Teltscher won the singles title.

text:
# 1978 Colgate-Hong Kong Patrons Classic

The **1978 Colgate-Hong Kong Patrons Classic**, also known as the **Hong Kong Open**, was a men's tennis tournament played on outdoor hard courts in Hong Kong that was part of the 1978 Grand Prix tennis circuit. It was the sixth edition of the event and was held from 7 November through 12 November 1978. Eighth-seeded Eliot Teltscher won the singles title.

## Finals

### Singles

Eliot Teltscher defeated  Pat DuPré 6–4, 6–3, 6–2

* It was Teltscher's first singles title of his career.

### Doubles

Mark Edmondson /  John Marks defeated  Hank Pfister /  Brad Rowe 5–7, 7–6, 6–1

## InfoBox

| 1978 Colgate-Hong Kong Patrons Classic | |
| --- | --- |
| Date | 7–12 November |
| Edition | 6th |
| Category | Grand Prix |
| Draw | 32S / 16D |
| Prize money | $75,000 |
| Surface | Hard / outdoor |
| Location | Hong Kong |
| Champions | |
| Singles | |
| Eliot Teltscher | |
| Doubles | |
| Mark Edmondson /  John Marks | |
|  | |


title: Aline Koala Kaboré

abstract: Aline Koala Kaboré is a diplomat from Burkina Faso who served as Ambassador to Senegal, having presented her credentials on March 29, 2013. She served until December 19, 2017.

text:
# Aline Koala Kaboré

**Aline Koala Kaboré** is a diplomat from Burkina Faso who served as Ambassador to Senegal, having presented her credentials on March 29, 2013. She served until December 19, 2017.

1. "Burkina-Sénégal : L'ambassadeur Aline KOALA / KABORE présente ses lettres de créance". *www.consulat-burkinaespagne.org*. Archived from the original on 4 March 2020.
2. "Burkina-Sénégal : Les adieux de l'Ambassadeur Aline Koala/Kaboré au Président Macky Sall". Lefaso.net. December 23, 2017. Archived from the original on 26 May 2019.

## InfoBox

| Aline Koala Kaboré | |
| --- | --- |
|  | |
| Ambassador of Burkina Faso to Senegal | |
| **In office**<br>March 29, 2013  December 19, 2017 | |
|  | |
| Personal details | |
| Born | Burkina Faso |
|  | |


title: 1970 in China

abstract: Events in the year 1970 in the People's Republic of China.

text:
# 1970 in China

Events in the year **1970 in the People's Republic of China**.

## Incumbents

### Governors

## Events

### April

### October

* October 13 – The People's Republic of China and Canada signed established diplomatic relations.
* October 14 – A Chinese nuclear test is conducted in Lop Nor.

### December

## Births

* September 7 – Gao Min, Chinese diver
* October 30 – Xie Jun, Chinese chess grandmaster

## Deaths

## InfoBox

|  | |
| --- | --- |
| Decades: |  |
| See also: | Other events of 1970<br>History of China    Timeline    Years |


title: 1886–87 British Home Championship

abstract: The 1886–87 British Home Championship was the fourth international football tournament between the British Home Nations. Played during the second half of the 1886–87 football season, the competition was won by Scotland for the fourth consecutive time. Ireland also achieved their first placing above the bottom of the table, finishing above Wales due to victory at home in their final match. England and Ireland began the competition in early February, England comprehensively defeating their visitors 7–0 in Sheffield and taking the initial tournament lead. Scotland joined them with a strong victory over Ireland in their first game, but England again seized the top slot with their own defeat of Wales. In their final match, Ireland succeeded in achieving their first ever international victory with a 4–1 win over Wales in Belfast, to put them in third position. England and Scotland then played a deciding match in Blackburn, Scotland only just running out 3–2 winners after a very tough game. In the final match, Scotland beat Wales in Wrexham to outstrip England's points total and win the trophy.

text:
# 1886–87 British Home Championship

The **1886–87 British Home Championship** was the fourth international football tournament between the British Home Nations. Played during the second half of the 1886–87 football season, the competition was won by Scotland for the fourth consecutive time (although they had once shared victory with England). Ireland also achieved their first placing above the bottom of the table, finishing above Wales due to victory at home in their final match.

England and Ireland began the competition in early February, England comprehensively defeating their visitors 7–0 in Sheffield and taking the initial tournament lead. Scotland joined them with a strong victory over Ireland in their first game, but England again seized the top slot with their own defeat of Wales. In their final match, Ireland succeeded in achieving their first ever international victory with a 4–1 win over Wales in Belfast, to put them in third position. England and Scotland then played a deciding match in Blackburn, Scotland only just running out 3–2 winners after a very tough game. In the final match, Scotland beat Wales in Wrexham to outstrip England's points total and win the trophy.

## Table

| Pos | Team | Pld | W | D | L | GF | GA | GD | Pts |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | Scotland (C) | 3 | 3 | 0 | 0 | 9 | 3 | +6 | 6 |
| 2 | England | 3 | 2 | 0 | 1 | 13 | 3 | +10 | 4 |
| 3 | Ireland | 3 | 1 | 0 | 2 | 5 | 12 | 7 | 2 |
| 4 | Wales | 3 | 0 | 0 | 3 | 1 | 10 | 9 | 0 |

Source:
Rules for classification: 1) Points. The points system worked as follows: 2 points for a win and 1 point for a draw.
(C) Champions

## Results

| England | 7–0 | Ireland |
| --- | --- | --- |
|  |  |  |

Bramall Lane, SheffieldAttendance: 6,000Referee: Alexander Hunter (Wales)

---

| Scotland | 4–1 | Ireland |
| --- | --- | --- |
|  |  | Browne  41' |

Hampden Park, GlasgowAttendance: 1,000Referee: Alexander Hunter (Wales)

---

| England | 4–0 | Wales |
| --- | --- | --- |
|  |  |  |

Kennington Oval, LondonAttendance: 4,500Referee: Thomas Devlin (Scotland)

---

| Ireland | 4–1 | Wales |
| --- | --- | --- |
|  |  | Henry Sabine |

Cliftonville Cricket Ground, BelfastAttendance: 4,000Referee: James McKillop (Scotland)

---

| England | 2–3 | Scotland |
| --- | --- | --- |
|  |  |  |

Leamington Road, BlackburnAttendance: 12,000Referee: John Sinclair (Ireland)

---

| Wales | 0–2 | Scotland |
| --- | --- | --- |
|  |  |  |

Racecourse Ground, WrexhamAttendance: 2,000Referee: Albert Bertram Hall (England)

## Winning squad

| Name | Apps/Goals by opponent | | | Total | |
| --- | --- | --- | --- | --- | --- |
| |
WAL |
IRE |
ENG | Apps | Goals |
| James Allan | 1/1 |  | 1/1 | 2 | 2 |
| Leitch Keir | 1 |  | 1/1 | 2 | 1 |
| James McCall | 1 |  | 1/1 | 2 | 1 |
| William Robertson | 1/1 |  | 1 | 2 | 1 |
| Walter Arnott | 1 |  | 1 | 2 | 0 |
| John Auld | 1 |  | 1 | 2 | 0 |
| John Forbes | 1 |  | 1 | 2 | 0 |
| Bob Kelso | 1 |  | 1 | 2 | 0 |
| John Marshall | 1 |  | 1 | 2 | 0 |
| James McAulay | 1 |  | 1 | 2 | 0 |
| William Sellar | 1 |  | 1 | 2 | 0 |
| Tom Jenkinson |  | 1/1 |  | 1 | 1 |
| William Johnston |  | 1/1 |  | 1 | 1 |
| James Lowe |  | 1/1 |  | 1 | 1 |
| Willie Watt |  | 1/1 |  | 1 | 1 |
| Ned Doig |  | 1 |  | 1 | 0 |
| James Hutton |  | 1 |  | 1 | 0 |
| John Lambie |  | 1 |  | 1 | 0 |
| Thomas McMillan |  | 1 |  | 1 | 0 |
| Bob Smellie |  | 1 |  | 1 | 0 |
| John Weir |  | 1 |  | 1 | 0 |
| Andrew Whitelaw |  | 1 |  | 1 | 0 |
|

* Guy Oliver (1992). *The Guinness Record of World Soccer*. Guinness. ISBN 0-85112-954-4.

## InfoBox

1886–87 British Home Championship
| Tournament details | |
| --- | --- |
| Host country | England, Ireland, Scotland and Wales |
| Dates | 5 February – 21 March 1887 |
| Teams | 4 |
| Final positions | |
| Champions | Scotland (4th title) |
| Runners-up | England |
| Tournament statistics | |
| Matches played | 6 |
| Goals scored | 28 (4.67 per match) |
| Top scorer(s) | Tinsley Lindley (6 goals) |
|