Come modernizzare il markup del Web Semantico
Questo documento è la traduzione del documento Modernising Semantic Web Markup di David Beckett. Il documento originale è su http://www.idealliance.org/papers/dx_xmle04/papers/03-08-03/03-08-03.html.
Ringrazio David Beckett per aver concesso l'autorizzazione alla traduzione.
Traduzione di Pasquale Popolizio.
Abstract
Il formato di metadati del Resource Description Framework (RDF) possiede una sintassi XML in RDF/XML che è stata descritta come brutta ed imperfetta, principalmente come conseguenza del fatto di essere uno dei primi formati in XML, datato 1998. Questa presentazione descrive i problemi percepiti e reali ed individua le migliori pratiche del moderno XML e Web per migliorare il markup RDF che può essere meglio usato con le ultime tecnologie XML come XSLT2 e XQuery.
La presentazione distingue un formato di markup del Web semantico piuttosto che un formato valido solo per software come quello più facile da utilizzare per gli utenti finali e chiaramente più appropriato per tipiche aree di applicazione di matadati e ontologie Web non complesse.
Le migliori pratiche XML in tutte le aree rappresenta un soggetto problematico da affrontare e su cui raggiungere un accordo, ma le tecnologie XML considerate includono nel contenuto XML namespaces e XML QNames, tralasciando alcuni angoli oscuri della specifica XML con l'uso di tecnologie user-friendly come il linguaggio basato sull schema XML del RELAXING, parte del lavoro ISO DSDL. La presentazione discute i vari approcci che, partendo dall'XHTML, generano dati Web semantici.
Indice
- 1 Introduzione
- 2 I problemi con RDF/XML
- 3 Alternative recenti XML a RDF
- 4 Selezionare XML per un markup RDF migliorato
- 5 RXR (Regular XML RDF)
- 6 RDf e HTML/XHTML
- 7 Conclusioni
- 8 Appendice A - XML Schema
- Bibliografia
- Biografia di David Beckett
1. Introduzione
[RDF/XML Revised] è la W3C Recommendation che ho sviluppato per il W3C [RDF Core WG] dal 2001 al 2004. Essa ridefinisce la sintassi RDF/XML scritta nel 1998 dal gruppo di lavoro RDF originale nei termini di XML Infoset (con XML Base). La sintassi originaria RDF/XML fu creata con vari obiettivi che a volte sono venuti a mancare. Ciò ha creato una sintassi che viene spesso criticizzata in quanto non conforme alle migliori pratiche moderne dell'XML. Questo documento prende in considerazione alcuni dei problemi che sono nati con la sintassi, ipotizza nuove sintassi XML per RDF e descrive una nuova sintassi XML per grafici RDF, l'RXR.
Gli obiettivi di questo lavoro sono quelli di disegnare una semplice sintassi XML che ricomprenda l'RDF in un modo semplice da permettere una veloce camprensione. Gli utilizzatori di tale formato sono i nuovi autori, o quelli che hanno letto la documentazione sull'RDF e vogiono scrivere le triple in modo semplice, per un possibile e successivo passaggio ad un livello XML.
Le cose che sono fuori dallo scopo di questo lavoro ricomprendono l'estensione del modello RDF (contesto, quotazione, soggetti letterali, grafici annidati, grafici nominati) e complesse strutture di triple nel modello RDF (reificazione, collezioni). Allo scopo di realizzare un semplice formato XML, questo genera restrizioni che saranno discusse nei prossimi paragrafi.
2. I problemi con RDF/XML
L'RDF Core working group tenne conto dei commenti sul documento originale RDF Model & Syntax e l'ultimo lavoro proveniente dalla comunità e li ha raccolti nel [RDF Core Issue List]. Non fu possibile risolvere tutti i problemi durante la rivisitazione della sintassi senza inventare una nuova sintassi, che era al di fuori dello scopo del working group. I problemi principali che rimanevano erano:
- Non è possibile distinguere un elemento nodo RDF da un elemento proprietà con la semplice ispezione dell'elemento in questione senza conoscere l'attuale striping [Striped RDF/XML].
- L'approccio in stile frame del gruppo di descrizione non si accompagna chiaramente al modello in triple di RDF nel grafico RDF.
- Esistono troppi opzioni per gli utenti nello scegliere come scrivere RDF/XML.
- Gli elementi, gli attributi ed i valori degli attributi vengono utilizzati per gli stessi scopi, per esempio, codificando un riferimento RDF URI.
- Il modo in cui i QNames XML sono utilizzati non limitano i tag di elementi ed attributi che possono apparire in RDF/XML.
- La sintassi non limitata non può essere descritta completamente con linguaggi di schema XML come DTD e XML Schema (WXS) del W3C.
- Non permette di utilizzare xsi:type per specificare datatype XML Schema del W3C.
- La sintassi non è facile da usare con tecnologie XML come XSLT, XQuery e altri strumenti XML (per lo più a causa dei tag non limitati e delle molte abbreviazioni).
- Risulta impossibile incorporare l'RDF/XML nell'XHTML quando si mantiene una validazione DTD (mentre questo è anche vero per ogni altra sintassi XML incorporata in formato limitato da DTD).
- E' difficile ricavare un RDF/XML leggibile da una persona da un grafico RDF, a causa della possibilià di scelta ([Unparsing]).
- RDF/XML non è in grado di descrivere un gruppo di letterali.
- Non tutte le proprietà URI possono essere codificate.
- Varie critiche estetiche sono state mosse alla sintassi a causa della sua "bruttezza".
Questi problemi non possono essere tutti risolti lasciando il formato XML risultante semplice; alcune strutture di triple che potrebbero essere generate sono complesse e non sarebbe semplice per l'utente medio scoprire come scriverle in XML.
3. Alternative recenti XML a RDF
[RDF/XML Retrospective] descrive la storia delle varie fasi di revisione dell'RDF/XML e descrive alcune potenziali soluzioni a vari problemi, sia per l'utente che per le macchine, come pure per formati XML e non XML. Ciò non è stato previsto in XML, ma ha portato allo sviluppo di un formato non XML [Turtle], che ha lo scopo di scrivere RDf in modo semplice, non discusso in questa sede.
Carroll e Stickler in [TRiX] propongono una nuova sintassi XML, TRiX, basata su un markup a livello di triple che ha la seguente forma:
- un documento TRiX contiene un gruppo di grafici RDF
- ogni grafico può avere un nome
- la posizione dell'elemento nella tripla è significativo e determina il soggetto, il predicato o l'oggetto della tripla
- non sono permessi QName XML
- suggerisce di renderlo user friendly con trasformazioni XSLT utilizzando una PI XML per
L'estensione al di là dell'RDF conta il semplice approccio senza sorprese qua ipotizzato, e l'uso dell'XSLT (specialmente XSLT2 e XML Schema del W3C) porta i requisiti di strumenti XML molto avanti rispetto a quello che potrebbe essere chiamato core XML.
4. Selezionare XML per un markup RDF migliorato
Una sintassi è user frindly se i termini utilizzati sono minimi, consistenti ed appropriati. I termini della sintassi dovrebbero corrispondere direttamente a concetti RDF come le triple e le sue parti: soggetto, predicato e oggetto, così che come viene scritta la sintassi essa chiaramente illustra i concetti. Non dovresti avere la necessità di capire cosa è un RDF Schema o un linguaggio XML. Un linguaggio di RDf Schema è una descrizione del vocabolario nel grafico RDF; un linguaggio di XML Schema descrive a cosa assomiglia la sintassi XML e come è strutturata e limitata - essi lavorano a livelli differenti.
I tipi di cose che possono essere soggetti, predicati e oggetti in RDF sono RDf URI Reference, nodi identificatori vuoti, letterali. I letterali possono essere tipi di dati (datatyped) (che possono essere contenuto XML) e possono avere una lingua del contenuto (xml:lang). Esistono anche alcune restrizioni su quali tipi possono essere usati nei campi soggetto, predicato e oggetto. Allorquando è possibile, queste limitazioni devono essere rinforzate da un appropriato linguaggio di schema XML, così che, se l'utente vuole, può utilizzare strumenti di validazioni standard o lavorare dallo schema. La sintassi XML dovrebbe essere abbastanza semplice da non richiedere la conoscenza di ogni linguaggio di schema XML, sapendo che la conoscenza di tale linguaggio diventa un fatto benefico.
Gli obiettivi forzano le restrizioni sul complesso dettaglio XML e le persone hanno problemi con la costruzione, in questo caso con i Letterali XML in RDF che usano l'Esclusive XML Canonicalisation. Se questi diventano necessari, l'RDF/XML fornisce quella possibilità in una forma migliore che può risultare in un semplice formato XML. Il formato XML usa anche il minimo delle specifiche XML ed in particolare, quelle più usate. Queste comprendono lo stesso XML, possibilmente gli XML Namespace e alcuni linguaggi di schema XML - avendo cura di usare il minimo possibile di complessità dei linguaggi di schema comuni: DTD, XML Schema del W3C o RELAX NG. Un'altra scelta consiste nel non utilizzare alcuni angoli oscuri delle specifiche XML come il processare le istruzioni e le entità, dimostrando il background in SGML dell'XML che non viene usato nel moderno design di XML.
Gli XML Namespace vengono utilizzati in molti formati XML moderni, specialmente allo scopo di utilizzare datapype del XML Schema del W3C che usano i QName per identificare i datatype. I QName diventano così buoni candidati per essere usati dalla tecnologia per dare un look familiare all'XML moderno. Il W3C TAG ha un problema con l'utilizzo dei QName in situazioni che non rappresentano nome di elementi. Questo diventa particolarmente interessante quando usato come valore di attributo per un contenuto che non ha supporto di tipo per QName, come le DTD. Non risulta particolarmente appropriato usare le DTD qui: sebbene possano manipolare i namespace, esse non possono fare il check completo del tipo. Il problema con RDF e QName è che essi sono stati da sempre usati in modo differente da come essi sono utilizzati come identificatori in datatype di schema XML - RDF concatena i nome di namespace e il nome locale per formare un URI reference, laddove XSD del W3C li lascia come una coppia. Questo ha una conseguenza inaspettata nella descrizione dei datatype; i namespace URI devono essere differenti per xsd se essi sono utilizzati in RDF, poiché la costruzione degli URI per i datatype di schema XML richiede un namespace differente rispetto a quello usato in documenti di schema WXS.
5. RXR (Regular XML RDF)
RXR prende l'approccio di illustrare i concetti RDF agli stessi nome di elementi XML nei quali potrebbero essere chiamati "element-normal form" dove ogni scelta dà un nuovo elemento. Questo genererebbe un albero molto profondo di tag che diventano piuttosto lunghi e noiosi, così come mostrati in Figura 1, se vengono usati solo gli elementi.
<triple> <subject><uri>http://purl.org/net/dajobe/</uri></subject> <predicate><uri>http://purl.org/dc/elements/1.1/creator</uri></predicate> <object><literal>Dave Beckett</literal></object> </triple>
Figura 1. Una sintassi XML per RDF in "forma elemento-normale"
Sebbene abbastanza regolare, questo risulta abbastanza lungo ed in particolare non è un modo naturale di scrivere una stringa con un letterale comparato ad un URI. E' molto più naturale far apparire il contenuto letterale com contenuto dell'elemento e questo rende alternative le altre forme; ciò suggerisce di usare gli attributi per indicare i tipi piuttosto che rimanere nel pieno formato "element-normal".
Gli attributi XML poi diventano i modificatori per gli elementi XML per i concetti RDF relativi alle triple. Il contenuto dell'elemento triple
rinforza l'ordine standard di descrivere una tripla così come previsto dalle specifiche RDF. (L'ordine non è significativo ma viene usato comunemente per favorire la consistenza e facilitare l'apprendimento).
Riscrivendo il contenuto della Figura 1 in una forma RXR finale, si ottiene la Figura 2 che vede l'aggiunta dell'elemento root.
<graph xmlns="http://ilrt.org/discovery/2004/03/rxr/"> <triple> <subject uri="http://purl.org/net/dajobe/"/> <predicate uri="http://purl.org/dc/elements/1.1/creator"/> <object>Dave Beckett</object> </triple> </graph>
Figura 2. Tripla RDF in RXR
Il dettaglio che rimane è relativo ai letterali. Essi possono avere un URI di datapype, così si aggiunge un attributo datatype con il suo contenuto URI e una lingua che può riutilizzare l'xml:lang dell'XML. La Figura 3 mostra esempi di alcuni modi nei quali possono essere scritti i letterali.
<graph xmlns="http://ilrt.org/discovery/2004/03/rxr/"> <triple> <subject uri="http://example.org/res1"/> <predicate uri="http://example.org/pred1"/> <object>simple literal</object> </triple> <triple> <subject uri="http://example.org/res2"/> <predicate uri="http://example.org/pred2"/> <object datatype="http://example.org/mytype">1,2,3</object> </triple> </graph>
Figura 3. Letterali RXR - semplici e con datatype
Una lezione che ho imparato quando realizzavo [Turtle] fu che è noioso scrivere collezioni di RDF in triple RDF, con molte possibilità di errore, senza avere un grande supporto. Queste sono usate nella parte "oggetto" delle triple, così da aggiungere un altro gruppo di tag, permettendo una sequenza di elementi object. La Figura 4 mostra un esempio di gruppo di letterali come oggetto della tripla.
<graph xmlns="http://ilrt.org/discovery/2004/03/rxr/"> <triple> <subject uri="http://example.org/res"/> <predicate uri="http://example.org/pred"/> <collection> <object>a</object> <object>b</object> <object>c</object> </collection> </triple> </graph>
Figura 4. Gruppo RXR di letterali
Come già accennato, l'RXR omette le parti complesse dell'RDF come il Letterale XML che comporta livelli di astrazione - il livello XML di elementi, attributi e versioni codificate come una stringa. Non esiste un modo semplice di modificare questi livelli in XSLT, senza scrivere un XML serializer che realizza Exclusive XML Canonicalization in XSLT, il che richiede almeno XSLT2 ([TRiX]).
Gli schema XML per RXR furono scritti in RELAX NG compact e tradotto in XML Schema del W3C e DTD utilizzando lo strumento trang di James Clark. Gli schema che si ricavano sono completi e relativamente semplici.
6. RDF e HTML/XHTML
Un altro approccio per realizzare un markup di Web semantico user friedly e facile da usare consiste nel partire dal markup XHTML e trasformarlo o annotarlo in triple. Nel febbraio 2004, l'HTML working group annunciò una bozza di documento [RDF/XHTML] che definisce un approccio per il markup semantico per l'XHTML2 (inteso come modulo XHTML2), aggiungendo due nuove caratteristiche principali:
- L'elemento <
meta
> può avere contenuto e nuovi attributi per definire il soggetto o l'oggetto di una dichiarazione RDF, compresi i datatype. - Un elemento <
span
> può avere un attributo resource che permette al contenuto di essere un letterale oggetto di una tripla RDF.
Un secondo approccio consiste nel descrivere come le parti di XHTML possono essere illustrate con triple, tipicamente con una trasformazione XSLT. Una di queste, più recenti, è [GRDDL] che descrive come le triple RDF vengono generate attraverso l'attributo profile compreso nella head HTML e con un proprio valore.
Il nuovo W3C Semantic Web Best Practices and Deployment (SWBPD) Working Group sta coordinando il lavoro con l'HTML WG utilizzando entrambi gli approcci, per fornire un modo per ottenere markup semantico dall'XHTML esistente come pure nel nuovo XHTML2. Questo rimane una bozza ed una lavoro da ultimare.
7. Conclusioni
L'RXR descrive un semplice e regolare formato di tripla XML per l'RDF che è semplice da spiegare e che si accorda con il modello di tripla dell'RDF. E' compatibile con gli schema XML in vari linguaggi e non utilizza i QName XML.
Evitare le abbreviazioni URI con i QName comporta come contropartita che gli URI dell'RDF sono visibili e lunghi. Sostituendo questi o aggiungendo QName alternativi aggiuntivi porterebbe un aggravio in usabilità, nello spiegare perché alcune cose in attributi, con ":" in esse, sono URI, altri QName. Questi sarebbero più chiari e distinti con nuovi attributi. Aggiungere un supporto, per esempio, per l'attributo xsi:type
per datatype di schema XML, porterebbe confusione nell'uso dei quell'attributo con datatype
e la proprietà RDF spesso abbreviata con rdf:type
.
8. Appendice A - XML Schema
Lo schema RELAG NG è disponibile su http://ilrt.org/discovery/2004/03/rxr/rxr.rng (XML) e http://ilrt.org/discovery/2004/03/rxr/rxr.rnc (Compact); L'XML Schema del W3c è disponibile su http://ilrt.org/discovery/2004/03/rxr/rxr.xsd e la DTD su http://ilrt.org/discovery/2004/03/rxr/rxr.dtd.Bibliografia
[RDF/XML Revised] D. Beckett, RDF/XML Syntax Specification (Revised), W3C Recommendation, 10 February 2004, http://www.w3.org/TR/rdf-syntax-grammar/.
[RDF Core Issues List] W3C RDF Core Working Group, RDF Core Issues List, http://www.w3.org/2000/03/rdf-tracking/.
[RDF Core WG] W3C RDF Core Working Group, http://www.w3.org/2001/sw/RDFCore/.
[WebOnt WG] W3C Web Ontology Working Group, http://www.w3.org/2001/sw/WebOnt/.
[Striped RDF/XML] D. Brickley, Understanding the Striped RDF/XML Syntax, World Wide Web Consortium (W3C), October 2001, http://www.w3.org/2001/10/stripes/
[Unparsing] J. J. Carroll, Unparsing RDF/XML, Proceedings of the eleventh international conference on World Wide Web, pages 454-461. ACM Press, 2002, http://www2002.org/CDROM/refereed/184/
[TRiX] J. J. Carroll and P. Stickler, RDF Triples in XML, HP Labs Technical Report HPL-2003-268, 11 February 2004. http://www.hpl.hp.com/techreports/2003/HPL-2003-268.html
[RDF/XML Retrospective] D. Beckett, A retrospective on the development of the RDF/XML Revised Syntax, ILRT, University of Bristol. ILRT Research Report Number: 1017, 11 June 2003. http://www.ilrt.bris.ac.uk/publications/researchreport/rr1017/report_html?ilrtyear=2003
[Turtle] D. Beckett, Turtle - Terse RDF Triple Language, ILRT, University of Bristol, first announced January 2004. http://www.ilrt.bris.ac.uk/discovery/2004/01/turtle/
[RDF/XHTML] M. Birbeck, XHTML and RDF, x-port.net Ltd, 14 February 2004. http://www.w3.org/MarkUp/2004/02/xhtml-rdf.html
[GRDDL] D. Connolly, Gleaning Resource Descriptions from Dialects of Languages (GRDDL), W3C Coordination Group Note, 16 March 2004. http://www.w3.org/2004/01/rdxh/spec
Biografia di David Beckett
David Beckett
Senior Technical Researcher
Institute for Learning and Research Technology (ILRT), University of Bristol - United Kingdom
Email: dave.beckett@bristol.ac.uk
Web: http://purl.org/net/dajobe/
Dave è ricercatore all'ILRT, Università di Bristol e lavora al progetto Semantic Web Advanced Development Europe (SWAD-E). Ha lavorato con i metadati e con il Dublin Core dal 1995, con l'RDF dal 1998, è membro del W3C RDF Core Working Group, e autore della RDF/XML Syntax W3C Recommendation. Dave è l'autore degli strumenti RDF Redland, Raptor e Rasqal e gestisce la RDF Resource Guide.