- •I also would like to thank Frank van Harmelen who offered me a job and Мен сондай-ақ маған жұмыс ұсынды және кім Франк Ван Harmelen алғысымды білдіргім келеді
- •1.2 Parallel and distributed reasoning 1.2 параллель және таратылған пайымдау
- •2.6 The MapReduce programming model 2.6 MapReduce бағдарламалау моделі
- •100 1 Млн Құрылғыны пайдалану үштіктің мен нәтижелері sublinear ауқымдылығы көрсетеді.
- •3.3 Сөздік кодтау
- •4.1 Неге біз сөздік кодтау мұқтажбыз
- •140Mb туралы, бұл әлі күнге дейін нақты машиналар үшін мүмкін, бірақ аз емес сома болып табылады
- •300 Млн бірегей ресурстары. Мөлшерін, біздің алдыңғы баға жасай отырып,
- •4.4.1 Шолу
- •3 Тапсырма өз міндеті id кодтау байт. Міндет id маркер өзіндік ретінде әрекет
- •Id және мәні ретінде үштік толық емес тіпті редукторы өңдеуге бар, сондықтан
- •13 Біз, өйткені тіпті біз жабу есептеу тіркелген нүктеге жетті
- •5.4 Үшінші және қорытынды жүзеге асыру
- •ValuesToMatch. (мәндер) қосу
- •Inverseofproperties (егер. (мәні бар. Береді,), содан кейін
- •6.4 Үшінші блок: sameAs есептілігі
- •6.5. Төртінші блок: сыныбы және subproperty есебіне 61 эквиваленттік
- •6.5 Төртінші блок: сыныбында бастап эквиваленттік және
- •6.7 Алтыншы блок: мұраға сияқты
- •6.8 Жетінші блок: hasValue мәлімдемелер
- •64 Тораптар келді.
- •12 Сағат, 130 жұмыс орны іске қосылды және астам 3.8b үштіктің алынған.
6.8 Жетінші блок: hasValue мәлімдемелер
Бұл блокта біз ережелерін 14a және 14b орындайды. Екі ережелер схемасына қол жеткізе
қарым-қатынас анықтау үштіктің «onProperty» және «hasValue». Ереже 14A жұмыстары
«түрі» ғана басқа ереже жалпы адамдарымен жұмыс істейді, ал, үштіктің. Біз
Бұл білдіреді, өйткені, бұл ереже 14b «түрі» үштіктің қабылдай алмаймыз болжауға
біз RDF туралы қатынасы «onProperty» анықтау, бұл: түрі предикат, өйткені мен
стандартты конструкциялық келген Басын мүмкіндік бермейді, бұл оқиға ғана
еленбейді. Бұл екі ережелері екі дизъюнктных топтар жұмыс істейді білдіреді.
картография предикат ма байланысты екі топқа бөлінеді үштіктің
түрі немесе жоқ: RDF болып табылады. Triple RDF бар болса: предикат ретінде түрі өңделетін болады
ереже 14b логикасына сәйкес, әйтпесе ол ереже 14а арқылы болады. Біз сондай-ақ орнату
үштік реттелуіне өзекті тақырыбы луын сәйкес топтастырылады, сондықтан
пән. Бұл топтау жинақталатын телнұсқаларын санын шектеуге бағытталған.
Предикат әрқашан, өйткені ереже 14b жағдайда біз, құны ретінде ғана нысанды салып
RDF: түрі, басқа жағдайда біз құны ретінде кодтау, ал екі предикат және
нысан.
Page 67 |
6.8. Жетінші блок: HASVALUE ЕСЕПТЕР
67
Алгоритм 17 OWL: алтыншы блок, кодтау ереже 11
Картада (басты, мәні):
// Кілт: маңызды емес
// Мәні: енгізу үштік
(егер. мән предикатты = үкі: sameAs), содан кейін
кілт =
мәні. пән + 'S'
шығару. (пернені, '0' + мәні. нысан) жинау
кілт = мән. нысан + 'S'
шығару. (кілтін '1' + мәні. тақырыпты) жинау
тағы
кілт = мән. пән + 'O'
outValue = '1' + мәні. предикат + мәні. зат
шығару. (кілтін outValue) жинау
кілт = мән. нысан + 'O'
outValue = '2' + мәні. предикат + мәні. пән
шығару. (кілтін outValue) жинау
(кілтін итератора мәндерін) азайту:
мәні = мәндері. бірегей
(құндылықтар құнының) үшін
(мән [0] = '0'), содан кейін // sameAs үштік егер
sameAsSet. (мәні. ресурс) қосу
тағы
(sameAsSet жылы sameResource) үшін
(мән [0] = '1'), содан кейін // мәні ISP + O, егер
шығару. , sameResource (Triple, бос (жинау
мәні. resource1, мәні. resource2)
басқа // мәні ISP + S
шығару. , (NULL, үш (мәні. resource2 жинау
мәні. resource1, sameResource))
Page 68 |
68
MAPREDUCE функциялары ретінде 6-тарау OWL Пайдасына
Алгоритм 18 OWL: жетінші блок, кодтау ережелері, 14а 14б сурет
Картада (басты, мәні):
// Кілт: маңызды емес
// Мәні: енгізу үштік
содан кейін, егер: (түрі мәні предикатты = RDF).
шығару. (мәні. пәні, '0' + мәні. нысан) жинау
тағы
шығару. (мәні. тақырыпты '1' + мәні. предикат + мәні. нысан) жинау
(кілтін итератора мәндерін) азайту:
(құндылықтар құнының) үшін
(мән [0] = 0), содан кейін // 14B ережелер, егер
onProperties = onPropertySchema. (мәні. объект) алу
hasValues = hasValueSchema. (мәні. объект) алу
содан кейін (onProperties! = NULL және hasValues! = NULL) егер
// Саналатын с нысан схемасына сәйкес келеді
(onProperties жылы onProperty) үшін
(hasValues жылы hasValue) үшін
шығару. (нөл, үш (кілті. тақырыпты, onProperty, hasValue) жинау
басқа // ереже 14A
onProperties = onPropertyInvertedSchema. (мәні. предикат) алу
hasValues = hasValueInvertedSchema. (мәні. объект) алу
түрлері = onProperties $ \ және $ hasValues
(түрлері түрі) үшін
шығару. . типі, түрі): (нөл, үш (негізгі тақырыбы, RDF жинау
редукторы алдымен тиіс билік, ол білу үшін құны жалауын тексеру
орындау. Құндылықтар қамтылған ақпарат сәйкес келсе кейін, олар тексеру
схемаға қарсы. Жағдайда ол, редукторлар, жаңа үштік шығарып істемейді.
екі ережелері қосылу үшін бір схема үштіктің пайдаланады, бірақ әр түрлі пайдалана отырып,
Матч ұпай. Осы себепті екі схема үштік («onProperty» және «has-
Мән «) 4 түрлі hashtables қотарылады. Алғашқы екі жылы біз үштік орнату
мәні ретінде кілт мен объектілерді сияқты пәндер. Бұл ереже 14b пайдаланылатын болады. The
басқалары кілт ретінде үштік заттарды пайдалана отырып, қарама-қарсы тәсілмен жасалады және
құны сияқты пәндер. Бұл екі ереже 14а үшін пайдаланылатын болады.
алгоритм алгоритм хабарлайды 18. Бұл жұмыс кейбір dupli- жасайды
жауапкершілігі шектеулі қоғамдарының басшыларына, сондықтан біз телнұсқаларын тазалау үшін басқа жұмысқа іске қосылады.
6.9 Сегізінші блок: someValues / allValuesFrom схемасы
Ереже 15 және ереже 16. Осы екі ережелері: Бұл блокта біз соңғы екі ережелерін орындау
4 түрлі үштіктің арасында қосыла талап етеді. Олардың екеуі схемасы үштік болып табылады және
олар жадында жүктелуі мүмкін. басқа екі деректер үштік, сондықтан біз
Page 69 |
6.9. Сегізінші BLOCK: SOMEVALUES / ALLVALUESFROM SCHEMA
69
а «аңғалдық» жолмен қосылу орындау керек.
Әдеттегідей біз телнұсқаларын шектеуге топтау үшін үштіктің картасы кезеңін пайдаланады.
The, сондай-ақ көптеген элементтері бар екі бөлшектер («түрі» үштіктің көздейді қосылу бастап
және жалпы адамдар), біз үшін блок 6 пайдаланылатын қарағанда, сол трюк қолданылады
жадындағы барлық элементтерді жүктеу үшін болдырмау. Біз реттелуіне негізгі бір байттан қосу
(Жалау «T» немесе «W»), содан кейін, арнайы хеш-кодын және сұрыптау функциясын пайдалану,
Біз алғаш рет «түрі» үштіктің қою м ндер тізімін сұрыптау мүмкіндігі болып табылады.
Егер Үш «түрі» бірі болып табылады, ол тек объектісі салыстырылуы мүмкін,
сондықтан түрлендіргіш пернесі және тақырыбына шығару тек бір қойылуы болады
құны ретінде нысан. Жағдайда үш жалпы болып табылады, ол арқылы салыстырылуы мүмкін
комбинациясы «пәні + предикат» (ереже 16) немесе аралас «нысан +
предикат «(ереже 15). Сондықтан, карта алгоритмі ерік шығу екі луын, бір
негізгі және дәйектілігі «предикат + объектісі» мәні ретінде, сондай-ақ субъектінің бар
кілт және мән ретінде дәйектілігі «предикат + пәні ретінде» объектісі өзге де.
алгоритм жүктер азайту бірінші «түрі»-ден астам жылжу жадында утраивается
мәндері. Содан кейін ол құндылықтарды туын тексереді және керекті қолданылады
оған сәйкес ереже. Жағдайда туы алгоритмі логикасын қолдануға болады 1
16-ереже, әйтпесе ол әдетте 15 бірін қолдануға болады.
Әдетте 15 жағдайда предикат болып табылады ма редукторы бірінші тексереді
«onProperty» схемасымен мәнге сәйкес қамтылған. Оны жасайды кезде
одан әрі «onProperty» мәндері ғана матч алынған ма тексеру жалғасуда
«someValuesFrom» схемасымен. Бұл алынған мәндер
соңғы Сәйкес бұдан бұрын жүктелген «түрі» үштіктің тексеріледі
жад. Барлық осы Сәйкес, алгоритм табысқа үшін маңызы бар болса,
жаңа үштік алса.
Әдетте 16 жағдайда алгоритм алғашқы «пиязды қарсы предикат сәйкес келеді
Жылжымайтын мүлік «схемасы. дәл осы қосылу оралды мәндер одан әрі салыстырылады
«allValues» схемасына және «түрі» үштіктің қарсы шығу құндылықтардың қарсы.
Сол сияқты бұрын, барлық осы алгоритм табысқа сәйкес алса кезде
жаңа есептілігі.
Екі ережелер рекурсивті болып табылады және бұл біз әзірге тапсырмасын бірнеше рет іске қосу керек дегенді білдіреді
біз барлық алынған болды. Кейін, біз телнұсқаларын тазалау үшін жұмысқа іске
бұл алдыңғы жұмыс кезінде шығарады болды.
Бұл соңғы блок есептеу негізгі алгоритм оты рады аяқталғаннан кейін
ол сегіз орындау кезінде кейбір жаңа үштік алынған ма реттегіштер
блоктар. Жағдайда, ол бұл қайтадан бірінші блогын жүзеге асыратын топтамасын асқындырады жоқ.
Page 70 |
70
MAPREDUCE функциялары ретінде 6-тарау OWL Пайдасына
Алгоритм 19 OWL: сегізінші блогы, кодтау ережелері 15,16
Картада (басты, мәні):
// Кілт: маңызды емес
// Мәні: енгізу үштік
содан кейін, егер: (түрі мәні предикатты = RDF).
outKey = мәні. пән + 'T'
outValue = '0' + мәні. зат
шығару. (outKey, outValue) жинау
тағы
outKey = мәні. пән + 'W'
outValue = '1' + мәні. предикат + мәні. зат
шығару. (outKey, outValue) жинау
outKey = мәні. нысан + 'W'
outValue = '2' + мәні. предикат + мәні. пән
шығару. (outKey, outValue) жинау
(кілтін итератора мәндерін) азайту:
// '' Түрлері 'ресурстың барлық түрлерін қамтитын болады
// Кілт
түрлері. бұлттылық ();
ал (мәндер hasNext және мәні [0] = 0)
Келесі мәні = құндылықтар
түрлері. (мәні) қосу
(мәндер hasNext), ал
Келесі мәні = құндылықтар
// «OnProperty 'схемасымен предикат сәйкес
onProperties = onPropertySchema. (мәні. предикат) алу
(onProperties жылы onProperty) үшін
(мән [0] = 1), содан кейін // ереже 16 болса,
түрлері (егер., содан кейін (onProperty) бар
allValues = allValuesSchema. (onProperty) алу
(allValues жылы allValue) үшін
шығару. бос (жинау,
Triple (мән тақырыбы, RDF. түрі, allValue)
басқа // әдетте 15
someValues = someValuesSchema. (onProperty) алу
(someValues жылы someValue) үшін
түрлері (егер., содан кейін (someValue) құрамында
шығару. бос (жинау,
Triple (мән тақырыбы, RDF. түрі, onProperty)
Page 71 |
7-тарау
Нәтижелер
Бұл тарауда біз алгоритмдер біз спектакльдер талдау есеп
ұсындым. 7-бөлім .1 есептер қоршаған кейбір техникалық сипаттамалары
біз сынақтарын жүргізді, онда ортаға. Бөлім 7.2 қойылымдар хабарлайды
алынған және олардың бағалау.
7.1 Тәжірибелер параметрлері
Бағдарламаның бағалау үшін біз Вриже кезінде кластерлік DAS3 пайдаланды
Universiteit
1 1
. Ол 85 түйіндер, екі қос өзегі жабдықталған әрбір кластер болып табылады
Негізгі жады және 250GB қатты дискінің 4 Гб процессорлар. түйіндері болып табылады
Gigabit Ethernet арқылы өзара.
Біз jobtracker және бір бір түйінді қорға бір Hadoop кластерді орнату
namenode арналған түйін. Біз ауқымды үшін құл айнымалы сомасын пайдаланылған
1-ден 64-ке дейін басталатын тест.
әзірленді бағдарламалар Java 1.6 жазылған және олар пайдаланатын
Hadoop туралы 0.19.1 нұсқасы. бағдарламалары Интернетте жалпыға қолжетімді болып табылады
2 2
.
7.2 Ойынның нәтижесi
Біз үш бөліктен секциясын бөлдік. Бөлімше 7.2.1 біздіңше хабарлайды
formances болды сөздік кодтау алгоритмі бағалау
ұсынылған 4.4 . Бөлімше 7.2.2 қойылымдар және бағалауды хабарлайды
RDFS reasoner туралы. Бөлімше 7 .2.3 есептер қойылымдар мен қысқаша
OWL reasoner талдау.
1 1
http://www.cs.vu.nl/das3
2 2
https://code.launchpad.net/jrbn/+junk/reasoning-hadoop
71
Page 72 |
72
7-тарау НӘТИЖЕЛЕР
7.2.1 Сөздік кодтау қойылымдар
сөздік кодтау алгоритмі деректерді кодтау үшін екі MapReduce жұмыс орындарын пайдаланады
жаңа астам жинақы форматында. Біздің алгоритмі жүктеуді теңдестіру проблемаларды көрсетеді
біз орнына толық мәтінді үштіктің идентификаторларын пайдалану фактісі шектеулі екенін, бірақ
әлі күнге дейін үлкен енгізу сақталады. Бұл мәселені шешу үшін біз бар кэшін енгізілді
жүктемені теңгеру көмектесу үшін ең танымал ресурстары. Алайда, іс, біз
кэшін пайдалануға шешеді, біз салуды бірінші қосымша жұмысты іске қосу үшін қажет
Кэш. Осы тапсырма алады, бұл уақыт артықшылығы біз үркітеді тиіс
сөздік кодтау кезінде оны пайдалану пайда.
Біз кэшті пайдалану шешеді ме, немесе, алгоритм талап қандай
ауқымды болуы тиіс емес. Біз алгоритм ауқымдылығы өлшенеді болды
түрлі кіріс мөлшері мен әр түрлі түйіндердің бар.
Біз 7-суретте есеп .1 Т ол кірісті түрлі ауқымдылығы сынау нәтижелері
кэш бар және жоқ өлшемі. Сол сияқты, суретте 7.2 біз есеп
Біздің алгоритмі спектакльдер тіркелген кіріс мөлшерін сақтай отырып, бірақ әр түрлі пайдалана отырып,
түйіндердің саны.
Сурет 7.1: Кіріс мөлшерін түрлі сөздік кодтау Масштабтылық сынақ
Осы графиктер біз қашан біз алгоритм жақсы орындайды қалай көруге болады
кэшті пайдаланыңыз. Бұл мінез-құлық, себебі есептеу кэштау жоқ деп күтілуде
жылдамдығы жүктеуді теңдестіру проблемасын әсер етеді. Біз кэшті енгізу кезінде,
біз жоюға немесе, кем дегенде, жүктемені теңгеру мәселесі мен ауқымдылығы шоу азайту
Page 73 |
7.2. НӘТИЖЕЛЕР
73
Сурет 7.2: түйіндер санын өзгерту сөздік кодтау Масштабтылық сынақ
Page 74 |
74
7-тарау НӘТИЖЕЛЕР
мінсіз дерлік желілік.
Сөздік кодтау кезінде кэшті пайдалану үшін, біз алдымен іске тиіс
енгізу ең танымал ресурстарды санайды қарапайым MapReduce жұмыс.
Біз осы жұмысқа, сондай-ақ ауқымдылығы талап әйтпесе үлкен пайдаланылуы мүмкін емес
енгізу. Осы себепті біз осы жұмысқа қойылымдар өлшенеді болды
түрлі кіріс өлшемдері мен нәтижелері суретте келтірілген 7. 3. Біз бұл жасасуға
бұл желілік ауқымдылығы көрсетеді, себебі, сондай-ақ бұл жұмыс жақсы таразы.
Кэшін құрылыс Масштабтылық: 7.3-сурет
Әзірге біз кэш Әл қойылымдар арттырады көрдік
орындау мерзімін және ауқымдылығы тұрғысынан да gorithm. Сондай-ақ,
кэшін салып алгоритм ауқымды болып шықты. Figur жылы E 7 .4 біз шығарды
сөздікті орындау уақыт кэшін құрылыс уақыты
кодтау және біз жоқ алгоритм орындау уақыты, оны салыстырғанда
Кэш. мақсаты кэшті пайдалану тұр ма немесе жоқ бағалау
жалпы орындау мерзімін. Яғни, біз көре аламыз екі сомасы болып табылады
ҚазҰУ әрқашан ұзақ ғана пайдаланбай алгоритм орындауға қарағанда
Кэш. Яғни, біз, осы нәтижелеріне жасасуға кэш жақсартады, бірақ, бұл
Алгоритмнің ауқымдылығы, ол жалпы орындау, өйткені пайдалану қажеті жоқ
ұзақ ғана кэш жоқ пайдалану алгоритмі артық.
Ол біздің жағдайда жүктемені теңгеру орындайтынын болуы мүмкін арналған түсіндіру
Кэшті ақтау үшін сонша зақым жоқ. Алайда, бұл сондай-ақ, бұл тапсырма болуы мүмкін
Page 75 |
7.2. НӘТИЖЕЛЕР
75
кэшін құрылыс жалпы тым баяу болып табылады және ол аз болуы ешқашан
пайда кэшін арқылы алынған.
Кэшін пайдаланып, сондай-ақ ескере отырып, оны пайдалану емес арасындағы Жанр: 7.4-сурет
кэш құрылыс уақыты
Бір соңғы талдау кэш өлшемін әртүрлі және бар болса көре жасалуы мүмкін
Спектакльдердің елеулі өсуі, біз үлкен кэшті пайдалансаңыз. Осы мақсат үшін
біз түрлі кэш өлшемін пайдаланып сөздік кодтау бірінші тапсырманы іске қосты.
Біз кэш өлшемін ұлғайту, егер біз жақсы дейін қойылымдар алу деп күтілуде
белгілі бір шегі. Өйткені кейін, кез-келген елеулі айырмашылық бар болуы тиіс,
Әйүп жеткілікті теңдестірілген болуы тиіс. Біз тест өткізді және біз хабарлады
суретте нәтижелері 7.5 . Бұл графиктің бастап көріп отырғанымыздай, нәтижелері көрсетеді
бастапқы күтулер: орындау уақыты 15 элементтерінің дейін күрт төмендейді,
содан кейін уақыт аз азаяды және ол 50 және 100 элементтері арасындағы тұрақтандырады. Біз
Бұл енгізу үшін тамаша кэш мөлшері 10 арасында болуы тиіс екенін одан жасасуға
және біз енді кез-келген жеделдетуге ие емес, себебі кейін 50 элементтері.
Қойылымдар негіздеу 7.2.2 RDFS
Біз RDFS өнер бағалау үш аспектілерін қарады ережесін
Soner.
бірінші дұрыстығы болып табылады. Әлбетте, бұл алгоритм нәтиже керек
Page 76 |
76
7-тарау НӘТИЖЕЛЕР
Әр түрлі кэш өлшемін пайдаланып Жанр: 7.5-сурет
Page 77 |
7.2. НӘТИЖЕЛЕР
77
Dataset
Енгізу
Шығу
Exec. уақыт Rel. StDev
WordNet
1.942.887
3.004.496
2m25s
9,8%
DBPedia
150.530.169 21.447.573
2m44s
4,1%
Сұңқар
32.512.291
832.412.298
4m35s
1,1%
Swoogle
78.839.999
1.431.765.550
6m33s
0,7%
1B байқауы 864.846.753 29.170.100.223 58m43s
1,9%
Кесте 7.1: түрлі жиынтықтар қойылымдарға RDFS reasoner
дыбыс және толық болып табылады және біздің бірінші қамқорлық, оны тексеру болды. Біз бірінші өндірілген
Кейбір сынақ жағдайлары және шығыс дұрыс екенін тексерген. Содан кейін біз салыстырғанда
осы сомаға шағын онтология (WordNet) бойынша алынған үштіктің сомасы
Кейбір елеулі болды көру үшін, егер бұрыннан бар алгоритмі алынған
айырмашылықтар. Біз кез келген қателік таба алмады, сондықтан да біз деп санауға болады
біз жүзеге асыру, бұл кепілдік бере алмаймыз, бірақ нәтиже өндірді, дұрыс
қате тегін болып табылады.
Екінші аспект тұрақтылық болып табылады. Біз бөлінген жүйесін пайдаланатын болғандықтан, бұл әсері
Біздің алгоритмі сенімді маңызды, әрқашан шамамен бір уақытта аяқталатын.
Осы себепті біз әрбір тест үш рет қайталанады және біз орташа алды
және нәтижелері стандартты ауытқуы.
үшінші аспекті ауқымдылығы болып табылады. біз дамыған бағдарламасы болуы керек
ауқымды, бұл біздің сұрау болып табылады. Ауқымдылығы бағалау қиын, бұл
ол көрсетілгендей кіріс мөлшері қарсы көп деректер байланысты, өйткені
өзі. Біз түрлі өлшемдегі түрлі жиынтықтар туралы reasoner тексерілген және бізде бар
өлшеу хабарлады. Біз, сондай-ақ пайдалана отырып, қойылымдар сыналды
енгізу және базаның түйіндердің мөлшерін өзгерту сияқты деректер жиынтығы.
Біріншіден, біз содан кейін біз басқа түйінді қосылды, 1 түйіннің басталды, сондықтан, біз дейін
