Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MapReduce базаны пайдалана отырып, RDFS OWL п...docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
218 Кб
Скачать
☆

6.7 Алтыншы блок: мұраға сияқты

алтыншы блок ережесін 11. кодталады, ол талап, өйткені бұл ереже проблема болып табылады

көптеген элементтері бар екі деректер арасындағы қосылу. Біз кодтау Егер қосылу

біз еске екі жиынтықтар сақтау керек болады, бірақ ол мүмкін емес еді аңғалдық тәсілі

сай. Мысалды қарастырып көрейік:

url1 RDF: түрі Link

url2 RDF: түрі Link

... ...

urln RDF: түрі Link

Сілтеме үкі: sameAs URL

«Аңғалдық» жолы, өйткені біз жадындағы барлық мәндерді жүктеуге талап етеді

редукторы тек Итератора арқылы құндылықтарға рұқсаты бар және оны жылжыңыз мүмкін емес

бір рет артық. Сондықтан біз барлық «түрі» мәндерін сақтау үшін міндетті

Page 64

64

MAPREDUCE функциялары ретінде 6-тарау OWL Пайдасына

Алгоритм 16 OWL: бесінші блок, кодтау ережелері 9, 10, 12а, 12b, 13А, 13В

Картада (басты, мәні):

// Кілт: маңызды емес

// Мәні: енгізу үштік

содан кейін, егер: (equivalentClass мәні предикатты = үкі.)

шығару. (мәні. пәні, '0' + мәні. нысан) жинау

содан кейін, егер: (equivalentProperty мәні предикатты = үкі.)

шығару. (мәні. ескере отырып, «1» + мәні. нысан) жинау

содан кейін (егер класс мәні предикатты = RDF:.: түрі мен мәні нысан = үкі.)

шығару. (мәні. пәні, '2' + мәні. нысан) жинау

содан кейін (егер жылжымайтын мүлік құны предикатты = RDF:.: түрі мен мәні нысан = үкі.)

шығару. (мәні. пәні, «3» + мәні. нысан) жинау

(егер. мән предикатты = үкі: sameAs), содан кейін

шығару. (мәні. ескере отырып, «4» + мәні. нысан) жинау

(кілтін итератора мәндерін) азайту:

м ндері = мәндері. бірегей

(құндылықтар құнының) үшін

(егер мән [0] = 0) // ереже 12a, 12b

