Transkluzja - Transclusion

W tym przykładzie dane z pliku B są transkludowane do dokumentu A .

W informatyce , dołączony jest włączenie części lub całości z dokumentu elektronicznego do jednego lub więcej innych dokumentów przez hipertekstu odniesienia . Transkluzja jest zwykle wykonywana podczas wyświetlania dokumentu referencyjnego i zwykle jest automatyczna i niewidoczna dla użytkownika końcowego. Wynikiem transkluzji jest jeden zintegrowany dokument złożony z części montowanych dynamicznie z oddzielnych źródeł, przechowywanych prawdopodobnie na różnych komputerach w różnych miejscach.

Transkluzja ułatwia projektowanie modułowe : zasób jest przechowywany raz i dystrybuowany do ponownego wykorzystania w wielu dokumentach. Aktualizacje lub poprawki zasobu są następnie odzwierciedlane we wszystkich dokumentach referencyjnych. Ted Nelson ukuł ten termin dla swojej nieliniowej książki Maszyny literackie z 1980 roku , ale idea kopii wzorcowej i zdarzeń została zastosowana 17 lat wcześniej, w Sketchpadzie .

Względy techniczne

Neutralność kontekstu

Transkluzja działa lepiej, gdy transkludowane sekcje tekstu są samowystarczalne, dzięki czemu znaczenie i ważność tekstu są niezależne od kontekstu. Na przykład sformułowania takie jak „jak wyjaśniono w poprzedniej sekcji” są problematyczne, ponieważ transkludowana sekcja może pojawić się w innym kontekście, powodując zamieszanie. To, co jest tekstem „neutralnym kontekstowo”, jest różne, ale często zawiera informacje o firmie lub szablonie .

Parametryzacja

W pewnych okolicznościach iw niektórych kontekstach technicznych transkludowane sekcje tekstu mogą nie wymagać ścisłego przestrzegania zasady „neutralności kontekstu”, ponieważ transkludowane sekcje mogą być parametryzowane . Parametryzacja oznacza możliwość modyfikowania pewnych części lub podsekcji transkludowanego tekstu w zależności od zmiennych egzogenicznych, które można zmieniać niezależnie. Zwykle robi się to przez dostarczenie transkludowanego tekstu z jednym lub więcej zastępczymi symbolami zastępczymi . Te symbole zastępcze są następnie zastępowane odpowiednimi wartościami zmiennych przed renderowaniem ostatecznego transkludowanego wyniku w kontekście.

Początki

Koncepcja ponownego wykorzystywania zawartości plików rozpoczęła się od języków programowania komputerowego: COBOL w 1960 r., następnie BCPL , PL/I , C , a w latach 90. nawet FORTRAN . To dyrektywa umożliwia wspólny kod źródłowy do ponownego wykorzystania, unikając pułapek skopiować i wkleić programowania i ciężko kodowania stałych. Jak w przypadku wielu innowacji, pojawił się problem. Wiele dyrektyw include może udostępniać tę samą treść, co inne dyrektywy include, powodując nieumyślne powtórzenie tego samego kodu źródłowego w wyniku końcowym, co skutkuje błędem . Dołącz osłony pomagają rozwiązać ten problem, po jednokrotnym włączeniu treści, a następnie pomiń zduplikowaną treść.

Idea jednego, wielokrotnego użytku źródła informacji prowadzi do koncepcji takich jak: Nie powtarzaj się i zasada abstrakcji . Stwierdzono dalsze zastosowanie, aby programy były bardziej przenośne . Przenośny kod źródłowy używa dyrektywy include w celu określenia standardowej biblioteki , która zawiera kod źródłowy specyficzny dla systemu, który różni się w zależności od środowiska komputerowego.

Historia i realizacja przez Project Xanadu

Ted Nelson, twórca słów „hipertekst” i „ hipermedia ”, ukuł termin „transkluzja” w swojej książce z 1980 r. „Maszyny literackie” . Częścią jego propozycji był pomysł, aby mikropłatności mogły być automatycznie pobierane od czytelnika za cały tekst, bez względu na to, ile fragmentów treści jest pobieranych z różnych miejsc.

Jednak według Nelsona koncepcja transkluzji była już częścią jego opisu hipertekstu z 1965 roku . Nelson definiuje transkluzję jako „… tę samą treść znaną w więcej niż jednym miejscu”, wyróżniając ją z bardziej szczególnych przypadków, takich jak włączenie treści z innej lokalizacji (którą nazywa transdostawą ) lub wyraźny cytat, który pozostaje związane z jego pochodzeniem (którą nazywa transcytacją ).

