Transkluzja - Transclusion
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ż
- Dokument złożony
- Odsyłacz
- Darwin Information Typing Architecture (DITA) i ponowne wykorzystanie treści
- Makro (informatyka)
- Łączenie i osadzanie obiektów (OLE)
- Publikuj i subskrybuj (Mac OS)
- Publikowanie z jednego źródła
- Podprogram
- XUwzględnij
Bibliografia
Dalsza lektura
- Di Iorio, A.; Vitali, F. (sierpień 2003). „Xanalogiczne wspólne środowisko edycji” (PDF) . Materiały z Drugiego Międzynarodowego Warsztatu Analizy Dokumentów Sieciowych 2003 (WDA2003) . Edynburg, Wielka Brytania.
- Kolbitsch, J.; Maurer, H. (czerwiec 2006). "Transkluzje w środowisku opartym na HTML" . Journal of Computing and Information Technology . 14 (2): 161-174. doi : 10.2498/cit.2006.02.07 .
- Kolbitsch, J. (czerwiec 2005). "Drobnoziarniste transkluzje dokumentów multimedialnych w HTML" . Czasopismo Uniwersalnej Informatyki . 11 (6).
- Krottmaier, H. (2002). „Dokumenty transkludowane: zalety ponownego wykorzystania fragmentów dokumentów” (PDF) . Materiały VI Międzynarodowej Konferencji ICCC/IFIP nt. Publikacji Elektronicznych (ELPUB2002) . Czechy: Karlowe Wary. s. 359-367. Zarchiwizowane z oryginału (PDF) w dniu 2005-05-17.
- Krottmaier, H.; D., Helic (2002). „Zagadnienia transkluzji” (PDF) . Materiały ze światowej konferencji na temat e-learningu w przedsiębiorstwach, rządach, opiece zdrowotnej i szkolnictwie wyższym (E-Learn 2002) . Montreal, Kanada. s. 1730-1733. Zarchiwizowane z oryginału (PDF) dnia 2015-06-20 . Źródło 2006-05-25 .
- Krottmaier, H.; Maurer, H. (lipiec 2001). "Transkluzje w XXI wieku" ( PDF , HTML , PostScript ) . Czasopismo Uniwersalnej Informatyki . 7 (12): 1125–1136. CiteSeerX 10.1.1.106.9923 .
- Moore, A.; i in. (2001). „Osobiście dostosowane nauczanie w WHURLE przy użyciu warunkowej translucji”. Materiały XII Konferencji ACM na temat hipertekstu i hipermediów . Aarhus, Dania. s. 163–164.
- Nelson, TH (1993) [1980]. Maszyny literackie . Uważna prasa.
- Nelson, TH (1995). „Serce połączenia: hipermedia ujednolicone przez transkluzję”. Komunikaty ACM . 38 (8): 31–33. doi : 10.1145/208344.208353 . S2CID 16604206 .
- Nelson, TH (1996). „Linki uogólnione, mikropłatności i prawa autorskie” . Centrum Badawcze Almadena .
- Nelson, TH (1998). „Transcopyright: Wstępna zgoda na ponowne publikowanie wirtualne” .
- Nelson, TH (1999). „Struktura xanalogiczna, potrzebna teraz bardziej niż kiedykolwiek: równoległe dokumenty, głębokie linki do treści, głębokie wersjonowanie i głębokie ponowne wykorzystanie” . Ankiety ACM Computing . 31 (4e): 33–es. CiteSeerX 10.1.1.418.7740 . doi : 10.1145/345966.346033 . S2CID 12852736 .
- Pam, A. (1997). „Drobnoziarnista transkluzja w hipertekstowym języku znaczników” (Tekst) . Projekt internetowy .
- Wilde, E.; Lowe, D. (2002). „Rozdział 7: Język linkowania XML” . XPath, XLink, XPointer i XML: praktyczny przewodnik po hiperłączach internetowych i transkluzji . Addison-Wesley Profesjonalista. s. 169-198. Numer ISBN 9780201703443.
Linki zewnętrzne
- Ted Nelson: Transkluzja : naprawianie literatury elektronicznej — w Google Tech Talks, 29 stycznia 2007 r.