Студопедия — Жұмыстың орындалу реті мен мазмұнын әдістемелік сипаттау
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Жұмыстың орындалу реті мен мазмұнын әдістемелік сипаттау






Сарапшы жүйелер – бұл қандай да бір облыста сарпшы адам білімінің деңгейіне тең болатындай білімді көрсететін компьютерлік программа. Жалпы бұл облыс қатаң шектелген, бірақ қосымшалар саны көп: сөйлеуді түсіну, суретті талдау, ауа райы, болашақ егінді болжау, медициналық диагностика, интегралдық схемаларды құру, қаржыландыру және т.б. ПРОЛОГТАҒЫ сарапшы жүйелердің ішкі білімдер қорын құру.

Мына қарапайым мысал ішкі бідімдер қорымен қалай классификациялық сарапшы жүйелерді құруға болатынын көрсетеді. Бұл мысалда мәліметтер қорын құрудың ерешелігі сіз программа орындалуы кезінде білімдерді қоса аласыз (және өшіре аласыз).

/* Program Lab_6_1.PRO */

domains

thing = string

conds = cond*

cond = string

database

is_a(thing,thing,conds)

type_of(thing,thing,conds)

false(cond)

predicates

run(thing)

ask(conds)

clauses

run(Item):-

is_a(X, Item, List),

ask(List),

type_of(Ans, X, List2),

ask(List2),

write(”The “, Item,” you need is a/an “,

Ans), nl.

run(_):-

write(”This program does not have enough “),

write(”data to draw any conclusions.”),

nl.

ask([]).

ask([H|T]):-

not(false(H)),

write(”Does this thing help you to “),

write(H,” (enter y/n)”),

readchar(Ans), nl, Ans=’y',

ask(T).

ask([H|_]):-

assertz(false(H)), fail.

Goal run(tool).

Келесі деректе р asserta, немесе assertz предикатының көмегімен енгізіле алады, немесе consult предикаты көмегімен файлдан оқылады. Бірақ, бұл мысалда олар clauses секциясында орналасқан.

is_a(language, tool, ["communicate"]).

is_a(hammer, tool, ["build a house", "fix a fender", "crack a nute"]).

is_a(sewing_machine, tool, ["make clothing", "repair sails"]).

is_a(plow, tool, ["prepare fields", "farm"]).

type_of(english, lahguage, ["communicate with people"]).

type_of(prolog,lahguage, ["communicate with a computer"]).

Әрбір сұраққа копьютермен сөйлесетін құрал тапқыңыз келгендей жауап беріңіз.

Енді goal бөліміне мыналарды енгізіңіз:

retract(type_of(prolog, language, ["communicate with a computer"])),

asserta(type_of(”turbo prolog”, language, ["communicate with personal computer"])),

asserta(type_of(prolog, language, ["communicate with a mainframe computer"])),

run(tool).

Бұл мақсат деректі жояды

type_of(prolog, language, ["communicate with a computer"])

ішкі деректер базасынан программаға жаңа екі фактіні қосады

type_of(prolog, language, ["communicate with a mainframe computer"]).

type_of(”turbo prolog”, language, ["communicate with personal computer"]).

Енді тағы да әрбір сұраққа дербес компьютермен сөйлекскіңіз келгендей жауап қайтарыңыз. Аргументі ретінде файл аты бар Save предикатын шақыру арқылы тексттік файлдағы барлық мәліметтер қорын сақтауға болады. Мысалы save(”mydata.dba”) шақырғаннан кейін MYDATA.DBA файлы clauses секциясына ұқсас болады және әрбір дерек жолда тұрады. Consult предикаты көмегімен бұл файлды жадыға оқуға болады:

consult(”mydata.dba”)

2. Мәліметтер қоры предикаттарымен сипатталатын деректеге олар термдар сияқты манипуляция жасауға болады.

Мәліметтер қорын хабарлау кезінде Пролог ішкі жақтан мәліметтер қорын сипаттауға сәйкес келетін анықталу облысын құрады. Мысал ретінде мына хабарламаны қарайық:

database -dba1 /* dba1 – предикаттар домені */

person(name, telno)

city(cno, cname)

Мұндай хабарламаларды ала отырып, Пролог жүйесісәйкес облыс құрады

(домен) dba1: domains

dba1 = person(name, telno); city(cno, cname)

