mozilla

Revision 190108 of RDF in cinquanta parole o meno

  • Slug della versione: RDF_in_cinquanta_parole_o_meno
  • Titolo della versione: RDF in cinquanta parole o meno
  • ID versione: 190108
  • Data di creazione
  • Autore: Leofiore
  • Versione corrente? No
  • Commento
Etichette: 

Contenuto della versione

{{template.T()}}

Okay, probabilmente saranno un pò più di cinquanta parole, ma i punti chiave sono abbastanza semplici (e segnati in grassetto per colo i quali vogliono andare dritti al punto). Con Resource Description Framework (framework di descrizione risorse) o "RDF", intendiamo due cose.

Primo, RDF è un modello basato su grafi per la descrizione di risorse Internet (come pagine web e messaggi email), e di come tali risorse sono correlate l'un l'altra.

Ma cosa vuol dire effettivamente? Per uno sviluppatore Mozilla, significa che il modello dati RDF (il "grafo") può essere usato come meccanismo per integrare ed organizzare risorse Internet.

Vediamo un esempio: segnalibri. Comunemente, molti browser web permettono l'organizzazione dei propri segnalibri in maniera gerarchica all'interno di cartelle (folders). Ogni segnalibro è un puntatore ad una pagina web chiamata URI (Uniform Resource Identifier).

Ma una pagina web è solo uno dei tipi di risorse Internet. Esistono tonnellate di tipi, inclusi messaggi email, articoli UseNet (o gli interi newsgroup), e risultati di ricerca del proprio motore preferito, giusto per dirne alcuni. Fondamentalmente, non c'è ragione per cui non possano essere trattati come "segnalibri" anche questi, raggruppandoli in cartelle a proprio piacimento, o creando cartelle "furbe" che, una volta aperte, generino dinamicamente il loro contenuto eseguendo ricerche da voi setssi definite.

Ed un "segnalibro" può veramente avere proprietà arbitrarie asssociate ad esso: su potrebbe voolere inventare un proprio schema di "classificazione" per un segnalibro a la Macintosh con i suoi codici colore "hot", "warm", "cool". Oppure si potrebbe voler collegare un segnalibro ad un altro, o mantenerlo in molteplici cartelle nello stesso momento.

Il grafo RDF fornisce un modello dati perfetto sul quale costruire un servizio di bookmarking "universale" come descritto sopra: il grafo può contenere puntatori a risorse arbitrarie e può raggrupparli pressoché in ogni maniera immaginabile.

But wait, there's more...

Second, RDF is a serialization syntax. This syntax allows the graph-like model to be communicated between "agents".

Okay, what the heck does that mean? Fundamentally, it means that parts of the RDF data model can be communicated across network boundaries, and the contents of the graph can dynamically change as information arrives from a remote service.

Let's go back to our bookmark example. Say that one of my bookmark "folders" is really a pointer to my email in-box: when I open that folder, voila! All the messages that I've received over night appear.

