Transklüzyon - Transclusion

Bu örnekte, B dosyasının verileri A belgesine aktarılır .

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

Referanslar

daha fazla okuma

Dış bağlantılar