<?xml version="1.0" encoding="UTF-8" ?>
<!--RDF based XML document generated By OpenLink Virtuoso-->
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
 <rss:channel xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/">
  <rss:title>Kingsley Idehen&#39;s Blog Data Space</rss:title>
  <rss:link>http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/</rss:link>
  <rss:description>I have seen the future and it&#39;s full of Linked Data! :-)</rss:description>
  <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">kidehen@openlinksw.com</dc:creator>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2026-05-16T13:33:55Z</dc:date>
  <rss:items>
   <rdf:Seq>
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-25#1655" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-21#1653" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-20#1652" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-19#1651" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-18#1648" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-16#1647" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-10-01#1447" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-08-15#1413" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-08-03#1406" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-06-13#1386" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-04-28#1342" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-04-10#1334" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-08-01#1238" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-04-04#1177" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-03-28#1172" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-03-01#1148" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-10-20#1065" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-08-28#1030" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-08-08#1023" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-06-01#988" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#986" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#985" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#984" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#983" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#982" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-25#981" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-11#973" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-05#968" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-03-14#939" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-12-06#917" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-18#909" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-16#905" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-14#902" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-11#900" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-02#891" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-10-26#882" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-09-16#868" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-05-24#850" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-04-29#825" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-01-28#673" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-07-02#579" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-05-28#553" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-04-16#523" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-04-01#498" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-09-02#246" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-07-31#224" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-07-07#202" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-25#187" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-24#180" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-16#133" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-16#278" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-03#356" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-27#334" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-27#62" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#997" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#318" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-16#30" />
      <rdf:li rdf:resource="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-16#303" />
   </rdf:Seq>
  </rss:items>
 </rss:channel>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-25#1655">
  <rss:title>SPARQL Guide for the Perl Developer</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2011-01-25T16:05:17Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">What? A simple guide usable by any Perl developer seeking to exploit SPARQL without hassles. Why? SPARQL is a powerful query language, results serialization format, and an HTTP based data access protocol from the W3C. It provides a mechanism for accessing and integrating data across Deductive Database Systems (colloquially referred to as triple or quad stores in Semantic Web and Linked Data circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. How? SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing. Steps: Determine which SPARQL endpoint you want to access e.g. DBpedia or a local Virtuoso instance (typically: http://localhost:8890/sparql). If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;SPARQL_SPONGE&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access). Script: # # Demonstrating use of a single query to populate a # Virtuoso Quad Store via Perl. # # # HTTP URL is constructed accordingly with CSV query results format as the default via mime type. # use CGI qw/:standard/; use LWP::UserAgent; use Data::Dumper; use Text::CSV_XS; sub sparqlQuery(@args) { my $query=shift; my $baseURL=shift; my $format=shift; %params=( &quot;default-graph&quot; =&gt; &quot;&quot;, &quot;should-sponge&quot; =&gt; &quot;soft&quot;, &quot;query&quot; =&gt; $query, &quot;debug&quot; =&gt; &quot;on&quot;, &quot;timeout&quot; =&gt; &quot;&quot;, &quot;format&quot; =&gt; $format, &quot;save&quot; =&gt; &quot;display&quot;, &quot;fname&quot; =&gt; &quot;&quot; ); @fragments=(); foreach $k (keys %params) { $fragment=&quot;$k=&quot;.CGI::escape($params{$k}); push(@fragments,$fragment); } $query=join(&quot;&amp;&quot;, @fragments); $sparqlURL=&quot;${baseURL}?$query&quot;; my $ua = LWP::UserAgent-&gt;new; $ua-&gt;agent(&quot;MyApp/0.1 &quot;); my $req = HTTP::Request-&gt;new(GET =&gt; $sparqlURL); my $res = $ua-&gt;request($req); $str=$res-&gt;content; $csv = Text::CSV_XS-&gt;new(); foreach $line ( split(/^/, $str) ) { $csv-&gt;parse($line); @bits=$csv-&gt;fields(); push(@rows, [ @bits ] ); } return \@rows; } # Setting Data Source Name (DSN) $dsn=&quot;http://dbpedia.org/resource/DBpedia&quot;; # Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET using the IRI in # FROM clause as Data Source URL en route to DBMS # record Inserts. $query=&quot;DEFINE get:soft \&quot;replace\&quot;\n # Generic (non Virtuoso specific SPARQL # Note: this will not add records to the # DBMS SELECT DISTINCT * FROM &lt;$dsn&gt; WHERE {?s ?p ?o}&quot;; $data=sparqlQuery($query, &quot;http://localhost:8890/sparql/&quot;, &quot;text/csv&quot;); print &quot;Retrieved data:\n&quot;; print Dumper($data); Output Retrieved data: $VAR1 = [ [ &#39;s&#39;, &#39;p&#39;, &#39;o&#39; ], [ &#39;http://dbpedia.org/resource/DBpedia&#39;, &#39;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&#39;, &#39;http://www.w3.org/2002/07/owl#Thing&#39; ], [ &#39;http://dbpedia.org/resource/DBpedia&#39;, &#39;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&#39;, &#39;http://dbpedia.org/ontology/Work&#39; ], [ &#39;http://dbpedia.org/resource/DBpedia&#39;, &#39;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&#39;, &#39;http://dbpedia.org/class/yago/Software106566077&#39; ], ... Conclusion CSV was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a Perl developer that already knows how to use Perl for HTTP based data access within HTML. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses. Related RDF::Query::Client Guide SPARQL Guide for the Perl Developer SPARQL Guide for the PHP Developer SPARQL Guide for the Python Developer SPARQL Guide for the Ruby Developer Simple Guide for using SPARQL with Virtuoso General SPARQL Tutorial Collection Virtuoso Specific SPARQL Tutorial Collection The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h3>What?</h3> 
<p>A simple guide usable by any <a class="auto-href" href="http://dbpedia.org/resource/Perl" id="link-id0x1bdcab80">Perl</a> developer seeking to exploit <a class="auto-href" href="http://dbpedia.org/resource/SPARQL" id="link-id0x17b447e8">SPARQL</a> without hassles.</p>

<h3>Why?</h3>
<p>SPARQL is a powerful query language, results serialization format, and an HTTP based <a href="http://dbpedia.org/resource/Data">data</a> access protocol from the W3C. It provides a mechanism for accessing and integrating data across <a href="http://en.wikipedia.org/wiki/Deductive_database" id="link-id0x1cc76540">Deductive Database Systems</a> (colloquially referred to as triple or quad stores in <a class="auto-href" href="http://dbpedia.org/resource/Semantic_Web" id="link-id0x1d944d78">Semantic Web</a> and <a class="auto-href" href="http://dbpedia.org/resource/Linked_Data" id="link-id0x1c7a87c8">Linked Data</a> circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. </p>

<h3>How?</h3>
<p>SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing.</p>

<h4>Steps:</h4>
<ol>
<li>Determine which SPARQL endpoint you want to access e.g. <a href="http://dbpedia.org/sparql" id="link-id0x1d476520">DBpedia</a> or a local <a class="auto-href" href="http://virtuoso.openlinksw.com" id="link-id0x1bcfe140">Virtuoso</a> instance (typically: http://localhost:8890/sparql).
</li>
<li>If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;<a href="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri" id="link-id0x1c7630b8">SPARQL_SPONGE</a>&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).</li>
</ol>

<h4>Script:</h4>

<pre>
#
# Demonstrating use of a single query to populate a 
# Virtuoso Quad Store via Perl. 
#

# 
# HTTP <a href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id0x1d6465e8">URL</a> is constructed accordingly with CSV query results format as the default via mime type.
#

use CGI qw/:standard/;
use LWP::UserAgent;
use Data::Dumper;
use Text::CSV_XS;

sub sparqlQuery(@args) {
  my $query=shift;
  my $baseURL=shift;
  my $format=shift;
	
	%params=(
		&quot;default-graph&quot; =&gt; &quot;&quot;, &quot;should-sponge&quot; =&gt; &quot;soft&quot;, &quot;query&quot; =&gt; $query,
		&quot;debug&quot; =&gt; &quot;on&quot;, &quot;timeout&quot; =&gt; &quot;&quot;, &quot;format&quot; =&gt; $format,
		&quot;save&quot; =&gt; &quot;display&quot;, &quot;fname&quot; =&gt; &quot;&quot;
	);
	
	@fragments=();
	foreach $k (keys %params) {
		$fragment=&quot;$k=&quot;.CGI::escape($params{$k});
		push(@fragments,$fragment);
	}
	$query=join(&quot;&amp;&quot;, @fragments);
	
	$sparqlURL=&quot;${baseURL}?$query&quot;;
	
	my $ua = LWP::UserAgent-&gt;new;
	$ua-&gt;agent(&quot;MyApp/0.1 &quot;);
	my $req = HTTP::Request-&gt;new(GET =&gt; $sparqlURL);
	my $res = $ua-&gt;request($req);
	$str=$res-&gt;content;
	
	$csv = Text::CSV_XS-&gt;new();
	
	foreach $line ( split(/^/, $str) ) {
		$csv-&gt;parse($line);
		@bits=$csv-&gt;fields();
	  push(@rows, [ @bits ] );
	}
	return \@rows;
}


# Setting Data Source Name (DSN)

$dsn=&quot;http://dbpedia.org/resource/DBpedia&quot;;

# Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET using the IRI in
# FROM clause as Data Source URL en route to DBMS
# record Inserts.

$query=&quot;DEFINE get:soft \&quot;replace\&quot;\n

# Generic (non Virtuoso specific SPARQL
# Note: this will not add records to the 
# DBMS 

SELECT DISTINCT * FROM &lt;$dsn&gt; WHERE {?s ?p ?o}&quot;; 

$data=sparqlQuery($query, &quot;http://localhost:8890/sparql/&quot;, &quot;text/csv&quot;);

print &quot;Retrieved data:\n&quot;;
print Dumper($data);
</pre>
<h4>Output</h4>
<pre>
Retrieved data:
$VAR1 = [
          [
            &#39;s&#39;,
            &#39;p&#39;,
            &#39;o&#39;
          ],
          [
            &#39;http://dbpedia.org/resource/DBpedia&#39;,
            &#39;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&#39;,
            &#39;http://www.w3.org/2002/07/owl#Thing&#39;
          ],
          [
            &#39;http://dbpedia.org/resource/DBpedia&#39;,
            &#39;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&#39;,
            &#39;http://dbpedia.org/ontology/Work&#39;
          ],
          [
            &#39;http://dbpedia.org/resource/DBpedia&#39;,
            &#39;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&#39;,
            &#39;http://dbpedia.org/class/yago/Software106566077&#39;
          ],
...
</pre>
<h3>Conclusion</h3>
<p>
CSV was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a Perl developer that already knows how to use Perl for HTTP based data access within HTML. SPARQL just provides an added bonus to URL dexterity (delivered via <a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id0x1d29da98">URI</a> abstraction) with regards to constructing Data Source Names or Addresses.</p>
<h3>Related</h3>
<ul>
<li>
  <a href="http://cpansearch.perl.org/src/TOBYINK/RDF-Query-Client-0.103/README" id="link-id0x1c279130">RDF::Query::Client Guide</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1653" id="link-id0x1cf307f0">SPARQL Guide for the Perl Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1652" id="link-id0x1b0ffb28">SPARQL Guide for the PHP Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1651" id="link-id0x1a8c5ae0">SPARQL Guide for the Python Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1648" id="link-id0x1b86ad28">SPARQL Guide for the Ruby Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646" id="link-id0x1c7af188">Simple Guide for using SPARQL with Virtuoso</a> 
</li>
<li>
  <a href="http://www.delicious.com/kidehen/sparql_tutorial" id="link-id0x1ac1ba48">General SPARQL Tutorial Collection</a> </li>
<li>
  <a href="http://www.delicious.com/kidehen/virtuoso_sparql_tutorial" id="link-id0x1c7be660">Virtuoso Specific SPARQL Tutorial Collection</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567" id="link-id0x1c52b438">The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI</a>.
</li>
</ul>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-21#1653">
  <rss:title>SPARQL Guide for the Javascript Developer </rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2011-01-21T19:59:49Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">What? A simple guide usable by any Javascript developer seeking to exploit SPARQL without hassles. Why? SPARQL is a powerful query language, results serialization format, and an HTTP based data access protocol from the W3C. It provides a mechanism for accessing and integrating data across Deductive Database Systems (colloquially referred to as triple or quad stores in Semantic Web and Linked Data circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. How? SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing. Steps: Determine which SPARQL endpoint you want to access e.g. DBpedia or a local Virtuoso instance (typically: http://localhost:8890/sparql). If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;SPARQL_SPONGE&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access). Script: /* Demonstrating use of a single query to populate a # Virtuoso Quad Store via Javascript. */ /* HTTP URL is constructed accordingly with JSON query results format as the default via mime type. */ function sparqlQuery(query, baseURL, format) { if(!format) format=&quot;application/json&quot;; var params={ &quot;default-graph&quot;: &quot;&quot;, &quot;should-sponge&quot;: &quot;soft&quot;, &quot;query&quot;: query, &quot;debug&quot;: &quot;on&quot;, &quot;timeout&quot;: &quot;&quot;, &quot;format&quot;: format, &quot;save&quot;: &quot;display&quot;, &quot;fname&quot;: &quot;&quot; }; var querypart=&quot;&quot;; for(var k in params) { querypart+=k+&quot;=&quot;+encodeURIComponent(params[k])+&quot;&amp;&quot;; } var queryURL=baseURL + &#39;?&#39; + querypart; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;); } xmlhttp.open(&quot;GET&quot;,queryURL,false); xmlhttp.send(); return JSON.parse(xmlhttp.responseText); } /* setting Data Source Name (DSN) */ var dsn=&quot;http://dbpedia.org/resource/DBpedia&quot;; /* Virtuoso pragma &quot;DEFINE get:soft &quot;replace&quot; instructs Virtuoso SPARQL engine to perform an HTTP GET using the IRI in FROM clause as Data Source URL with regards to DBMS record inserts */ var query=&quot;DEFINE get:soft \&quot;replace\&quot;\nSELECT DISTINCT * FROM &lt;&quot;+dsn+&quot;&gt; WHERE {?s ?p ?o}&quot;; var data=sparqlQuery(query, &quot;/sparql/&quot;); Output Place the snippet above into the &lt;script/&gt; section of an HTML document to see the query result. Conclusion JSON was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a Javascript developer that already knows how to use Javascript for HTTP based data access within HTML. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses. Related SPARQL Guide for the PHP Developer SPARQL Guide for the Python Developer SPARQL Guide for the Ruby Developer Simple Guide for using SPARQL with Virtuoso General SPARQL Tutorial Collection Virtuoso Specific SPARQL Tutorial Collection The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h3>What?</h3> 
<p>A simple guide usable by any Javascript developer seeking to exploit <a class="auto-href" href="http://dbpedia.org/resource/SPARQL" id="link-id0x17b447e8">SPARQL</a> without hassles.</p>

<h3>Why?</h3>
<p>SPARQL is a powerful query language, results serialization format, and an HTTP based <a href="http://dbpedia.org/resource/Data">data</a> access protocol from the W3C. It provides a mechanism for accessing and integrating data across <a href="http://en.wikipedia.org/wiki/Deductive_database" id="link-id0x1cc76540">Deductive Database Systems</a> (colloquially referred to as triple or quad stores in <a class="auto-href" href="http://dbpedia.org/resource/Semantic_Web" id="link-id0x1d944d78">Semantic Web</a> and <a class="auto-href" href="http://dbpedia.org/resource/Linked_Data" id="link-id0x1c7a87c8">Linked Data</a> circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. </p>

<h3>How?</h3>
<p>SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing.</p>

<h4>Steps:</h4>
<ol>
<li>Determine which SPARQL endpoint you want to access e.g. <a href="http://dbpedia.org/sparql" id="link-id0x1d476520">DBpedia</a> or a local <a class="auto-href" href="http://virtuoso.openlinksw.com" id="link-id0x1bcfe140">Virtuoso</a> instance (typically: http://localhost:8890/sparql).
</li>
<li>If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;<a href="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri" id="link-id0x1c7630b8">SPARQL_SPONGE</a>&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).</li>
</ol>

<h4>Script:</h4>

<pre>
/*
Demonstrating use of a single query to populate a # Virtuoso Quad Store via Javascript. 
*/

/* 
HTTP <a href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id0x1bc27a18">URL</a> is constructed accordingly with JSON query results format as the default via mime type.
*/

function sparqlQuery(query, baseURL, format) {
	if(!format)
		format=&quot;application/json&quot;;
	var params={
		&quot;default-graph&quot;: &quot;&quot;, &quot;should-sponge&quot;: &quot;soft&quot;, &quot;query&quot;: query,
		&quot;debug&quot;: &quot;on&quot;, &quot;timeout&quot;: &quot;&quot;, &quot;format&quot;: format,
		&quot;save&quot;: &quot;display&quot;, &quot;fname&quot;: &quot;&quot;
	};
	
	var querypart=&quot;&quot;;
	for(var k in params) {
		querypart+=k+&quot;=&quot;+encodeURIComponent(params[k])+&quot;&amp;&quot;;
	}
	var queryURL=baseURL + &#39;?&#39; + querypart;
	if (window.XMLHttpRequest) {
  	xmlhttp=new XMLHttpRequest();
  }
  else {
  	xmlhttp=new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);
  }
  xmlhttp.open(&quot;GET&quot;,queryURL,false);
  xmlhttp.send();
  return JSON.parse(xmlhttp.responseText);
}

/*
setting Data Source Name (DSN)
*/

var dsn=&quot;http://dbpedia.org/resource/DBpedia&quot;;

/*
Virtuoso pragma &quot;DEFINE get:soft &quot;replace&quot; instructs Virtuoso SPARQL engine to perform an HTTP GET using the IRI in FROM clause as Data Source URL with regards to 
DBMS record inserts
*/

var query=&quot;DEFINE get:soft \&quot;replace\&quot;\nSELECT DISTINCT * FROM &lt;&quot;+dsn+&quot;&gt; WHERE {?s ?p ?o}&quot;; 
var data=sparqlQuery(query, &quot;/sparql/&quot;);
</pre>
<h4>Output</h4>
<p>
Place the snippet above into the &lt;script/&gt; section of an HTML document to see the <a href="http://twitpic.com/3s2vs3/full" id="link-id0x1cff2288">query result</a>.
</p>
<h3>Conclusion</h3>
<p>
JSON was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a Javascript developer that already knows how to use Javascript for HTTP based data access within HTML. SPARQL just provides an added bonus to URL dexterity (delivered via <a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id0x1d29da98">URI</a> abstraction) with regards to constructing Data Source Names or Addresses.</p>
<h3>Related</h3>
<ul>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1652" id="link-id0x1b0ffb28">SPARQL Guide for the PHP Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1651" id="link-id0x1a8c5ae0">SPARQL Guide for the Python Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1648" id="link-id0x1b86ad28">SPARQL Guide for the Ruby Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646" id="link-id0x1c7af188">Simple Guide for using SPARQL with Virtuoso</a> 
</li>
<li>
  <a href="http://www.delicious.com/kidehen/sparql_tutorial" id="link-id0x1ac1ba48">General SPARQL Tutorial Collection</a> </li>
<li>
  <a href="http://www.delicious.com/kidehen/virtuoso_sparql_tutorial" id="link-id0x1c7be660">Virtuoso Specific SPARQL Tutorial Collection</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567" id="link-id0x1c52b438">The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI</a>.
</li>
</ul>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-20#1652">
  <rss:title>SPARQL Guide for the PHP Developer</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2011-01-20T21:25:49Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">What? A simple guide usable by any PHP developer seeking to exploit SPARQL without hassles. Why? SPARQL is a powerful query language, results serialization format, and an HTTP based data access protocol from the W3C. It provides a mechanism for accessing and integrating data across Deductive Database Systems (colloquially referred to as triple or quad stores in Semantic Web and Linked Data circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. How? SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing e.g. local object binding re. PHP. Steps: From your command line execute: aptitude search &#39;^PHP26&#39;, to verify PHP is in place Determine which SPARQL endpoint you want to access e.g. DBpedia or a local Virtuoso instance (typically: http://localhost:8890/sparql). If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;SPARQL_SPONGE&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access). Script: #!/usr/bin/env php &lt;?php # # Demonstrating use of a single query to populate a # Virtuoso Quad Store via PHP. # # HTTP URL is constructed accordingly with JSON query results format in mind. function sparqlQuery($query, $baseURL, $format=&quot;application/json&quot;) { $params=array( &quot;default-graph&quot; =&gt; &quot;&quot;, &quot;should-sponge&quot; =&gt; &quot;soft&quot;, &quot;query&quot; =&gt; $query, &quot;debug&quot; =&gt; &quot;on&quot;, &quot;timeout&quot; =&gt; &quot;&quot;, &quot;format&quot; =&gt; $format, &quot;save&quot; =&gt; &quot;display&quot;, &quot;fname&quot; =&gt; &quot;&quot; ); $querypart=&quot;?&quot;; foreach($params as $name =&gt; $value) { $querypart=$querypart . $name . &#39;=&#39; . urlencode($value) . &quot;&amp;&quot;; } $sparqlURL=$baseURL . $querypart; return json_decode(file_get_contents($sparqlURL)); }; # Setting Data Source Name (DSN) $dsn=&quot;http://dbpedia.org/resource/DBpedia&quot;; #Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET #using the IRI in FROM clause as Data Source URL $query=&quot;DEFINE get:soft \&quot;replace\&quot; SELECT DISTINCT * FROM &lt;$dsn&gt; WHERE {?s ?p ?o}&quot;; $data=sparqlQuery($query, &quot;http://localhost:8890/sparql/&quot;); print &quot;Retrieved data:\n&quot; . json_encode($data); ?&gt; Output Retrieved data: {&quot;head&quot;: {&quot;link&quot;:[],&quot;vars&quot;:[&quot;s&quot;,&quot;p&quot;,&quot;o&quot;]}, &quot;results&quot;: {&quot;distinct&quot;:false,&quot;ordered&quot;:true, &quot;bindings&quot;:[ {&quot;s&quot;: {&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/resource\/DBpedia&quot;},&quot;p&quot;: {&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type&quot;},&quot;o&quot;: {&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/www.w3.org\/2002\/07\/owl#Thing&quot;}}, {&quot;s&quot;: {&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/resource\/DBpedia&quot;},&quot;p&quot;: {&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type&quot;},&quot;o&quot;: {&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/ontology\/Work&quot;}}, {&quot;s&quot;: {&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/resource\/DBpedia&quot;},&quot;p&quot;: {&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type&quot;},&quot;o&quot;: {&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/class\/yago\/Software106566077&quot;}}, ... Conclusion JSON was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a PHP developer that already knows how to use PHP for HTTP based data access. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses. Related SPARQL Guide for the Python Developer SPARQL Guide for the Ruby Developer Simple Guide for using SPARQL with Virtuoso General SPARQL Tutorial Collection Virtuoso Specific SPARQL Tutorial Collection The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h3>What?</h3> 
<p>A simple guide usable by any <a class="auto-href" href="http://dbpedia.org/resource/PHP_programming_language" id="link-id0x1bdca7b8">PHP</a> developer seeking to exploit <a class="auto-href" href="http://dbpedia.org/resource/SPARQL" id="link-id0x1c894338">SPARQL</a> without hassles.</p>

<h3>Why?</h3>
<p>SPARQL is a powerful query language, results serialization format, and an HTTP based <a href="http://dbpedia.org/resource/Data">data</a> access protocol from the W3C. It provides a mechanism for accessing and integrating data across <a href="http://en.wikipedia.org/wiki/Deductive_database" id="link-id0x1c319af0">Deductive Database Systems</a> (colloquially referred to as triple or quad stores in <a class="auto-href" href="http://dbpedia.org/resource/Semantic_Web" id="link-id0x1d944d78">Semantic Web</a> and <a class="auto-href" href="http://dbpedia.org/resource/Linked_Data" id="link-id0x1c7a87c8">Linked Data</a> circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. </p>

<h3>How?</h3>
<p>SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing e.g. local object binding re. PHP.</p>

<h4>Steps:</h4>
<ol>
<li>
From your command line execute: aptitude search &#39;^PHP26&#39;, to verify PHP is in place
</li>
<li>Determine which SPARQL endpoint you want to access e.g. <a href="http://dbpedia.org/sparql" id="link-id0x1d476520">DBpedia</a> or a local <a class="auto-href" href="http://virtuoso.openlinksw.com" id="link-id0x1bcfe140">Virtuoso</a> instance (typically: http://localhost:8890/sparql).
</li>
<li>If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;<a href="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri" id="link-id0x1c7630b8">SPARQL_SPONGE</a>&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).</li>
</ol>

<h4>Script:</h4>

<pre>
#!/usr/bin/env php
&lt;?php
#
# Demonstrating use of a single query to populate a # Virtuoso Quad Store via PHP. 
#

# HTTP <a href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id0x1ce1d6d8">URL</a> is constructed accordingly with JSON query results format in mind.

function sparqlQuery($query, $baseURL, $format=&quot;application/json&quot;)

  {
	$params=array(
		&quot;default-graph&quot; =&gt;  &quot;&quot;,
		&quot;should-sponge&quot; =&gt;  &quot;soft&quot;,
		&quot;query&quot; =&gt;  $query,
		&quot;debug&quot; =&gt;  &quot;on&quot;,
		&quot;timeout&quot; =&gt;  &quot;&quot;,
		&quot;format&quot; =&gt;  $format,
		&quot;save&quot; =&gt;  &quot;display&quot;,
		&quot;fname&quot; =&gt;  &quot;&quot;
	);

	$querypart=&quot;?&quot;;	
	foreach($params as $name =&gt; $value) 
  {
		$querypart=$querypart . $name . &#39;=&#39; . urlencode($value) . &quot;&amp;&quot;;
	}
	
	$sparqlURL=$baseURL . $querypart;
	
	return json_decode(file_get_contents($sparqlURL));
};



# Setting Data Source Name (DSN)
$dsn=&quot;http://dbpedia.org/resource/DBpedia&quot;;

#Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET
#using the IRI in FROM clause as Data Source URL

$query=&quot;DEFINE get:soft \&quot;replace\&quot;
SELECT DISTINCT * FROM &lt;$dsn&gt; WHERE {?s ?p ?o}&quot;; 

$data=sparqlQuery($query, &quot;http://localhost:8890/sparql/&quot;);

print &quot;Retrieved data:\n&quot; . json_encode($data);

?&gt;
</pre>
<h4>Output</h4>
<pre>
Retrieved data:
  {&quot;head&quot;:
  {&quot;link&quot;:[],&quot;vars&quot;:[&quot;s&quot;,&quot;p&quot;,&quot;o&quot;]},
  &quot;results&quot;:
		{&quot;distinct&quot;:false,&quot;ordered&quot;:true,
		&quot;bindings&quot;:[
			{&quot;s&quot;:
			{&quot;type&quot;:&quot;<a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id0x1ca44a98">uri</a>&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/resource\/DBpedia&quot;},&quot;p&quot;:
			{&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type&quot;},&quot;o&quot;:
			{&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/www.w3.org\/2002\/07\/owl#Thing&quot;}},
			{&quot;s&quot;:
			{&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/resource\/DBpedia&quot;},&quot;p&quot;:
			{&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type&quot;},&quot;o&quot;:
			{&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/ontology\/Work&quot;}},
			{&quot;s&quot;:
			{&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/resource\/DBpedia&quot;},&quot;p&quot;:
			{&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/www.w3.org\/1999\/02\/22-rdf-syntax-ns#type&quot;},&quot;o&quot;:
			{&quot;type&quot;:&quot;uri&quot;,&quot;value&quot;:&quot;http:\/\/dbpedia.org\/class\/yago\/Software106566077&quot;}},
...
</pre>
<h3>Conclusion</h3>
<p>
JSON was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a PHP developer that already knows how to use PHP for HTTP based data access. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses.</p>
<h3>Related</h3>
<ul>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1651" id="link-id0x1a8c5ae0">SPARQL Guide for the Python Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1648" id="link-id0x1b86ad28">SPARQL Guide for the Ruby Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646" id="link-id0x1c7af188">Simple Guide for using SPARQL with Virtuoso</a> 
</li>
<li>
  <a href="http://www.delicious.com/kidehen/sparql_tutorial" id="link-id0x1ac1ba48">General SPARQL Tutorial Collection</a> </li>
<li>
  <a href="http://www.delicious.com/kidehen/virtuoso_sparql_tutorial" id="link-id0x1c7be660">Virtuoso Specific SPARQL Tutorial Collection</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567" id="link-id0x1c52b438">The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI</a>.
</li>
</ul>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-19#1651">
  <rss:title>SPARQL Guide for Python Developer</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2011-01-19T17:13:30Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">What? A simple guide usable by any Python developer seeking to exploit SPARQL without hassles. Why? SPARQL is a powerful query language, results serialization format, and an HTTP based data access protocol from the W3C. It provides a mechanism for accessing and integrating data across Deductive Database Systems (colloquially referred to as triple or quad stores in Semantic Web and Linked Data circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. How? SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing e.g. local object binding re. Python. Steps: From your command line execute: aptitude search &#39;^python26&#39;, to verify Python is in place Determine which SPARQL endpoint you want to access e.g. DBpedia or a local Virtuoso instance (typically: http://localhost:8890/sparql). If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;SPARQL_SPONGE&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access). Script: #!/usr/bin/env python # # Demonstrating use of a single query to populate a # Virtuoso Quad Store via Python. # import urllib, json # HTTP URL is constructed accordingly with JSON query results format in mind. def sparqlQuery(query, baseURL, format=&quot;application/json&quot;): params={ &quot;default-graph&quot;: &quot;&quot;, &quot;should-sponge&quot;: &quot;soft&quot;, &quot;query&quot;: query, &quot;debug&quot;: &quot;on&quot;, &quot;timeout&quot;: &quot;&quot;, &quot;format&quot;: format, &quot;save&quot;: &quot;display&quot;, &quot;fname&quot;: &quot;&quot; } querypart=urllib.urlencode(params) response = urllib.urlopen(baseURL,querypart).read() return json.loads(response) # Setting Data Source Name (DSN) dsn=&quot;http://dbpedia.org/resource/DBpedia&quot; # Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET # using the IRI in FROM clause as Data Source URL query=&quot;&quot;&quot;DEFINE get:soft &quot;replace&quot; SELECT DISTINCT * FROM &lt;%s&gt; WHERE {?s ?p ?o}&quot;&quot;&quot; % dsn data=sparqlQuery(query, &quot;http://localhost:8890/sparql/&quot;) print &quot;Retrieved data:\n&quot; + json.dumps(data, sort_keys=True, indent=4) # # End Output Retrieved data: { &quot;head&quot;: { &quot;link&quot;: [], &quot;vars&quot;: [ &quot;s&quot;, &quot;p&quot;, &quot;o&quot; ] }, &quot;results&quot;: { &quot;bindings&quot;: [ { &quot;o&quot;: { &quot;type&quot;: &quot;uri&quot;, &quot;value&quot;: &quot;http://www.w3.org/2002/07/owl#Thing&quot; }, &quot;p&quot;: { &quot;type&quot;: &quot;uri&quot;, &quot;value&quot;: &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&quot; }, &quot;s&quot;: { &quot;type&quot;: &quot;uri&quot;, &quot;value&quot;: &quot;http://dbpedia.org/resource/DBpedia&quot; } }, ... Conclusion JSON was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a Python developer that already knows how to use Python for HTTP based data access. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses. Related SPARQL Guide for the Ruby Developer Simple Guide for using SPARQL with Virtuoso General SPARQL Tutorial Collection Virtuoso Specific SPARQL Tutorial Collection The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h3>What?</h3> 
<p>A simple guide usable by any <a class="auto-href" href="http://dbpedia.org/resource/Python_programming_language" id="link-id0x1bdca7b8">Python</a> developer seeking to exploit <a class="auto-href" href="http://dbpedia.org/resource/SPARQL" id="link-id0x1c894338">SPARQL</a> without hassles.</p>

<h3>Why?</h3>
<p>SPARQL is a powerful query language, results serialization format, and an HTTP based <a href="http://dbpedia.org/resource/Data">data</a> access protocol from the W3C. It provides a mechanism for accessing and integrating data across <a href="http://en.wikipedia.org/wiki/Deductive_database" id="link-id0x1c319af0">Deductive Database Systems</a> (colloquially referred to as triple or quad stores in <a class="auto-href" href="http://dbpedia.org/resource/Semantic_Web" id="link-id0x1d944d78">Semantic Web</a> and <a class="auto-href" href="http://dbpedia.org/resource/Linked_Data" id="link-id0x1c7a87c8">Linked Data</a> circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. </p>

<h3>How?</h3>
<p>SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing e.g. local object binding re. Python.</p>

<h4>Steps:</h4>
<ol>
<li>
From your command line execute: aptitude search &#39;^python26&#39;, to verify Python is in place
</li>
<li>Determine which SPARQL endpoint you want to access e.g. <a href="http://dbpedia.org/sparql" id="link-id0x1d476520">DBpedia</a> or a local <a class="auto-href" href="http://virtuoso.openlinksw.com" id="link-id0x1bcfe140">Virtuoso</a> instance (typically: http://localhost:8890/sparql).
</li>
<li>If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;<a href="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri" id="link-id0x1c7630b8">SPARQL_SPONGE</a>&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).</li>
</ol>

<h4>Script:</h4>

<pre>
#!/usr/bin/env python
#
# Demonstrating use of a single query to populate a # Virtuoso Quad Store via Python. 
#

import urllib, json

# HTTP <a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id0x1bd91cf0">URL</a> is constructed accordingly with JSON query results format in mind.

def sparqlQuery(query, baseURL, format=&quot;application/json&quot;):
	params={
		&quot;default-graph&quot;: &quot;&quot;,
		&quot;should-sponge&quot;: &quot;soft&quot;,
		&quot;query&quot;: query,
		&quot;debug&quot;: &quot;on&quot;,
		&quot;timeout&quot;: &quot;&quot;,
		&quot;format&quot;: format,
		&quot;save&quot;: &quot;display&quot;,
		&quot;fname&quot;: &quot;&quot;
	}
	querypart=urllib.urlencode(params)
	response = urllib.urlopen(baseURL,querypart).read()
	return json.loads(response)

# Setting Data Source Name (DSN)
dsn=&quot;http://dbpedia.org/resource/DBpedia&quot;

# Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET
# using the IRI in FROM clause as Data Source URL

query=&quot;&quot;&quot;DEFINE get:soft &quot;replace&quot;
SELECT DISTINCT * FROM &lt;%s&gt; WHERE {?s ?p ?o}&quot;&quot;&quot; % dsn 

data=sparqlQuery(query, &quot;http://localhost:8890/sparql/&quot;)

print &quot;Retrieved data:\n&quot; + json.dumps(data, sort_keys=True, indent=4)

#
# End
</pre>
<h4>Output</h4>
<pre>
Retrieved data:
{
    &quot;head&quot;: {
        &quot;link&quot;: [], 
        &quot;vars&quot;: [
            &quot;s&quot;, 
            &quot;p&quot;, 
            &quot;o&quot;
        ]
    }, 
    &quot;results&quot;: {
        &quot;bindings&quot;: [
            {
                &quot;o&quot;: {
                    &quot;type&quot;: &quot;<a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id0x1b1470b8">uri</a>&quot;, 
                    &quot;value&quot;: &quot;http://www.w3.org/2002/07/owl#Thing&quot;
                }, 
                &quot;p&quot;: {
                    &quot;type&quot;: &quot;uri&quot;, 
                    &quot;value&quot;: &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&quot;
                }, 
                &quot;s&quot;: {
                    &quot;type&quot;: &quot;uri&quot;, 
                    &quot;value&quot;: &quot;http://dbpedia.org/resource/DBpedia&quot;
                }
            }, 
...
</pre>
<h3>Conclusion</h3>
<p>
JSON was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a Python developer that already knows how to use Python for HTTP based data access. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses.</p>
<h3>Related</h3>
<ul>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1648" id="link-id0x1c9e26b0">SPARQL Guide for the Ruby Developer</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646" id="link-id0x1c7af188">Simple Guide for using SPARQL with Virtuoso</a> 
</li>
<li>
  <a href="http://www.delicious.com/kidehen/sparql_tutorial" id="link-id0x1ac1ba48">General SPARQL Tutorial Collection</a> </li>
<li>
  <a href="http://www.delicious.com/kidehen/virtuoso_sparql_tutorial" id="link-id0x1c7be660">Virtuoso Specific SPARQL Tutorial Collection</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567" id="link-id0x1c52b438">The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI</a>.
</li>
</ul>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-18#1648">
  <rss:title>SPARQL for the Ruby Developer</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2011-01-18T19:48:34Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">What? A simple guide usable by any Ruby developer seeking to exploit SPARQL without hassles. Why? SPARQL is a powerful query language, results serialization format, and an HTTP based data access protocol from the W3C. It provides a mechanism for accessing and integrating data across Deductive Database Systems (colloquially referred to as triple or quad stores in Semantic Web and Linked Data circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. How? SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing e.g. local object binding re. Ruby. Steps: From your command line execute: aptitude search &#39;^ruby&#39;, to verify Ruby is in place Determine which SPARQL endpoint you want to access e.g. DBpedia or a local Virtuoso instance (typically: http://localhost:8890/sparql). If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;SPARQL_SPONGE&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access). Script: #!/usr/bin/env ruby # # Demonstrating use of a single query to populate a # Virtuoso Quad Store. # require &#39;net/http&#39; require &#39;cgi&#39; require &#39;csv&#39; # # We opt for CSV based output since handling this format is straightforward in Ruby, by default. # HTTP URL is constructed accordingly with CSV as query results format in mind. def sparqlQuery(query, baseURL, format=&quot;text/csv&quot;) params={ &quot;default-graph&quot; =&gt; &quot;&quot;, &quot;should-sponge&quot; =&gt; &quot;soft&quot;, &quot;query&quot; =&gt; query, &quot;debug&quot; =&gt; &quot;on&quot;, &quot;timeout&quot; =&gt; &quot;&quot;, &quot;format&quot; =&gt; format, &quot;save&quot; =&gt; &quot;display&quot;, &quot;fname&quot; =&gt; &quot;&quot; } querypart=&quot;&quot; params.each { |k,v| querypart+=&quot;#{k}=#{CGI.escape(v)}&amp;&quot; } sparqlURL=baseURL+&quot;?#{querypart}&quot; response = Net::HTTP.get_response(URI.parse(sparqlURL)) return CSV::parse(response.body) end # Setting Data Source Name (DSN) dsn=&quot;http://dbpedia.org/resource/DBpedia&quot; #Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET #using the IRI in FROM clause as Data Source URL query=&quot;DEFINE get:soft \&quot;replace\&quot; SELECT DISTINCT * FROM &lt;#{dsn}&gt; WHERE {?s ?p ?o} &quot; #Assume use of local installation of Virtuoso #otherwise you can change URL to that of a public endpoint #for example DBpedia: http://dbpedia.org/sparql data=sparqlQuery(query, &quot;http://localhost:8890/sparql/&quot;) puts &quot;Got data:&quot; p data # # End Output Got data: [[&quot;s&quot;, &quot;p&quot;, &quot;o&quot;], [&quot;http://dbpedia.org/resource/DBpedia&quot;, &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&quot;, &quot;http://www.w3.org/2002/07/owl#Thing&quot;], [&quot;http://dbpedia.org/resource/DBpedia&quot;, &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&quot;, &quot;http://dbpedia.org/ontology/Work&quot;], [&quot;http://dbpedia.org/resource/DBpedia&quot;, &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&quot;, &quot;http://dbpedia.org/class/yago/Software106566077&quot;], ... Conclusion CSV was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a Ruby developer that already knows how to use Ruby for HTTP based data access. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses. Related SPARQL and Ruby SPARQL Client Library Example Simple Guide for using SPARQL with Virtuoso General SPARQL Tutorial Collection Virtuoso Specific SPARQL Tutorial Collection The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h3>What?</h3> 
<p>A simple guide usable by any <a class="auto-href" href="http://dbpedia.org/resource/Ruby_programming_language" id="link-id0x1bb88908">Ruby</a> developer seeking to exploit <a class="auto-href" href="http://dbpedia.org/resource/SPARQL" id="link-id0x1ae67500">SPARQL</a> without hassles.</p>

<h3>Why?</h3>
<p>SPARQL is a powerful query language, results serialization format, and an HTTP based <a href="http://dbpedia.org/resource/Data">data</a> access protocol from the W3C. It provides a mechanism for accessing and integrating data across <a href="http://en.wikipedia.org/wiki/Deductive_database" id="link-id0x1bc61d88">Deductive Database Systems</a> (colloquially referred to as triple or quad stores in <a class="auto-href" href="http://dbpedia.org/resource/Semantic_Web" id="link-id0x1cc11420">Semantic Web</a> and <a class="auto-href" href="http://dbpedia.org/resource/Linked_Data" id="link-id0x1b2e7780">Linked Data</a> circles) -- database systems (or data spaces) that manage proposition oriented records in 3-tuple (triples) or 4-tuple (quads) form. </p>

<h3>How?</h3>
<p>SPARQL queries are actually HTTP payloads (typically). Thus, using a RESTful client-server interaction pattern, you can dispatch calls to a SPARQL compliant data server and receive a payload for local processing e.g. local object binding re. Ruby. </p>

<h4>Steps:</h4>
<ol>
<li>
From your command line execute: aptitude search &#39;^ruby&#39;, to verify Ruby is in place
</li>
<li>Determine which SPARQL endpoint you want to access e.g. <a href="http://dbpedia.org/sparql" id="link-id0x1d476520">DBpedia</a> or a local <a class="auto-href" href="http://virtuoso.openlinksw.com" id="link-id0x1bcfe140">Virtuoso</a> instance (typically: http://localhost:8890/sparql).
</li>
<li>If using Virtuoso, and you want to populate its quad store using SPARQL, assign &quot;<a href="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri" id="link-id0x1c7630b8">SPARQL_SPONGE</a>&quot; privileges to user &quot;SPARQL&quot; (this is basic control, more sophisticated WebID based ACLs are available for controlling SPARQL access).</li>
</ol>

<h4>Script:</h4>

<pre>
#!/usr/bin/env ruby
#
# Demonstrating use of a single query to populate a # Virtuoso Quad Store. 
#

require &#39;net/http&#39;
require &#39;cgi&#39;
require &#39;csv&#39;

#
# We opt for CSV based output since handling this format is straightforward in Ruby, by default.
# HTTP <a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id0x1acee348">URL</a> is constructed accordingly with CSV as query results format in mind.

def sparqlQuery(query, baseURL, format=&quot;text/csv&quot;)
	params={
		&quot;default-graph&quot; =&gt; &quot;&quot;,
		&quot;should-sponge&quot; =&gt; &quot;soft&quot;,
		&quot;query&quot; =&gt; query,
		&quot;debug&quot; =&gt; &quot;on&quot;,
		&quot;timeout&quot; =&gt; &quot;&quot;,
		&quot;format&quot; =&gt; format,
		&quot;save&quot; =&gt; &quot;display&quot;,
		&quot;fname&quot; =&gt; &quot;&quot;
	}
	querypart=&quot;&quot;
	params.each { |k,v|
		querypart+=&quot;#{k}=#{CGI.escape(v)}&amp;&quot;
	}
  
	sparqlURL=baseURL+&quot;?#{querypart}&quot;
	
	response = Net::HTTP.get_response(<a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id0x1d24dfd8">URI</a>.parse(sparqlURL))

	return CSV::parse(response.body)
	
end

# Setting Data Source Name (DSN)

dsn=&quot;http://dbpedia.org/resource/DBpedia&quot;

#Virtuoso pragmas for instructing SPARQL engine to perform an HTTP GET
#using the IRI in FROM clause as Data Source URL

query=&quot;DEFINE get:soft \&quot;replace\&quot;
SELECT DISTINCT * FROM &lt;#{dsn}&gt; WHERE {?s ?p ?o} &quot;

#Assume use of local installation of Virtuoso 
#otherwise you can change URL to that of a public endpoint
#for example DBpedia: http://dbpedia.org/sparql

data=sparqlQuery(query, &quot;http://localhost:8890/sparql/&quot;)

puts &quot;Got data:&quot;
p data

#
# End
</pre><h4>Output</h4>
<pre>
Got data:
[[&quot;s&quot;, &quot;p&quot;, &quot;o&quot;], 
  [&quot;http://dbpedia.org/resource/DBpedia&quot;, 
   &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&quot;, 
   &quot;http://www.w3.org/2002/07/owl#Thing&quot;], 
  [&quot;http://dbpedia.org/resource/DBpedia&quot;, 
   &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&quot;, 
   &quot;http://dbpedia.org/ontology/Work&quot;], 
  [&quot;http://dbpedia.org/resource/DBpedia&quot;, 
   &quot;http://www.w3.org/1999/02/22-rdf-syntax-ns#type&quot;, 
   &quot;http://dbpedia.org/class/yago/Software106566077&quot;],
...
</pre>
<h3>Conclusion</h3>
<p>
<a href="http://en.wikipedia.org/wiki/Comma-separated_values" id="link-id0x1cac8420">CSV</a> was chosen over XML (re. output format) since this is about a &quot;no-brainer installation and utilization&quot; guide for a Ruby developer that already knows how to use Ruby for HTTP based data access. SPARQL just provides an added bonus to URL dexterity (delivered via URI abstraction) with regards to constructing Data Source Names or Addresses.</p>
<h3>Related</h3>
<ul>
<li>
  <a href="http://www.taxonconcept.org/how-to/ruby-code-examples/how-do-i-use-ruby-to-query-a-sparql-endpoint.html" id="link-id0x1aa83678">SPARQL and Ruby SPARQL Client Library Example</a>
</li> 
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1646" id="link-id0x1c7af188">Simple Guide for using SPARQL with Virtuoso</a> 
</li>
<li>
  <a href="http://www.delicious.com/kidehen/sparql_tutorial" id="link-id0x1ac1ba48">General SPARQL Tutorial Collection</a> </li>
<li>
  <a href="http://www.delicious.com/kidehen/virtuoso_sparql_tutorial" id="link-id0x1c7be660">Virtuoso Specific SPARQL Tutorial Collection</a>
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1567" id="link-id0x1c52b438">The URI, URL, and Linked Data Meme&#39;s Generic HTTP URI</a>.
</li>
</ul>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-16#1647">
  <rss:title>Simple Virtuoso Installation &amp; Utilization Guide for SPARQL Users (Update 5)</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2011-01-16T07:06:21Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">What is SPARQL? A declarative query language from the W3C for querying structured propositional data (in the form of 3-tuple [triples] or 4-tuple [quads] records) stored in a deductive database (colloquially referred to as triple or quad stores in Semantic Web and Linked Data parlance). SPARQL is inherently platform independent. Like SQL, the query language and the backend database engine are distinct. Database clients capture SPARQL queries which are then passed on to compliant backend databases. Why is it important? Like SQL for relational databases, it provides a powerful mechanism for accessing and joining data across one or more data partitions (named graphs identified by IRIs). The aforementioned capability also enables the construction of sophisticated Views, Reports (HTML or those produced in native form by desktop productivity tools), and data streams for other services. Unlike SQL, SPARQL includes result serialization formats and an HTTP based wire protocol. Thus, the ubiquity and sophistication of HTTP is integral to SPARQL i.e., client side applications (user agents) only need to be able to perform an HTTP GET against a URL en route to exploiting the power of SPARQL. How do I use it, generally? Locate a SPARQL endpoint (DBpedia, LOD Cloud Cache, Data.Gov, URIBurner, others), or; Install a SPARQL compliant database server (quad or triple store) on your desktop, workgroup server, data center, or cloud (e.g., Amazon EC2 AMI) Start the database server Execute SPARQL Queries via the SPARQL endpoint. How do I use SPARQL with Virtuoso? What follows is a very simple guide for using SPARQL against your own instance of Virtuoso: Software Download and Installation Data Loading from Data Sources exposed at Network Addresses (e.g. HTTP URLs) using very simple methods Actual SPARQL query execution via SPARQL endpoint. Installation Steps Download Virtuoso Open Source or Virtuoso Commercial Editions Run installer (if using Commercial edition of Windows Open Source Edition, otherwise follow build guide) Follow post-installation guide and verify installation by typing in the command: virtuoso -? (if this fails check you&#39;ve followed installation and setup steps, then verify environment variables have been set) Start the Virtuoso server using the command: virtuoso-start.sh Verify you have a connection to the Virtuoso Server via the command: isql localhost (assuming you&#39;re using default DB settings) or the command: isql localhost:1112 (assuming demo database) or goto your browser and type in: http://&lt;virtuoso-server-host-name&gt;:[port]/conductor (e.g. http://localhost:8889/conductor for default DB or http://localhost:8890/conductor if using Demo DB) Go to SPARQL endpoint which is typically -- http://&lt;virtuoso-server-host-name&gt;:[port]/sparql Run a quick sample query (since the database always has system data in place): select distinct * where {?s ?p ?o} limit 50 . Troubleshooting Ensure environment settings are set and functional -- if using Mac OS X or Windows, so you don&#39;t have to worry about this, just start and stop your Virtuoso server using native OS services applets If using the Open Source Edition, follow the getting started guide -- it covers PATH and startup directory location re. starting and stopping Virtuoso servers. Sponging (HTTP GETs against external Data Sources) within SPARQL queries is disabled by default. You can enable this feature by assigning &quot;SPARQL_SPONGE&quot; privileges to user &quot;SPARQL&quot;. Note, more sophisticated security exists via WebID based ACLs. Data Loading Steps Identify an RDF based structured data source of interest -- a file that contains 3-tuple / triples available at an address on a public or private HTTP based network Determine the Address (URL) of the RDF data source Go to your Virtuoso SPARQL endpoint and type in the following SPARQL query: DEFINE GET:SOFT &quot;replace&quot; SELECT DISTINCT * FROM &lt;RDFDataSourceURL&gt; WHERE {?s ?p ?o} All the triples in the RDF resource (data source accessed via URL) will be loaded into the Virtuoso Quad Store (using RDF Data Source URL as the internal quad store Named Graph IRI) as part of the SPARQL query processing pipeline. Note: the data source URL doesn&#39;t even have to be RDF based -- which is where the Virtuoso Sponger Middleware comes into play (download and install the VAD installer package first) since it delivers the following features to Virtuoso&#39;s SPARQL engine: Transformation of data from non RDF data sources (file content, hypermedia resources, web services output etc..) into RDF based 3-tuples (triples) Cache Invalidation Scheme Construction -- thus, subsequent queries (without the define get:soft &quot;replace&quot; pragma will not be required bar when you forcefully want to override cache). If you have very large data sources like DBpedia etc. from CKAN, simply use our bulk loader . SPARQL Endpoint Discovery Public SPARQL endpoints are emerging at an ever increasing rate. Thus, we&#39;ve setup up a DNS lookup service that provides access to a large number of SPARQL endpoints. Of course, this doesn&#39;t cover all existing endpoints, so if our endpoint is missing please ping me. Here are a collection of commands for using DNS-SD to discover SPARQL endpoints: dns-sd -B _sparql._tcp sparql.openlinksw.com -- browse for services instances dns-sd -Z _sparql._tcp sparql.openlinksw.com -- output results in Zone File format Related Using HTTP from Ruby -- you can just make SPARQL Protocol URLs re. SPARQL Using SPARQL Endpoints via Ruby -- Ruby example using DBpedia endpoint Interactive SPARQL Query By Example (QBE) tool -- provides a graphical user interface (as is common in SQL realm re. query building against RDBMS engines) that works with any SPARQL endpoint Other methods of loading RDF data into Virtuoso Virtuoso Sponger -- architecture and how it turns a wide variety of non RDF data sources into SPARQL accessible data Using OpenLink Data Explorer (ODE) to populate Virtuoso -- locate a resource of interest; click on a bookmarklet or use context menus (if using ODE extensions for Firefox, Safari, or Chrome); and you&#39;ll have SPARQL accessible data automatically inserted into your Virtuoso instance. W3C&#39;s SPARQLing Data Access Ingenuity -- an older generic SPARQL introduction post Collection of SPARQL Query Examples -- GoodRelations (Product Offers), FOAF (Profiles), SIOC (Data Spaces -- Blogs, Wikis, Bookmarks, Feed Collections, Photo Galleries, Briefcase/DropBox, AddressBook, Calendars, Discussion Forums) Collection of Live SPARQL Queries against LOD Cloud Cache -- simple and advanced queries.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h3>What is <a class="auto-href" href="http://dbpedia.org/resource/SPARQL" id="link-id0x1ab60ac0">SPARQL</a>?</h3>
<p>A declarative query language from the W3C for querying structured propositional <a href="http://dbpedia.org/resource/Data">data</a> (in the form of 3-<a href="http://en.wikipedia.org/wiki/Tuple" id="link-id0x1b1e0010">tuple</a> [triples] or 4-tuple [quads] records) stored in a <a href="http://en.wikipedia.org/wiki/Deductive_database" id="link-id0x1cf8af98">deductive database</a> (colloquially referred to as triple or quad stores in <a class="auto-href" href="http://dbpedia.org/resource/Semantic_Web" id="link-id0x1caf5050">Semantic Web</a> and <a class="auto-href" href="http://dbpedia.org/resource/Linked_Data" id="link-id0x19d781b8">Linked Data</a> parlance).</p>
<p>SPARQL is inherently platform independent. Like <a class="auto-href" href="http://dbpedia.org/resource/SQL" id="link-id0x1b879140">SQL</a>, the query language and the backend database engine are distinct. Database clients capture SPARQL queries which are then passed on to compliant backend databases.</p>
<h3>Why is it important?</h3>
<p>Like SQL for relational databases, it provides a powerful mechanism for accessing and joining data across one or more data partitions (named graphs identified by IRIs). The aforementioned capability also enables the construction of sophisticated Views, Reports (HTML or those produced in native form by desktop productivity tools), and data streams for other services.</p>
<p>Unlike SQL, SPARQL includes result serialization formats and an HTTP based wire protocol. Thus, the ubiquity and sophistication of HTTP is integral to SPARQL i.e., client side applications (user agents) only need to be able to perform an HTTP GET against a <a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id0x1ba287e8">URL</a> en route to exploiting the power of SPARQL.</p>
<h3>How do I use it, generally?</h3>
<ol>
<li>Locate a SPARQL endpoint (<a href="http://dbpedia.org/sparql" id="link-id0x1d7436b0">DBpedia</a>, <a href="http://lod.openlinksw.com/sparql" id="link-id0x1bf20690">LOD Cloud Cache</a>, <a href="http://semantic.data.gov" id="link-id0x1a8ebc28">Data.Gov</a>, <a href="http://linkeddata.uriburner.com/sparql" id="link-id0x1be93070">URIBurner</a>, <a href="http://www.delicious.com/kidehen/sparql_endpoint" id="link-id0x1cce9b40">others</a>),  or;</li>
<li>Install a SPARQL compliant database server (quad or triple store) on your desktop, workgroup server, data center, or cloud (e.g., <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtuosoEC2AMI" id="link-id0x1cd697a0">Amazon EC2 AMI</a>)</li>
<li>Start the database server</li>
<li>Execute SPARQL Queries via the <a href="http://lod.openlinksw.com/sparql" id="link-id0x1b99d790">SPARQL endpoint.</a>
</li>
</ol>
<h3>How do I use SPARQL with <a class="auto-href" href="http://virtuoso.openlinksw.com" id="link-id0x1c9adc80">Virtuoso</a>?</h3>
<p>What follows is a very simple guide for using SPARQL against your own instance of Virtuoso:</p>
<ol>
<li>Software Download and Installation</li>
<li>Data Loading from Data Sources exposed at Network Addresses (e.g. HTTP URLs) using very simple methods</li>
<li>Actual SPARQL query execution via SPARQL endpoint.</li>
</ol>
<h3>Installation Steps</h3>
<ol>
<li>
Download <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSDownload" id="link-id0x1b795100">Virtuoso Open Source</a> or <a href="http://download.openlinksw.com/virtwiz/virtuoso.php" id="link-id0x1cce46f0">Virtuoso Commercial</a> Editions
</li>
<li>
Run installer (if using Commercial edition of Windows Open Source Edition, otherwise follow build guide) 
</li>
<li>
Follow post-installation guide and verify installation by typing in the command: virtuoso -? (if this fails check you&#39;ve followed installation and setup steps, then verify environment variables have been set)
</li>
<li>
Start the Virtuoso server using the command: virtuoso-start.sh
</li>
<li> 
Verify you have a connection to the Virtuoso Server via the command: isql localhost (assuming you&#39;re using default DB settings) or the command: isql localhost:1112 (assuming demo database) or goto your browser and type in: http://&lt;virtuoso-server-host-name&gt;:[port]/conductor (e.g. http://localhost:8889/conductor for default DB or http://localhost:8890/conductor if using Demo DB)
</li>
<li>
Go to SPARQL endpoint which is typically -- http://&lt;virtuoso-server-host-name&gt;:[port]/sparql
</li>
<li>
Run a quick sample query (since the database always has system data in place): select distinct * where {?s ?p ?o} limit 50 .</li>
</ol>
<h3>Troubleshooting</h3>
<ol>
<li>Ensure environment settings are set and functional -- if using Mac OS X or Windows, so you don&#39;t have to worry about this, just start and stop your Virtuoso server using native OS services applets</li>
<li>If using the Open Source Edition, follow the <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSMake#Getting%20Started" id="link-id0x1bfa7548">getting started guide</a> -- it covers PATH and startup directory location re. starting and stopping Virtuoso servers.</li>
<li>Sponging (HTTP GETs against external Data Sources) within SPARQL queries is disabled by default. You can enable this feature by assigning &quot;<a href="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri" id="link-id0x1d566270">SPARQL_SPONGE</a>&quot; privileges to user &quot;SPARQL&quot;. Note, more sophisticated security exists via <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAuthPolicyFOAFSSL" id="link-id0x1a3c9eb8">WebID based ACLs</a>.
</li>
</ol>

<h3>Data Loading Steps</h3>
<ol>
<li>
Identify an RDF based structured data source of interest -- a file that contains 3-tuple / triples available at an address on a public or private HTTP based network
</li>
<li>Determine the Address (URL) of the RDF data source</li>
<li>Go to your Virtuoso SPARQL endpoint and type in the following SPARQL query: DEFINE GET:SOFT &quot;replace&quot; SELECT DISTINCT * FROM &lt;RDFDataSourceURL&gt; WHERE {?s ?p ?o}
</li>
<li>
All the triples in the RDF resource (data source accessed via URL) will be loaded into the Virtuoso Quad Store (using RDF Data Source URL as the internal quad store Named Graph IRI) as part of the SPARQL query processing pipeline.
</li>
</ol>
<p>
Note: the data source URL doesn&#39;t even have to be RDF based -- which is where the Virtuoso <a class="auto-href" href="http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html" id="link-id0x1d1a0978">Sponger</a> Middleware comes into play (download and install the <a href="http://s3.amazonaws.com/opldownload/uda/vad-packages/6.1/virtuoso/rdf_mappers_dav.vad" id="link-id0x1d0e1530">VAD installer package</a> first) since it delivers the following features to Virtuoso&#39;s SPARQL engine:
</p>
<ol>
<li>
Transformation of data from non RDF data sources (file content, hypermedia resources, <a href="http://dbpedia.org/resource/World_Wide_Web">web</a> services output etc..) into RDF based 3-tuples (triples)</li>
<li>
Cache Invalidation Scheme Construction -- thus, subsequent queries (without the define get:soft &quot;replace&quot; pragma will not be required bar when you forcefully want to override cache).</li>
<li>
If you have very large data sources like DBpedia etc. from CKAN, simply use our <a href="http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtBulkRDFLoader" id="link-id0x1d19b4b0">bulk loader</a> .
</li>
</ol>
<h3>SPARQL Endpoint Discovery</h3>
<p>Public SPARQL endpoints are emerging at an ever increasing rate. Thus, we&#39;ve setup up a DNS lookup service that provides access to a large number of SPARQL endpoints. Of course, this doesn&#39;t cover all existing endpoints, so if our endpoint is missing please ping <a class="auto-href" href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id0x1d634848">me</a>.</p>
<p>Here are a collection of commands for using DNS-SD to discover SPARQL endpoints:</p>
<ol>
<li>dns-sd -B _sparql._tcp sparql.openlinksw.com -- browse for services instances</li>
<li>dns-sd -Z _sparql._tcp sparql.openlinksw.com -- output results in Zone File format</li>
<li></li>
</ol>

<h3>Related</h3>
<ol>
<li>
  <a href="http://www.ensta.fr/~diam/ruby/online/ruby-doc-stdlib/libdoc/net/http/rdoc/index.html" id="link-id0x1b156610">Using HTTP from Ruby</a> -- you can just make <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSSparqlProtocol" id="link-id0x1d024d60">SPARQL Protocol URLs</a> re. SPARQL</li>
<li>
  <a href="http://sparql.rubyforge.org/client/" id="link-id0x1cd43a48">Using SPARQL Endpoints via Ruby</a> -- Ruby example using DBpedia endpoint</li>
<li>
  <a href="http://wikis.openlinksw.com/dataspace/owiki/wiki/OATWikiWeb/InteractiveSparqlQueryBuilder" id="link-id0x1b9d2190">Interactive SPARQL Query By Example (QBE) tool</a> -- provides a graphical user interface (as is common in SQL realm re. query building against <a class="auto-href" href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id0x1bfffb70">RDBMS</a> engines) that works with any SPARQL endpoint
</li>
<li>
<a href="http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtRDFInsert" id="link-id0x1ab63de0">Other methods of loading RDF data into Virtuoso</a>
</li>
<li>
<a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSponger" id="link-id0x1ca248e0">Virtuoso Sponger</a> -- architecture and how it turns a wide variety of non RDF data sources into SPARQL accessible data
</li>
<li>
<a href="http://ode.openlinksw.com/example.html" id="link-id0x1be34758">Using OpenLink Data Explorer</a> (ODE) to populate Virtuoso -- locate a resource of interest; click on a bookmarklet or use <a class="auto-href" href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id0x1ca84af0">context</a> menus (if using ODE extensions for Firefox, Safari, or Chrome); and you&#39;ll have SPARQL accessible data automatically inserted into your Virtuoso instance.
</li>
<li>
  <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1295" id="link-id0x1c9060f0">W3C&#39;s SPARQLing Data Access Ingenuity</a> -- an older generic SPARQL introduction post
</li>
<li>
<a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSPARQLRef" id="link-id0x1cf1e298">Collection of SPARQL Query Examples </a>-- GoodRelations (Product Offers), <a class="auto-href" href="http://dbpedia.org/resource/Friend_of_a_friend" id="link-id0x1c0445d0">FOAF</a> (Profiles), <a class="auto-href" href="http://dbpedia.org/resource/SIOC" id="link-id0x1b785e48">SIOC</a> (Data Spaces -- <a href="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleBlog" id="link-id0x1b6c9f78">Blogs</a>, <a href="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleWiki" id="link-id0x1c188280">Wikis</a>, <a href="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleBookmarks" id="link-id0x1a9a8f98">Bookmarks</a>, <a href="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleFeeds" id="link-id0x1720c658">Feed Collections</a>, <a href="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleGallery" id="link-id0x1cdba348">Photo Galleries</a>, <a href="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleBriefcase" id="link-id0x1c8f1148">Briefcase/DropBox</a>, <a href="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleAddressbook" id="link-id0x1b5eb7e0">AddressBook</a>, <a href="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleCalendar" id="link-id0x1c575120">Calendars</a>, <a href="http://ods.openlinksw.com/dataspace/dav/wiki/ODS/ODSAtomOWLRefExampleDiscussions" id="link-id0x1c73be98">Discussion Forums</a>)
</li>
<li>
<a href="http://lod.openlinksw.com/demo_queries/" id="link-id0x1b08aa00">Collection of Live SPARQL Queries against LOD Cloud Cache</a> -- simple and advanced queries.
</li>
</ol>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-10-01#1447">
  <rss:title>Where Are All the RDF-based Semantic Web Applications?</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2008-10-01T23:09:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">In response to the &quot;Semantic Web Technology&quot; application classification scheme espoused by ReadWriteWeb (RWW), emphasized in the post titled: Where are all the RDF-based Semantic Web Apps?, here is my attempt to clarify and reintroduce what OpenLink Software offers (today) in relation to Semantic Web technology. From the RWW Top-Down category, which I interpret as: technologies that produce RDF from non RDF data sources. Our product portfolio is comprised of the following; Virtuoso Universal Server, OpenLink Data Spaces, OpenLink Ajax Toolkit, and OpenLink Data Explorer (which includes ubiquity commands). Virtuoso Universal Server functionality summary: Generation of RDF Linked Data Views of SQL, XML, and Web Services in general Deployment of RDF Linked Data &quot;On the Fly&quot; generation of RDF Linked Data from Document Web information resources (i.e. distillation of entities from their containers e.g. Web pages) via Cartridges / Drivers SPARQL query language support SPARQL extensions that bring SPARQL closer to SQL e.g Aggregates, Update, Insert, Delete Named Graph support (i.e. use of logical names to partition RDF data within Virtuoso&#39;s multi-model dbms engine) Inference Engine (currently in use re. DBpedia via Yago and UMBEL) Host and exposes data from Drupal, Wordpress, MediaWiki, phpBB3 as RDF Linked Data via in-built support for PHP runtime Available as an EC2 AMI etc.. OpenLink Data Spaces functionality summary: Simple mechanism for Linked Data Web enabling yourself by giving you an HTTP based User ID (a de-referencable URI) that is linked to a FOAF based Profile page and OpenID Binds all your data sources (blogs, wikis, bookmarks, photos, calendar items etc. ) to your URI so can &quot;Find&quot; things by only remembering your URI Makes your profile page and personal URI the focal point of Linked Data Web presence Delivers Data Portability (using data access by value or data access by reference) across data silos (e.g. Web 2.0 style social networks) Allows you make annotations about anything in your own Data Space(s) on the Web without exposure to RDF markup A Briefcase feature that provides a WebDAV driven RDF Linked Data variant of functionality seen in Mac OS X Spotlight and WinFS with the addition of SPARQL compliance Automatically generates RDFa in its (X)HTML pages Blog, Wiki, WebDAV File Server, Shared Bookmarks, Calendar, and other applications that look and feel like Web 2.0 counterparts but emitt RDF Linked Data amongst a plethora of data exchange formats Available as an EC2 AMI etc.. OpenLink Ajax Toolkit functionality summary: Provides binding to SQL, RDF, XML, and Web Services via Ajax Database Connectivity Layer (you only need an ODBC, JDBC, OLE-DB, ADO.NET, XMLA Driver, or Web Service on the backend for dynamic data access from Javascript) All controls are Ajax Database Connectivity bound (widgets get their data from Ajax Database Connectivity data sources) Bundled with Virtuoso and ODS installations. etc. OpenLink Data Explorer functionality summary Distills entities associated with information resource style containers (e.g. Web Pages or files) as RDF Linked Data Exposes the RDF based Linked Data graph associated with information resources (see the Linked Data behind Web pages) Ubiquity commands for invoking the above Available as a Hosted Service or Firefox Extension Bundled with Virtuoso and ODS installations etc. Note: Of course you could have simply looked up OpenLink Software&#39;s FOAF based Profile page (*note the Linked Data Explorer tab*), or simply passed the FOAF profile page URL to a Linked Data aware client application such as: OpenLink Data Explorer, Zitgist Data Viewer, Marbles, and Tabulator, and obtained information. Remember, OpenLink Software is an Entity of Type: foaf:Organization, on the burgeoning Linked Data Web :-) Related Linked Data Planet Keynote (RDFa based remix edition) On The Cusp: A Global Review of the Semantic Web Industry.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>
In response to the &quot;<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id15971040">Semantic Web</a> Technology&quot; application classification scheme espoused by <a href="http://www.readwriteweb.com" id="link-id16391540">ReadWriteWeb</a> (RWW), emphasized in the post titled:  <a href="http://www.readwriteweb.com/archives/rdf_semantic_web_apps.php" id="link-id1157eaa0">Where are all the RDF-based Semantic Web Apps?</a>, here is my attempt to clarify and reintroduce what <a href="http://www.openlinksw.com/dataspace/organization/openlink#this" id="link-id15a43758">OpenLink Software</a> offers (today) in relation to Semantic Web technology.
</p>
<p>
From the RWW Top-Down category, which I interpret as: technologies that produce RDF from non RDF <a href="http://dbpedia.org/resource/Data">data</a> sources. Our product portfolio is comprised of the following; <a href="http://virtuoso.openlinksw.com" id="link-id14f05818">Virtuoso Universal Server</a>, <a href="http://dbpedia.org/resource/OpenLink_Data_Spaces" id="link-id162c8630">OpenLink Data Spaces</a>, <a href="http://oat.openlinksw.com" id="link-id134e1a00">OpenLink Ajax Toolkit</a>, and <a href="http://ode.openlinksw.com" id="link-id160b3bf8">OpenLink Data Explorer</a> (which includes ubiquity commands).</p>

<h3>Virtuoso Universal Server functionality summary:</h3>

<ol>
  <li>Generation of RDF <a href="http://dbpedia.org/resource/Linked_Data" id="link-id161d5f50">Linked Data</a> Views of <a href="http://dbpedia.org/resource/SQL" id="link-id161d5978">SQL</a>, XML, and <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> Services in general </li>
  <li>Deployment of RDF Linked Data </li>
  <li>&quot;On the Fly&quot; generation of RDF Linked Data from Document Web <a href="http://www.w3.org/TR/webarch/" id="link-id178bbc08">information resources</a> (i.e. distillation of entities from their containers e.g. Web pages) via Cartridges / Drivers</li>
  <li>
  <a href="http://dbpedia.org/resource/SPARQL" id="link-id162c2118">SPARQL</a> query language support </li>
  <li>SPARQL extensions that bring SPARQL closer to SQL e.g Aggregates, Update, Insert, Delete
    Named Graph support (i.e. use of logical names to partition RDF data within Virtuoso&#39;s multi-model dbms engine)    </li>
  <li>Inference Engine (currently in use re. <a href="http://dbpedia.org/resource/DBpedia" id="link-id14f563c0">DBpedia</a> via Yago and <a href="http://umbel.org/about/" id="link-id113273b8">UMBEL</a>)</li>
  <li>Host and exposes data from <a href="http://dbpedia.org/resource/Drupal" id="link-id123d3bd8">Drupal</a>, <a href="http://dbpedia.org/resource/WordPress" id="link-id141adf40">Wordpress</a>, <a href="http://dbpedia.org/resource/MediaWiki" id="link-id1604b450">MediaWiki</a>, <a href="http://dbpedia.org/resource/PhpBB" id="link-id141013a8">phpBB3</a> as RDF Linked Data via in-built support for <a href="http://dbpedia.org/resource/PHP" id="link-id14661e58">PHP</a> runtime</li>
  <li>
  <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/ODSInstallationEC2" id="link-id146c84d0">Available as an EC2 AMI</a>
</li>
  <li>etc..</li>
</ol>
<h3>OpenLink Data Spaces functionality summary:</h3>
<ol>
  <li>Simple mechanism for Linked Data <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id15473770">Web</a> enabling yourself by giving you an <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/GetAPersonalURIIn5MinutesOrLess" id="link-id15f6d278">HTTP based User ID</a> (a de-referencable <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id15aaeb68">URI</a>) that is linked to a <a href="http://myopenlink.net/dataspace/person/kidehen" id="link-id15a7a840">FOAF based Profile page</a> and OpenID</li>
  <li>Binds all your data sources (blogs, wikis, bookmarks, photos, calendar items etc. ) to your URI so can &quot;Find&quot; things by only remembering your URI</li>
  <li>Makes your profile page and personal URI the focal point of Linked Data Web presence</li>
  <li>Delivers Data Portability (using data access by value or <a href="http://dbpedia.org/resource/Reference_(computer_science)" id="link-id16212838">data access by reference</a>) across data silos (e.g. Web 2.0 style social networks)</li>
  <li>Allows you make annotations about anything in your own <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id14668010">Data Space</a>(s) on the Web without exposure to RDF markup</li>
  <li>A Briefcase feature that provides a WebDAV driven RDF Linked Data variant of functionality seen in Mac OS X Spotlight and WinFS with the addition of SPARQL compliance</li>
  <li>Automatically generates <a href="http://dbpedia.org/resource/RDFa" id="link-id14691440">RDFa</a> in its (X)HTML pages</li>
  <li>
  <a href="http://dbpedia.org/resource/Blog" id="link-id14fae7b8">Blog</a>, Wiki, WebDAV File Server, Shared Bookmarks, Calendar, and other applications that look and feel like Web 2.0 counterparts but emitt RDF Linked Data amongst a plethora of data exchange formats</li>
  <li>Available as an EC2 AMI</li>
  <li>etc..</li>
</ol>
<h3>OpenLink Ajax Toolkit functionality summary:</h3>
<ol>
  <li>Provides binding to SQL, RDF, XML, and Web Services via Ajax Database Connectivity Layer (you only need an <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id11550548">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id13ae5f68">JDBC</a>, OLE-DB, <a href="http://dbpedia.org/resource/ADO.NET" id="link-id162803e8">ADO</a>.NET,  XMLA Driver, or Web Service on the backend for dynamic data access from Javascript)</li>
  <li>All controls are Ajax Database Connectivity bound (widgets get their data from Ajax Database Connectivity data sources)</li>
  <li>Bundled with Virtuoso and <a href="http://dbpedia.org/resource/OpenLink_Data_Spaces" id="link-id161dfe90">ODS</a> installations.</li>
  <li>etc.</li>
</ol>
<h3>OpenLink Data Explorer functionality summary</h3>
<ol>
  <li>Distills entities associated with information resource style containers (e.g. Web Pages or files) as RDF Linked Data</li>
  <li>Exposes the RDF based <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id12a42ed8">Linked Data graph</a> associated with information resources (see the Linked Data behind Web pages)</li>
  <li>Ubiquity commands for invoking the above</li>
  <li>Available as a <a href="http://linkeddata.uriburner.com/ode" id="link-id15a0d2b0">Hosted Service</a> or <a href="http://ode.openlinksw.com" id="link-id138b9fa8">Firefox Extension</a>
</li>
  <li>Bundled with Virtuoso and ODS installations</li>
  <li>etc.</li>
</ol>
<h3>Note:</h3>
<p>Of course you could have simply looked up <a href="http://www.openlinksw.com/dataspace/organization/openlink" id="link-id14ef2c10">OpenLink Software&#39;s FOAF based Profile page</a> (*note the Linked Data Explorer tab*), or simply passed the <a href="http://dbpedia.org/resource/Friend_of_a_friend" id="link-id14cbf5c8">FOAF</a> profile page <a href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id16453e28">URL</a> to a Linked Data aware client application such as: <a href="http://linkeddata.uriburner.com/ode" id="link-id15a80500">OpenLink Data Explorer</a>, <a href="http://zitgist.com/about/" id="link-id1586a360">Zitgist</a> <a href="http://dataviewer.zitgist.com" id="link-id16249f60">Data Viewer</a>, <a href="http://beckr.org/marbles" id="link-id15993fb0">Marbles</a>, and <a href="http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab.html" id="link-id14d63048">Tabulator</a>, and obtained information. Remember, <a href="http://www.openlinksw.com/dataspace/organization/openlink#this" id="link-id138ba838">OpenLink Software</a> is an <a href="http://dbpedia.org/resource/Entity" id="link-id1173e120">Entity</a> of Type: <a href="http://xmlns.com/foaf/0.1/Organization" id="link-id138b87b8">foaf:Organization</a>, on the burgeoning Linked Data Web :-)</p>

<h3>Related</h3>
<ul>
<li>
  <a href="http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/Creating_Deploying_Exploiting_Linked_Data2_TimBL_v3.html" id="link-id163a0c88">Linked Data Planet Keynote</a> (RDFa based remix edition)</li>
<li>
  <a href="http://semanticbusiness.blogspot.com/2008/09/report-on-cusp-global-review-of.html" id="link-id11471a40">On The Cusp: A Global Review of the Semantic Web Industry.</a>
</li>
</ul>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-08-15#1413">
  <rss:title>Response to: Whole Data Post (Update 3)</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2008-08-15T13:06:12Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">This post is in response to Glenn McDonald&#39;s post titled: Whole Data, where he highlights a number of issues relating to &quot;Semantic Web&quot; marketing communications and overall messaging, from his perspective. By coincidence, Glenn and I presented at this month&#39;s Cambridge Semantic Web Gathering. I&#39;ve provided a dump of Glenn&#39;s issues and my responses below: Issue - RDF Ingenious data decomposition idea, but: too low-level; the assembly language of data, where we need Java or Ruby &quot;resource&quot; is not the issue; there&#39;s no such thing as &quot;metadata&quot;, it&#39;s all data; &quot;meta&quot; is a perspective lists need to be effortless, not painful and obscure nodes need to be represented, not just implied; they need types and literals in a more pervasive, integrated way. Response: RDF is a Graph based Data Model it stands for Resource Description Framework. The Metadata data angle comes from it&#39;s Meta Content Framework (MCF) origins. You can express and serialize data based on the RDF Data Model using: Turtle, N3, TriX, N-Triples, and RDF/XML. Issue - SPARQL (and Freebase&#39;s MQL) These are just appeasement: - old query paradigm: fishing in dark water with superstitiously tied lures; only works well in carefully stocked lakes - we don&#39;t ask questions by defining answer shapes and then hoping they&#39;re dredged up whole. Response: SPARQL, MQL, and Entity-SQL are Graph Model oriented Query Languages. Query Languages always accompany Database Engines. SQL is the Relational Model equivalent. Issue - Linked Data Noble attempt to ground the abstract, but: - URI dereferencing/namespace/open-world issues focus too much technical attention on cross-source cases where the human issues dwarf the technical ones anyway - FOAF query over the people in this room? forget it. - link asymmetry doesn&#39;t scale - identity doesn&#39;t scale - generating RDF from non-graph sources: more appeasement, right where the win from actually converting could be biggest! Response: Innovative use of HTTP to deliver &quot;Data Access by Reference&quot; to the Linked Data Web. When you have a Data Model, Database Engine, and Query Language, the next thing you need is a Data Access mechanism that provides &quot;Data Access by Reference&quot;. ODBC and JDBC (amongst others) provide &quot;Data Access by Reference&quot; via Data Source Names. Linked Data is about the same thing (URIs are Data Source Names) with the following differences: Naming is scoped to the entity level rather than container level HTTP&#39;s use within the data source naming scheme expands the referencability of the Named Entity Descriptions beyond traditional confines such as applications, operating systems, and database engines. Issue - Giant Global Graph Hugely motivating and powerful idea, worthy of a superhero (Graphius!), but: - giant and global parts are too hard, and starting global makes every problem harder - local projects become unmanageable in global context (Cyc, Freebase data-modeling lists...). And my thus my plea, again. Forget &quot;semantic&quot; and &quot;web&quot;, let&#39;s fix the database tech first: - node/arc data-model, path-based exploratory query-model - data-graph applications built easily on top of this common model; building them has to be easy, because if it&#39;s hard, they&#39;ll be bad - given good database tech, good web data-publishing tech will be trivial! - given good tools for graphs, the problems of uniting them will be only as hard as they have to be. Response: Giant Global Graph is just another moniker for a &quot;Web of Linked Data&quot; or &quot;Linked Data Web&quot;. Multi-Model Database technology that meshes the best of the Graph &amp; Relational Models exist. In a nutshell, this is what Virtuoso is all about and it&#39;s existed for a very long time :-) Virtuoso is also a Virtual DBMS engine (so you can see Heterogeneous Relational Data via Graph Model Context Lenses). Naturally, it is also a Linked Data Deployment platform (or Linked Data Sever). The issue isn&#39;t the &quot;Semantic Web&quot; moniker per se., it&#39;s about how Linked Data (foundation layer of Semantic Web) gets introduced to users. As I said during the MIT Gathering: &quot;The Web is experienced via Web Browsers primarily, so any enhancement to the Web must be exposed via traditional Web Browsers&quot;, which is why we&#39;ve opted to simply add &quot;View Linked Data Sources&quot; to the existing set of common Browser options that includes: View page in rendered form (default) View page source (i.e., how you see the markup behind the page) By exposing the Linked Data Web option as described above, you enable the Web user to knowingly transition from the traditional Rendered (X)HTML page view to the Linked Data View (i.e., structured data behind the page). This simple &quot;User Interaction&quot; tweak makes the notion of exploiting a Structured Web becomes somewhat clearer. The Linked Data Web isn&#39;t a panacea. It&#39;s just an addition to the existing Web that enrichens the things you can do with the Web. It&#39;s predominance, like any application feature, will be subject to the degrees to which it delivers tangible value or matrializes internal and external opportunity costs. Note: The Web isn&#39;t ubiquitous today becuase all it&#39;s users groked HTML Markup. It&#39;s ubquitity is a function of opportunity costs: there simply came a point in the Web boostrap when nobody could afford the opportunity costs associated with being off the Web. The same thing will play out with Linked Data and the broader Semantic Web vision. Links: Linked Data Journey part of my Linked Data Planet Presentation Remix(from slides 15 to 22 - which include bits from TimBL&#39;s presentation) OpenLink Data Explorer OpenLink Data Explorer Screenshots and examples.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>This post is in response to <a href="http://www.furia.com" id="link-id107907b8">Glenn McDonald</a>&#39;s post titled: <a href="http://www.furia.com/page.cgi?type=log&id=308" id="link-id13dcf2d0">Whole Data</a>, where he highlights a number of issues relating to &quot;<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id1016c1f0">Semantic Web</a>&quot; marketing communications and overall messaging, from his perspective.</p>
<p>
By coincidence, Glenn and I presented at this month&#39;s Cambridge <a href="http://dbpedia.org/resource/Semantic_Web" id="link-idd526f48">Semantic Web</a> Gathering.</p> 

<p>I&#39;ve provided a dump of Glenn&#39;s issues and my responses below:</p>

<h3>Issue - RDF</h3>

<ul>
<li>Ingenious <a href="http://dbpedia.org/resource/Data">data</a> decomposition idea, but: </li>
<li>too low-level; the assembly language of data, where we need Java or <a href="http://dbpedia.org/resource/Ruby_programming_language" id="link-id103f3dd0">Ruby</a> </li>
<li>&quot;resource&quot; is not the issue; there&#39;s no such thing as &quot;metadata&quot;, it&#39;s all data; &quot;meta&quot; is a perspective </li>
<li>lists need to be effortless, not painful and obscure </li>
<li>nodes need to be represented, not just implied; they need types and literals in a more pervasive, integrated way.  </li>
</ul>

<h4>Response:</h4>
<p>RDF is a Graph based Data Model it stands for Resource Description Framework. The Metadata data angle comes from it&#39;s <a href="http://dbpedia.org/resource/Meta_Content_Framework" id="link-id1690df60">Meta Content Framework (MCF)</a> origins. You can express and serialize data based on the RDF Data Model using: Turtle, N3, TriX, N-Triples, and RDF/XML.</p>

<h3>Issue - <a href="http://dbpedia.org/resource/SPARQL" id="link-id10234b38">SPARQL</a> (and Freebase&#39;s MQL)</h3>
<p>These are just appeasement: <br />- old query paradigm: fishing in dark water with superstitiously tied lures; only works well in carefully stocked lakes <br />- we don&#39;t ask questions by defining answer shapes and then hoping they&#39;re dredged up whole.</p>

<h4>Response:</h4>
<p>
<a href="http://dbpedia.org/resource/SPARQL" id="link-id16e45e50">SPARQL</a>, <a href="http://www.freebase.com/view/freebase/api" id="link-id13e7d468">MQL</a>, and <a href="http://msdn.microsoft.com/en-us/library/bb387145.aspx" id="link-id1516fbd8">Entity-SQL</a> are Graph Model oriented Query Languages. Query Languages always accompany Database Engines. <a href="http://dbpedia.org/resource/SQL" id="link-id13f8c100">SQL</a> is the Relational Model equivalent. </p>

<h3>Issue - <a href="http://dbpedia.org/resource/Linked_Data" id="link-id171dee68">Linked Data</a>
</h3>
<p>Noble attempt to ground the abstract, but: <br />- <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id1576d5f8">URI</a> dereferencing/namespace/<a href="http://dbpedia.org/resource/Open_world_assumption" id="link-id15f50180">open-world</a> issues focus too much technical attention on cross-source cases where the human issues dwarf the technical ones anyway <br />- <a href="http://dbpedia.org/resource/Friend_of_a_friend" id="link-id105df458">FOAF</a> query over the people in this room? forget it. <br />- link asymmetry doesn&#39;t scale <br />- identity doesn&#39;t scale <br />- generating RDF from non-graph sources: more appeasement, right where the win from actually converting could be biggest! </p>

<h4>Response:</h4>
<p>Innovative use of HTTP to deliver &quot;<a href="http://dbpedia.org/resource/Reference_%28computer_science%29" id="link-id13eeab20">Data Access by Reference</a>&quot; to the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id13492610">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id105dfc10">Web</a>.</p>
<p>When you have a Data Model, Database Engine, and Query Language, the next thing you need is a Data Access mechanism that provides &quot;<a href="http://dbpedia.org/resource/Reference_(computer_science)" id="link-id100ef2c0">Data Access by Reference</a>&quot;. <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id16692e88">ODBC</a> and <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id1699b970">JDBC</a> (amongst others) provide &quot;<a href="http://dbpedia.org/resource/Reference_(computer_science)" id="link-id16034b48">Data Access by Reference</a>&quot; via Data Source Names. <a href="http://dbpedia.org/resource/Linked_Data" id="link-id16690118">Linked Data</a> is about the same thing (URIs are Data Source Names) with the following differences:</p>
<ul>
<li>Naming is scoped to the <a href="http://dbpedia.org/resource/Entity" id="link-id1195dc48">entity</a> level rather than container level</li>
<li>HTTP&#39;s use within the data source naming scheme expands the referencability of the Named <a href="http://dbpedia.org/resource/Entity" id="link-id10485760">Entity</a> Descriptions beyond traditional confines such as applications, operating systems, and database engines.  </li>
</ul>

<h3>
Issue - <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id104684d0">Giant Global Graph</a>
</h3>

<p>Hugely motivating and powerful idea, worthy of a superhero (Graphius!), but: <br />- giant and global parts are too hard, and starting global makes every problem harder <br />- local projects become unmanageable in global <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id12497088">context</a> (Cyc, Freebase data-modeling lists...).

And my thus my plea, again. Forget &quot;semantic&quot; and &quot;<a href="http://dbpedia.org/resource/World_Wide_Web">web</a>&quot;, let&#39;s fix the database tech first: <br />- node/arc data-model, path-based exploratory query-model <br />- data-graph applications built easily on top of this common model; building them has to be easy, because if it&#39;s hard, they&#39;ll be bad <br />- given good database tech, good web data-publishing tech will be trivial! <br />- given good tools for graphs, the problems of uniting them will be only as hard as they have to be.</p>

<h4>Response:</h4>
<p>
<a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id144466d8">Giant Global Graph</a> is just another moniker for a &quot;Web of <a href="http://dbpedia.org/resource/Linked_Data" id="link-id15c2c738">Linked Data</a>&quot; or &quot;<a href="http://dbpedia.org/resource/Linked_Data" id="link-id14e73520">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id10aef200">Web</a>&quot;.</p>

<p>Multi-Model Database technology that meshes the best of the Graph &amp; Relational Models exist. In a nutshell, this is what <a href="http://virtuoso.openlinksw.com" id="link-id13492e10">Virtuoso</a> is all about and it&#39;s existed for a very long time :-)</p>

<p>
<a href="http://virtuoso.openlinksw.com" id="link-id105a4f58">Virtuoso</a> is also a Virtual DBMS engine (so you can see Heterogeneous Relational Data via Graph Model <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id15845110">Context</a> Lenses). Naturally, it is also a <a href="http://dbpedia.org/resource/Linked_Data" id="link-id109e2c78">Linked Data</a> Deployment platform (or <a href="http://dbpedia.org/resource/Linked_Data" id="link-id1086d650">Linked Data</a> Sever). </p>
<p>The issue isn&#39;t the &quot;<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id107f1ba8">Semantic Web</a>&quot; moniker per se., it&#39;s about how <a href="http://dbpedia.org/resource/Linked_Data" id="link-id0xba72818">Linked Data</a> (foundation layer of <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id101dbf50">Semantic Web</a>) gets introduced to users. As I said during the MIT Gathering: &quot;The Web is experienced via Web Browsers primarily, so any enhancement to the Web must be exposed via traditional Web Browsers&quot;, which is why we&#39;ve opted to simply add &quot;View <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a> Sources&quot; to the existing set of common Browser options that includes:</p>
<ol>
<li>View page in rendered form (default)</li>
<li>View page source (i.e., how you see the markup behind the page)</li>
</ol>

<p>By exposing the Linked Data <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id15a04b70">Web</a> option as described above, you enable the Web user to knowingly transition from the traditional Rendered (X)HTML page view to the Linked Data View (i.e., structured data behind the page). This simple &quot;User Interaction&quot; tweak makes the notion of exploiting a Structured Web becomes somewhat clearer.</p>

<p>The Linked Data <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id10a187d0">Web</a> isn&#39;t a panacea. It&#39;s just an addition to the existing Web that enrichens the things you can do with the Web. It&#39;s predominance, like any application feature, will be subject to the degrees to which it delivers tangible value or matrializes internal and external opportunity costs.</p>
<p>Note: The Web isn&#39;t ubiquitous today becuase all it&#39;s users groked HTML Markup. It&#39;s ubquitity is a function of opportunity costs: there simply came a point in the Web boostrap when nobody could afford the opportunity costs associated with being off the Web.  The same thing will play out with Linked Data and the broader <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id10a97330">Semantic Web</a> vision.</p>

<b>Links:</b>

<ol>
<li>
  <a href="http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/Creating_Deploying_Exploiting_Linked_Data2_TimBL_v3.html(15)" id="link-id137fc560">Linked Data Journey part of my Linked Data Planet Presentation Remix</a>(from slides 15 to 22 - which include bits from <a href="http://www.w3.org/People/Berners-Lee/card#i" id="link-id1048a968">TimBL</a>&#39;s presentation)</li>
<li>
  <a href="http://ode.openlinksw.com" id="link-id1667df98">OpenLink Data Explorer</a>
</li>
<li>
  <a href="http://ode.openlinksw.com/example.html" id="link-id137ee860">OpenLink Data Explorer Screenshots and examples</a>.</li>
</ol>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-08-03#1406">
  <rss:title>Virtuoso&#39;s Universal Server Architecture (Conceptual &amp; Technical)</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2008-08-03T13:07:12Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">As they say, a picture speaks a thousand words, so I am exposing two views of Virtuoso that have been on the Web for while. Remember, Virtuoso offers data management, data access, web application server, enterprise service bus, and virtualization of disparate and heterogeneous data sources, as part of a single, multi threaded, cross-platform server solution; hence it&#39;s description as a &quot;Universal Server&quot;. Conceptual View: Technical View (kinda missing PHP, Perl, Python runtime hosting in the Virtual Application Sever realm): Virtuoso&#39;s architecture is not a reaction to current trends. The diagrams above are pretty old (with minor touch ups in recent times). At OpenLink Software, we&#39;ve have a consistent world-view re. standards and the vital role they play when it comes to developing software that enables the construction and exploitation of &quot;Context Lenses&quot; that tap into a substrate of Virtualized Logical Data Sources (SQL, XML, RDF, Web Services, Full Text etc.).</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[As they say, a picture speaks a thousand words, so I am exposing two views of <a href="http://virtuoso.openlinksw.com" id="link-id13fe7df8">Virtuoso</a> that have been on the <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> for while. <br />
<br />Remember, <a href="http://virtuoso.openlinksw.com" id="link-id13f53ed0">Virtuoso</a> offers <a href="http://dbpedia.org/resource/Data">data</a> management, data access, web <a href="http://dbpedia.org/resource/Application_server" id="link-id109f04b0">application server</a>, enterprise service bus, and virtualization of disparate and heterogeneous data sources, as part of a single, multi threaded, cross-platform server solution; hence it&#39;s description as a &quot;<a href="http://dbpedia.org/resource/Virtuoso_Universal_Server" id="link-id104d2e48">Universal Server</a>&quot;.<br />
<br />Conceptual View:<br />
<br />
<img style="max-width: 800px;" src="http://virtuoso.openlinksw.com/images/vconc650.jpg" />
<br />
<br />Technical View (kinda missing <a href="http://dbpedia.org/resource/PHP" id="link-id10660110">PHP</a>, <a href="http://dbpedia.org/resource/Perl" id="link-id1053d9b8">Perl</a>, <a href="http://dbpedia.org/resource/Python_programming_language" id="link-id107bc9c0">Python</a> runtime hosting in the Virtual Application Sever realm):<br />
<br />
<img style="max-width: 800px;" src="http://virtuoso.openlinksw.com/images/virtuoso3arch.gif" />
<br />
<br />
<br />
<a href="http://virtuoso.openlinksw.com" id="link-id0x13cf3798">Virtuoso</a>&#39;s architecture is not a reaction to current trends. The diagrams above are pretty old (with minor touch ups in recent times). At <a href="http://www.openlinksw.com/dataspace/organization/openlink#this" id="link-id13e194c0">OpenLink Software</a>, we&#39;ve have a consistent world-view re. standards and the vital role they play when it comes to developing software that enables the construction and exploitation of &quot;<a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id133c84a8">Context</a> Lenses&quot; that tap into a substrate of Virtualized Logical Data Sources (<a href="http://dbpedia.org/resource/SQL" id="link-id104d1c30">SQL</a>, XML, RDF, Web Services, Full Text etc.).<br />
<br />
<br />
<br />
<br />]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-06-13#1386">
  <rss:title>Missing Bits from semanticweb.com Interview</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2008-06-13T02:02:56Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Yikes! I&#39;ve just discovered that the final part of the semanticweb.com&#39;s interview with Jim Hendler and I, includes critical paragraphs that omit my example links :-( As you can imagine, this is a quite excruciating, bearing in mind that &quot;Literals&quot; are of marginal value in a Linked Data world. Anyway, thanks to the Blogosphere, I can attempt to fix this problem myself -- via this post :-) Q. If you wanted to provide a bewildered but still curious novice a public example of Linked Data at work in their everyday life, what would it be? Kingsley Idehen: Any one of the following: My Linking Open Data community Profile Page - the Linked Data integration is exposed via the &quot;Explore Data&quot; Tab My Linked Data Space - viewed via OpenLink&#39;s AJAR (Asynchronous Javascript and RDF) based Linked Data Brower My Events Calendar Tag Cloud - a Linked Data view of my Calendar Space using an RDF-aware browser In all cases, you have the ability to explore my data spaces by simply clicking on the links, which on the surface appear to be standard hypertext links, although in reality you are dealing with hyperdata links (i.e., links to entities that result in the generation of entity description pages that expose entity properties via hyperdata links). Thus, you have a single page that describes me in a very rich way since it encompasses all data associated with me, covering: personal profile, blog posts, bookmarks, tag clouds, social networks etc. Q. What would you show the CEO or CTO of a company outside the tech industry? Kingsley Idehen: A link to the Entity ALFKI, from the popular Northwind Database associated with Microsoft Access and SQL Server database installations. This particular link exposes a typical enterprise data space (orders, customers, employees, suppliers ...) in a single page. The hyperdata links represent intricate data relationships common to most business systems that will ultimately seek to repurpose existing legacy data sources and SOA services as Linked Data. Alternatively, I would show the same links via the Zitgist Data Viewer (another Linked Data-aware browser). In both cases, I am exploiting direct access to entities via HTTP due to the protocols incorporation into the Data Source Naming scheme.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Yikes! I&#39;ve just discovered that the final part of the semanticweb.com&#39;s interview with <a href="http://www.cs.umd.edu/~hendler/2003/foaf.rdf#jhendler" id="link-id10483c28">Jim Hendler</a> and I, includes critical paragraphs that omit my example links :-( As you can imagine, this is a quite excruciating, bearing in mind that &quot;Literals&quot; are of marginal value in a <a href="http://dbpedia.org/resource/Linked_Data" id="link-id1418a578">Linked Data</a> world.</p>
<p>Anyway, thanks to the Blogosphere, I can attempt to fix this problem myself -- via this post :-)</p>
<p>
<strong>Q. If you wanted to provide a bewildered but still curious novice a public example of <a href="http://dbpedia.org/resource/Linked_Data" id="link-id107e67d0">Linked Data</a> at work in their everyday life, what would it be?</strong>
</p>

<p>
<strong><a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id13851f80">Kingsley Idehen</a>:</strong> Any one of the following:</p>

<p>
<a href="http://community.linkeddata.org/dataspace/person/kidehen2" id="link-id144c84b0">My Linking Open Data community Profile Page</a> - the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10339910">Linked Data</a> integration is exposed via the &quot;Explore <a href="http://dbpedia.org/resource/Data">Data</a>&quot; Tab
<a href="http://demo.openlinksw.com/rdfbrowser2/?uri%5B%5D=http%3A%2F%2Fmyopenlink.net%2Fdataspace%2Fkidehen&amp;" id="link-id12116d10">My Linked Data Space</a> - viewed via OpenLink&#39;s AJAR (Asynchronous Javascript and RDF) based <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10728ed0">Linked Data</a> Brower
<a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http%3A%2F%2Fmyopenlink.net%2Fdataspace%2Fkidehen%2Fcalendar%2FKingsley%2527s%2520Calendar" id="link-id144ef138">My Events Calendar Tag Cloud</a> - a <a href="http://dbpedia.org/resource/Linked_Data" id="link-id0xb8fdf10">Linked Data</a> view of my Calendar Space using an RDF-aware browser
In all cases, you have the ability to explore my data spaces by simply clicking on the links, which on the surface appear to be standard hypertext links, although in reality you are dealing with  <a href="http://dbpedia.org/resource/Linked_Data" id="link-id142827a8">hyperdata</a> links (i.e., links to entities that result in the generation of <a href="http://dbpedia.org/resource/Entity" id="link-id144c8438">entity</a> description pages that expose <a href="http://dbpedia.org/resource/Entity" id="link-id149c9cf8">entity</a> properties via <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10551628">hyperdata</a> links). Thus, you have a single page that describes me in a very rich way since it encompasses all data associated with me, covering:  personal profile, <a href="http://dbpedia.org/resource/Blog" id="link-id10ac5148">blog</a> posts, bookmarks, <a href="http://dbpedia.org/resource/Tag" id="link-id122ff4b0">tag</a> clouds, social networks etc.</p>

<p>
<strong>Q. What would you show the CEO or CTO of a company outside the tech industry?</strong>
</p>

<p>
<strong><a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id106143a8">Kingsley Idehen</a>:</strong> A link to the <a href="http://demo.openlinksw.com/Northwind/Customer/ALFKI#this" id="link-id106144e0">Entity ALFKI</a>, from the popular Northwind Database associated with Microsoft Access and <a href="http://dbpedia.org/resource/SQL" id="link-id10ca6f68">SQL</a> Server database installations. This particular link exposes a typical enterprise <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id14202348">data space</a> (orders, customers, employees, suppliers ...) in a single page. The <a href="http://dbpedia.org/resource/Linked_Data" id="link-id144e9070">hyperdata</a> links represent intricate data relationships common to most business systems that will ultimately seek to repurpose existing legacy data sources and SOA services as <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a>. Alternatively, I would show the same links via the <a href="http://dataviewer.zitgist.com/?uri=http%3A//demo.openlinksw.com/Northwind/Customer/ALFKI" id="link-id10e2e1d0">Zitgist Data Viewer</a> (another Linked Data-aware browser). In both cases, I am exploiting direct access to entities via HTTP due to the protocols incorporation into the Data Source Naming scheme.</p>
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-04-28#1342">
  <rss:title>Linked Data Illustrated and a Virtuoso Functionality Reminder</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2008-04-28T17:32:47Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel Lewis has put together a nice collection of Linked Data related posts that illustrate the fundamentals of the Linked Data Web and the vital role that Virtuoso plays as a deployment platform. Remember, Virtuoso was architected in 1998 (see Virtuoso History) in anticipation of the eventual Internet, Intranet, and Extranet level requirements for a different kind of Server. At the time of Virtuoso&#39;s inception, many thought our desire to build a multi-protocol, multi-model, and multi-purpose, virtual and native data server was sheer craziness, but we pressed on (courtesy of our vision and technical capabilities). Today, we have a very sophisticated Universal Server Platform (in Open Source and Commercial forms) that is naturally equipped to do the following via very simple interfaces: - Produce RDF Linked Data from non RDF Data Sources (Heterogeneous SQL, XML, Web Services) - Provide highly scalable RDF Data Management via a Quad Store (DBpedia is an example of a live demonstration) - Sophisticated Deployment of Linked Data that exploits the power of SPARQL - Powerful WebDAV innovations that simplify read-write mode interaction with Linked Data - Use Web Data Virtualization to address the pain and frustration associated with Web Data Silos (e.g. OpenLink Data Spaces layer stop Virtuoso that delivers Personal Data Spaces / Unified Storage in the Clouds) - Deliver a Linked Data development and deployment platform to .NET (VB, C#) , Java, PHP, Ruby, Perl, Python, &#39;C&#39;, C++, and other developers - More...</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<a href="http://myopenlink.net/dataspace/person/danieljohnlewis#this" id="link-id156ceb30">Daniel Lewis</a> has put together a nice <a href="http://vanirsystems.com/danielsblog/2008/04/27/linked-data-the-role-of-the-data-server/" id="link-id10456040">collection of Linked Data related posts</a> that illustrate the fundamentals of the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id1033f6f0">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id106fa168">Web</a> and the vital role that <a href="http://virtuoso.openlinksw.com" id="link-id10141c20">Virtuoso</a> plays as a deployment platform.

Remember, <a href="http://virtuoso.openlinksw.com" id="link-id10301e38">Virtuoso</a> was architected in 1998 (see <a href="http://virtuoso.openlinksw.com/wiki/main/Main/VOSHistory" id="link-id10c44088">Virtuoso History</a>) in anticipation of the eventual <a href="http://dbpedia.org/resource/Internet" id="link-id1383a1e8">Internet</a>, <a href="http://dbpedia.org/resource/Intranet" id="link-id1028e770">Intranet</a>, and <a href="http://dbpedia.org/resource/Extranet" id="link-id14b07b40">Extranet</a> level requirements for a different kind of Server. At the time of <a href="http://virtuoso.openlinksw.com" id="link-id14ad24a8">Virtuoso</a>&#39;s inception, many thought our desire to build a multi-protocol, multi-model, and multi-purpose, virtual and native <a href="http://dbpedia.org/resource/Data" id="link-id108dac48">data</a> server was sheer craziness, but we pressed on (courtesy of our vision and technical capabilities). 

Today, we have a very sophisticated <a href="http://dbpedia.org/resource/Virtuoso_Universal_Server" id="link-id14a65d48">Universal Server</a> Platform (in Open Source and Commercial forms) that is naturally equipped to do the following via very simple interfaces: 
<ul>
- Produce <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id11fb1170">RDF</a> <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10871da8">Linked Data</a> from non <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id156ec3d0">RDF</a> <a href="http://dbpedia.org/resource/Data" id="link-id10f0ca38">Data</a> Sources (Heterogeneous <a href="http://dbpedia.org/resource/SQL" id="link-id15133078">SQL</a>, XML, <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> Services)</ul>
<ul>
- Provide highly scalable <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id10585940">RDF</a> <a href="http://dbpedia.org/resource/Data" id="link-id15151e10">Data</a> Management via a Quad Store (<a href="http://dbpedia.org/resource/DBpedia" id="link-id1530d640">DBpedia</a> is an example of a live demonstration)</ul>
<ul>
- Sophisticated Deployment of <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10141c80">Linked Data</a> that exploits the power of <a href="http://dbpedia.org/resource/SPARQL" id="link-id1064fa18">SPARQL</a>
</ul>
<ul>
- Powerful WebDAV innovations that simplify read-write mode interaction with <a href="http://dbpedia.org/resource/Linked_Data" id="link-id1396ff68">Linked Data</a>
</ul>
<ul>
- Use Web <a href="http://dbpedia.org/resource/Federated_database_system" id="link-id108256e8">Data Virtualization</a> to address the pain and frustration associated with Web <a href="http://dbpedia.org/resource/Data" id="link-id147e65f8">Data</a> Silos (e.g. <a href="http://dbpedia.org/resource/OpenLink_Data_Spaces" id="link-idffaf078">OpenLink Data Spaces</a> layer stop <a href="http://virtuoso.openlinksw.com" id="link-id14ae8fe8">Virtuoso</a> that delivers <a href="http://dbpedia.org/resource/OpenLink_Data_Spaces" id="link-id0xa0fb5e40">Personal Data Spaces</a> / Unified Storage in the Clouds)
</ul>
<ul>
- Deliver a <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10869700">Linked Data</a> development and deployment platform to .<a href="http://dbpedia.org/resource/.NET_Framework" id="link-id1514cac0">NET</a> (<a href="http://dbpedia.org/resource/Visual_Basic" id="link-id10c107a8">VB</a>, <a href="http://dbpedia.org/resource/C_(programming_language)" id="link-id101f3c68">C</a>#) , Java, <a href="http://dbpedia.org/resource/PHP" id="link-id106e4710">PHP</a>, <a href="http://dbpedia.org/resource/Ruby_programming_language" id="link-id10277448">Ruby</a>, <a href="http://dbpedia.org/resource/Perl" id="link-id10a75748">Perl</a>, <a href="http://dbpedia.org/resource/Python_programming_language" id="link-id12fdb118">Python</a>, &#39;<a href="http://dbpedia.org/resource/C_(programming_language)" id="link-id10c9d9e0">C</a>&#39;, <a href="http://dbpedia.org/resource/C%2B%2B" id="link-id10392400">C++</a>, and other developers </ul>
<ul>- More...</ul>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-04-10#1334">
  <rss:title>Linked Data enabling PHP Applications</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2008-04-10T18:09:49Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Daniel lewis has penned a variation of post about Linked Data enabling PHP applications such as: Wordpress, phpBB3, MediaWiki etc. Daniel simplifies my post by using diagrams to depict the different paths for PHP based applications exposing Linked Data - especially those that already provide a significant amount of the content that drives Web 2.0. If all the content in Web 2.0 information resources are distillable into discrete data objects endowed with HTTP based IDs (URIs), with zero &quot;RDF handcrafting Tax&quot;, what do we end up with? A Giant Global Graph of Linked Data; the Web as a Database. So, what used to apply exclusively, within enterprise settings re. Oracle, DB2, Informix, Ingres, Sybase, Microsoft SQL Server, MySQL, PostrgeSQL, Progress Open Edge, Firebird, and others, now applies to the Web. The Web becomes the &quot;Distributed Database Bus&quot; that connects database records across disparate databases (or Data Spaces). These databases manage and expose records that are remotely accessible &quot;by reference&quot; via HTTP. As I&#39;ve stated at every opportunity in the past, Web 2.0 is the greatest thing that every happened to the Semantic Web vision :-) Without the &quot;Web 2.0 Data Silo Conundrum&quot; we wouldn&#39;t have the cry for &quot;Data Portability&quot; that brings a lot of clarity to some fundamental Web 2.0 limitations that end-users ultimately find unacceptable. In the late &#39;80s, the SQL Access Group (now part of X/Open) addressed a similar problem with RDBMS silos within the enterprise that lead to the SAG CLI which is exists today as Open Database Connectivity. In a sense we now have WODBC (Web Open Database Connectivity), comprised of Web Services based CLIs and/or traditional back-end DBMS CLIs (ODBC, JDBC, ADO.NET, OLE-DB, or Native), Query Language (SPARQL Query Language), and a Wire Protocol (HTTP based SPARQL Protocol) delivering Web infrastructure equivalents of SQL and RDA, but much better, and with much broader scope for delivering profound value due to the Web&#39;s inherent openness. Today&#39;s PHP, Python, Ruby, Tcl, Perl, ASP.NET developer is the enterprise 4GL developer of yore, without enterprise confinement. We could even be talking about 5GL development once the Linked Data interaction is meshed with dynamic languages (delivering higher levels of abstraction at the language and data interaction levels). Even the underlying schemas and basic design will evolve from Closed World (solely) to a mesh of Closed &amp; Open World view schemas.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>
<a href="http://myopenlink.net/dataspace/person/danieljohnlewis#this" id="link-id10820610">Daniel lewis</a> has penned a variation of post about <a href="http://vanirsystems.com/danielsblog/2008/04/10/simplified-adding-wordpress-blogs-into-the-linked-data-web-using-virtuoso/" id="link-id10827948">Linked Data enabling PHP applications</a> such as: <a href="http://dbpedia.org/resource/WordPress" id="link-id10426278">Wordpress</a>, <a href="http://dbpedia.org/resource/PhpBB" id="link-id13f431c0">phpBB3</a>, <a href="http://dbpedia.org/resource/MediaWiki" id="link-id10dd8760">MediaWiki</a> etc.</p>

<p>Daniel simplifies my post by using diagrams to depict the different paths for <a href="http://dbpedia.org/resource/PHP" id="link-id10adcc08">PHP</a> based applications exposing <a href="http://dbpedia.org/resource/Linked_Data" id="link-id107b4e60">Linked Data</a> - especially those that already provide a significant amount of the content that drives <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-id13b0ab48">Web</a> 2.0.</p>

<p>If all the content in <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-id0x1d499470">Web</a> 2.0 <a href="http://dbpedia.org/resource/Information" id="link-id12bd3b10">information</a> resources are distillable into discrete <a href="http://dbpedia.org/resource/Data" id="link-id10962060">data</a> objects endowed with <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id176a30e8">HTTP</a> based IDs (URIs), with zero &quot;<a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=rdf%20tax&type=text&output=html" id="link-id1098bcd8">RDF handcrafting Tax</a>&quot;, what do we end up with? A <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id1372ce88">Giant Global Graph</a> of <a href="http://dbpedia.org/resource/Linked_Data" id="link-id0xa29f0658">Linked Data</a>; the <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> as a Database.</p> <p>So, what used to apply exclusively, within enterprise settings re. <a href="http://dbpedia.org/resource/Oracle_Database" id="link-id12d91448">Oracle</a>, <a href="http://dbpedia.org/resource/IBM_DB2" id="link-id13dd27d8">DB2</a>, <a href="http://dbpedia.org/resource/IBM_Informix" id="link-id108e6b98">Informix</a>, <a href="http://dbpedia.org/resource/Ingres" id="link-id13383708">Ingres</a>, <a href="http://dbpedia.org/resource/Sybase" id="link-idfed8aa8">Sybase</a>, <a href="http://dbpedia.org/resource/Microsoft_SQL_Server" id="link-id10b8b190">Microsoft SQL Server</a>, <a href="http://dbpedia.org/resource/MySQL" id="link-id13066ea8">MySQL</a>, PostrgeSQL, Progress Open Edge, <a href="http://dbpedia.org/resource/Firebird_database_server" id="link-id104f0a78">Firebird</a>, and others, now applies to the Web. The Web becomes the &quot;<a href="http://dbpedia.org/resource/federated_database_system" id="link-id105a5340">Distributed Database</a> Bus&quot; that connects database records across disparate databases (or <a href="http://dbpedia.org/resource/Data" id="link-id0xc706c68">Data</a> Spaces). These databases manage and expose records that are remotely accessible &quot;by reference&quot; via <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id0x1c8f7fe0">HTTP</a>.</p>

<p>As I&#39;ve stated at every opportunity in the past, Web 2.0 is the greatest thing that every happened to the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id13d65278">Semantic Web</a> vision :-) Without the &quot;<a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=Web%202.0%20%20conundrum&type=text&output=html" id="link-id100d16d0">Web 2.0 Data Silo Conundrum</a>&quot; we wouldn&#39;t have the cry for &quot;<a href="http://dbpedia.org/resource/Data">Data</a> Portability&quot; that brings a lot of clarity to some fundamental Web 2.0 limitations that end-users ultimately find unacceptable.</p> 
<p>
In the late &#39;80s, the <a href="http://dbpedia.org/resource/SQL" id="link-idff4f0d0">SQL</a> <a href="http://dbpedia.org/resource/SQL_Access_Group" id="link-id138fbd40">Access Group</a> (now part of <a href="http://dbpedia.org/resource/X/Open" id="link-id104ee010">X</a>/<a href="http://dbpedia.org/resource/X/Open" id="link-id0xac9eab8">Open</a>) addressed a similar problem with <a href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id106d2008">RDBMS</a> silos within the enterprise that lead to the SAG <a href="http://dbpedia.org/resource/Call_Level_Interface" id="link-id105d45d0">CLI</a> which is exists today as Open Database Connectivity.</p>

<p>In a sense we now have WODBC (Web Open Database Connectivity), comprised of Web Services based CLIs and/or traditional back-end DBMS CLIs (<a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id13f58708">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id10aa81e0">JDBC</a>, <a href="http://dbpedia.org/resource/ADO.NET" id="link-id5fddb68">ADO</a>.<a href="http://dbpedia.org/resource/ADO.NET" id="link-id0x9f085a10">NET</a>, OLE-DB, or Native),  Query Language (<a href="http://dbpedia.org/resource/SPARQL" id="link-id10adb5c8">SPARQL</a> Query Language), and a Wire Protocol (<a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol">HTTP</a> based <a href="http://www.w3.org/TR/rdf-sparql-protocol/" id="link-id126fa068">SPARQL Protocol</a>) delivering Web infrastructure equivalents of <a href="http://dbpedia.org/resource/SQL" id="link-id0x1d0a5fc8">SQL</a> and RDA, but much better, and with much broader scope for delivering profound value due to the Web&#39;s inherent openness. Today&#39;s <a href="http://dbpedia.org/resource/PHP" id="link-id0xc88ed68">PHP</a>, <a href="http://dbpedia.org/resource/Python_programming_language" id="link-id10a70530">Python</a>, <a href="http://dbpedia.org/resource/Ruby_programming_language" id="link-id13d9da18">Ruby</a>, <a href="http://dbpedia.org/resource/Tcl" id="link-id10a3c2a8">Tcl</a>, <a href="http://dbpedia.org/resource/Perl" id="link-id13e1b6f0">Perl</a>, <a href="http://dbpedia.org/resource/ASP.NET" id="link-id10810388">ASP</a>.<a href="http://dbpedia.org/resource/ASP.NET" id="link-id0xa22ce378">NET</a>  developer is the enterprise <a href="http://dbpedia.org/resource/4GL" id="link-id1396a500">4GL</a> developer of yore, without enterprise confinement. We could even be talking about <a href="http://dbpedia.org/resource/5GL" id="link-id1077f250">5GL</a> development once the <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a> interaction is meshed with dynamic languages (delivering higher levels of abstraction at the language and data interaction levels). Even the underlying schemas and  basic design will evolve from <a href="http://dbpedia.org/resource/Closed_world_assumption" id="link-id10b280c8">Closed World</a> (solely) to a mesh of Closed &amp; <a href="http://dbpedia.org/resource/Open_world_assumption" id="link-id104b9978">Open World</a> view schemas.</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-08-01#1238">
  <rss:title>OpenLink Ajax Toolkit (OAT) 2.6 Released!</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2007-08-01T18:34:07Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">OpenLink Software are pleased to announce release 2.6 of the OpenLink AJAX Toolkit (OAT). New Semantic Data Web related features and enhancements include: * A Javascript-based Fresnel processor enabling declarative RDF-based display templates for RDF Data Sources * An XSLT template for generating HTML pages from the Fresnel processor&#39;s XML output * Interactive Query Builder for SPARQL (iSPARQL). This version of the iSPARQL application includes support for INSERTs and DELETEs * Enhanced Javascript-based N3/Turtle parser * New Navigator viewer panel for RDF Browser. Related Items: *Project Home Page *Source Code *Live Features Demonstrations.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>
<a href="http://www.openlinksw.com">OpenLink Software</a> are pleased to announce release 2.6 of the <a href="http://oat.openlinksw.com">OpenLink AJAX
Toolkit</a> (OAT).</p>
<p>
New Semantic Data Web related features and enhancements include:</p>
<ul>
* A Javascript-based <a href="http://www.w3.org/2005/04/fresnel-info/">Fresnel</a> processor enabling declarative RDF-based display templates for RDF Data Sources</ul>  
<ul>* An XSLT template for generating HTML pages from the Fresnel processor&#39;s
XML output</ul>
<ul>* <a href="http://demo.openlinksw.com/DAV/JS/isparql/index.html">Interactive Query Builder for SPARQL</a> (iSPARQL). This version of the
iSPARQL application includes support for INSERTs and DELETEs</ul>
<ul>* Enhanced Javascript-based N3/Turtle parser</ul>
<ul>* New Navigator viewer panel for <a href="http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html">RDF Browser</a>.</ul>

Related Items:

<ul>*<a href="http://sourceforge.net/projects/oat">Project Home Page</a>
</ul>

<ul>*<a href="http://sourceforge.net/projects/oat/files">Source Code</a>
</ul>

<ul>*<a href="http://demo.openlinksw.com/DAV/JS/demo/index.html">Live Features Demonstrations</a>.</ul>
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-04-04#1177">
  <rss:title> More Ajax Security </rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2007-04-04T12:16:21Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">The Recent security Ajax security alert have attracted comments from: Shelley Powers via her post titled: More Ajax Security and many others. In anticipation of the obvious concerns of many Javascript based developers, Ondrej Zara (lead developer of the OpenLink Ajax Toolkit) has written a post titled: OAT and JS Hijacking, that explains the security aspects our Javascript Toolkit in relation to this alert</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>The Recent security Ajax security alert <a href="http://blogs.usnet.private:8893/RPC2"></a> have attracted comments from: </p>
<p>
<a href="http://burningbird.net/">Shelley Powers</a> via her post titled: <a href="http://burningbird.net/adding-ajax/more-ajax-security/"> More Ajax Security </a> and many others.</p>
<p>In anticipation of the obvious concerns of many Javascript based developers,<a href="http://myopenlink.net/dataspace/ondras"> Ondrej Zara</a> (lead developer of the <a href="http://oat.openlinksw.com">OpenLink Ajax Toolkit</a>) has written a post titled: <a href="http://www.openlinksw.com/weblog/oat/index.vspx?page=&id=1176">OAT and JS Hijacking</a>, that explains the security aspects our Javascript Toolkit in relation to this alert</p>
 ]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-03-28#1172">
  <rss:title>RDF Browsers &amp; RDF Data Middleware</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2007-03-28T23:17:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Frederick Giasson penned an interesting post earlier today that highlighted the RDF Middleware services offered by Triplr and the Virtuoso Sponger Some Definitions (as per usual): RDF Middleware (as defined in this context) is about producing RDF from non RDF Data Sources. This implies that you can use non RDF Data Sources (e.g. (X)HTML Web Pages, (X)HTML Web Pages hosting Microformats, and even Web Services such as those from Google, Del.icio.us, Flickr etc..) as Semantic Web Data Source URIs (pointers to RDF Data). In this post I would like to provide a similar perspective on this ability to treat non RDF as RDF from RDF Browser perspective. First off, what&#39;s an RDF Browser? An RDF Browser is a piece of technology that enables you to Browse RDF Data Sources by way of Data Link Traversal. The key difference between this approach and traditional browsing is that Data Links are typed (they possess inherent meaning and context) whereas traditional links are untyped (although universally we have been trained to type them as links to Blurb in the form of (X)HTML pages or what is popularly called &quot;Web Content&quot;.). There are a number of RDF Browsers that I am aware off (note: pop me a message directly of by way of a comment to this post if you have a browser that I am unaware of), and they include (in order of creation and availability): Tabulator DISCO - Hyperdata Browser OpenLink Ajax Toolkit&#39;s RDF Browser (a component of the OAT Javascript Toolkit) Each of the browsers above can consume the services of Triplr or the Virtuoso Sponger en route to unveiling a RDF Data that is traversable via URI dereferencing (HTTP GETing the data exposed by the Data Pointer). Thus you can cut&amp;paste the following into each of the aforementioned RDF Browsers: Triplr&#39;s RDF Data (Triples) extractions from Dan Connolly&#39;s Home Page The Virtuoso Sponger&#39;s RDF Data (Triples) extractions from Dan Connolly&#39;s Home Page Since we are all time challenged (naturally!) you can also just click on these permalinks for the OAT RDF Browser demos: Permalink for Triplr&#39;s RDF Data (Triples) extractions from Dan Connolly&#39;s Home Page Permalink for the Virtuoso Sponger&#39;s RDF Data (Triples) extractions from Dan Connolly&#39;s Home Page</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p> <a href="http://fgiasson.com/blog">Frederick Giasson</a> penned an interesting post earlier today that highlighted the RDF Middleware services offered by  <a href="http://fgiasson.com/blog/index.php/2007/03/28/making-the-bridge-between-the-web-and-the-semantic-web/#comments">Triplr and the Virtuoso Sponger</a> </p> <p>Some Definitions (as per usual):</p> <p>RDF Middleware (as defined in this context) is about producing RDF from non RDF Data Sources. This implies that you can use non RDF Data Sources (e.g. (X)HTML Web Pages, (X)HTML Web Pages hosting Microformats, and even Web Services such as those from Google, Del.icio.us, Flickr etc..) as Semantic Web Data Source URIs (pointers to RDF Data).</p> <p>In this post I would like to provide a similar perspective on this ability to treat non RDF as RDF from RDF Browser perspective.</p> <p>First off, what&#39;s an RDF Browser?</p> <p>An RDF Browser is a piece of technology that enables you to Browse <a href="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData">RDF Data Sources</a> by way of Data Link Traversal. The key difference between this approach and traditional browsing is that Data Links are typed (they possess inherent meaning and context) whereas traditional links are untyped (although universally we have been trained to type them as links to Blurb in the form of (X)HTML pages or what is popularly called &quot;Web Content&quot;.).</p> <p>There are a number of RDF Browsers that I am aware off (note: pop me a message directly of by way of a comment to this post if you have a browser that I am unaware of), and they include (in order of creation and availability):</p> <ol> <li>   <a href="http://www.w3.org/2005/ajar/tab">Tabulator</a> </li> <li>   <a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/ng4j/disco/">DISCO - Hyperdata Browser</a> </li> <li>   <a href="http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html">OpenLink Ajax Toolkit&#39;s  RDF Browser</a> (a component of the <a href="http://demo.openlinksw.com/DAV/JS/demo/index.html">OAT Javascript Toolkit</a>)</li> </ol> <p>Each of the browsers above can consume the services of Triplr or the Virtuoso Sponger en route to unveiling a RDF Data that is traversable via <a href="http://www.w3.org/TR/2004/REC-webarch-20041215/#dereference-uri">URI dereferencing</a> (HTTP GETing the data exposed by the Data Pointer). Thus you can cut&amp;paste the following into each of the aforementioned RDF Browsers:</p> <ol> <li>   <a href="http://triplr.org/rdf/http://www.w3.org/People/Connolly/">Triplr&#39;s RDF Data (Triples) extractions from Dan Connolly&#39;s Home Page</a> </li> <li>   <a href="http://demo.openlinksw.com/proxy?url=http://www.w3.org/People/Connolly/&force=rdf">The Virtuoso Sponger&#39;s RDF Data (Triples) extractions from Dan Connolly&#39;s Home Page</a> </li> </ol> <p>Since we are all time challenged (naturally!) you can also just click on these permalinks for the OAT RDF Browser demos:</p> 
<ol> 
<li> <a href="http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html?uri[]=http%3A%2F%2Ftriplr.org%2Frdf%2Fhttp%3A%2F%2Fwww.w3.org%2FPeople%2FConnolly%2F&amp;&quot;">Permalink for Triplr&#39;s RDF Data (Triples) extractions from Dan Connolly&#39;s Home Page</a> 
</li> 
<li>
  <a href="http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html?uri=http%3A%2F%2Fwww.w3.org%2FPeople%2FConnolly%2F%23me">Permalink for the Virtuoso Sponger&#39;s RDF Data (Triples) extractions from Dan Connolly&#39;s Home Page</a>
</li>
</ol>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-03-01#1148">
  <rss:title>Personal URIs &amp; Data Spaces</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2007-03-01T19:42:41Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Linking personal posted content across communities: &quot; With the help of Kingsley, Uldis and I have been looking at how SIOC can be used to link the content that a single person posts to a number of community sites. The picture below shows an example of stuff that Iâve created on Flickr, YouTube, etc. through my various user identities on those sites (these match some SIOC types that we want to add to a separate module). We can also say that each Web 2.0 content item is a user-contributed post, with some attached or embedded content (e.g. a file or maybe just some metadata). This is part of a new discussion on the sioc-dev mailing list, and weâd value your contributions. Edit: The inner layer is a person (semantically described in FOAF), the next layer is their user accounts (described in FOAF, SIOC) and the outer layer is the posted content - text, files, associated metadata - on community sites (again described using SIOC). No Tags&quot; (Via John Breslin - Cloudlands.) The point that John is making about the Data Web and Interlinked Data Spaces exposed via URIs (e.g Personal URIs), crystallizes a number of very important issues about the Data Web that may remain unclear. I am hoping that by digesting the post excerpt above, in conjunction with the items below, aids the pursuit of clarity and comprehension about the all important Data Web (Semantic Web - Layer 1): Your OpenID can be Your Personal URI (as noted by Henry Story&#39;s post about: The Many Uses of OpenID). That that&#39;s what I have courtesy of OpenLink Data Spaces (ODS) The above only works unobtrusively (i.e. OpenID and Personal sharing a URI) if Content Negotiation is exploited on the Client and Server sides. TimBL&#39;s call out to Share Your Data and Link to Other Data via URIs via post titled: Give Yourself a URI. W3C&#39;s Best Practice Recipes for Publishing RDF Vocabularies W3C&#39;s Architecture of the World Wide Web - Vol 1 which covers URI Dereferencing (HTTP GET-ing the data that a URI points to) Richard Cyganiak&#39;s post titled: Debugging Semantic Web Sites with Curl. Examples of some of these principles in practice: Chris Bizer, Tobias Gaub, and Richard&#39;s Javascript based Semantic Web Client Library DISCO RDF Browser OpenLink Ajax Toolkit&#39;s (OAT) RDF Browser OpenLink Interactive SPARQL Query by Example (iSPARQL QBE) Dynamic Data Web Pages from my prior posts [1][2][3] dbpedia (Wikipedia as a Data Web oriented Data Source) And of course this blog post&#39;s permalink is a bona fide dereferencable URI. And of course there is more to come such as Grandma&#39;s Semantic Web Browser which is coming from Zitgist LLC (pronounced: Zeitgeist) a joint venture of OpenLink Software and Frederick Giasson.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<blockquote>
<p>
  <a href="http://www.johnbreslin.com/blog/2007/03/01/linking-personal-posted-content-across-communities/#comments">Linking personal posted content across communities</a>: &quot;</p>
<p>With the help of Kingsley, Uldis and I have been looking at how <a href="http://sioc-project.org/">SIOC</a> can be used to link the content that a single person posts to a number of community sites.  The picture below shows an example of stuff that Iâve created on Flickr, YouTube, etc. through my various user identities on those sites (these match some <a href="http://wiki.sioc-project.org/index.php/TypesModule">SIOC types</a> that we want to add to a separate module).  We can also say that each Web 2.0 content item is a user-contributed post, with some attached or embedded content (e.g. a file or maybe just some metadata).  This is part of a new discussion on the <a href="http://groups.google.com/group/sioc-dev">sioc-dev</a> mailing list, and weâd value your contributions.</p>
<p>
  <img id="image1178" src="http://www.johnbreslin.com/blog/wp-content/uploads/2007/03/20070228a.png" alt="20070228a.png" />
</p>
<p>Edit: The inner layer is a person (semantically described in FOAF), the next layer is their user accounts (described in FOAF, SIOC) and the outer layer is the posted content - text, files, associated metadata - on community sites (again described using SIOC).
</p>
No Tags&quot;

<p>(Via <a href="http://www.johnbreslin.com/blog">John Breslin - Cloudlands</a>.)</p>
</blockquote>
<p>The point that John is making about the Data Web and Interlinked <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q='data%20spaces'&type=text&output=html">Data Spaces</a> exposed via <a href="http://en.wikipedia.org/wiki/Uniform_Resource_Identifier">URI</a>s (e.g Personal URIs), crystallizes a number of very important issues about the Data Web that may remain unclear. I am hoping that by digesting the post excerpt above, in conjunction with the items below, aids the pursuit of clarity and comprehension about the all important Data Web (Semantic Web - Layer 1):</p>
<ol>
<li>
  <a href="http://kidehen.idehen.net/dataspace/kidehen">Your OpenID can be Your Personal URI</a> (as noted by <a href="http://blogs.sun.com/bblfish/">Henry Story</a>&#39;s post about: <a href="http://blogs.sun.com/bblfish/entry/openid_for_blogs_sun_com">The Many Uses of OpenID</a>). That that&#39;s what I have courtesy of OpenLink Data Spaces (ODS)</li>
<li>The above only works unobtrusively (i.e. OpenID and Personal sharing a URI) if Content Negotiation is exploited on the Client and Server sides.</li>
<li>
  <a href="http://www.w3.org/People/Berners-Lee/card.rdf">TimBL</a>&#39;s call out to <a href="http://www.w3.org/DesignIssues/LinkedData.html">Share Your Data and Link to Other Data</a> via URIs via post titled: <a href="http://dig.csail.mit.edu/breadcrumbs/node/71">Give Yourself a URI</a>.</li>
<li>
  <a href="http://www.w3.org/TR/swbp-vocab-pub/">W3C&#39;s Best Practice Recipes for Publishing RDF Vocabularies</a>
</li>
<li>
  <a href="http://www.w3.org/TR/2004/REC-webarch-20041215/#dereference-uri">W3C&#39;s Architecture of the World Wide Web - Vol 1</a> which covers URI Dereferencing (HTTP GET-ing the data that a URI points to)</li>
<li>
  <a href="http://www4.wiwiss.fu-berlin.de/is-group/page/persons/Person6">Richard Cyganiak</a>&#39;s post titled: <a href="http://dowhatimean.net/2007/02/debugging-semantic-web-sites-with-curl">Debugging Semantic Web Sites with Curl</a>.</li>
</ol>
<p>Examples of some of these principles in practice:</p>
<ol>
<li>Chris Bizer, Tobias Gaub, and Richard&#39;s Javascript based<a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/ng4j/semwebclient/"> Semantic Web Client Library</a>
</li>
<li>
  <a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/ng4j/disco/">DISCO RDF Browser</a>
</li>
<li>
  <a href="http://oat.openlinksw.com">OpenLink Ajax Toolkit</a>&#39;s (OAT) <a href="http://demo.openlinksw.com/DAV/JS/tests/rdfbrowser/index.html">RDF Browser</a>
</li>
<li>OpenLink <a href="http://demo.openlinksw.com/isparql">Interactive SPARQL Query by Example</a> (iSPARQL QBE)</li>
<li>Dynamic Data Web Pages from my prior posts [<a href="http://www.openlinksw.com/blog/~kidehen/?id=1144">1</a>][<a href="http://www.openlinksw.com/blog/~kidehen/index.vspx?page=&id=1145">2</a>][<a href="http://www.openlinksw.com/blog/~kidehen/index.vspx?page=&id=1146">3</a>]</li>
<li>
  <a href="http://dbpedia.org/docs/">dbpedia</a> (Wikipedia as a Data Web oriented Data Source)</li>
<li>And of course this blog post&#39;s permalink is a bona fide dereferencable URI.</li>
</ol>
<p>And of course there is more to come such as Grandma&#39;s Semantic Web Browser which is coming from <a href="http://fgiasson.com/blog/index.php/2007/02/18/zitgist_a_semantic_web_search_engine">Zitgist LLC</a> (pronounced: Zeitgeist) a joint venture of OpenLink Software and <a href="http://fgiasson.com/blog/">Frederick Giasson</a>.</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-10-20#1065">
  <rss:title>Birds of a Feather Flock Together - Mac OS X &amp; Rails</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-10-20T23:55:40Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">A very cool video promo for Ruby on Rails and Mac OS X, or should I say: 37 Signals &amp; Apple :-) Either way, very cool! BTW - We have just released a collection of High-Performance Data Providers for ActiveRecord. Our providers deliver Consistent Functionality to RoR developers across Virtuoso, Oracle, SQL Server, Sybase, DB2, Ingres, Informix, and others without compromising performance or cross platform portability.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>A very cool v<a href="http://www.apple.com/education/whymac/compsci/video.html">ideo promo for Ruby on Rails and Mac OS X</a>, or should I say: 37 Signals &amp; Apple :-) Either way, very cool!</p>

<p>BTW - We have just released a collection of <a href="http://rubyforge.org/projects/odbc-rails/">High-Performance Data Providers for ActiveRecord</a>. Our providers deliver </p>
<blockquote>Consistent Functionality</blockquote> to RoR developers across <a href="http://virtuoso.openlinksw.com/wiki/main/">Virtuoso</a>, Oracle, SQL Server, Sybase, DB2, Ingres, Informix, and others without compromising performance or cross platform portability.]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-08-28#1030">
  <rss:title>Data Spaces and Web of Databases</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-08-28T19:38:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Note: An updated version of a previously unpublished blog post: Continuing from our recent Podcast conversation, Jon Udell sheds further insight into the essence of our conversation via a âStrategic Developerâ column article titled: Accessing the web of databases. Below, I present an initial dump of a DataSpace FAQ below that hopefully sheds light on the DataSpace vision espoused during my podcast conversation with Jon. What is a DataSpace? A moniker for Web-accessible atomic containers that manage and expose Data, Information, Services, Processes, and Knowledge. What would you typically find in a Data Space? Examples include: Raw Data - SQL, HTML, XML (raw), XHTML, RDF etc. Information (Data In Context) - XHTML (various microformats), Blog Posts (in RSS, Atom, RSS-RDF formats), Subscription Lists (OPML, OCS, etc), Social Networks (FOAF, XFN etc.), and many other forms of applied XML. Web Services (Application/Service Logic) - REST or SOAP based invocation of application logic for context sensitive and controlled data access and manipulation. Persisted Knowledge - Information in actionable context that is also available in transient or persistent forms expressed using a Graph Data Model. A modern knowledgebase would more than likely have RDF as its Data Language, RDFS as its Schema Language, and OWL as its DomainÂ  Definition (Ontology) Language. Actual Domain, Schema, and Instance Data would be serialized using formats such as RDF-XML, N3, Turtle etc). How do Data Spaces and Databases differ? Data Spaces are fundamentally problem-domain-specific database applications. They offer functionality that you would instinctively expect of a database (e.g. AICD data management) with the additonal benefit of being data model and query language agnostic. Data Spaces are for the most part DBMS Engine and Data Access Middleware hybrids in the sense that ownership and control of data is inherently loosely-coupled. How do Data Spaces and Content Management Systems differ?Data Spaces are inherently more flexible, they support multiple data models and data representation formats. Content management systems do not possess the same degree of data model and data representation dexterity. How do Data Spaces and Knowledgebases differ?A Data Space cannot dictate the perception of its content. For instance, what I may consider as knowledge relative to my Data Space may not be the case to a remote client that interacts with it from a distance, Thus, defining my Data Space as Knowledgebase, purely, introduces constraints that reduce its broader effectiveness to third party clients (applications, services, users etc..). A Knowledgebase is based on a Graph Data Model resulting in significant impedance for clients that are built around alternative models. To reiterate, Data Spaces support multiple data models. What Architectural Components make up a Data Space? ORDBMS Engine - for Data Modeling agility (via complex purpose specific data types and data access methods), Data Atomicity, Data Concurrency, Transaction Isolation, and Durability (aka ACID). Virtual Database Engine - for creating a single view of, and access point to, heterogeneous SQL, XML, Free Text, and other data. This is all about Virtualization at the Data Access Level. Web Services Platform - enabling controlled access and manipulation (via application, service, or protocol logic) of Virtualized or Disparate Data. This layer handles the decoupling of functionality from monolithic wholes for function specific invocation via Web Services using either the SOAP or REST approach. Where do Data Spaces fit into the Web&#39;s rapid evolution?They are an essential part of the burgeoning Data Web / Semantic Web. In short, they will take us from data âMash-upsâ (combining web accessible data that exists without integration and repurposing in mind) to âMesh-upsâ (combining web accessible data that exists with integration and repurposing in mind). Where can I see a DataSpace along the lines described, in action? Just look at my blog, and take the journey as follows: Front Door (Web 1.0) Lounge (Web 2.0) via GData or OpenSearch Floor Plan via FOAF or SIOC RDF Data Sets (Graphs) Rest of the house (beyond Web 2.0) sendingÂ  SPARQL Queries to a SPARQL Endpoint. What about other Data Spaces? There are several and I will attempt to categorize along the lines of query method available: Type 1 (Free Text Search over HTTP): Google, MSN, Yahoo!, Amazon, eBay, and most Web 2.0 plays . Type 2 (Free Text Search and XQuery/XPath over HTTP) A few blogs and Wikis (Jon Udell&#39;s and a few others)Type 3 (RDF Data Sets and SPARQL Queryable): Â Â  SIOC enabled sites (aka points of semantic web presence) Â Â  PingTheSemantic Type 4 (Generic Free Text Search, OpenSearch, GData, XQuery/XPath, and SPARQL):Points of Semantic Web presence such as the Data Spaces at: My Blog Data Space (as stated earlier in this post) My General Data Space - (ditto; note that this is currently experimental) What About Data Space aware tools? Â Â  OpenLink Ajax Toolkit - provides Javascript Control level binding to Query Services such as XMLA for SQL, GData for Free Text, OpenSearch for Free Text, SPARQL for RDF, in addition to service specific Web Services (Web 2.0 hosted solutions that expose service specific APIs) Â Â  Semantic Radar - a Firefox Extension Â Â  PingTheSemantic - the Semantic Webs equivalent of Web 2.0&#39;s weblogs.com Â Â  PiggyBank - a Firefox Extension</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Note: An updated version of a previously unpublished blog post:</p>
    <p> Continuing from <a href="http://weblog.infoworld.com/udell/2006/04/28.html">our recent Podcast conversation</a>, Jon Udell sheds further insight into the essence of our conversation via a âStrategic Developerâ column article titled: <a href="http://www.infoworld.com/cgi-bin/redirect?source=rss&url=http://www.infoworld.com/article/06/05/03/77873_19OPstrategic_1.html">Accessing the web of databases</a>. </p> <p> Below, I present an initial dump of a DataSpace FAQ below that hopefully sheds light on the DataSpace vision espoused during my podcast conversation with Jon. </p> <p> What is a DataSpace? <br /> </p> <p>A moniker for Web-accessible atomic containers that manage and expose Data, Information, Services, Processes, and Knowledge.  </p> <p> What would you typically find in a Data Space? Examples include: </p> <ul> <li>Raw Data - SQL, HTML, XML (raw), XHTML, RDF etc.<br />   <br /> </li> <li>Information (Data In Context) - XHTML (various microformats), Blog Posts (in RSS, Atom, RSS-RDF formats), Subscription Lists (OPML, OCS, etc), Social Networks (FOAF, XFN etc.), and many other forms of applied XML.</li>  </ul> <ul> <li>Web Services (Application/Service Logic) - REST or SOAP based invocation of application logic for context sensitive and controlled data access and manipulation.</li> </ul> <ul> <li>Persisted Knowledge - Information in actionable context that is also available in transient or persistent forms expressed using a Graph Data Model. A modern knowledgebase would more than likely have RDF as its Data Language, RDFS as its Schema Language, and OWL as its DomainÂ  Definition  (Ontology) Language. Actual Domain, Schema, and  Instance Data would be serialized using formats such as RDF-XML, N3, Turtle etc).</li> </ul> <p> How do Data Spaces and Databases differ? <br />Data Spaces are fundamentally problem-domain-specific database applications. They offer functionality that you would instinctively expect of a database (e.g. AICD data management) with the additonal benefit of being data model and query language agnostic. Data Spaces are for the most part DBMS Engine and Data Access Middleware hybrids in the sense that ownership and control of data is inherently loosely-coupled. </p> <p>How do Data Spaces and Content Management Systems differ?<br />Data Spaces are inherently more flexible, they support multiple data models and data representation formats. Content management systems do not possess the same degree of data model and data representation dexterity. </p>  <p>How do Data Spaces and Knowledgebases differ?<br />A Data Space cannot dictate the perception of its content. For instance, what I may consider as knowledge relative to my Data Space may not be the case to a remote client that interacts with it from a distance, Thus, defining my Data Space as Knowledgebase, purely, introduces constraints that reduce its broader effectiveness to third party clients (applications, services, users etc..). A Knowledgebase is based on a Graph Data Model resulting in significant impedance for clients that are built around alternative models. To reiterate, Data Spaces support multiple data models.  </p> <p> What Architectural Components make up a Data Space? </p>  <ul> <li>ORDBMS Engine - for Data Modeling agility (via complex purpose specific data types and data access methods), Data Atomicity, Data Concurrency, Transaction Isolation, and Durability (aka ACID).<br />   <br /> </li> <li>Virtual Database Engine - for creating a single view of, and access point to,  heterogeneous SQL, XML, Free Text, and other data. This is all about Virtualization at the Data Access Level.</li> </ul> <ul> <li>Web Services Platform - enabling controlled access and manipulation (via application, service, or protocol logic) of Virtualized or Disparate Data. This layer handles the decoupling of functionality from monolithic wholes for function specific invocation via Web Services using either the SOAP or REST approach.</li> </ul> <br />Where do Data Spaces fit into the Web&#39;s rapid evolution?<br />They are an essential part of the burgeoning Data Web / Semantic Web. In short, they will take us from data âMash-upsâ (combining web accessible data that exists without integration and repurposing in mind) to âMesh-upsâ (combining web accessible data that exists with integration and repurposing in mind).<p> Where can I see a DataSpace along the lines described, in action? </p> <p> Just look at my blog, and take the journey as follows: </p>  <ul> <li>   <a href="http://www.openlinksw.com/blog/%7Ekidehen/">Front Door</a> (Web 1.0)</li> <li>Lounge (Web 2.0) via <a href="http://www.openlinksw.com/GData/127">GData</a> or <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&type=text&kwds=%27semantic+web%27&amp;OpenSearch">OpenSearch</a> </li> <li>Floor Plan via <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/about.rdf">FOAF</a> or <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/sioc.rdf">SIOC</a> RDF Data Sets (Graphs)</li>  <li>Rest of the house (beyond Web 2.0) sendingÂ  <a href="http://virtuoso.openlinksw.com/wiki/main/Main/VOSODSSparqlSamples">SPARQL Queries</a> to a <a href="http://myopenlink.net:8890/sparql/">SPARQL Endpoint</a>.<br />  </li> </ul>  <p> What about other Data Spaces? </p> <p> There are several and I will attempt to categorize along the lines of query method available: <br />Type 1 (Free Text Search over HTTP): <br />Google, MSN, Yahoo!, Amazon, eBay, and most Web 2.0 plays . </p> <p> Type 2 (Free Text Search and XQuery/XPath over HTTP) <br />A few blogs and Wikis (Jon Udell&#39;s and a few others)</p>Type 3 (RDF Data Sets and SPARQL Queryable):<br /> <ul> <li>Â Â  <a href="http://esw.w3.org/topic/SIOC/EnabledSites">SIOC enabled sites</a> (aka points of semantic web presence)<br />
</li>  <li>Â Â  <a href="http://pingthesemanticweb.com/">PingTheSemantic</a> <br />  </li> </ul>Type 4 (Generic Free Text Search, OpenSearch, GData, XQuery/XPath, and SPARQL):<br />Points of Semantic Web presence such as the Data Spaces at: <br /> <ul>  <li>
  <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com">My Blog Data Space</a> (as stated earlier in this post)<br />  </li>  <li>
  <a href="http://myopenlink.net:8890/dataspace/kidehen@openlinksw.com">My General Data Space</a> - (ditto; note that this is currently experimental)<br />  </li> </ul> <p>What About Data Space aware tools?<br /> <br /> </p> <ul> <li>Â Â  <a href="http://demo.openlinksw.com/DAV/JS/oat/index.html/">OpenLink Ajax Toolkit </a>- provides Javascript Control level binding to Query Services such as XMLA for SQL, GData for Free Text, OpenSearch for Free Text, SPARQL for RDF, in addition to service specific Web Services (Web 2.0 hosted solutions that expose service specific APIs)</li> <li>Â Â  <a href="http://rdfs.org/sioc/firefox">Semantic Radar </a>- a Firefox Extension</li> <li>Â Â  <a href="http://pingthesemanticweb.com/">PingTheSemantic</a> - the Semantic Webs equivalent of Web 2.0&#39;s weblogs.com</li> <li>Â Â  <a href="http://simile.mit.edu/piggy-bank/">PiggyBank</a> - a Firefox Extension</li> </ul> <p> </p>    
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-08-08#1023">
  <rss:title>OpenLink Ajax Toolkit (OAT) 1.0 Released</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-08-08T22:11:45Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">We have finally released the 1.0 edition of OAT. OAT offers a broad Javascript-based, browser-independent widget set for building data source independent rich internet applications that are usable across a broad range of Ajax-capable web browsers. OAT&#39;s support binding to the following data sources via its Ajax Database Connectivity Layer: SQL Data via XML for Analysis (XMLA) Web Data via SPARQL, GData, and OpenSearch Query Services Web Services specific Data via service specific binding to SOAP and REST style web services The toolkit includes a collection of powerful rich internet application prototypes include: SQL Query By Example, Visual Database Modeling, and Data bound Web Form Designer. Project homepage on sourceforge.net: http://sourceforge.net/projects/oat Source Code: http://sourceforge.net/projects/oat/files Live demonstration: http://www.openlinksw.com/oat/</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>
We have finally released the 1.0 edition of OAT.
</p>
<p>
OAT offers a broad Javascript-based, browser-independent widget set  
<br />for building data source independent rich internet applications that are usable across a broad range of Ajax-capable web browsers.
</p>
<p>
OAT&#39;s support binding to the following data sources via its Ajax Database Connectivity Layer:
</p>
<p>
SQL Data via XML for Analysis (XMLA)
<br />Web Data via SPARQL, GData, and OpenSearch Query Services
<br />Web Services specific Data via service specific binding to SOAP and REST style web services
</p>
<p>
The toolkit includes a collection of powerful rich internet application prototypes include: SQL Query By Example, Visual Database Modeling, and Data bound Web Form Designer.
</p>
<p>
Project homepage on sourceforge.net:
</p>
<p>
<span style="color:#0000ff;text-decoration:underline;">http://sourceforge.net/projects/oat</span>    
</p>
<p>
Source Code:
</p>
<p>
<span style="color:#0000ff;text-decoration:underline;">http://sourceforge.net/projects/oat/files</span>    
</p>
<p>
Live demonstration:
</p>
<p>
<span style="color:#0000ff;text-decoration:underline;">http://www.openlinksw.com/oat/</span>
</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-06-01#988">
  <rss:title>Contd: Ajax Database Connectivity Demos</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-06-02T02:48:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Last week I put out a series of screencast style demos that sought to demonstrate the core elements of our soon to be released Javascript Toolkit called OAT (OpenLink Ajax Toolkit) and its Ajax Database Connectivity layer. The screencasts covered the following functionality realms: SQL Query By Example (basic) SQL Query By Example (advanced - pivot table construction) Web Form Design (basic database driven map based mashup) Web Form Design (advanced database driven map based mashup) To bring additional clarity to the screencasts demos and OAT in general, I have saved a number of documents that are the by products of activities in the screenvcasts: Live XML Document produced using SQL Query By Example (basic) (you can use drag and drop columns across the grid to reorder and sort presentation) Live XML Document produced using QBE and Pivot Functionality (you can drag and drop the aggregate columns and rows to create your own views etc..) Basic database driven map based mashup (works with FireFox, Webkit, Camino; click on pins to see national flag) Advanced database driven map based mashup (works with FireFox, Webkit, Camino; records, 36, 87, and 257 will unveil pivots via lookup pin) Notes: âAdvancedâ, as used above, simply means that I am embedding images (employee photos and national flags) and a database driven pivot into the map pins that serve as details lookups in classic SQL master/details type scenarios. The âAjax Call In Progress..â dialog is there to show live interaction with a remote database (in this case Virtuoso but this could be any ODBC, JDBC, OLEDB, ADO.NET, or XMLA accessible data source) The data access magic source (if you want to call it that) is XMLA - a standard that has been in place for years but completely misunderstood and as a result under utilized You can see a full collection of saved documents at the following locations: My Mashups demo directory (Google and Yahoo! demo variants but note these do not work with Safari or IE at the current time. IE7 issues will be resolved in the next day or so) My Pivots demo directory (other Pivots will be added as I build and save them) My Saved Queries (a collection of saved QBE generated queries)</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<p> Last week I put out a series of screencast style demos that sought to demonstrate the core elements of our soon to be released Javascript Toolkit called OAT (<a href="http://www.openlinksw.com/oat/">OpenLink Ajax Toolkit</a>) and its Ajax Database Connectivity layer. </p> <p> The screencasts covered the following functionality realms: </p> <ol> <li>   <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=982">SQL Query By Example (basic)</a> </li> <li>   <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=983">SQL Query By Example (advanced - pivot table construction)</a> </li> <li>   <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=981">Web Form Design (basic database driven map based mashup)</a> </li> <li>   <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=985">Web Form Design (advanced database driven map based mashup)</a> </li> </ol> <p> To bring additional clarity to the screencasts demos and OAT in general, I have saved a number of documents that are the by products of activities in the screenvcasts: </p> <ol> <li>   <a href="http://demo.openlinksw.com/public_demos/queries/customer_qry1.xml">Live XML Document produced using SQL Query By Example (basic)</a> (you can use drag and drop columns across the grid to reorder and sort presentation)</li> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/Pivots/employee_sales_by_ship_country_pivot.xml">Live XML Document produced using QBE and Pivot Functionality</a> (you can drag and drop the aggregate columns and rows to create your own views etc..)</li> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/MapMashups/country_flags_google_frm2.xml">Basic database driven map based mashup</a> (works with FireFox, Webkit, Camino; click on pins to see national flag)</li> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/MapMashups/employee_sales_by_ship_country_pivot_google.xml">Advanced database driven map based mashup</a> (works with FireFox, Webkit, Camino; records, 36, 87, and 257 will unveil pivots via lookup pin)</li> </ol> <p> Notes: </p> <ul> <li>âAdvancedâ, as used above,  simply means that I am embedding images (employee photos and national flags) and a database driven pivot into the map pins that serve as details lookups in classic SQL master/details type scenarios.</li> <li>The âAjax Call In Progress..â dialog is there to show live interaction with a remote database (in this case <a href="http://virtuoso.openlinksw.com">Virtuoso</a> but this could be any ODBC, JDBC, OLEDB, ADO.NET, or XMLA accessible data source)</li> <li>The data access magic source (if you want to call it that) is XMLA - a standard that has been in place for years but completely misunderstood and as a result under utilized</li> </ul> <p> You can see a full collection of saved documents at the following locations:   </p> <ul> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/MapMashups/">My Mashups demo directory</a> (Google and Yahoo! demo variants but note these do not work with Safari or IE at the current time. IE7 issues will be resolved in the next day or so) </li> <li>   <a href="http://demo.openlinksw.com/public_demos/reports/Pivots/">My Pivots demo directory</a> (other Pivots will be added as I build and save them) </li> <li>   <a href="http://demo.openlinksw.com/public_demos/queries/">My Saved Queries</a>  (a collection of saved QBE generated queries)</li> </ul>
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#986">
  <rss:title>Screencast: Yahoo! Maps variation of Ajax Database Connectivity Maps Mash-up</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-26T22:49:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">This is a Yahoo! maps variation of the Google Maps based Forms Designer mash-up screencast.  </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
  This is a Yahoo! maps variation of the <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=985">Google Maps based Forms Designer mash-up screencast</a>.<br /> <br /> <br />    
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#985">
  <rss:title>Screencast: Building Database Centric Web 2.0 Mash-ups using Ajax Database Connectivity</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-26T22:38:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">This screencast covers the actual codeless process of building a database centric Web 2.0 mash-up using OAT&#39;s database-aware Forms Designer. This is basically the simplicity of Paradox or Microsoft ACCESS form building delivered via Ajax without any database or operating system lock-in. This demo uses the Google Mapping Service (note: there is a Yahoo! Mapping Service screencast demo that follows this post). Also note that fact that in this demonstration I actually incorporate the Pivot building functionality from an earlier Ajax based Pivot Building screencast.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
     This screencast covers the actual codeless process of building a database centric Web 2.0 mash-up using OAT&#39;s database-aware Forms Designer. This is basically the simplicity of Paradox or Microsoft ACCESS form building delivered via Ajax without any database or operating system lock-in. This demo uses the Google Mapping Service (note: there is a <a href="http://www.openlinksw.com/dataspace/%7Ekidehen/blog/public/Screencasts/oat-formdesigner-mashup-yahoo-maps-demo1.mov">Yahoo! Mapping Service screencast demo</a> that follows this post). Also note that fact that in this demonstration I actually incorporate the Pivot building functionality from an earlier <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=983">Ajax based Pivot Building screencast</a>.<br /> <br />       
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#984">
  <rss:title>Screencast: Using a Live Report (mash-up) that exploits AJAX Database Connectivity</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-26T22:27:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Another demo. This time around you are looking at a quick and dirty mashup assembled using the OAT FormDesigner. There is a follow-on demo that shows how this was assembled (no coding whatsoever!).</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
     Another demo. This time around you are looking at a quick and dirty mashup assembled using the <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=981">OAT FormDesigner</a>. There is a follow-on demo that shows how this was assembled (no coding whatsoever!).<br />       
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#983">
  <rss:title>Building Pivot Tables using Ajax Database Connectivity</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-26T22:08:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">This screencast demo (enclosure attached) is a continuation from my earlier Ajax and QBE screencast demo. This time the focus is on building Excel like Pivot tables using data exposed via Ajax Database Connectivity.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
    This screencast demo (enclosure attached) is a continuation from my earlier <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=982">Ajax and QBE screencast</a> demo. This time the focus is on building Excel like Pivot tables using data exposed via Ajax Database Connectivity.<br />      
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#982">
  <rss:title>Screencast: Ajax Database Connectivity and SQL Query By Example</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-26T21:59:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">AJAX Database Connectivity is the Data Access Component of OAT (OpenLink AJAX Toolkit). It&#39;s basically an XML for Analysis (XMLA) client that enables the development and deployment of database independent Rich Internet Applications (RIAs). Thus, you can now develop database centric AJAX applications without lock-in at the Operating System, Database Connectivity mechanism (ODBC, JDBC, OLEDB, ADO.NET), or back-end Database levels. XMLA has been around for a long time. Its fundamental goal was to provide Web Applications with Tabular and Multi-dimensional data access before it fell off the radar (a story too long to tell in this post). AJAX Database connectivity only requires your target DBMS to be XMLA (direct), ODBC, JDBC, OLEDB, or ADO.NET accessible. I have attached a Query By Example (QBE) screencast movie enclosure to this post (should you be reading this post Web 1.0 style). The demo shows how Paradox-, Quattro Pro-, Access-, and MS Query-like user friendly querying is achieved using AJAX Database  Connect Connectivity</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
  AJAX Database Connectivity is the Data Access Component of OAT (<a href="http://www.openlinksw.com/oat/">OpenLink AJAX Toolkit</a>). It&#39;s basically an <a href="http://www.xmla.org/">XML for Analysis</a> (XMLA) client that enables the development and deployment of database independent Rich Internet Applications (RIAs). Thus, you can now develop database centric AJAX applications without lock-in at the Operating System, Database Connectivity mechanism (ODBC, JDBC, OLEDB, ADO.NET), or back-end Database levels. <br /> <br />XMLA has been around for a long time. Its fundamental goal was to provide Web Applications with Tabular and Multi-dimensional data access before it fell off the radar (a story too long to tell in this post).<br /> <br />AJAX Database connectivity only requires your target DBMS to be XMLA (direct), ODBC, JDBC, OLEDB, or ADO.NET accessible. <br /> <br />I have attached a Query By Example (QBE) screencast movie enclosure to this post (should you be reading this post Web 1.0 style). The demo shows how Paradox-, Quattro Pro-, Access-, and MS Query-like user friendly querying is achieved using AJAX Database  Connect Connectivity<br /> <br />]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-25#981">
  <rss:title>A Web 2.0 Style Mash-up using the OpenLink Ajax Toolkit (OAT)</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-25T20:47:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">We are now on the verge of finally releasing one of the many items discussed in my recent chat with Jon Udell. The item in question is the OpenLink Ajax Toolkit (OAT) that enables the rapid development of Database Independent Rich Internet Applications. My very first public screencast is deliberately silent (since its a live work in progress etc.). The screencast style demo covers the production of a map based mashup that simply unveils the national flag of each country underneath its map marker (a lookup associated with geocoded map pin). This post is also a deliberate test of the automatic production of IPod and Yahoo RSS sytle syndication gems based on the content of my blog post. Naturally, this is a demonstration of the soon to be unveiled OpenLink Data Spaces technology (the one that supports GData and SPARQL Query Services). BTW - The the Data Space that is this blog has been GData aware for a few weeks now (I digress, just watch the movie!): Note: If you are reading this post Web 1.0 style (i.e. via traditional non aggregating browser UI) then click on the &quot;enclosure&quot; link to grab the quicktime movie file. If on the other hand your are reading via a Web 2.0 aggregator, note that the Podcast Gem should alert you to the existence of the movie enclosure.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
           We are now on the verge of finally releasing one of the many items discussed in my recent <a href="http://www.usnet.private:8889/weblog/kidehen@openlinksw.com/127/index.vspx?page=&id=965&sid=e295397b4a9d07fa9c12baf31569aa97&realm=wa">chat with Jon Udell</a>. The item in question is the OpenLink Ajax Toolkit (OAT) that enables the rapid development of Database Independent Rich Internet Applications. My very first public screencast is deliberately silent (since its a live work in progress etc.). <br /> <br />The screencast style demo covers the production of a map based mashup that simply unveils the national flag of each country underneath its map marker (a lookup associated with geocoded map pin).<br /> <br />This post is also a deliberate test of the automatic production of IPod and Yahoo RSS sytle syndication gems based on the content of my blog post. Naturally, this is a demonstration of the soon to be unveiled OpenLink Data Spaces technology (the one that supports GData and SPARQL Query Services).<br /> <br />BTW - The the Data Space that is this blog has been <a href="http://www.openlinksw.com/dataspace/%7Ekidehen/GData">GData</a> aware for a few weeks now (I digress, just watch the movie!):<br /> <br />Note: If you are reading this post Web 1.0 style (i.e. via traditional non aggregating browser UI) then click on the &quot;enclosure&quot; link to grab the quicktime movie file. If on the other hand your are reading via a Web 2.0 aggregator, note that the Podcast Gem should alert you to the existence of the movie enclosure.<br />             
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-11#973">
  <rss:title>SPARQL Parameterized Queries (Virtuoso using SPARQL in SQL)</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-11T18:54:47Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">SPARQL with SQL (Inline) Virtuoso extends its SQL3 implementation with syntax for integrating SPARQL into queries and subqueries.Thus, as part of a SQL SELECT query or subquery, one can write the SPARQL keyword and a SPARQL query as part of query text processed by Virtuoso&#39;s SQL Query Processor. Example 1 (basic) : Using Virtuoso&#39;s Command line or the Web Based ISQL utility type in the following (note: &quot;SQL&gt;&quot; is the command line prompt for the native ISQL utility): SQL&gt; sparql select distinct ?p where { graph ?g { ?s ?p ?o } }; Which will return the following: p varchar ---------- http://example.org/ns#b http://example.org/ns#d http://xmlns.com/foaf/0.1/name http://xmlns.com/foaf/0.1/mbox ... Example 2 (a subquery variation): SQL&gt; select distinct subseq (p, strchr (p, &#39;#&#39;)) as fragment from (sparql select distinct ?p where { graph ?g { ?s ?p ?o } } ) as all_predicates where p like &#39;%#%&#39; ; fragment varchar ---------- #query #data #name #comment ... Parameterized Queries: You can pass parameters to a SPARQL query using a Virtuoso-specific syntax extension. &#39;??&#39; or &#39;$?&#39; indicates a positional parameter similar to &#39;?&#39; in standard SQL. &#39;??&#39; can be used in graph patterns or anywhere else where a SPARQL variable is accepted. The value of a parameter should be passed in SQL form, i.e. this should be a number or an untyped string. An IRI ID can not be passed, but an absolute IRI can. Using this notation, a dynamic SQL capable client (ODBC, JDBC, ADO.NET, OLEDB, XMLA, or others) can execute parametrized SPARQL queries using parameter binding concepts that are common place in dynamic SQL. Which implies that existing SQL applications and development environments (PHP, Ruby, Python, Perl, VB, C#, Java, etc.) are capable of issuing SPARQL queries via their existing SQL bound data access channels against RDF Data stored in Virtuoso. Note: This is the Virtuoso equivalent of a recently published example using Jena (a Java based RDF Triple Store). Example: Create a Virtuoso Function by execting the following: SQL&gt; create function param_passing_demo (); { declare stat, msg varchar; declare mdata, rset any; exec (&#39;sparql select ?s where { graph ?g { ?s ?? ?? }}&#39;, stat, msg, vector (&#39;http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#int1&#39;, 4 ), -- Vector of two parameters 10, -- Max. result-set rows mdata, -- Variable for handling result-set metadata rset -- Variable for handling query result-set ); return rset[0][0]; } Test new &quot;param_passing_demo&quot; function by executing the following: SQL&gt; select param_passing_demo (); Which returns: callret VARCHAR _______________________________________________________________________________ http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#four 1 Rows. -- 00000 msec. Â  Using SPARQL in SQL Predicates: A SPARQL ASK query can be used as an argument of the SQL EXISTS predicate. create function sparql_ask_demo () returns varchar { if (exists (sparql ask where { graph ?g { ?s ?p 4}})) return &#39;YES&#39;; else return &#39;NO&#39;; }; Test by executing: SQL&gt; select sparql_ask_demo (); Which returns: _________________________ YES</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>SPARQL with SQL (Inline) </h2>

<p>Virtuoso extends its SQL3 implementation with syntax for integrating SPARQL into queries and subqueries.Thus, as part of a SQL SELECT query or subquery, one can write the SPARQL keyword and a SPARQL query as part of query text processed by Virtuoso&#39;s SQL Query Processor.</p>

<h4>Example 1 (basic) : </h4>
<p>Using Virtuoso&#39;s  Command line or the Web Based ISQL utility type in the following (note: &quot;SQL&gt;&quot; is the command line prompt for the native ISQL utility): </p>
<pre>SQL&gt; sparql select distinct ?p where { graph ?g { ?s ?p ?o } };</pre>
<p>Which will return the following: </p>
<blockquote>
  <pre>	  p varchar
     ----------
     http://example.org/ns#b
     http://example.org/ns#d
     http://xmlns.com/foaf/0.1/name
     http://xmlns.com/foaf/0.1/mbox
     ...   </pre>
</blockquote>
<h4>Example 2 (a subquery variation):</h4>

<pre>SQL&gt; select distinct subseq (p, strchr (p, &#39;#&#39;)) as fragment
 from (sparql select distinct ?p where { graph ?g { ?s ?p ?o } } ) as all_predicates
 where p like &#39;%#%&#39; ;</pre>
<blockquote>
  <pre>
     fragment varchar
     ----------
     #query
     #data
     #name
     #comment
     ...</pre>
</blockquote>
<h3>Parameterized Queries:</h3>
 <p>You can pass parameters to a SPARQL query using a Virtuoso-specific syntax extension. &#39;??&#39; or &#39;$?&#39; indicates a positional parameter similar to &#39;?&#39; in standard SQL. &#39;??&#39; can be used in graph patterns or anywhere else where a SPARQL variable is accepted. The value of a parameter should be passed in SQL form, i.e. this should be a number or an untyped string. An IRI ID can not be passed, but an absolute IRI can.
Using this notation, a dynamic SQL capable client (ODBC, JDBC, ADO.NET, OLEDB, XMLA, or others) can execute parametrized SPARQL queries using parameter binding concepts that are common place in dynamic SQL. Which implies that existing SQL applications and development environments (PHP, Ruby, Python, Perl, VB, C#, Java, etc.) are capable of issuing SPARQL queries via their existing SQL bound data access channels against RDF Data stored in Virtuoso. </p>
 <p>Note: This is the Virtuoso equivalent of a <a href="http://seaborne.blogspot.com/2006/05/parameterized-queries_07.html">recently published example using Jena </a>(a Java based RDF Triple Store).</p>
 <h3>Example:</h3>

<p>Create a Virtuoso Function by execting the following: </p>

<pre>SQL&gt; create function param_passing_demo ();
 {
 	declare stat, msg varchar;
 	declare mdata, rset any;
 	exec (&#39;sparql select ?s where { graph ?g { ?s ?? ?? }}&#39;,
 			stat, msg,
 			vector (&#39;http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#int1&#39;,
 		  		   4 ),	-- Vector of two parameters 
			10,			-- Max. result-set rows
			mdata, 		-- Variable for handling result-set metadata
 		 	rset   		-- Variable for handling query result-set
		 ); 
     return rset[0][0];
 }

</pre>
Test new &quot;param_passing_demo&quot; function by executing the following: <br />
<pre>SQL&gt; select param_passing_demo ();
</pre>
<p>Which returns: </p>
<blockquote>
  <pre>
callret VARCHAR
 _______________________________________________________________________________</pre>
  <pre>http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#four</pre>
  <pre>1 Rows. -- 00000 msec.</pre>
</blockquote>
<h3>Â </h3>

<h3>Using SPARQL in SQL Predicates:</h3>

<p>A SPARQL ASK query can be used as an argument of the SQL EXISTS predicate.</p>

<pre>create function sparql_ask_demo () returns varchar
  {
 		if (exists (sparql ask where { graph ?g { ?s ?p 4}})) return &#39;YES&#39;;
 		else return &#39;NO&#39;;
   };
</pre>

<p>
<br />
    Test by executing: </p>
<pre>SQL&gt; select sparql_ask_demo ();
</pre>
<p>Which returns:</p>
<pre>_________________________
YES</pre>
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-05#968">
  <rss:title>&quot;Free&quot; Databases: Express vs. Open-Source RDBMSs</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-05-05T16:02:17Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Very detailed and insightful peek into the state of affairs re. database engines (Open &amp; Closed Source). I added the missing piece regarding the &quot;Virtuoso Conductor&quot; (the Web based Admin UI for Virtuoso) to the original post below. I also added a link to our live SPARQL Demo so that anyone interested can start playing around with SPARQL and SPARQL integrated into SQL right away. Another good thing about this post is the vast amount of valuable links that it contains. To really appreciate this point simply visit my Linkblog (excuse the current layout :-) - a Tab if you come in via the front door of this Data Space (what I used to call My Weblog Home Page). &quot;Free&quot; Databases: Express vs. Open-Source RDBMSs: &quot;Open-source relational database management systems (RDBMSs) are gaining IT mindshare at a rapid pace. As an example, BusinessWeek&#39;s February 6, 2006 &#39; Taking On the Database Giants &#39; article asks &#39;Can open-source upstarts compete with Oracle, IBM, and Microsoft?&#39; and then provides the answer: &#39;It&#39;s an uphill battle, but customers are starting to look at the alternatives.&#39; There&#39;s no shortage of open-source alternatives to look at. The BusinessWeek article concentrates on MySQL, which BW says &#39;is trying to be the Ikea of the database world: cheap, needs some assembly, but has a sleek, modern design and does the job.&#39; The article also discusses Postgre[SQL] and Ingres, as well as EnterpriseDB, an Oracle clone created from PostgreSQL code*. Sun includes PostgreSQL with Solaris 10 and, as of April 6, 2006, with Solaris Express.** *Frank Batten, Jr., the investor who originally funded Red Hat, invested a reported $16 million into Great Bridge with the hope of making a business out of providing paid support to PostgreSQL users. Great Bridge stayed in business only 18 months , having missed an opportunity to sell the business to Red Hat and finding that selling $50,000-per-year support packages for an open-source database wasn&#39;t easy. As Batten concluded, &#39;We could not get customers to pay us big dollars for support contracts.&#39; Perhaps EnterpriseDB will be more successful with a choice of $5,000, $3,000, or $1,000 annual support subscriptions . **Interestingly, Oracle announced in November 2005 that Solaris 10 is &#39;its preferred development and deployment platform for most x64 architectures, including x64 (x86, 64-bit) AMD Opteron and Intel Xeon processor-based systems and Sun&#39;s UltraSPARC(R)-based systems.&#39; There is a surfeit of reviews of current MySQL, PostgreSQL andâto a lesser extentâIngres implementations. These three open-source RDBMSs come with their own or third-party management tools. These systems compete against free versions of commercial (proprietary) databases: SQL Server 2005 Express Edition (and its MSDE 2000 and 1.0 predecessors), Oracle Database 10g Express Edition, IBM DB2 Express-C, and Sybase ASE Express Edition for Linux where database size and processor count limitations aren&#39;t important. Click here for a summary of recent InfoWorld reviews of the full versions of these four databases plus MySQL, which should be valid for Express editions also. The FTPOnline Special Report article, &#39;Microsoft SQL Server Turns 17,&#39; that contains the preceding table is here (requires registration.) SQL Server 2005 Express Edition SP-1 Advanced Features SQL Server 2005 Express Edition with Advanced Features enhances SQL Server 2005 Express Edition (SQL Express or SSX) dramatically, so it deserves special treatment here. SQL Express gains full text indexing and now supports SQL Server Reporting Services (SSRS) on the local SSX instance. The SP-1 with Advanced Features setup package, which Microsoft released on April 18, 2006, installs the release version of SQL Server Management Studio Express (SSMSE) and the full version of Business Intelligence Development Studio (BIDS) for designing and editing SSRS reports. My &#39;Install SP-1 for SQL Server 2005 and Express&#39; article for FTPOnline&#39;s SQL Server Special Report provides detailed, illustrated installation instructions for and related information about the release version of SP-1. SP-1 makes SSX the most capable of all currently available Express editions of commercial RDBMSs for Windows. OpenLink Software&#39;s Virtuoso Open-Source Edition OpenLink Software announced an open-source version of it&#39;s Virtuoso Universal Server commercial DBMS on April 11, 2006. On the initial date of this post, May 2, 2006, Virtuoso Open-Source Edition (VOS) was virtually under the radar as an open-source product. According to this press release, the new edition includes: SPARQL compliant RDF Triple Store SQL-200n Object-Relational Database Engine (SQL, XML, and Free Text) Integrated BPEL Server and Enterprise Service Bus WebDAV and Native File Server Web Application Server that supports PHP, Perl, Python, ASP.NET, JSP, etc. Runtime Hosting for Microsoft .NET, Mono, and Java VOS only lacks the virtual server and replication features that are offered by the commercial edition. VOS includes a Web-based administration tool called the &quot;Virtuoso Conductor&quot; According to Kingsley Idehen&#39;s Weblog, &#39;The Virtuoso build scripts have been successfully tested on Mac OS X (Universal Binary Target), Linux, FreeBSD, and Solaris (AIX, HP-UX, and True64 UNIX will follow soon). A Windows Visual Studio project file is also in the works (ETA some time this week).&#39; InfoWorld&#39;s Jon Udell has tracked Virtuoso&#39;s progress since 2002, with an additional article in 2003 and a one-hour podcast with Kingsley Idehen on April 26, 2006. A major talking point for Virtuoso is its support for Atom 0.3 syndication and publication, Atom 1.0 syndication and (forthcoming) publication, and future support for Google&#39;s GData protocol, as mentioned in this Idehen post. Yahoo!&#39;s Jeremy Zawodny points out that the &#39;fingerprints&#39; of Adam Bosworth, Google&#39;s VP of Engineering and the primary force behind the development of Microsoft Access, &#39;are all over GData.&#39; Click here to display a list of all OakLeaf posts that mention Adam Bosworth. One application for the GData protocol is querying and updating the Google Base database independently of the Google Web client, as mentioned by Jeremy: &#39;It&#39;s not about building an easier onramp to Google Base. ... Well, it is. But, again, that&#39;s the small stuff.&#39; Click here for a list of posts about my experiences with Google Base. Watch for a future OakLeaf post on the subject as the GData APIs gain ground. Open-Source and Free Embedded Database Contenders Open-source and free embedded SQL databases are gaining importance as the number and types of mobile devices and OSs proliferate. Embedded databases usually consist of Java classes or Windows DLLs that are designed to minimize file size and memory consumption. Embedded databases avoid the installation hassles, heavy resource usage and maintenance cost associated with client/server RDBMSs that run as an operating system service. Andrew Hudson&#39;s December 2005 &#39;Open Source databases rounded up and rodeoed&#39; review for The Enquirer provides brief descriptions of one commercial and eight open source database purveyors/products: Sleepycat, MySQL, PostgreSQL, Ingres, InnoBase, Firebird, IBM Cloudscape (a.k.a, Derby), Genezzo, and Oracle. Oracle Sleepycat* isn&#39;t an SQL Database, Oracle InnoDB* is an OEM database engine that&#39;s used by MySQL, and Genezzo is a multi-user, multi-server distributed database engine written in Perl. These special-purpose databases are beyond the scope of this post. * Oracle purchased Sleepycat Software, Inc. in February 2006 and purchased Innobase OY in October 2005 . The press release states: &#39;Oracle intends to continue developing the InnoDB technology and expand our commitment to open source software.&#39; Derby is an open-source release by the Apache Software Foundation of the Cloudscape Java-based database that IBM acquired when it bought Informix in 2001. IBM offers a commercial release of Derby as IBM Cloudscape 10.1. Derby is a Java class library that has a relatively light footprint (2 MB), which make it suitable for client/server synchronization with the IBM DB2 Everyplace Sync Server in mobile applications. The IBM DB2 Everyplace Express Edition isn&#39;t open source or free*, so it doesn&#39;t qualify for this post. The same is true for the corresponding Sybase SQL Anywhere components.** * IBM DB2 Everyplace Express Edition with synchronization costs $379 per server (up to two processors) and $79 per user. DB2 Everyplace Database Edition (without DB2 synchronization) is $49 per user. (Prices are based on those when IBM announced version 8 in November 2003.) ** Sybase&#39;s iAnywhere subsidiary calls SQL Anywhere &#39;the industry&#39;s leading mobile database.&#39; A Sybase SQL Anywhere Personal DB seat license with synchronization to SQL Anywhere Server is $119; the cost without synchronization wasn&#39;t available from the Sybase Web site. Sybase SQL Anywhere and IBM DB2 Everyplace perform similar replication functions. Sun&#39;s Java DB, another commercial version of Derby, comes with the Solaris Enterprise Edition, which bundles Solaris 10, the Java Enterprise System, developer tools, desktop infrastructure and N1 management software. A recent Between the Lines blog entry by ZDNet&#39;s David Berlind waxes enthusiastic over the use of Java DB embedded in a browser to provide offline persistence. RedMonk analyst James Governor and eWeek&#39;s Lisa Vaas wrote about the use of Java DB as a local data store when Tim Bray announced Sun&#39;s Derby derivative and Francois Orsini demonstrated Java DB embedded in the Firefox browser at the ApacheCon 2005 conference. Firebird is derived from Borland&#39;s InterBase 6.0 code, the first commercial relational database management system (RDBMS) to be released as open source. Firebird has excellent support for SQL-92 and comes in three versions: Classic, SuperServer and Embedded for Windows, Linux, Solaris, HP-UX, FreeBSD and MacOS X. The embedded version has a 1.4-MB footprint. Release Candidate 1 for Firebird 2.0 became available on March 30, 2006 and is a major improvement over earlier versions. Borland continues to promote InterBase, now at version 7.5, as a small-footprint, embedded database with commercial Server and Client licenses. SQLite is a featherweight C library for an embedded database that implements most SQL-92 entry- and transitional-level requirements (some through the JDBC driver) and supports transactions within a tiny 250-KB code footprint. Wrappers support a multitude of languages and operating systems, including Windows CE, SmartPhone, Windows Mobile, and Win32. SQLite&#39;s primary SQL-92 limitations are lack of nested transactions, inability to alter a table design once committed (other than with RENAME TABLE and ADD COLUMN operations), and foreign-key constraints. SQLite provides read-only views, triggers, and 256-bit encryption of database files. A downside is the the entire database file is locked when while a transaction is in progress. SQLite uses file access permissions in lieu of GRANT and REVOKE commands. Using SQLite involves no license; its code is entirely in the public domain. The Mozilla Foundation&#39;s Unified Storage wiki says this about SQLite: &#39;SQLite will be the back end for the unified store [for Firefox]. Because it implements a SQL engine, we get querying &#39;for free&#39;, without having to invent our own query language or query execution system. Its code-size footprint is moderate (250k), but it will hopefully simplify much existing code so that the net code-size change should be smaller. It has exceptional performance, and supports concurrent access to the database. Finally, it is released into the public domain, meaning that we will have no licensing issues.&#39; Vieka Technology, Inc.&#39;s eSQL 2.11 is a port of SQLite to Windows Mobile (Pocket PC and Smartphone) and Win32, and includes development tools for Windows devices and PCs, as well as a .NET native data provider. A conventional ODBC driver also is available. eSQL for Windows (Win32) is free for personal and commercial use; eSQL for Windows Mobile requires a license for commercial (for-profit or business) use. HSQLDB isn&#39;t on most reviewers&#39; radar, which is surprising because it&#39;s the default database for OpenOffice.org (OOo) 2.0&#39;s Base suite member. HSQLDB 1.8.0.1 is an open-source (BSD license) Java dembedded database engine based on Thomas Mueller&#39;s original Hypersonic SQL Project. Using OOo&#39;s Base feature requires installing the Java 2.0 Runtime Engine (which is not open-source) or the presence of an alternative open-source engine, such as Kaffe. My prior posts about OOo Base and HSQLDB are here, here and here. The HSQLDB 1.8.0 documentation on SourceForge states the following regarding SQL-92 and later conformance: HSQLDB 1.8.0 supports the dialect of SQL defined by SQL standards 92, 99 and 2003. This means where a feature of the standard is supported, e.g. left outer join, the syntax is that specified by the standard text. Many features of SQL92 and 99 up to Advanced Level are supported and here is support for most of SQL 2003 Foundation and several optional features of this standard. However, certain features of the Standards are not supported so no claim is made for full support of any level of the standards. Other less well-known embedded databases designed for or suited to mobile deployment are Mimer SQL Mobile and VistaDB 2.1 . Neither product is open-source and require paid licensing; VistaDB requires a small up-front payment by developers but offers royalty-free distribution. Java DB, Firebird embedded, SQLite and eSQL 2.11 are contenders for lightweight PC and mobile device database projects that aren&#39;t Windows-only. SQL Server 2005 Everywhere If you&#39;re a Windows developer, SQL Server Mobile is the logical embedded database choice for mobile applications for Pocket PCs and Smartphones. Microsoft&#39;s April 19, 2006 press release delivered the news that SQL Server 2005 Mobile Editon (SQL Mobile or SSM) would gain a big brotherâSQL Server 2005 Everywhere Edition. Currently, the SSM client is licensed (at no charge) to run in production on devices with Windows CE 5.0, Windows Mobile 2003 for Pocket PC or Windows Mobile 5.0, or on PCs with Windows XP Tablet Edition only. SSM also is licensed for development purposes on PCs running Visual Studio 2005. Smart Device replication with SQL Server 2000 SP3 and later databases has been the most common application so far for SSM. By the end of 2006, Microsoft will license SSE for use on all PCs running any Win32 version or the preceding device OSs. A version of SQL Server Management Studio Express (SSMSE)âupdated to support SSEâis expected to release by the end of the year. These features will qualify SSE as the universal embedded database for Windows client and smart-device applications. For more details on SSE, read John Galloway&#39;s April 11, 2006 blog post and my &#39;SQL Server 2005 Mobile Goes Everywhere&#39; article for the FTPOnline Special Report on SQL Server.&quot; (Via OakLeaf Systems.)</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
 <p>Very detailed and insightful peek into the state of affairs re. database engines (Open &amp; Closed Source).</p>   <p>I added the missing piece regarding the &quot;Virtuoso Conductor&quot; (the Web based Admin UI for Virtuoso) to the original post below. I also added a link to our live SPARQL Demo so that anyone interested can start playing around with SPARQL and SPARQL integrated into SQL right away.</p>  <p>Another good thing about this post is the vast amount of valuable links that it contains. To really appreciate this point simply visit my Linkblog (excuse the current layout :-) - a Tab if you come in via the front door of this <a href="http://www.infoworld.com/opinions/index.html">Data Space</a> (what I used to call <a href="http://www.openlinksw.com/blog/%7Ekidehen/">My Weblog Home Page</a>).</p>   <blockquote>  <p>   <a href="http://oakleafblog.blogspot.com/2006/05/free-databases-express-vs-open-source.html">&quot;Free&quot; Databases: Express vs. Open-Source RDBMSs</a>: &quot;<span style="font-family: verdana;">Open-source relational database management systems (RDBMSs) are gaining IT mindshare at a rapid pace. As an example, <em>BusinessWeek</em>&#39;s February 6, 2006 &#39;</span>   <a href="http://www.businessweek.com/technology/content/feb2006/tc20060206_918648.htm"><span style="font-family: verdana;">Taking On the Database Giants</span>   </a><span style="font-family: verdana;">&#39; article asks &#39;Can open-source upstarts compete with Oracle, IBM, and Microsoft?&#39; and then provides the answer: &#39;It&#39;s an uphill battle, but customers are starting to look at the alternatives.&#39;</span>   <br />   <span style="font-family: Verdana;"></span>   <br />   <span style="font-family: Verdana;">There&#39;s no shortage of open-source alternatives to look at. The <em>BusinessWeek</em> article concentrates on <a href="http://www.mysql.com/">MySQL</a>, which <em>BW</em> says &#39;is trying to be the Ikea of the database world: cheap, needs some assembly, but has a sleek, modern design and does the job.&#39; The article also discusses <a href="http://www.postgresql.org/">Postgre[SQL]</a> and <a href="http://www.ingres.com/products/Prod_Ingres_2006.html">Ingres</a>, as well as <a href="http://www.enterprisedb.com/">EnterpriseDB</a>, an Oracle clone created from PostgreSQL code*. Sun includes <a href="http://www.sun.com/software/solaris/postgres.jsp">PostgreSQL with Solaris 10</a> and, as of April 6, 2006, with <a href="http://docs.sun.com/app/docs/doc/819-2183/6n4g726uc?a=view">Solaris Express</a>.**</span>   <br />   <span style="font-family: Verdana;"></span>   <br />   <span style="font-family: Verdana;"><span style="font-size: 85%;">*Frank Batten, Jr., the investor who originally funded Red Hat, invested a reported </span>    <a href="http://www.theinquirer.net/?article=28201"><span style="font-size: 85%;">$16 million into Great Bridge</span>    </a><span style="font-size: 85%;"> with the hope of making a business out of providing paid support to PostgreSQL users. </span>    <a href="http://news.com.com/2100-1001-272715.html"><span style="font-size: 85%;">Great Bridge stayed in business only 18 months</span>    </a><span style="font-size: 85%;">, having </span>    <a href="http://news.com.com/2100-1001-268915.html"><span style="font-size: 85%;">missed an opportunity to sell the business to Red Hat</span>    </a><span style="font-size: 85%;"> and finding that selling </span>    <a href="http://news.com.com/2100-1001-269729.html"><span style="font-size: 85%;">$50,000-per-year support packages</span>    </a><span style="font-size: 85%;"> for an open-source database wasn&#39;t easy. As Batten concluded, &#39;We could not get customers to pay us big dollars for support contracts.&#39; Perhaps EnterpriseDB will be more successful with a choice of </span>    <a href="http://www.enterprisedb.com/shop.do?cID=10000&pID=10001"><span style="font-size: 85%;">$5,000, $3,000, or $1,000 annual support subscriptions</span>    </a><span style="font-size: 85%;">.</span>   </span>   <br />   <span style="font-family: Verdana;"></span><span style="font-family: Verdana;"></span><span style="font-family: Verdana;"></span>   <br />   <span style="font-family: Verdana; font-size: 85%;">**Interestingly, <a href="http://www.sun.com/smi/Press/sunflash/2005-11/sunflash.20051115.4.xml">Oracle announced in November 2005</a> that Solaris 10 is &#39;its preferred development and deployment platform for most x64 architectures, including x64 (x86, 64-bit) AMD Opteron and Intel Xeon processor-based systems and Sun&#39;s UltraSPARC(R)-based systems.&#39;</span>   <br />   <br />   <span style="font-family: Verdana;">There is a surfeit of reviews of current MySQL, PostgreSQL andâto a lesser extentâIngres implementations. These three open-source RDBMSs come with their own or third-party management tools. These systems compete against free versions of commercial (proprietary) databases: <a href="http://msdn.microsoft.com/vstudio/express/sql/">SQL Server 2005 Express Edition</a> (and its MSDE 2000 and 1.0 predecessors), <a href="http://www.oracle.com/technology/products/database/xe/index.html" target="_blank">Oracle Database 10g Express Edition</a>, <a href="http://www-306.ibm.com/software/data/db2/udb/db2express/download.html" target="_blank">IBM DB2 Express-C</a>, and <a href="http://www.sybase.com/linux_promo" target="_blank">Sybase ASE Express Edition for Linux</a> where database size and processor count limitations aren&#39;t important. Click <a href="http://www.ftponline.com/special/sqlserver/rjennings-overview/table4.aspx">here</a> for a summary of recent <em>InfoWorld</em> reviews of the full versions of these four databases plus MySQL, which should be valid for Express editions also. The <a href="http://www.ftponline.com/special/sqlserver/">FTPOnline Special Report</a> article, &#39;Microsoft SQL Server Turns 17,&#39; that contains the preceding table is <a href="http://www.ftponline.com/special/sqlserver/rjennings-overview/">here</a> (requires registration.)</span>   <br />   <br />  </p>  <p>   <strong><span style="font-family: verdana;">SQL Server 2005 Express Edition SP-1 Advanced Features</span>   </strong>  </p>  <p>   <span style="font-family: Verdana;"><a href="http://www.microsoft.com/downloads/details.aspx?familyid=4C6BA9FD-319A-4887-BC75-3B02B5E48A40&displaylang=en">SQL Server 2005 Express Edition with Advanced Features</a> enhances SQL Server 2005 Express Edition (SQL Express or SSX) dramatically, so it deserves special treatment here. SQL Express gains full text indexing and now supports SQL Server Reporting Services (SSRS) on the local SSX instance. The SP-1 with Advanced Features setup package, which Microsoft released on April 18, 2006, installs the release version of SQL Server Management Studio Express (SSMSE) and the full version of Business Intelligence Development Studio (BIDS) for designing and editing SSRS reports. My &#39;<a href="http://www.ftponline.com/special/sqlserver/rjennings-sp1/">Install SP-1 for SQL Server 2005 and Express</a>&#39; article for FTPOnline&#39;s <a href="http://www.ftponline.com/special/sqlserver/">SQL Server Special Report</a> provides detailed, illustrated installation instructions for and related information about the release version of SP-1. SP-1 makes SSX the most capable of all currently available Express editions of commercial RDBMSs for Windows.</span>  </p>  <p>   <strong><span style="font-family: verdana;">OpenLink Software&#39;s Virtuoso Open-Source Edition</span>   </strong>   <br />   <span style="font-family: verdana;"></span>   <br />   <span style="font-family: verdana;"><a href="http://openlinksw.com/">OpenLink Software</a> announced an <a href="http://virtuoso.openlinksw.com/wiki/main/Main/">open-source version</a> of it&#39;s <a href="http://virtuoso.openlinksw.com/">Virtuoso Universal Server</a> commercial DBMS on April 11, 2006. On the initial date of this post, May 2, 2006, Virtuoso Open-Source Edition (VOS) was virtually under the radar as an open-source product. According to <a href="http://www.openlinksw.com/press/VOSPressRelease.htm">this press release</a>, the new edition includes:</span> <span style="font-family: Verdana;"></span>  </p>  <blockquote>   <span style="font-family: Verdana;"></span>  </blockquote> <blockquote></blockquote> <blockquote></blockquote>  <ul>   <li>     <a href="http://demo.openlinksw.com/sparql_demo/">SPARQL compliant RDF Triple Store</a> </li>   <li>SQL-200n Object-Relational Database Engine (SQL, XML, and Free Text) </li>   <li>Integrated BPEL Server and Enterprise Service Bus</li>   <li>WebDAV and Native File Server </li>   <li>Web Application Server that supports PHP, Perl, Python, ASP.NET, JSP, etc. </li>   <li>Runtime Hosting for Microsoft .NET, Mono, and Java </li>  </ul>VOS only lacks the virtual server and replication features that are offered by the commercial edition. VOS includes a Web-based administration tool called the &quot;Virtuoso Conductor&quot; According to <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=951&sid=&realm=">Kingsley Idehen&#39;s Weblog</a>, &#39;The Virtuoso build scripts have been successfully tested on Mac OS X (Universal Binary Target), Linux, FreeBSD, and Solaris (AIX, HP-UX, and True64 UNIX will follow soon). A Windows Visual Studio project file is also in the works (ETA some time this week).&#39;<br /> <br /> <em>InfoWorld</em>&#39;s Jon Udell has tracked Virtuoso&#39;s progress since <a href="http://www.infoworld.com/article/02/04/12/020415plvirtuoso_1.html">2002</a>, with an <a href="http://www.infoworld.com/article/03/03/21/12virtuoso_1.html">additional article in 2003</a> and a <a href="http://weblog.infoworld.com/udell/2006/04/28.html#a1437">one-hour podcast with Kingsley Idehen</a> on April 26, 2006. A major talking point for Virtuoso is its support for Atom 0.3 syndication and publication, Atom 1.0 syndication and (forthcoming) publication, and future support for Google&#39;s <a href="http://code.google.com/apis/gdata/overview.html">GData protocol</a>, as mentioned in <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=965">this Idehen post</a>. Yahoo!&#39;s <a href="http://jeremy.zawodny.com/blog/archives/006687.html">Jeremy Zawodny</a> points out that the &#39;fingerprints&#39; of <a href="http://oakleafblog.blogspot.com/2005/11/adam-bosworth-learning-from-web-and.html">Adam Bosworth</a>, Google&#39;s VP of Engineering and the primary force behind the development of Microsoft Access, &#39;are all over GData.&#39; Click <a href="http://search.blogger.com/?as_q=bosworth&ie=UTF-8&ui=blg&amp;bl_url=oakleafblog.blogspot.com&x=50&y=10">here</a> to display a list of all OakLeaf posts that mention Adam Bosworth.<br /> <br />One application for the GData protocol is querying and updating the Google Base database independently of the Google Web client, as mentioned by Jeremy: &#39;It&#39;s not about building an easier onramp to Google Base. ... Well, it is. But, again, that&#39;s the small stuff.&#39; Click <a href="http://search.blogger.com/?as_q=%22google+base%22&ie=UTF-8&x=50&y=9&q=%22google+base%22+blogurl:oakleafblog.blogspot.com&filter=0&ui=blg&sa=N&start=0">here</a> for a list of posts about my experiences with Google Base. Watch for a future OakLeaf post on the subject as the GData APIs gain ground.<br /> <span style="font-family: Verdana;"></span> <br />  <span style="font-family: Verdana;"><strong>Open-Source and Free Embedded Database Contenders</strong>  </span> <br /> <span style="font-family: Verdana;"></span> <br /> <span style="font-family: Verdana;">Open-source and free embedded SQL databases are gaining importance as the number and types of mobile devices and OSs proliferate. Embedded databases usually consist of Java classes or Windows DLLs that are designed to minimize file size and memory consumption. Embedded databases avoid the installation hassles, heavy resource usage and maintenance cost associated with client/server RDBMSs that run as an operating system service.</span> <br /> <br /> <span style="font-family: Verdana;">Andrew Hudson&#39;s December 2005 &#39;<a href="http://www.theinquirer.net/?article=28201">Open Source databases rounded up and rodeoed</a>&#39; review for The Enquirer provides brief descriptions of one commercial and eight open source database purveyors/products: Sleepycat, MySQL, PostgreSQL, Ingres, InnoBase, Firebird, IBM Cloudscape (a.k.a, Derby), Genezzo, and Oracle. Oracle <a href="http://www.sleepycat.com/">Sleepycat</a>* isn&#39;t an SQL Database, Oracle <a href="http://www.innodb.com/index.php">InnoDB</a>* is an OEM database engine that&#39;s used by MySQL, and <a href="http://www.genezzo.com/">Genezzo</a> is a multi-user, multi-server distributed database engine written in Perl. These special-purpose databases are beyond the scope of this post.</span> <br /> <br />  <span style="font-family: Verdana;"><span style="font-size: 85%;">* Oracle <a href="http://www.oracle.com/sleepycat/index.html">purchased Sleepycat Software, Inc. in February 2006</a> and </span>   <a href="http://www.oracle.com/innodb/index.html"><span style="font-size: 85%;">purchased Innobase OY in October 2005</span>   </a><span style="font-size: 85%;">. The press release states: &#39;Oracle intends to continue developing the InnoDB technology and expand our commitment to open source software.&#39; </span>  </span> <br /> <span style="font-family: Verdana; font-size: 85%;"></span> <br /> <span style="font-family: Verdana;">   <a href="http://db.apache.org/derby/"><strong>Derby</strong>   </a> is an open-source release by the <a href="http://www.apache.org/">Apache Software Foundation</a> of the <a href="http://www.infoworld.com/article/04/08/03/HNcloudscape_1.html">Cloudscape Java-based database that IBM acquired</a> when it bought Informix in 2001. IBM offers a commercial release of Derby as <a href="http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0408cline/">IBM Cloudscape 10.1</a>. Derby is a Java class library that has a relatively light footprint (2 MB), which make it suitable for <a href="http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0503stumpf/">client/server synchronization</a> with the IBM DB2 Everyplace Sync Server in <a href="http://www-128.ibm.com/developerworks/library/wi-cloud/">mobile applications</a>. The IBM DB2 Everyplace Express Edition isn&#39;t open source or free*, so it doesn&#39;t qualify for this post. The same is true for the corresponding Sybase SQL Anywhere components.**</span> <br /> <br /> <br />  <p>   <span style="font-family: verdana; font-size: 85%;">* IBM DB2 Everyplace Express Edition with synchronization costs $379 per server (up to two processors) and $79 per user. DB2 Everyplace Database Edition (without DB2 synchronization) is $49 per user. (Prices are based on those when </span>   <a href="http://news.earthweb.com/wireless/article.php/3107101"><span style="font-family: verdana; font-size: 85%;">IBM announced version 8</span>   </a><span style="font-family: verdana; font-size: 85%;"> in November 2003.)</span>  </p>  <p>   <span style="font-family: verdana; font-size: 85%;">** Sybase&#39;s iAnywhere subsidiary calls SQL Anywhere &#39;the industry&#39;s leading mobile database.&#39; A Sybase SQL Anywhere Personal DB seat license with synchronization to SQL Anywhere Server is $119; the cost without synchronization wasn&#39;t available from the Sybase Web site. Sybase SQL Anywhere and IBM DB2 Everyplace perform similar replication functions.</span>  </p>  <p>   <span style="font-family: Verdana;">Sun&#39;s <a href="http://developers.sun.com/prodtech/javadb/"><strong>Java DB</strong></a>, another commercial version of Derby, comes with the <a href="http://www.sun.com/software/solaris/">Solaris Enterprise Edition</a>, which bundles Solaris 10, the Java Enterprise System, developer tools, desktop infrastructure and N1 management software. A recent Between the Lines blog entry by ZDNet&#39;s David Berlind waxes enthusiastic over the use of <a href="http://blogs.zdnet.com/BTL/?p=2298">Java DB embedded in a browser</a> to provide offline persistence. RedMonk analyst <a href="http://www.redmonk.com/jgovernor/archives/001151.html">James Governor</a> and <em>eWeek</em>&#39;s <a href="http://www.eweek.com/article2/0,1895,1902407,00.asp">Lisa Vaas</a> wrote about the use of Java DB as a local data store when <a href="http://www.sauria.com/blog/2005/12/13#1440">Tim Bray announced Sun&#39;s Derby derivative</a> and <a href="http://blogs.sun.com/roller/page/FrancoisOrsini?entry=derby_apachecon_demo">Francois Orsini</a> demonstrated Java DB embedded in the Firefox browser at the ApacheCon 2005 conference.</span>   <br />   <span style="font-family: Verdana;"></span>   <br />   <span style="font-family: Verdana;">    <a href="http://www.firebirdsql.org/"><strong>Firebird</strong>    </a> is derived from Borland&#39;s InterBase 6.0 code, the first commercial relational database management system (RDBMS) to be released as open source. Firebird has excellent support for SQL-92 and comes in three versions: Classic, SuperServer and Embedded for Windows, Linux, Solaris, HP-UX, FreeBSD and MacOS X. The embedded version has a 1.4-MB footprint. Release Candidate 1 for Firebird 2.0 became available on March 30, 2006 and is a major improvement over earlier versions. <a href="http://www.borland.com/us/products/interbase/index.html">Borland continues to promote InterBase</a>, now at version 7.5, as a small-footprint, embedded database with commercial Server and Client licenses.</span>   <br />   <span style="font-family: Verdana;"></span>   <br />   <span style="font-family: Verdana;">    <a href="http://www.sqlite.org/index.html"><strong>SQLite</strong>    </a> is a featherweight C library for an embedded database that implements most SQL-92 entry- and transitional-level requirements (some through the JDBC driver) and supports transactions within a tiny 250-KB code footprint. <a href="http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers">Wrappers</a> support a multitude of languages and operating systems, including Windows CE, SmartPhone, Windows Mobile, and Win32. SQLite&#39;s primary <a href="http://www.sqlite.org/omitted.html">SQL-92 limitations</a> are lack of nested transactions, inability to alter a table design once committed (other than with RENAME TABLE and ADD COLUMN operations), and foreign-key constraints. SQLite provides read-only views, triggers, and 256-bit encryption of database files. A downside is the the entire database file is <a href="http://weblogs.asp.net/jgalloway/archive/2006/04/12/442615.aspx">locked when while a transaction is in progress</a>. SQLite uses file access permissions in lieu of GRANT and REVOKE commands. Using SQLite involves no license; its code is entirely in the public domain.</span>  </p>  <p>   <span style="font-family: Verdana; font-size: 85%;">The Mozilla Foundation&#39;s <a href="http://wiki.mozilla.org/Mozilla2:Unified_Storage">Unified Storage wiki</a> says this about SQLite: &#39;SQLite will be the back end for the unified store [for Firefox]. Because it implements a SQL engine, we get querying &#39;for free&#39;, without having to invent our own query language or query execution system. Its code-size footprint is moderate (250k), but it will hopefully simplify much existing code so that the net code-size change should be smaller. It has exceptional performance, and supports concurrent access to the database. Finally, it is released into the public domain, meaning that we will have no licensing issues.&#39;</span>  </p>  <p>   <span style="font-family: verdana;">Vieka Technology, Inc.&#39;s <a href="http://vieka.com/esql.htm"><strong>eSQL 2.11</strong></a> is a port of SQLite to Windows Mobile (Pocket PC and Smartphone) and Win32, and includes development tools for Windows devices and PCs, as well as a .NET native data provider. A conventional ODBC driver also is available. eSQL for Windows (Win32) is free for personal and commercial use; eSQL for Windows Mobile requires a license for commercial (for-profit or business) use.</span>  </p>  <p>   <span style="font-family: verdana;">    <a href="http://hsqldb.org/"><strong>HSQLDB</strong>    </a> isn&#39;t on most reviewers&#39; radar, which is surprising because it&#39;s the default database for <a href="http://www.openoffice.org/">OpenOffice.org</a> (OOo) 2.0&#39;s <a href="http://www.openoffice.org/product/base.html">Base</a> suite member. HSQLDB 1.8.0.1 is an open-source (BSD license) Java dembedded database engine based on Thomas Mueller&#39;s original Hypersonic SQL Project. Using OOo&#39;s Base feature requires installing the Java 2.0 Runtime Engine (which is not open-source) or the presence of an alternative open-source engine, such as Kaffe. My prior posts about OOo Base and HSQLDB are <a href="http://oakleafblog.blogspot.com/2005/10/openoffice-base-20-vs-microsoft-access.html">here</a>, <a href="http://oakleafblog.blogspot.com/2005/10/openoffice-base-20-vs-microsoft-access_22.html">here</a> and <a href="http://oakleafblog.blogspot.com/2005/10/openoffice-20-base-matches-microsoft.html">here</a>.</span>  </p>  <p>   <span style="font-family: verdana;">The <a href="http://hsqldb.sourceforge.net/web/hsqlDocsFrame.html">HSQLDB 1.8.0 documentation</a> on SourceForge states the following regarding SQL-92 and later conformance:</span>  </p>  <span style="font-family: verdana;">   <blockquote>    <p>     <span style="font-family: verdana;">HSQLDB 1.8.0 supports the dialect of SQL defined by SQL standards 92, 99 and 2003. This means where a feature of the standard is supported, e.g. left outer join, the syntax is that specified by the standard text. Many features of SQL92 and 99 up to Advanced Level are supported and here is support for most of SQL 2003 Foundation and several optional features of this standard. However, certain features of the Standards are not supported so no claim is made for full support of any level of the standards. </span>    </p>   </blockquote>   <span style="font-family: verdana;"><span style="font-size: 85%;">Other less well-known embedded databases designed for or suited to mobile deployment are </span>    <a href="http://www.mimer.com/leftright.asp?secId=172"><span style="font-size: 85%;">Mimer SQL Mobile</span>    </a><span style="font-size: 85%;"> and </span>    <a href="http://www.vistadb.net/"><span style="font-size: 85%;">VistaDB 2.1</span>    </a><span style="font-size: 85%;">. Neither product is open-source and require paid licensing; VistaDB requires a small up-front payment by developers but offers royalty-free distribution.</span>   </span> <br /> <br /> <span style="font-family: Verdana;">Java DB, Firebird embedded, SQLite and eSQL 2.11 are contenders for lightweight PC and mobile device database projects that aren&#39;t Windows-only.</span> <br /> <br />   <strong>    <span style="font-family: verdana;">SQL Server 2005 Everywhere<br />    </span><span style="font-family: Verdana;"></span>   </strong> <br /> <span style="font-family: verdana;">If you&#39;re a Windows developer, SQL Server Mobile is the logical embedded database choice for mobile applications for Pocket PCs and Smartphones. Microsoft&#39;s April 19, 2006 press release delivered the news that SQL Server 2005 Mobile Editon (SQL Mobile or SSM) would gain a big brotherâSQL Server 2005 Everywhere Edition. </span> <br /> <span style="font-family: verdana;"></span> <br /> <span style="font-family: verdana;">Currently, the SSM client is licensed (at no charge) to run in production on devices with Windows CE 5.0, Windows Mobile 2003 for Pocket PC or Windows Mobile 5.0, or on PCs with Windows XP Tablet Edition only. SSM also is licensed for development purposes on PCs running Visual Studio 2005.</span>   <span style="font-family: verdana;"> Smart Device replication with SQL Server 2000 SP3 and later databases has been the most common application so far for SSM.<br /> <br />   </span><span style="font-family: verdana;">By the end of 2006, Microsoft will license SSE for use on <em>all</em> PCs running any Win32 version or the preceding device OSs. A version of SQL Server Management Studio Express (SSMSE)âupdated to support SSEâis expected to release by the end of the year. These features will qualify SSE as <em>the universal embedded database</em> for Windows client and smart-device applications. </span> <br /> <br /> <span style="font-family: verdana;">For more details on SSE, read <a href="http://weblogs.asp.net/jgalloway/archive/2006/04/11/442451.aspx">John Galloway&#39;s April 11, 2006 blog post</a> and my &#39;<a href="http://www.ftponline.com/special/sqlserver/rjennings-mobile/">SQL Server 2005 Mobile Goes Everywhere</a>&#39; article for the <a href="http://www.ftponline.com/special/sqlserver/">FTPOnline Special Report on SQL Server</a>.</span><span style="font-family: verdana;"></span>&quot;  <p>(Via <a href="http://oakleafblog.blogspot.com">OakLeaf Systems</a>.)</p>  </span> </blockquote> 
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-03-14#939">
  <rss:title>New XTech web site, and why we don&#39;t sell presentation space</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2006-03-14T21:24:26Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">New XTech web site, and why we don&#39;t sell presentation space: &quot; My too-long absence from writing much here can be ascribed to two, differently pleasant, activities. First, a fantastic vacation in Cuba, and second, the redesign and launch of the XTech web site. Of the first, come to my place for dinner and I&#39;ll bore you at length about how amazing it was. Of the second, I&#39;d like to bore you right now! Thanks to Ruby on Rails and a few late nights, the XTech site now has these new features: Full conference schedule (apart from 6 Mozilla talks I&#39;m still nailing down) A blog. With go-faster Atom 1.0 stripes and everything! Details on the newly-added Ajax Developers&#39; Day. A few more details on the Ajax Developers&#39; Day. As I mentioned before, when putting together the schedule we felt there was a lot of excellent content still missed out (I&#39;m still feeling guilty at having rejected proposals from many good friends and excellent speakers). So, we put together an extra day at the beginning of the conference where we could go further into detail on Ajax technologies. This day, featuring speakers such as Simon Willison from Yahoo!, XML expert Kurt Cagle and OpenLaszlo&#39;s Max Carlson, will allow those working on Ajax projects--either deployment or toolkits--to meet, discuss best practice and move forward on new ideas. Although it&#39;s a day-long event, we didn&#39;t want to make the price tag as high as a full-day tutorial, so you can register for the cost of a half-day tutorial. A few implementation details If that all sounded a little like advertising, here are some technical details worth sharing. The site&#39;s CMS is built on Ruby on Rails. Development was done on Linux, with the help of WINE to check out the view from Internet Explorer. The newsletter is managed by the absurdly wonderful CampaignMonitor. This conference not for sale Before I went on vacation, there was some debate in various quarters about paid-for plenary and keynote slots in conferences. Though I hope it is obvious, I wanted to state where I, and thus the XTech conference, stand on this issue. It has always been my policy to maintain a strict separation between the commercial and editorial aspects of XTech. Although each year there&#39;s always a company who thinks they can buy a speaking slot, I never let this happen. The content of the conference is formed by editorial selection by the programme committee, who take the scores from the peer review panel as their primary guide. Aside from what I hope shows in the excellent quality of the talks and generally interesting keynotes (yes, we get it wrong occasionally!), there are two effects on the conference. Sponsors are that much more respected. When a sponsor respects the delegates&#39; time and intelligence, but still attends, you know they&#39;re serious about engagement with attendees. A higher portion of the conference cost is in the registration fees than for some other conferences. We&#39;re still trying to keep the costs as low as we can, but we&#39;re not prepared to compromise the quality of the schedule by letting vendors buy talk time. I hope this explains a little of my position. As a stance, it often creates more issues for me than it solves, but I believe it preserves XTech&#39;s reputation as a conference where you can hear some of the best no-fluff presentations on web technology.&quot; (Via Edd Dumbill&#39;s Weblog: Behind the Times.)</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>
<a href="http://times.usefulinc.com/2006/03/14-xtech">New XTech web site, and why we don&#39;t sell presentation space</a>: &quot;</p>
<p>My too-long absence from writing much here can be ascribed to two, differently pleasant, activities. First, a fantastic vacation in Cuba, and second, the redesign and launch of the <a href="http://xtech06.usefulinc.com/">XTech web site</a>.</p>
<p>Of the first, come to my place for dinner and I&#39;ll bore you at length about how amazing it was. Of the second, I&#39;d like to bore you right now!</p>
<p>Thanks to Ruby on Rails and a few late nights, the XTech site now has these new features:</p>
<ul>
<li>
  <a href="http://xtech06.usefulinc.com/schedule">Full conference schedule</a> (apart from 6 Mozilla talks I&#39;m still nailing down)</li>
<li>
  <a href="http://xtech06.usefulinc.com/">A blog</a>. With go-faster Atom 1.0 stripes and everything!</li>
<li>Details on the newly-added <a href="http://xtech06.usefulinc.com/content/ajax">Ajax Developers&#39; Day</a>.</li>
</ul>
<p>A few more details on the Ajax Developers&#39; Day. As I mentioned before, when putting together the schedule we felt there was a lot of excellent content still missed out (I&#39;m still feeling guilty at having rejected proposals from many good friends and excellent speakers). So, we put together an extra day at the beginning of the conference where we could go further into detail on Ajax technologies.</p>
<p>This day, featuring speakers such as Simon Willison from Yahoo!, XML expert Kurt Cagle and OpenLaszlo&#39;s Max Carlson, will allow those working on Ajax projects--either deployment or toolkits--to meet, discuss best practice and move forward on new ideas. Although it&#39;s a day-long event, we didn&#39;t want to make the price tag as high as a full-day tutorial, so you can <a href="http://xtech06.usefulinc.com/content/registration">register</a> for the cost of a half-day tutorial.</p>
<h4>A few implementation details</h4>
<p>If that all sounded a little like advertising, here are some technical details worth sharing. The site&#39;s CMS is built on Ruby on Rails. Development was done on Linux, with the help of WINE to check out the view from Internet Explorer. The <a href="http://xtech06.usefulinc.com/public/newsletter">newsletter</a> is managed by the absurdly wonderful <a href="http://www.campaignmonitor.com/">CampaignMonitor</a>.</p>
<h4>This conference not for sale</h4>
<p>Before I went on vacation, there was some debate in various quarters about paid-for plenary and keynote slots in conferences. Though I hope it is obvious, I wanted to state where I, and thus the XTech conference, stand on this issue.</p>
<p>It has always been my policy to maintain a strict separation between the commercial and editorial aspects of XTech. Although each year there&#39;s always a company who thinks they can buy a speaking slot, I never let this happen. The content of the conference is formed by editorial selection by the programme committee, who take the scores from the peer review panel as their primary guide.</p>
<p>Aside from what I hope shows in the excellent quality of the talks and generally interesting keynotes (yes, we get it wrong occasionally!), there are two effects on the conference.</p>
<ul>
 <li>Sponsors are that much more respected. When a sponsor respects the delegates&#39; time and intelligence, but still attends, you know they&#39;re serious about engagement with attendees.<br />
 </li>
<li>A higher portion of the conference cost is in the registration fees than for some other conferences. We&#39;re still trying to keep the costs as low as we can, but we&#39;re not prepared to compromise the quality of the schedule by letting vendors buy talk time. </li>
</ul>I hope this explains a little of my position. As a stance, it often creates more issues for me than it solves, but I believe it preserves XTech&#39;s reputation as a conference where you can hear some of the best no-fluff presentations on web technology.<br />&quot;

<p>(Via <a href="http://times.usefulinc.com/">Edd Dumbill&#39;s Weblog: Behind the Times</a>.)</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-12-06#917">
  <rss:title>JavaScript Image Magnifier</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-12-06T04:43:56Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">JavaScript Image Magnifier: &quot;This is a fun one. A small JavaScript image magnifier has been released.With a big of JavaScript, you can add magnification to any images on your page.You can add: &lt;script type=&#39;text/javascript&#39; src=&#39;http://valid.tjp.hu/zoom/tjpzoom.js&#39;&gt; &lt;/script&gt; and: &lt;div style=&#39;float:left&#39; onmouseover=&#39;zoom_on(event,300,239,&#39;image.jpg&#39;);&#39; onmousemove=&#39;zoom_move(event);&#39; onmouseout=&#39;zoom_off();&#39;&gt; &lt;img src=&#39;image.jpg&#39;/&gt; &lt;/div&gt; You can also have a high-res image for the zoom piece, and use a low-res as the main image on the site.Could be useful for some Where&#39;s Waldo? Product Zoom? and adult sites? ;)&quot; (Via Ajaxian Blog.)</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://ajaxian.com/archives/2005/12/javascript_imag.html">JavaScript Image Magnifier</a>: &quot;</p><p>This is a fun one. A small <a href="http://valid.tjp.hu/zoom/index_en.html">JavaScript image magnifier has been released</a>.</p><p>With a big of JavaScript, you can add magnification to any images on your page.</p><p>You can add:

</p><blockquote><pre>&lt;script type=&#39;text/javascript&#39; src=&#39;http://valid.tjp.hu/zoom/tjpzoom.js&#39;&gt;
&lt;/script&gt;
</pre></blockquote>

and:

<blockquote><pre>&lt;div style=&#39;float:left&#39;
onmouseover=&#39;zoom_on(event,300,239,&#39;image.jpg&#39;);&#39;
onmousemove=&#39;zoom_move(event);&#39; 
onmouseout=&#39;zoom_off();&#39;&gt;
&lt;img src=&#39;image.jpg&#39;/&gt;
&lt;/div&gt;
</pre></blockquote><p>You can also have a high-res image for the zoom piece, and use a low-res as the main image on the site.</p><p>Could be useful for some Where&#39;s Waldo? Product Zoom? and adult sites? ;)</p><p><a href="http://valid.tjp.hu/zoom/index_en.html"><img alt="image-magnifier.jpg" src="http://ajaxian.com/archives/image-magnifier.jpg" width="319" height="267" border="0" /></a></p>&quot;

<p>(Via <a href="http://ajaxian.com/">Ajaxian Blog</a>.)</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-18#909">
  <rss:title>what is web 2.0?</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-11-18T21:49:15Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">what is web 2.0?: &quot; There has been lot of discussion about what Web 2.0 really is, so we thought weâd use the power of Web 2.0 itself to come up with the answer, and here it is:42. Just kidding. What we actually did was take a look at all the tag data going back to February 2004 (the month of the first use of Web 2.0 as a tag on del.icio.us), and analyzed all the bookmarks and tags related to the term. We can report that as of October 31, 2005 there have been over 230,000 separate bookmarks and over 7,000 unique tags associated with the term âWeb 2.0â by del.icio.us users. So for this exercise, we lopped off the really long tail and normalized some similar terms (e.g. combining blog, blogs, and blogging), and came up with this snapshot of what Web 2.0 REALLY is â at least according to del.icio.us users&#39; most popular tags through the end of October 2005: ajax9.9% blog6.1% social4.2% tools4.1% software3.3% tagging3.3% javascript2.8% internet2.6% programming2.5% rss2.5% Other notable tags included rubyonrails (1.8%), del.icio.us (1.6%), folksonomy (1.4%), community (1.1%), wiki (.9%), flickr (.8%), free (.7%), trends (.6%), flock (.4%) and googlemaps (.3%). So there you have it - interesting, but it still seems to fall short of a definitive answer. Maybe the blinding flash of the obvious is that Web 2.0 is best defined as arguing about what Web 2.0 is really about. &quot; (Via del.icio.us.)webservicesweb2.0web20ajax</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://blog.del.icio.us/blog/2005/11/there_has_been_.html">what is web 2.0?</a>: &quot;
</p><div xmlns="http://www.w3.org/1999/xhtml"><p><a href="http://blog.del.icio.us/.shared/image.html?/photos/uncategorized/graph1.png" onclick="window.open(this.href, '_blank', 'width=600,height=463,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img height="77" border="0" alt="Graph1" width="100" src="http://blog.del.icio.us/blog/images/graph1.png" style="float: left; margin: 0px 5px 5px 0px;" title="Graph1" /></a>There has been lot of discussion about what Web 2.0 really is, so we thought weâd use the power of Web 2.0 itself to come up with the answer, and here it is:</p><p>42.</p>
<p>Just kidding. What we actually did was take a look at all the tag data going back to February 2004 (the month of the first use of Web 2.0 as a tag on del.icio.us), and analyzed all the bookmarks and tags related to the term. We can report that as of October 31, 2005 there have been over 230,000 separate bookmarks and over 7,000 unique tags associated with the term âWeb 2.0â by del.icio.us users. So for this exercise, we lopped off the really long tail and normalized some similar terms (e.g. combining blog, blogs, and blogging), and came up with this snapshot of what Web 2.0 REALLY is â at least according to del.icio.us users&#39; most popular tags through the end of October 2005:</p>
<table>
<tr><td><a href="http://del.icio.us/tag/ajax">ajax</a></td><td>9.9%</td></tr>
<tr><td><a href="http://del.icio.us/tag/blog">blog</a></td><td>6.1%</td></tr>
<tr><td><a href="http://del.icio.us/tag/social">social</a></td><td>4.2%</td></tr>
<tr><td><a href="http://del.icio.us/tag/tools">tools</a></td><td>4.1%</td></tr>
<tr><td><a href="http://del.icio.us/tag/software">software</a></td><td>3.3%</td></tr>
<tr><td><a href="http://del.icio.us/tag/tagging">tagging</a></td><td>3.3%</td></tr>
<tr><td><a href="http://del.icio.us/tag/javascript">javascript</a></td><td>2.8%</td></tr>
<tr><td><a href="http://del.icio.us/tag/internet">internet</a></td><td>2.6%</td></tr>
<tr><td><a href="http://del.icio.us/tag/programming">programming</a></td><td>2.5%</td></tr>
<tr><td><a href="http://del.icio.us/tag/rss">rss</a></td><td>2.5%</td></tr>
</table>

<p>Other notable tags included 
<a href="http://del.icio.us/tag/rubyonrails">rubyonrails</a> (1.8%),
<a href="http://del.icio.us/tag/del.icio.us">del.icio.us</a> (1.6%),
<a href="http://del.icio.us/tag/folksonomy">folksonomy</a> (1.4%),
<a href="http://del.icio.us/tag/community">community</a> (1.1%),
<a href="http://del.icio.us/tag/wiki">wiki</a> (.9%),
<a href="http://del.icio.us/tag/flickr">flickr</a> (.8%),
<a href="http://del.icio.us/tag/free">free</a> (.7%),
<a href="http://del.icio.us/tag/trends">trends</a> (.6%),
<a href="http://del.icio.us/tag/flock">flock</a> (.4%) and
<a href="http://del.icio.us/tag/googlemaps">googlemaps</a> (.3%).</p>
<p>So there you have it - interesting, but it still seems to fall short of a definitive answer. Maybe the blinding flash of the obvious is that Web 2.0 is best defined as arguing about what Web 2.0 is really about.</p></div>
&quot;

<p>(Via <a href="http://blog.del.icio.us/blog/">del.icio.us</a>.)</p><a href="index.vspx?tag=webservices" rel="tag" style="display:none;">webservices</a><a href="index.vspx?tag=web2.0" rel="tag" style="display:none;">web2.0</a><a href="index.vspx?tag=web20" rel="tag" style="display:none;">web20</a><a href="index.vspx?tag=ajax" rel="tag" style="display:none;">ajax</a>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-16#905">
  <rss:title>Ajax-S: Ajaxian slideshow software</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-11-16T20:50:32Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Ajax-S: Ajaxian slideshow software: &quot;The idea came to me because I wanted a lightweight slideshow based on HTML, CSS and JavaScript, but I also wanted to separate the data of each page from the actual code that presents it. Therefore, I decided to move the data into an XML file and then use AJAX to retrieve it. The name AJAX-S is short for AJAX-Slides (or Asynchronous JavaScript and XML Slides, if you want to).&quot;(Via Ajaxian Blog.)AJAX is clearly illuminating one of my pet issues: Separation of Application/Service Logic and Data. Even better, the concept of XML instance data is gradually getting much clearer. AJAX has created context for validating the concept of browser hosted Rich Internet Applications (RIA).AJAX has become a widely accepted framework for the InternetOS that facilitates Rich Internet Application development using Web 2.0 (and beyond) APIs.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<blockquote><p><a href="http://www.ajaxian.com/archives/2005/11/ajaxs_ajaxian_s.html">Ajax-S: Ajaxian slideshow software</a>: &quot;The idea came to me because I wanted a lightweight slideshow based on HTML, CSS and JavaScript, but I also wanted to separate the data of each page from the actual code that presents it. Therefore, I decided to move the data into an XML file and then use AJAX to retrieve it. The name AJAX-S is short for AJAX-Slides (or Asynchronous JavaScript and XML Slides, if you want to).&quot;</p><p>(Via <a href="http://www.ajaxian.com/">Ajaxian Blog</a>.)</p></blockquote><p>AJAX is clearly illuminating one of my pet issues: Separation of Application/Service Logic and Data. Even better, the concept of XML instance data is gradually getting much clearer. AJAX has created context for validating the concept of browser hosted Rich Internet Applications (RIA).</p><p>AJAX has become a widely accepted framework for the InternetOS that facilitates Rich Internet Application development using Web 2.0 (and beyond) APIs.</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-14#902">
  <rss:title>This Week&amp;rsquo;s Semantic Web</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-11-14T19:44:03Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">(Via Danny Ayers.): This Weekâs Semantic Web: &quot;Ok, my first attempt at a round-up (in response to Philâs observation of Planetary damage). Thanks to the conference thereâs loads more here than thereâs likely to be subsequent weeks, although itâs still only a fairly random sample and some of the links here are to heaps of other resourcesâ¦ Incidentally, if anyoneâs got a list/links for SemWeb-related blogs that arenât on Planet RDF, Iâd be grateful for a pointer. PS. Ok, I forgetâ¦ are there any blogs that arenât on Daveâs list yet..? Quote of the week: In the Semantic Web, it is not the Semantic which is new, it is the Web which is new. - Chris Welty, IBM (lifted from TimBLâs slides) Events 4th International Semantic Web Conference - happened this week, see : ISWC2005 Semantic Bank Semantic Desktop Workshop, 9-13 December 2005, Berlin Semantic Web Applications and Perspectives/Workshop (SWAP2005), 14-16 December, 2005 Jena User Conference - May 10-11 2006, Bristol UK Docs etc Conference highlights on the #swig chump: 2005-11-06, -07, -08, -09, -10; Ianâs notes; Johnâs resources; Leoâs stories; Uldisâ call to action; del.icio.us/iswc2005; flickr/iswc2005; foaf-moblog. Slides from Sir TimBLâs conference keynotes: Semantic Web for the Industry, Putting the Web back in Semantic Web Daniel Weitznerâs keynote: Privacy, Provenance, Property and Personhood Long-time SW researcher Stefan Decker now has a blog, inspirationally entitled Stefan Decker on the Semantic Web. (Stefanâs one of the head honchos at DERI). Sample snippet: I just noticed the article from Dan Zambonini âIs Web 2.0 killing the Semantic Web?â. From my perspective the article shows a misconception that people seems to have around the Semantic Web: the Semantic Web effort itself is not provide applications (like the Web 2.0 meme indicates) - it rather provides standards to interlink applications. Leigh Dodds has two pieces demonstrating neat facilities offered by ARQ the SPARQL query API for Java: parameterised queries and extension functions. A new W3C Working Group has been chartered: Rule Interchange Format WG - â to produce a core rule language plus extensions which together allow rules to be translated between rule languages and thus transferred between rule systems.â. As noted by dajobe, phase 1 includes making a new XML syntax for RDFâ¦ UMBC Semantic Web Reference Card - if you only print one thing this yearâ¦or did you already do the SPARQL Reference card..? WebDescription - root wiki page for collecting notes on web description languages (ESW Wiki, announcement) Bot - IRC/Jabber chat bots that are either in use by Semantic Web developers or use Semantic Web technologies (ESW Wiki) microformat FAQs for RDF fans (ESW Wiki) W3C working draft : WSDL 2.0 - RDF Mapping SKOS (Simple Knowledge Organisation System) updated drafts: SKOS Core Vocabulary Specification, SKOS Core Guide working draft: SPARQL Protocol for RDF Using WSDL 1.1 A relational algebra for SPARQL, Note on database layouts for SPARQL datastores (PDFs, Richard Cyganiak, HP) Amateur Fiction Online - The Web of Community Trust A Case Study in Community Focused Design for the SemanticWeb (PDF) Building a Semantic Wiki - IEEE article. See also: SemperWiki - Semantic Personal Wiki, WikSAR - Towards a Semantic Wiki Experience Software and stuff Semantic Web Challenge applications (winner: CONFOTO - congrats bengee!) Piggy Bank 2.1.1 released. IRIS is a semantic desktop application framework that enables users to create a âpersonal mapâ across their office-related information objects. IRIS includes a machine-learning platform to help automate this process. It provides âdashboardâ views, contextual navigation, and relationship-based structure across an extensible suite of office applications, including a calendar, web and file browser, e-mail client, and instant messaging client. (open source release due Jan 2006) MKSearch - âA new kind of search engineâ - RDF-backed (Sesame) with Web crawler, extracts and indexes metadata. FOAFRealm - Our goal is to design and implement D-FOAF, a distributed authentication and trust infrastructure without a centralised authority. D-FOAF will be a backbone for trust applications based on social relationships and will establish identity of users similar to the way we establish identify and trust in real life. Perl Net::Flickr::RDF WordPress SIOC (Semantically-Interlinked Online Communities) plugin updated (just copy wp-sioc.php into the root of your WP install and it just works) OntoMedia is intended for the representation of heterogenous media through description of the semantic content of that media. The representation may be limited to the description of some or all of the elements contained within the source or may include information regarding the narrative relationship that these elements have both to the media and to each other. mSpace is an interaction model to help explore relationships in information - âImagine Google on iTunesâ Blog post title of the week: Donât give me that monkey-ass Web 1.0, either - Uche Ogbuji Alsoâ¦a new threat to Semantic Web developers has been discovered: typhoid!, and the key to the Webâs full potential isâ¦Tetris.&quot;</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
 <p>(Via <a href="http://dannyayers.com">Danny Ayers</a>.):</p>  <p><a href="http://dannyayers.com/archives/2005/11/13/this-weeks-semantic-web/">This Weekâs Semantic Web</a>: </p><p>&quot;Ok, my first attempt at a round-up (in response to Philâs observation of <a href="http://weblog.philringnalda.com/?p=1008">Planetary damage</a>). Thanks to the conference thereâs loads more here than thereâs likely to be subsequent weeks, although itâs still only a fairly random sample and some of the links here are to heaps of other resourcesâ¦<br /> <em>Incidentally, if anyoneâs got a list/links for SemWeb-related blogs that arenât on <a href="http://planetrdf.com">Planet RDF</a>, Iâd be grateful for a pointer. PS. Ok, I forgetâ¦ are there any blogs that arenât on Daveâs <a href="http://journal.dajobe.org/journal/2003/07/semblogs/">list</a> yet..?</em></p> 	<p>Quote of the week:</p> 	<blockquote><p> In the Semantic Web, it is not the Semantic which is new, it is the Web which is new. </p></blockquote> 	<p>- <a href="http://www.research.ibm.com/people/w/welty/">Chris Welty</a>, IBM (lifted from TimBLâs <a href="http://www.w3.org/2005/Talks/1110-iswc-tbl/">slides</a>)</p> 	<h4>Events</h4> 	<ul> <li><a href="http://iswc2005.semanticweb.org/">4th International Semantic Web Conference</a> - happened this week, see : <a href="http://simile.mit.edu/conference/iswc2005/">ISWC2005 Semantic Bank</a></li> 	<li><a href="http://www.gnowsis.org/Events/HackBerlin2005">Semantic Desktop Workshop</a>, 9-13 December 2005, Berlin</li> 	<li><a href="http://trinity.dit.unitn.it/vikef/swap2005/">Semantic Web Applications and Perspectives/Workshop</a> (SWAP2005), 14-16 December, 2005</li> 	<li><a href="http://jena.hpl.hp.com/juc2006"> Jena User Conference</a> - May 10-11 2006, Bristol UK</li> 	</ul> 	<h4>Docs etc</h4> 	<ul> 	<li> Conference highlights on the #swig chump: <a href="http://swig.xmlhack.com/2005/11/06/2005-11-06.html">2005-11-06</a>, <a href="http://swig.xmlhack.com/2005/11/06/2005-11-07.html">-07</a>, <a href="http://swig.xmlhack.com/2005/11/06/2005-11-08.html">-08</a>, <a href="http://swig.xmlhack.com/2005/11/06/2005-11-09.html">-09</a>, <a href="http://swig.xmlhack.com/2005/11/06/2005-11-10.html">-10</a>; Ianâs <a href="http://internetalchemy.org/tag/iswc2005">notes</a>; Johnâs <a href="http://www.johnbreslin.com/blog/2005/11/06/iswc-2005/">resources</a>; Leoâs <a href="http://leobard.twoday.net/topics/SemWeb">stories</a>; Uldisâ <a href="http://captsolo.net/info/blog_a.php/2005/11/12/iswc_2005_do_the_right_thing">call to action</a>; <a href="http://del.icio.us/tag/iswc2005">del.icio.us/iswc2005</a>; <a href="http://www.flickr.com/photos/tags/iswc2005/">flickr/iswc2005</a>; <a href="http://www.foaf-project.org/2004/media/date/2005/11/">foaf-moblog</a>. </li> 	<li>Slides from Sir TimBLâs conference keynotes: <a href="http://www.w3.org/2005/Talks/1107-iswc-tbl/">Semantic Web for the Industry</a>, <a href="http://www.w3.org/2005/Talks/1110-iswc-tbl/">Putting the Web back in Semantic Web</a></li> 	<li>Daniel Weitznerâs keynote: <a href="http://www.w3.org/2005/Talks/1110-p4-semweb-iswc/">Privacy, Provenance, Property and Personhood</a></li> 	<li>Long-time SW researcher <a href="http://www.stefandecker.org">Stefan Decker</a> now has a blog, inspirationally entitled <a href="http://www.stefandecker.org/blog/">Stefan Decker on the Semantic Web</a>. (Stefanâs one of the head honchos at <a href="http://www.deri.ie/">DERI</a>). Sample snippet:<br /> 	<blockquote><p> I just noticed the article from Dan Zambonini â<a href="http://www.oreillynet.com/pub/wlg/8013?CMP=OTC-TY3388567169">Is Web 2.0 killing the Semantic Web?</a>â. From my perspective the article shows a misconception that people seems to have around the Semantic Web: the Semantic Web effort itself is not provide applications (like the <a href="http://www.oreillynet.com/pub/a/oreilly/tim/news/2005/09/30/what-is-web-20.html">Web 2.0 meme</a> indicates)  - it rather provides standards to interlink applications. </p></blockquote> 	</li> 	<li>Leigh Dodds has two pieces demonstrating neat facilities offered by <a href="http://jena.sourceforge.net/ARQ">ARQ</a> the SPARQL query API for Java: <a href="http://www.ldodds.com/blog/archives/000251.html">parameterised queries</a> and <a href="http://www.ldodds.com/blog/archives/000252.html">extension functions</a>. </li> 	<li>A new W3C Working Group has been chartered: <a href="http://www.w3.org/2005/rules/wg/charter">Rule Interchange Format WG</a> - <em>â to produce a core rule language plus extensions which together allow rules to be translated between rule languages and thus transferred between rule systems.â</em>. As noted by <a href="http://journal.dajobe.org/journal/">dajobe</a>, phase 1 includes making a new XML syntax for RDFâ¦</li> 	<li><a href="http://ebiquity.umbc.edu/resource/html/id/94/">UMBC Semantic Web Reference Card</a> <em>- if you only print one thing this yearâ¦or did you already do the <a href="http://www.dajobe.org/2005/04-sparql/">SPARQL Reference card</a>..?</em></li> 	<li><a href="http://esw.w3.org/topic/WebDescription">WebDescription</a> - root wiki page for collecting notes on web description languages (ESW Wiki, <a href="http://lists.w3.org/Archives/Public/public-web-http-desc/2005Nov/0000.html">announcement</a>)</li> 	<li><a href="http://esw.w3.org/topic/Bot">Bot</a> - IRC/Jabber chat bots that are either in use by Semantic Web developers or use Semantic Web technologies (ESW Wiki)</li> 	<li><a href="http://microformats.org/wiki/faqs-for-rdf">microformat FAQs for RDF fans</a> (ESW Wiki)</li> 	<li> W3C working draft : <a href="http://www.w3.org/TR/wsdl20-rdf/">WSDL 2.0 - RDF Mapping</a></li> 	<li>SKOS (Simple Knowledge Organisation System) updated drafts: <a href="http://www.w3.org/TR/swbp-skos-core-spec">SKOS Core Vocabulary Specification</a>, <a href="http://www.w3.org/TR/swbp-skos-core-guide">SKOS Core Guide</a></li> 	<li>working draft: <a href="http://www.w3.org/TR/sprot11/">SPARQL Protocol for RDF Using WSDL 1.1</a></li> 	<li><a href="http://www.hpl.hp.com/techreports/2005/HPL-2005-170.html">A relational algebra for SPARQL</a>, <a href="http://www.hpl.hp.com/techreports/2005/HPL-2005-171.html">Note on database layouts for SPARQL datastores</a> (PDFs, Richard Cyganiak, HP)</li> 	<li><a href="http://eprints.ecs.soton.ac.uk/11042/">Amateur Fiction Online</a> - The Web of Community Trust A Case Study in Community Focused Design for the SemanticWeb (<a href="http://eprints.ecs.soton.ac.uk/11042/01/case_study.pdf">PDF</a>)</li> 	<li><a href="http://dsonline.computer.org/portal/site/dsonline/menuitem.9ed3d9924aeb0dcd82ccc6716bbe36ec/index.jsp?&pName=dso_level1&path=dsonline/0511&file=x5sem.xml&xsl=article.xsl">Building a Semantic Wiki</a> - IEEE article. See also: <a href="http://m3pe.org/semperwiki/">SemperWiki - Semantic Personal Wiki</a>, <a href="http://wiki.navigable.info/"> WikSAR - Towards a Semantic Wiki Experience</a> <br /> </li> 	</ul> 	<h4>Software and stuff</h4> 	<ul> 	<li><a href="http://challenge.semanticweb.org/">Semantic Web Challenge</a> applications (winner: <a href="http://www.confoto.org/">CONFOTO</a> - congrats bengee!)</li> 	<li><a href="http://simile.mit.edu/piggy-bank/">Piggy Bank 2.1.1</a> released.</li> 	<li> <a href="http://www.openiris.org/">IRIS</a> is a semantic desktop application framework that enables users to create a âpersonal mapâ across their office-related information objects. IRIS includes a machine-learning platform to help automate this process.  It provides âdashboardâ views, contextual navigation, and relationship-based structure across an extensible suite of office applications, including a calendar, web and file browser, e-mail client, and instant messaging client.<br /> <em>(open source release due Jan 2006)</em> </li> 	<li><a href="http://www.mksearch.mkdoc.org/">MKSearch</a> - <em>âA new kind of search engineâ</em> - RDF-backed (Sesame) with Web crawler, extracts and indexes metadata.</li> 	<li><a href="http://www.foafrealm.org">FOAFRealm</a> - Our goal is to design and implement D-FOAF, a distributed authentication and trust infrastructure without a centralised authority. D-FOAF will be a backbone for trust applications based on social relationships and will establish identity of users similar to the way we establish identify and trust in real life.</li> 	<li>Perl <a href="http://search.cpan.org/dist/Net-Flickr-RDF-1.1/">Net::Flickr::RDF</a></li> 	<li>WordPress <a href="http://rdfs.org">SIOC</a>  (Semantically-Interlinked Online Communities)  plugin updated (just copy <a href="http://sw.deri.org/svn/sw/2005/08/sioc/wordpress/wp-sioc.php">wp-sioc.php</a> into the root of your WP install and it <em>just works</em>)</li> 	<li><a href="http://ontomedia.ecs.soton.ac.uk/">OntoMedia</a> is intended for the representation of heterogenous media through description of the semantic content of that media. The representation may be limited to the description of some or all of the elements contained within the source or may include information regarding the narrative relationship that these elements have both to the media and to each other.</li> 	<li><a href="http://mspace.fm/">mSpace</a> is an interaction model to help explore relationships in information - <em>âImagine Google on iTunesâ</em></li> 	</ul> 	<p>Blog post title of the week: </p> 	<blockquote><p> <a href="http://copia.ogbuji.net/blog/2005-11-12/Don_t_give">Donât give me that monkey-ass Web 1.0, either</a> </p></blockquote> 	<p>- <a href="http://copia.ogbuji.net/blog/">Uche Ogbuji</a></p> 	<p>Alsoâ¦a new threat to Semantic Web developers has been discovered: <a href="http://planb.nicecupoftea.org/archives/001309.html">typhoid</a>!, and  the key to the Webâs full potential isâ¦<a href="http://www.foaf-project.org/2004/media/2005/11/07/3448">Tetris</a>.&quot; </p>  
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-11#900">
  <rss:title>Solutions to allow XMLHttpRequest to talk to external services</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-11-11T21:01:15Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Solutions to allow XMLHttpRequest to talk to external services: &quot;Over on XML.com they published Fixing AJAX: XmlHttpRequest Considered Harmful. This article discusses a few ways to get around the security constraints that we have to live with in the browsers theses days, in particular, only being able to talk to your domain via XHR. The article walks you through three potential solutions: Application proxies. Write an application in your favorite programming language that sits on your server, responds to XMLHttpRequests from users, makes the web service call, and sends the data back to users. Apache proxy. Adjust your Apache web server configuration so that XMLHttpRequests can be invisibly re-routed from your server to the target web service domain. Script tag hack with application proxy (doesn&#39;t use XMLHttpRequest at all). Use the HTML script tag to make a request to an application proxy (see #1 above) that returns your data wrapped in JavaScript. This approach is also known as On-Demand JavaScript. I can&#39;t wait for Trusted Relationships within the browser - server infrastructure. With respect to Apache proxies, these things are priceless. I recently talked about them in relation to Migrating data centers with zero downtime. What do you guys think about this general issue? Have you come up with any interesting solutions? Any ideas on how we can keep security, yet give us the freedom that we want? (Via Ajaxian Blog.) Well here is what I think (actually know): Our Virtuoso Universal Server has been sitting waiting to deliver this for years (for the record see the Virtuoso 2000 Press Release). Virtuoso can proxy for disparate data sources and expose disparate data as Well-Formed XML using an array of vocabularies (you experience this SQL-XML integration on the fly every time you interact with various elements of my public blog). Virtuoso has always been able to expose Application Logic as SOAP and/or RESTful/RESTian style XML Web Services. This blog&#39;s search page is a simple demo of this capability. Virtuoso is basically a Junction Box / Aggregator / Proxy for disparate Data, Applications, Services, and BPEL compliant business processes. AJAX clients talk to this single multi-purpose server which basically acts as a conduit to content/data, services, and processes (which are composite services). BTW - there is a lot more, but for now, thou shall have to seek in order to find :-)</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<blockquote><p><a href="http://www.ajaxian.com/archives/2005/11/solutions_to_al.html">Solutions to allow XMLHttpRequest to talk to external services</a>: &quot;</p><p>Over on XML.com they published <a href="http://www.xml.com/pub/a/2005/11/09/fixing-ajax-xmlhttprequest-considered-harmful.html">Fixing AJAX: XmlHttpRequest Considered Harmful</a>.</p>

<p>This article discusses a few ways to get around the security constraints that we have to live with in the browsers theses days, in particular, only being able to talk to your domain via XHR.</p>

<p>The article walks you through three potential solutions:</p>

<ol>
<li><strong>Application proxies</strong>. Write an application in your favorite programming language that sits on your server, responds to <code>XMLHttpRequest</code>s from users, makes the web service call, and sends the data back to users.</li>
<li><strong>Apache proxy</strong>. Adjust your Apache web server configuration so that <code>XMLHttpRequest</code>s can be invisibly re-routed from your server to the target web service domain.</li>
<li><strong>Script tag hack with application proxy</strong> (doesn&#39;t use <code>XMLHttpRequest</code> at all). Use the HTML <code>script</code> tag to make a request to an application proxy (see #1 above) that returns your data wrapped in JavaScript. This approach is also known as <a href="http://ajaxpatterns.org/On-Demand_Javascript">On-Demand JavaScript</a>.</li>
</ol>

<p>I can&#39;t wait for <em>Trusted Relationships</em> within the browser - server infrastructure. </p>

<p>With respect to Apache proxies, these things are priceless. I recently talked about them in relation to <a href="http://www.almaer.com/blog/archives/001099.html">Migrating data centers with zero downtime</a>.</p>

<p>What do you guys think about this general issue? Have you come up with any interesting solutions? Any ideas on how we can keep security, yet give us the freedom that we want?</p>

<p>(Via <a href="http://www.ajaxian.com/">Ajaxian Blog</a>.)</p></blockquote>

<p>Well here is what I think (actually know): </p>
<p>Our <a href="http://virtuoso.openlinksw.com">Virtuoso Universal Server</a> has been sitting waiting to deliver this for years (for the record see the <a href="http://www.openlinksw.com/press/v2releas.htm">Virtuoso 2000 Press Release</a>). Virtuoso can proxy for disparate data sources and expose disparate data as Well-Formed XML using an array of vocabularies (you experience this SQL-XML integration on the fly every time you interact with various elements of my <a href="http://www.openlinksw.com/blog/~kidehen/">public blog</a>).</p>

<p>Virtuoso has always been able to expose Application Logic as SOAP and/or RESTful/RESTian style XML Web Services. <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127">This blog&#39;s search page</a> is a simple demo of this capability.</p>

<p>Virtuoso is basically a Junction Box / Aggregator / Proxy for disparate Data, Applications, Services, and BPEL compliant business processes. AJAX clients talk to this single multi-purpose server which basically acts as a conduit to content/data, services, and processes (which are composite services).</p>

<p>BTW - there is a lot more, but for now, thou shall have to seek in order to find :-)
</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-02#891">
  <rss:title>2 New Geocoding APIs</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-11-02T22:27:41Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">2 New Geocoding APIs: &quot;Two mapping/geocoding APIs have been recently added to the database: Ontok: Provides a mechanism for geocoding the latitude and longitude of any US address. The data is based on the US Census 2004 Second Edition TIGER/Line® Files. Here’s an example of the White House. The service is accessible via REST, SOAP and JavaScript APIs. See also the nice mashup UI with Google Maps where you can click on the lower left Input Addresses to navigate. ZeeMaps: If you need to geocode addresses outside of the US, ZeeMaps can help. Given an international city, state (optional), and country combination, the service will return a set of latitude, longitudes (along with corrected city, state, country information). They offer REST, XML-RPC and SOAP interfaces. &quot; (Via ProgrammableWeb.com.)</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://blog.programmableweb.com/?p=103">2 New Geocoding APIs</a>: &quot;</p><p><a href="http://www.ontok.com"><img src="http://blog.programmableweb.com/wp-content/ontok.png" alt="Ontok" class="imgRight" /></a>Two mapping/geocoding APIs have been recently added to the database:</p>
	<ul>
	<li><a href="http://www.programmableweb.com/api/Ontok">Ontok</a>: Provides a mechanism for geocoding the latitude and longitude of any US address. The data is based on the <a href="http://www.census.gov/geo/www/tiger/tiger2004se/tgr2004se.html">US Census 2004 Second Edition TIGER/Line® Files</a>. Here’s an example of the <a href="http://www.ontok.com/geocode/index.php?addr=1600+Pennsylvania+Ave+Washington+DC">White House</a>. The service is accessible via REST, SOAP and JavaScript APIs. See also the nice <a href="http://www.ontok.com/geocode/">mashup UI</a> with Google Maps where you can click on the lower left Input Addresses to navigate.</li>
	<li><a href="http://www.programmableweb.com/api/ZeeMaps">ZeeMaps</a>: If you need to geocode addresses outside of the US, ZeeMaps can help. Given an international city, state (optional), and country combination, the service will return a set of latitude, longitudes (along with corrected city, state, country information). They offer REST, XML-RPC and SOAP interfaces.</li>
	</ul>&quot;

<p>(Via <a href="http://blog.programmableweb.com">ProgrammableWeb.com</a>.)</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-10-26#882">
  <rss:title>Breaking the Web Wide Open! </rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-10-26T19:28:47Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Marc Canter&#39;s Breaking the Web Wide Open! article is something I found pretty late (by my normal discovery standards). This was partly due to the pre- and post- Web 2.0 event noise levels that have dumped the description of an important industry inflection into the &quot;Bozo Bin&quot; of many. Personally, I think we shouldn&#39;t confuse the Web 2.0 traditional-pitch-fest conference with an attempt to identify an important industry inflection). Anyway, Marc&#39;s article is a very refreshing read because it provides a really good insight into the general landscape of a rapidly evolving Web alongside genuine appreciation of our broader timeless pursuit of &quot;Openness&quot;. To really help this document provide additional value have scrapped the content of the original post and dumped it below so that we can appreciate the value of the links embedded within the article (note: thanks to Virtuoso I only had to paste the content into my blog, the extraction to my Linkblog and Blog Summary Pages are simply features of my Virtuoso based Blog Engine):Breaking the Web Wide Open! (complete story)Even the web giants like AOL, Google, MSN, and Yahoo need to observe these open standards, or they&#39;ll risk becoming the &quot;walled gardens&quot; of the new web and be coolio no more.Marc Canter [Broadband Mechanics, Inc.] | POSTED: 09.26.05 @12:00Editorial Note: Several months ago, AlwaysOn got a personal invitation from Yahoo founder Jerry Yang &quot;to see and give us feedback on our new social media product, y!360.&quot; We were happy to oblige and dutifully showed up, joining a conference room full of hard-core bloggers and new, new media types. The geeks gave Yahoo 360 an overwhelming thumbs down, with comments like, &quot;So the only services I can use within this new network are Yahoo services? What if I don&#39;t use Yahoo IM?&quot; In essence, the Yahoo team was booed for being &quot;closed web,&quot; and we heartily agreed. With Yahoo 360, Yahoo continues building its own &quot;walled garden&quot; to control its 135 million customersÂan accusation also hurled at AOL in the early 1990s, before AOL migrated its private network service onto the web. As theÂ  Economist recently noted, &quot;Yahoo, in short, has old media plans for the new-media era.&quot;The irony to our view here is, of course, that today&#39;s AO Network is also a &quot;closed web.&quot; In the end, Mr. Yang&#39;s thoughtful invitation and our ensuing disappointment in his new service led to the assignment of this article. It also confirmed our existing plan to completely revamp the AO Network around open standards. To tie it all together, we recruited the chief architect of our new site, the notorious Marc Canter, to pen this piece. We look forward to our reader feedback.Breaking the Web Wide Open!By Marc CanterFor decades, &quot;walled gardens&quot; of proprietary standards and content have been the strategy of dominant players in mainframe computer software, wireless telecommunications services, and the World Wide WebÂit was their successful lock-in strategy of keeping their customers theirs. But like it or not, those walls are tumbling down. Open web standards are being adopted so widely, with such value and impact, that the web giantsÂAmazon, AOL, eBay, Google, Microsoft, and YahooÂare facing the difficult decision of opening up to what they don&#39;t control.The online world is evolving into a new open web (sometimes called the Web 2.0), which is all about being personalized and customized for each user. Not only open source software, but open standardsÂ are becoming an essential component. Many of the web giants have been using open source software for years. Most of them use at least parts of the LAMP (Linux, Apache, MySQL, Perl/Python/PHP) stack, even if they aren&#39;t well-known for giving back to the open source community. For these incumbents that grew big on proprietary web services, the methods, practices, and applications of open source software development are difficult to fully adopt. And the next open source movementsÂwhich will be as much about open standards as about codeÂwill be a lot harder for the incumbents to exploit.While the incumbents use cheap open source software to run their back-ends systems, their business models largely depend on proprietary software and algorithms. But our view a new slew of open software, open protocols, and open standards will confront the incumbents with the classic Innovator&#39;s Dilemma.Â  Should they adopt these tools and standards, painfully cannibalizing their existing revenue for a new unproven concept, or should they stick with their currently lucrative model with the risk that eventually a bunch of upstarts eat their lunch? Credit should go to several of the web giants who have been making efforts to &quot;open up.&quot; Google, Yahoo, eBay, and Amazon all have Open APIs (Application Programming Interfaces) built into their data and systems. Any software developer can access and use them for whatever creative purposes they wish. This means that the API provider becomes an open platform for everyone to use and build on top of. This notion has expanded like wildfire throughout the blogosphere, so nowadays, Open APIs are pretty much required.Other incumbents also have open strategies. AOL has got the RSS religion, providing a feedreader and RSS search in order to escape the &quot;walled garden of content&quot; stigma. Apple now incorporates podcasts, the &quot;personal radio shows&quot; that are latest rage in audio narrowcasting, into iTunes. Even Microsoft is supporting open standards, for example by endorsing SIP (Session Initiation Protocol) for internet telephony and conferencing over Skype&#39;s proprietary format or one of its own devising.But new open standards and protocols are in use, under construction, or being proposed every day, pushing the envelope of where we are right now. Many of these standards are coming from startup companies and small groups of developers, not from the giants. Together with the Open APIs, those new standards will contribute to a new, open infrastructure. Tens of thousands of developers will use and improve this open infrastructure to create new kinds of web-based applications and services, to offer web users a highly personalized online experience.A Brief History of OpennessAt this point, I have to admit that I am not just a passive observer, full-time journalist or &quot;just some blogger&quot;Âbut an active evangelist and developer of these standards. It&#39;s the vision of &quot;open infrastructure&quot; that&#39;s driving my company and the reason why I&#39;m writing this article. This article will give you some of the background behind on these standards, and what the evolution of the next generation of open standards will look like.Starting back in the 1980s, establishing a software standard was a key strategy for any software company. My former company, MacroMind (which became Macromedia), achieved this goal early on with Director. As Director evolved into Flash, the world saw that other companies besides Microsoft, Adobe, and Apple could establish true cross-platform, independent media standards.Then Tim Berners-Lee and Marc Andreessen came along, and changed the rules of the software business and of entrepreneurialism. No matter how entrenched and &quot;standardized&quot; software was, the rug could still get pulled out from under it. Netscape did it to Microsoft, and then Microsoft did it backÂ  to Netscape. The web evolved, and lots of standards evolved with it. The leading open source standards (such as the LAMP stack) became widely used alternatives to proprietary closed-source offerings. Open standards are more than just technology. Open standards mean sharing, empowering, and community support. Someone floats a new idea (or meme) and the community runs with it â with each person making their own contributions to the standard â evolving it without a moment&#39;s hesitation about &quot;giving away their intellectual property.&quot;One good example of this was Dave Sifry, who built the Technorati blog-tracking technology inspired by the Blogging Ecosystem, a weekend project by young hacker Phil Pearson. Dave liked what he saw and he ran with itÂturning Technorati into what it is today.Dave Winer has contributed enormously to this area of open standards. He defined and personally created several open standards and protocolsÂsuch as RSS, OPML, and XML-RPC. Dave has also helped build the blogosphere through his enthusiasm and passion.By 2003, hundreds of programmers were working on creating and establishing new standards for almost everything. The best of these new standards have evolved into compelling web services platforms â such as del.icio.us, Webjay, or Flickr. Some have even spun off formal standards â like XSPF (a standard for playlists) or instant messaging standard XMPP (also known as Jabber).Today&#39;s Open APIs are complemented by standardized SchemasÂthe structure of the data itself and its associated meta-data. Take for example a podcasting feed. It consists of: a) the radio show itself, b) information on who is on the show, what the show is about and how long the show is (the meta-data) and also c) API calls to retrieve a show (a single feed item) and play it from a specified server. The combination of Open APIs, standardized schemas for handling meta-data, and an industry which agrees on these standards are breaking the web wide open right now. So what new open standards should the web incumbentsÂand youÂbe watching? Keep an eye on the following developments:IdentityAttentionOpen MediaMicrocontent PublishingOpen Social NetworksTagsPinging RoutingOpen CommunicationsDevice Management and Control1. IdentityRight now, you don&#39;t really control your own online identity. At the core of just about every online piece of software is a membership system. Some systems allow you to browse a site anonymouslyÂbut unless you register with the site you can&#39;t do things like search for an article, post a comment, buy something, or review it. The problem is that each and every site has its own membership system. So you constantly have to register with new systems, which cannot share dataÂeven you&#39;d want them to. By establishing a &quot;single sign-on&quot; standard, disparate sites can allow users to freely move from site to site, and let them control the movement of their personal profile data, as well as any other data they&#39;ve created. With Passport, Microsoft unsuccessfully attempted to force its proprietary standard on the industry. Instead, a world is evolving where most people assume that users want to control their own data, whether that data is their profile, their blog posts and photos, or some collection of their past interactions, purchases, and recommendations. As long as users can control their digital identity, any kind of service or interaction can be layered on top of it.Identity 2.0 is all about users controlling their own profile data and becoming their own agents. This way the users themselves, rather than other intermediaries, will profit from their ID info. Once developers start offering single sign-on to their users, and users have trusted places to store their dataÂwhich respect the limits and provide access controls over that data, users will be able to access personalized services which will understand and use their personal data.Identity 2.0 may seem like some geeky, visionary future standard that isn&#39;t defined yet, but by putting each user&#39;s digital identity at the core of all their online experiences, Identity 2.0 is becoming the cornerstone of the new open web. The Initiatives:Right now, Identity 2.0 is under construction through various efforts from Microsoft (the &quot;InfoCard&quot; component built into the Vista operating system and its &quot;Identity Metasystem&quot;), Sxip Identity, Identity Commons, Liberty Alliance, LID (NetMesh&#39;s Lightweight ID), and SixApart&#39;s OpenID.More Movers and Shakers:Identity Commons and Kaliya Hamlin, Sxip Identity and Dick Hardt, the Identity Gang and Doc Searls, Microsoft&#39;s Kim Cameron, Craig Burton, Phil Windley, and Brad Fitzpatrick, to name a few.2. AttentionHow many readers know what their online attention is worth? If you don&#39;t, Google and Yahoo doÂthey make their living off our attention. They know what we&#39;re searching for, happily turn it into a keyword, and sell that keyword to advertisers. They make money off our attention. We don&#39;t. Technorati and friends proposed an attention standard, Attention.xml, designed to &quot;help you keep track of what you&#39;ve read, what you&#39;re spending time on, and what you should be paying attention to.&quot; AttentionTrust is an effort by Steve Gillmor and Seth Goldstein to standardize on how captured end-user performance, browsing, and interest data are used. Blogger Peter Caputa gives a good summary of AttentionTrust: &quot;As we use the web, we reveal lots of information about ourselves by what we pay attention to. Imagine if all of that information could be stored in a nice neat little xml file. And when we travel around the web, we can optionally share it with websites or other people. We can make them pay for it, lease it ... we get to decide who has access to it, how long they have access to it, and what we want in return. And they have to tell us what they are going to do with our Attention data.&quot;So when you give your attention to sites that adhere to the AttentionTrust, your attention rights (you own your attention, you can move your attention, you can pay attention and be paid for it,Â  and you can see how your attention is used) are guaranteed. Attention data is crucial to the future of the open web, and Steve and Seth are making sure that no one entity or oligopoly controls it. Movers and Shakers:Steve Gillmor, Seth Goldstein, Dave Sifry and the other Attention.xml folks. 3. Open MediaProprietary media standardsÂFlash, Windows Media, and QuickTime, to name a few Âhelped liven up the web. But they are proprietary standards that try to keep us locked in, and they weren&#39;t created from scratch to handle today&#39;s online content. That&#39;s why, for many of us, an Open Media standard has been a holy grail. Yahoo&#39;s new Media RSS standard brings us one step closer to achieving open media, as do Ogg Vorbis audio codecs, XSPF playlists, or MusicBrainz. And several sites offer digital creators not only a place to store their content, but also to sell it. Media RSS (being developed by Yahoo with help from the community) extends RSS and combines it with &quot;RSS enclosures&quot; Âadds metadata to any media itemÂto create a comprehensive solution for media &quot;narrowcasters.&quot; To gain acceptance for Media RSS, Yahoo knows it has to work with the community. As an active member of this community, I can tell you that we&#39;ll create Media RSS equivalents for rdf (an alternative subscription format) and Atom (yet anotherÂ  subscription format), so no one will be able to complain that Yahoo is picking sides in format wars.When Yahoo announced the purchase of Flickr, Yahoo founder Jerry Yang insinuated that Yahoo is acquiring &quot;open DNA&quot; to turn Yahoo into an open standards player. Yahoo is showing what happens when you take a multi-billion dollar company and make openness one of its core valuesÂso Google, beware, even if Google does have more research fellows and Ph.D.s. The open media landscape is far and wide, reaching from game machine hacks and mobile phone downloads to PC-driven bookmarklets, players, and editors, and it includes many other standardization efforts. XSPF is an open standard for playlists, and MusicBrainz is an alternative to the proprietary (and originally effectively stolen) database that Gracenote licenses. Ourmedia.org is a community front-end to Brewster Kahle&#39;s Internet Archive. Brewster has promised free bandwidth and free storage forever to any content creators who choose to share their content via the Internet Archive. Ourmedia.org is providing an easy-to-use interface and community to get content in and out of the Internet Archive, giving ourmedia.org users the ability to share their media anywhere they wish, without being locked into a particular service or tool. Ourmedia plans to offer open APIs and an open media registry that interconnects other open media repositories into a DNS-like registry (just like the www domain system), so folks can browse and discover open content across many open media services. Systems like Brightcove and Odeo support the concept of an open registry, and hope to work with digital creators to sell their work to fulfill the financial aspect of the &quot;Long Tail.&quot;More Movers and Shakers:Creative Commons, the Open Media Network, Jay Dedman, Ryanne Hodson, Michael Verdi, Eli Chapman, Kenyatta Cheese, Doug Kaye, Brad Horowitz, Lucas Gonze, Robert Kaye, Christopher Allen, Brewster Kahle, JD Lasica, and indeed, Marc Canter, among others.4. Microcontent PublishingUnstructured content is cheap to create, but hard to search through. Structured content is expensive to create, but easy to search. Microformats resolve the dilemma with simple structures that are cheap to use and easy to search.The first kind of widely adopted microcontent is blogging. Every post is an encapsulated idea, addressable via a URL called a permalink. You can syndicate or subscribe to this microcontent using RSS or an RSS equivalent, and news or blog aggregators can then display these feeds in a convenient readable fashion. But a blog post is just a block of unstructured textânot a bad thing, but just a first step for microcontent. When it comes tostructuredÂ data, such as personal identity profiles, product reviews, or calendar-type event data, RSS was not designed to maintain the integrity of the structures. Right now, blogging doesn&#39;t have the underlying structure necessary for full-fledged microcontent publishing. But that will change. Think of local information services (such as movie listings, event guides, or restaurant reviews) that any college kid can access and use in her weekend programming project to create new services and tools.Today&#39;s blogging tools will evolve into microcontent publishing systems, and will help spread the notion of structured data across the blogosphere. New ways to store, represent and produce microcontent will create new standards, such as Structured Blogging and Microformats. Microformats differ from RSS feeds in that you can&#39;t subscribe to them. Instead, Microformats are embedded into webpages and discovered by search engines like Google or Technorati. Microformats are creating common definitions for &quot;What is a review or event? What are the specific fields in the data structure?&quot; They can also specify what we can do with all this information.OPML (Outline Processor Markup Language) is a hierarchical file format for storing microcontent and structured data. It was developed by Dave Winer of RSS and podcast fame.Events are one popular type of microcontent. OpenEvents is already working to create shared databases of standardized events, which would get used by a new generation of event portalsâsuch as Eventful/EVDB, Upcoming.org, and WhizSpark. The idea of OpenEvents is that event-oriented systems and services can work together to establish shared events databases (and associated APIs) that any developer could then use to create and offer their own new service or application. OpenReviews is still in the conceptual stage, but it would make it possible to provide open alternatives to closed systems like Epinions, and establish a shared database of local and global reviews. Its shared open servers would be filled with all sorts of reviews for anyone to access. Why is this important? Because I predict that in the future, 10 times more people will be writing reviews than maintaining their own blog. The list of possible microcontent standards goes on: OpenJobpostings, OpenRecipes, and even OpenLists. Microsoft recently revealed that it has been working on an important new kind of microcontent: Listsâso OpenLists will attempt to establish standards for the kindÂ of lists we all use, such as lists of Links, lists of To Do Items, lists of People, Wish Lists, etc.Movers and Shakers:Tantek Ãelik and Kevin Marks of Technorati, Danny Ayers, Eric Meyer, Matt Mullenweg, Rohit Khare, Adam Rifkin, Arnaud Leene, Seb Paquet, Alf Eaton, Phil Pearson, Joe Reger, Bob Wyman among others.5. Open Social NetworksI&#39;ll never forget the first time I met Jonathan Abrams, the founder of Friendster. He was arrogant and brash and he claimed he &quot;owned&quot;Â  all his users, and that he was going to monetize them and make a fortune off them. This attitude robbed Friendster of its momentum, letting MySpace, Facebook, and other social networks take Friendster&#39;s place.Jonathan&#39;s notion of social networks as a way to control users is typical of the Web 1.0 business model and its attitude towards users in general. Social networks have become one of the battlegrounds between old and new ways of thinking. Open standards for Social Networking will define those sides very clearly. Since meeting Jonathan, I have been working towards finding and establishing open standards for social networks. Instead of closed, centralized social networks with 10 million people in them, the goal is making it possible to have 10 million social networks that each have 10 people in them.FOAF (which stands for Friend Of A Friend, and describes people and relationships in a way that computers can parse) is a schema to represent not only your personal profile&#39;s meta-data, but your social network as well. Thousands of researchers use the FOAF schema in their &quot;Semantic Web&quot; projects to connect people in all sorts of new ways. XFN is a microformat standard for representing your social network, while vCard (long familiar to users of contact manager programs like Outlook) is a microformat that contains your profile information. Microformats are baked into any xHTML webpage, which means thatanyÂ blog, social network page, or any webpage in general can &quot;contain&quot; your social network in itÂand be used byanyÂ compatible tool, service or application. PeopleAggregator is an earlier project now being integrated into open content management framework Drupal. The PeopleAggregator APIs will make it possible to establish relationships, send messages, create or join groups, and post between different social networks. (Sneak preview: this technology will be available in the upcoming GoingOn Network.) All of these open social networking standards mean that inter-connected social networks will form a mesh that will parallel the blogosphere. This vibrant, distributed, decentralized world will be driven by open standards: personalized online experiences are what the new open web will be all aboutÂand what could be more personalized than people&#39;s networks?Movers and Shakers:Eric Sigler, Joel De Gan, Chris Schmidt, Julian Bond, Paul Martino, Mary Hodder, Drummond Reed, Dan Brickley, Randy Farmer, and Kaliya Hamlin, to name a few.6. TagsNowadays, no self-respecting tool or service can ship without tags. Tags are keywords or phrases attached to photos, blog posts, URLs, or even video clips. These user- and creator-generated tags are an open alternative to what used to be the domain of librarians and information scientists: categorizing information and content using taxonomies. Tags are instead creating &quot;folksonomies.&quot;The recently proposed OpenTags concept would be an open, community-owned version of the popular Technorati Tags service. It would aggregate the usage of tags across a wide range of services, sites, and content tools. In addition to Technorati&#39;s current tag features, OpenTags would let groups of people share their tags in &quot;TagClouds.&quot; Open tagging is likely to include some of the open identity features discussed above, to create a tag system that is resilient to spam, and yet trustable across sites all over the web.OpenTags owes a debt to earlier versions of shared tagging systems, which include Topic Exchange and something called the k-collectorÂa knowledge management tag aggregatorÂfrom Italian company eVectors. Movers &amp; Shakers:Phil Pearson, Matt Mower , Paolo Valdemarin, and Mary Hodder and Drummond Reed again, among others.7. PingingWebsites used to be mostly static. Search engines that crawled (or &quot;spidered&quot;) them every so often did a good enough job to show reasonably current versions of your cousin&#39;s homepage or even TimeÂ magazine&#39;s weekly headlines. But when blogging took off, it became hard for search engines to keep up. (Google has only just managed to offer blog-search functionality, despite buying Blogger back in early 2003.)To know what was new in the blogosphere, users couldn&#39;t depend on services that spidered webpages once in a while. The solution: a way for blogs themselves to automatically notify blog-tracking sites that they&#39;d been updated. Weblogs.com was the first blog &quot;ping service&quot;: it displayed the name of a blog whenever that blog was updated. Pinging sites helped the blogosphere grow, and more tools, services, and portals started using pinging in new and different ways. Dozens of pinging services and sitesÂmost of which can&#39;t talk to each otherÂsprang up. Matt Mullenweg (the creator of open source blogging software WordPress) decided that a one-stop service for pinging was needed. He created Ping-o-MaticÂwhich aggregates ping services and simplifies the pinging process for bloggers and tool developers. With Ping-o-Matic, any developer can alert all of the industry&#39;s blogging tools and tracking sites at once. This new kind of open standard, with shared infrastructure, is a critical to the scalability of Web 2.0 services.As Matt said:There are a number of services designed specifically for tracking and connecting blogs. However it would be expensive for all the services to crawl all the blogs in the world all the time. By sending a small ping to each service you let them know you&#39;ve updated so they can come check you out. They get the freshest data possible, you don&#39;t get a thousand robots spidering your site all the time. Everybody wins.Movers and Shakers:Matt Mullenweg, Jim Winstead, Dave Winer8. RoutingBloggers used to have to manually enter the links and content snippets of blog posts or news items they wanted to blog. Today, some RSS aggregators can send a specified post directly into an associated blogging tool: as bloggers browse through the feeds they subscribe to, they can easily specify and send any post they wish to &quot;reblog&quot; from their news aggregator or feed reader into their blogging tool. (This is usually referred to as &quot;BlogThis.&quot;) As structured blogging comes into its own (see the section on Microcontent Publishing), it will be increasingly important to maintain the structural integrity of these pieces of microcontent when reblogging them. Promising standard RedirectThis will combine a &quot;BlogThis&quot;-like capability while maintaining the integrity of the microcontent. RedirectThis will let bloggers and content developers attach a simple &quot;PostThis&quot; button to their posts. Clicking on that button will send that post to the reader/blogger&#39;s favorite blogging tool. This favorite tool is specified at the RedirectThis web service, where users register their blogging tool of choice. RedirectThis also helps maintain the integrity and structure of microcontentÂthen it&#39;s just up to the user to prefer a blogging tool that also attains that lofty goal of microcontent integrity. OutputThis is another nascent web services standard, to let bloggers specify what &quot;destinations&quot; they&#39;d like to have as options in their blogging tool. As new destinations are added to the service, more checkboxes would get added to their blogging toolÂallowing them to route their published microcontent to additional destinations.Movers and Shakers:Michael Migurski, Lucas Gonze9. Open CommunicationsLikely, you&#39;ve experienced the joys of finding friends on AIM or Yahoo Messenger, or the convenience of Skyping with someone overseas. Not that you&#39;re about to throw away your mobile phone or BlackBerry, but for many, also having access to Instant Messaging (IM) and Voice over IP (VoIP) is crucial. IM and VoIP are mainstream technologies that already enjoy the benefits of open standards. Entire industries are bornÂright this secondÂbased around these open standards. Jabber has been an open IM technology for yearsÂin fact, as XMPP, it was officially dubbed a standard by the IETF. Although becoming an official IETF standard is usually the kiss of death, Jabber looks like it&#39;ll be around for a while, as entire generations of collaborative, work-group applications and services have been built on top of its messaging protocol. For VoIP, Skype is clearly the leading standard todayÂthough one could argue just how &quot;open&quot; it is (and defenders of the IETF&#39;s SIP standard often do). But it is free and user-friendly, so there won&#39;t be much argument from usersÂ  about it being insufficiently open. Yet there may be a cloud on Skype&#39;s horizon: web behemoth Google recently released a beta of Google Talk, an IM client committed to open standards. It currently supports XMPP, and will support SIP for VoIP calls.Movers and Shakers:Jeremie Miller, Henning Schulzrinne, Jon Peterson, Jeff Pulver10. Device Management and ControlTo access online content, we&#39;re using more and more devices. BlackBerrys, iPods, Treos, you name it. As the web evolves, more and more different devices will have to communicate with each other to give us the content we want when and where we want it. No-one wants to be dependent on one vendor anymoreÂlike, say, SonyÂfor their laptop, phone, MP3 player, PDA, and digital camera, so that it all works together. We need fully interoperable devices, and the standards to make that work. And to fully make use of how content is moving online content and innovative web services, those standards need to be open.MIDI (musical instrument digital interface), one of the very first open standards in music, connected disparate vendors&#39; instruments, post-production equipment, and recording devices. But MIDI is limited, and MIDI II has been very slow to arrive. Now a new standard for controlling musical devices has emerged: OSC (Open SoundControl). This protocol is optimized for modern networking technology and inter-connects music, video and controller devices with &quot;other multimedia devices.&quot; OSC is used by a wide range of developers, and is being taken up in the mainstream MIDI marketplace.Another open-standards-based device management technology is ZigBee, for building wireless intelligence and network monitoring into all kinds of devices. ZigBee is supported by many networking, consumer electronics, and mobile device companies.Â  Â  Â  Â· Â· Â· Â· Â· Â· Â  Â  The Change to OpennessThe rise of open source software and its &quot;architecture of participation&quot; are completely shaking up the old proprietary-web-services-and-standards approach. Sun MicrosystemsÂwhose proprietary Java standard helped define the Web 1.0Âis opening its Solaris OS and has even announced the apparent paradox of an open-source Digital Rights Management system.Today&#39;s incumbents will have to adapt to the new openness of the Web 2.0. If they stick to their proprietary standards, code, and content, they&#39;ll become the new walled gardensÂplaces users visit briefly to retrieve data and content from enclosed data silos, but not where users &quot;live.&quot; The incumbents&#39; revenue models will have to change. Instead of &quot;owning&quot; their users, users will know they own themselves, and will expect a return on their valuable identity and attention. Instead of being locked into incompatible media formats, users will expect easy access to digital content across many platforms. Yesterday&#39;s web giants and tomorrow&#39;s users will need to find a mutually beneficial new balanceÂbetween open and proprietary, developer and user, hierarchical and horizontal, owned and shared, and compatible and closed. Marc Canter is an active evangelist and developer of open standards. Early in his career, Marc founded MacroMind, which became Macromedia. These days, he is CEO of Broadband Mechanics, a founding member of the Identity Gang and of ourmedia.org. Broadband Mechanics is currently developing the GoingOn Network (with the AlwaysOn Network), as well as an open platform for social networking called the PeopleAggregator.A version of the above post appears in the Fall 2005 issue of AlwaysOn&#39;s quarterly print blogozine, and ran as a four-part series on the AlwaysOn Network website.(Via Marc&#39;s Voice.)</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://marc.blogs.it/">Marc Canter</a>&#39;s <a href="http://marc.blogs.it/archives/2005/10/breaking_the_we.html">Breaking the Web Wide Open! </a> article is something I found pretty late (by my normal discovery standards). This was partly due to the pre- and post- Web 2.0 event noise levels that have dumped the description of an important industry inflection into the &quot;Bozo Bin&quot; of many. Personally, I think we shouldn&#39;t confuse the Web 2.0 traditional-pitch-fest conference with an attempt to identify an important industry inflection).</p><p> Anyway, Marc&#39;s article is a very refreshing read because it provides a really good insight into the general landscape of a rapidly evolving Web alongside genuine appreciation of our broader timeless pursuit of &quot;Openness&quot;. </p><p>To really help this document provide additional value have scrapped the content of the original post and dumped it below so that we can appreciate the value of the links embedded within the article (note: thanks to Virtuoso I only had to paste the content into my blog, the extraction to my <a href="http://www.openlinksw.com/blog/~kidehen/index.vspx?page=linkblog">Linkblog</a> and <a href="http://www.openlinksw.com/blog/~kidehen/index.vspx?page=summary">Blog Summary</a> Pages are simply features of my <a href="http://www.openlinksw.com/virtuos">Virtuoso </a>based Blog Engine):</p><blockquote><h3 class="hed2" style="padding-bottom: 10px">Breaking the Web Wide Open! (complete story)</h3><p>Even the web giants like AOL, Google, MSN, and Yahoo need to observe these open standards, or they&#39;ll risk becoming the &quot;walled gardens&quot; of the new web and be coolio no more.</p><p class="byline"><b><a href="http://community.alwayson-network.com/cgi-bin/WebObjects/AlwaysOn.woa/wa/display?id=9254:Person">Marc Canter</a></b> [<a href="http://community.alwayson-network.com/cgi-bin/WebObjects/AlwaysOn.woa/wa/display?id=9254:Person"><b>Broadband Mechanics, Inc.</b></a>] | POSTED: 09.26.05 @12:00</p><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td valign="TOP" class="copy1"><img src="http://community.alwayson-network.com/ao/images/thumb/19433429363e7cd6b1ecfb7.jpg" align="LEFT" border="0" width="80" style="margin: 0px 10px 5px 0px" alt="" /><i><b>Editorial Note:</b> Several months ago, AlwaysOn got a personal invitation from Yahoo founder Jerry Yang &quot;to see and give us feedback on our new social media product, y!360.&quot; We were happy to oblige and dutifully showed up, joining a conference room full of hard-core bloggers and new, new media types. The geeks gave Yahoo 360 an overwhelming thumbs down, with comments like, &quot;So the only services I can use within this new network are Yahoo services? What if I don&#39;t use Yahoo IM?&quot; In essence, the Yahoo team was booed for being &quot;closed web,&quot; and we heartily agreed. With Yahoo 360, Yahoo continues building its own &quot;walled garden&quot; to control its 135 million customersÂan accusation also hurled at AOL in the early 1990s, before AOL migrated its private network service onto the web. As the</i>Â  <a href="http://bernardmoon.blogspot.com/2005/08/yahoos-personality-crisis.html" target="_blank">Economist<i> recently noted</i></a>, &quot;Yahoo, in short, has old media plans for the new-media era.&quot;<br /><br />The irony to our view here is, of course, that today&#39;s AO Network is also a &quot;closed web.&quot; In the end, Mr. Yang&#39;s thoughtful invitation and our ensuing disappointment in his new service led to the assignment of this article. It also confirmed our existing plan to completely revamp the AO Network around open standards. To tie it all together, we recruited the chief architect of our new site, <a href="http://www.corante.com/amateur/articles/20030211-3564.html" target="_blank">the notorious Marc Canter</a>, to pen this piece. We look forward to our reader feedback.<br /><br /><b>Breaking the Web Wide Open!</b><br />By Marc Canter<br /><br />For decades, &quot;walled gardens&quot; of proprietary standards and content have been the strategy of dominant players in mainframe computer software, wireless telecommunications services, and the World Wide WebÂit was their successful lock-in strategy of keeping their customers theirs. But like it or not, those walls are tumbling down. Open web standards are being adopted so widely, with such value and impact, that the web giantsÂAmazon, AOL, eBay, Google, Microsoft, and YahooÂare facing the difficult decision of opening up to what they don&#39;t control.<br /><br />The online world is evolving into a new open web (sometimes called the Web 2.0), which is all about being personalized and customized for each user. Not only open source software, but <i>open standards</i>Â are becoming an essential component. <br /><br />Many of the web giants have been using open source software for years. Most of them use at least parts of the <a href="http://www.onlamp.com/pub/a/onlamp/2001/01/25/lamp.html" target="_blank">LAMP</a> (Linux, Apache, MySQL, Perl/Python/PHP) stack, even if they aren&#39;t well-known for giving back to the open source community. For these incumbents that grew big on proprietary web services, the methods, practices, and applications of open source software development are difficult to fully adopt. And the next open source movementsÂwhich will be as much about open standards as about codeÂwill be a lot harder for the incumbents to exploit.<br /><br />While the incumbents use cheap open source software to run their back-ends systems, their business models largely depend on proprietary software and algorithms. But our view a new slew of open software, open protocols, and open standards will confront the incumbents with the classic <i><a href="http://www.businessweek.com/chapter/christensen.htm" target="_blank">Innovator&#39;s Dilemma</a></i>.Â  Should they adopt these tools and standards, painfully cannibalizing their existing revenue for a new unproven concept, or should they stick with their currently lucrative model with the risk that eventually a bunch of upstarts eat their lunch? <br /><br />Credit should go to several of the web giants who have been making efforts to &quot;open up.&quot; Google, Yahoo, eBay, and Amazon all have Open APIs (Application Programming Interfaces) built into their data and systems. Any software developer can access and use them for whatever creative purposes they wish. This means that the API provider becomes an open platform for everyone to use and build on top of. This notion has expanded like wildfire throughout the blogosphere, so nowadays, Open APIs are pretty much required.<br /><br />Other incumbents also have open strategies. AOL has got the RSS religion, <a href="http://www.siliconbeat.com/entries/2005/07/27/aol_gets_rss_religion_with_my_aoland_feedsters_help.html" target="_blank">providing a feedreader and RSS search</a> in order to escape the &quot;walled garden of content&quot; stigma. <a href="http://www.apple.com/podcasting/" target="_blank">Apple now incorporates podcasts</a>, the &quot;personal radio shows&quot; that are latest rage in audio narrowcasting, into iTunes. Even Microsoft is supporting open standards, for example <a href="http://www.microsoft.com/technet/prodtechnol/winxppro/plan/rtcprot.mspx#EKAA" target="_blank">by endorsing SIP (Session Initiation Protocol) for internet telephony and conferencing</a> over Skype&#39;s proprietary format or one of its own devising.<br /><br />But new open standards and protocols are in use, under construction, or being proposed every day, pushing the envelope of where we are right now. Many of these standards are coming from startup companies and small groups of developers, not from the giants. Together with the Open APIs, those new standards will contribute to a new, open infrastructure. Tens of thousands of developers will use and improve this open infrastructure to create new kinds of web-based applications and services, to offer web users a highly personalized online experience.<br /><br /><b>A Brief History of Openness</b><br /><br />At this point, I have to admit that I am not just a passive observer, full-time journalist or &quot;just some blogger&quot;Âbut an active evangelist and developer of these standards. It&#39;s the vision of &quot;open infrastructure&quot; that&#39;s driving <a href="http://www.broadbandmechanics.com/bbm2005.htm" target="_blank">my company </a> and the reason why I&#39;m writing this article. This article will give you some of the background behind on these standards, and what the evolution of the next generation of open standards will look like.<br /><br />Starting back in the 1980s, establishing a software standard was a key strategy for any software company. My former company, MacroMind (which became Macromedia), achieved this goal early on with Director. As <a href="http://webmonkey.wired.com/webmonkey/99/27/index3a_page6.html?tw=multimedia" target="_blank">Director evolved into Flash</a>, the world saw that other companies besides Microsoft, Adobe, and Apple could establish true cross-platform, independent media standards.<br /><br />Then <a href="http://www.w3.org/People/Berners-Lee/" target="_blank">Tim Berners-Lee</a> and <a href="http://www.ibiblio.org/pioneers/andreesen.html" target="_blank">Marc Andreessen</a> came along, and changed the rules of the software business and of entrepreneurialism. No matter how entrenched and &quot;standardized&quot; software was, the rug could still get pulled out from under it. <a href="http://geekphilosopher.com/MainPage/WebBrowserWars.htm?q=Stocks" target="_blank">Netscape did it to Microsoft, and then Microsoft did it <i>back</i>Â  to Netscape</a>. The web evolved, and lots of standards evolved with it. The leading open source standards (such as the LAMP stack) became widely used alternatives to proprietary closed-source offerings. <br /><br />Open standards are more than just technology. Open standards mean sharing, empowering, and community support. Someone floats a new idea (or <a href="http://en.wikipedia.org/wiki/Meme" target="_blank">meme</a>) and the community runs with it â with each person making their own contributions to the standard â evolving it without a moment&#39;s hesitation about &quot;giving away their intellectual property.&quot;<br /><br />One good example of this was <a href="http://www.sifry.com/alerts/" target="_blank">Dave Sifry</a>, who built the Technorati blog-tracking technology inspired by the <a href="http://www.myelin.co.nz/ecosystem/" target="_blank">Blogging Ecosystem</a>, a weekend project by young hacker <a href="http://marc.blogs.it/archives/2005/07/phil_pearson_jo.html" target="_blank">Phil Pearson</a>. Dave liked what he saw and he ran with itÂturning Technorati into what it is today.<br /><br /><a href="http://en.wikipedia.org/wiki/Dave_Winer" target="_blank">Dave Winer</a> has contributed enormously to this area of open standards. He defined and personally created several open standards and protocolsÂsuch as RSS, OPML, and XML-RPC. Dave has also <a href="http://newhome.weblogs.com/historyOfWeblogs" target="_blank">helped build</a> the blogosphere through his enthusiasm and passion.<br /><br />By 2003, hundreds of programmers were working on creating and establishing new standards for almost everything. The best of these new standards have evolved into compelling web services platforms â such as <a href="http://del.icio.us/" target="_blank">del.icio.us</a>, <a href="http://webjay.org/about" target="_blank">Webjay</a>, or <a href="http://www.flickr.com/photos/tags/ao2005/" target="_blank">Flickr</a>. Some have even spun off formal standards â like XSPF (a standard for playlists) or instant messaging standard XMPP (also known as Jabber).<br /><br />Today&#39;s Open APIs are complemented by standardized SchemasÂthe structure of the data itself and its associated meta-data. Take for example a <a href="http://www.ipodder.org/whatIsPodcasting" target="_blank">podcasting feed</a>. It consists of: a) the radio show itself, b) information on who is on the show, what the show is about and how long the show is (the meta-data) and also c) API calls to retrieve a show (a single feed item) and play it from a specified server. <br /><br />The combination of Open APIs, standardized schemas for handling meta-data, and an industry which agrees on these standards are breaking the web wide open right now. So what new open standards should the web incumbentsÂand youÂbe watching? Keep an eye on the following developments:<br /><br /><b>Identity<br />Attention<br />Open Media<br />Microcontent Publishing<br />Open Social Networks<br />Tags<br />Pinging <br />Routing<br />Open Communications<br />Device Management and Control</b><br /><br /><br /><b>1.	Identity</b><br /><br />Right now, you don&#39;t really control your own online identity. At the core of just about every online piece of software is a membership system. Some systems allow you to browse a site anonymouslyÂbut unless you register with the site you can&#39;t do things like search for an article, post a comment, buy something, or review it. The problem is that each and every site has its own membership system. So you constantly have to register with new systems, which cannot share dataÂeven you&#39;d want them to. By establishing a <a href="http://www.wired.com/news/privacy/0,1848,68329-2,00.html?tw=wn_story_page_next1" target="_blank">&quot;single sign-on&quot; standard</a>, disparate sites can allow users to freely move from site to site, and let them control the movement of their personal profile data, as well as any other data they&#39;ve created. <br /><br />With <a href="http://www.thehindubusinessline.com/2005/01/03/stories/2005010301440200.htm" target="_blank">Passport, Microsoft unsuccessfully attempted</a> to force its proprietary standard on the industry. Instead, a world is evolving where most people assume that users want to control their own data, whether that data is their profile, their blog posts and photos, or some collection of their past interactions, purchases, and recommendations. As long as users can control their digital identity, any kind of service or interaction can be layered on top of it.<br /><br /><a href="http://www.identity20.com/media/OSCON2005/" target="_blank">Identity 2.0</a> is all about users controlling their own profile data and becoming their own agents. This way the users themselves, rather than other intermediaries, will profit from their ID info. Once developers start offering single sign-on to their users, and users have trusted places to store their dataÂwhich respect the limits and provide access controls over that data, users will be able to access personalized services which will understand and use their personal data.<br /><br />Identity 2.0 may seem like some geeky, visionary future standard that isn&#39;t defined yet, but by putting each user&#39;s digital identity at the core of all their online experiences, Identity 2.0 is becoming the cornerstone of the new open web. <br /><br /><b>The Initiatives:</b><br />Right now, Identity 2.0 is under construction through various efforts from Microsoft (the <a href="http://msdn.microsoft.com/webservices/webservices/understanding/advancedwebservices/default.aspx?pull=/library/en-us/dnwebsrv/html/identitymetasystem.asp" target="_blank">&quot;InfoCard&quot; component built into the Vista operating system</a> and its &quot;<a href="http://garage.docsearls.com/node/605" target="_blank">Identity Metasystem</a>&quot;), <a href="http://sxip.com" target="_blank">Sxip Identity</a>, <a href="http://www.identtycommons.net" target="_blank">Identity Commons</a>, <a href="http://www.projectliberty.org/" target="_blank">Liberty Alliance</a>, <a href="http://lid.netmesh.org/" target="_blank">LID</a> (NetMesh&#39;s Lightweight ID), and SixApart&#39;s <a href="http://openid.net/" target="_blank">OpenID</a>.<br /><br /><b>More Movers and Shakers:</b><br />Identity Commons and <a href="http://www.identitywoman.net" target="_blank">Kaliya Hamlin</a>, Sxip Identity and <a href="http://blame.ca/dick/" target="_blank">Dick Hardt</a>, the <a href="http://www.identitygang.org/" target="_blank"> Identity Gang</a> and <a href="http://www.searls.com/dochome.html#Bio" target="_blank">Doc Searls</a>, Microsoft&#39;s <a href="http://www.identityblog.com/" target="_blank">Kim Cameron</a>, <a href="http://www.craigburton.com/" target="_blank">Craig Burton</a>, <a href="http://phil.windley.org/" target="_blank">Phil Windley</a>, and <a href="http://slashdot.org/article.pl?sid=05/07/05/2020221&from=rss" target="_blank">Brad Fitzpatrick</a>, to name a few.<br /><br /><br /><b>2.	Attention</b><br /><br />How many readers know what their online attention is worth? If you don&#39;t, Google and Yahoo doÂthey make their living off our attention. They know what we&#39;re searching for, happily turn it into a keyword, and sell that keyword to advertisers. They make money off our attention. We don&#39;t. <br /><br />Technorati and friends proposed <a href="http://blogs.zdnet.com/Gillmor/index.php?p=74" target="_blank">an attention standard, Attention.xml</a>, designed to &quot;help you keep track of what you&#39;ve read, what you&#39;re spending time on, and what you should be paying attention to.&quot; <a href="http://attentiontrust.org/" target="_blank">AttentionTrust</a> is an effort by <a href="http://blogs.zdnet.com/Gillmor/?p=132" target="_blank">Steve Gillmor</a> and <a href="http://majestic.typepad.com/seth/2005/07/attentiontrusto.html" target="_blank">Seth Goldstein </a>to standardize on how captured end-user performance, browsing, and interest data are used. <br /><br />Blogger <a href="http://worcester.typepad.com/pc4media/2005/07/attentiontrusto_1.html" target="_blank">Peter Caputa gives a good summary</a> of AttentionTrust: <blockquote>&quot;As we use the web, we reveal lots of information about ourselves by what we pay attention to. Imagine if all of that information could be stored in a nice neat little xml file. And when we travel around the web, we can optionally share it with websites or other people. We can make them pay for it, lease it ... we get to decide who has access to it, how long they have access to it, and what we want in return. And they have to tell us what they are going to do with our Attention data.&quot;</blockquote><br />So when you give your attention to sites that adhere to the AttentionTrust, your attention rights (<i>you own your attention, you can move your attention, you can pay attention and be paid for it</i>,Â  and <i>you can see how your attention is used</i>) are guaranteed. Attention data is crucial to the future of the open web, and Steve and Seth are making sure that no one entity or oligopoly controls it. <br /><br /><b>Movers and Shakers:</b><br /><a href="http://blogs.zdnet.com/Gillmor/" target="_blank">Steve Gillmor</a>, <a href="http://majestic.typepad.com/about.html" target="_blank">Seth Goldstein</a>, <a href="http://www.sifry.com/alerts/" target="_blank">Dave Sifry</a> and the <a href="http://developers.technorati.com/wiki/attentionxml" target="_blank">other Attention.xml folks</a>. <br /><br /><br /><b>3.	Open Media</b><br /><br />Proprietary media standardsÂFlash, Windows Media, and QuickTime, to name a few Âhelped liven up the web. But they are proprietary standards that try to keep us locked in, and they weren&#39;t created from scratch to handle today&#39;s online content. That&#39;s why, for many of us, an Open Media standard has been a holy grail. Yahoo&#39;s new Media RSS standard brings us one step closer to achieving open media, as do <a href="http://www.vorbis.com/faq/#what" target="_blank">Ogg Vorbis</a> audio codecs, <a href="http://webjay.org/" target="_blank">XSPF playlists</a>, or <a href="http://musicbrainz.org/" target="_blank">MusicBrainz</a>. And several sites offer digital creators not only a place to store their content, but also to sell it. <br /><br /><a href="http://search.yahoo.com/mrss" target="_blank">Media RSS </a>(being developed by Yahoo with help from the community) extends RSS and combines it with &quot;RSS enclosures&quot; Âadds metadata to any media itemÂto create a comprehensive solution for media &quot;narrowcasters.&quot; To gain acceptance for Media RSS, Yahoo knows it has to work with the community. As an active member of this community, I can tell you that we&#39;ll create Media RSS equivalents for <a href="http://www.xml.com/pub/a/2001/01/24/rdf.html" target="_blank">rdf</a> (an alternative subscription format) and <a href="http://www.atomenabled.org/" target="_blank">Atom</a> (yet <i>another</i>Â  subscription format), so no one will be able to complain that Yahoo is picking sides in format wars.<br /><br />When Yahoo announced the purchase of Flickr, Yahoo founder Jerry Yang insinuated that Yahoo is acquiring &quot;open DNA&quot; to turn Yahoo into <a href="http://www.flickr.com/services/api/" target="_blank">an open standards player</a>. Yahoo is showing what happens when you take a multi-billion dollar company and make openness one of its core valuesÂso Google, beware, even if Google does have more research fellows and Ph.D.s. <br /><br />The open media landscape is far and wide, reaching from game machine hacks and mobile phone downloads to PC-driven bookmarklets, players, and editors, and it includes many other standardization efforts. <a href="http://www.xspf.org/" target="_blank">XSPF</a> is an open standard for playlists, and MusicBrainz is an alternative to the proprietary (and originally effectively stolen) database that <a href="http://en.wikipedia.org/wiki/Gracenote" target="_blank">Gracenote</a> licenses. <br /><br /><a href="http://www.ourmedia.org/" target="_blank">Ourmedia.org</a> is a community front-end to Brewster Kahle&#39;s <a href="http://www.archive.org" target="_blank">Internet Archive</a>. Brewster has promised free bandwidth and free storage forever to any content creators who choose to share their content via the Internet Archive. Ourmedia.org is providing an easy-to-use interface and community to get content in and out of the Internet Archive, giving ourmedia.org users the ability to share their media anywhere they wish, without being locked into a particular service or tool. Ourmedia plans to offer open APIs and an open media registry that interconnects other open media repositories into a DNS-like registry (just like the www domain system), so folks can browse and discover open content across many open media services. Systems like <a href="http://www.brightcove.com/" target="_blank">Brightcove</a> and <a href="http://www.evhead.com/2005/02/how-odeo-happened.asp" target="_blank">Odeo</a> support the concept of an open registry, and hope to work with digital creators to sell their work to fulfill the financial aspect of <a href="http://en.wikipedia.org/wiki/The_Long_Tail" target="_blank">the &quot;Long Tail.&quot;</a><br /><br /><b>More Movers and Shakers:</b><br /><a href="http://creativecommons.org/about/people" target="_blank">Creative Commons</a>, the <a href="http://www.omn.org/" target="_blank">Open Media Network</a>, <a href="http://www.momentshowing.net/about.html" target="_blank">Jay Dedman</a>, <a href="http://ryanedit.blogspot.com/" target="_blank">Ryanne Hodson</a>, <a href="http://michaelverdi.com/index.php" target="_blank">Michael Verdi</a>, <a href="http://www.chapmanlogic.com/blog/aboutEli.html" target="_blank">Eli Chapman</a>, <a href="http://www.unmediated.org/" target="_blank">Kenyatta Cheese</a>, <a href="http://www.itconversations.com/about.html" target="_blank">Doug Kaye</a>, <a href="http://www.wired.com/wired/archive/13.09/yahoo.html" target="_blank">Brad Horowitz</a>, <a href="http://webjay.org/about#colophon" target="_blank">Lucas Gonze</a>, <a href="http://musicbrainz.org/wd/MusicBrainzBio" target="_blank">Robert Kaye</a>,  <a href="http://www.lifewithalacrity.com/" target="_blank">Christopher Allen</a>, <a href="http://en.wikipedia.org/wiki/Brewster_Kahle" target="_blank">Brewster Kahle</a>, <a href="http://www.newmediamusings.com/" target="_blank">JD Lasica</a>, and indeed, <a href="http://www.corante.com/amateur/articles/20030211-3564.html" target="_blank">Marc Canter</a>, among others.<br /><br /><br /><b>4.	Microcontent Publishing</b><br /><br />Unstructured content is cheap to create, but hard to search through. Structured content is expensive to create, but easy to search. <a href="http://developers.technorati.com/wiki/MicroFormats" target="_blank">Microformats</a> resolve the dilemma with simple structures that are cheap to use and easy to search.<br /><br />The first kind of widely adopted microcontent is blogging. Every post is an encapsulated idea, addressable via a URL called a permalink. You can syndicate or subscribe to this microcontent using RSS or an RSS equivalent, and news or blog aggregators can then display these feeds in a convenient readable fashion. But a blog post is just a block of unstructured textânot a bad thing, but just a first step for microcontent. When it comes to<i>structured</i>Â data, such as personal identity profiles, product reviews, or calendar-type event data, RSS was not designed to maintain the integrity of the structures. <br /><br />Right now, blogging doesn&#39;t have the underlying structure necessary for full-fledged microcontent publishing. But that will change. Think of local information services (such as movie listings, event guides, or restaurant reviews) that any college kid can access and use in her weekend programming project to create new services and tools.<br /><br />Today&#39;s blogging tools will evolve into microcontent publishing systems, and will help spread the notion of structured data across the blogosphere. New ways to store, represent and produce microcontent will create new standards, such as <a href="http://structuredblogging.org/" target="_blank">Structured Blogging</a> and <a href="http://microformats.org/" target="_blank">Microformats</a>. Microformats differ from RSS feeds in that you can&#39;t subscribe to them. Instead, Microformats are embedded into webpages and discovered by search engines like Google or Technorati. Microformats are creating common definitions for &quot;What is a review or event? What are the specific fields in the data structure?&quot; They can also specify what we can do with all this information.<a href="http://www.opml.org/spec" target="_blank">OPML (Outline Processor Markup Language)</a> is a hierarchical file format for storing microcontent and structured data. It was developed by <a href="http://en.wikipedia.org/wiki/Dave_Winer" target="_blank">Dave Winer</a> of RSS and podcast fame.<br /><br />Events are one popular type of microcontent. <a href="http://www.openevents.com" target="_blank">OpenEvents</a> is already working to create shared databases of standardized events, which would get used by a new generation of event portalsâsuch as <a href="http://eventful.com/gotevents/" target="_blank">Eventful/EVDB</a>, <a href="http://upcoming.org/" target="_blank">Upcoming.org</a>, and <a href="http://www.whizspark.com/" target="_blank">WhizSpark</a>. The idea of OpenEvents is that event-oriented systems and services can work together to establish shared events databases (and associated APIs) that any developer could then use to create and offer their own new service or application. <a href="http://marc.blogs.it/archives/2005/04/rvw_redux_openr.html" target="_blank">OpenReviews</a> is still in the conceptual stage, but it would make it possible to provide open alternatives to closed systems like Epinions, and establish a shared database of local and global reviews. Its shared open servers would be filled with all sorts of reviews for anyone to access. <br /><br />Why is this important? Because I predict that in the future, 10 times more people will be writing reviews than maintaining their own blog. The list of possible microcontent standards goes on: OpenJobpostings, OpenRecipes, and even OpenLists. Microsoft <a href="http://www.reallysimplesyndication.com/2005/06/22" target="_blank">recently revealed</a> that it has been working on an important new kind of microcontent: Listsâso OpenLists will attempt to establish standards for the <i>kind</i>Â of lists we all use, such as lists of Links, lists of To Do Items, lists of People, Wish Lists, etc.<br /><br /><b>Movers and Shakers:</b><br /><a href="http://tantek.com/log/2005/09.html" target="_blank">Tantek Ãelik</a> and <a href="http://en.wikipedia.org/wiki/Kevin_Marks" target="_blank">Kevin Marks</a> of <a href="http://developers.technorati.com/wiki/MicroFormats" target="_blank">Technorati</a>, <a href="http://dannyayers.com/" target="_blank">Danny Ayers</a>, <a href="http://www.meyerweb.com/" target="_blank">Eric Meyer</a>, <a href="http://photomatt.net/" target="_blank">Matt Mullenweg</a>, <a href="http://zlab.commerce.net/" target="_blank">Rohit Khare</a>, <a href="http://ifindkarma.typepad.com/relax/" target="_blank">Adam Rifkin</a>, <a href="http://www.sivas.com/aleene/" target="_blank">Arnaud Leene</a>, <a href="http://radio.weblogs.com/0110772/" target="_blank">Seb Paquet</a>, <a href="http://hublog.hubmed.org/" target="_blank">Alf Eaton</a>, <a href="http://www.myelin.co.nz/post/" target="_blank">Phil Pearson</a>, <a href="http://www.joereger.com/" target="_blank">Joe Reger</a>, <a href="http://bobwyman.pubsub.com/" target="_blank">Bob Wyman</a> among others.<br /><br /><br /><b>5.	Open Social Networks</b><br /><br />I&#39;ll never forget the first time I met <a href="http://www.jabrams.com/" target="_blank">Jonathan Abrams</a>, the founder of Friendster. He was arrogant and brash and he claimed he &quot;<i>owned</i>&quot;Â  all his users, and that he was going to monetize them and make a fortune off them. This attitude robbed Friendster of its momentum, letting MySpace, Facebook, and other social networks take Friendster&#39;s place.<br /><br />Jonathan&#39;s notion of social networks as a way to control users is typical of the Web 1.0 business model and its attitude towards users in general. Social networks have become one of the battlegrounds between old and new ways of thinking. Open standards for Social Networking will define those sides very clearly. Since meeting Jonathan, I have been working towards finding and establishing open standards for social networks. Instead of closed, centralized social networks with 10 million people in them, the goal is making it possible to have 10 million social networks that each have 10 people in them.<br /><br />FOAF (which stands for Friend Of A Friend, and describes people and relationships in a way that computers can parse) is a schema to represent not only your personal profile&#39;s meta-data, but your social network as well. Thousands of researchers use the <a href="http://www.foaf-project.org/" target="_blank">FOAF schema</a> in their &quot;Semantic Web&quot; projects to connect people in all sorts of new ways. <a href="http://gmpg.org/xfn/" target="_blank">XFN</a> is a microformat standard for representing your social network, while <a href="http://www.imc.org/pdi/" target="_blank">vCard</a> (long familiar to users of contact manager programs like Outlook) is a microformat that contains your profile information. Microformats are baked into any xHTML webpage, which means that<i>any</i>Â blog, social network page, or any webpage in general can &quot;contain&quot; your social network in itÂand be used by<i>any</i>Â compatible tool, service or application. <br /><br />PeopleAggregator is an earlier project now being integrated into <a href="http://drupal.org/" target="_blank">open content management framework Drupal</a>. The <a href="http://www.broadbandmechanics.com/PeopleAggregator/" target="_blank">PeopleAggregator APIs</a> will make it possible to establish relationships, send messages, create or join groups, and post between different social networks. (Sneak preview: this technology will be available in the upcoming GoingOn Network.) <br /><br />All of these open social networking standards mean that inter-connected social networks will form a mesh that will parallel the blogosphere. This vibrant, distributed, decentralized world will be driven by open standards: personalized online experiences are what the new open web will be all aboutÂand what could be more personalized than people&#39;s networks?<br /><br /><b>Movers and Shakers:</b><br /><a href="http://esigler.2nw.net/" target="_blank">Eric Sigler</a>, <a href="http://lucifer.intercosmos.net/index.php?view=about" target="_blank">Joel De Gan</a>, <a href="http://crschmidt.net/" target="_blank">Chris Schmidt</a>, <a href="http://voidstar.com/" target="_blank">Julian Bond</a>, <a href="http://people.tribe.net/paul?_click_path=Application%5Btribe%5D.Person%5Bf2232c95-e123-43a3-b48d-24a5f11f09dc%5D&r=10535" target="_blank">Paul Martino</a>, <a href="http://napsterization.org/stories/archives/000513.html" target="_blank">Mary Hodder</a>, <a href="http://public.2idi.com/=Drummond.Reed" target="_blank">Drummond Reed</a>, <a href="http://danbri.org/" target="_blank">Dan Brickley</a>, <a href="http://360.yahoo.com/profile-9lciejI3aafX1stHPoIRNmkmv4EowQ--" target="_blank">Randy Farmer</a>, and <a href="http://www.kaliyasblogs.net/Iwoman/" target="_blank">Kaliya Hamlin</a>, to name a few.<br /><br /><br /><b>6.	Tags</b><br /><br />Nowadays, no self-respecting tool or service can ship without <a href="http://www.salon.com/tech/feature/2005/02/08/tagging/index_np.html" target="_blank">tags</a>. Tags are keywords or phrases attached to photos, blog posts, URLs, or even video clips. These user- and creator-generated tags are an open alternative to what used to be the domain of librarians and information scientists: categorizing information and content using taxonomies. Tags are instead creating <a href="http://www.wired.com/wired/archive/13.04/view.html?pg=4" target="_blank">&quot;folksonomies.&quot;</a><br /><br />The recently proposed OpenTags concept would be an open, community-owned version of the popular <a href="http://www.technorati.com/tag/" target="_blank">Technorati Tags service</a>. It would aggregate the usage of tags across a wide range of services, sites, and content tools. In addition to Technorati&#39;s current tag features, OpenTags would let groups of people share their tags in &quot;<a href="http://www.zeldman.com/daily/0405d.shtml/" target="_blank">TagClouds</a>.&quot; Open tagging is likely to include some of the open identity features discussed above, to create a tag system that is resilient to spam, and yet trustable across sites all over the web.<br /><br />OpenTags owes a debt to earlier versions of shared tagging systems, which include <a href="http://www.topicexchange.com/" target="_blank">Topic Exchange</a> and something called the <a href="http://www.evectors.com/itkcollector/" target="_blank">k-collector</a>Âa knowledge management tag aggregatorÂfrom Italian company eVectors. <br /><br /><b>Movers &amp; Shakers:</b><br /><a href="http://www.myelin.co.nz/notes/" target="_blank">Phil Pearson</a>, <a href="http://matt.blogs.it/" target="_blank">Matt Mower </a>, <a href="http://paolo.evectors.it/" target="_blank">Paolo Valdemarin</a>, and <a href="http://marc.blogs.it/archives/2005/03/opentopics.html" target="_blank">Mary Hodder</a> and <a href="http://www.equalsdrummond.name/index.php?p=39" target="_blank"> Drummond Reed</a> again, among others.<br /><br /><br /><b>7. Pinging</b><br /><br />Websites used to be mostly static. Search engines that <a href="http://en.wikipedia.org/wiki/Web_crawler" target="_blank">crawled</a> (or &quot;spidered&quot;) them every so often did a good enough job to show reasonably current versions of your cousin&#39;s homepage or even <i>Time</i>Â magazine&#39;s weekly headlines. But when blogging took off, it became hard for search engines to keep up. (Google has only <a href="http://searchenginewatch.com/searchday/article.php/3548411" target="_blank">just managed</a> to offer <a href="http://www.google.com/help/about_blogsearch.html" target="_blank">blog-search functionality</a>, despite <a href="http://www.alwayson-network.com/comments.php?id=325_0_2_0_C" target="_blank">buying Blogger</a> back in early 2003.)<br /><br />To know what was new in the blogosphere, users couldn&#39;t depend on services that spidered webpages once in a while. The solution: a way for blogs themselves to automatically notify blog-tracking sites that they&#39;d been updated. <a href="http://weblogs.com/" target="_blank">Weblogs.com</a> was the first blog &quot;ping service&quot;: it displayed the name of a blog whenever that blog was updated. Pinging sites helped the blogosphere grow, and <a href="http://blo.gs/" target="_blank">more tools</a>, services, and portals started using pinging in new and different ways. Dozens of pinging services and sitesÂmost of which can&#39;t talk to each otherÂsprang up. <br /><br />Matt Mullenweg (the creator of open source blogging software WordPress) decided that a one-stop service for pinging was needed. He created <a href="http://pingomatic.com/" target="_blank">Ping-o-Matic</a>Âwhich aggregates ping services and simplifies the pinging process for bloggers and tool developers. With Ping-o-Matic, any developer can alert all of the industry&#39;s blogging tools and tracking sites at once. This new kind of open standard, with shared infrastructure, is a critical to the scalability of Web 2.0 services.<br /><br />As <a href="http://pingomatic.com/about/" target="_blank">Matt said</a>:<br /><blockquote>There are a number of services designed specifically for tracking and connecting blogs. However it would be expensive for all the services to crawl all the blogs in the world all the time. By sending a small ping to each service you let them know you&#39;ve updated so they can come check you out. They get the freshest data possible, you don&#39;t get a thousand robots spidering your site all the time. Everybody wins.</blockquote><br /><b>Movers and Shakers:</b><br /><a href="http://photomatt.net/about/" target="_blank">Matt Mullenweg</a>, <a href="http://trainedmonkey.com/entry/2251" target="_blank">Jim Winstead</a>, <a href="http://newhome.weblogs.com/faq" target="_blank">Dave Winer</a><br /><br /><br /><b>8. Routing</b><br /><br />Bloggers used to have to manually enter the links and content snippets of blog posts or news items they wanted to blog. Today, some RSS aggregators can send a specified post directly into an associated blogging tool: as bloggers browse through the feeds they subscribe to, they can easily specify and send any post they wish to &quot;<a href="http://www.microsoftmonitor.com/archives/010209.html" target="_blank">reblog</a>&quot; from their news aggregator or feed reader into their blogging tool. (This is usually referred to as &quot;<a href="http://help.blogger.com/bin/answer.py?answer=152&topic=17" target="_blank">BlogThis</a>.&quot;) As structured blogging comes into its own (see the section on Microcontent Publishing), it will be increasingly important to maintain the structural integrity of these pieces of microcontent when reblogging them. <br /><br />Promising standard <a href="http://redirectthis.com/" target="_blank">RedirectThis</a> will combine a &quot;BlogThis&quot;-like capability while maintaining the integrity of the microcontent. RedirectThis will let bloggers and content developers attach a simple &quot;PostThis&quot; button to their posts. Clicking on that button will send that post to the reader/blogger&#39;s favorite <a href="http://ecto.kung-foo.tv/archives/000990.php" target="_blank">blogging tool</a>. This favorite tool is specified at the RedirectThis web service, where users register their blogging tool of choice. RedirectThis also helps maintain the integrity and structure of microcontentÂthen it&#39;s just up to the user to prefer a blogging tool that also attains that lofty goal of microcontent integrity. <br /><br />OutputThis is another nascent web services standard, to let bloggers specify what &quot;destinations&quot; they&#39;d like to have as options in their blogging tool. As new destinations are added to the service, more checkboxes would get added to their blogging toolÂallowing them to route their published microcontent to additional destinations.<br /><br /><b>Movers and Shakers:</b><br /><a href="http://reblog.org/" target="_blank">Michael Migurski</a>, <a href="http://www.gonze.com/about" target="_blank">Lucas Gonze</a><br /><br /><br /><b>9. Open Communications</b><br /><br />Likely, you&#39;ve experienced the joys of finding friends on AIM or Yahoo Messenger, or the convenience of Skyping with someone overseas. Not that you&#39;re about to throw away your mobile phone or BlackBerry, but for many, also having access to Instant Messaging (IM) and Voice over IP (VoIP) is crucial. <br /><br />IM and VoIP are mainstream technologies that already enjoy the benefits of open standards. Entire industries are bornÂright this secondÂbased around these open standards. <a href="http://www.jabber.org/" target="_blank">Jabber</a> has been an open IM technology for yearsÂin fact, <a href="http://www.xmpp.org/history.html" target="_blank">as XMPP</a>, it was officially dubbed a standard by <a href="http://www.ietf.org/overview.html" target="_blank">the IETF</a>. Although becoming an <a href="http://en.wikipedia.org/wiki/IETF" target="_blank">official IETF standard</a> is usually the kiss of death, Jabber looks like it&#39;ll be around for a while, as entire generations of collaborative, work-group applications and services have been built on top of its messaging protocol. For VoIP, <a href="http://skype.com/helloagain.html" target="_blank">Skype</a> is clearly the leading standard todayÂthough one could <a href="http://socialsoftware.weblogsinc.com/entry/1234000923058521/" target="_blank">argue just how &quot;open&quot; it is</a> (and defenders of the IETF&#39;s <a href="http://www.cs.columbia.edu/sip/" target="_blank">SIP standard</a> often do). But it is free and user-friendly, so there won&#39;t be much argument from <i>users</i>Â  about it being insufficiently open. Yet there may be a cloud on Skype&#39;s horizon: web behemoth Google recently released a beta of <a href="http://www.google.com/talk/developer.html" target="_blank">Google Talk, an IM client committed to open standards</a>. It currently <a href="http://radar.oreilly.com/archives/2005/08/google_talk_rel.html" target="_blank">supports XMPP, and will support SIP</a> for VoIP calls.<br /><br /><b>Movers and Shakers:</b><br /><a href="http://www.jabber.org/people/jer.shtml" target="_blank">Jeremie Miller</a>, <a href="http://www.cs.columbia.edu/~hgs/" target="_blank">Henning Schulzrinne</a>, <a href="http://www.von.com/schedule_eos11114704148.html" target="_blank">Jon Peterson</a>, <a href="http://www.pulver.com/jeff/" target="_blank">Jeff Pulver</a><br /><br /><br /><b>10. Device Management and Control</b><br /><br />To access online content, we&#39;re using more and more devices. BlackBerrys, iPods, Treos, you name it. As the web evolves, more and more different devices will have to communicate with each other to give us the content we want when and where we want it. No-one wants to be dependent on one vendor anymoreÂlike, <a href="http://www.alwayson-network.com/comments.php?id=P9409_0_6_0_C" target="_blank">say, Sony</a>Âfor their laptop, phone, MP3 player, PDA, and digital camera, so that it all works together. We need fully interoperable devices, and the standards to make that work. And to fully make use of how content is moving online content and innovative web services, those standards need to be open.<br /><br /><a href="http://en.wikipedia.org/wiki/Midi" target="_blank">MIDI (musical instrument digital interface)</a>, one of the very first open standards in music, connected disparate vendors&#39; instruments, post-production equipment, and recording devices. But MIDI is limited, and <a href="http://www.oreillynet.com/pub/wlg/8015" target="_blank">MIDI II has been very slow to arrive</a>. Now a new standard for controlling musical devices has emerged: <a href="http://www.cnmat.berkeley.edu/OpenSoundControl/" target="_blank">OSC (Open SoundControl)</a>. This protocol is optimized for modern networking technology and inter-connects music, video and controller devices with &quot;other multimedia devices.&quot; OSC is used by a wide range of developers, and is being taken up in the mainstream MIDI marketplace.<br /><br />Another open-standards-based device management technology is <a href="http://www.zigbee.org" target="_blank">ZigBee</a>, for building wireless intelligence and network monitoring into all kinds of devices. ZigBee is supported by many networking, consumer electronics, and mobile device companies.<br /><br /><br />Â  Â  Â  Â· Â· Â· Â· Â· Â· Â  Â  <br /><br /><b>The Change to Openness</b><br /><br />The rise of open source software and its &quot;<a href="http://www.oreillynet.com/pub/a/oreilly/tim/articles/architecture_of_participation.html" target="_blank">architecture of participation</a>&quot; are completely shaking up the old proprietary-web-services-and-standards approach. Sun MicrosystemsÂwhose proprietary Java standard helped define the Web 1.0Âis opening its Solaris OS and has even announced the apparent paradox of an <a href="http://blogs.zdnet.com/open-source/?p=418" target="_blank">open-source Digital Rights Management</a> system.<br /><br />Today&#39;s incumbents will have to adapt to the new openness of the Web 2.0. If they stick to their <a href="http://www.gartner.com/DisplayDocument?doc_cd=131038" target="_blank">proprietary standards</a>, code, and content, they&#39;ll become the new walled gardensÂplaces users visit briefly to retrieve data and content from enclosed data silos, but not where users &quot;live.&quot; The incumbents&#39; revenue models will have to change. Instead of &quot;owning&quot; their users, users will know they own themselves, and will expect a return on their valuable identity and attention. Instead of being locked into incompatible media formats, users will expect easy access to digital content across many platforms. <br /><br />Yesterday&#39;s web giants and tomorrow&#39;s users will need to find a mutually beneficial new balanceÂbetween open and proprietary, developer and user, hierarchical and horizontal, owned and shared, and compatible and closed. <br /><br /><br /><i>Marc Canter is an active evangelist and developer of open standards. Early in his career, Marc founded MacroMind, which became Macromedia. These days, he is CEO of Broadband Mechanics, a founding member of the Identity Gang and of ourmedia.org. Broadband Mechanics is currently developing the <a href="http://www.alwayson-network.com/comments.php?id=11262_0_1_0_C" target="_blank">GoingOn Network</a> (with the AlwaysOn Network), as well as an open platform for social networking called the PeopleAggregator.</i><br /><br />A version of the above post appears in the Fall 2005 issue of AlwaysOn&#39;s quarterly print blogozine, and ran as <a href="http://www.alwayson-network.com/comments.php?id=12063_0_1_0_C" target="_blank">a four-part series</a> on the AlwaysOn Network website.</td></tr></table><br /><p>(Via <a href="http://marc.blogs.it/">Marc&#39;s Voice</a>.)</p></blockquote>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-09-16#868">
  <rss:title>Microsoft Gadgets, Start.com and Innovation</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-09-16T17:54:52Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Microsoft Gadgets, Start.com and Innovation: &quot; A lot of the comments in the initial post on the Microsoft Gadgets blog are complaints that the Microsoft is copying ideas from Apple&#39;s dashboard. First of all, people should give credit where it is due and acknowledge that Konfabulator is the real pioneer when it comes to desktop widgets. More importantly, the core ideas in Microsoft Gadgets were pioneered by Microsoft not Apple or Konfabulator. From the post A Brief History of Windows Sidebar by Sean Alexander Microsoft &#39;Sideshow*&#39; Research Project (2000-2001)While work started prior, in September 2001, a team of Microsoft researchers published a paper entitled, &#39;Sideshow: Providing peripheral awareness of important information&#39; including findings of their project. ...The research paper provides screenshots that bear a striking resemblance to the Windows Sidebar. The paper is a good read for anyone thinking about Gadget development. For folks who have visited Microsoft campuses, you may recall the posters in elevator hallways and Sidebar running on many employees desktops. Technically one of the first teams to implement this concept *Internal code-name, not directly related to the official, Ã¢ÂÂWindows SideShowÃ¢ÂÂ¢Ã¢ÂÂ auxiliary display feature in Windows Vista.&gt;Microsoft Ã¢ÂÂLonghornÃ¢ÂÂ Alpha Release (2003) In 2003, Microsoft unveiled a new feature called, &#39;Sidebar&#39; at the Microsoft Professional DeveloperÃ¢ÂÂs Conference. This feature took the best concepts from Microsoft Research and applied them to a new platform code-named, &#39;Avalon&#39;, now formally known as Windows Presentation Foundation... Microsoft Windows Vista PDC Release (2005)While removed from public eye during the Longhorn plan change in 2004, a small team was formed to continue to incubate Windows Sidebar as a concept, dating back to its roots in 2000/2001 as a research exercise. Now Windows Sidebar will be a feature of Windows Vista. Feedback from customers and hardware industry dynamics are being taken into account, particularly adding support for DHTML-based Gadgets to support a broader range of developer and designer, enhanced security infrastructure, and better support for Widescreen (16:10, 16:9) displays. Additionally a new feature in Windows Sidebar is support for hosting of Web Gadgets which can be hosted on sites such as Start.com or run locally. Gadgets that run on the Windows desktop will also be available for Windows XP customers Ã¢ÂÂ more details to be shared here in the future.So the desktop version of &#39;Microsoft Gadgets&#39; is the shipping version of Microsoft Research&#39;s &#39;Sideshow&#39; project. Since the research paper was published a number of parties have shipped products inspired by that research including MSN Dashboard, Google Desktop and Desktop Sidebar but this doesn&#39;t change the fact that the Microsoft is the pioneer in this space. From the post Gadgets and Start.com by Sanaz Ahari Start.com was initially released on February 2005, on start.com/1 Ã¢ÂÂ since then weÃ¢ÂÂve been innovating regularly (start.com/2, start.com/3, start.com and start.com/pdc) working towards accomplishing our goals: To bring the webÃ¢ÂÂs content to users through: Rich DHTML components (Gadgets) RSS and behaviors associated with RSS High customizability and personalization To enable developers to extend their start experience by building their own Gadgets Yesterday marked a humble yet significant milestone for us Ã¢ÂÂ we opened our &#39;Atlas&#39; framework enabling developers to extend their start.com experience. You can read more it here: http://start.com/developer. The key differentiators about our Gadgets are: Most web applications were designed as closed systems rather than as a web platform. For example, most customizable &#39;aggregator&#39; web-sites consume feeds and provide a fair amount of layout customization. However, the systems were not extensible by developers. With start.com, the experience is now an integrated and extensible application platform. We will be enriching the gadgets experience even further, enabling these gadgets to seamlessly work on Windows SidebarThe Start.com stuff is really cool. Currently with traditional portal sites like MyMSN or MyYahoo, I can customize my data sources by subscribing to RSS feeds but not how they look. Instead all my RSS feeds always look like a list of headlines. These portal sites usually use different widgets for display richer data like stock quotes or weather reports but there is no way for me to subscribe to a stock quote or weather report feed and have it look the same as the one provided by the site. Start.com fundamentally changes this model by turning it on its head. I can create a custom RSS feed and specify how it should render in Start.com using JavaScript which basically makes it a Start.com gadget, no different from the default ones provided by the site. From my perspective, we&#39;re shipping really innovative stuff but because of branding that has attempted to cash in on the &#39;widgets&#39; hype, we end up looking like followers and copycats. Marketing sucks. &quot; (Via Dare Obasanjo aka Carnage4Life.) Posted for historic annotation purposes (re. Widgets as Microsoft didn&#39;t copy Apple here at all; Apple just packaged this better at the expense of Konfabulator as already noted above). And yes, Marketing sucks big time!!</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<blockquote><p><a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=88270766-b9e1-407b-937f-ab41edce97de">Microsoft Gadgets, Start.com and Innovation</a>: &quot;</p><p>
   A lot of <a href="http://microsoftgadgets.com/blogs/gadgetnews/archive/2005/09/13/3.aspx#comments">the
   comments in the initial post on the Microsoft Gadgets blog</a> are complaints
   that the Microsoft is copying ideas from <a href="http://www.apple.com/macosx/features/dashboard/">Apple&#39;s
   dashboard</a>. First of all, people should give credit where it is due and acknowledge
   that <a href="http://www.konfabulator.com/">Konfabulator</a> is the real pioneer
   when it comes to desktop widgets. More importantly, the core ideas in Microsoft Gadgets
   were pioneered by Microsoft not Apple or Konfabulator. 
</p><p>
   From the post <a href="http://microsoftgadgets.com/blogs/gadgetnews/archive/2005/09/15/181.aspx">A
   Brief History of Windows Sidebar</a> by Sean Alexander
</p><blockquote dir="ltr" style="MARGIN-RIGHT: 0px"><p class="MsoNormal"><b><span><?XML:NAMESPACE PREFIX = O ?>Microsoft &#39;Sideshow*&#39; Research Project (2000-2001)</span></b></p><p xmlns="o"></p><p class="MsoNormal"><span>While work started prior, in September 2001, a team of Microsoft researchers <a href="http://research.microsoft.com/research/pubs/view.aspx?tr_id=488">published
   a paper</a> entitled, &#39;Sideshow: Providing peripheral awareness of important information&#39;
   including findings of their project.  </span><br />
   ...<br /><span>The research paper provides screenshots that bear a striking resemblance to
   the Windows Sidebar.  The paper is a good read for anyone thinking about Gadget
   development.  For folks who have visited Microsoft campuses, you may recall the
   posters in elevator hallways and Sidebar running on many employees desktops. 
   Technically one of the first teams to implement this concept </span></p><span><p class="MsoNormal"><i><span>*Internal code-name, not directly related to the official, Ã¢ÂÂWindows SideShowÃ¢ÂÂ¢Ã¢ÂÂ
   auxiliary display feature in Windows Vista.</span></i>&gt;</p><p class="MsoNormal"><b><span>Microsoft Ã¢ÂÂLonghornÃ¢ÂÂ Alpha Release (2003) 
   </span></b></p><p xmlns="o"></p></span><p class="MsoNormal"><span>In 2003, Microsoft unveiled a new feature called, &#39;Sidebar&#39; at the Microsoft
   Professional DeveloperÃ¢ÂÂs Conference.  This feature took the best concepts from
   Microsoft Research and applied them to a new platform code-named, &#39;Avalon&#39;, now formally
   known as Windows Presentation Foundation... 
   </span></p><p xmlns="o"></p><p class="MsoNormal"><span></span></p><p xmlns="o"> </p><b><span>Microsoft Windows Vista PDC Release (2005)<p xmlns="o"></p></span></b><p class="MsoNormal"><span>While removed from public eye during the Longhorn plan change in 2004, a small
   team was formed to continue to incubate Windows Sidebar as a concept, dating back
   to its roots in 2000/2001 as a research exercise. Now Windows Sidebar will be a feature
   of Windows Vista.  Feedback from customers and hardware industry dynamics are
   being taken into account, particularly adding support for DHTML-based Gadgets to support
   a broader range of developer and designer, enhanced security infrastructure, and better
   support for Widescreen (16:10, 16:9) displays.  Additionally a new feature in
   Windows Sidebar is support for hosting of Web Gadgets which can be hosted on sites
   such as Start.com or run locally.  Gadgets that run on the Windows desktop will
   also be available for Windows XP customers Ã¢ÂÂ more details to be shared here in the
   future.</span></p></blockquote><p class="MsoNormal" dir="ltr"><span>So the desktop version of &#39;Microsoft Gadgets&#39; is the shipping version of Microsoft
   Research&#39;s &#39;Sideshow&#39; project. Since the research paper was published a number
   of parties have shipped products inspired by that research including <a href="http://www.activewin.com/reviews/software/apps/msn/msn8/interface.shtml">MSN
   Dashboard</a>, <a href="http://desktop.google.com/features.html#sidebar">Google Desktop</a> and <a href="http://www.desktopsidebar.com/">Desktop
   Sidebar</a> but this doesn&#39;t change the fact that the Microsoft is the pioneer in
   this space. </span></p><p class="MsoNormal" dir="ltr"><span>From the post <a href="http://microsoftgadgets.com/blogs/gadgetnews/archive/2005/09/15/177.aspx">Gadgets
   and Start.com</a> by Sanaz Ahari </span></p><blockquote dir="ltr" style="MARGIN-RIGHT: 0px"><span><p><a href="http://start.com/">Start.com </a>was initially released on February 2005,
   on <a href="http://start.com/1">start.com/1</a> Ã¢ÂÂ since then weÃ¢ÂÂve been innovating
   regularly (<a href="http://start.com/2">start.com/2</a>, <a href="http://start.com/3">start.com/3</a>, <a href="http://start.com/">start.com </a>and <a href="http://start.com/pdc">start.com/pdc</a>)
   working towards accomplishing our goals:
</p><ul><li>
      To bring the webÃ¢ÂÂs content to users through: 
      <ul><li>
            Rich DHTML components (Gadgets) 
         </li><li>
            RSS and behaviors associated with RSS 
         </li><li>
            High customizability and personalization</li></ul></li><li>
      To enable developers to extend their start experience by building their own Gadgets</li></ul><p>
   Yesterday marked a humble yet significant milestone for us Ã¢ÂÂ we opened our &#39;Atlas&#39;
   framework enabling developers to extend their start.com experience. You can read more
   it here: <a href="http://start.com/developer">http://start.com/developer</a>. The
   key differentiators about our Gadgets are: 
</p><ul><li>
      Most web applications were designed as closed systems rather than as a web platform.
      For example, most customizable &#39;aggregator&#39; web-sites consume feeds and provide a
      fair amount of layout customization. However, the systems were not extensible by developers.
      With start.com, the experience is now an integrated and extensible application platform. 
   </li><li>
      We will be enriching the gadgets experience even further, enabling these gadgets
      to seamlessly work on Windows Sidebar</li></ul></span></blockquote><p class="MsoNormal" dir="ltr"><span>The Start.com stuff is really cool. Currently with traditional portal sites
   like <a href="http://my.msn.com/">MyMSN</a> or <a href="http://my.yahoo.com/">MyYahoo</a>,
   I can customize my data sources by subscribing to RSS feeds but not how they look.
   Instead all my RSS feeds always look like a list of headlines. These portal sites
   usually use different widgets for display richer data like stock quotes or weather
   reports but there is no way for me to subscribe to a stock quote or weather report
   feed and have it look the same as the one provided by the site. <a href="http://www.start.com/developer">Start.com</a> fundamentally
   changes this model by turning it on its head. I can create a custom RSS feed
   and specify how it should render in <a href="http://www.start.com/">Start.com</a> using
   JavaScript which basically makes it a <a href="http://www.start.com/">Start.com</a> gadget,
   no different from the default ones provided by the site. </span></p><p class="MsoNormal" dir="ltr"><span>From my perspective, we&#39;re shipping really innovative stuff but because of branding
   that has attempted to cash in on the &#39;widgets&#39; hype, we end up looking like followers
   and copycats. </span></p><p class="MsoNormal" dir="ltr"><span>Marketing sucks. </span></p>&quot;

<p>(Via <a href="http://www.25hoursaday.com/weblog/">Dare Obasanjo aka Carnage4Life</a>.)</p></blockquote>

Posted for historic annotation purposes (re. Widgets as Microsoft didn&#39;t copy Apple here at all; Apple just packaged this better at the expense of Konfabulator as already noted above). And yes, Marketing sucks big time!!]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-05-24#850">
  <rss:title>FireFox Semantic Web Extension: Piggy Bank 2.0 Beta</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-05-24T18:37:20Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">I just found this interesting Semantic Web effort via &#39;Danny Ayers&#39; blog. Here is the synopsis from his post: Piggy Bank 2.0 Beta New release of Piggy Bank, the Semantic Web extension for Firefox. It harvests data as you browse (when you click a status bar indicator), which can later be searched and viewed in a facetted browser. The docs have come along some too - Piggy Bank can collect pure information in the following cases: 1. The web page has invisible link(s) to RDF data (encoded in RDF/XML or N3 formats).2. The web page exports an RSS feeds.3. The address of the web page is a file:/ URL pointing to a directory.4. Piggy Bank has a &quot;screen scraper&quot; [XSLT or Javascript] that can re-structure the web page HTML code into RDF data. There&#39;s a tutorial on writing Javascript screenscrapers on the site, nice touch. I have also added an architecture diagram to accelerate comprehension (a picture speaks a thousand words...): The infrastructure for tier-3 is an aspect of Virtuoso&#39;s functionality pool; combining Database &amp; Web Application Server functionality amongst other things, as a single product offering.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
   <div align="left">I just found this interesting Semantic Web effort via &#39;<a href="http://dannyayers.com/">Danny Ayers</a>&#39; blog. Here is the synopsis from his post:</div> <blockquote style="margin-right: 0px;" dir="ltr"> <p><a href="http://dannyayers.com/archives/2005/05/24/piggy-bank-20-beta/">Piggy Bank 2.0 Beta</a> </p> <p>New release of <a href="http://simile.mit.edu/piggy-bank/">Piggy Bank</a>, the Semantic Web extension for Firefox. It harvests data as you browse (when you click a status bar indicator), which can later be searched and viewed in a facetted browser. </p> <p>The docs have come along some too -</p> <blockquote> <p>Piggy Bank can collect pure information in the following cases:</p> <p>1. The web page has invisible link(s) to RDF data (encoded in RDF/XML or N3 formats).<br />2. The web page exports an RSS feeds.<br />3. The address of the web page is a file:/ URL pointing to a directory.<br />4. Piggy Bank has a &quot;screen scraper&quot; <em>[XSLT or Javascript]</em> that can re-structure the web page HTML code into RDF data. </p></blockquote> <p>There&#39;s a <a href="http://simile.mit.edu/piggy-bank/screen-scrapers-howto.html">tutorial</a> on writing Javascript screenscrapers on the site, nice touch.</p></blockquote> <p dir="ltr" align="left">I have also added an architecture diagram to accelerate comprehension (a picture speaks a thousand words...):</p> <p dir="ltr" align="left"><img alt="" src="http://simile.mit.edu/piggy-bank/images/architecture.png" align="bottom" border="0" hspace="0" /></p>  <div align="left">The infrastructure for tier-3 is an aspect of <a href="http://virtuoso.openlinksw.com">Virtuoso&#39;s</a> functionality pool; combining Database &amp; Web Application Server functionality amongst other things, as a single product offering.<br />  </div>    
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-04-29#825">
  <rss:title>Ajax, Hard Facts, Brass Tacks ... and Bad Slacks</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-04-29T20:11:22Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">By Mark Bierbeck: Ajax, Hard Facts, Brass Tacks ... and Bad Slacks A number of people have contacted me recently about Ajax [1] -- a catchy name -- coined to provide an umbrella term for a particular group of technologies used to build web applications. The use of the word comes from Jesse James Garrett in a recent blog [2], and describes a class of internet applications written using JavaScript in a browser. By using JavaScript these apps have full access to the DOM, and as a consequence are able to make all sorts of changes to the page that the user is interacting with, without having to go back to the server.When the application does need to go back to the server -- to deliver some data and get a response -- the idea is to keep the DOM intact so that the user has a smooth experience. This means that all communication with the server needs to take place outside of the normal HTML form mechanism, since this would obviously replace the current page.Ajax addressed this, with what it calls &#39;asynchronous-JavaScript&#39; -- retrieve only the data you need, and then directly manipulate the DOM to get the effect you want. &#39;Asynchronous-JavaScript&#39; accounts for the first few letters of the name, with the remainder being the obligatory &#39;X&#39; for XML (although XML is not really key to this technology, and many of the applications that are often cited as Ajax-apps don&#39;t use XML as the data medium). BuzzingThe response to Ajax has been pretty positive. In fact the only negatives have been either to suggest a change of name or to moan a little that &quot;I&#39;ve been doing this for years, why hasn&#39;t anyone noticed me?&quot; (I won&#39;t put any links to those sort of articles, since they are a little embarassing -- after all, everyone has been doing this for years!)Anyway, despite a couple of sour-pusses, the software community is almost universally excited, and the blog wires have glowed over the last few months with descriptions of Google Maps, GMail, and so on.Just about everyone who has asked me about Ajax has expected me to be disappointed. Surely, they say, this makes the case for XForms weaker? But my answer is the exact opposite -- XForms and standards-based web applications are in every way superior to the techniques described as Ajax, since the whole raison d&#39;ÃÂªtre of XForms and XHTML 2 is to address the very problems that Ajax-like techniques suffer from.That may come across as a little bold...so perhaps I should explain. From Workaround to FeatureWe&#39;ve all been using HTML mark-up for years now, and the language hasn&#39;t changed much in that time. As a consequence, the increasing demand for more complex web-pages has meant that the balance in our documents has shifted increasingly from vanilla mark-up to &#39;the workaround&#39;. Whether it&#39;s providing tooltips, dynamic/repeating data sections, or small portions of our page that change without having to request a new document, we&#39;ve generally had to dive into script. But the shift from mark-up to script has meant that the mark-up language itself has been relegated to a mere carrier for programs.Unfortunately this means that no-one gains -- it&#39;s annoying for the programmer to have to produce ever more convoluted spaghetti JavaScript to meet the demands of their audience, but it&#39;s also annoying for the non-programmer, who probably only wants a tooltip. And its particularly annoying for those who want to use documents on the web for more ambitious applications to find that most of the important stuff in a document is hidden away in script.All is not lost, however, since this collection of &#39;workarounds&#39; provides a rich source of real-life patterns that appear for authors and programmers, time and again. They may be workarounds, but they are much-needed ones.The aim of the new generation of languages like XForms and XHTML 2 is to take these &#39;common patterns&#39; and turn them into mark-up. Just like the HTML elements &lt;a&gt; and &lt;form&gt; pack an enormous amount of functionality into deceptively simple tags, so too can new declarative mark-up capture patterns that have emerged &#39;in the wild&#39;.(Note that this is the opposite of so-called folksonomies, where popular practice that occurs in the wild is left it the wild, and codification is regarded as a dirty word.) The XML HTTP Request ObjectLet&#39;s take the much talked about XML HTTP Request Object (XMLHttpRequest). If you are not familiar with it, it was originally part of Microsoft&#39;s XML parser, and allows you to send and receive data outside of the normal HTML form processing. Since it&#39;s a handy feature to have in a client, other browsers have followed suit and it&#39;s now becoming the &#39;standard&#39; way to communicate with servers without messing up your page. It&#39;s a corner-stone of Ajax. (A good summary with examples is on Jim Ley&#39;s jibbering.com site [3].)But...we need to be clear that we&#39;re using XMLHttpRequest to get round a weakness in HTML forms. The problem we have is that even if you know that a server is about to give you some data, and the server knows it&#39;s about to give you some data, there&#39;s no way to tell your form that -- instead your page will be wiped out and replaced with whatever the server sends back.Of course, constant round-tripping doesn&#39;t make it completely impossible to produce applications, and a lot of books and airline tickets are bought every day without the facility to get &#39;just the data&#39;. But we all know it would reduce network traffic and create a smoother user experience if we could just send a list of books or seats, rather than a whole new page.Over the years applications such as Microsoft&#39;s Outlook Web Access (OWA), have had to step around the HTML form to get just the data they need. But, whilst OWA considerably predates GMail, until the advent of XMLHttpRequest, the techniques used were quite difficult to manage. (Google Suggest is often cited as a good example of an Ajax-app, but interestingly merges old and new techniques; XMLHttpRequest is used to obtain a piece of JavaScript from a server, and this script contains a call to a client-side function, but using server-provided parameters. It&#39;s one of the techniques you might have used in the past with a hidden frame.)So as many have said on their blogs, XMLHttpRequest is not a newly devised technique, but rather a generally accepted replacement for a very old technique. But ultimately that technique is a workaround since the real problem is that HTML forms will always replace the current page. Beyond HTML FormsWhilst XMLHttpRequest gives us a way to get data to and from the server without losing our document, we&#39;ve unfortunately thrown the baby out with the bath-water; whatever the weaknesses of HTML forms, you have to acknowledge that they are pretty simple to use. Here&#39;s an abbreviated version of Google&#39;s search form (note that the mark-up is HTML, not XML):&lt;form action=/search name=f&gt; &lt;input type=hidden name=hl value=en&gt; &lt;input maxLength=256 size=55 name=q value=&quot;&quot;&gt; &lt;input type=submit value=&quot;Google Search&quot; name=btnG&gt;&lt;/form&gt; As you can see, the simple problem with HTML forms is that we don&#39;t say anything about where the data should go when we&#39;ve received it from the server. The assumption in HTML of old is that we are just doing a kind of &#39;super-navigation&#39;, and no matter what we send to the server, it will only ever give us back a new web-page. (To put it a different way, you could say that &lt;a&gt; and &lt;form&gt; are pretty much the same thing.)To see how this problem is resolved, let&#39;s code the same Google search in XForms:&lt;xf:submission id=&quot;sub-search&quot; action=&quot;http://www.google.com/complete/search?hl=en&quot; method=&quot;get&quot; separator=&quot;&amp;&quot; replace=&quot;all&quot;/&gt; &lt;xf:input ref=&quot;q&quot;&gt; &lt;xf:label&gt;Query:&lt;/xf:label&gt;&lt;/xf:input&gt; &lt;xf:submit submission=&quot;sub-search&quot;&gt; &lt;xf:label&gt;Google Search&lt;/xf:label&gt;&lt;/xf:submit&gt; Although it will do exactly the same -- right down to replacing the current page -- it&#39;s a little different to the HTML mark-up. But the changes in structure have given us some major benefits, from accessible labels on our form controls, to the possibility of many different submissions for the same data.But what it has also given us is the possibility of solving our data update problem. The replace attribute is actually optional in XForms, but I showed it in the previous mark-up so that you can compare it to this:&lt;xf:submission id=&quot;sub-search&quot; action=&quot;http://www.google.com/complete/search?hl=en&quot; method=&quot;get&quot; separator=&quot;&amp;&quot; replace=&quot;instance&quot;/&gt; In this example the data returned from the server will just replace the instance that was sent, and our page will remain completely intact. (The replace attribute can take the values all, instance, or none.)I won&#39;t show the full equivalent using XMLHttpRequest since it&#39;s pretty large, but I&#39;ll give a flavour of it. (Jim Ley&#39;s page -- referenced earlier -- shows how to search Google with XMLHttpRequest.) The Script VersionFirst we need to create an XMLHttpRequest object, but we need to do it in such a way that it will work on both Mozilla and IE:var req; function loadXMLDoc(url) { // native XMLHttpRequest object if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = readyStateChange; req.open(&quot;GET&quot;, url, true); req.send(null); // IE/Windows ActiveX version } else if (window.ActiveXObject) { req = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;); if (req) { req.onreadystatechange = readyStateChange; req.open(&quot;GET&quot;, url, true); req.send(); } }} When a document is loaded via this function, the readyStateChange() method is invoked:function readyStateChange() { // &#39;4&#39; means document &quot;loaded&quot; if (req.readyState == 4) { // 200 means &quot;OK&quot; if (req.status == 200) { // do something here } else { // error processing here } }} From a programming point of view, I guess you could say that there isn&#39;t a lot wrong with this, but then from a programming point of view there wasn&#39;t a lot wrong with Z80 or 6502 assembly languages -- I just wouldn&#39;t want to go back to them!But the most important issue is that we have lost the very thing that was responsible for HTML&#39;s success -- the use of simple, clear, declarative mark-up, in which we simply state our intent, without having to write a program to do it for us. After all, the web took off because authors only had to master &lt;a&gt; in order to enter the exciting new world of &#39;hypertext&#39; -- but XMLHttpRequest raises the bar again, and takes us right back into the heart of geek-world. Beyond XMLHttpRequestBut in keeping with the principle that I outlined above -- that XForms and XHTML 2 try to provide mark-up for commonly existing design patterns -- let&#39;s see if there are any other patterns that XMLHttpRequest has thrown up.You will have noticed in the earlier script that we had tests for success and failure:if (req.status == 200) { // do something here} else { // error processing here} XForms provides the same functionality through the use of events -- on success do this, on failure do that. This is far more powerful, since it hides the protocol-specific aspects of this code (&quot;200&quot; may be &#39;success&#39; for HTTP, but it isn&#39;t &#39;success&#39; when saving data to the hard-drive or sending an email).XForms uses declarative mark-up to express those events, which again dramatically reduces coding:&lt;xf:action ev:observer=&quot;sub-search&quot; ev:event=&quot;xforms-submit-error&quot;&gt; &lt;xf:message level=&quot;modal&quot;&gt; Submission failed &lt;/xf:message&gt;&lt;/xf:action&gt; But there&#39;s lots, lots more in the submission part of XForms: it can provide full XML Schema validation before submitting the data; there is built in support for numerous types of serialisation, such as multipart/related; abstract methods are used so the code is independent of protocol. For example, since put means the same thing whether the target URL begins http: or file:, a form with relative paths will run unchanged on a local machine or a web server; it&#39;s extensible -- in formsPlayer 2.0 we have used the submission element to read and write from an ADO database, allowing programmers to convert forms from using the web to using a local database by doing nothing more than changing a single target URL. (Try doing that with XMLHttpRequest!)The submission part of XForms is in fact so powerful that it will eventually form a separate specification, for use in other languages. From Patterns to Mark-upAnd there are plenty more patterns out there that were crying out to be turned into mark-up, and which are now incorporated into XForms and XHTML 2. Do you remember the days when if we wanted a tooltip that contained mark-up -- perhaps an image, or bold text -- we had to use a carefully placed &lt;div&gt;, a CSS display: none;, a mouseover event handler and a timer? Nowadays the programmer with better things to do than work with spaghetti-JavaScript just uses the XForms &lt;hint&gt; element, and for free they get platform independence (and therefore accessibility), as well as the ability to insert any mark-up.And what about the days when we had to write code to open up a text-to-speech engine, and then invoke the various methods on the object to get it to speak its mind? Nowadays who wouldn&#39;t just use a CSS property on their XForms&#39; messages? Bad SlacksAnd do you remember...I&#39;m sorry, this one always makes me laugh...do you remember how we used to write lots of JavaScript to recalculate the shopping-cart when a new item was added? I know it&#39;s hard to believe -- it&#39;s like looking at old photos of us all wearing flares. Anyway, thank God for straight trousers and the XForms dependency-engine. But enough of the good old days, the days of assembly language, C and JavaScript...let&#39;s stick with the new. Do Try This at HomeTo round all of this off, we&#39;ll take a look at Google Suggest, and we&#39;ll use XForms to implement it. I&#39;ll walk through the demo in a separate blog [4] so that this one doesn&#39;t get too cluttered -- and hopefully by disecting this simple but useful application, we can show how declarative mark-up scores over scripting.[1] Will AJAX help Google clean up?, c|net, http://news.com.com/Will+AJAX+help+Google+clean+up/2100-1032_3-5621010.html [2] Ajax: A New Approach to Web Applications, Jesse James Garrett, Adaptive Path blog, http://www.adaptivepath.com/publications/essays/archives/000385.php [3] Using the XML HTTP Request object, http://jibbering.com/2002/4/httprequest.html [4] &quot;Google Suggest&quot; Using XForms, http://internet-apps.blogspot.com/2005/04/google-suggest-using-xforms.html Tags: xforms | xbl | webapps | ajax | javascript [via Internet Applications]</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>By <a href="http://internet-apps.blogspot.com/">Mark Bierbeck</a>:</p>
<p><a href="http://internet-apps.blogspot.com/2005/04/ajax-hard-facts-brass-tacks-and-bad.html">Ajax, Hard Facts, Brass Tacks ... and Bad Slacks</a> </p>
<div xmlns="http://www.w3.org/1999/xhtml">A number of people have contacted me recently about Ajax [<a href="about:blank#20050426-1">1</a>] -- a catchy name -- coined to provide an umbrella term for a particular group of technologies used to build web applications. The use of the word comes from Jesse James Garrett in a recent blog [<a href="about:blank#20050426-2">2</a>], and describes a class of internet applications written using JavaScript in a browser. By using JavaScript these apps have full access to the DOM, and as a consequence are able to make all sorts of changes to the page that the user is interacting with, without having to go back to the server.<br><br>When the application <em>does</em> need to go back to the server -- to deliver some data and get a response -- the idea is to keep the DOM intact so that the user has a smooth experience. This means that all communication with the server needs to take place outside of the normal HTML form mechanism, since this would obviously replace the current page.<br><br>Ajax addressed this, with what it calls 'asynchronous-JavaScript' -- retrieve only the data you need, and then directly manipulate the DOM to get the effect you want. 'Asynchronous-JavaScript' accounts for the first few letters of the name, with the remainder being the obligatory 'X' for XML (although XML is not really key to this technology, and many of the applications that are often cited as Ajax-apps don't use XML as the data medium).<br><br>
<h2>Buzzing</h2>The response to Ajax has been pretty positive. In fact the only negatives have been either to suggest a change of name or to moan a little that "I've been doing this for years, why hasn't anyone noticed me?" (I won't put any links to those sort of articles, since they are a little embarassing -- after all, <em>everyone</em> has been doing this for years!)<br><br>Anyway, despite a couple of sour-pusses, the software community is almost universally excited, and the blog wires have glowed over the last few months with descriptions of Google Maps, GMail, and so on.<br><br>Just about everyone who has asked me about Ajax has expected me to be disappointed. Surely, they say, this makes the case for XForms weaker? But my answer is the exact opposite -- XForms and standards-based web applications are in every way superior to the techniques described as Ajax, since the whole <em>raison d'ÃÂªtre</em> of XForms and XHTML 2 is to address the very problems that Ajax-like techniques suffer from.<br><br>That may come across as a little bold...so perhaps I should explain.<br><br>
<h2>From Workaround to Feature</h2>We've all been using HTML mark-up for years now, and the language hasn't changed much in that time. As a consequence, the increasing demand for more complex web-pages has meant that the balance in our documents has shifted increasingly from vanilla mark-up to 'the workaround'. <br><br>Whether it's providing tooltips, dynamic/repeating data sections, or small portions of our page that change without having to request a new document, we've generally had to dive into script. But the shift from mark-up to script has meant that the mark-up language itself has been relegated to a mere carrier for programs.<br><br>Unfortunately this means that no-one gains -- it's annoying for the programmer to have to produce ever more convoluted spaghetti JavaScript to meet the demands of their audience, but it's also annoying for the non-programmer, who probably only wants a tooltip. And its particularly annoying for those who want to use documents on the web for more ambitious applications to find that most of the important stuff in a document is hidden away in script.<br><br>All is not lost, however, since this collection of 'workarounds' provides a rich source of real-life patterns that appear for authors and programmers, time and again. They may be workarounds, but they are much-needed ones.<br><br>The aim of the new generation of languages like XForms and XHTML 2 is to take these 'common patterns' and turn them into mark-up. Just like the HTML elements <code>&lt;a&gt;</code> and <code>&lt;form&gt;</code> pack an enormous amount of functionality into deceptively simple tags, so too can new declarative mark-up capture patterns that have emerged 'in the wild'.<br><br>(Note that this is the opposite of so-called folksonomies, where popular practice that occurs in the wild is left it the wild, and codification is regarded as a dirty word.)<br><br>
<h2>The XML HTTP Request Object</h2>Let's take the much talked about XML HTTP Request Object (XMLHttpRequest). If you are not familiar with it, it was originally part of Microsoft's XML parser, and allows you to send and receive data outside of the normal HTML form processing. Since it's a handy feature to have in a client, other browsers have followed suit and it's now becoming the 'standard' way to communicate with servers without messing up your page. It's a corner-stone of Ajax. (A good summary with examples is on Jim Ley's jibbering.com site [<a href="about:blank#20050426-3">3</a>].)<br><br>But...we need to be clear that we're using XMLHttpRequest to get round a weakness in HTML forms. The problem we have is that even if you know that a server is about to give you some data, and the <em>server</em> knows it's about to give you some data, there's no way to tell your <em>form</em> that -- instead your page will be wiped out and replaced with whatever the server sends back.<br><br>Of course, constant round-tripping doesn't make it completely impossible to produce applications, and a lot of books and airline tickets are bought every day without the facility to get 'just the data'. But we all know it would reduce network traffic and create a smoother user experience if we could just send a list of books or seats, rather than a whole new page.<br><br>Over the years applications such as Microsoft's <em>Outlook Web Access</em> (OWA), have had to step around the HTML form to get just the data they need. But, whilst OWA considerably predates GMail, until the advent of XMLHttpRequest, the techniques used were quite difficult to manage. (Google Suggest is often cited as a good example of an Ajax-app, but interestingly merges old and new techniques; XMLHttpRequest is used to obtain a piece of JavaScript from a server, and this script contains a call to a client-side function, but using server-provided parameters. It's one of the techniques you might have used in the past with a hidden frame.)<br><br>So as many have said on their blogs, XMLHttpRequest is not a newly devised technique, but rather a generally accepted replacement for a very old technique. But ultimately that technique is a workaround since the <em>real</em> problem is that HTML forms will always replace the current page.<br><br><br>
<h2>Beyond HTML Forms</h2>Whilst XMLHttpRequest gives us a way to get data to and from the server without losing our document, we've unfortunately thrown the baby out with the bath-water; whatever the weaknesses of HTML forms, you have to acknowledge that they are pretty simple to use. Here's an abbreviated version of Google's search form (note that the mark-up is HTML, not XML):<br><code><pre><br>&lt;form action=/search name=f&gt;<br>  &lt;input type=hidden name=hl value=en&gt;<br>  &lt;input maxLength=256 size=55 name=q value=""&gt;<br>  &lt;input type=submit value="Google Search" name=btnG&gt;<br>&lt;/form&gt;<br>
</pre></code><br>As you can see, the simple problem with HTML forms is that we don't say anything about where the data should go when we've received it from the server. The assumption in HTML of old is that we are just doing a kind of 'super-navigation', and no matter what we send to the server, it will only ever give us back a new web-page. (To put it a different way, you could say that <code>&lt;a&gt;</code> and <code>&lt;form&gt;</code> are pretty much the same thing.)<br><br>To see how this problem is resolved, let's code the same Google search in XForms:<br><code><pre><br>&lt;xf:submission id="sub-search"<br> action="http://www.google.com/complete/search?hl=en"<br> method="get" separator="&amp;"<br> replace="all"<br>/&gt;<br>
<br>&lt;xf:input ref="q"&gt;<br>  &lt;xf:label&gt;Query:&lt;/xf:label&gt;<br>&lt;/xf:input&gt;<br>
<br>&lt;xf:submit submission="sub-search"&gt;<br>  &lt;xf:label&gt;Google Search&lt;/xf:label&gt;<br>&lt;/xf:submit&gt;<br>
</pre></code><br>Although it will do exactly the same -- right down to replacing the current page -- it's a little different to the HTML mark-up. But the changes in structure have given us some major benefits, from accessible labels on our form controls, to the possibility of many different submissions for the same data.<br><br>But what it has also given us is the possibility of solving our data update problem. The <code>replace</code> attribute is actually optional in XForms, but I showed it in the previous mark-up so that you can compare it to this:<br><code><pre><br>&lt;xf:submission id="sub-search"<br> action="http://www.google.com/complete/search?hl=en"<br> method="get" separator="&amp;"<br> replace="<span style="COLOR: red">instance</span>"<br>/&gt;<br>
</pre></code><br>In this example the data returned from the server will just replace the instance that was sent, and our page will remain completely intact. (The <code>replace</code> attribute can take the values <code>all</code>, <code>instance</code>, or <code>none</code>.)<br><br>I won't show the full equivalent using XMLHttpRequest since it's pretty large, but I'll give a flavour of it. (Jim Ley's page -- referenced earlier -- shows how to search Google with XMLHttpRequest.)<br><br>
<h3>The Script Version</h3>First we need to create an XMLHttpRequest object, but we need to do it in such a way that it will work on both Mozilla and IE:<br><code><pre><br>var req;<br>
<br>function loadXMLDoc(url) {<br>    // native XMLHttpRequest object<br>    if (window.XMLHttpRequest) {<br>        req = new XMLHttpRequest();<br>        req.onreadystatechange = readyStateChange;<br>        req.open("GET", url, true);<br>        req.send(null);<br>    // IE/Windows ActiveX version<br>    } else if (window.ActiveXObject) {<br>        req = new ActiveXObject("Microsoft.XMLHTTP");<br>        if (req) {<br>            req.onreadystatechange = readyStateChange;<br>            req.open("GET", url, true);<br>            req.send();<br>        }<br>    }<br>}<br>
</pre></code><br>When a document is loaded via this function, the <code>readyStateChange()</code> method is invoked:<br><code><pre><br>function readyStateChange() {<br>    // '4' means document "loaded"<br>    if (req.readyState == 4) {<br>        // 200 means "OK"<br>        if (req.status == 200) {<br>            // do something here<br>        } else {<br>            // error processing here<br>        }<br>    }<br>}<br>
</pre></code><br>From a <em>programming</em> point of view, I guess you could say that there isn't a lot wrong with this, but then from a programming point of view there wasn't a lot wrong with Z80 or 6502 assembly languages -- I just wouldn't want to go back to them!<br><br>But the most important issue is that we have lost the very thing that was responsible for HTML's success -- the use of simple, clear, declarative mark-up, in which we simply state our intent, without having to write a program to do it for us. After all, the web took off because authors only had to master <code>&lt;a&gt;</code> in order to enter the exciting new world of 'hypertext' -- but XMLHttpRequest raises the bar again, and takes us right back into the heart of geek-world.<br><br>
<h2>Beyond XMLHttpRequest</h2>But in keeping with the principle that I outlined above -- that XForms and XHTML 2 try to provide mark-up for commonly existing design patterns -- let's see if there are any other patterns that XMLHttpRequest has thrown up.<br><br>You will have noticed in the earlier script that we had tests for success and failure:<br><code><pre><br>if (req.status == 200) {<br>  // do something here<br>} else {<br>  // error processing here<br>}<br>
</pre></code><br>XForms provides the same functionality through the use of events -- on success do this, on failure do that. This is far more powerful, since it hides the protocol-specific aspects of this code ("200" may be 'success' for HTTP, but it isn't 'success' when saving data to the hard-drive or sending an email).<br><br>XForms uses declarative mark-up to express those events, which again dramatically reduces coding:<br><code><pre><br>&lt;xf:action ev:observer="sub-search" ev:event="xforms-submit-error"&gt;<br>  &lt;xf:message level="modal"&gt;<br>    Submission failed<br>  &lt;/xf:message&gt;<br>&lt;/xf:action&gt;<br>
</pre></code><br>But there's lots, lots more in the <code>submission</code> part of XForms:<br>
<ul><br>
<li>it can provide full XML Schema validation before submitting the data;</li><br>
<li>there is built in support for numerous types of serialisation, such as <code>multipart/related</code>;</li><br>
<li>abstract methods are used so the code is independent of protocol. For example, since <code>put</code> means the same thing whether the target URL begins <code>http:</code> or <code>file:</code>, a form with relative paths will run unchanged on a local machine or a web server;</li><br>
<li>it's extensible -- in formsPlayer 2.0 we have used the <code>submission</code> element to read and write from an ADO database, allowing programmers to convert forms from using the web to using a local database by doing nothing more than changing a single target URL. (Try doing that with XMLHttpRequest!)</li><br></ul><br><br>The <code>submission</code> part of XForms is in fact so powerful that it will eventually form a separate specification, for use in other languages.<br><br>
<h2>From Patterns to Mark-up</h2>And there are plenty more patterns out there that were crying out to be turned into mark-up, and which are now incorporated into XForms and XHTML 2. Do you remember the days when if we wanted a tooltip that contained mark-up -- perhaps an image, or bold text -- we had to use a carefully placed <code>&lt;div&gt;</code>, a CSS <code>display: none;</code>, a <code>mouseover</code> event handler and a timer? Nowadays the programmer with better things to do than work with spaghetti-JavaScript just uses the XForms <code>&lt;hint&gt;</code> element, and for free they get platform independence (and therefore accessibility), as well as the ability to insert any mark-up.<br><br>And what about the days when we had to write code to open up a text-to-speech engine, and then invoke the various methods on the object to get it to speak its mind? Nowadays who wouldn't just use a CSS property on their XForms' <code>message</code>s?<br><br>
<h3>Bad Slacks</h3>And do you remember...I'm sorry, this one always makes me laugh...do you remember how we used to write lots of JavaScript to recalculate the shopping-cart when a new item was added? I know it's hard to believe -- it's like looking at old photos of us all wearing flares. Anyway, thank God for straight trousers and the XForms dependency-engine.<br><br><img border="1" src="http://www.npr.org/programs/morning/features/2004/sep/fashion_week/satfever_nano140.jpg"> <br>But enough of the good old days, the days of assembly language, C and JavaScript...let's stick with the new.<br><br>
<h2>Do Try This at Home</h2><br>To round all of this off, we'll take a look at Google Suggest, and we'll use XForms to implement it. I'll walk through the demo in a separate blog [<a href="about:blank#20050426-4">4</a>] so that this one doesn't get too cluttered -- and hopefully by disecting this simple but useful application, we can show how declarative mark-up scores over scripting.<br><br><br><a name="20050426-1">[1] Will AJAX help Google clean up?, c|net, <a href="http://news.com.com/Will+AJAX+help+Google+clean+up/2100-1032_3-5621010.html">http://news.com.com/Will+AJAX+help+Google+clean+up/2100-1032_3-5621010.html</a> <br><br><a name="20050426-2">[2] Ajax: A New Approach to Web Applications, Jesse James Garrett, Adaptive Path blog, <a href="http://www.adaptivepath.com/publications/essays/archives/000385.php">http://www.adaptivepath.com/publications/essays/archives/000385.php</a> <br><br><a name="20050426-3">[3] Using the XML HTTP Request object, <a href="http://jibbering.com/2002/4/httprequest.html">http://jibbering.com/2002/4/httprequest.html</a> <br><br><a name="20050426-4">[4] "Google Suggest" Using XForms, <a href="http://internet-apps.blogspot.com/2005/04/google-suggest-using-xforms.html">http://internet-apps.blogspot.com/2005/04/google-suggest-using-xforms.html</a> <br><br>Tags: <a href="http://technorati.com/tag/xforms" rel="tag">xforms</a> | <a href="http://technorati.com/tag/xbl" rel="tag">xbl</a> | <a href="http://technorati.com/tag/webapps" rel="tag">webapps</a> | <a href="http://technorati.com/tag/ajax" rel="tag">ajax</a> | <a href="http://technorati.com/tag/javascript" rel="tag">javascript</a> </div>
<div align="right">[via <a href="http://internet-apps.blogspot.com/">Internet Applications</a>]</div>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-01-28#673">
  <rss:title>Google Ups Web 2.0 Ante with Web Services edition of  AdWords</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-01-28T23:36:17Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Google has just unveiled a Web 2.0 initiative in the form of a Web Services interface for its AdWords service. You can now programmatically interact with Google&#39;s keyword based advertising service using SOAP calls (with service signature described using WSDL). An immediate implication is that you can generate Google AdWords based adds using any development environment (Virtuoso&#39;s SQL Stored Procedure Language,  any .NET bound language, Java, C/C++, PHP, Ruby, Perl, Python, TCL etc.) that supports SOAP, WSDL, and I would presume WS-Security. An even more interesting offshoot of this initiative from Google, is the fact that it could bring a degree of clarity to the issue of multi-protocol and multi-purpose servers (what I call Universal Servers e.g. OpenLink Virtuoso). For instance, you could manage AdWords campaigns across product portfolios using Triggers (the SQL database kind) or Notification Services.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Google has just unveiled&nbsp;a <a href="http://www.openlinksw.com/blog/~kidehen/index.vspx?id=373">Web 2.0</a>&nbsp;initiative in the form of&nbsp;a <a href="http://www.google.com/apis/adwords/">Web Services&nbsp;interface for its&nbsp;AdWords service</a>.&nbsp;You can now programmatically interact with Google's keyword based advertising service using <a href="http://answers.com/main/ntquery?dym=0&cid=984588381&method=6">SOAP</a> calls (with service <a href="http://answers.com/main/ntquery?dym=2&cid=396232605&method=6">signature</a> described using <a href="http://answers.com/main/ntquery?s=wsdl">WSDL</a>).</p>
<p>An immediate implication is that you can generate Google AdWords based adds using any development environment (<a href="http://docs.openlinksw.com/virtuoso/sqlprocedures.html">Virtuoso's SQL Stored Procedure Language</a>, &nbsp;any .NET bound language, Java, C/C++, PHP, Ruby, Perl, Python, TCL etc.) that supports SOAP, WSDL, and I would presume <a href="http://answers.com/main/ntquery?s=ws-security">WS-Security</a>.</p>
<p>An even more interesting offshoot of this initiative from Google, is the fact that&nbsp;it&nbsp;could bring a degree of clarity to the issue of multi-protocol and multi-purpose servers (what I call <a href="   http://en.wikipedia.org/wiki/Universal_server">Universal Servers</a> e.g. <a href="http://virtuoso.openlinksw.com">OpenLink Virtuoso</a>). For instance, you could manage AdWords campaigns across product portfolios using Triggers (the SQL database kind) or Notification Services.</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-07-02#579">
  <rss:title>ListGarden 1.0 released</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2004-07-02T22:06:02Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">ListGarden 1.0 released I&#39;ve just posted the 1.0 version of my ListGarden™ RSS Generator Program. The source code has been released under the GNU GPL license, and it is available for Microsoft Windows, Mac OS X, generic Perl, and server-CGI use. A new feature has been added since the beta release: In addition to creating the XML RSS file, it can also produce an HTML file with the same information as the XML. I discuss RSS feeds in general in this weblog post, as well as the issue of private RSS feeds. [via Dan Bricklin&#39;s Log] Here&#39;s how it works:</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><a href="http://danbricklin.com/log/2004_06_29.htm#listgarden1">ListGarden 1.0 released</a> I&#39;ve just posted the 1.0 version of my ListGarden&#8482; RSS Generator Program. The source code has been released under the GNU GPL license, and it is available for Microsoft Windows, Mac OS X, generic Perl, and server-CGI use. A new feature has been added since the beta release: In addition to creating the XML RSS file, it can also produce an HTML file with the same information as the XML. I discuss RSS feeds in general in this weblog post, as well as the issue of private RSS feeds. </p></blockquote>
<div align="right">[via <a href="http://danbricklin.com/log">Dan Bricklin&#39;s Log</a>]</div>
<div align="left">Here&#39;s how it works:</div>
<div align="left"></div>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-05-28#553">
  <rss:title>The Mozilla Project and XUL</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2004-05-28T22:40:08Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">By David Mertz, IBM developerWorks In Part 2 of a serial article on GUIs and XML configuration data, David discusses how XML is used in the configuration of GUI interfaces. He looks at Mozilla&#39;s XML-based User Interface Language (XUL) which allows you to write applications that run without any particular dependency on the choice of underlying operating system. This may seem strange at first, but you&#39;ll soon see that this Mozilla project offers powerful tools for GUI building that allow you to develop for an extensive base of installed users. Mozilla is now much more than a browser: it is a whole component and GUI architecture. Indeed, Mozilla is more cross-platform and more widely installed on user systems than probably any other GUI library you are likely to consider. What you might think of as general purpose GUI/widget libraries -- Qt, wxWindows, GTK, FOX, MFC, .NET, Carbon, and so on -- have various advantages and disadvantages. But none of them can be assumed to be already installed across user systems. Many of them are only available on a subset of the platforms Mozilla supports, and most are relatively difficult to install or have licensing issues. Mozilla is worth installing just because it is such a great browser; once you have it, you have a free platform for custom applications. To be completely cross-platform in your Mozilla/XUL applications, you need to restrict yourself to configuring GUIs in XUL and programming their logic in JavaScript. http://www-106.ibm.com/developerworks/library/x-matters35/ See also XUL References: http://xml.coverpages.org/xul.html</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<font size="2">
<p>By David Mertz, IBM <a href="http://www.developerworks.com">developerWorks</a></p>
<p>In Part 2 of a serial article on GUIs and XML configuration data, David discusses how XML is used in the configuration of GUI interfaces. He looks at Mozilla&#39;s XML-based User Interface Language (XUL) which allows you to write applications that run without any particular dependency on the choice of underlying operating system. This may seem strange at first, but you&#39;ll soon see that this Mozilla project offers powerful tools for GUI building that allow you to develop for an extensive base of installed users. Mozilla is now much more than a browser: it is a whole component and GUI architecture. Indeed, Mozilla is more cross-platform and more widely installed on user systems than probably any other GUI library you are likely to consider. What you might think of as general purpose GUI/widget libraries -- Qt, wxWindows, GTK, FOX, MFC, .NET, Carbon, and so on -- have various advantages and disadvantages. But none of them can be assumed to be already installed across user systems. Many of them are only available on a subset of the platforms Mozilla supports, and most are relatively difficult to install or have licensing issues. Mozilla is worth installing just because it is such a great browser; once you have it, you have a free platform for custom applications. To be completely cross-platform in your Mozilla/XUL applications, you need to restrict yourself to configuring GUIs in XUL and programming their logic in JavaScript.</p>
<p><a href="http://www-106.ibm.com/developerworks/library/x-matters35/"><u><font color="#0000ff" size="2">http://www-106.ibm.com/developerworks/library/x-matters35/</font></u></a></p><font size="2">
<p>See also XUL References: <a href="http://xml.coverpages.org/xul.html"><u><font color="#0000ff" size="2">http://xml.coverpages.org/xul.html</font></u></a></p></font></font>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-04-16#523">
  <rss:title>SQL Support in Mozilla?</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2004-04-16T16:13:30Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Mozilla&#39;s SQL Support allows applications to directly connect to SQL databases. A web application no longer needs to pass information through a scripting language, such as Perl or Python, in order to recieve information it can use. The removal of the layer seperating applications and data simplifies the job of the programmer. Somehow I missed this effort, and only stumbled across it today after experimenting with Virtuoso&#39;s SyncML features (and then pondering about OutLook, WinFS, and what may or may not happen with SyncML support - another story). As usual the SQL binding to Mozilla caught my attention (I do recall trying to get Marc and Jim Clark to head down this path many years ago via an email; at least Jim acknowledged not knowing that much about SQL and past it on.., and as for Marc well... nothing happened). A few</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><a href="http://www.mozilla.org/projects/sql/">Mozilla&#39;s SQL Support </a>allows applications to directly connect to SQL databases. A web application no longer needs to pass information through a scripting language, such as Perl or Python, in order to recieve information it can use. The removal of the layer seperating applications and data simplifies the job of the programmer. </p></blockquote>
<p dir="ltr">Somehow I missed this effort, and only stumbled across it today after experimenting with <a href="http://www.openlinksw.com/virtuoso/whatis.htm">Virtuoso&#39;s SyncML features</a> (and then pondering about OutLook, WinFS, and what may or may not happen with SyncML support - another story).</p>
<p dir="ltr">As usual the SQL binding to Mozilla caught my attention (I do recall trying to get Marc and Jim Clark to head down this path many years ago via an email; at least Jim acknowledged not knowing that much about SQL and past it on.., and as for Marc well... nothing happened).</p>
<p dir="ltr">A few</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-04-01#498">
  <rss:title>Macromedia Brings Flash to the Enterprise</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2004-04-01T19:45:16Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">XML based generation of Rich and Native UI&#39;s is gathering momentum, it might also be a point to understand the complimentary relationship that exists between XForms and these XML based GUI generators. BTW - Here is a great XForms presentation that helps aids in the contextualization of my prior comments. The actual Macromedia MXML (Flex) review by Jon Udell follows: After a decade of web-style development, I&#39;m sold on the idea of using markup languages to describe the layouts of user interfaces and to coordinate the event-driven code that interconnects widgets and binds them to data. The original expression of that model was HTML and JavaScript, but variations have flourished. Mozilla-based applications have been using XUL (XML User Interface Language) for years. The Laszlo Presentation Server uses a description language called LZX. Microsoft has previewed XAML (Extensible Application Markup Language) for Longhorn. Now comes MXML (Macromedia Flex Markup Language), the latest development in Macromedia&#39;s ongoing quest to reposition the near-ubiquitous Flash player as a general-purpose presentation engine for rich Internet applications. With XML markup at its core, Flex is inherently IDE- friendly, and Macromedia has two IDE initiatives underway. One, code-named Brady, builds on Dreamweaver MX. The other, code-named Partridge, leverages Eclipse. Full Review: http://www.infoworld.com/article/04/03/29/13TCflex_1.html Also see XML for UI Languages: http://xml.coverpages.org/userInterfaceXML.html Nothing stops any of the engines mentioned above (proprietary user interfaces as per the diagram below)</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<font size="2">
<p dir="ltr">XML based generation of Rich and Native UI&#39;s is gathering momentum, it might also be a point to understand the complimentary relationship that exists between <a href="http://www.w3.org/MarkUp/Forms/">XForms</a> and these XML based GUI generators.</p>
<p dir="ltr">BTW - <a href="http://dubinko.info/events/XTech2003/img0.html">Here</a> is a great XForms presentation that helps aids in the contextualization of my prior comments.</p>
<p dir="ltr">The actual Macromedia MXML (Flex) review by Jon Udell follows:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p>After a decade of web-style development, I&#39;m sold on the idea of using markup languages to describe the layouts of user interfaces and to coordinate the event-driven code that interconnects widgets and binds them to data. The original expression of that model was HTML and JavaScript, but variations have flourished. Mozilla-based applications have been using <a href="http://www.xulplanet.com/">XUL (XML User Interface Language)</a> for years. <a href="http://www.laszlosystems.com/">The Laszlo Presentation Server </a>uses a description language called LZX. Microsoft has previewed <a href="http://longhorn.msdn.microsoft.com/lhsdk/core/overviews/about%20xaml.aspx">XAML (Extensible Application Markup Language)</a> for Longhorn.</p>
<p>Now comes <a href="http://www.macromedia.com/devnet/flex/articles/paradigm.html">MXML (Macromedia Flex Markup Language)</a>, the latest development in Macromedia&#39;s ongoing quest to reposition the near-ubiquitous Flash player as a general-purpose presentation engine for rich Internet applications. With XML markup at its core, Flex is inherently IDE- friendly, and Macromedia has two IDE initiatives underway. One, code-named Brady, builds on Dreamweaver MX. The other, code-named Partridge, leverages Eclipse.</p>
<p dir="ltr" style="MARGIN-RIGHT: 0px">Full Review: <a href="http://www.infoworld.com/article/04/03/29/13TCflex_1.html"><u><font color="#0000ff" size="2">http://www.infoworld.com/article/04/03/29/13TCflex_1.html</font></u></a></p><font size="2">
<p dir="ltr" style="MARGIN-RIGHT: 0px">Also see XML for UI Languages: <a href="http://xml.coverpages.org/userInterfaceXML.html"><u><font color="#0000ff" size="2">http://xml.coverpages.org/userInterfaceXML.html</font></u></a></p></font></blockquote>
<p dir="ltr">Nothing stops any of the engines mentioned above (proprietary user interfaces as per the diagram below)</p></font>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-09-02#246">
  <rss:title>Technology: Just Make It Simpler </rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-09-02T17:23:20Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Here is very good article that sheds light current trends that should be of increasing concern. In the past I have described this internally as the &quot;Web of Distrust and Fallability&quot; which has been sold to the unsuspecting public as a &quot;Web of Trust and Infallability&quot; Source: BusinessWeek Online .&quot;A huge chunk of the electricity grid fails. The Internet clogs up, and PCs crash. The space shuttle falls to the earth. Complex high-tech systems everywhere appear to be failing, and our society feels increasingly threatened. What is going on? Have we built a high-tech society that is doomed to crash and burn again and again? Can we fix it?&quot; if (!window.adDebug) { document.write(&#39;&lt;SCR&#39;+&#39;IPT LANGUAGE=&quot;JavaScript&quot; TYPE=&quot;text/javascript&quot; SRC=&quot;/common_scripts/adcode.js&quot;&gt;&lt;\/SCRIPT&gt;&#39;); } if (!window.boxAdParams) { setChannel(&quot;mz&quot;) setSub(&quot;&quot;) window.commonAdVars = buildCommonVars() buildAdParams() } if (window.adDebug) window.adDebug(window.boxAdParams, &quot;mz_general_9.htm&quot;, &quot;&quot;); document.write (&#39;&lt;scr&#39; + &#39;ipt language=&quot;javascript&quot; src=&quot;http://ads.businessweek.com/js.ng/&#39;+boxAdParams+&#39;?&quot;&gt;&lt;\/scr&#39;+&#39;ipt&gt;&#39;); Read on.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<P><!--StartFragment -->Here is&nbsp;very good article that sheds light&nbsp;current trends that should be of increasing concern. In the past I have described this internally as the "<EM>Web of Distrust&nbsp;and&nbsp;Fallability</EM>" which has been sold&nbsp;to the unsuspecting public&nbsp;as a "<EM>Web of Trust and Infallability</EM>"</P>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P>Source: <A href="http://www.businessweek.com/magazine/content/03_36/b3848011_mz001.htm">BusinessWeek Online </A>.<BR><!--/HEADLINE--><BR><FONT class=text face=arial,helvetica,univers><!--STORY-->"A huge chunk of the electricity grid fails. The Internet clogs up, and PCs crash. The space shuttle falls to the earth. Complex high-tech systems everywhere appear to be failing, and our society feels increasingly threatened. What is going on? Have we built a high-tech society that is doomed to crash and burn again and again? Can we fix it?"
<SCRIPT language=JavaScript type=text/javascript>
if (!window.adDebug) {
document.write('<SCR'+'IPT LANGUAGE="JavaScript" TYPE="text/javascript" SRC="/common_scripts/adcode.js"><\/SCRIPT>');
}
</SCRIPT>

<SCRIPT language=javascript type=text/javascript>
if (!window.boxAdParams) {
	setChannel("mz")
	setSub("")
	window.commonAdVars = buildCommonVars()
	buildAdParams()
}
if (window.adDebug) window.adDebug(window.boxAdParams, "mz_general_9.htm", "");
document.write ('<scr' + 'ipt language="javascript" src="http://ads.businessweek.com/js.ng/'+boxAdParams+'?"><\/scr'+'ipt>');
</SCRIPT>

<SCRIPT language=javascript src="http://ads.businessweek.com/js.ng/site=bw&amp;editexclude=b3848011_mz001&amp;var=427150392439006700&amp;adsize=300x250&amp;pagepos=9&amp;chan=mz&amp;?"></SCRIPT>
</FONT></P></BLOCKQUOTE>
<P><A href="http://www.businessweek.com/magazine/content/03_36/b3848011_mz001.htm">Read on.</A></P>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-07-31#224">
  <rss:title>Email: Killer App Or Just A Killer?</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-07-31T18:28:28Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">The current state of e-mail is one of the travesties of the Internet in my opinion, the excerpt below pretty much sums this up&quot; Email: Killer App Or Just A Killer? While many people consider email to be the &quot;killer app&quot; that brought the internet into homes and businesses, now some are saying that email has become annoying and costly. The most obvious issue is with spam, but there are other things as well. Maintaining an email server is a pain, and keeping email free from viruses is an additional cost. For companies that monitor email (and there are more and more), that&#39;s yet another expense. Finally, since there are questions about email security, some companies are telling employees not to use email for sensitive material. Thus, for many companies, email is only useful for informal communications, and you can only find those messages once you wade through all the spam and viruses - or so this article would have you believe. It&#39;s really not that bad - and there are reasonable technology solutions that should be able to keep most companies afloat with minimal costs. Yes, it&#39;s annoying, but the benefits of having email certainly outweigh the annoyances associated with it. [via Techdirt] One of the reasons for e-mail enabling Virtuoso (circa. 2000) was to set the stage for addressing what I anticipated would ultimately become the Spam Monster. This is how the solution was envisioned. Build a Driver/Sink that could be attached to the SMTP Agents such as Sendmail, Excim, Exchange etc.. such that the mail received is actually stored in a DBMS Engine (in this case Virtuoso or an ODBC accessible database). Once the mail is in the database it is then possible for Triggers to handle filtering of the Mime headers and mail body (using regular experessions). The end result being that Spam and Virulent mails are already filtered prior to POP or IMAP retrieval. With the emergence of Bayesian Spam Filters and other Anti Spam solutions there remains a possibility for this pursuing the best of both worlds. Enhance the DB Engine via its extensions API (In the case of Virtuosowhich supports Python, Perl etc..), or enhance the Mail Driver/Sink by extending it in a similar manner (a little more work if extensibility isn&#39;t part of the original Mail Sink design). My preference is obviously to handle this at the database level so that the Bayesian spam filter becomes a Trigger on the table into which the mail is stored. With a database in the mix I pretty much have a rules based engine for e-mail and also a pretty flexible mechanism for dealing with false positives (nothing&#39;s perfect!) since they remain in the database too, but not automatically part of the IMAP or POP retrieval process. At the end of the day e-mail is data and we simply need to look at data</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p dir="ltr">The current state of e-mail is one of the travesties of the Internet in my opinion, the excerpt below pretty much sums this up"</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p dir="ltr"><a href="http://techdirt.com/articles/20030730/2334203.shtml">Email: Killer App Or Just A Killer?</a> While many people consider email to be the "killer app" that brought the internet into homes and businesses, now some are saying that <a href="http://www.globetechnology.com/servlet/story/RTGAM.20030731.ujack0731/BNStory/Technology/">email has become annoying and costly</a>. The most obvious issue is with spam, but there are other things as well. Maintaining an email server is a pain, and keeping email free from viruses is an additional cost. For companies that monitor email (and there are more and more), that's yet another expense. Finally, since there are questions about email security, some companies are telling employees not to use email for sensitive material. Thus, for many companies, email is only useful for informal communications, and you can only find those messages once you wade through all the spam and viruses - or so this article would have you believe. It's really not <i>that</i> bad - and there are reasonable technology solutions that should be able to keep most companies afloat with minimal costs. Yes, it's annoying, but the benefits of having email certainly outweigh the annoyances associated with it. [via <a href="http://www.techdirt.com/">Techdirt</a>]</p></blockquote>
<p dir="ltr">One of the reasons for e-mail enabling <a href="http://www.openlinksw.com/virtuoso/whatis.htm">Virtuoso</a> (circa. 2000) was to set the stage for addressing what I anticipated would ultimately become the Spam Monster. This is how the solution was envisioned.</p>
<p dir="ltr">Build a Driver/Sink that could be attached to the SMTP Agents such as Sendmail, Excim, Exchange etc.. such that the mail received is actually stored in a DBMS Engine (in this case Virtuoso or an ODBC accessible database). Once the mail is in the database it is then possible for Triggers to handle filtering of the Mime headers and mail body (using regular experessions). The end result being that Spam and Virulent mails are already filtered prior to POP or IMAP retrieval.</p>
<p dir="ltr">With the emergence of Bayesian Spam Filters and other Anti Spam solutions there remains a possibility for this pursuing the best of both worlds. Enhance the DB Engine via its extensions API (In the case of Virtuosowhich supports Python, Perl etc..), or enhance the Mail Driver/Sink by extending it in a similar manner (a little more work if extensibility isn't part of the original Mail Sink design). My preference is obviously to handle this at the database level so that the Bayesian spam filter becomes a Trigger on the table into which the mail is stored. </p>
<p dir="ltr">With a database in the mix I pretty much have a rules based engine for e-mail and also a pretty flexible mechanism for dealing with false positives (nothing's perfect!) since they remain in the database too, but not automatically part of the IMAP or POP retrieval process.</p>
<p dir="ltr">At the end of the day e-mail is data and we simply need to look at data </p>
<div align="right"></div>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-07-07#202">
  <rss:title>eBay Will Someday Buy Oracle?</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-07-07T20:51:56Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">O&#39;Reilly on the Commoditization of Software Certinaly an interesting proposition, or should I say vision, but I don&#39;t think this proposition does justice to some of the valid insights contained in this recent IDG interview with Tim O&#39;Reilly. Here are some of Tim&#39;s quotes: &quot;Nobody is pointing out something that I think is way more significant: all of the killer apps of the Internet era: Amazon (.com, Inc), Google (Inc.), and Maps.yahoo.com. They run on Linux or FreeBSD, but they&#39;re not apps in the way that people have traditionally thought of applications, so they just don&#39;t get considered. Amazon is built with Perl on top of Linux. It&#39;s basically a bunch of open source hackers, but they&#39;re working for a company that&#39;s as fiercely proprietary as any proprietary software company.&quot; Solutions are always more important that the technology that makes up the solutions from a business development perspective. The trouble is that the constituent parts of a solution ultimately affect the longevity of the solution (the future adaptability of the solution), hence the middleware and components segments of the software industry. &quot;With eBay it&#39;s even clearer. The fact is, it&#39;s the critical mass of marketplace buyers and sellers and all the information that people have put in that marketplace as a repository.&quot;&quot;So I think we&#39;re going to find more and more places where that happens, where somebody gets a critical mass of customers and data and that becomes their source of value. On that basis, I will predict that -- this is an outrageous prediction -- but eBay will buy Oracle someday. The value will have moved so much to people who are not now seen as software suppliers.&quot; In reading this article that I can only assume that Tim does realize the inevitable; computing is, and always will be about data -- creation, transformation, dissemination, and exploitation. That said, you don&#39;t maximize the opportunities that such a realization accords by acquiring the largest vendor of database software. The largest database vendor doesn&#39;t imply dominance in any of the following areas: Data Creation Data Storage Data Access Data Dissemination Data Exploitation I see the Internet as the Database (comprising various forms), and the Web as a dominant database segment within Internet realm. Every Internet Point of Presence is really a point of Data interaction; Creation, Storage, Access, Dissemination, and Exploitation. eBay can acquire a license from Oracle or any other database vendor and still be sucessful, and all they need to do is come to the actual realization that like Amazon and Google they could become a very important Executable and Semantic Web platform by finally understanding that their home page isn&#39;t that important, it&#39;s the interactions with the site that matter. All of this is certainly achievable without acquiring Oracle. In short, this applies to any organization that seeks to incorporate the Internet into their operational strategy (Business Development, Customer Services, Intranets, Extranets etc.). I am inclined to believe that Sofware Commoditization (which has been with us for a very long time) is the new moniker for &quot;its all about data&quot; or to quote Sam Ruby, &quot;It&#39;s just data&quot;.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://slashdot.org/article.pl?sid=03/07/04/1955241">O&#39;Reilly on the Commoditization of Software</a> </p>
<p>Certinaly an interesting proposition, or should I say vision, but I don&#39;t think this proposition does justice to some of the valid insights contained in this recent <a href="http://www.idg.se/ArticlePages/idgnet.asp?id=4635">IDG interview </a>with <a href="http://tim.oreilly.com/">Tim O&#39;Reilly</a>. Here are some of Tim&#39;s quotes:</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><em>&quot;Nobody is pointing out something that I think is way more significant: all of the killer apps of the Internet era: Amazon (.com, Inc), Google (Inc.), and Maps.yahoo.com. They run on Linux or FreeBSD, but they&#39;re not apps in the way that people have traditionally thought of applications, so they just don&#39;t get considered. Amazon is built with Perl on top of Linux. It&#39;s basically a bunch of open source hackers, but they&#39;re working for a company that&#39;s as fiercely proprietary as any proprietary software company.&quot;</em></p></blockquote>
<p dir="ltr">Solutions are always more important that the technology that makes up the solutions from a business development perspective. The trouble is that the constituent parts of a solution ultimately affect the longevity of the solution (the future adaptability of the solution), hence the middleware and components segments of the software industry.</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p dir="ltr"><em>&quot;With eBay it&#39;s even clearer. The fact is, it&#39;s the critical mass of marketplace buyers and sellers and all the information that people have put in that marketplace as a repository.&quot;<br /><br />&quot;So I think we&#39;re going to find more and more places where that happens, where somebody gets a critical mass of customers and data and that becomes their source of value. On that basis, I will predict that -- this is an outrageous prediction -- but eBay will buy Oracle someday. The value will have moved so much to people who are not now seen as software suppliers.&quot;</em></p></blockquote>
<p>In reading this article that I can only assume that Tim does realize the inevitable; computing is, and always will be about data -- creation, transformation, dissemination, and exploitation. That said, you don&#39;t maximize the opportunities that such a realization accords by acquiring the largest vendor of database software. </p>
<p>The largest database vendor doesn&#39;t imply dominance in any of the following areas:</p>
<ol>
<li>Data Creation </li>
<li>Data Storage</li>
<li>Data Access</li>
<li>Data Dissemination</li>
<li>Data Exploitation</li></ol>
<p>I see the Internet as the Database (comprising various forms), and the Web as a dominant database segment within Internet realm. Every Internet Point of Presence is really a point of Data interaction; Creation, Storage, Access, Dissemination, and Exploitation.</p>
<p>eBay can acquire a license from Oracle or any other database vendor and still be sucessful, and all they need to do is come to the actual realization that like Amazon and Google they could become a very important Executable and Semantic Web platform by finally understanding that their home page isn&#39;t that important, it&#39;s the interactions with the site that matter. All of this is certainly achievable without acquiring Oracle.</p>
<p>In short, this applies to any organization that seeks to incorporate the Internet into their operational strategy (Business Development, Customer Services, Intranets, Extranets etc.). I am inclined to believe that Sofware Commoditization (which has been with us for a very long time) is the new moniker for &quot;its all about data&quot; or to quote <a href="http://www.intertwingly.net/blog/index.rss">Sam Ruby</a>, &quot;It&#39;s just data&quot;.</p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-25#187">
  <rss:title>OpenLink Software Announces Virtuoso 3.2 </rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-06-25T21:35:54Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">OpenLink Software Announces Virtuoso 3.2 This Blog Site is actually powered by Virtuoso 3.2 (has been doing so prior to the announcement). Hmm. product utilization preceding press release? Why not? OpenLink adds Weblog client and server functionality to Virtual Database Engine for SQL, XML, and Web Services Burlington, MA. June 25, 2003 - OpenLink Software, Inc., a leading provider of universal data access and enterprise information integration middleware, announces Virtuoso 3.2  the latest edition of its cross platform Virtual Database for SQL, XML, and Web Services  for Mac® OS X. The new release incorporates full client and server support for the Blogger, Moveable Type, and MetaWeblog APIs, providing users with choice over location, format, data storage, development environment, and host operating system, for personal, community, and corporate Weblogs. The new release also facilitates the transparent integration of Weblog data with other enterprise data sources. Full Press Release Putting together the community site took 5 minutes and it basically involved the following steps: 1. Standard installation from installer program (Mac OS X in this case, but Windows, Linux, and UNIX supported) 2. Creation of WebDAV user account for WebDAV repository (where all the gems reside) 3. Clicking on the &quot;Generate Web Site&quot; button situated in the Weblog menu tree with the Virtuoso HTML based Admin UI 4. Filled up my channel and blogrolls by asking Virtuoso to use its very old web content aggregation functionality 5. Setup my upstreams (so that I post once and propagate to my numerous blog sites on a conditional basis) 6. Create a Virtuoso HTTP Virtual Domain for the community/personal Blog 7. Start blogging using any Blog Client that supports; Blogger API, MetaWeblog, or Moveable Type No more no less. Most importantly I have a choice of programming languages (VSP, VSX, PHP, ASP.NET, JSP, Perl, Python), operating systems, and databases that constitute the shape and form of my blog home. See the Virtuoso FAQ for how this all comes together.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><A href="http://www.openlinksw.com/press/virt32_wwdc1.htm">OpenLink Software Announces Virtuoso 3.2 </a></span></p>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">This <A href="http://wwdc2003.openlinksw.com/"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"><FONT face=Arial size=2>Blog Site</font></span></a> is actually powered by <A href="http://www.openlinksw.com/virtuoso">Virtuoso</a> 3.2 (has been doing so prior to the announcement). Hmm. product utilization preceding press release? Why not?</span><B><SPAN style="FONT-FAMILY: Arial"><FONT size=3></font></span></b></p>
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px">
<P><B><SPAN style="FONT-FAMILY: Arial">OpenLink adds Weblog client and server functionality to <BR>Virtual Database Engine for SQL, XML, and Web Services</span></b><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"> <BR><BR><B>Burlington, MA. June 25, 2003</b> - OpenLink Software, Inc., a leading provider of universal data access and enterprise information integration middleware, announces Virtuoso 3.2  the latest edition of its cross platform Virtual Database for SQL, XML, and Web Services  for Mac® OS X. <BR><BR>The new release incorporates full client and server support for the Blogger, Moveable Type, and MetaWeblog APIs, providing users with choice over location, format, data storage, development environment, and host operating system, for personal, community, and corporate Weblogs. The new release also facilitates the transparent integration of Weblog data with other enterprise data sources. </span></p>
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><A href="http://www.openlinksw.com/press/virt32_wwdc1.htm"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'"><FONT face=Arial size=2>Full Press Release</font></span></a></span></p></blockquote>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Putting together the community site took 5 minutes and it basically involved the following steps:</span></p>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">1. Standard installation from installer program (Mac OS X in this case, but Windows, Linux, and UNIX supported)</span></p>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">2. Creation of WebDAV user account for WebDAV repository (where all the gems reside)</span></p>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">3. Clicking on the "Generate Web Site" button situated in the Weblog menu tree with the Virtuoso HTML based Admin UI</span></p>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">4. Filled up my channel and blogrolls by asking Virtuoso to use its <U>very old web</u> content aggregation functionality </span></p>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">5. Setup my upstreams (so that I post once and propagate to my numerous blog sites on a conditional basis)</span></p>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">6. Create a Virtuoso HTTP Virtual Domain for the community/personal Blog </span></p>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">7. Start blogging using any Blog Client that supports; Blogger API, MetaWeblog, or Moveable Type</span></p>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">No more no less. Most importantly I have a choice of programming languages (VSP, VSX, PHP, ASP.NET, JSP, Perl, Python), operating systems, and databases that constitute the shape and form of my blog home. </span></p>
<P dir=ltr><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">See the<A href="http://www.openlinksw.com/virtuoso/faqs.htm"> Virtuoso FAQ </a>for how this all comes together.</span></p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-24#180">
  <rss:title>Quest For Common Syndication </rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-06-24T21:15:03Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Quest For Common Syndication Under normal circumstances this would be a very scary propositon - weblogs have reached hype status, and this means 800 pound gorillas are approaching the patch!. Why should we create our own blogsphere FUD. Well things work differently in the blogspehere, and it leads to wonderful opportunities for like minded individuals to put their vast array of skills to constructive use. My hunch is that this effort -syndication format standardization- will be sorted out quickly, and even act as a showcase for the collaborative prowess of Blogs and Wikis. Take a look at the blog snippet below (I urge you to follow the Wiki link). Sam Ruby is leading an effort to create a new weblog format and API. There&#39;s a Wiki that&#39;s open for all to contribute to, and an impressive list of people who support the work. [via Scripting News] I hope this is one of many similar efforts that usher in the next phase of the Web (the Semantic one of course!).</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p dir="ltr"><a href="http://scriptingnews.userland.com/backissues/2003/06/24#When:3:47:37AM">Quest For Common Syndication</a> </p>
<p dir="ltr">Under normal circumstances this would be a very scary propositon - weblogs have reached hype status, and this means 800 pound gorillas are approaching the patch!. Why should we create our own blogsphere FUD.</p>
<p dir="ltr">Well things work differently in the blogspehere, and it leads to wonderful opportunities for like minded individuals to put their vast array of skills to constructive use. My hunch is that this effort -syndication format standardization- will be sorted out quickly, and even act as a showcase for the collaborative prowess of Blogs and Wikis. Take a look at the blog snippet below (I urge you to follow the Wiki link).</p>
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px">
<p><a href="http://www.intertwingly.net/blog/1472.html">Sam Ruby is leading</a> an effort to create a new weblog format and API. There&#39;s <a href="http://www.intertwingly.net/wiki/pie/">a Wiki</a> that&#39;s open for all to contribute to, and an impressive <a href="http://intertwingly.net/wiki/pie/RoadMap">list</a> of people who support the work. [via <a href="http://www.scripting.com/">Scripting News</a>]</p></blockquote>
<p dir="ltr">I hope this is one of many similar efforts that usher in the next phase of the Web (the Semantic one of course!).</p>
<p dir="ltr"> </p>
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-16#133">
  <rss:title>Blogs vs Wikis</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-06-16T16:51:40Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Blogs vs Wikis Bob Martin: Blogs are for hearing about what an individual says about something. Wikis are for seeing what a community thinks about something. [via Sam Ruby]</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<A href="http://www.intertwingly.net/blog/1469.html">Blogs vs Wikis</A> <A href="http://x180.net/Blog/Conferences/NFJS/Milwaukee03Review.html">Bob Martin</A>: <EM>Blogs are for hearing about what an individual says about something. Wikis are for seeing what a community thinks about something.</EM> [via <A href="http://www.intertwingly.net/blog/">Sam Ruby</A>]
<DIV></DIV>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-16#278">
  <rss:title>Blogs vs Wikis</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-06-16T16:51:40Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Blogs vs Wikis Bob Martin: Blogs are for hearing about what an individual says about something. Wikis are for seeing what a community thinks about something. [via Sam Ruby]</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<A href="http://www.intertwingly.net/blog/1469.html">Blogs vs Wikis</A> <A href="http://x180.net/Blog/Conferences/NFJS/Milwaukee03Review.html">Bob Martin</A>: <EM>Blogs are for hearing about what an individual says about something. Wikis are for seeing what a community thinks about something.</EM> [via <A href="http://www.intertwingly.net/blog/">Sam Ruby</A>]
<DIV></DIV>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-03#356">
  <rss:title>Inner-Browsing</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-06-03T17:30:57Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Inner-Browsing: Extending Web Browsing the Navigation Paradigm This article introduces a paradigm where navigation and access to information occurs inside a web page - as opposed to the traditional model where a new web page is sent to the web browser when new information is requested. [via DevEdge Viewsource]   A very good read! This pretty much set the stage for our new dynamic Web Services demos which demonstrate how SOAP support in Mozilla can be used to reduce round trips of conventional web applications. This capability was IE specific (as per our demos) until Mozilla&#39;s addition of SOAP extensions to its Javascript implementation.</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<A href="http://devedge.netscape.com/viewsource/2003/inner-browsing/">Inner-Browsing: Extending Web Browsing the Navigation Paradigm</A> This article introduces a paradigm where navigation and access to information occurs inside a web page - as opposed to the traditional model where a new web page is sent to the web browser when new information is requested. [via <A href="http://devedge.netscape.com/viewsource/">DevEdge Viewsource</A>] 
<DIV><EM></EM>&nbsp;</DIV>
<DIV><EM>A very good read!</EM></DIV>
<DIV><EM>This pretty much set the stage for our new dynamic Web Services demos which demonstrate how SOAP support in Mozilla can be used to reduce round trips of conventional web applications.&nbsp;This capability was IE specific (as per our demos) until Mozilla's addition of SOAP extensions to its Javascript implementation.</EM></DIV>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-27#334">
  <rss:title>The Future of Internet Explorer</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-05-27T18:50:13Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">The Future of Internet Explorer I Just said something to Sam Ruby in a comment that has caused me to stop and think. We are currently seeing all kinds of supposedly leaked information and screenshots of MS&#39;s next operating system, Longhorn. This is not due out till the end of 2004 or the beginning of 2005. A full 1 1/2 to 2 years away. Where are all the leaked screenshots and Information on the next version of Internet Explorer? Is there a next version? I read somewhere the other day that the IE team was actually smaller than the MS Works team. given that IE owns 95% of the browser market and MS Works owns, what?, of the office suite market, this seems a little more strange. Not strange at all, that&#39;s how Monopolies operate. They do not have any embracing to do right now (in other words there is nothing to kill in this market place). I have over 150 weblogs I monitor through my new reader and a good portion of them are MS employees (becuase I work in a MS enviroment). To the best of my knowledge, not one of them is from the IE team. All this has lead me to ask if IE is dead. If so, is it because MS doesn&#39;t see any point in developing it further or could they be worried that any further development would be viewed as anti-competitive? The problem here is no direction, many of the larger companies live of the innovation of smaller companies. The like to say, &quot;Ah&quot;! &quot;We&#39;ll have one of those in the future sometime...&quot;, and then crush smaller company if the FUD (Fear Uncertainty Doubt) doesn&#39;t bury the perceived threat (anything that is generating revenue that they aren&#39;t taxing; bottom-line). Well while the cat&#39;s away the mice will play, Mozilla is getting stronger and better by the minute. So there may just be a reason for IE to come back to its destructive life. [via Slightly Bent]</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://www.slightlybent.com/200305archive001.asp#1053867954001">The Future of Internet Explorer</a> I Just said something to <a title="Sam Ruby" href="http://www.intertwingly.net/blog/1432.html" target="_blank">Sam Ruby</a> in a comment that has caused me to stop and think. We are currently seeing all kinds of supposedly leaked information and screenshots of MS&#39;s next operating system, Longhorn. This is not due out till the end of 2004 or the beginning of 2005. A full 1 1/2 to 2 years away. Where are all the leaked screenshots and Information on the next version of Internet Explorer? Is there a next version? I read somewhere the other day that the IE team was actually smaller than the MS Works team. given that IE owns 95% of the browser market and MS Works owns, what?, of the office suite market, this seems a little more strange. </p>
<p><em>Not strange at all, that&#39;s how Monopolies operate. They do not have any embracing to do right now (in other words there is nothing to kill in this market place). </em></p>
<p>I have over 150 weblogs I monitor through my new reader and a good portion of them are MS employees (becuase I work in a MS enviroment). To the best of my knowledge, not one of them is from the IE team. All this has lead me to ask if IE is dead. If so, is it because MS doesn&#39;t see any point in developing it further or could they be worried that any further development would be viewed as anti-competitive? </p>
<p><em>The problem here is no direction, many of the larger companies live of the innovation of smaller companies. The like to say, &quot;Ah&quot;! &quot;We&#39;ll have one of those in the future sometime...&quot;, and then crush smaller company if the FUD (Fear Uncertainty Doubt) doesn&#39;t bury the perceived threat (anything that is generating revenue that they aren&#39;t taxing; bottom-line). </em></p>
<p><em>Well while the cat&#39;s away the mice will play, Mozilla is getting stronger and better by the minute. So there may just be a reason for IE to come back to its <u>destructive life</u>.</em></p>
<p>[via <a href="http://www.slightlybent.com/default.asp">Slightly Bent</a>]</p>
<p><em></em></p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-27#62">
  <rss:title>The Future of Internet Explorer</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-05-27T18:50:13Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">The Future of Internet Explorer I Just said something to Sam Ruby in a comment that has caused me to stop and think. We are currently seeing all kinds of supposedly leaked information and screenshots of MS&#39;s next operating system, Longhorn. This is not due out till the end of 2004 or the beginning of 2005. A full 1 1/2 to 2 years away. Where are all the leaked screenshots and Information on the next version of Internet Explorer? Is there a next version? I read somewhere the other day that the IE team was actually smaller than the MS Works team. given that IE owns 95% of the browser market and MS Works owns, what?, of the office suite market, this seems a little more strange. Not strange at all, that&#39;s how Monopolies operate. They do not have any embracing to do right now (in other words there is nothing to kill in this market place). I have over 150 weblogs I monitor through my new reader and a good portion of them are MS employees (becuase I work in a MS enviroment). To the best of my knowledge, not one of them is from the IE team. All this has lead me to ask if IE is dead. If so, is it because MS doesn&#39;t see any point in developing it further or could they be worried that any further development would be viewed as anti-competitive? The problem here is no direction, many of the larger companies live of the innovation of smaller companies. The like to say, &quot;Ah&quot;! &quot;We&#39;ll have one of those in the future sometime...&quot;, and then crush smaller company if the FUD (Fear Uncertainty Doubt) doesn&#39;t bury the perceived threat (anything that is generating revenue that they aren&#39;t taxing; bottom-line). Well while the cat&#39;s away the mice will play, Mozilla is getting stronger and better by the minute. So there may just be a reason for IE to come back to its destructive life. [via Slightly Bent]  </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<P><A href="http://www.slightlybent.com/200305archive001.asp#1053867954001">The Future of Internet Explorer</A> I Just said something to <A title="Sam Ruby" href="http://www.intertwingly.net/blog/1432.html" target=_blank>Sam Ruby</A> in a comment that has caused me to stop and think. We are currently seeing all kinds of supposedly leaked information and screenshots of MS's next operating system, Longhorn. This is not due out till the end of 2004 or the beginning of 2005. A full 1 1/2 to 2 years away. Where are all the leaked screenshots and Information on the next version of Internet Explorer? Is there a next version? I read somewhere the other day that the IE team was actually smaller than the MS Works team. given that IE owns 95% of the browser market and MS Works owns, what?, of the office suite market, this seems a little more strange. </P>
<P><EM>Not strange at all, that's how Monopolies operate. They do not have any embracing to do right now (in other words there is nothing to kill in this market place). </EM></P>
<P>I have over 150 weblogs I monitor through my new reader and a good portion of them are MS employees (becuase I work in a MS enviroment). To the best of my knowledge, not one of them is from the IE team. All this has lead me to ask if IE is dead. If so, is it because MS doesn't see any point in developing it further or could they be worried that any further development would be viewed as anti-competitive? </P>
<P><EM>The problem here is no direction, many of the larger companies live of the innovation of smaller companies. The like to say, "Ah"! "We'll have one of those in the future sometime...", and then crush smaller company if the FUD (Fear Uncertainty Doubt) doesn't bury the perceived threat (anything that is generating revenue that they aren't taxing; bottom-line). </EM></P>
<P><EM>Well while the cat's away the mice will play, Mozilla is getting stronger and better by the minute. So there may just be a reason for IE to come back to its <U>destructive life</U>.</EM></P>
<P>[via <A href="http://www.slightlybent.com/default.asp">Slightly Bent</A>]</P>
<P><EM></EM>&nbsp;</P>
<DIV></DIV>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#997">
  <rss:title>By Harry Fuecks</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-05-21T20:49:29Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">By Harry Fuecks Here&#39;s a question: what if I was to tell you that you can write your own version of Word using something like HTML and JavaScript? What if I added that you could run on your hard disk or launch it directly from your Web server and use it to update your site&#39;s content? It sounds a little far fetched, I know, but it&#39;s right here, right now -- and it calls itself &quot;Zool&quot;.  Here?s what this three-part series will cover: The XUL Revolution: just who is Zool? Back to School: time to dust of that JavaScript... Zoolology: getting read to fire up your first XUL application 3D Browsing with XUL: straight in at the deep end. Desperately Seeking: the search is over. Takeaway Menu: with fries please! But no one uses Mozilla: back to browser detection. The Rise of the Rich Client: the future is XUL. Part 1 My Comments: I am a firm believer in the possibilities presented by XUL. It will enable the bundling of UI, Data, Data Manipulation logic (Application or Module ) as part of a payload hosted on report server Like Virtuoso. Basically, I anticipate the emergence of an IDE that is able to persist is UI components (widgets) and UI behaviour as XML using the XUL grammer. Then along comes a XUL Processor that is able to emit a XUL based UI payloads ( via user agent aware transformation) as:.NET/Mono Windows Forms assembliesJavascriptFlash MXXUL (If we know the client is Mozilla or Firebird for instance).....I think this is a Virtuoso demo in the making :-)    </dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<h2>
<font size="3">By Harry Fuecks</font> <br />
<font size="2">Here&#39;s a question: what if I was to tell you that you can write your own version of Word using something like HTML and JavaScript? What if I added that you could run on your hard disk or launch it directly from your Web server and use it to update your site&#39;s content? It sounds a little far fetched, I know, but it&#39;s right here, right now -- and it calls itself &quot;Zool&quot;.  </font>
</h2>
<p>Here?s what this three-part series will cover:</p>
<p></p>
<ul>
<li>The XUL Revolution: just who is Zool? 
</li>
<li>Back to School: time to dust of that JavaScript... 
</li>
<li>Zoolology: getting read to fire up your first XUL application 
</li>
<li>3D Browsing with XUL: straight in at the deep end. 
</li>
<li>Desperately Seeking: the search is over. 
</li>
<li>Takeaway Menu: with fries please! 
</li>
<li>But no one uses Mozilla: back to browser detection. 
</li>
<li>The Rise of the Rich Client: the future is XUL. </li>
</ul>
<p>
<strong><a href="http://www.sitepoint.com/article/1140/1">Part 1</a> </strong>
</p>
<p>
 <em><u>My Comments</u>:<br />
 </em><em>I am a firm believer in the possibilities presented by XUL. It will enable the bundling of UI, Data, Data Manipulation logic (Application or Module ) as part of a payload hosted on report server Like Virtuoso. Basically, I anticipate the emergence of an IDE that is able to persist is UI components (widgets) and UI behaviour as XML using the XUL grammer. Then along comes a XUL Processor that is able to emit a XUL based UI payloads ( via user agent aware transformation) as:<br />.NET/Mono Windows Forms assemblies<br />Javascript<br />Flash MX<br />XUL (If we know the client is Mozilla or Firebird for instance)<br />.....<br />I think this is a Virtuoso demo in the making :-)</em> </p>
<p>
<br />
<br />
<br /> </p>
<p>
<font face="Verdana"></font> </p>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#318">
  <rss:title>By Harry Fuecks</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-05-21T20:49:00Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">By Harry Fuecks</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[
<h2>
 <a onclick="javascript:feedbackwindow('/feedback/1140'); return false;" href="http://www.sitepoint.com/feedback/1140"><font size="3">By Harry Fuecks</font>
 </a>
</h2>
]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-16#30">
  <rss:title>&lt;a href=&quot;http://dotnetweblogs.com/britchie/posts/3920.aspx&quot;&gt;.NET Languages Everywhere&lt;/a&gt;</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-05-16T22:23:07Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">.NET Languages Everywhere More .NET languages are popping up everyday.  I&#39;ve put together one of the most extensive lists of languages and posted it here.  Its pulled from many sources including: .NET Languages (ASP.NET), Cetus, Language Vendors (MS GotDotNET), .NET Language Group (MS GotDotNET), Visual Studio Partners: Language Vendors (MS), Mono-list, Google, SourceForge.net Ada A# - port of Ada to .NET (Dr. Martin C. Carlisle) APL Dyalog.Net - Dyalog APL (Dyadic) AsmL Abstract State Machine Language (MS Research) Visual Basic VB.NET (MS) mbas (Mono/Ximian) C# C# (MS) mcs (Mono/Ximian) cscc (DotGNU Portable.NET) Caml F# (ML and Caml), Abstract IL, ILX (MS Research) C++ Managed Extensions for C++ (MS) Managed and Unmanaged C++ (GotDotNet) Cobol NetCOBOL - COBOL for .NET (Fujitsu) Net Express (Micro Focus) Delphi Borland Delphi and C++Builder Support for .NET (Borland) Delphi.NET - interoperability tools (Marcus Schmidt) Eiffel Eiffel for .NET (Interactive Software Engineering) Forth Delta Forth .NET (Valer BOCAN) Fortran Lahey/Fujitsu Fortran for .NET (Lahey Computer Systems, Inc.) FTN95 - Fortran for Microsoft .NET (Salford Software Ltd.) Java Visual J# .NET (MS) IKVM.NET - Java VM for .NET JavaScript JScript .NET (GotDotNet) JANET - JavaScript-compatible language LOGO MonoLOGO (Richard Hestilow) Lua Lua.NET: Integrating Lua with Rotor (PUC-RIO Mercury Mercury on .NET Mondrian Mondrian and Haskell for .NET (Nigel Perry) Oberon Active Oberon for .net (ETH Zuerich) Perl Perl for .NET, PerlNET (ActiveState SRL.) Pascal Component Pascal (QUT) PHP PHP Sharp Python KOBRA Open Source Python for .NET (Mark Hammond) Ruby NetRuby RPG ASNA Visual RPG for .NET Scheme Scheme (Northwestern University) Small Talk S# (SmallScript LLC) SML (Standard Meta Language) SML.NET (MS Research, University of Cambridge) Visual Basic VB.NET (MS) mbas (Mono/Ximian) I&#39;ll try to keep this updated when I run across a new language.  If anyone knows of any others, let me know.[via Brian Ritchie&#39;s Blog]</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<A href="http://dotnetweblogs.com/britchie/posts/3920.aspx">.NET Languages Everywhere</A> 
<P>More .NET languages are popping up everyday.&nbsp; I've put together one of the most extensive lists of languages and posted it <A href="http://www12.brinkster.com/brianr/languages.aspx">here</A>.&nbsp;</P>
<P>Its pulled from many sources including: <A href="http://www.asp.net/Default.aspx?tabindex=8&amp;tabid=40"><FONT face=Verdana size=2>.NET Languages</FONT></A><FONT face=Verdana size=2>&nbsp;(ASP.NET), </FONT><A href="http://www.cetus-links.org/oo_dotnet.html#oo_dotnet_netlang"><FONT face=Verdana size=2>Cetus</FONT></A>, <A href="http://www.gotdotnet.com/community/resources/Default.aspx?ResourceTypeDropDownList=Language+vendors"><FONT face=Verdana size=2>Language Vendors</FONT></A><FONT face=Verdana size=2> (MS GotDotNET), </FONT><A href="http://www.gotdotnet.com/team/lang/"><FONT face=Verdana size=2>.NET Language Group</FONT></A><FONT face=Verdana size=2> (MS GotDotNET), </FONT><A href="http://msdn.microsoft.com/vstudio/partners/language/default.asp"><FONT face=Verdana size=2>Visual Studio Partners: Language Vendors</FONT></A><FONT face=Verdana size=2> (MS), </FONT><FONT face=Verdana size=2><A href="http://www.go-mono.com/mailing-lists.html">Mono-list</A>, </FONT><FONT face=Verdana size=2><A href="http://www.google.com/">Google</A>, </FONT><FONT face=Verdana size=2><A href="http://sourceforge.net/">SourceForge.net</A></FONT></P>
<UL>
<LI><FONT face=Verdana size=2>Ada </FONT>
<UL>
<LI class=sub><A href="http://www.usafa.af.mil/dfcs/bios/mcc_html/a_sharp.html"><FONT face=Verdana size=2>A# - port of Ada to .NET</FONT></A><FONT face=Verdana size=2> (Dr. Martin C. Carlisle) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>APL </FONT>
<UL>
<LI class=sub><A href="http://www.dyadic.com/"><FONT face=Verdana size=2>Dyalog.Net - Dyalog APL</FONT></A><FONT face=Verdana size=2> (Dyadic) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>AsmL </FONT>
<UL>
<LI><A href="http://research.microsoft.com/fse/asml/"><FONT face=Verdana size=2>Abstract State Machine Language</FONT></A><FONT face=Verdana size=2> (MS Research)</FONT></LI></UL>
<LI><FONT face=Verdana size=2>Visual Basic </FONT>
<UL>
<LI class=sub><A href="http://msdn.microsoft.com/vbasic/"><FONT face=Verdana size=2>VB.NET</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI class=sub><A href="http://www.go-mono.com/mbas.html"><FONT face=Verdana size=2>mbas</FONT></A><FONT face=Verdana size=2> (Mono/Ximian) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>C# </FONT>
<UL>
<LI><A href="http://msdn.microsoft.com/vcsharp/"><FONT face=Verdana size=2>C#</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI><A href="http://www.go-mono.com/c-sharp.html"><FONT face=Verdana size=2>mcs</FONT></A><FONT face=Verdana size=2> (Mono/Ximian)</FONT> 
<LI><FONT face=Verdana size=2><A href="http://www.southern-storm.com.au/portable_net.html">cscc</A> (DotGNU Portable.NET)</FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Caml </FONT>
<UL>
<LI class=sub><A href="http://research.microsoft.com/projects/ilx/fsharp.htm"><FONT face=Verdana size=2>F# (ML and Caml), Abstract IL, ILX</FONT></A><FONT face=Verdana size=2> (MS Research) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>C++ </FONT>
<UL>
<LI class=sub><A href="http://msdn.microsoft.com/vstudio/techinfo/articles/upgrade/managedext.asp"><FONT face=Verdana size=2>Managed Extensions for C++</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI class=sub><A href="http://www.gotdotnet.com/team/cplusplus/"><FONT face=Verdana size=2>Managed and Unmanaged C++</FONT></A><FONT face=Verdana size=2> (GotDotNet) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Cobol </FONT>
<UL>
<LI class=sub><A href="http://www.netcobol.com/"><FONT face=Verdana size=2>NetCOBOL - COBOL for .NET</FONT></A><FONT face=Verdana size=2> (Fujitsu) </FONT>
<LI class=sub><A href="http://www.microfocus.com/products/netexpress/"><FONT face=Verdana size=2>Net Express</FONT></A><FONT face=Verdana size=2> (Micro Focus) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Delphi </FONT>
<UL>
<LI class=sub><A href="http://borland.com/dotnet/"><FONT face=Verdana size=2>Borland Delphi and C++Builder Support for .NET</FONT></A><FONT face=Verdana size=2> (Borland) </FONT>
<LI class=sub><A href="http://sourceforge.net/projects/delphinet"><FONT face=Verdana size=2>Delphi.NET - interoperability tools</FONT></A><FONT face=Verdana size=2> (Marcus Schmidt) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Eiffel </FONT>
<UL>
<LI class=sub><A href="http://www.eiffel.com/"><FONT face=Verdana size=2>Eiffel for .NET</FONT></A><FONT face=Verdana size=2> (Interactive Software Engineering) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Forth </FONT>
<UL>
<LI class=sub><A href="http://www.dataman.ro/dforth/"><FONT face=Verdana size=2>Delta Forth .NET</FONT></A><FONT face=Verdana size=2> (Valer BOCAN) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Fortran </FONT>
<UL>
<LI class=sub><A href="http://www.lahey.com/dotnet.htm"><FONT face=Verdana size=2>Lahey/Fujitsu Fortran for .NET</FONT></A><FONT face=Verdana size=2> (Lahey Computer Systems, Inc.) </FONT>
<LI class=sub><A href="http://www.salfordsoftware.co.uk/compilers/ftn95/dotnet.shtml"><FONT face=Verdana size=2>FTN95 - Fortran for Microsoft .NET</FONT></A><FONT face=Verdana size=2> (Salford Software Ltd.) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Java </FONT>
<UL>
<LI class=sub><A href="http://msdn.microsoft.com/vjsharp/"><FONT face=Verdana size=2>Visual J# .NET</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI class=sub><A href="http://weblog.ikvm.net/"><FONT face=Verdana size=2>IKVM.NET</FONT></A><FONT face=Verdana size=2> - Java VM for .NET </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>JavaScript </FONT></LI>
<UL>
<LI class=sub><A href="http://www.gotdotnet.com/team/jscript/"><FONT face=Verdana size=2>JScript .NET</FONT></A><FONT face=Verdana size=2> (GotDotNet) </FONT></LI>
<LI class=sub><A href="http://janet-js.sourceforge.net/"><FONT face=Verdana size=2>JANET</FONT></A><FONT face=Verdana size=2> - JavaScript-compatible language</FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>LOGO </FONT>
<UL>
<LI class=sub><A href="http://monologo.sourceforge.net/"><FONT face=Verdana size=2>MonoLOGO</FONT></A><FONT face=Verdana size=2> (Richard Hestilow) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Lua 
<UL>
<LI class=sub><A href="http://www.tecgraf.puc-rio.br/~rcerq/luadotnet/"><FONT face=Verdana size=2>Lua.NET: Integrating Lua with Rotor</FONT></A><FONT face=Verdana size=2> (PUC-RIO</FONT> </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Mercury </FONT>
<UL>
<LI class=sub><A href="http://www.cs.mu.oz.au/research/mercury/dotnet.html"><FONT face=Verdana size=2>Mercury on .NET</FONT></A></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Mondrian</FONT> 
<UL>
<LI class=sub><FONT face=Verdana size=2><A href="http://www.mondrian-script.org/"><FONT face=Verdana size=2>Mondrian and Haskell for .NET</FONT></A><FONT face=Verdana size=2> (Nigel Perry) </FONT></FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Oberon </FONT>
<UL>
<LI class=sub><A href="http://www.oberon.ethz.ch/oberon.net/"><FONT face=Verdana size=2>Active Oberon for .net</FONT></A><FONT face=Verdana size=2> (ETH Zuerich) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Perl </FONT>
<UL>
<LI class=sub><A href="http://aspn.activestate.com/ASPN/NET/"><FONT face=Verdana size=2>Perl for .NET, PerlNET</FONT></A><FONT face=Verdana size=2> (ActiveState SRL.) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Pascal </FONT>
<UL>
<LI class=sub><A href="http://www.fit.qut.edu.au/PLAS/ComponentPascal/"><FONT face=Verdana size=2>Component Pascal</FONT></A><FONT face=Verdana size=2> (QUT) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>PHP </FONT>
<UL>
<LI><A href="http://www.akbkhome.com/Projects/PHP_Sharp"><FONT face=Verdana size=2>PHP Sharp</FONT></A></LI></UL>
<LI><FONT face=Verdana size=2>Python </FONT>
<UL>
<LI><A href="http://home.attbi.com/~chetangadgil//DotNetWrapperForPython.htm"><FONT face=Verdana size=2>KOBRA</FONT></A><FONT face=Verdana size=2> </FONT>
<LI class=sub><A href="http://starship.python.net/crew/mhammond/dotnet/"><FONT face=Verdana size=2>Open Source Python for .NET</FONT></A><FONT face=Verdana size=2> (Mark Hammond) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Ruby </FONT>
<UL>
<LI><A href="http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/nrb.html"><FONT face=Verdana size=2>NetRuby</FONT></A></LI></UL>
<LI><FONT face=Verdana size=2>RPG </FONT>
<UL>
<LI><A href="http://msdn.microsoft.com/vstudio/partners/language/asna.asp"><FONT face=Verdana size=2>ASNA Visual RPG for .NET</FONT></A></LI></UL>
<LI><FONT face=Verdana size=2>Scheme </FONT>
<UL>
<LI class=sub><A href="http://rover.cs.nwu.edu/~scheme/"><FONT face=Verdana size=2>Scheme</FONT></A><FONT face=Verdana size=2> (Northwestern University) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Small&nbsp;Talk </FONT>
<UL>
<LI><A href="http://www.smallscript.org/"><FONT face=Verdana size=2>S#</FONT></A><FONT face=Verdana size=2>&nbsp;(SmallScript LLC)</FONT></LI></UL>
<LI><FONT face=Verdana size=2>SML (Standard Meta Language) </FONT>
<UL>
<LI class=sub><A href="http://www.cl.cam.ac.uk/Research/TSG/SMLNET/"><FONT face=Verdana size=2>SML.NET</FONT></A><FONT face=Verdana size=2> (MS Research, University of Cambridge) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Visual Basic </FONT>
<UL>
<LI class=sub><A href="http://msdn.microsoft.com/vbasic/"><FONT face=Verdana size=2>VB.NET</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI class=sub><A href="http://www.go-mono.com/mbas.html"><FONT face=Verdana size=2>mbas</FONT></A><FONT face=Verdana size=2> (Mono/Ximian)</FONT></LI></UL></LI></UL>
<P class=sub><FONT face=Verdana size=2>I'll try to keep this updated when I run across a new language.&nbsp; If anyone knows of any others, let <A href="about:blankbrianlritchie@hotmail.com">me</A> know.</FONT>[via <A href="http://dotnetweblogs.com/britchie/">Brian Ritchie's Blog</A>]</P>
<DIV></DIV>]]></content:encoded>
 </rss:item>
 <rss:item xmlns:rss="http://purl.org/rss/1.0/" rdf:about="http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-16#303">
  <rss:title>&lt;a href=&quot;http://dotnetweblogs.com/britchie/posts/3920.aspx&quot;&gt;.NET Languages Everywhere&lt;/a&gt;</rss:title>
  <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2003-05-16T22:23:07Z</dc:date>
  <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">.NET Languages Everywhere More .NET languages are popping up everyday.  I&#39;ve put together one of the most extensive lists of languages and posted it here.  Its pulled from many sources including: .NET Languages (ASP.NET), Cetus, Language Vendors (MS GotDotNET), .NET Language Group (MS GotDotNET), Visual Studio Partners: Language Vendors (MS), Mono-list, Google, SourceForge.net Ada A# - port of Ada to .NET (Dr. Martin C. Carlisle) APL Dyalog.Net - Dyalog APL (Dyadic) AsmL Abstract State Machine Language (MS Research) Visual Basic VB.NET (MS) mbas (Mono/Ximian) C# C# (MS) mcs (Mono/Ximian) cscc (DotGNU Portable.NET) Caml F# (ML and Caml), Abstract IL, ILX (MS Research) C++ Managed Extensions for C++ (MS) Managed and Unmanaged C++ (GotDotNet) Cobol NetCOBOL - COBOL for .NET (Fujitsu) Net Express (Micro Focus) Delphi Borland Delphi and C++Builder Support for .NET (Borland) Delphi.NET - interoperability tools (Marcus Schmidt) Eiffel Eiffel for .NET (Interactive Software Engineering) Forth Delta Forth .NET (Valer BOCAN) Fortran Lahey/Fujitsu Fortran for .NET (Lahey Computer Systems, Inc.) FTN95 - Fortran for Microsoft .NET (Salford Software Ltd.) Java Visual J# .NET (MS) IKVM.NET - Java VM for .NET JavaScript JScript .NET (GotDotNet) JANET - JavaScript-compatible language LOGO MonoLOGO (Richard Hestilow) Lua Lua.NET: Integrating Lua with Rotor (PUC-RIO Mercury Mercury on .NET Mondrian Mondrian and Haskell for .NET (Nigel Perry) Oberon Active Oberon for .net (ETH Zuerich) Perl Perl for .NET, PerlNET (ActiveState SRL.) Pascal Component Pascal (QUT) PHP PHP Sharp Python KOBRA Open Source Python for .NET (Mark Hammond) Ruby NetRuby RPG ASNA Visual RPG for .NET Scheme Scheme (Northwestern University) Small Talk S# (SmallScript LLC) SML (Standard Meta Language) SML.NET (MS Research, University of Cambridge) Visual Basic VB.NET (MS) mbas (Mono/Ximian) I&#39;ll try to keep this updated when I run across a new language.  If anyone knows of any others, let me know.[via Brian Ritchie&#39;s Blog]</dc:description>
  <content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<A href="http://dotnetweblogs.com/britchie/posts/3920.aspx">.NET Languages Everywhere</A> 
<P>More .NET languages are popping up everyday.&nbsp; I've put together one of the most extensive lists of languages and posted it <A href="http://www12.brinkster.com/brianr/languages.aspx">here</A>.&nbsp;</P>
<P>Its pulled from many sources including: <A href="http://www.asp.net/Default.aspx?tabindex=8&amp;tabid=40"><FONT face=Verdana size=2>.NET Languages</FONT></A><FONT face=Verdana size=2>&nbsp;(ASP.NET), </FONT><A href="http://www.cetus-links.org/oo_dotnet.html#oo_dotnet_netlang"><FONT face=Verdana size=2>Cetus</FONT></A>, <A href="http://www.gotdotnet.com/community/resources/Default.aspx?ResourceTypeDropDownList=Language+vendors"><FONT face=Verdana size=2>Language Vendors</FONT></A><FONT face=Verdana size=2> (MS GotDotNET), </FONT><A href="http://www.gotdotnet.com/team/lang/"><FONT face=Verdana size=2>.NET Language Group</FONT></A><FONT face=Verdana size=2> (MS GotDotNET), </FONT><A href="http://msdn.microsoft.com/vstudio/partners/language/default.asp"><FONT face=Verdana size=2>Visual Studio Partners: Language Vendors</FONT></A><FONT face=Verdana size=2> (MS), </FONT><FONT face=Verdana size=2><A href="http://www.go-mono.com/mailing-lists.html">Mono-list</A>, </FONT><FONT face=Verdana size=2><A href="http://www.google.com/">Google</A>, </FONT><FONT face=Verdana size=2><A href="http://sourceforge.net/">SourceForge.net</A></FONT></P>
<UL>
<LI><FONT face=Verdana size=2>Ada </FONT>
<UL>
<LI class=sub><A href="http://www.usafa.af.mil/dfcs/bios/mcc_html/a_sharp.html"><FONT face=Verdana size=2>A# - port of Ada to .NET</FONT></A><FONT face=Verdana size=2> (Dr. Martin C. Carlisle) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>APL </FONT>
<UL>
<LI class=sub><A href="http://www.dyadic.com/"><FONT face=Verdana size=2>Dyalog.Net - Dyalog APL</FONT></A><FONT face=Verdana size=2> (Dyadic) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>AsmL </FONT>
<UL>
<LI><A href="http://research.microsoft.com/fse/asml/"><FONT face=Verdana size=2>Abstract State Machine Language</FONT></A><FONT face=Verdana size=2> (MS Research)</FONT></LI></UL>
<LI><FONT face=Verdana size=2>Visual Basic </FONT>
<UL>
<LI class=sub><A href="http://msdn.microsoft.com/vbasic/"><FONT face=Verdana size=2>VB.NET</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI class=sub><A href="http://www.go-mono.com/mbas.html"><FONT face=Verdana size=2>mbas</FONT></A><FONT face=Verdana size=2> (Mono/Ximian) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>C# </FONT>
<UL>
<LI><A href="http://msdn.microsoft.com/vcsharp/"><FONT face=Verdana size=2>C#</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI><A href="http://www.go-mono.com/c-sharp.html"><FONT face=Verdana size=2>mcs</FONT></A><FONT face=Verdana size=2> (Mono/Ximian)</FONT> 
<LI><FONT face=Verdana size=2><A href="http://www.southern-storm.com.au/portable_net.html">cscc</A> (DotGNU Portable.NET)</FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Caml </FONT>
<UL>
<LI class=sub><A href="http://research.microsoft.com/projects/ilx/fsharp.htm"><FONT face=Verdana size=2>F# (ML and Caml), Abstract IL, ILX</FONT></A><FONT face=Verdana size=2> (MS Research) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>C++ </FONT>
<UL>
<LI class=sub><A href="http://msdn.microsoft.com/vstudio/techinfo/articles/upgrade/managedext.asp"><FONT face=Verdana size=2>Managed Extensions for C++</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI class=sub><A href="http://www.gotdotnet.com/team/cplusplus/"><FONT face=Verdana size=2>Managed and Unmanaged C++</FONT></A><FONT face=Verdana size=2> (GotDotNet) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Cobol </FONT>
<UL>
<LI class=sub><A href="http://www.netcobol.com/"><FONT face=Verdana size=2>NetCOBOL - COBOL for .NET</FONT></A><FONT face=Verdana size=2> (Fujitsu) </FONT>
<LI class=sub><A href="http://www.microfocus.com/products/netexpress/"><FONT face=Verdana size=2>Net Express</FONT></A><FONT face=Verdana size=2> (Micro Focus) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Delphi </FONT>
<UL>
<LI class=sub><A href="http://borland.com/dotnet/"><FONT face=Verdana size=2>Borland Delphi and C++Builder Support for .NET</FONT></A><FONT face=Verdana size=2> (Borland) </FONT>
<LI class=sub><A href="http://sourceforge.net/projects/delphinet"><FONT face=Verdana size=2>Delphi.NET - interoperability tools</FONT></A><FONT face=Verdana size=2> (Marcus Schmidt) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Eiffel </FONT>
<UL>
<LI class=sub><A href="http://www.eiffel.com/"><FONT face=Verdana size=2>Eiffel for .NET</FONT></A><FONT face=Verdana size=2> (Interactive Software Engineering) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Forth </FONT>
<UL>
<LI class=sub><A href="http://www.dataman.ro/dforth/"><FONT face=Verdana size=2>Delta Forth .NET</FONT></A><FONT face=Verdana size=2> (Valer BOCAN) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Fortran </FONT>
<UL>
<LI class=sub><A href="http://www.lahey.com/dotnet.htm"><FONT face=Verdana size=2>Lahey/Fujitsu Fortran for .NET</FONT></A><FONT face=Verdana size=2> (Lahey Computer Systems, Inc.) </FONT>
<LI class=sub><A href="http://www.salfordsoftware.co.uk/compilers/ftn95/dotnet.shtml"><FONT face=Verdana size=2>FTN95 - Fortran for Microsoft .NET</FONT></A><FONT face=Verdana size=2> (Salford Software Ltd.) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Java </FONT>
<UL>
<LI class=sub><A href="http://msdn.microsoft.com/vjsharp/"><FONT face=Verdana size=2>Visual J# .NET</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI class=sub><A href="http://weblog.ikvm.net/"><FONT face=Verdana size=2>IKVM.NET</FONT></A><FONT face=Verdana size=2> - Java VM for .NET </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>JavaScript </FONT></LI>
<UL>
<LI class=sub><A href="http://www.gotdotnet.com/team/jscript/"><FONT face=Verdana size=2>JScript .NET</FONT></A><FONT face=Verdana size=2> (GotDotNet) </FONT></LI>
<LI class=sub><A href="http://janet-js.sourceforge.net/"><FONT face=Verdana size=2>JANET</FONT></A><FONT face=Verdana size=2> - JavaScript-compatible language</FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>LOGO </FONT>
<UL>
<LI class=sub><A href="http://monologo.sourceforge.net/"><FONT face=Verdana size=2>MonoLOGO</FONT></A><FONT face=Verdana size=2> (Richard Hestilow) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Lua 
<UL>
<LI class=sub><A href="http://www.tecgraf.puc-rio.br/~rcerq/luadotnet/"><FONT face=Verdana size=2>Lua.NET: Integrating Lua with Rotor</FONT></A><FONT face=Verdana size=2> (PUC-RIO</FONT> </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Mercury </FONT>
<UL>
<LI class=sub><A href="http://www.cs.mu.oz.au/research/mercury/dotnet.html"><FONT face=Verdana size=2>Mercury on .NET</FONT></A></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Mondrian</FONT> 
<UL>
<LI class=sub><FONT face=Verdana size=2><A href="http://www.mondrian-script.org/"><FONT face=Verdana size=2>Mondrian and Haskell for .NET</FONT></A><FONT face=Verdana size=2> (Nigel Perry) </FONT></FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Oberon </FONT>
<UL>
<LI class=sub><A href="http://www.oberon.ethz.ch/oberon.net/"><FONT face=Verdana size=2>Active Oberon for .net</FONT></A><FONT face=Verdana size=2> (ETH Zuerich) </FONT></LI></UL>
<LI class=sub><FONT face=Verdana size=2>Perl </FONT>
<UL>
<LI class=sub><A href="http://aspn.activestate.com/ASPN/NET/"><FONT face=Verdana size=2>Perl for .NET, PerlNET</FONT></A><FONT face=Verdana size=2> (ActiveState SRL.) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Pascal </FONT>
<UL>
<LI class=sub><A href="http://www.fit.qut.edu.au/PLAS/ComponentPascal/"><FONT face=Verdana size=2>Component Pascal</FONT></A><FONT face=Verdana size=2> (QUT) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>PHP </FONT>
<UL>
<LI><A href="http://www.akbkhome.com/Projects/PHP_Sharp"><FONT face=Verdana size=2>PHP Sharp</FONT></A></LI></UL>
<LI><FONT face=Verdana size=2>Python </FONT>
<UL>
<LI><A href="http://home.attbi.com/~chetangadgil//DotNetWrapperForPython.htm"><FONT face=Verdana size=2>KOBRA</FONT></A><FONT face=Verdana size=2> </FONT>
<LI class=sub><A href="http://starship.python.net/crew/mhammond/dotnet/"><FONT face=Verdana size=2>Open Source Python for .NET</FONT></A><FONT face=Verdana size=2> (Mark Hammond) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Ruby </FONT>
<UL>
<LI><A href="http://www.geocities.co.jp/SiliconValley-PaloAlto/9251/ruby/nrb.html"><FONT face=Verdana size=2>NetRuby</FONT></A></LI></UL>
<LI><FONT face=Verdana size=2>RPG </FONT>
<UL>
<LI><A href="http://msdn.microsoft.com/vstudio/partners/language/asna.asp"><FONT face=Verdana size=2>ASNA Visual RPG for .NET</FONT></A></LI></UL>
<LI><FONT face=Verdana size=2>Scheme </FONT>
<UL>
<LI class=sub><A href="http://rover.cs.nwu.edu/~scheme/"><FONT face=Verdana size=2>Scheme</FONT></A><FONT face=Verdana size=2> (Northwestern University) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Small&nbsp;Talk </FONT>
<UL>
<LI><A href="http://www.smallscript.org/"><FONT face=Verdana size=2>S#</FONT></A><FONT face=Verdana size=2>&nbsp;(SmallScript LLC)</FONT></LI></UL>
<LI><FONT face=Verdana size=2>SML (Standard Meta Language) </FONT>
<UL>
<LI class=sub><A href="http://www.cl.cam.ac.uk/Research/TSG/SMLNET/"><FONT face=Verdana size=2>SML.NET</FONT></A><FONT face=Verdana size=2> (MS Research, University of Cambridge) </FONT></LI></UL>
<LI><FONT face=Verdana size=2>Visual Basic </FONT>
<UL>
<LI class=sub><A href="http://msdn.microsoft.com/vbasic/"><FONT face=Verdana size=2>VB.NET</FONT></A><FONT face=Verdana size=2> (MS) </FONT>
<LI class=sub><A href="http://www.go-mono.com/mbas.html"><FONT face=Verdana size=2>mbas</FONT></A><FONT face=Verdana size=2> (Mono/Ximian)</FONT></LI></UL></LI></UL>
<P class=sub><FONT face=Verdana size=2>I'll try to keep this updated when I run across a new language.&nbsp; If anyone knows of any others, let <A href="about:blankbrianlritchie@hotmail.com">me</A> know.</FONT>[via <A href="http://dotnetweblogs.com/britchie/">Brian Ritchie's Blog</A>]</P>
<DIV></DIV>]]></content:encoded>
 </rss:item>
</rdf:RDF>