Project Name:Selection of Best University Subject:Deductive Database and Datamining Project Supervisor: Vladislav Project done by: Shahid Khan Date:2nd Dec 2005 ------------------------------------------------------------------------ Description of project: ------------------------------------------------------------------------ My name is shahid khan, Student of information Technology. I have taken a course named, Deductive databases and Datamining, taught by vladislav At dept of informatoin Sciecne. In this course I have to do a project, which should show the skills I developed during this course. I choose a project to choose best university of world. For this project to work three members were requied for three different roles. The roles are: User Expert Programmer But unfortunately I had to play all these three roles. But It was a great fun, Because I had no member with me But Mr.Vladislav was always there with me & because of his guidance and extra time I was able to complete it. In this project first different objects (universities) are defined. Then different rules are defined. The rules differs on the choice of users. For example a user may be looking for a university having rich international student environment. Similarly a user may be looking for a research orinted university.Technically in this project rules are of theree categories. that is: 1. simple rules 2. rule inside rule 3. rules with maximum ----------------------------------------------------------------- Source C0de of project: ----------------------------------------------------------------- module project. export minimum(bf),minimum(fbf),transform(bbf),reliability(bbbf), research_oriented(ff),biggest_uni(ff),good_for_computer_studies(ff), quality_education(ff),variety_of_courses(ff), links_with_market(ff),online_admission(ff), good_for_international_students(ff), biggest_uni_and_research_oriented(ff), research_set(f),research_oriented(ff), max_research(ff). //Objects object(havard, "alumni record",0.4). object(havard, "nobel prize",1.0). object(havard, "research oriented faculty",0.8). object(havard, "research in science",0.1). object(havard, "research in Arts",0.6). object(havard, "institutional size",0.42). object(cambridge, "alumni record",0.99). object(cambridge, "nobel prize",0.9). object(cambridge, "research oriented faculty",0.5). object(cambridge, "research in science",0.56). object(cambridge, "research in Arts",0.7). object(cambridge, "institutional size",0.6). object(oxford, "alumni record",0.4). object(oxford, "nobel prize",0.72). object(oxford, "research oriented faculty",0.88). object(oxford, "research in science",0.7). object(oxford, "research in Arts",0.7). object(oxford, "institutional size",0.6). object(oxford, "different courses",0.8). object(oxford, "strong web support",0.6). object(oxford, "multicultural students",0.9). object(ucla, "alumni record",0.21). object(ucla, "nobel prize",0.2). object(ucla, "research oriented faculty",1.0). object(ucla, "research in science",0.7). object(ucla, "research in Arts",0.2). object(ucla, "institutional size",0.5). object(ucla, "different courses",0.6). object(mit, "alumni record",0.1). object(mit, "nobel prize",0.2). object(mit, "research oriented faculty",0.4). object(mit, "research in science",1.0). object(mit, "research in Arts",0.27). object(mit, "institutional size",0.15). object(mit, "links with companies",0.6). object(uppsala, "alumni record",0.1). object(uppsala, "nobel prize",0.56). object(uppsala, "research oriented faculty",0.2). object(uppsala, "research in science",0.8). object(uppsala, "research in Arts",0.35). object(uppsala, "institutional size",0.88). object(chalmers, "alumni record",0.1). object(chalmers, "nobel prize",1.00). object(chalmers, "research oriented faculty",0.62). object(chalmers, "research in science",0.17). object(chalmers, "research in Arts",0.85). object(chalmers, "institutional size",0.76). object(chalmers, "links with companies",1.0). object(chalmers, "strong web support",0.5). object(chalmers, "multicultural students",0.6). //RULES research_oriented(X,Reliability):- object(X,"research oriented faculty",C1), object(X,"institutional size",C2), object(X,"alumni record",C3), object(X,"nobel prize",C4), reliability([C1,C2,C3,C4],[1.0,0.2,0.8,0.7],0.8,Reliability). biggest_uni(X,Reliability):- object(X,"research oriented faculty",C1), object(X,"institutional size",C2), object(X,"alumni record",C3), object(X,"nobel prize",C4), reliability([C1,C2,C3,C4],[0.5,1.0,0.2,0.3],0.5,Reliability). good_for_computer_studies(X,Reliability):- object(X,"research oriented faculty",C1), object(X,"institutional size",C2), object(X,"alumni record",C3), object(X,"research in science",C4), reliability([C1,C2,C3,C4],[0.7,0.2,0.5,1.0],0.7,Reliability). quality_education(X,Reliability):- object(X,"research oriented faculty",C1), object(X,"institutional size",C2), object(X,"alumni record",C3), object(X,"research in science",C4), reliability([C1,C2,C3,C4],[0.7,0.2,0.5,1.0],0.8,Reliability). variety_of_courses(X,Reliability):- object(X,"strong web support",C1), object(X,"different courses",C2), object(X,"alumni record",C3), object(X,"research in science",C4), reliability([C1,C2,C3,C4],[0.4,0.8,0.5,1.0],0.8,Reliability). links_with_market(X,Reliability):- object(X,"research oriented faculty",C1), object(X,"links with companies",C2), object(X,"alumni record",C3), object(X,"research in science",C4), reliability([C1,C2,C3,C4],[0.7,0.9,0.5,1.0],0.6,Reliability). online_admission(X,Reliability):- object(X,"strong web support",C1), object(X,"institutional size",C2), object(X,"multicultural students",C3), object(X,"research in science",C4), reliability([C1,C2,C3,C4],[0.8,0.2,0.5,1.0],0.5,Reliability). good_for_international_students(X,Reliability):- object(X,"research oriented faculty",C1), object(X,"institutional size",C2), object(X,"alumni record",C3), object(X,"multicultural students",C4), reliability([C1,C2,C3,C4],[0.7,0.2,0.5,1.0],0.7,Reliability). //Rules Inside Rules biggest_uni_and_research_oriented(X,Reliability):- biggest_uni(X,C1), C1<0.78, research_oriented(X,C2), C2<0.86, reliability([C1,C2],[0.83,0.9],0.8,Reliability). //Use of Maximum research_set():- research_oriented(_,Rel). max_research(Name,Max_rel):- research_set(Set_rel), max(Set_rel,Max_rel), research_oriented(Name,Max_rel). // Reliablitiy reliability(Certainity_list,Importance_list,Quality,Reliability):- transform(Certainity_list,Importance_list,New_certainity_list), minimum(New_certainity_list,Min), Reliability=Min*Quality. //Minimum minimum([H|T],Min):- minimum(H,T,Min). minimum(X,[H|T],Min):- X=H,minimum(H,T,Min). minimum(Min,[],Min). //Transform transform([H1|T1],[H2|T2],[H3|T3]):- H3=1-H2*(1-H1), transform(T1,T2,T3). transform([],[],[]). end_module. ------------------------------------------------------------------------------ Questions: ------------------------------------------------------------------------------ 1.1 ready>>?research_oriented(X,Y). X=chalmers, Y=0.224000. ... next answer ? (y/n/all)[y]all X=uppsala, Y=0.160000. X=mit, Y=0.224000. X=ucla, Y=0.294400. X=oxford, Y=0.416000. X=cambridge, Y=0.400000. X=havard, Y=0.416000. (Number of Answers = 7) 1.2 ready>>?biggest_uni(X,Y). X=chalmers, Y=0.380000. ... next answer ? (y/n/all)[y]all X=uppsala, Y=0.300000. X=mit, Y=0.0750000. X=ucla, Y=0.250000. X=oxford, Y=0.300000. X=uppsala, Y=0.300000. X=oxford, Y=0.300000. X=cambridge, Y=0.300000. X=cambridge, Y=0.300000. X=havard, Y=0.210000. (Number of Answers = 10) 1.3 ready>>?good_for_computer_studies(X,Y). X=chalmers, Y=0.119000. ... next answer ? (y/n/all)[y]all X=uppsala, Y=0.308000. X=mit, Y=0.385000. X=ucla, Y=0.423500. X=oxford, Y=0.490000. X=cambridge, Y=0.392000. X=havard, Y=0.0700000. (Number of Answers = 7) 1.4 ready>>?quality_education(X,Y). X=chalmers, Y=0.136000. ... next answer ? (y/n/all)[y]all X=uppsala, Y=0.352000. X=mit, Y=0.440000. X=ucla, Y=0.484000. X=oxford, Y=0.560000. X=cambridge, Y=0.448000. X=havard, Y=0.0800000. (Number of Answers = 7) 1.5 ready>>?variety_of_courses(X,Y). X=oxford, Y=0.560000. ... next answer ? (y/n/all)[y]all (Number of Answers = 1) 1.6 ready>>?links_with_market(X,Y). X=chalmers, Y=0.102000. ... next answer ? (y/n/all)[y]all X=mit, Y=0.330000. (Number of Answers = 2) 1.7 ready>>?online_admission(X,Y). X=chalmers, Y=0.0850000. ... next answer ? (y/n/all)[y]all X=oxford, Y=0.340000. (Number of Answers = 2) 1.9 ready>>?good_for_international_students(X,Y). X=chalmers, Y=0.385000. ... next answer ? (y/n/all)[y]all X=oxford, Y=0.490000. (Number of Answers = 2) 1.10 ready>>?biggest_uni_and_research_oriented(X,Y). X=chalmers, Y=0.241280. ... next answer ? (y/n/all)[y]all X=uppsala, Y=0.195200. X=mit, Y=0.185800. X=ucla, Y=0.291968. X=oxford, Y=0.335200. X=cambridge, Y=0.335200. X=havard, Y=0.275440. (Number of Answers = 7) 1.11 ready>>?research_oriented(X,Y). X=chalmers, Y=0.224000. ... next answer ? (y/n/all)[y]all X=uppsala, Y=0.160000. X=mit, Y=0.224000. X=ucla, Y=0.294400. X=oxford, Y=0.416000. X=cambridge, Y=0.400000. X=havard, Y=0.416000. (Number of Answers = 7) 1.12 ready>>?research_set(X). X={0.224000,0.224000,0.160000,0.294400,0.416000,0.400000,0.416000}. ... next answer ? (y/n/all)[y]all (Number of Answers = 1) 1.13 ?max_research(X,Y). X=oxford, Y=0.416000. ... next answer ? (y/n/all)[y]all X=havard, Y=0.416000. (Number of Answers = 2) ------------------------------------------------------------------------------ Analysis of project form three different prospective: ------------------------------------------------------------------------------ There are three perosons involved with this project, they are users, programmers, and experts. The analysis of this project with these three person's point of view is gien below. Analysis by programer's point of view:----- A programmer is the one who has developed this project and he is expert in the programming language, but he has little knowledge of this field, that is the raniking of the universities.From programer point of view the code of this prject seems pretty suitable to the condition.it has a nice logic and it has used all the technical stuff, including different rules, rules inside rules and maximum.But it would be more better if this code had more varsitility. and as far as i see it lack the varsitiliy of programming, and the reason behind this limitation is the lack of time and team members. Analysis by expert's point of view:----- An expert is the one who has no or little knowledge of the programing, But he is actually involve in the physical system of making ranking of universities.If i see this progrm from an expert of the field point of view. then this project gives the final result in a very good way. for example if we want to see the best research oriented uni it replies in the answer "Oxford and Harvard". And indeed these two universities are on the top of research universities list. As this program has the universities characteristics taken from world univerisities ranking, so it almost always result in a correct answer. But one thing which i feel being an expert of the field is that it should have more universities and more rules, so that it was easy to search any university in world. Analysis by user's point of view:----- User is the one who will use this project and had no or little knowledge of the programing and the system. A user is only interested in the answer of the question he / she ask. And Deductive database extract enought information for users to support their decisions. so this project seems okay from a user's point of view. Because mostly users have such question in mind that Which university is the bset one in research, Which university in best one for internation students, Which university is best for science studies,Which university is best for natural science. and this project has enogh rules to answers all such questions. But still a user is the one who is never short of queries, so its almost not posiible to satisfy a user 100%. Still this project is good for most common queries, which a user can ask. ------------------------------------------------------------ ------------------------------------------------------------