Бұл dba1 домені басқа да алдың ала анықталған домен сияқты қолданыла алады. Мысалыға, consult предикатына анлогты my_consult предикатын құру үшін, readterm предикатын қолдануға болады.

Lab_6_2.PRO программасы ішкі мәліметтер қорын қолданудың ең оңай жолы.

Мына мысал дисплейді пайдалану құралын құрады.

Дисплейдің ағымдағы экранының форматы field және textfield деректерінде сақталады, screen мәліметтер қорында анықталған. Экранның бірнеше аттары screens қорында сақталуы мүмкін. Shiftscreen предикатының жұмысы кезінде бірнеше сақталып тұрған экрандарды screen базасына көшіріп алуға болады, бірақ алдың ала бұл қордағы барлық ағымдық мәліметтерді өшіріп алу керек және құрылып жатқан экранға қатысты ақпаратты алу үшін screen предикатын шақыру керек.

/* Lab_6_2.PRO программасы */

domains

screen_name = symbol

field_name = symbol

row, col, len = integer

type = int(); str(); real()

database – screen

field(field_name, type, row, col, len)

textfield(row, col, len, string)

database – screens

screen(screen_name, screen)

predicates

shiftscreen(screen_name)

clauses

shiftscreen(Screen):-

retractall(_, screen),

screen(Screen, ScreenFact),

assert(ScreenFact),

fail.

shiftscreen(_).

/*person жазбасы үшін экран схемасы */

screen(person,field(”fname”,str,6,16,36)).

screen(person,field(”lname”,str,8,15,37)).

screen(person,field(”street”,str,10,12,40)).

screen(person,field(”zipcode”,str,12,14,7)).

screen(person,field(”cityname”,str,12,33,19)).

screen(person,field(”code”,str,15,17,35)).

screen(person,textfield(15,4,12,”Person Code:”)).

screen(person,textfield(12,22,10,”City Name:”)).

screen(person,textfield(12,4,8,”Zip code:”)).

screen(person,textfield(10,4,7,”Street:”)).

screen(person,textfield(6,4,11,”First Name:”)).

screen(person,textfield(8,4,10,”Last Name:”)).

/*city жазбасы үшін экран схемасы */

screen(city,field(”zipcode”,str,8,16,7)).

Резюме:

1. Прологтың ішкі базасы database секциясында топтастырылған сіздің программаңыздағы деректерден тұрады. Қолданушы анықтаған және осы деректер тобында қолданылатын предикаттарды database кілттік сөзі арқылы хабарлауға болады.

2. database секцияларына аттар беруге болады. Келісім бойынша атауы бар database секциясының домені ретінде bdasedom домені болады. Программада database бірнеше секциялары болуы мүмкін, бірақ бұл кезде олардың әрқайсысында қайталанбайтын атау болуы керек. Мәліметтер қорының берілген предикатын тек бір ғана database секциясында сипаттауға болады.

3. Стаңдарт предикаттар asserta, assertz, және consult көмегімен программа орындалуы кезінде ішкі мәліметтер қорына деректер қосуға болады. Сонымен қатар retract және retractall предикаттары көмегімен осы деректерді программа орындалуы кезінде өшіруге болады.

4. save предикаты деректерді database секциясынан файлға сақтайды. Редактор көмегімен деректердің осындай файлын құруға және редакциялауға болады, сонан соң файлдардан фактілерді consult предикаты көмегімен алуға болады.

5. Программадағы мәліметтер қоры предикатына басқа да предикаттарға сияқты хабарлауға болады.

6. database секциясы үшін генерацияланған ішкі домендерді қолдану кезінде деректермен терм ретінде жұмыс жасауға болады.

Ішкі мәліметтер қоры Database секциясын қалай хабарлайтынын және ішкі мәліметтер қорының мазмұнын қалай өзгертуге болатынын қарастырайық.

Ішкі мәліметтер қоры деректерден тұрады, оларды сіздің Прологтағы программаңыздан олардың орындалуы кезінде қосуға және өшіруге болады.

Database секциясында ішкі мәліметтер қорын сипаттайтын предикаттарды хабарлауға болады, және осы предиктттарды predicates секциясында сипатталған предикаттар ретінде қолдануға болады.

