Áthivatkozás

informatikai fogalom

A számítástudományban az áthivatkozás (transzklúzió) egy elektronikus dokumentum részének vagy egészének hypertext hivatkozással való beillesztése egy vagy több másik dokumentumba. Az áthivatkozás általában automatikusan és a felhasználó számára észrevehetetlenül hajtódik végre akkor, amikor az adott dokumentum megjelenítése történik.[1] Az áthivatkozások eredményeként egy olyan dinamikusan integrált dokumentum jön létre, amelynek építőkövei különböző forrásokban, különböző helyeken és számítógépeken találhatóak meg.

Ebben a példában, B állomány adatait áthivatkozzuk (transzkludáljuk) az A dokumentumba.

Az áthivatkozás elősegíti a dokumentumok moduláris kialakítását: egy egyszer tárolt forrás megosztható több dokumentum számára újrafelhasználás céljából. A forrás frissítései és helyesbítései automatikusan tükröződnek minden az arra hivatkozó dokumentumban. A transzklúzió (áthivatkozás) kifejezést Ted Nelson használta először az Irodalmi Gépek c. 1980-ban megjelent nem-lineáris könyvében, de a mesterpéldány és másolati referenciák ötletét már 17 évvel korábban alkalmazták a Sketchpad szoftverben.

Műszaki megfontolások szerkesztés

Szövegkörnyezet-semlegesség szerkesztés

Az áthivatkozás jobban alkalmazható, ha a szöveg áthivatkozott szakaszai önállóan megállják a helyüket, azaz a szöveg jelentése, illetve érvényessége független a szöveg környezetétől. Például, nem jók az olyan fogalmazások, mint "amint azt az előző részben láttuk" , mert az áthivatkozott részben más összefüggésben jelenhet meg a szöveg és ez zavart okoz. Változatos "szövegkörnyezetsemleges" szövegek képzelhetőek el, valójában gyakran olyasmiket tartalmaznak, mint a vállalati információk, vagy fülszövegek.

Paraméterezés szerkesztés

Bizonyos körülmények között és bizonyos technikai környezetekben előfordulhat, hogy az áthivatkozott a szövegben nem szükséges szigorúan tartani a "szövegkörnyezeti semlegesség" elvét, mert lehetséges az áthivatkozásokat paraméterezni is. A paraméterezés azt a képességet jelenti, hogy az áthivatkozott szöveg egyes részeit vagy bekezdéseit ún. exogén (függetlenül módosítható) változók segítségével módosítják. Ezt általában úgy végzik, hogy az áthivatkozott szöveget egy vagy több helykitöltővel helyettesítik. Ezeket aztán az áthivatkozás végrehajtása során megfelelő változók értékeivel helyettesítik, és így helyezik el a szövegdarabot az áthivatkozó szöveg környezetében.

Története – implementáció a Xanadu projektben szerkesztés

Ted Nelson, akitől a "hypertext" és a "hypermedia" szó is származik, alkotta meg az áthivatkozás (eredetileg: transclusion) kifejezést is az 1980-ban megjelent Irodalmi Gépek c könyvében. Javaslatában szerepelt a mikrofizetés (micropayment) ötlete is, azaz az olvasótól egyben kérhetik a szöveg árát mikrofizetés formájában, függetlenül attól, hogy hány különböző helyről vett töredékből lett összeillesztve.

Nelson szerint az áthivatkozás koncepciója, már része volt az 1965-ben megfogalmazott hypertext leírásának is[2] Nelson az áthivatkozást a következőképpen határozza meg: "... ugyanaz a tartalom több mint egy helyről is megismerhető". Nelson ezt elkülönítette a többi olyan speciális esettől, mint az áthozás (transdelivery), amikor a tartalmat egy másik helyről átemeljük, illetve az átidézés (transquitation), amelyen olyan idézetet ért, amely kapcsolatban marad az eredeti szöveggel.

Bizonyos hypertext rendszerek, beleértve Ted Nelson saját Xanadu Projektjét is támogatják az átidézés technikáját. [3]

Nelson a Little Transquoter programmal mutatta be a webes átidézést (ezt Nelson specifikációja alapján Andrew Pam programozta 2004-2005-ben) [4] Ez olyan új formátumot hoz létre, amely weboldalak részeinek címeiből épül fel, s a kibontása során létrejövő oldalon minden rész az eredeti szövegkörnyezetre irányuló módon "kattintható" marad.

Internetes megvalósítás szerkesztés

A HTTP, mint átviteli protokoll, kezdetleges támogatja az áthivatkozást a byte-szolgáltatás révén. Ez azt jelenti, hogy a HTTP kérés üzenetben megadható egy byte tartomány.

