Reifikatsiya (informatika) - Reification (computer science)

Reifikatsiya a haqida mavhum fikr yuritish jarayoni kompyuter dasturi aniq qilib aylantirildi ma'lumotlar modeli yoki a-da yaratilgan boshqa ob'ekt dasturlash tili. Hisoblanadigan / adreslanadigan ob'ekt - resurs - tizimda hisoblanmaydigan / adreslanadigan ob'ekt uchun proksi sifatida yaratiladi. Reifikatsiya qilish yo'li bilan ilgari yashirin, ifoda etilmagan va ehtimol tushuntirib bo'lmaydigan narsa aniq shakllantirilgan va kontseptual (mantiqiy yoki hisoblash) manipulyatsiyaga taqdim etilgan. Norasmiy ravishda reifikatsiya ko'pincha "biror narsa qilish a birinchi darajali fuqaro "ma'lum bir tizim doirasida. Tizimning ba'zi jihatlari qayta ko'rib chiqilishi mumkin tilni loyihalash vaqtibilan bog'liq bo'lgan aks ettirish dasturlash tillarida. U sifatida qo'llanilishi mumkin bosqichma-bosqich takomillashtirish da tizimni loyihalash vaqti. Reifikatsiya - bu eng ko'p ishlatiladigan usullardan biridir kontseptual tahlil va bilimlarni namoyish etish.

Yansıtıcı dasturlash tillari