Мәліметтер қорына жаңа деректерді қосу үшін Прологта asserta және assertz предикаттары қолданылады, ал retract және retractall предикаттары бар деректерді өшіру үшін қолданылады. Алдымен деректі өшіріп, мәліметтер қоры мазмұнын өзгертуге болады, сонан соң осы деректің жаңа нұсқасын қоюға болады. Consult предикаты деректерді файлдан оқып, оларды ішкі мәліметтер қорына қосады, ал save database ішкі секциясын файлға сақтайды.

Пролог реляциялық мәліметтер қорын жүзеге асыратындықтан, оны деректер жиыны ретінде ішкі мәліметтер қорына сұраныс ретінде қолдануға болады.

Прологтың стаңдарт алгоритмі белгілі параметрлердің дұрыс ережесі бойыншадеректерді автоматты түрде таңдайды және қайтымды іздеу алгоритмі берілген сұраныс үшін барлық шешімдерді бермейінше кез келген белгісіз параметрлерге мәнді меншіктец береді.

Пролог мәліметтер қорына жататын деректерді қарапайым предикаттар секілді интерпретациялайды. Ішкі мәліметтер қорының предикат деректері кеэ келген уақытта өзгертілетін кестеде сақталады.

Database кілттік сөзі ішкі мәліметтер қорын сипаттайтын предикттарды хабарлау тізбегінің басын анықтайды. Орындалу кезінде пернетақтадан asserta және assertz предикаттары көмегімен мәліметтер қорына деректер қосуға болады. Consult стаңдарт предикатын шақырып, дисктегі файлдан қосылатын деректерді алуға болады. Database секциясы төмендегі мысал сияқты бола алады:

domains

name, address = string

age = integer

gender = male; female

database

person(name,address,age,gender)

predicates

male(name,address,age)

female(name,address,age)

child(name,age,gender)

clauses

male(Name,Address,Age):- person(Name,Address,Age,male).

Бұл мысалда person предикатын басқа предикаттар (male,female,child) сияқты қолдануға болады.

Келесілерді айта кеткен жөн:

1. Мәліметтер қорына ережелерді емес, тек деректерді ғана қосуға болады.

2. Қорлар декректері бос айнымалылардан тұрмауы керек.

Database бірнеше секцияларын жіберуге болады, бірақ ол үшін database әрбір секцияларының атын көрсету қажет. Бұл consult және save database ат бойынша қандай да бір анықталған секцияны жүктеу және сақтай алатын болған соң жасалады.

database – mydatabase

myFirstRelation(integer)

mySecondRelation(real, string)

myThirdRelation(string)

/* и т.д. */

goal

consult(”example.dba”,mydatabase),

retract(myFirstRelation(1)),

asserta(myFirstRelation(0)),

save(”example.dba”,mydatabase).

Мұндай сипаттама mydatabase атты мәліметтер қорын құрады. Егер шкі

мәліметтер қорына ат бермесе, онда келісім бойынша оған dbasedom аты беріледі.

Модульдегі мәліметтер қоры предикаттарының аттары қайталанбайтынын түсінген жөн. Database екі әртүрлі секцияларында предикаттардың бірдей аттарын қолдануға болмайды.

Программаға деректерді енгізу үшін, үш түрлі әдіс бар:

- деректерді clauses секторына енгізу;

- программа орындалуы кезінде asserta және assertz предикаттары көмегімен;

- consult предикаты көмегімен деректері бар мәліметтер қорын файлдан жүктеу.

Деректерді қосу төмендегі форматқа ие болады:

asserta(<факт>) /* (i) */

asserta(<факт>,databaseName) /* (i,i) */

assertz(<факт>) /* (i) */

assertz(<факт>,databaseName) /* (i,i) */

 

Тәжірибелік жұмыс №12. ListBox элементін қолдану







Дата добавления: 2015-10-19; просмотров: 712. Нарушение авторских прав; Мы поможем в написании вашей работы!



Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета...

Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где...

Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Психолого-педагогическая характеристика студенческой группы   Характеристика группы составляется по 407 группе очного отделения зооинженерного факультета, бакалавриата по направлению «Биология» РГАУ-МСХА имени К...

Общая и профессиональная культура педагога: сущность, специфика, взаимосвязь Педагогическая культура- часть общечеловеческих культуры, в которой запечатлил духовные и материальные ценности образования и воспитания, осуществляя образовательно-воспитательный процесс...

Устройство рабочих органов мясорубки Независимо от марки мясорубки и её технических характеристик, все они имеют принципиально одинаковые устройства...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия