Compare Revisions

RDF Datasource How-To

Revision 146377:

Revision 146377 by Rkentjames on

Revision 146378:

Revision 146378 by Rkentjames on

Title:
RDF Datasource How-To
RDF Datasource How-To
Slug:
RDF_Datasource_How-To
RDF_Datasource_How-To
Tags:
RDF
RDF
Content:

Revision 146377
Revision 146378
n13      This document is a cookbook that describes how to create a n13      This document is a cookbook that describes how to create a 
><i>native, client-side datasource</i> that works with Mozilla's <><i>native, client-side datasource</i> that works with Mozilla's <
>a href="en/RDF">RDF</a> implementation. It supercedes (and borrow>a href="en/RDF">RDF</a> implementation. It supercedes (and borrow
>s from) the <a class="external" href="http://www.mozilla.org/rdf/>s from) the <a class="external" href="http://www.mozilla.org/rdf/
>doc/rdfdatasources.html">original document</a> put together by <a>doc/rdfdatasources.html">original document</a> put together by <a
> class="external" href="mailto:rjc@netscape.com">Robert Churchill> class="link-mailto" href="mailto:rjc@netscape.com">Robert Church
></a>.>ill</a>.
n22      More concretely, a datasource is a <i>translator</i> that cn22      More concretely, a datasource is a <i>translator</i> that c
>an present information as a collection of RDF statements. For exa>an present information as a collection of RDF statements. For exa
>mple, a "file system datasource" would translate the file system >mple, a "file system datasource" would translate the file system 
>into statements like "/tmp is a directory" and "/tmp/foo is conta>into statements like "/tmp is a directory" and "/tmp/foo is conta
>ined within /tmp". An "IMAP datasource" would use the IMAP protoc>ined within /tmp". An "IMAP datasource" would use the IMAP protoc
>ol to translate your mail server's inbox as a collection of state>ol to translate your mail server's inbox as a collection of state
>ments like "message number 126's subject is 'make money fast on t>ments like "message number 126's subject is 'make money fast on t
>he Internet'" and "message number 126 was sent by 'spammer128@hot>he Internet'" and "message number 126 was sent by <a class=" link
>mail.com'". An "address book" datasource could translate a databa>-mailto" href="mailto:'spammer128@hotmail.com" rel="freelink">'sp
>se file into statements like "spammer128@hotmail.com's real name >ammer128@hotmail.com</a>'". An "address book" datasource could tr
>is 'Billy Dumple'" and "spammer128@hotmail.com is considered an '>anslate a database file into statements like "<a class=" link-mai
>important friend'.">lto" href="mailto:spammer128@hotmail.com's" rel="freelink">spamme
 >r128@hotmail.com's</a> real name is 'Billy Dumple'" and "<a class
 >=" link-mailto" href="mailto:spammer128@hotmail.com" rel="freelin
 >k">spammer128@hotmail.com</a> is considered an 'important friend'
 >."
n48      <b>{{mediawiki.external('write me!')}}</b>n48      <b>{{ mediawiki.external('write me!') }}</b>
n81          The <a class="external" href="http://lxr.mozilla.org/sen81          The <a class="external" href="http://lxr.mozilla.org/se
>amonkey/source/rdf/datasource/src/nsFileSystemDataSource.cpp">fil>amonkey/source/rdf/datasource/src/nsFileSystemDataSource.cpp">fil
>e system datasource</a> and <a class="external" href="http://lxr.>e system datasource</a> and <a class="external" href="http://lxr.
>mozilla.org/seamonkey/source/mailnews/base/src/nsMSGFolderDataSou>mozilla.org/seamonkey/source/mailnews/base/src/nsMsgFolderDataSou
>rce.cpp">local mail datasource</a> are good examples of datasourc>rce.cpp">local mail datasource</a> are good examples of datasourc
>es that have been implemented this way.>es that have been implemented this way.
n89      <b>{{mediawiki.external('More info on what each method needn89      <b>{{ mediawiki.external('More info on what each method nee
>s to do &lt;i&gt;here&lt;/i&gt;')}}</b>>ds to do <i>here</i>') }}</b>
n95      <b>{{mediawiki.external('Describe what commands are, and whn95      <b>{{ mediawiki.external('Describe what commands are, and w
>y you\'d implement them.')}}</b>>hy you\'d implement them.') }}</b>
n101      A datasource is an <a href="en/XPCOM">XPCOM</a> component. n101      A datasource is an <a href="en/XPCOM">XPCOM</a> component. 
>As such, it must (currently, see <a href="#footnote1">{{mediawiki>As such, it must (currently, see <a href="#footnote1">{{ mediawik
>.external(1)}}</a>) have:>i.external("1") }}</a>) have:
n159      The following XUL fragment illustrates how to instantiate an159      The following XUL fragment illustrates how to instantiate a
> tree control whose body is "rooted" to a resource (<tt>http://fo> tree control whose body is "rooted" to a resource (<tt><a class=
>o.bar.com/</tt>) that your datasource describes:>" external" href="http://foo.bar.com/" rel="freelink">http://foo.
 >bar.com/</a></tt>) that your datasource describes:
