Weboldal XML-ben
Egy másik fórum témában felmerült, hogy a HTML + meta markup helyett XML-t és XSL-t kellene használni arra, hogy a weboldalainkat kiszolgáljuk. Erre példa Hídvégi Gábor kolléga saját oldala.
Az alapján, ami abból a threadből kiderült, ennek a megközelítésnek a következő előnyei vannak:
1. Minden adatot csak egyszer tárolunk el, nem duplikáljuk.
2. Nem alkalmazunk szerver oldali feldolgozást ahhoz, hogy a megfelelő kimeneti formátumra konvertáljuk az adatokat (HTML, RSS, stb). Ezzel CPU-t spórolunk meg.
3. Egységes, követhető adatformátumot kapunk, nincs szükségünk külön metaadatokra.
4. Mindig nyers adatokat küldünk, a klienstől dönti el, hogy mihez kezd vele.
Problémák, amiket én látok ezzel a megoldással:
1. Egyedi XML formátum oldalanként. Teljességgel kizárt, hogy mindenki hajlandó legyen ugyanazt az XML formátumot használni a hasonló adatai tárolására. Vagyis a közvetlen adat-integráció kizárt.
Ahhoz, hogy ez működjön, az XML formátumnak valamiféle közös jellemzőkkel kellene rendelkeznie, ami viszont azt is jelenti, hogy szükség lenne valamilyen schema.org-hoz hasonló markupra.
Ezzel viszont felmerül a probléma, hogy a piaci szereplők már most sem tudnak megegyezni róla, mert a Facebook az OpenGraph-ot nyomja, a Twitter a Twitter-flavor OpenGraph-ot, a Google pedig a schema.org-ot. Lásd még: XKCD.
Végeredményben tök mindegy, hogy HTML vagy XML, az adatainkat továbbra is markupolni fogjuk a mindenféle szolgáltató által támogatott sémák szerint, vagy az XML-ben közvetlenül, vagy az XSL átalakítás során.
2. Kliens oldali támogatás. Noha a böngészők XSL támogatása ma már egész tűrhető, sok adatfeldolgozó kliens nem rendelkezik ilyen képességekkel, és különböző okokból kifolyólag nem is fog. (pl. RSS feldolgozásnál a szükséges CPU kapacitás, de akár a programozói lustaság is.) Az XSL feldolgozás sok feladatra megsokszorozná a szükséges erőforrásokat, holott sok adatátviteli formátumot pont azért találtak ki, hogy ezeket megkönnyítse. Ez sok piaci szereplőnek (RSS aggregátorok) azt jelenti, hogy a költségek a többszörösére nőnek.
3. Lapozás. Ha sok adat van, akkor kénytelen az ember lapozást vinni a rendszerbe. Ezzel viszont felmerül egy probléma, hiszen sokszor több szempont szerint szeretnénk rendezni a weboldalunk elemeit (pl. blogpost), és ezzel kénytelenek vagyunk valamiféle AJAX vagy más egyéb megoldással behúzni az egyes alkotóelemeket. Amellett, hogy ez SEO szempontból öngyilkosság, további probléma, hogy például egy blognál az eredeti threadben írtak szerint a teljes blogpostot letöltené még egy listanézethez is.
Ugyanez igaz a keresésre is, tekintettel arra, hogy keresni nagy adatmennyiségben csak szerver oldalon tudunk, ami viszont szükségessé teszi a dinamikusan generált XML adathalmazt.
4. Statikus tartalmak. Ha minden tartalmat csak egyszer akarunk a szerveren letárolni és mindent adat alapon átvinni, elvesszük a lehetőségét annak, hogy a képeinkből különböző méreteket tartsunk, vagyis a szerveren a legnagyobb szükséges képet kell letárolnunk. Ez azt is jelenti, hogy ez az adatforgalomban is számottevő növekedést fog jelenteni, hiszen a kliens oldalon méretezünk.
5. Üzleti igények. Repülőtársaságok, szállodák, stb. külön szerződéseket kötnek a különböző aggregátor oldalakkal, sokszor nem kevés pénzért. Lehet nem szeretni ezt az üzleti modellt, de tény, hogy az ebből nyereségre szert tevő piaci szereplők nem fogják szivesen látni, ha könnyebb lesz az adatok kinyerése.
6. Adat overhead. Nem minden nézetben van szükségünk minden adatra. Egy webes listanézetben nincs szükség a teljes adatszerkezetre, egy adatfeedben viszont igen. Ez megint csak szükségessé teszi a szerver oldali feldolgozást.
Összességében én úgy látom, hogy az XML / XSL megoldás több, részben architekturális, problémát hordoz. Noha a 2000-es években az volt a jövőkép, hogy ilyen lesz a web, mára már (szerintem) világossá vált, hogy ez, részben emberi, részben műszaki tényezők miatt, nem lesz így.
Egy biztos: ez a megoldás jópár problémát felvet. Cserébe számomra kérdéses, hogy pontosan mi az a probléma amit megold, hiszen adattranszformációkra szerver oldalon így is szükség van.
Ti mit gondoltok?
■ Az alapján, ami abból a threadből kiderült, ennek a megközelítésnek a következő előnyei vannak:
1. Minden adatot csak egyszer tárolunk el, nem duplikáljuk.
2. Nem alkalmazunk szerver oldali feldolgozást ahhoz, hogy a megfelelő kimeneti formátumra konvertáljuk az adatokat (HTML, RSS, stb). Ezzel CPU-t spórolunk meg.
3. Egységes, követhető adatformátumot kapunk, nincs szükségünk külön metaadatokra.
4. Mindig nyers adatokat küldünk, a klienstől dönti el, hogy mihez kezd vele.
Problémák, amiket én látok ezzel a megoldással:
1. Egyedi XML formátum oldalanként. Teljességgel kizárt, hogy mindenki hajlandó legyen ugyanazt az XML formátumot használni a hasonló adatai tárolására. Vagyis a közvetlen adat-integráció kizárt.
Ahhoz, hogy ez működjön, az XML formátumnak valamiféle közös jellemzőkkel kellene rendelkeznie, ami viszont azt is jelenti, hogy szükség lenne valamilyen schema.org-hoz hasonló markupra.
Ezzel viszont felmerül a probléma, hogy a piaci szereplők már most sem tudnak megegyezni róla, mert a Facebook az OpenGraph-ot nyomja, a Twitter a Twitter-flavor OpenGraph-ot, a Google pedig a schema.org-ot. Lásd még: XKCD.
Végeredményben tök mindegy, hogy HTML vagy XML, az adatainkat továbbra is markupolni fogjuk a mindenféle szolgáltató által támogatott sémák szerint, vagy az XML-ben közvetlenül, vagy az XSL átalakítás során.
2. Kliens oldali támogatás. Noha a böngészők XSL támogatása ma már egész tűrhető, sok adatfeldolgozó kliens nem rendelkezik ilyen képességekkel, és különböző okokból kifolyólag nem is fog. (pl. RSS feldolgozásnál a szükséges CPU kapacitás, de akár a programozói lustaság is.) Az XSL feldolgozás sok feladatra megsokszorozná a szükséges erőforrásokat, holott sok adatátviteli formátumot pont azért találtak ki, hogy ezeket megkönnyítse. Ez sok piaci szereplőnek (RSS aggregátorok) azt jelenti, hogy a költségek a többszörösére nőnek.
3. Lapozás. Ha sok adat van, akkor kénytelen az ember lapozást vinni a rendszerbe. Ezzel viszont felmerül egy probléma, hiszen sokszor több szempont szerint szeretnénk rendezni a weboldalunk elemeit (pl. blogpost), és ezzel kénytelenek vagyunk valamiféle AJAX vagy más egyéb megoldással behúzni az egyes alkotóelemeket. Amellett, hogy ez SEO szempontból öngyilkosság, további probléma, hogy például egy blognál az eredeti threadben írtak szerint a teljes blogpostot letöltené még egy listanézethez is.
Ugyanez igaz a keresésre is, tekintettel arra, hogy keresni nagy adatmennyiségben csak szerver oldalon tudunk, ami viszont szükségessé teszi a dinamikusan generált XML adathalmazt.
4. Statikus tartalmak. Ha minden tartalmat csak egyszer akarunk a szerveren letárolni és mindent adat alapon átvinni, elvesszük a lehetőségét annak, hogy a képeinkből különböző méreteket tartsunk, vagyis a szerveren a legnagyobb szükséges képet kell letárolnunk. Ez azt is jelenti, hogy ez az adatforgalomban is számottevő növekedést fog jelenteni, hiszen a kliens oldalon méretezünk.
5. Üzleti igények. Repülőtársaságok, szállodák, stb. külön szerződéseket kötnek a különböző aggregátor oldalakkal, sokszor nem kevés pénzért. Lehet nem szeretni ezt az üzleti modellt, de tény, hogy az ebből nyereségre szert tevő piaci szereplők nem fogják szivesen látni, ha könnyebb lesz az adatok kinyerése.
6. Adat overhead. Nem minden nézetben van szükségünk minden adatra. Egy webes listanézetben nincs szükség a teljes adatszerkezetre, egy adatfeedben viszont igen. Ez megint csak szükségessé teszi a szerver oldali feldolgozást.
Összességében én úgy látom, hogy az XML / XSL megoldás több, részben architekturális, problémát hordoz. Noha a 2000-es években az volt a jövőkép, hogy ilyen lesz a web, mára már (szerintem) világossá vált, hogy ez, részben emberi, részben műszaki tényezők miatt, nem lesz így.
Egy biztos: ez a megoldás jópár problémát felvet. Cserébe számomra kérdéses, hogy pontosan mi az a probléma amit megold, hiszen adattranszformációkra szerver oldalon így is szükség van.
Ti mit gondoltok?
Szerintem itt az egyik kulcs
- Ha az XML-t, akkor kénytelen Gábor szerver oldalon transzformálni, vagy muszáj lesz REST API-t írnia, ami megszórja linkekkel és metaadatokkal az XML-jét. Ebből a szempontból kevesebb munka lenne a szerver oldali transzformáció, már ha megoldható, hogy tesztelje az oldal a botokat XSL támogatásra.
- Ha a transzformáció kimenetét, szóval az XHTML-t dolgozzák fel ezek a botok, akkor tetszőleges XML-t használhat, és elég a linkeket és a metaadatot elhelyezni az XHTML sablonban (az XSL fájlban).
Szvsz. nem jó az a megkötés, hogy mindent nyers adatként adjunk át a kliensnek, és minden feldolgozást kliens oldalon végezzünk. Adat szűrést, viewmodel készítést, ilyesmiket mindenképp szerver oldalon érdemes végezni, mert ott vannak meg hozzá a megfelelő eszközök. Nyilván nem küldünk át teljes adatbázist a kliensnek, ahogy max felbontásos képeket sem, de ezt szerintem Gábor sem így gondolta. Gondolom ő azt látja ennél a megoldásnál előnynek, hogy az XSL kód izomorf, tehát ugyanúgy működik a kliensen és a szerveren is. Ez most nagy divat js-nél is.
Ha az üzleti igények indokolják, akkor át lehet állni csak szerver oldali transzformálásra, viszont ezzel elveszik az XSL fent említett előnye, szóval simán kiváltható lesz bármilyen másik könnyebben kezelhető sablonnyelvvel, esetleg szerver oldali nyelvvel.
Azt hiszem nagyjából mindent megválaszoltam. Szerintem két esetben lehet életképes ez a fajta megoldás. Ha sikerül valahogy átverekedni a botokon, hogy adjanak infot arról, hogy támogatják e az XSL-t vagy sem, és eszerint kiszolgálni őket. Vagy ha a botok értik az XSL transzformációt, és a kimenetét dolgozzák fel a bemenete helyett. Nem jártam nagyon utána, de pár google keresés után nekem úgy tűnt, hogy nem nagyon értik (vagy értették?) a botok az XSL-t.
Botok
*/*
-t kuld tudtommal, noha tamogat XSLT-t.Ami szamomra nem vilagos, hogy ez a fajta megkozelites mit old meg? Mert a szerver oldali adattranszformaciot nem uszod meg, a DB-bol ki kell olvasni es be kell tenni XML-be. Ha ezek utan szeretnel meg egy tovabbi transzformaciot XSLT-vel, senki nem akadalyoz meg. De mi elonye van ezt kliens oldalon csinalni, ahol a kiscsillio bongeszo hulyesegeivel kell foglalkozni?
Foleg ha nemzetkozi szinten nezzuk, azert rengeteg outdated Android rohangal a vilagban. CSS-re van matrix, hogy mi mit tamogat, de XSLT-re ugyanilyet nem talaltam.
Mindenkinek szükséglete szerint
A weboldalak HTML kódjának 99%-a mellébeszélés, értéktelen szemét, ráadásul nehézkes kinyerni belőle a valós információt. Ha adatokkal kezdünk el dolgozni, akkor az olyan paradigmaváltást hozna, mint amikor a számítástechnikában adatbáziskezelőkkel kezdtek el dolgozni: az adatok szűrhetőek, hatékonyan kereshetőek, összehasonlíthatóak lettek.
Ha adatokkal kezdünk el
Szóval szerinted az az előnye ennek a megoldásnak, hogyha a kliens úgy gondolja, akkor feldolgozhatja közvetlenül az XML-t transzformáció nélkül?
Igen
Az XSL ebben az esetben a böngészők számára egy mankó.
Tisztázás
Első blokk
1. Ezt nem teljesen értem2. Alkalmazunk szerveroldali transzformációt, amennyiben az szükséges. Egy általános keresőt HTML-lel kell ellátni, ezért neki HTML-t kell kiszolgálni, egy feed reader-nek pedig RSS-t.
3. Alapvetően a nyers adatokkal dolgozunk, amikben ott van minden meta információ.
4. A kliensnek olyan adatokat küldünk, amit kér, lásd 2-es pont.
Problémák
1. Egyre nagyobb az igény az egységes adatformátumra, lásd schema.org, de jobb példa erre az Árukereső.hu és minden hasonló oldal.2. Ahol a kliens nem rendelkezik XML stíluslapok feldolgozásának képességével (XSL), ott szerveroldalon transzformálunk (pl. keresők), vagy nyers XML-t küldünk (mobil alkalmazás saját GUI-val).
3. Bővebb kifejtés nélkül: minden gond nélkül implementálható a lapozás. Épp dolgozom egy infinite scroll megoldáson XSL-re alapozva.
4. A böngészőkben lévő XSL motoroknak lehet paramétereket átadni, azaz a kliensen olyan HTML-t generálhatunk, amiben a megfelelő méretű képek vannak. Tehát például ha valaki mobilt használ, és elforgatja állóra, akkor akár új HTML-t készíthetünk egy ezredmásodperc alatt, amiben más statikus elemeket jelenítünk meg.
5. Az adatok kinyerését csak megnehezíteni lehet, de megakadályozni nem, innentől kezdve lehet harcolni ellene, nem fog sikerülni. Jómagam hobbiszinten jóideje adatok weboldalakból és szolgáltatásokból való kinyerésével foglalkozom, hogy megkönnyítsem a magam életét, még nem volt olyan oldal, ahonnan ne tudtam volna kibányászni azt, amire szükségem volt, értve ide a facebookot például vagy akár bankokat.
6. Ez üzleti logika kérdése.
Egységes
Irreális azt gondolni, hogy a világon mindenki hajlandó ugyanazt az adatformátumot használni még csak termékekre is. Még egy olyan szűk területen, mint pl. az RSS, is van vagy 2-3 versengő formátum.
Vagyis a végén jön az XML a Te általad leírt formátumban, és jól transzformálnod kell minden kliensre. Vagyis nincs olyan valós probléma amit megold.
Majd valahogy megoldjuk
Ha lesz két-három nyers adatformátum, még mindig jobb, mint ha nincs semmi, és még mindig jobb a jelenlegi helyzetnél. De ettől függetlenül törekedni kell arra, hogy egy legyen.
Igény van, erre jó példa az árukereső. Lehet, hogy az ő formátumukat kell használni áruk esetén, de lehet, hogy más jobbat tud kitalálni, ezt majd eldönti az élet.
Nem
A melo oroszlanresze az, hogy meg kell irni a specifikaciokat es ezt a piaci szereplokkel el kell fogadtatni. En nem latok jelenleg senkit, aki ebben gondolkozna es ezen munkalkodna. Ha Te igen, akkor en szivesen elolvasnam a keszulo specifikaciot.
Így van
Tehát már akkor is előrébb viszi a világot, ha a fejlesztők mögéállnak, mert kevesebbet kell dolgozniuk és egyszerűbb lesz a karbantartás.
Ha ez a célod, akkor én a
Alapvetően a nyers adatokkal
Csak egy példa:
+1
Adatok
Jelen esetben a tartalom típusa "cimlap", azon belül van egy "promokep", és annak a tulajdonságai.
Az adatfolyamok a "termekek"-en belül lévő xml fájlok, ezeket használja fel például a menü kirajzolásához.
Értelmezni
Attól, hogy XML, nem lesz mágikus módon egyszer csak gépi úton értelmezhető. Ahhoz kell valaki, aki egy fordítót ír (XSLT) az adott célplatform számára.
XML
HTML
Lásd lentebb, ez önmagában még nem tesz a jövő technológiájává. Ahhoz valakinek bele kell tennie az energiát, hogy elfogadott szabványok legyenek az adatleírásra, ami jelenleg hiányzik.
XML
XPATH
Képzeld el a következő JSON-t:
{
kategoria: 'microsd',
termekek: [
{azonosito: 'samsung_32gb'},
{azonosito: 'samsung_64gb'}
]
},
{
kategoria: 'pendrive',
termekek: [
{azonosito: 'samsung_32gb'},
{azonosito: 'samsung_64gb'}
]
}
];
Egy nagyjából ekvivalens XML-ben megkeresni a 'samsung_32gb' azonosítójú csomópontokat, amelyek kategóriája 'pendrive' XPATH segítségével:
JS-ben minden ilyen kereséshez saját függvényt kéne írni, és ez egy piszok egyszerű XPATH.
Egy nagyjából ekvivalens
Mikor van ilyen keresésre szükség?
Mindig
Ha én erre kényszerülök,
Egyszerűbb
<tartalom tipus="cimlap">
, ez egy választó, ahol a típustól függően más-más sablonból generálom a HTML-t.Ez teljesen rendben van. És
Egyszerű
A jelenlegi demó oldalamon statikus fájlok vannak, mert oda bőven jók, és a kód is úgy dolgozik, hogy azokból nyeri az adatokat.
Ja értem, akkor ezek szerint
Feladatfüggő
Persze, én is így látom.
Bizony
cikk?
Szerintem ez is, és Jánosé is sokakat érdekel(ne).
Ádám, pls turbo üzemmód és / vagy több szerkesztő!!
Lesz
Hogy a benne lévő információt
Nyilván a nehéz problémák megoldását jobb áthárítani másokra. :-)
Persze látom, hasonló XML-ek
A gond az vele, hogy a te XSL klienseden kívül semmi más nem tudja gépileg feldolgozni. Erre szoktak tipikusan saját MIME típust pl: link, link használni, amit csak egy webszolgáltatás használ, és az arra specifikus kliensek tudják kezelni. Ezen felül esetleg ráveheted a google-t, facebook-ot, twitter-t, hogy támogassák a te MIME típusodat, de erre kicsi az esélyed.
A te megoldásodban nincsen semmi általános, és a szemantikus web pont arról szólna, hogy valamilyen általános megoldást alkalmazzunk, amit egységesen tudnak a kliensek, nem kell tanítgatni őket rá. Erre általában RDF-et szoktak használni, és valamilyen szabvány RDF vocab-ot. A gond most éppen az, ahogy janoszen is felvázolta, hogy szaporodnak a szabvány RDF vocab-ok, és széthúznak a nagy cégek ilyen téren. Így most már kénytelenek vagyunk többféle vocab-ot támogatni egyszerre, ha azt szeretnénk, hogy mindegyik cég tudja értelmezni, amit kiszolgálunk.
Szerintem az a fő probléma itt, hogy minden vocab a valóság egy kis szeletkéjét írja le egy bizonyos nézőpontból. Még ha azonos fogalmakat is írnak le, akkor is az eltérő nézőpontok miatt nem lesznek teljesen egyformák. Én dolgozok valamin, ami megoldhatja ezt a problémát, de az még sok idő, meg sok munka, már ha egyáltalán megcsinálom...
Probléma
Probléma
Nagyjából három-négymilliárd
Ha minden website adat alapú lenne, akkor a weben lévő információk összehasonlíthatóak lennének. Kedvenc keresődbe beírhatnád, hogy "50 km-en belül legolcsóbb Samsung Galaxy A3 mobiltelefon kiszállítással", és tizedmásodpercen belül kidobná azt az egy találatot. Most neked mennek el óráid, mire összehalászod ezt az információt.
Nem
Attól, hogy XML valami, nem lesz automatikusan gépi úton értelmezhető. Ahhoz kell az, hogy valaki megmondja a benne levő mezőkről, hogy mi a céljuk, milyen adatot tartalmaznak. Na ez a metaadat.
Kicsit olyan érzésem van, hogy találtál egy technológiát, ami a maga nemében tök életképes, és most keresel egy célt, hogy mivel tudnád megindokolni, hogy ez a jövő. De nem ez. Az XML csak egy eszköz, adatok strukturált leírására, semmi több. Nem nyilatkozik az adatok szerepéről, céljáról. Ahhoz kell egy specifikáció, egy XSL, és kell az, hogy a világ, vagy legalább az üzleti partnereid hajlandóak legyenek használni.
Akkor fel kell használni a
Pontosan
Majd ha ez megvan, ezt el is kell fogadtatni legalább egy fő piaci szereplővel, mert ahhoz, hogy ez legyen a jövő, azt használnia is kell valakinek.
Ha ez mind megvan, akkor elérted, hogy azt mondhasd, hogy ez a jövő. Addig ez csak egy, a maga nemében érdekes és izgalmas, viewmodel megoldás, semmi több.
Így van
Hát ez a fajta megoldás talán
Mondj egy olyan szakmát az
A legjobb projekteket is
Ez jó, ezt be lehet tenni az idézendő aranyköpések közé. Mondjuk az ilyen alap igazságoknak is lehetne egy menüpontot csinálni. :-)
Automatikus
Hogy sikerül-e vagy sem, az
Azt ne felejtsd el, hogy mivel ez az egész a HTML "alatt" van, és jelenleg nincs versenytársa, jóval könnyebb a dolog, mint ha valaki egy n-edik schema.org-hoz hasonló szintaktikát fejlesztene.
+1, én mondjuk nem tanultam
Amit én szeretnék, hogy szép lassan átcsússzunk a JSON-LD korszakába, bár ennek jóval magasabb a belépési küszöbe, mint a JSON-nak, de szemantikusan egyszerűbben le lehet vele írni az adatot, mint XML-el, illetve gráfot is lehet vele küldeni, nem csak hierarchiát.
Működési elv
Első kérésnél a transzformációt a szerveroldalon végezzük el, például HTML-t vagy RSS-t állítunk belőle elő XML stíluslap segítségével, majd kiküldjük a kliensen.
Amennyiben lehetséges, a kliensen (böngészőben) javascripttel ellenőrizzük, hogy mire képes, és a kapott információt elhelyezzük egy süteményben. A következő kéréskor már szerveroldalról – amennyiben az alkalmazáslogika megengedi, tehát ez opcionális – már XML-t küldhetünk a kliensnek, ami előállítja a HTML-t.
értem én ezt az egészet, meg
és legfőképp
http://hidvegi.net/aruhaz.xsl
én úgy hiszem, hogy programozzon xsl-t az akinek két anyja van. én biztos, hogy bottal sem nyúlnék hozzá (: komolyan nem embernek való.
ez a közös leíró cucc létrehozása is elég kemény dió, lehet hogy NP-teljes :D
Nagyjából ez a véleményem
A közös leíró cucc fejlesztését Gábor másokra hárította. Nyilván nem véletlenül. Az a probléma valószínűleg meghaladja az itt jelenlévők kapacitását.
Nem hárítottam én senkire
Végül is mindegy, a lényeg
Kik csinálják meg mindezt?
iparági szereplők, kormányzat, közösség? vagy ezek összefogva?
hogyan lehet kezelni a különböző nézőpontokat, vagy akár csak ugyanannak az adathalmaznak a más más részhalmazait?
hogyan lehet az egészet kezelhető módon fenntartani?
van-e tényleges igény rá?
valószínűleg egy részterületen kellene sikereket elérni, és ha ott működik jól, akkor már nagyobb hajlandósággal ugranak rá mások.
tudom ajánlani a biztosítási szektort (: sok szereplő dolgozik nagyjából ugyanazokkal az adatokkal. ha ott átviszed, van remény.
Erre azért vannak létező
A gond leginkább az, hogy nehéz megfelelő probléma-specifikus RDF vocab-ot találni, és a schema.org vagy az opengraph nem fed le csak néhány szakterületet, pl közösségi oldalak, webshopok, eseményszervezés, stb. Szóval ha mondjuk fizikával kapcsolatban akarsz publikálni valamit, és szemantikusan kereshetőre szeretnéd megcsinálni, akkor nem lesz olyan vocab-od, amiben benne lesznek a fizikával kapcsolatos szakszavak (na jó, van valami kezdetleges ehhez is). Ehhez az egészhez össze kellene szedni az egész emberiség tudását minden fogalommal, szakszóval, csinálni belőle egy vagy több vocab-ot, és azokra hivatkozni, amikor szemantikusan keresünk, vagy amikor metaadatot kötünk adathoz. Nagyjából ez az, amire nincsen kapacitás, és aminek kevesebb, mint 0.1%-át adja a schema.org és hasonló megoldások. A wikipedia-nak, illetve az olyan keresőknek, mint a google, bing, stb. van szerintem a legnagyobb esélyük rá, hogy használható megoldást nyújtsanak, de nem úgy tűnik, hogy komolyabban foglalkoznának a kérdéssel, mármint, hogy csinálnának egy hatalmas tudásgráfot, és ahhoz kötnék az adatot. Helyette relatív kis méretű RDF vocab-okat szórnak össze. Szerintem ez hibás megközelítés, mert az egyes szakterületek egymással összefüggenek, és ugyanazokat a fogalmakat használhatják. De persze lehet, hogy rosszul látom. :-)
Akkor ez micsoda? Az XML
Pont, hogy ez lenne a szemantikus web lényege, hogy gépileg értelmezhető legyen a benne lévő információ. A te megoldásod semmivel sem jobb, mint egy hagyományos webalkalmazás, amiben json-ban mennek xml helyett ugyanígy az adatok. Mindegyikre külön parsert kell írni, ami megmondja a feldolgozó kliensnek, hogy melyik property mit jelent a json-ban vagy az xml-ben.
Nem tudom feltűnt e, hogy a szakma ezzel küzd már évek, évtizedek óta? Közel sincs meg a tudásod ahhoz, hogy bármi szabványosat alkoss ebben a témában. Nem vonom kétségbe, hogy valami egyedi megoldást össze tudsz szórni, mert már megtetted, de körülbelül itt ki is fújt. Ahhoz minimum egy domain expert kell egy-egy szakterületnél, hogy valami általános modelt le tudj tenni az asztalra, amit vagy elfogad az aktuális szakterület, vagy azt mondja, hogy ezt nem így kell modellezni, és csinál másikat. Egyáltalán nem vagyok biztos benne, hogy átmegy, amiről beszélek, mert általában nem szokott...
A te megoldásod semmivel sem
Az én megoldásom annyiban
Mennyiben más, ha js-ben programozom, mintha XSL-ben? Nem igazán érzem azt, hogy kevesebbet kellene dolgoznom.
Én csak a realitásokból indulok ki. Azért pár éve tanulmányozom a témát ellenben veled, akinek a mai napig fogalma sem volt róla, hogy ez az egész egyáltalán probléma. Csináld nyugodtan, én nem szólok bele, de hogy a világot nem ezzel fogod megváltani, abban biztos vagyok. :-)
XSL
Mivel minden sablonozás arról szól, hogy egyik adatformátumot egy másikba transzformálod (pl. JSON -> HTML), ez a deklaratív/funkcionális stílus a leghatékonyabb.
Példa a fenti XSL-ből:
->
SELECT template WHERE name="weboldal";
<xsl:template match="tartalom[@tipus = 'kapcsolat']">
SELECT template WHERE name="tartalom" AND @tipus="kapcsolat";
Változó:
<xsl:variable name="termek" select="$minden_termek[@kategoria = $kategoria]/*[@azonosito = $azonosito]" />
$termek = SELECT * FROM $minden_termek WHERE @kategoria = $kategoria AND @azonosito = $azonosito;
konklúzió
Az összes többi, egy érdekes társalgás a témáról és nem több.
Miért?
ez nem képesség kérdése
Én megértem az érveidet, egy részüket talán még el is fogadom, ugyanakkor szerintem ez messze kevés lesz az XML / XSL elterjedéséhez. Legyünk őszinték, bőven lett volna ideje bizonyítani az életképességét, de ehelyett a világ egyszerűen túlhaladt rajta.
Mindezzel együtt, becsülöm az erőfeszítésed, hogy hiszel valamiben és próbálod sikerre vinni.
Kifejtenéd?
A sablonban nagyjából tizenöt nyelvi elemet használok: sablon definiálása, elágazás feltétel szerint, ciklus (iteráció), DOM elem létrehozása, attribútum módosítása, rendezés, változók létrehozása.
Vannak feladatok, amire a funkcionális/deklaratív stílus jobb, mint a procedurális, a sablonkezelés (és pl. az SQL) tipikusan ilyen.
Egy jó kódszínező csodákra képes, továbbá a JS-hez is készült a CoffeeScript, annak mintájára lehet készíteni az XML transzformációkhoz is valami nyelvet, ami tömörebb.
Innentől elég szubjetív...
Erre mondhatod, hogy a manapság használt template rendszerek (pl. Twig, Blade) is rendelkeznek több-kevesebb logikával, és azért rosszabbak, mert... A sima JSON visszaadása és kliensoldali feldolgozása meg azért rosszabb, mert...
Engem semmiképpen sem érdemes győzködnöd. A cikkedet kíváncsian várom a témában (már csak azért is, mert becsülöm az erőfeszítésed), de ennyi. Annak, hogy a gyakorlatban az XML / XSL kombinációt használjam, nagyjából nulla az esélye, és hidd el, ez nem holmi kódszínező kérdése.