Transklüzyon - Transclusion
Gelen bilgisayar bilimleri , ekleme parçası veya tümü dahil olan elektronik belgenin bir veya daha fazla diğer belgeler içine köprü referansı . Ekleme genellikle referans belge görüntülendiğinde gerçekleştirilir ve normalde otomatik ve son kullanıcı için şeffaftır. Aktarmanın sonucu, ayrı kaynaklardan dinamik olarak bir araya getirilmiş, muhtemelen farklı yerlerde farklı bilgisayarlarda saklanan parçalardan oluşan tek bir entegre belgedir.
Transclusion modüler tasarımı kolaylaştırır : bir kaynak bir kez saklanır ve birden çok belgede yeniden kullanılmak üzere dağıtılır. Bir kaynağa yapılan güncellemeler veya düzeltmeler daha sonra herhangi bir referans belgesine yansıtılır. Ted Nelson , 1980'deki doğrusal olmayan kitabı Edebi Makineler için terimi icat etti , ancak ana kopya ve oluşum fikri, 17 yıl önce Sketchpad'de uygulandı .
Teknik hususlar
bağlam tarafsızlığı
Transclusion, metnin dönüştürülen bölümleri bağımsız olduğunda daha iyi çalışır, böylece metnin anlamı ve geçerliliği bağlamdan bağımsız olur. Örneğin, "önceki bölümde açıklandığı gibi" gibi formülasyonlar sorunludur, çünkü aktarılan bölüm farklı bir bağlamda görünerek kafa karışıklığına neden olabilir. Ne "bağlam nötr" metin, değişir teşkil ancak genellikle şirket bilgileri ya da benzeri şeyleri içerir boilerplate .
parametrelendirme
Bazı koşullar altında ve bazı teknik bağlamlarda, metnin aktarılan bölümleri "bağlam tarafsızlığı" ilkesine sıkı sıkıya bağlı kalmayı gerektirmeyebilir, çünkü aktarılan bölümler parametreleştirme yeteneğine sahiptir . Parametreleştirme, bağımsız olarak değiştirilebilen dışsal değişkenlere bağlı olarak, aktarılan bir metnin belirli bölümlerini veya alt bölümlerini değiştirme yeteneğini ifade eder. Bu, alışılmış olarak, bir veya daha fazla ikame yer tutucusu ile çevrilmiş bir metin sağlanarak yapılır . Bu yer tutucular daha sonra, bağlam içinde nihai dönüştürülmüş çıktıyı oluşturmadan önce karşılık gelen değişken değerlerle değiştirilir.
kökenler
Dosya içeriğini yeniden kullanma kavramı bilgisayar programlama dilleriyle başladı: 1960'da COBOL , ardından BCPL , PL/I , C ve 1990'larda, hatta FORTRAN . Bir include yönergesi , kopyala ve yapıştır ile programlamanın ve sabitlerin sabit kodlanmasının tuzaklarından kaçınırken ortak kaynak kodunun yeniden kullanılmasına izin verir . Birçok yenilikte olduğu gibi, bir sorun gelişti. Birden çok içerme yönergesi, başka bir içerme yönergesiyle aynı içeriği sağlayabilir ve yanlışlıkla aynı kaynak kodun nihai sonuçta tekrarlanmasına neden olarak bir hataya neden olabilir . Dahil etme korumaları , içeriğin tek bir eklenmesinden sonra, daha sonra yinelenen içeriği çıkararak bunu çözmeye yardımcı olur.
Tek, yeniden kullanılabilir, bilgi kaynağı fikri, aşağıdaki gibi kavramlara yol açar: Kendinizi tekrar etmeyin ve soyutlama ilkesi . Programları daha taşınabilir hale getirmek için başka bir kullanım bulundu . Taşınabilir kaynak kodu, her bilgisayar ortamına göre değişen sisteme özel kaynak kodunu içeren standart bir kitaplığı belirtmek için bir include yönergesi kullanır .
Project Xanadu tarafından tarihçe ve uygulama
"Hypertext" ve " hypermedia " kelimelerinin kökenini oluşturan Ted Nelson, 1980 yılında yazdığı Literary Machines adlı kitabında da " transclusion " terimini ortaya attı . Önerisinin bir kısmı, çeşitli yerlerden kaç tane içerik parçası alınırsa alınsın, tüm metin için mikro ödemelerin okuyucudan otomatik olarak alınabileceği fikriydi .
Bununla birlikte, Nelson'a göre, dönüştürme kavramı, onun 1965 hipermetin tanımının bir parçasını oluşturmuştu . Nelson, transclusion'ı "...aynı içeriğin bilinebilir bir şekilde birden fazla yerde bulunması" olarak tanımlar ve onu farklı bir konumdan içeriğin dahil edilmesi ( transdelivery olarak adlandırır ) veya geriye kalan açık bir alıntı gibi daha özel durumlardan ayırır. kökenleriyle bağlantılıdır (buna transkotasyon adını verir ).
Ted Nelson'ın kendi Xanadu Projesi de dahil olmak üzere bazı hiper metin sistemleri , dönüştürmeyi destekler.
Nelson, Web transklüzyonunun bir gösterimi olan Little Transquoter (2004-2005'te Andrew Pam tarafından Nelson'ın spesifikasyonuna göre programlanmıştır) sunmuştur. Web sayfalarından bölüm adresleri üzerine kurulu yeni bir biçim oluşturur; başvuru kaldırıldığında, ortaya çıkan sayfadaki her bölüm orijinal bağlamına tıklamayla bağlı kalır.
Web'de Uygulama
HTTP , bir iletim protokolü olarak, bayt sunumu yoluyla transclusion için ilkel desteğe sahiptir : HTTP istek mesajında bir bayt aralığı belirtme .
Transclusion, iletimden önce (sunucu tarafı) veya iletimden sonra (istemci tarafı) gerçekleşebilir. Örneğin:
- Bir HTML belgesi, Sunucu Tarafı İçeriği veya başka bir sunucu tarafı uygulaması kullanılarak istemciye teslim edilmeden önce sunucu tarafından önceden oluşturulabilir.
- XML Varlıkları veya HTML Nesneleri, daha sonra ilgili kaynakları ana belgeden ayrı olarak talep eden istemci tarafından ayrıştırılabilir.
- Bir web tarayıcısı, belgenin işaretlemesinde açık yönergeler olmadan çalışabilen kendi algoritmalarını kullanarak öğeleri önbelleğe alabilir.
- AngularJS , iç içe yönerge işlemi için dönüştürme kullanır.
Web içeriği yayıncıları, materyallerin kendi web sitelerinden başka web sitelerine aktarılmasına itiraz edebilir veya bunun için bir anlaşma talep edebilirler. Uygulamanın eleştirmenleri, bant genişliği hırsızlığı veya leeching olarak çeşitli satır içi bağlantı biçimlerine atıfta bulunabilir .
Diğer yayıncılar özellikle talep edebilir onların malzemeler şeklinde olduğu gibi, diğer web sitelerine çapraz dahil olduğu web reklam , ya da widget bir benzeri isabet sayacı veya web hata .
Mashup'lar , coğrafi etiketli fotoğrafları etkileşimli bir haritaya yerleştirerek veya etkileşimli bir gösterge panosunda iş ölçümlerini görüntüleyerek olduğu gibi, kaynakları veya verileri yeni bir uygulamada birleştirmek için dönüştürmeyi kullanır .
İstemci tarafı HTML
HTML , görüntülerin , komut dosyalarının, stil sayfalarının , diğer belgelerin ve diğer ortam türlerinin istemci tarafında dönüştürülmesi için öğeleri tanımlar . HTML, bu tür nesneler için ham verileri bir web sayfasının işaretlemesine satır içi gömmek yerine, Web'in ilk günlerinden itibaren büyük ölçüde istemci tarafı dönüştürmeye dayanmıştır (böylece web sayfaları, multimedya öğelerinin yüklenmesi tamamlanmadan önce daha hızlı görüntülenebilirdi).
Ajax gibi teknikler aracılığıyla , bir HTML belgesiyle ilişkili komut dosyaları, web sunucusundan sayfanın tamamen yeni bir sürümünü çekmek zorunda olan önceki tekniğin aksine, bir web tarayıcısına belgeyi yerinde değiştirme talimatı verebilir. Bu tür komut dosyaları, örneğin kullanıcı girdisine veya değişen koşullara yanıt olarak, web tarayıcısı sayfayı oluşturduktan sonra öğeleri veya belgeleri bir sunucudan aktarabilir.
HTML'nin gelecekteki sürümleri, varlıklar , XPointer belge referansı ve XSLT manipülasyonları gibi XML teknolojilerini kullanan belge bölümlerinin daha derin transklüzyonunu destekleyebilir . XPointer patentlidir, ancak telifsiz koşullar altında lisanslanmıştır .
Proxy sunucuları , yaygın olarak istenen kaynakların fazlalık iletimlerini azaltmak için transclusion kullanabilir.
Google tarafından geliştirilen ve sürdürülen AngularJS olarak bilinen popüler bir Ön Uç Çerçevesi , dönüştürme kullanan en yakın üst yönergenin dönüştürülen DOM'si için ekleme noktasını işaretleyen bir callend ng-transclude yönergesine sahiptir.
Sunucu tarafı transclusion
Transclusion , sunucu yazılımı tarafından çözümlenen Sunucu Tarafı İçerirleri ve biçimlendirme varlık referansları aracılığıyla olduğu gibi, sunucu tarafında gerçekleştirilebilir . Bu, ikame şablonlarının bir özelliğidir .
Kaynak kodunun dönüştürülmesi
Kaynak kodun yazılım tasarımına veya referans materyallerine dönüştürülmesi, kaynak kodun belge içinde sunulmasına izin verir, ancak belgenin bir parçası olarak yorumlanmaz ve eklenen kodun kaynak kod tabanına göre anlamsal tutarlılığını korur.
Ayrıca bakınız
- bileşik belge
- Çapraz referans
- Darwin Bilgi Yazma Mimarisi (DITA) ve içeriğin yeniden kullanımı
- Makro (bilgisayar bilimi)
- Nesne Bağlama ve Gömme (OLE)
- Yayınla ve Abone Ol (Mac OS)
- Tek kaynaktan yayıncılık
- alt program
- XDahil
Referanslar
daha fazla okuma
- Di Iorio, A.; Vitali, F. (Ağustos 2003). "Bir Xanalogical İşbirlikçi Düzenleme Ortamı" (PDF) . İkinci Uluslararası Web Belgesi Analizi Çalıştayı 2003 Bildirileri (WDA2003) . Edinburg, Birleşik Krallık
- Kolbitsch, J.; Maurer, H. (Haziran 2006). "HTML Tabanlı Bir Ortamda Geçişler" . Bilgisayar ve Bilgi Teknolojileri Dergisi . 14 (2): 161-174. doi : 10.2498/cit.2006.02.07 .
- Kolbitsch, J. (Haziran 2005). "HTML'de Multimedya Belgelerinin İnce Taneli Transklüzyonları" . Evrensel Bilgisayar Bilimi Dergisi . 11 (6).
- Krottmaier, H. (2002). "İçeri Aktarılan Belgeler: Belge Parçalarını Yeniden Kullanmanın Avantajları" (PDF) . 6. Uluslararası ICCC/IFIP Elektronik Yayıncılık Konferansı Tutanakları (ELPUB2002) . Çek Cumhuriyeti: Karlovy Vary. s. 359-367. Orijinalinden (PDF) 2005-05-17 tarihinde arşivlendi .
- Krottmaier, H.; D., Helik (2002). "Dönüştürme Sorunları" (PDF) . Kurumsal, Devlet, Sağlık ve Yüksek Öğrenimde E-Öğrenme Dünya Konferansı Tutanakları (E-Learn 2002) . Montreal, Kanada s. 1730-1733. Arşivlenmiş orijinal (PDF) 2015-06-20 tarihinde . 2006-05-25 alındı .
- Krottmaier, H.; Maurer, H. (Temmuz 2001). "21. Yüzyılda Geçişler" ( PDF , HTML , PostScript ) . Evrensel Bilgisayar Bilimi Dergisi . 7 (12): 1125-1136. CiteSeerX 10.1.1.106.9923 .
- Moore, A.; et al. (2001). "Koşullu translücion kullanarak WHURLE'de kişisel olarak uyarlanmış öğretim". Köprü Metni ve Hiper Ortam Üzerine On İkinci ACM Konferansı Tutanakları . Aarhus, Danimarka. s. 163-164.
- Nelson, TH (1993) [1980]. Edebiyat Makineleri . Dikkatli Basın.
- Nelson, TH (1995). "Bağlantının Kalbi: Transclusion ile Birleştirilmiş Hiper Ortam". ACM'nin İletişimi . 38 (8): 31–33. doi : 10.1145/208344.208353 . S2CID 16604206 .
- Nelson, TH (1996). "Genelleştirilmiş Bağlantılar, Mikroödeme ve Telif Hakkı" . Almaden Araştırma Merkezi .
- Nelson, TH (1998). "Transcopyright: Sanal Yeniden Yayınlama için Ön İzin" .
- Nelson, TH (1999). "Xanalogical Structure, Şimdi Her zamankinden Daha Fazla Gerekli: Paralel Belgeler, İçeriğe Derin Bağlantılar, Derin Sürüm Oluşturma ve Derin Yeniden Kullanım" . ACM Bilgi İşlem Anketleri . 31 (4es): 33–es. CiteSeerX 10.1.1.418.7740 . doi : 10.1145/345966.346033 . S2CID 12852736 .
- Pam, A. (1997). "Köprü Metni Biçimlendirme Dilinde İnce Taneli Transclusion" (Metin) . İnternet Taslağı .
- Wilde, E.; Lowe, D. (2002). "Bölüm 7: XML Bağlantı Dili" . XPath, XLink, XPointer ve XML: Web'de Köprü Oluşturma ve Ekleme İçin Pratik Bir Kılavuz . Addison-Wesley Profesyonel. s. 169–198. ISBN'si 9780201703443.
Dış bağlantılar
- Ted Nelson: Çevirme: Elektronik Literatürü Düzeltme — Google Tech Talks'ta, 29 Ocak 2007.