n163  xmlns:html="http://www.w3.org/1999/xhtml"n163  xmlns:html="<a class=" external" href="http://www.w3.org/1999/x
 >html" rel="freelink">http://www.w3.org/1999/xhtml</a>"
164  xmlns:rdf="http://www.w3.org/TR/WD-rdf-syntax#"164  xmlns:rdf="<a class=" external" href="http://www.w3.org/TR/WD-r
 >df-syntax#" rel="freelink">http://www.w3.org/TR/WD-rdf-syntax#</a
 >>"
165  xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.onl165  xmlns="<a class=" external" href="http://www.mozilla.org/keymas
>y.xul"&gt;>ter/gatekeeper/there.is.only.xul" rel="freelink">http://www.mozil
 >la.org/keymaster/gat...re.is.only.xul</a>"&gt;
n167  &lt;tree <b>datasources="rdf:my-datasource" ref="http://foo.barn167  &lt;tree <b>datasources="rdf:my-datasource" ref="<a class=" ext
>.com/"</b>&gt;>ernal" href="http://foo.bar.com/" rel="freelink">http://foo.bar.c
 >om/</a>"</b>&gt;
n173              <b>&lt;text value="rdf:http://home.netscape.com/NC-n173              <b>&lt;text value="rdf:<a class=" external" href="h
>rdf#Name" /&gt;</b>>ttp://home.netscape.com/NC-rdf#Name" rel="freelink">http://home.n
 >etscape.com/NC-rdf#Name</a>" /&gt;</b>
n176              <b>&lt;text value="rdf:http://home.netscape.com/NC-n176              <b>&lt;text value="rdf:<a class=" external" href="h
>rdf#URL" /&gt;</b>>ttp://home.netscape.com/NC-rdf#URL" rel="freelink">http://home.ne
 >tscape.com/NC-rdf#URL</a>" /&gt;</b>
n206          <tt>ref="http://foo.bar.com/"</tt>. This roots the grapn206          <tt>ref="<a class=" external" href="http://foo.bar.com/
>h in your content model. The <tt>tree</tt> tag will be treated as>" rel="freelink">http://foo.bar.com/</a>"</tt>. This roots the gr
> if it has the <tt>ID</tt> attribute with a value <tt>http://foo.>aph in your content model. The <tt>tree</tt> tag will be treated 
>bar.com/</tt>.>as if it has the <tt>ID</tt> attribute with a value <tt><a class=
 >" external" href="http://foo.bar.com/" rel="freelink">http://foo.
 >bar.com/</a></tt>.
207        </p>
208      </li>
209      <li>
210        <p>207        </p>
208      </li>
209      <li>
210        <p>
211          <tt>&lt;template&gt;...&lt;/template&gt;</tt>. The XUL 211          <tt>&lt;template&gt;...&lt;/template&gt;</tt>. The XUL 
><i>template</i> that is used to build content from the graph. Sta><i>template</i> that is used to build content from the graph. Sta
>rting with the resource that corresponds to the <tt>tree</tt> ele>rting with the resource that corresponds to the <tt>tree</tt> ele
>ment, <tt>http://foo.bar.com/</tt>, the graph will be traversed a>ment, <tt><a class=" external" href="http://foo.bar.com/" rel="fr
>nd content will be constructed using the pattern specified within>eelink">http://foo.bar.com/</a></tt>, the graph will be traversed
> the <tt>template</tt> tags.> and content will be constructed using the pattern specified with
 >in the <tt>template</tt> tags.
n223      Contact: <a class="external" href="mailto:waterson@netscapen223      Contact: <a class="link-mailto" href="mailto:waterson@netsc
>.com">Chris Waterson</a> (waterson@netscape.com)>ape.com">Chris Waterson</a> <a class=" link-mailto" href="mailto:
 >(waterson@netscape.com)" rel="freelink">(waterson@netscape.com)</
 >a>
n230        <li>Author(s): <a class="external" href="mailto:waterson@n230        <li>Author(s): <a class="link-mailto" href="mailto:waters
>netscape.com">Chris Waterson</a>>on@netscape.com">Chris Waterson</a>
t234        <li>Copyright Information: Copyright (C) <a class="externt234        <li>Copyright Information: Copyright (C) <a class="link-m
>al" href="mailto:waterson@netscape.com">Chris Waterson</a>>ailto" href="mailto:waterson@netscape.com">Chris Waterson</a>

Back to History