But how did that happen? The in-box "folder" was really just a pointer to an Internet resource that contains more RDF that extends the graph. That "Internet resource" was a URI that pointed to a CGI script (say, <tt>http://www.mozilla.org/smart-mail/get-mail.cgi?user=waterson&folder=inbox</tt>). The CGI script actually generates serialized RDF, which is basically just a way of formatting a graph into XML:

<rdf:RDF
    xmlns:rdf="http://www.w3.org/TR/WD-rdf-syntax#"
    xmlns:sm="http://www.mozilla.org/smart-mail/schema#">
  <rdf:Description
    about="http://www.mozilla.org/smart-mail/get-mail.cgi?user=waterson&folder=inbox">
    <sm:message id="4025293">
       <sm:recipient>
         Chris Waterson "waterson@netscape.com"
       </sm:recipient>
       <sm:sender>
         Aunt Helga "helga@netcenter.net"
       </sm:sender>
       <sm:received-by>x-wing.mcom.com</sm:received-by>
       <sm:subject>Great recipe for Yam Soup!</sm:subject>
       <sm:body>
         http://www.mozilla.org/smart-mail/get-body.cgi?id=4025293
       </sm:body>
    </sm:message>
    <sm:message id="4025294">
       <sm:recipient>
         Chris Waterson "waterson@netscape.com"
       </sm:recipient>
       <sm:sender>
         Sarah Waterson "waterson.2@postbox.acs.ohio-state.edu"
       </sm:sender>
       <sm:received-by>x-wing.mcom.com</sm:received-by>
       <sm:subject>We won our ultimate game</sm:subject>
       <sm:body>
         http://www.mozilla.org/smart-mail/get-body.cgi?id=4025294
       </sm:body>
    </sm:message>
  </rdf:Description>
</rdf:RDF>

Upon receipt of the above monstrosity, the RDF engine folds the RDF into the graph at the appropriate place, and the tree control that actually implements the UI to the bookmarks is notified that it should begin drawing some icons for the latest message about Yam Soup from Aunt Helga.

This is exactly how SmartMail works.

Contact: Chris Waterson (waterson@netscape.com)

Original Document Information

Interwiki Language Links

{{ wiki.languages( { "ko": "ko/RDF_in_Fifty_Words_or_Less", "en": "en/RDF_in_Fifty_Words_or_Less" } ) }}

Sorgente della versione

<p>
</p><p>{{template.T()}}
</p><p>Okay, probabilmente saranno un pò più di cinquanta parole, ma i punti chiave sono abbastanza semplici (e segnati in <b>grassetto</b> per colo i quali vogliono andare dritti al punto). Con <a href="it/RDF"><i>Resource Description Framework</i></a> (framework di descrizione risorse) o "RDF", intendiamo due cose.
</p>
<blockquote>
<b>Primo, RDF è un modello basato su grafi per la descrizione di <i>risorse</i> Internet (come pagine web e messaggi email), e di come tali risorse sono correlate l'un l'altra.</b>
</blockquote>
<p>Ma cosa vuol dire <i>effettivamente</i>? Per uno sviluppatore Mozilla, significa che il modello dati RDF (il "grafo") può essere usato come meccanismo per integrare ed organizzare risorse Internet.
</p><p>Vediamo un esempio: <i>segnalibri</i>. Comunemente, molti browser web permettono l'organizzazione dei propri segnalibri in maniera gerarchica all'interno di <i>cartelle</i> (<i>folders</i>). Ogni segnalibro è un <i>puntatore</i> ad una pagina web chiamata <b>URI</b> (<b>U</b>niform <b>R</b>esource <b>I</b>dentifier).
</p><p>Ma una pagina web è solo uno dei tipi di risorse Internet. Esistono tonnellate di tipi, inclusi messaggi email, articoli UseNet (o gli interi newsgroup), e risultati di ricerca del proprio motore preferito, giusto per dirne alcuni. Fondamentalmente, non c'è ragione per cui non possano essere trattati come "segnalibri" anche questi, raggruppandoli in cartelle a proprio piacimento, o creando cartelle "furbe" che, una volta aperte, generino dinamicamente il loro contenuto eseguendo ricerche da voi setssi definite.
</p><p>Ed un "segnalibro" può veramente avere proprietà arbitrarie asssociate ad esso: su potrebbe voolere inventare un proprio schema di "classificazione" per un segnalibro <i>a la</i> Macintosh con i suoi codici colore "hot", "warm", "cool". Oppure si potrebbe voler collegare un segnalibro ad un altro, o mantenerlo in molteplici cartelle nello stesso momento.
</p><p>Il grafo RDF fornisce un modello dati perfetto sul quale costruire un servizio di bookmarking "universale" come descritto sopra: il grafo può contenere puntatori a risorse arbitrarie e può raggrupparli pressoché in ogni maniera immaginabile.
</p><p>But wait, there's more...
</p>
<blockquote>
<b>Second, RDF is a serialization syntax. This syntax allows the
graph-like model to be communicated between "agents".</b>
</blockquote>
<p>Okay, what the heck does <i>that</i> mean? Fundamentally, it means
that parts of the RDF data model can be communicated across network
boundaries, and the contents of the graph can dynamically change as
information arrives from a remote service.
</p><p>Let's go back to our bookmark example. Say that one of my bookmark
"folders" is really a pointer to my email in-box: when I open that
folder, voila! All the messages that I've received over night
appear.
</p><p>But how did that happen? The in-box "folder" was really just a pointer
to an Internet resource that contains more RDF that extends the
graph. That "Internet resource" was a URI that pointed to a CGI script
(say, <tt>http://www.mozilla.org/smart-mail/get-mail.cgi?user=waterson&amp;folder=inbox</tt>). The CGI script actually generates <i>serialized RDF</i>, which is
basically just a way of formatting a graph into <a href="it/XML">XML</a>:
</p>
<pre class="eval">&lt;rdf:RDF
    xmlns:rdf="http://www.w3.org/TR/WD-rdf-syntax#"
    xmlns:sm="http://www.mozilla.org/smart-mail/schema#"&gt;
  &lt;rdf:Description
    about="http://www.mozilla.org/smart-mail/get-mail.cgi?user=waterson&amp;folder=inbox"&gt;
    &lt;sm:message id="4025293"&gt;
       &lt;sm:recipient&gt;
         Chris Waterson "waterson@netscape.com"
       &lt;/sm:recipient&gt;
       &lt;sm:sender&gt;
         Aunt Helga "helga@netcenter.net"
       &lt;/sm:sender&gt;
       &lt;sm:received-by&gt;x-wing.mcom.com&lt;/sm:received-by&gt;
       &lt;sm:subject&gt;Great recipe for Yam Soup!&lt;/sm:subject&gt;
       &lt;sm:body&gt;
         http://www.mozilla.org/smart-mail/get-body.cgi?id=4025293
       &lt;/sm:body&gt;
    &lt;/sm:message&gt;
    &lt;sm:message id="4025294"&gt;
       &lt;sm:recipient&gt;
         Chris Waterson "waterson@netscape.com"
       &lt;/sm:recipient&gt;
       &lt;sm:sender&gt;
         Sarah Waterson "waterson.2@postbox.acs.ohio-state.edu"
       &lt;/sm:sender&gt;
       &lt;sm:received-by&gt;x-wing.mcom.com&lt;/sm:received-by&gt;
       &lt;sm:subject&gt;We won our ultimate game&lt;/sm:subject&gt;
       &lt;sm:body&gt;
         http://www.mozilla.org/smart-mail/get-body.cgi?id=4025294
       &lt;/sm:body&gt;
    &lt;/sm:message&gt;
  &lt;/rdf:Description&gt;
&lt;/rdf:RDF&gt;
</pre>
<p>Upon receipt of the above monstrosity, the RDF engine folds the RDF
into the graph at the appropriate place, and the tree control that
actually implements the UI to the bookmarks is notified that it should
begin drawing some icons for the latest message about Yam Soup from
Aunt Helga.
</p><p>This is <i>exactly</i> how <a class="external" href="http://www.mozilla.org/mailnews/">SmartMail</a> works.
</p><p>Contact:
<a class="external" href="mailto:waterson@netscape.com">Chris Waterson</a> (waterson@netscape.com)
</p>
<div class="originaldocinfo">
<h2 name="Original_Document_Information">Original Document Information</h2>
<ul><li> Author(s): <a class="external" href="mailto:waterson@netscape.com">Chris Waterson</a>
</li><li> Last Updated Date: November 19, 1998
</li><li> Copyright Information: Copyright (C) <a class="external" href="mailto:waterson@netscape.com">Chris Waterson</a>
</li></ul>
</div>
<p><span class="comment">Interwiki Language Links</span>
</p>{{ wiki.languages( { "ko": "ko/RDF_in_Fifty_Words_or_Less", "en": "en/RDF_in_Fifty_Words_or_Less" } ) }}
Ripristina questa versione