Extensions
If portability of your code is not significant for your choice of an implementation, you might want to look for the many interesting implementation specific prolog Extensions. They include:
- Type systems
- Modes (specifying which arguments of a predicate are inputs or output)
- Constraint programming @Scryer
- Concurrency (MPI)
- Transaction logic
- Web programming (sockets+websockets, xml, json, rdf, owl)
- Graphics libraries
- Object-orientation (e.g. F-logic, Flora-2) … Btw. I wrote a thesis about how to represent Ontologies with Flora-2.