private void initializeCriteria(string p)
        {
            categories = Parser.Parse(p);
            categoriesDict = Parser.AllCategoriesDict;
            allcriteria = Parser.GetAllCriteria();
            earl = new Earl();
            eval = new Evaluation();
            earlReader = new EarlReader();

            maxCountOfItemsTypeOne = Parser.GetMaxCountOfItemsTypOne();
            maxCountOfItemsTypeAll = Parser.GetMaxCountOfItems();
            maxCountOfRatingItems = Parser.GetMaxCountOfRatingItems();
        }
        public void evaluate(System.Collections.ICollection caList, Parameters par, Earl ea)
        {
            passCount = 0;
            criteriaCount = 0;
            prio2Pass=0;
            prio3Pass=0;
            prio1Pass=0;
            prio1Count = 0;
            prio2Count = 0;
            prio3Count = 0;
            failprio1Count = 0;
            failprio2Count = 0;
            failprio3Count = 0;
            errorCount = 0;
            warningCount = 0;
            prio1Count = 0;
            this.earl = ea;
            //earl.createEmptyEarlGraph();
            String output = "";
            
            foreach (Category ca in caList)
            {
                //earl.createTestRequirement(ca);
                //hier wird der Kopf des EARL Berichtes geschrieben
                
                //ea.writeEarlRdf();
                
                foreach (Criterion element in ca.Criteria)
                {
                    //set to zero
                    element.EvaluationValue = 0;

                    criteriaCount++;
                    try
                    {
                        //foreach (float e in element.Res.Rating)
                        //{
                        //    System.Console.WriteLine(e);
                        //}
                        float evaluationValue;
                        
                        //hier wird der TestCase für das Element geschrieben das bewertet wurde
                        //earl.createTestCase(element);
                        
                        bool passed = evaluateCriterion(par, element, out evaluationValue);
                        earl.createCriterionResult(element, passed, evaluationValue);
                        
                        if (passed)
                        {

                            passCount++;
                        }
                        
                    }
                    catch (System.Exception ex)
                    {
                        output += "Das Kriterium '" + element.Name + "' wurde wegen eines internen Fahlers übersprungen \r\n";
                    }
                }
                
                createCategoryResult(ca);
            }
            evaluateCategories(caList);
            createFinalErgString();
            
            System.Console.WriteLine(finalerg);
        }