As from Wikipedia, constraint programming is:
” In computer science, constraint programming is a programming paradigm wherein relations between variables are stated in the form of constraints. Constraints differ from the common primitives of imperative programming languages in that they do not specify a step or sequence of steps to execute, but rather the properties of a solution to be found. This makes constraint programming a form of declarative programming. The constraints used in constraint programming are of various kinds: those used in constraint satisfaction problems (e.g. “A or B is true”), those solved by the simplex algorithm (e.g. “x ≤ 5″), and others. ”
Constrains differ from the common primitives of other programming languages in that they do not specify one or more steps to execute but rather the properties of a solution to be found. This concept came out during an interesting video related to how to define business rules and business rule logic using Groovy and DSL, so I found this groovy documentation page listing different libraries helping solve this kind of problems.
Whoosh – a python search library
This is the description extracted from here: ” Whoosh is a fast, pure Python search engine library. The primary design impetus of Whoosh is that it is pure Python. You should be able to use Whoosh anywhere you can use Python, no compiler or Java required. Like one of its ancestors, Lucene, Whoosh is not really a search engine, it’s a programmer library for creating a search engine”. If you ever had a chance to work with lucene or something like Solr or Elasticsearch you’ll find lots of common concepts and models, it should quite easy to use this library, let’s see if I’ll have any project that may require it.
Titan – a graph database
Titan is a scalable graph database optimized for storing and querying graphs containing hundreds of billions of vertices and edges distributed across a multi-machine cluster. Titan is a transactional database that can support thousands of concurrent users executing complex graph traversals. It is an awesome library / framework to work with graph in a scalable manner. You should take into account that ThinkerPop stack and more important it can configure Cassandra, HBase or Oracle Berkley DB as storage and Elasticsearch as search provider. This article reports how to setup an AWS titen solution. I’ll spend some of my spare time working with Titan mainly on Cassandra. I’ll keep you … posted 😛 I was forgetting a pleasing idea from Titan, it has been defined to work at realtime, for batch or analytics engine Faunus has been provided. Faunus is a Hadoop-based graph analytics engine for analyzing graphs represented across a multi-machine compute cluster. I hope to be able to test also this feature 🙂