Niektóre systemy hipertekstowe, w tym własny Projekt Xanadu Teda Nelsona , obsługują transkluzję.

Nelson przedstawił demonstrację transkluzji internetowej, Little Transquoter (zaprogramowany według specyfikacji Nelsona przez Andrew Pama w latach 2004-2005). Tworzy nowy format oparty na adresach części ze stron internetowych; po usunięciu odwołania każda część na wynikowej stronie pozostaje połączona kliknięciem z oryginalnym kontekstem.

Wdrożenie w sieci

HTTP , jako protokół transmisji, ma podstawową obsługę transkluzji przez serwowanie bajtów : określanie zakresu bajtów w komunikacie żądania HTTP.

Transkluzja może nastąpić przed (po stronie serwera) lub po (po stronie klienta) transmisji. Na przykład:

  • Dokument HTML może być wstępnie skomponowany przez serwer przed dostarczeniem do klienta za pomocą dołączania po stronie serwera lub innej aplikacji po stronie serwera.
  • Jednostki XML lub obiekty HTML mogą być analizowane przez klienta, który następnie żąda odpowiednich zasobów niezależnie od głównego dokumentu.
  • Przeglądarka internetowa może buforować elementy przy użyciu własnych algorytmów, które mogą działać bez wyraźnych dyrektyw w znacznikach dokumentu.
  • AngularJS wykorzystuje transkluzję do operacji zagnieżdżonych dyrektyw.

Wydawcy treści internetowych mogą sprzeciwić się transkluzji materiałów z ich własnych witryn internetowych do innych witryn internetowych lub mogą wymagać w tym celu zgody. Krytycy tej praktyki mogą odnosić się do różnych form inline linking jako kradzieży przepustowości lub leechingu .

Inni wydawcy mogą chcieć, aby ich materiały zostały przeniesione na inne witryny internetowe, na przykład w formie reklamy internetowej lub jako widżety, takie jak licznik odwiedzin lub robak internetowy .

Mashup skorzystać z transkluzji zebranie zasobów lub danych do nowej aplikacji, a poprzez umieszczenie geo-oznaczonych zdjęć na mapie interaktywnej, lub poprzez wyświetlanie wskaźników biznesowych w interaktywnej tablicy rozdzielczej .

HTML po stronie klienta

HTML definiuje elementy służące do transkluzji obrazów , skryptów , arkuszy stylów , innych dokumentów i innych typów multimediów po stronie klienta . HTML w dużej mierze opierał się na transkluzji po stronie klienta od najwcześniejszych dni sieci Web (dzięki czemu strony internetowe mogły być wyświetlane szybciej przed zakończeniem ładowania elementów multimedialnych), zamiast osadzić surowe dane dla takich obiektów w tekście strony internetowej.

Dzięki technikom takim jak Ajax , skrypty powiązane z dokumentem HTML mogą instruować przeglądarkę internetową, aby zmodyfikowała dokument na miejscu, w przeciwieństwie do wcześniejszej techniki, która polegała na pobieraniu całkowicie nowej wersji strony z serwera WWW. Takie skrypty mogą transkludować elementy lub dokumenty z serwera po tym, jak przeglądarka internetowa wyrenderuje stronę, na przykład w odpowiedzi na dane wprowadzone przez użytkownika lub zmieniające się warunki.

Przyszłe wersje HTML mogą obsługiwać głębszą transkluzję części dokumentów przy użyciu technologii XML , takich jak encje , odwołania do dokumentów XPointer i manipulacje XSLT . XPointer jest opatentowany, ale jest licencjonowany na warunkach wolnych od opłat licencyjnych .

Serwery proxy mogą stosować transkluzję w celu zmniejszenia nadmiarowych transmisji często żądanych zasobów.

Popularny Front End Framework znany jako AngularJS opracowany i utrzymywany przez Google ma dyrektywę callend ng-transclude, która oznacza punkt wstawiania dla transkludowanego DOM najbliższej dyrektywy nadrzędnej, która używa transkluzji.

Transkluzja po stronie serwera

Transkluzja może być dokonana po stronie serwera, na przykład za pomocą dołączania po stronie serwera i odwołań do encji znaczników rozwiązywanych przez oprogramowanie serwera. Jest to cecha szablonów podmian .

Transkluzja kodu źródłowego

Transkluzja kodu źródłowego do projektu oprogramowania lub materiałów referencyjnych umożliwia prezentację kodu źródłowego w dokumencie, ale nie interpretowanie go jako części dokumentu, z zachowaniem semantycznej spójności wstawionego kodu w stosunku do jego bazy kodu źródłowego.

Zobacz też

Bibliografia

Dalsza lektura

Linki zewnętrzne