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
        
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,
        
       
      
      
      
        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. 
      
       
      
          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.