Az áthivatkozás az üzenet átvitel előtt (a szerver oldalon), vagy utána (a kliens oldal) is megtörténhet. Például:

  • A HTML-dokumentumot a szerver a kliens oldalra való átvitel előtt létrehozhatja a Server-Side Includes vagy más szerver oldal alkalmazás segítségével.
  • Az XML entitásokat vagy HTML objektumokat a kliens is beolvashatja, ez esetben a kliens kéri el a fődokumentum részeit egyenkénti hívásokkal.
  • A web-böngésző az egyes elemeket saját algoritmusa szerint gyorstárolhatja (cache-elheti), anélkül, hogy a dokumnetum jelölőnyelve erre késztetné.
  • Az AngularJS egymásba ágyazott utasításokon is képes áthivatkozásra.[5]

A web tartalmak kiadói kifogást emelhetnek a saját weboldalaik anyagainak más oldalakra való áthivatkozása ellen, illetve valamilyen megállapodást feltételül szabhatnak. A gyakorlat kritikusai arra hivatkozhatnak, hogy sorközi hivatkozások (inline linking) különböző formái mint sávszélesség-élősködést követnek el.

Más kiadók ugyanakkor egyenesen kérik anyagaik áthivatkozását más weboldalakra, hiszen ez az internetes reklám egy módja, akár vagy widgetként, akár látogatásszámlálóként , vagy web beacon formájában.

Az adatötvözetek (mashup) arra használják az áthivatkozást, hogy különböző forrásokból és adatokból egy új alkalmazást hozzanak létre. Példa erre, amikor geo-jelölt fényképeket helyznek el egy interaktív térképen, vagy amikor üzleti mutatókat jelenítenek meg interaktív táblán.

Kliens oldali HTML szerkesztés

A HTML definiál olyan elemeket, amelyek a képek, szkriptek, stíluslapok, egyéb dokumentumok, illetve más típusú média áthivatkozását segítik elő. A HTML az internet kezdetétől fogva erősen támaszkodik a kliens oldali áthivatkozásra, az ilyen adatok nyers a jelölőnyelvbe való sorközi beágyazása helyett. Ez elősegíti, hogy weboldalak még a multimédiás elemek betöltése előtt megjelenítődhessenek.

Más technikákban, mint pl. az Ajaxban, a HTML-dokumentummal társított szkript arra utasíthatja a webböngészőt, hogy dokumentumot helyben módosítsa, szemben azzal korábbi eljárással, hogy minden alkalommal az adott weboldal teljesen új verzióját kérje le a webszerverről. Az ilyen parancsfájlok – miután a böngésző beolvasta az oldalt –, felhasználói interakcióra, vagy a környezet változására adott válaszul áthivatkozhatnak a szerveren található dokumentumokra, vagy más elemekre.

A HTML jövőbeli verziói különböző technikákkal támogathatják a dokumentumok részeinek mélyebb áthivatkozását.Ilyenek lehet az XML entitás technológiája, a XPointer dokumentum hivatkozásai, és az XSLT transzformációk. Az XPointer szabadalmaztatott termék, de használata ingyenes.[6]

Proxyszerverek is alkalmazhatják az áthivatkozás technikáját, hogy így csökkentsék a gyakran kért források felesleges lehívásainak számát.

A Google által kialakított és karbantartott népszerű front-end rendszer, az AngularJS, rendelkezik az ng-transclude direktívával, amely legközelebbi szülő.parancs számára kijelöli beillesztés helyét.

Szerver oldali áthivatkozás szerkesztés

Az áthivatkozás megvalósítható szerver oldalon is a Server Side Includes, vagy SGML-entitások segítségével a szerver szoftver feladataként. Ezt a funkció a helyettesítő sablonok funkciója.

Forráskód áthivatkozása szerkesztés

A szoftvertervezési és referencia kézikönyvekben is át lehet hivatkozni a forráskódra. Ez lehetővé teszi, hogy a forráskódot megjelenítsük a dokumentum részeként, anélkül, hogy végrehajtanánk azt. Megőrizve ezzel a beillesztett kód a forráskód adatbázissal való szemantikai konzisztenciáját.

Lásd még szerkesztés

Hivatkozások szerkesztés

  1. The Discipline of Organizing. Cambridge, Massachusetts: MIT Press, 231. o. (2013. április 25.). ISBN 9780262518505 
  2. Theodor H. Nelson, "A File Structure for the Complex, the Changing and the Indeterminate."
  3. Kolbitsch, Josef: Transclusions in an HTML-Based Environment, 2017. január 27. [2017. július 1-i dátummal az eredetiből archiválva]. (Hozzáférés: 2018. október 22.)
  4. The Little Transquoter Xanadu.com.au
  5. AngularJS. docs.angularjs.org . (Hozzáférés: 2016. augusztus 11.)
  6. "XPointer Patent Statements"

További olvasmányok szerkesztés

Külső linkek szerkesztés