Программный интерфейс для преобразования
Предлагается программный интерфейс, обеспечивающий автоматическое преобразование промежуточных DBF-файлов Zoo_data.dbf и Prizn.dbf в базы данных системы "Эйдос" (исходный текст на языке программирования – xBase приведен ниже):
********************************************************************************
*** ФОРМИРОВАНИЕ КЛАССИФИКАЦИОННЫХ И ОПИСАТЕЛЬНЫХ ШКАЛ И ГРАДАЦИЙ,
*** А ТАКЖЕ ОБУЧАЮЩЕЙ ВЫБОРКИ ИЗ DBF-Excel-файла РЕПОЗИТАРИЯ UCI ПО ЖИВОТНЫМ
*** http://ftp.ics.uci.edu/pub/machine-learning-databases/zoo/zoo.names
*** Луценко Е.В., 10/18/04 01:19pm *********************************************
scr23 = SAVESCREEN(0,0,24,79)
SET CURSOR OFF
SET DATE ITALIAN
SET DECIMALS TO 15
SET ESCAPE On
FOR J=0 TO 24
@J,0 SAY REPLICATE(" ",80) COLOR "rg+/N"
NEXT
SHOWTIME(0,60,.F.,"rg+/n",.F.,.F.)
Mess = " === ФОРМИРОВАНИЕ СПРАВОЧНИКОВ КЛАССИФИКАЦИОННЫХ ШКАЛ === "
@2,40-LEN(Mess)/2 SAY Mess COLOR "rg+/rb"
Vid = "Y"
@17, 6 SAY "Включать в признаки коды наименования животного и его вида <Y/N>? #" COLOR "w+/rb"
* 0123456789012345678901234567890123456789012345678901234567890123456789012345678
* 0 10 20 30 40 50 60 70
@17,72 GET Vid PICTURE "X" COLOR "rg+/r"
SET CURSOR ON;READ;SET CURSOR OFF
IF Vid <> "Y" .AND. Vid <> "N"
Vid = "N"
ENDIF
USE Object EXCLUSIVE NEW;ZAP
USE Zoo_data EXCLUSIVE NEW
ArObj := {}
AADD(ArObj,"МЛЕКОПИТАЮЩИЕ ")
AADD(ArObj,"ПТИЦЫ ")
AADD(ArObj,"ПРЕСМЫКАЮЩИЕСЯ?")
AADD(ArObj,"РЫБЫ ")
AADD(ArObj,"ЗЕМНОВОДНЫЕ ")
AADD(ArObj,"НАСЕКОМЫЕ ")
AADD(ArObj,"МНОГОНОГИЕ ")
SELECT Zoo_data
DBGOTOP()
DO WHILE .NOT. EOF()
AADD(ArObj,FIELDGET(2))
DBSKIP(1)
ENDDO
SELECT Object
DBGOTOP()
FOR j=1 TO LEN(ArObj)
APPEND BLANK
REPLACE Kod WITH j
REPLACE Name WITH ArObj[j]
NEXT
CLOSE ALL
Mess = " ====== ФОРМИРОВАНИЕ СПРАВОЧНИКОВ ОПИСАТЕЛЬНЫХ ШКАЛ ====== "
USE Prizn EXCLUSIVE NEW
USE Priz_per EXCLUSIVE NEW;ZAP
ArPr := {}
SELECT Prizn
DBGOTOP()
DO WHILE .NOT. EOF()
AADD(ArPr,FIELDGET(2))
DBSKIP(1)
ENDDO
SELECT Priz_per
DBGOTOP()
FOR j=1 TO IF(Vid="Y",LEN(ArPr),25)
APPEND BLANK
REPLACE Kod WITH j
REPLACE Name WITH ArPr[j]
NEXT
@24,0 SAY REPLICATE("-",80) COLOR "rb/n"
CLOSE ALL
Mess = " ============ ФОРМИРОВАНИЕ ОБУЧАЮЩЕЙ ВЫБОРКИ ============= "
CLOSE ALL
USE Zoo_data EXCLUSIVE NEW
USE ObInfZag EXCLUSIVE NEW;ZAP
USE ObInfKpr EXCLUSIVE NEW;ZAP
N_Rec = RECCOUNT()
DBGOTOP()
@24,0 SAY REPLICATE("-",80) COLOR "rb/n"
SELECT Zoo_data
DBGOTOP()
DO WHILE .NOT. EOF()
ArObj := {}
FOR j=1 TO 2
AADD(ArObj,FIELDGET(j))
NEXT
FOR j=21 TO 22
AADD(ArObj,FIELDGET(j))
NEXT
ArPr := {}
FOR j=3 TO 20
Mv = FIELDGET(j)
IF Mv > 0
IF Vid = "Y"
AADD(ArPr,Mv)
ELSE
IF Mv <= 25
AADD(ArPr,Mv)
ENDIF
ENDIF
ENDIF
NEXT
****** Запись массива кодов классов из БД Zoo_data в БД ObInfZag
SELECT ObInfZag
APPEND BLANK
FOR j=1 TO LEN(ArObj)
FIELDPUT(j,ArObj[j])
NEXT
****** Запись массива кодов признаков из БД Zoo_data в БД ObInfKpr
SELECT ObInfKpr
APPEND BLANK
FIELDPUT(1,ArObj[1])
k=2
FOR j=1 TO LEN(ArPr)
IF k <= 12
FIELDPUT(k++,ArPr[j])
ELSE
APPEND BLANK
FIELDPUT(1,ArObj[1])
k=2
FIELDPUT(k,ArPr[j])
ENDIF
NEXT
SELECT Zoo_data
DBSKIP(1)
ENDDO
RESTSCREEN(0,0,24,79,scr23)
CLOSE ALL
QUIT
Программный интерфейс автоматически заполняет исходными данными следующие базы данных системы "Эйдос":
– Object.dbf:
классы (классификационные шкалы и градации);
– Priz_per.dbf:
атрибуты (описательные шкалы и градации);
– ObInfZag.dbf:
обучающая выборка (главная база данных);
– ObInfKpr.dbf:
обучающая выборка (связанная база данных).
В результате система "Эйдос" готова к синтезу семантической информационной модели и выполнению последующих этапов работ.