шығару. , негізгі (Triple, бос (жинау

rdfs: subClassOf, мәні. ресурс)

шығару. , (NULL, үш (мәні. ресурсты жинауға

rdfs: subClassOf, негізгі)

(егер мән [0] = 1) // ереже 13А, 13В

шығару. , негізгі (Triple, бос (жинау

rdfs: subPropertyOf, мәні. ресурс)

шығару. , (NULL, үш (мәні. ресурсты жинауға

rdfs: subPropertyOf, негізгі)

(мән [0] = 2) егер

subClassFlag = шын

Кэштелген // бос элементтері

(sameAsSet жылы sameResource) үшін

шығару. , негізгі (Triple, бос (жинау

rdfs: subClassOf, sameResource)

(мән [0] = 3) егер

subPropertyFlag = шын

Кэштелген // бос элементтері

(sameAsSet жылы sameResource) үшін

шығару. , негізгі (Triple, бос (жинау

rdfs: subPropertyOf, sameResource)

(мән [0] = 4) егер

(| | емес subPropertyFlag subClassFlag емес), егер

sameAsSet. (мәні. ресурс) қосу

elseif (subClassFlag) // 9-ереже

шығару. бос (жинау, үш (негізгі, rdfs: subClassOf

мәні. ресурс)

басқа // Ереженің 10

шығару. , subPropertyOf: нөл (жинау, үш (негізгі, rdfs

мәні. ресурс)

Page 65

6.7. АЛТЫНШЫ BLOCK: мұраға бірдей

65

біз бір немесе бірнеше «sameAs» мәндерін тап болғанша жады. Әлбетте, егер бар

топқа тым көп элементтер (жоғарыда мысал қарастырайық) алгоритм болып табылады

орындау мүмкін емес.

Бұл мәселені шешу үшін, біз басында барлық «sameAs» кортежи қоюға тиіс

өту жалауы туралы. MapReduce бағдарламалау үлгісі осындай қамтамасыз етпейді

ерекшелігі, бірақ біз сұрыптау үшін Hadoop шеңберінде сипаттамаларын пайдалануға болады

барлық «sameAs» луын тізімде бірінші болып пайда, осындай жолмен луын.

Hadoop аясында аралық луын картография қайтарылған

алдымен жергілікті сақталған, содан кейін азайту орындау машиналар жіберіледі

міндеттері. Сол кілтімен барлық кортежей себебі бірдей түйінге жіберілуі тиіс

олар бірге топталады және азайту алгоритмі өңделуі тиіс. Hadoop

ол жіберу керек, ол түйін анықтау үшін реттелуіне ның кілт хеш-кодын пайдаланады

м ндер жолы үшін. Мысалы, тапсырмалар орындау 10 редукторлар, картография бар болса,

реттелуіне ның кілттің hashcode есептеп, ол 10, оны бөледі және сәйкес

Модуль дұрыс түйінге қойылуы жібереді. Осылайша барлық кортежей

бірдей кілт бірдей түйінде аяқталады бар.

Бір түйін картография барлық кортежи алған соң, ол оларды сұрыптайды

тізім сол кілтімен барлық кортежей әрбір басқаларға келесі етіп. Содан кейін ол

пайдаланушы аны аргумент ретінде бірінші кілтін өтетін функциясын азайту шақырады

тізбесі мен жинақтарын тізімін құндылықтарын астам Итераторды. Әр уақыт пайдаланушы

«iterator.next» функциясы шақырады, база келесі қойылуы тексереді

тізімі, және бұл топ аяқталды дегенді білдіреді, өйткені ол тоқтап, өзгеше жағдайда

және жаңа топ келесі жазбаға басталады.

база үш стандартын қайта жазу үшін пайдаланушы мүмкіндік береді

функциялары: бірінші, екінші болып табылады, хеш-кодын есептейді функциясы болып табылады

Тізімдегі кортежи сұрыптайды функция және соңғы сол функциясы болып табылады

Біз қоңырау кезінде келесі негізгі алдыңғы қарағанда бірдей тексереді

функция «iterator.next».

, Сондықтан біз осы функцияларды қайта жазу:

• картасы кезеңінде, біз салыстырылуы керек деп негізгі URI ретінде орнату

ол жалпы болып табылады, егер үштік sameAs болып табылатын немесе 'W' болса, 'S' плюс ту, қосылу;

• Біз hash- есептейді функциясы ретінде хэш-код функция Жасақтау

соңғы жалаусыз пернесіне код

• Біз сұрыптайды функциясы ретінде реттелуіне кілтіне сұрыптайды функция Жасақтау

Лемма соңғы туын кілттерін қарастыру. Бұл функция әрдайым болады

'S' <'W', өйткені «sameAs» басқаларға қарағанда бұрын утраивается қоюға

• Біз функциясы ретінде тізімінде келесі мәнін тексереді функция Жасақтау

бұл өткен туын есепке алмай пернелерін салыстырады.

Ның не болып жатқанын көруге мысалды қарастырып көрейік. Біз осы үштіктің бар

енгізу:

а RDF: түрі Class

Сынып үкі: sameAs AnotherClass

Page 66

66

MAPREDUCE функциялары ретінде 6-тарау OWL Пайдасына

түрлендіргіш ерік шығу луын:

... ...

<ClassW, 2rdf: typeClass>

<ClassS, 0AnotherClass>

... ...

екі луын, сондықтан олар ыдырайтын мүмкін түрлі кілттер, бар

әр түрлі түйіндер арқылы өңделетін болады екі топ. Алайда, біз орнатқан

соңғы сипаты есепке алусыз хэш-код есептейді функциясы

және, демек, олар екеуі де бірдей топқа бөлінеді болады.

Редукторы кортежи сұрыпталған кейін, «sameAs» үштіктің әрқашан болады

тізімдегі бірінші олар бұл өткен сипаттағы басқа барлық ортақ, өйткені

'S' немесе 'W' ('S' <'W') болып табылады. Біздің азайту функциясы біз атқаратын қызметімді кезде

«Iterator.next» салыстыру кілт соңғы байт қарайды және ол емес,

екі түрлі кілттері бар, тіпті егер тең келесі қойылуы оралады.

Осы трюкті мақсаты басында «sameAs» кортежи болуы болып табылады

біз оларды жадыда жүктеуге болады, сондықтан тізімінен. алгоритм басталады азайту

Итераторы жылжыту және оны жадында тек «sameAs» мәндерін сақтайды. Кейін,

ол жадта сақталған барлық мәндері арасындағы қосылу жүзеге асыратын жалғасуда

мен жинақтарын әрқайсысы өту жалауы бастап алып келеді. м ндер жолы әйелдер тулар

біз өңдейді ретінің қандай білу қажет, себебі мәндер қажет,

«SameAs» немесе жалпы және жағдайда негізгі тақырыбы болды ма, жалпы болып табылады

немесе нысан.

алгоритм алгоритм хабарлайды 17. Біз бұл жұмысты екі орындау қажет

рет. Әйүп кейбір телнұсқаларын жасайды, сондықтан біз үштен іске қажет

сүзу жұмыс.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]