Welcome to CybeResearch!

Here are 2 projects which push the boundaries of what is possible in the domain of Java development. The first explores the concept of solving a query using only logic deduction while being practical at the same time. This leads to a new computer language called TAQ, short for Template-Axiom-Query, which supports both the declarative and procedural programming paradigms.

The second project is a contribution to lightweight Java persistence, building on the excellent OrmLite lightweight Java persistence package to realize the blue print set out in the JPA Architecture.

Sudoku TAQ query
// Solve sudoku
query sudoku(puzzle)
(
0, 0, 2, 3,
0, 0, 0, 0,
0, 0, 0, 0,
3, 4, 0, 0
) -> (encode_puzzle)
-> (row.eliminate)
-> (col.eliminate)
-> (row.eliminate)
-> (col.eliminate)
-> (square.eliminate)
-> (square.eliminate)
-> (decode_puzzle)
-> (print_puzzle)

Running query sudoku in global scope
4, 1, 2, 3,
2, 3, 4, 1,
1, 2, 3, 4,
3, 4, 1, 2,

DNA

Taq is an abbreviation for Thermus aquaticus, a humble heat-loving bacterium which provides an important ingredient for DNA analysis. Taq is pronounced to rhyme with "Iraq".

It is no coincidence that TAQ, the programming language aligns with Taq, associated with DNA. Both involve pairing components to build new structures. In DNA, it is chemical bases that are paired in the process of replcating a DNA molecule. In TAQ it is the terms of 2 structures that are paired to form a new structure, but with an important twist - only structures which are logically equivalent are allowed to proceed in this way.


All projects are published to benefit the software development community and therefore released.under the Apache 2 License. This is a permissive free software license written by the Apache Software Foundation (ASF).
Familiarity .with the Java programming language is essential in order to proceed. TAQ not only is coded in Java, but borrows heavily from Java for it's expression syntax. Jpalite is targeted at Java applications requiring a robust persistence solution.
Projects are distributed from Github public repositories, so all the sources, including examples, are freely available. Builds are performed using Maven and projects can be imported directly into all the popular IDEs that support Java development.