What are recommended modules or processes which support rating based comments or reviews? I am new to Drupal and I am planning a directory site where users can review and rate the service of a shop or company.

I'm thinking of something like this (taken from yelp.com):



Any recommended modules or processes which support such feature in Drupal 7, i.e. for rating based comments or reviews?
Rating

The VotingAPI module (available for both D6 and D7) offers a framework to developers of Drupal modules about voting and/or rating. It uses a standardized API and schema for storing, retrieving, and tabulating votes for Drupal content.

VotingAPI offers these key features:


Create/Retrieve/Update/Delete operations for voting data.
Whenever a vote is casted, it calculates the results and caches them. These calculations can either be the default calculations (average, total, etc), or they can be implemented via custom tallying functions.
Via its integration with the Actions module, it can trigger workflow steps whenever votes are casted and results are tallied, such as promoting a node to the front page, hiding a comment flagged as spam, or sending some eMail.
It integrates with the Views module, which allows for slice and dice of the content of a site based on user consensus. And tt provides functions to format vote data to display them to users.


Typical rating related modules with a stable release for D7:


Rate (D6 and D7).
Fivestar (D6 and D7).
Voting API Bayesian (D7).
Star Rating (D7, no VotingAPI dependency).
Raty (D7-beta2).


Views / Rules / Flag / Message

Everything above relates to "Rating" (or voting). Some more modules that you may want to consider (= add to the mix of modules you might want to consider):


The Flag module, which is typically combined with the Rules module also to create all sorts of interesting site features. If you're not familiar (enough/yet) with Rules, checkout the 32 (!!!) great, and free, video tutorials Learn the Rules framework, organized in 7 chapters. There is a similar set of 8 video tutorials about the Flag module.
If you also add the Views module, you're already pretty close to a great mix of modules to create the site you're looking for. Maybe also review the set of 30 video tutorials about the Views module.
For more details about the Message module, refer to some interesting Use Cases detailed within its Community Documentation.