To provide on-demand Cloud services, Cloud providers and customers are used to sign Service Level Agreement (SLA), which is an agreement on the level of service provided and its associated cost. Unfortunately, SLA is not as dynamic as the Cloud and the criteria on which a customer relies to select a provider can be of problematic nature. The provider must optimize its resources although he cannot predict the customer behavior that can make varying requests. This can have a direct impact on the availability of resources and thus may lead to SLA violations. To cope with this issue, we propose a framework that allows the customer to choose a trusted provider based on its reputation calculated using a Bayesian network and continuously updated via a Cloud directory. Moreover, we propose a smart and dynamic SLA scheme that uses a probabilistic ontology capable of detecting potential violations of contract parameters; in addition, it alerts the service provider about these violations. To evaluate our model we used data extracted from Amazon Web Service Elastic Cloud Compute and Google Compute Engine SLAs to simulate our proposal's environment. The results of our experiments show the effectiveness of probabilistic ontology for predicting SLA violation throughout some SLA parameters applied in Cloud environment.