Kontekstida dasturlash tillari, reifikatsiya - bu tarjima qilingan dastur va ish vaqti tizimida mavjud bo'lgan foydalanuvchi dasturi yoki dasturlash tilining istalgan tomoni tilning o'zida ifodalanadigan jarayon. Ushbu jarayon uni dasturga taqdim etadi, bu esa ushbu jihatlarni odatdagidek tekshirishi mumkin ma'lumotlar. Yilda aks ettiruvchi tillar, reifikatsiya ma'lumotlari tegishli reifitatsiya qilingan tomon bilan nosozlik bilan bog'langan bo'lib, ulardan birining modifikatsiyasi boshqasiga ta'sir qiladi. Shuning uchun reifikatsiya ma'lumotlari har doim bog'liq bo'lgan qayta tiklangan tomonning sodiq vakili hisoblanadi[tushuntirish kerak ]. Reifikatsiya ma'lumotlari ko'pincha aytiladi a birinchi sinf ob'ekti[iqtibos kerak ]. Reifikatsiya, hech bo'lmaganda qisman, hozirgi kungacha ko'plab tillarda boshdan kechirilgan: erta davrda Lisp shevalari va hozirgi vaqtda Prolog lahjalari, dasturlar ma'lumotlar sifatida ko'rib chiqilgan, garchi sababiy bog'liqlik ko'pincha dasturchining zimmasiga yuklangan. Yilda Kichik munozarasi -80, dastlabki matndan bayt kodigacha kompilyator tilning birinchi tatbiq etilishidan beri ish vaqti tizimining bir qismi bo'lib kelgan.[1]

  • The C dasturlash tili ning past darajadagi tafsilotlarini takrorlaydi xotira manzillari.
    Dasturlash tilining ko'plab dizaynlari kompilyatorda va ish vaqti tizimida xotirani taqsimlash tafsilotlarini o'z ichiga oladi. C dasturlash tilini loyihalashda xotira manzili qayta ko'rib chiqiladi va boshqa til konstruktsiyalari bilan to'g'ridan-to'g'ri manipulyatsiya qilish uchun mavjud. Masalan, xotira bilan moslashtirilgan qurilma drayverini amalga oshirishda quyidagi kod ishlatilishi mumkin. Bufer ko'rsatkichi 0xB800000 xotira manzili uchun proksi-serverdir.
     char* bufer = (char*) 0xB800000; bufer[0] = 10;
  • Funktsional dasturlash tillari asoslangan lambda-hisob shaklida muolajalarni mavhumlashtirish va protseduralarni qo'llash tushunchalarini qayta ko'rib chiqing Lambda ifodasi.
  • The Sxema dasturlash tili reishes davomi (taxminan, qo'ng'iroqlar to'plami).
  • Yilda C #, reifikatsiya qilish uchun ishlatiladi parametrik polimorfizm tilning birinchi darajali xususiyati sifatida umumiy so'zlar sifatida amalga oshirildi.
  • In Java dasturlash tili, "ishlash vaqtida to'liq mavjud bo'lgan" (ya'ni kompilyatsiya paytida ularning ma'lumotlari o'chirilmaydi) "qayta tiklanadigan turlari" mavjud.[2]
  • BOShQARISh kodni ma'lumotlar sifatida o'zgartiradi va aksincha.
  • Kabi ko'plab tillar Lisp, JavaScript va Jingalak, ta'minlash baholash yoki baholash protsedura bu til tarjimonini samarali ravishda takomillashtiradi.
  • The Logtalk uchun ramka Prolog kontekstida reifikatsiyani o'rganish vositasini taklif qiladi mantiqiy dasturlash.
  • Kichik munozarasi va Aktyor tillari bloklarni qayta tiklashga ruxsat berish va xabarlar,[3] bular Lispdagi lambda ifodalarining ekvivalenti va thisContext bu joriy bajarilayotgan blokning reifikatsiyasi.
  • Gomoyon tillari tilning o'zi sintaksisini an shaklida takrorlang mavhum sintaksis daraxti, odatda bilan baholash.

Ma'lumotlarni aniqlashtirish va ma'lumotlarni aniqlashtirish

Ma'lumotlarni tasdiqlash (bosqichma-bosqich takomillashtirish ) ning aniqroq ko'rinishini topishni o'z ichiga oladi mavhum ma'lumotlar turlari ishlatilgan rasmiy spetsifikatsiya.

Ma'lumotlarni tasdiqlash - bu terminologiya Venani rivojlantirish usuli (VDM), aksariyat odamlar ma'lumotlarni aniqlashtirish deb atashadi. Masalan, maqsadli dastur tilida sherigi bo'lmagan ma'lumotlarning vakolatxonasini (masalan, massivlar tomonidan bajarilishi mumkin bo'lgan sobit domenlarga ega xaritalar kabi) o'xshash to'plamga almashtirish orqali amalga oshirishga qadam qo'yish yoki hamkasbiga yaqinroq bo'lgan kamida bittasi, masalan ketma-ketliklar. VDM hamjamiyati "takomillashtirish" o'rniga "qayta qurish" so'zini afzal ko'radi, chunki jarayon g'oyani takomillashtirish bilan emas, balki konkretlashtirish bilan bog'liq.[4]

Shunga o'xshash foydalanish uchun qarang Reifikatsiya (tilshunoslik).

Kontseptual modellashtirishda

Reifikatsiya keng qo'llaniladi kontseptual modellashtirish.[5] O'zaro munosabatlarni birlashtirish, uni shaxs sifatida ko'rishni anglatadi. O'zaro munosabatlarni tiklashning maqsadi, agar unga qo'shimcha ma'lumot qo'shilishi kerak bo'lsa, uni aniq qilishdir. O'zaro munosabatlar turini ko'rib chiqing IsMemberOf (a'zo: Shaxs, qo'mita). Ning misoli IsMemberOf shaxsning qo'mita a'zosi ekanligi haqidagi munosabatni anglatadi. Quyidagi rasmda aholining namunasi ko'rsatilgan IsMemberOf jadval shaklida munosabatlar. Shaxs P1 qo'mitalarning a'zosi C1 va C2. Shaxs P2 qo'mita a'zosi C1 faqat.

Misol populyatsiyasi IsMemberOf jadval shaklida munosabatlar. P1 shaxs C1 va C2 ​​qo'mitalarining a'zosi. P2 shaxs faqat C1 qo'mitasining a'zosi.

Biroq, xuddi shu haqiqatni ham mavjudot sifatida ko'rib chiqish mumkin edi. O'zaro munosabatlarni sub'ekt sifatida ko'rib, korxona munosabatlarni qayta tiklaydi deb aytish mumkin. Bunga munosabatlarning reifikatsiyasi deyiladi. Boshqa har qanday shaxs singari, u ham ob'ekt turiga tegishli bo'lishi kerak. Ushbu misolda shaxs turi nomlangan A'zolik. Ning har bir misoli uchun IsMemberOf, bitta va bitta misol mavjud A'zolikva aksincha. Endi asl munosabatlarga qo'shimcha ma'lumot kiritish mumkin bo'ladi. Misol tariqasida, biz "p1 kishining qo'mita a'zosi bo'lish uchun p1 kishining p2 tomonidan nomzodi ko'rsatilganligi" haqiqatini ifoda etishimiz mumkin. Reified munosabatlar A'zolik yangi munosabatlarning manbai sifatida ishlatilishi mumkin IsNominatedBy (a'zolik, shaxs).

Tegishli foydalanish uchun qarang Reifikatsiya (bilimlarni namoyish etish).

Birlashtirilgan modellashtirish tilida (UML)

UML sinf diagrammasi a'zolik misoli uchun.

UML beradi assotsiatsiya sinfi reified munosabatlar turlarini aniqlash uchun qurish. Assotsiatsiya sinfi - bu birlashma turi va sinfning o'ziga xos turi bo'lgan yagona model elementi.[6] Birlashma va birlashtiradigan shaxs turi ikkalasi ham bir xil model elementidir. Atributlarni qayta tiklash mumkin emasligiga e'tibor bering.

Semantik Internetda

RDF va OWL

Yilda Semantik veb kabi tillar Resurs ta'rifi doirasi (RDF) va Veb-ontologiya tili (OWL), bayonot ikkilik munosabatdir. U ikkita shaxsni yoki shaxsni va qiymatni bog'lash uchun ishlatiladi. Ilovalar ba'zan boshqa RDF bayonotlarini tavsiflashi kerak, masalan, bayonotlar qachon yozilganligi yoki ularni kim qilgani kabi ma'lumotlarni yozib olish uchun, ba'zan shunday deyiladi "isbotlash "ma'lumot. Misol tariqasida biz munosabatlarning o'ziga xos ishonchliligi, munosabatlarning zo'ravonligi yoki mustahkamligi, munosabatlarning dolzarbligi va boshqalar kabi xususiyatlarni namoyish etishni xohlashimiz mumkin.

Kontseptual modellashtirish bo'limidagi misol ma'lum bir kishini tasvirlaydi URIref shaxs: p1, kimning a'zosi qo'mita: c1. Ushbu tavsifdan RDF uch baravar

  shaxs:p1   qo'mita:isMemberOf   qo'mita:c1 .

Yana ikkita faktni saqlashni o'ylab ko'ring: (i) ushbu shaxsni ushbu qo'mitaga kim nomzod qilib ko'rsatganligini (a'zolik to'g'risidagi bayonot) va (ii) ma'lumotlar bazasiga kim qo'shganligini yozib olishni (bayonot to'g'risidagi bayonot).

Birinchi hodisa UML-da yuqoridagi kabi klassik reifikatsiya qilish holati: a'zolikni qayta tiklash va uning atributlari va rollarini saqlash.

 qo'mita:A'zolik        rdf:turi              boyqush:Sinf . qo'mita:a'zolik 12345   rdf:turi              qo'mita:A'zolik . qo'mita:a'zolik 12345   qo'mita:Shaxs    shaxs:p1 . qo'mita:a'zolik 12345   qo'mita:qo'mita qo'mita:c1 . shaxs:p2                   qo'mita:nomzod   qo'mita:a'zolik 12345 .

Bundan tashqari, RDF RDF bayonotlarini tavsiflash uchun mo'ljallangan so'z birikmalarini taqdim etadi. Ushbu so'z boyligidan foydalangan holda bayonotning tavsifi bayonotni qayta tuzish deyiladi. RDF reifikatsiyasi lug'ati turdan iborat rdf: Bayonotva xususiyatlari rdf: mavzu, rdf: predikatva rdf: ob'ekt.[7]

Reifikatsiya lug'atidan foydalanib, shaxsning a'zoligi haqidagi bayonotni tasdiqlash, masalan, URIref tayinlash orqali beriladi. qo'mita: a'zolik 12345 bayonlarni bayon qilib quyidagicha yozish mumkin:

 qo'mita:a'zolik 12345Stat   rdf:turi        rdf:Bayonot . qo'mita:a'zolik 12345Stat   rdf:Mavzu     shaxs:p1 . qo'mita:a'zolik 12345Stat   rdf:predikat   qo'mita:isMemberOf .  qo'mita:a'zolik 12345Stat   rdf:ob'ekt      qo'mita:c1 .

Ushbu bayonotlar shuni ko'rsatadiki, tomonidan aniqlangan manba URIref qo'mitasi: a'zolik 12345Stat RDF bayonoti bo'lib, bayonot mavzusi tomonidan aniqlangan manbaga tegishli shaxs: p1, bayonotning predikati tomonidan aniqlangan manbaga ishora qiladi qo'mita: isMemberOf, va bayonot ob'ekti resursga ishora qiladi qo'mita: c1. Dastlabki bayonot aslida tomonidan aniqlangan deb taxmin qilish qo'mita: a'zolik 12345, asl bayonotni reifikatsiya bilan taqqoslash orqali aniq bo'lishi kerak, bu reifikatsiya aslida uni tasvirlaydi. RDF reifikatsiyalash lug'atidan an'anaviy foydalanish har doim ushbu namunadagi to'rtta bayonot yordamida bayonotni tavsiflashni o'z ichiga oladi. Shuning uchun ularni ba'zan "reifikatsiya to'rtligi" deb atashadi.[7]

Ushbu konventsiyaga muvofiq reifikatsiyadan foydalanib, biz buni qayd etishimiz mumkin shaxs: p3 tomonidan ma'lumotlar bazasiga bayonot qo'shildi

  shaxs:p3    qo'mita:AddToDatabase    qo'mita:a'zolik 12345Stat .

Shuni ta'kidlash kerakki, reifikatsiyani an'anaviy ravishda ishlatishda reififikatsiya mavzusi uch baravar, xuddi shu mavzu, predikat va ob'ektga ega bo'lgan ba'zi bir o'zboshimchalik bilan uch marta emas, balki ma'lum bir RDF hujjatidagi uchlikning ma'lum bir nusxasini aniqlash uchun qabul qilinadi. Ushbu konventsiya qo'llaniladi, chunki reifikatsiya allaqachon keltirilgan misollarda bo'lgani kabi, kompozitsiya sanalari va manba ma'lumotlari kabi xususiyatlarni ifodalash uchun mo'ljallangan va bu xususiyatlar uch baravar aniq holatlarda qo'llanilishi kerak. Ta'kidlangan uch barobarga e'tibor bering (predikat predikat ob'ekti) o'zi uchun bunday reifikatsiya kvadrati nazarda tutilmagan (va uning ma'lumotlar bazasida aslida bo'lishi shart emas). Bu, shuningdek, ushbu mexanizmdan qaysi uchliklarning bajarilishini ifodalash uchun foydalanishga imkon beradi emas tutmoq.

RDFdagi reifikatsiya lug'atining kuchi URIreflarni bayonotlarga biriktirish uchun o'rnatilgan vositaning etishmasligi bilan cheklanadi, shuning uchun RDFda ushbu turdagi ma'lumotni "isbotlash" uchun biron bir mexanizmdan foydalanish kerak (RDFdan tashqarida) ) shaxsiy RDF bayonotlariga URIlarni tayinlash, keyin ularni aniqlash uchun ularning URIlaridan foydalanib, ushbu individual bayonotlar to'g'risida qo'shimcha bayonotlar berish.[7]

Mavzu xaritalarida

In XML mavzu xaritasi (XTM), faqat mavzu nomga ega bo'lishi yoki assotsiatsiyada rol o'ynashi mumkin. Biror kishi mavzuga oid fikrni tasdiqlash uchun assotsiatsiyadan foydalanishi mumkin, ammo to'g'ridan-to'g'ri ushbu tasdiq haqida tasdiqlash mumkin emas. Shu bilan birga, xaritada mavzusiz konstruktsiyani takrorlaydigan mavzuni yaratish mumkin, shu bilan assotsiatsiyani o'zi nomlashi va mavzu sifatida ko'rib chiqilishi mumkin.[8]

n-ariy munosabatlar

Semantik veb-tillarda, masalan, RDF va OWL, bu ikki shaxsni yoki shaxsni va qiymatni bog'lash uchun ishlatiladigan ikkilik munosabatdir. Biroq, ayrim hollarda, muayyan tushunchalarni ifodalashning tabiiy va qulay usuli - bu shaxsni faqat bitta shaxs yoki qiymat bilan emas, balki ko'proq bilan bog'lash uchun munosabatlardan foydalanish. Ushbu munosabatlar deyiladi n-munosabatlar. Masalan, qo'mita, qo'mita a'zosi va birinchi bo'lib qo'mita a'zosiga nomzod ko'rsatgan boshqa shaxs yoki xaridor, sotuvchi va ob'ektni tavsiflash paytida sotib olingan ob'ekt kabi bir nechta shaxslar o'rtasidagi munosabatlarni ifodalaydi. kitob sotib olish.

Reifikatsiyaga nisbatan umumiy yondashuv aniq sinf yaratish va $ n $ ni ifodalash uchun $ n $ xususiyatlarini yaratishdir n-ar munosabati, bog'laydigan munosabat misoli yasash n jismoniy shaxslar ushbu sinfning namunasi. Ushbu yondashuv, shuningdek, shaxsiy munosabatlar misoli uchun ma'lumot va boshqa xususiyatlarni namoyish qilish uchun ishlatilishi mumkin.[9]

:p1a:Shaxs;:a'zosi bor_:a'zolik_12345._:a'zolik_12345a:A'zolik;:qo'mita:c1;:nomzod_by:p2.

Vs. tirnoq

Shuni ham ta'kidlash kerakki, bu erda tasvirlangan reifikatsiya boshqa tillarda uchraydigan "tirnoq" bilan bir xil emas. Buning o'rniga, reifikatsiya uchlikning ma'lum bir nusxasi va uchlik nazarda tutadigan resurslar o'rtasidagi munosabatni tavsiflaydi. Reitifikatsiyani intuitiv ravishda "ushbu RDF uchtasi bu narsalar haqida gapiradi" degan so'zlar bilan o'qilishi mumkin, (tirnoqdagi kabi) "bu RDF uchligi bu shaklga ega". Masalan, ushbu bo'limda ishlatilgan reifikatsiya misolida uchlik:

  qo'mita:a'zolik 12345   rdf:Mavzu   shaxs:p1 .

tavsiflovchi rdf: mavzu asl bayonotda bayonot mavzusi URIref tomonidan aniqlangan resurs (shaxs) ekanligini aytadi shaxs: p1. Bunda bayonot mavzusi URIrefning o'zi (ya'ni, ba'zi belgilar bilan boshlanadigan satr), deyish mumkin.

Shuningdek qarang

Adabiyotlar

  1. ^ J. Malenfant, M. Jak va F.-N. Demers, Xulq-atvorni aks ettirish va uni amalga oshirish bo'yicha qo'llanma Arxivlandi 2010-05-28 da Orqaga qaytish mashinasi
  2. ^ Java tilining spetsifikatsiyasi, 4.7-bo'lim, Java SE 7 Edition
  3. ^ "Smalltalk bloklari va yopilishlari". C2.com. 2009-10-15. Olingan 2010-10-09.
  4. ^ Rasmiy usullar Evropa, tez-tez beriladigan savollar, 13-qism Arxivlandi 2005-03-12 da Orqaga qaytish mashinasi.
  5. ^ Antoni Olive, Axborot tizimlarini kontseptual modellashtirish, Springer Verlag, 2007 yil.
  6. ^ Birlashtirilgan modellashtirish tili, UML ustki tuzilishi, Ob'ektlarni boshqarish guruhi, 2007-11-02.
  7. ^ a b v "RDF Primer". W3.org. Olingan 2010-10-09.
  8. ^ Mavzu xaritalariga amaliy kirish Arxivlandi 2009-02-03 da Orqaga qaytish mashinasi.
  9. ^ "W3C Semantic Web-da aloqalarni aniqlash". W3.org. Olingan 2010-10-09.