http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/
Kingsley Idehen's Blog Data Space
I have seen the future and it's full of Linked Data! :-)
kidehen@openlinksw.com
kidehen@openlinksw.com
2024-03-29T14:28:00Z
Virtuoso Universal Server 08.03.3327
http://www.openlinksw.com:443/weblog/public/images/vbloglogo.gif
SPARQL Guide for the Javascript Developer
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2011-01-21#1653
2011-01-21T19:59:49Z
2011-01-26T18:10:28-05:00
<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 "<a href="http://docs.openlinksw.com/virtuoso/rdfsparql.html#rdfsupportedprotocolendpointuri" id="link-id0x1c7630b8">SPARQL_SPONGE</a>" privileges to user "SPARQL" (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="application/json"; var params={ "default-graph": "", "should-sponge": "soft", "query": query, "debug": "on", "timeout": "", "format": format, "save": "display", "fname": "" }; var querypart=""; for(var k in params) { querypart+=k+"="+encodeURIComponent(params[k])+"&"; } var queryURL=baseURL + '?' + querypart; if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET",queryURL,false); xmlhttp.send(); return JSON.parse(xmlhttp.responseText); } /* setting Data Source Name (DSN) */ var dsn="http://dbpedia.org/resource/DBpedia"; /* Virtuoso pragma "DEFINE get:soft "replace" 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="DEFINE get:soft \"replace\"\nSELECT DISTINCT * FROM <"+dsn+"> WHERE {?s ?p ?o}"; var data=sparqlQuery(query, "/sparql/"); </pre> <h4>Output</h4> <p> Place the snippet above into the <script/> 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 "no-brainer installation and utilization" 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's Generic HTTP URI</a>. </li> </ul>
Introducing Virtuoso Universal Server (Cloud Edition) for Amazon EC2
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-11-28#1489
2008-11-28T19:27:12Z
2008-11-28T16:06:02.000006-05:00
<h3>What is it?</h3> <p>A pre-installed edition of <a href="http://virtuoso.openlinksw.com" id="link-id14bea838">Virtuoso</a> for Amazon's EC2 Cloud platform.</p> <h3>What does it offer?</h3> From a <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> Entrepreneur perspective it offers: <ol> <li> Low cost entry point to a game-changing Web 3.0+ (and beyond) platform that combines <a href="http://dbpedia.org/resource/SQL" id="link-id11309b38">SQL</a>, <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id135f7988">RDF</a>, XML, and Web Services functionality</li> <li> Flexible variable cost model (courtesy of <a href="http://aws.amazon.com/devpay/" id="link-id17941018">EC2 DevPay</a>) tightly bound to revenue generated by your services</li> <li> Delivers federated and/or centralized model flexibility for you SaaS based solutions</li> <li> Simple entry point for developing and deploying sophisticated database driven applications (SQL or RDF <a href="http://dbpedia.org/resource/Linked_Data" id="link-id14ea6b10">Linked Data Web</a> oriented)</li> <li> Complete framework for exploiting OpenID, OAuth (including Role enhancements) that simplifies exploitation of these vital Identity and <a href="http://dbpedia.org/resource/Data">Data</a> Access technologies</li> <li>Easily implement RDF Linked Data based Mail, Blogging, Wikis, Bookmarks, Calendaring, Discussion Forums, Tagging, Social-Networking as <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id11519928">Data Space</a> (data containers) features of your application or service offering</li> <li>Instant alleviation of challenges (e.g. service costs and agility) associated with <a href="http://dbpedia.org/resource/DataPortability" id="link-id111cb610">Data Portability</a> and Open Data Access across Web 2.0 data silos</li> <li> LDAP integration for <a href="http://dbpedia.org/resource/Intranet" id="link-id114a8270">Intranet</a> / <a href="http://dbpedia.org/resource/Extranet" id="link-id10fe4f08">Extranet</a> style applications.</li> </ol> <p>From the DBMS engine perspective it provides you with one or more pre-configured instances of Virtuoso that enable immediate exploitation of the following services:</p> <ol> <li> RDF Database (a Quad Store with <a href="http://dbpedia.org/resource/SPARQL" id="link-id11911bf8">SPARQL</a> & SPARUL Language & Protocol support)</li> <li> <a href="http://dbpedia.org/resource/SQL" id="link-id110544c8">SQL</a> Database (with <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id1524c7d0">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id14cfb658">JDBC</a>, OLE-DB, <a href="http://dbpedia.org/resource/ADO.NET" id="link-id110ec6c8">ADO</a>.NET, and XMLA driver access)</li> <li>XML Database (XML Schema, <a href="http://dbpedia.org/resource/XQuery" id="link-id10ebf218">XQuery</a>/<a href="http://dbpedia.org/resource/XPath" id="link-id142a7898">Xpath</a>, XSLT, Full Text Indexing)</li> <li>Full Text Indexing.</li> </ol> <p>From a Middleware perspective it provides:</p> <ol> <li> RDF Views (Wrappers / Semantic Covers) over SQL, XML, and other data sources accessible via SOAP or REST style Web Services</li> <li> Sponger Service for converting non RDF <a href="http://dbpedia.org/resource/Information" id="link-id11931c60">information</a> resources into RDF <a href="http://dbpedia.org/resource/Linked_Data" id="link-id118f7168">Linked Data</a> "on the fly" via a large collection of pre-installed RDFizer Cartridges.</li> </ol> <p>From the Web Server Platform perspective it provides an alternative to LAMP stack components such as <a href="http://dbpedia.org/resource/MySQL" id="link-id10f7b780">MySQL</a> and Apace by offering</p> <ol> <li> HTTP Web Server</li> <li> WebDAV Server</li> <li> Web <a href="http://dbpedia.org/resource/Application_server" id="link-id1268daa8">Application Server</a> (includes <a href="http://dbpedia.org/resource/PHP" id="link-id1585d238">PHP</a> runtime hosting)</li> <li> SOAP or REST style Web Services Deployment</li> <li> RDF Linked Data Deployment</li> <li> SPARQL (SPARQL Query Language) and SPARUL (SPARQL Update Language) endpoints</li> <li>Virtuoso Hosted PHP packages for <a href="http://dbpedia.org/resource/MediaWiki" id="link-id15568818">MediaWiki</a>, <a href="http://dbpedia.org/resource/Drupal" id="link-id110bd7a8">Drupal</a>, <a href="http://dbpedia.org/resource/WordPress" id="link-id10f66918">Wordpress</a>, and <a href="http://dbpedia.org/resource/PhpBB" id="link-id13fda4d0">phpBB3</a> (just install the relevant Virtuoso Distro. Package). </li> </ol> <p>From the general System Administrator's perspective it provides:</p> <ol> <li> Online Backups (Backup Set dispatched to S3 buckets, FTP, or HTTP/WebDAV server locations)</li> <li>Synchronized Incremental Backups to Backup Set locations</li> <li>Backup Restore from Backup Set location (without exiting to EC2 shell).</li> </ol> <p>Higher level user oriented offerings include:</p> <ol> <li>OpenLink Data Explorer front-end for exploring the burgeoning Linked Data <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id11646dc8">Web</a> </li> <li> Ajax based SPARQL Query Builder (iSPARQL) that enables SPARQL Query construction by Example</li> <li>Ajax based SQL Query Builder (QBE) that enables SQL Query construction by Example.</li> </ol> <p>For Web 2.0 / 3.0 users, developers, and entrepreneurs it offers it includes Distributed Collaboration Tools & Social Media realm functionality courtesy of <a href="http://dbpedia.org/resource/OpenLink_Data_Spaces" id="link-id11009930">ODS</a> that includes:</p> <ol> <li> Point of presence on the Linked Data Web that meshes your Identity and your Data via URIs</li> <li> System generated Social Network Profile & Contact Data via <a href="http://dbpedia.org/resource/Friend_of_a_friend" id="link-id1185a1c0">FOAF</a>?</li> <li> System generated <a href="http://dbpedia.org/resource/SIOC" id="link-id14791890">SIOC</a> (Semantically Interconnected Online Community) <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id1577cad8">Data Space</a> (that includes a Social Graph) exposing all your Web data in RDF Linked Data form</li> <li> System generated OpenID and automatic integration with FOAF</li> <li> Transparent Data Integration across Facebook, Digg, LinkedIn, FriendFeed, Twitter, and any other Web 2.0 data space equipped with RSS / Atom support and/or REST style Web Services</li> <li> In-built support for SyncML which enables data synchronization with Mobile Phones.</li> </ol> <h3>How Do I Get Going with It?</h3> <ul> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/ODSInstallationEC2" id="link-id114e1600">Standard Installation Guide</a> </li> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtEC2AMIDBpediaInstall" id="link-id110a98e8">Personal or Service Specific DBpedia Installation Guide</a> </li> </ul>
Where Are All the RDF-based Semantic Web Applications?
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-10-01#1447
2008-10-01T23:09:00Z
2008-10-02T15:27:41-04:00
<p> In response to the "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id15971040">Semantic Web</a> Technology" 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>"On the Fly" 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'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 "Find" 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'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>
Missing Bits from semanticweb.com Interview
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-06-13#1386
2008-06-13T02:02:56Z
2008-06-13T09:01:40.000003-04:00
<p>Yikes! I've just discovered that the final part of the semanticweb.com'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 "Literals" 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 "Explore <a href="http://dbpedia.org/resource/Data">Data</a>" Tab <a href="http://demo.openlinksw.com/rdfbrowser2/?uri%5B%5D=http%3A%2F%2Fmyopenlink.net%2Fdataspace%2Fkidehen&" id="link-id12116d10">My Linked Data Space</a> - viewed via OpenLink'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>
Virtuoso 5.0.2 Released!
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-10-06#1265
2007-10-06T16:03:49Z
2007-10-08T10:27:27-04:00
<p>A new release of Virtuoso is now available in both <a href="http://virtuoso.openlinksw.com/wiki/main/" id="link-id1282d260">Open Source</a> and <a href="http://virtuoso.openlinksw.com" id="link-id1317deb0">Commercial</a> variants. The main features and Enhancements associated with this release include:</p> <ul> * 64-bit Integer Support</ul> <ul> * RDF Sink Folders for WebDAV - enabling RDF Quad Store population by simply dropping RDF files into WebDAV or via HTTP (meaning you can use CURL as an RDF in put mechanism for instance)</ul> <ul>* Additional Sponger Cartridges from Audio binary files (i.e ID3 tag extraction and Music Ontology mapping which exposes the fine details of music as RDF based Structured Data; one for the DJs & Remixers out there!)</ul> <ul>* New Sponger Cartridges for Facebook, Freebase, Wikipedia, GRDDL, RDFa, eRDF and more</ul> <ul>* Support for PHP 5.2 runtime hosting (Virtuoso is a bona fide deployment platform for: Wordpress, MediaWiki, phpBB, Drupal etc.)</ul> <ul>* Enhanced UI for managing <a href="http://dbpedia.org/resource/Linked_Data" id="link-id12837b20">RDF Linked Data</a> deployment (covering Multi Homed domains, Virtual Directories associated with URL-rewrite rules</ul> <ul>* Demonstration Database includes <a href="http://www.openlinksw.com/virtuoso/Whitepapers/html/rdf_views/virtuoso_rdf_views_example.html" id="link-id130c2830">SQL-RDF Views </a>& SQL Table samples for the THALIA Web Data Integration benchmark and test-suite</ul> <ul>* Tutorial Application includes Linked Data style SQL-RDF Views for the Northwind SQL DBMS schema (which is the same as the standard Virtuoso demo atabase schema)</ul> <ul>* SQL-RDF Views implementation of the TPC-D benchmark (Yes, we can run this grueling SQL benchmark via RDF views of SQL Data!)</ul> <ul>* A new Amazon EC2 Image for Virtuoso that enables you to instantiate a fully configured instance comprising the Virtuoso core,<a href="http://virtuoso.openlinksw.com/wiki/main/Main/OdsIndex" id="link-id126c5eb8"> OpenLink Data Spaces</a> platform and the <a href="http://sourceforge.net/projects/oat" id="link-id1341cb68">OpenLink Ajax Toolkit</a> (OAT) (we now have bona fide Data Spaces in the Clouds as an addition to the emerging Semantic Data Web mesh).</ul> <p>Download Lnks: </p> <ul>* <a href="http://virtuoso.openlinksw.com/wiki/main/Main/VOSDownload" id="link-id12745128">Open Source Edition</a> </ul> <ul>* <a href="http://download.openlinksw.com/download/product_matrix.vsp?p=f_os&fm=26&fam=2&df=16" id="link-id12f15ed0">Commercial Edition</a> </ul>
Fourth Platform: Data Spaces in The Cloud (Update)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-09-22#1261
2007-09-22T23:43:00Z
2008-10-26T17:59:33-04:00
<p>I've written extensively on the subject of <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=data%20spaces&type=text&output=html" id="link-id134c2280">Data Spaces</a> in relation to the <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=data%20web%0D%0A&type=text&output=html" id="link-id105aef90">Data Web</a> for while. I've also written sparingly about <a href="http://virtuoso.openlinksw.com/wiki/main/Main/OdsIndex" id="link-id105bd100">OpenLink Data Spaces</a> (a Data Web Platform that build using Virtuoso). On the other hand, I haven't shed much light on installation and deployment of OpenLink Data Spaces.</p> <p> <a href="http://blog.jonudell.net" id="link-id14347f20">Jon Udell</a> recently penned a post titled: <a href="http://blog.jonudell.net/2007/09/21/the-fourth-platform/" id="link-id1439ed48">The Fourth Platform</a>. The post arrives at a spookily coincidental time (this happens quite often between Jon and I as demonstrated last year during our <a href="http://weblog.infoworld.com/udell/gems/ju_idehen.mp3" id="link-id107d17a8">podcast</a>; the "Fourth" in his Innovators Podcast series).</p> <p>The platform that Jon describes is "Cloud Based" and comprised of Storage and Computation. I would like to add Data Access and Management (native and virtual) under the fourth platform banner with the end product called: "Cloud based Data Spaces". </p> <p>As I write, we are releasing a Virtuoso AMI (Amazon Image) labeled: virtuoso-dataspace-server. This edition of<a href="http://virtuoso.openlinksw.com" id="link-id13543210"> Virtuoso</a> includes the OpenLink Data Spaces Layer and all of the OAT applications we've been developing for a while.</p> <h2>What Benefits Does this offer?</h2> <ol> <li>Personal Data Spaces in the Cloud - a place where you can control and consolidate data across your Blogs, Wikis, RSS/Atom Feed Subscriptions, Shared Bookmarks, Shared Calendars, Discussion Threads, Photo Galleries etc</li> <li>All the data in your Data <a href="http://en.wikipedia.org/wiki/Data_Spaces">Space</a> is <a href="http://dbpedia.org/resource/SPARQL" id="link-id1149a4f8">SPARQL</a> or <a href="http://dbpedia.org/resource/GData" id="link-id107a9f28">GData</a> accessible.</li> <li>All of the data in your Personal Data Space is <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a> from the get go. Each Item of data is <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier">URI</a> addressable</li> <li> <a href="http://dbpedia.org/resource/SIOC" id="link-id104f4160">SIOC</a> support - your Blogs, Wikis, Bookmarks etc.. are based on the SIOC ontology for Semantically Interlinking Online Communities (think: Open social-graph++) </li> <li> <a href="http://dbpedia.org/resource/Friend_of_a_friend" id="link-id105beb78">FOAF</a> support - your FOAF Profile page provides a URI that is an in-road to all Data in your Data Space.</li> <li> <a href="http://dbpedia.org/resource/OpenID" id="link-id1144e138">OpenID</a> support - your Personal Data Space ID is usable wherever OpenID is supported. OpenID and FOAF are integrated as per latest FOAF specs</li> <li>Two Integration with Facebook - You can access your Data Space from Facebook or access Facebook from your Data Space</li> <li>Unified Storage - The WebDAV based filesystem provides Cloud Storage that's integrated with Amazon S3; It also exposes all of your Data Space data via a traditional filesystem UI (think virtual Spotlight); You can also mount this drive to your local filesystem via your native operating system's WebDAV support</li> <li> <a href="http://dbpedia.org/resource/SyncML" id="link-id11128f48">SyncML</a> - you can sync calendar and contact details with your Data Space in the cloud from your Mobile phone.</li> <li>A practical Semantic Data Web solution - based on Web Infrastructure and doesn't require you to do anything beyond exposing URIs for data in your Data Spaces.</li> </ol> <h2> <a href="http://dbpedia.org/resource/Amazon_Elastic_Compute_Cloud" id="link-id115d1920">EC2</a>-AMI Details:</h2> <ul>AMI ID: ami-e2ca2f8b</ul> <ul>Manifest file: virtuoso-images/virtuoso-dataspace-server.manifest.xml</ul> <h2>Installation Guide:</h2> <ol> <li>Get an Amazon Web Services (AWS) account</li> <li>Signup for S3 and EC2 services</li> <li>Install the EC2 plugin for Firefox</li> <li>Start the EC2 plugin</li> <li>Locate the row containing <b>ami-7c31d515  Manifest virtuoso-test/virtuoso-cloud-beta-9-i386.manifest.xml </b>(sort using the AMI ID or Manifest Columns or search on pattern: virtuoso, due to name flux)</li> <li>Start the Virtuoso Data Space Server AMI</li> <li>Wait 4-5 minutes (*take a few minutes to create the pre-configured Linux Image*)</li> <li>Connect to http://<public_dns_name_of_your_instance>http://your-ec2-instance-cname:8890/ Log in with user/password dba/dba</public_dns_name_of_your_instance> </li> <li>Go to the Admin UI (Virtuoso Conductor) and change the PWDs for the 'dba' and 'dav' accounts (*Important!*)</li> <li>Give the "SPARQL" user "SPARQL_UPDATE" privileges (required if you want to exploit the in-built Sponger Middleware)</li> <li>Click on the <a href="http://dbpedia.org/resource/OpenLink_Data_Spaces">ODS</a> (OpenLink Data Spaces) link to start an Personal Editon of OpenLink Data Spaces (or go to: http://your-ec2-instance-cname/dataspace/ods/index.html)</li> <li>Log-in using the username and password credentials for the 'dav' account (or register a new user note: OpenID is an option here also) Create an Data Space Application Instance by clicking on a Data Space App. Tab</li> <li>Import data from your existing Web 2.0 style applications into OpenLink Data Spaces e.g. subscribe to a few RSS/Atom feeds via the "Feeds Manager" application or import some Bookmarks using the "Bookmarks" application</li> <li>Then look at the imported data in Linked Data form via your ODS generated URIs based on the patterns: http://your-ec2-instance-cname/dataspace/person/your-ods-id#this (URI for You the Person), http://your-ec2-instance-cname/dataspace/person/your-ods-id (FOAF File URI), http://your-ec2-instance-cname/dataspace/your-ods-id (SIOC File URI)<br /> </li> </ol> <h2> (OAT) from your Data Space instance</h2>Install the OAT VAD package via the Admin UI and then apply the URI patterns below within your browser:<br /> <ol> <li>http://<public_dns_name_of_your_instance>:8890/oatdemo - Entire OAT Demo Collection</public_dns_name_of_your_instance> </li> <li>http://<public_dns_name_of_your_instance>:8890/rdfbrowser - RDF Browser</public_dns_name_of_your_instance> </li> <li>http://<public_dns_name_of_your_instance>:8890/isparql - SPARQL Query Builder (iSPARQL)</public_dns_name_of_your_instance> </li> <li>http://<public_dns_name_of_your_instance>:8890/qbe - SQL Query Builder (iSQL)</public_dns_name_of_your_instance> </li> <li>http://<public_dns_name_of_your_instance>:8890/formdesigner - Forms Builder (for building Meshups based on RDF, SQL, or Web Servives Data Souces)</public_dns_name_of_your_instance> </li> <li>http://<public_dns_name_of_your_instance>:8890/dbdesigner - SQL DB Schema Designer (note a Visual SQL-RDF Mapper is also on it's way</public_dns_name_of_your_instance> </li> <li>http://<public_dns_name_of_your_instance>:8890/DAV/JS/ - To view the OAT Tree (there are some experimental demos that are missing from the main demo app etc..) </public_dns_name_of_your_instance> </li> </ol> <p>There's more to come!</p>
Yet Another RDFa Demo
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-09-03#1249
2007-09-03T17:59:02Z
2008-02-04T20:44:37.000009-05:00
<p> <a href="http://www.ivan-herman.net/Ivan_Herman">Ivan Herman</a> just posted another nice example of practical <a href="http://dbpedia.org/resource/RDFa">RDFa</a> usage in a blog post titled: <a href="http://ivanherman.wordpress.com/2007/09/03/yet-another-rdfa-processor…/">Yet Another RDFa Proccessor</a>. In his post, Ivan exposes a <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier">URI</a> for his<a href="http://www.ivan-herman.net/foaf.html"> FOAF-in-RDFa file</a>.</p> <p>Since I am <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1243">aggressively tracking RDFa developments</a>, I decided to quickly view <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/DataWeb/ivan_herman_foaf_via_rdfa.wqx">Ivan's FOAF-in-RDFa file via the OpenLink RDF Browser</a>. The full implications are best understood when you click on each of the Browser's Tabs -- each providing a different perspective on this interesting addition to the Semantic Data Web (note: the <a href="http://www.w3.org/2005/04/fresnel-info/">Fresnel</a> Tab which demonstrates declarative UI templating using N3).</p> <h3>What's Going on Here?</h3> <p>The <a href="http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html">OpenLink RDF Browser</a> is a <a href="http://en.wikipedia.org/wiki/Rich_internet_application">Rich Internet Application</a> built using OAT (<a href="http://oat.openlinksw.com">OpenLink Ajax Toolkit</a>). In my case, I am deploying the RDF Browser from a <a href="http://virtuoso.openlinksw.com">Virtuoso</a> instance, which implies that the Browser is able to use the <a href="http://www.openlinksw.com/blog/~kidehen/?id=1172">Virtuoso Sponger</a> Middleware (exposed as a REST Service at the Virtuoso instance endpoint: /proxy); which includes an RDFa Cartridge comprised of a metadata extractor and an <a href="http://dbpedia.org/resource/RDF_Schema">RDF Schema</a> / <a href="http://dbpedia.org/resource/Web_Ontology_Language">OWL Ontology</a> mapper. That's it!</p>
The Power of Structured Data Exposure via RDFa
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-08-23#1243
2007-08-23T22:41:36Z
2008-02-04T20:45:02.000004-05:00
I regularly check announcement from <a href="http://ben.adida.net/">Ben Adida</a> re. <a href="http://dbpedia.org/page/RDFa">RDFa</a> as part of a perpetual certification process for my ODS based Weblog. The most recent post from Ben contains a link to an "<a href="http://rdfa.info/rdfa-in-the-wild/">RDFa in the Wild</a>" portal (in the making).<br /> <br />One I installed Opertaor 0.8 and then scanned a few of the pages from the RDFa portal. <a href="http://www.kaply.com/operator/operator.xpi">Operator 0.8</a> didn't do much for me i.e. if the RDFa didn't express RDF aligned in some form to a microformat that it understood, it simply routed it's findings to a generic "resource" category :-( Of course, it is possible to enhance this aspect of Operator (and I may get round to that some day). Anyway, I pressed on, and took one of the more interesting URIs from the RDFa page and pasted that into the OpenLink RDF Browser instead. Here are the links:<br /> <br />1. <a href="http://seal.ifi.unizh.ch/%7Emhermann/pax/web/index.php/publication/rdfalist%20">Semantically annotated publication database using Ajax</a> (a page containing structured data expressed in RDF and exposed via RDFa)<br /> <br />2. <a href="http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html?uri=http%3A%2F%2Fseal.ifi.unizh.ch%2F%7Emhermann%2Fpax%2Fweb%2Findex.php%2Fpublication%2Frdfalist">Same Page via OpenLink RDF Browser<br /> </a> <br />The RDF Browser uses the <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=sponger&type=text&output=html">Virtuoso Sponger</a> to extract the embedded <a href="http://dbpedia.org/page/RDF">RDF</a> from RDFa embedded in the page.
OpenLink Ajax Toolkit (OAT) 2.6 Released!
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-08-01#1238
2007-08-01T18:34:07Z
2007-08-01T14:49:17-04:00
<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'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>
Semantic Web Data Spaces
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-04-13#1185
2007-04-13T21:15:54Z
2007-04-13T18:19:29.000001-04:00
<b>Web Data Spaces</b> <p>Now that broader understanding of the Semantic Data Web is emerging, I would like to revisit the issue of "<a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q='data%20spaces'&type=text&output=html">Data Spaces</a>".</p> <p>A Data Space is a place where Data Resides. It isn't inherently bound to a specific Data Model (<a href="http://en.wikipedia.org/wiki/Network_model">Concept Oriented</a>, <a href="http://en.wikipedia.org/wiki/Relational_model">Relational</a>, <a href="http://en.wikipedia.org/wiki/Hierarchical_database">Hierarchical</a> etc..). Neither is it implicitly an access point to Data, Information, or Knowledge (the perception is purely determined through the experiences of the user agents interacting with the Data Space.</p> <p>A Web Data Space is a Web accessible Data Space.</p> <p>Real world example:</p> <p>Today we increasing perform one of more of the following tasks as part of our professional and personal interactions on the Web:</p> <ol> <li>Blog via many service providers or personally managed weblog platforms</li> <li>Create Event Calendars via <a href="http://upcoming.com">Upcoming.com</a> and <a href="http://eventful.com">Eventful</a> </li> <li>Maintain and participate in Social Networks (e.g. <a href="http://facebook.com">Facebook</a>, <a href="http://orkut.com">Orkut</a>, <a href="http://myspace.com">MySpace</a>)</li> <li>Create and Participate in Discussions (note: when you comment on blogs or wikis for instance, you are participating in, or creating, a conversation)</li> <li>Track news by subscribing to <a href="http://web.resource.org/rss/1.0/">RSS 1.0</a>, <a href="http://cyber.law.harvard.edu/rss/rss.html">RSS 2.0</a>, or <a href="http://en.wikipedia.org/wiki/Atom_(standard)">Atom</a> Feeds</li> <li>Share Bookmarks & Tags via <a href="http://del.icio.us">Del.icio.us</a> and other Services</li> <li>Share Photos via <a href="http://flickr.com">Flickr</a> </li> <li>Buy, Review, or Search for books via <a href="http://amazon.com">Amazon</a> </li> <li>Participates in auctions via <a href="http://ebay.com">eBay</a> </li> <li>Search for data via <a href="http://google.com">Google</a> (of course!)</li> </ol> <p> <a href="http://www.johnbreslin.com/">John Breslin</a> has nice a <a href="http://www.johnbreslin.com/blog/wp-content/20051015a.gif">animation depicting the creation of Web Data Spaces</a> that drives home the point.</p> <b>Web Data Space Silos</b> <p> Unfortunately, what isn't as obvious to many netizens, is the fact that each of the activities above results in the creation of data that is put into some context by you the user. Even worse, you eventually realize that the service providers aren't particularly willing, or capable of, giving you unfettered access to your own data. Of course, this isn't always by design as the infrastructure behind the service can make this a nightmare from security and/or load balancing perspectives. Irrespective of cause, we end up creating our own "Data Spaces" all over the Web without a coherent mechanism for accessing and meshing these "Data Spaces".</p> <b>What are Semantic Web Data Spaces?</b> <p>Data Spaces on the Web that provide granular access to RDF Data.</p> <b>What's OpenLink Data Spaces (ODS) About?</b> <blockquote> <p>Short History</p> <p>In anticipation of this the "Web Data Silo" challenge (an issue that we tackled within internal enterprise networks for years) we commenced the development (circa. 2001) of a distributed collaborative application suite called OpenLink Data Spaces (ODS). The project was never released to the public since the problems associated with the deliberate or inadvertent creation of Web Data silos hadn't really materialized (silos only emerged in concreted form after the emergence of the Blogosphere and Web 2.0). In addition, there wasn't a clear standard Query Language for the RDF based Web Data Model (i.e. the SPARQL Query Language didn't exist).</p> </blockquote> <p> Today, ODS is delivered as a packaged solution (in Open Source and Commercial flavors) that alleviates the pain associated with Data Space Silos that exist on the Web and/or behind corporate firewalls. In either scenario, ODS simply allows you to create Open and Secure Data Spaces (via it's suite of applications) that expose data via SQL, RDF, XML oriented data access and data management technologies. Of course it also enables you to integrates transparently with existing 3rd party data space generators (Blogs, Wikis, Shared Bookmrks, Discussion etc. services) by supporting industry standards that cover:</p> <ol> <li> Content Publishing - Atom, <a href="http://www.sixapart.com/developers/product_documentation/movable_type/">Moveable Type</a>, <a href="http://www.xmlrpc.com/metaWeblogApi">MetaWeblog</a>, Blogger protocols </li> <li> Content Syndication Formats - RSS 1.0, RSS 2.0, Atom, OPML etc. </li> <li> Data Management - <a href="http://en.wikipedia.org/wiki/SQL">SQL</a>, <a href="http://www.w3.org/RDF/">RDF</a>, XML, Free Text </li> <li> Data Access - SQL, <a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL</a>, GData, Web Services (SOAP or REST styles), WebDAV/HTTP </li> <li> Semantic Data Web Middleware - <a href="http://www.w3.org/2004/01/rdxh/spec">GRDDL</a>, <a href="http://www.w3.org/TR/xslt">XSLT</a>, SPARQL, XPath/XQuery, HTTP (Content Negotiation) for producing RDF from non RDF Data ((X)HTML, Microformats, XML, Web Services Response Data etc). </li> </ol> <p>Thus, by installing ODS on your Desktop, Workgroup, Enterprise, or public Web Server, you end up with a very powerful solution for creating Open Data access oriented presence on the "Semantic Data Web" without incurring any of the typically assumed "RDF Tax".</p> <p>Naturally, ODS is built atop <a href="http://virtuoso.openlinksw.com">Virtuoso</a> and of course it exploits Virtuoso's feature-set to the max. It's also beginning to exploit functionality offered by the OpenLink Ajax Toolkit (<a href="http://demo.openlinksw.com/DAV/JS/demo/index.html">OAT</a>).</p>
More Ajax Security
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-04-04#1177
2007-04-04T12:16:21Z
2007-04-04T19:49:07.000003-04:00
<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>
RDF Browsers & RDF Data Middleware
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-03-28#1172
2007-03-28T23:17:00Z
2007-04-29T14:59:05-04:00
<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'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 "Web Content".).</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'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&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's RDF Data (Triples) extractions from Dan Connolly'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's RDF Data (Triples) extractions from Dan Connolly'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&"">Permalink for Triplr's RDF Data (Triples) extractions from Dan Connolly'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's RDF Data (Triples) extractions from Dan Connolly's Home Page</a> </li> </ol>
Data Web, Googlebase, and Yahoo!
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-03-22#1165
2007-03-22T23:04:21Z
2007-03-22T19:14:55-04:00
<p>A defining characteristic of the Data Web (Context Oriented Web 3.0) is that it facilitates Meshups rather than Mashups.</p> <p>Quick Definitions:</p> <ul> Mashups - Brute force joining of disparate Web Data</ul> <ul> Meshups - Natural joining of disparate Web Data </ul> <p> Reasons for the distinction:</p> <ul>Mashups are Data Model oblivious.</ul> <ul>Meshups are Data Model driven.</ul> <p>Examples:</p> <ul> Mashups are based on RSS 2.0 most of the time (RSS 2.0 is at best a Tree Structure that contains untyped or meaning challenged links.</ul> <ul> Meshups are RDF based and the data is self describing since the links are typed (posses inherent meaning thereby providing context).</ul> <p>So what? You may be thinking.</p> <p>For starters, I can quite easily Mesh data from Googlebase (which emits RSS 2.0 or Atom) and other data sources with the Mapping Services from Yahoo!</p> <p>I can achieve this in minutes without writing a single line of code. I can do it because of the Data Model prowess of RDF (self-describing instance-data), the data interchange and transformation power of XML and XSLT respectively, the inherent power of XML based Web Services (REST or SOAP), and of course, having a Hybrid Server product like <a href="http://en.wikipedia.org/wiki/Virtuoso_Universal_Server">Virtuoso</a> at my disposal that delivers a cross platform solution for exploiting all of these standards coherently.</p> <p>I can share the self-describing describing data source that serves my Meshup. Try reusing the data presented by a Mashup via the same URL that you used to locate Mashup to get my drift.</p> <p>Demo Links:</p> <ol> <li> <a href="http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html#http%3A%2F%2Fdemo.openlinksw.com%2FDAV%2Fhome%2Fdemo%2FPublic%2FQueries%2FDataWeb%2Fgoogle_base_jobs_dataspace.isparql">Googlebase Query URL as an RDF Data Source</a> </li> <li>Perform a simple Data Mesh by adding (via link copy and paste) this <a href="http://upcoming.org/search/?q=ajax&scope=allmetros&type=Events">Upcoming.org Query Services URL for Ajax Events</a> to the RDF Browsers list of Data Sources (paste into the Data Source URI input field).</li> </ol> <p>What does this all mean?</p> <p>"Context" is the catalyst of the burgeoning Data Web (Semantic Web Layer - 1). It's the <a href="http://sramanamitra.com/blog/729">emerging appreciation of "Context"</a> that is driving the growing desire to increment Web versions from 2.0 to 3.0. It also the the very same "Context" that has been a preoccupation of <a href="http://www.w3.org/2001/sw/Activity">Semantic Web vision</a> since its inception.</p> <p>The journey towards a more Semantic Web is all inclusive (all "ANDs" and no "ORs" re. participation).</p> <p>The Semantic Web is <a href="http://www.openlinksw.com/blog/~kidehen/?id=887">self-annotating</a>. Web 2.0 has provided a huge contribution to the self annotation effort: on the Web we now have Data Spaces for Bookmarks (e.g del.icio.us), Image Galleries ( e.g Flickr), Discussion Forums (remember those comments associated with blog posts? ditto the pingbacks and trackbacks?), People Profiles (FOAF, XFN, del.icio.us, and those crumbling walled-gardens around many Social Networks), and more..</p> <p>A Web without granular access to Data is simply not a Web worth having (think about the menace of click-fraud and spam).</p>
Personal URIs & Data Spaces
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-03-01#1148
2007-03-01T19:42:41Z
2007-03-02T09:14:02.000004-05:00
<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>: "</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" <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>'s post about: <a href="http://blogs.sun.com/bblfish/entry/openid_for_blogs_sun_com">The Many Uses of OpenID</a>). That that'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>'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'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'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>'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'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>'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's permalink is a bona fide dereferencable URI.</li> </ol> <p>And of course there is more to come such as Grandma'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>
Using The Data Web to Research Oscar Winners
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-02-26#1146
2007-02-26T17:36:40Z
2007-02-27T00:29:02-05:00
<p>Situation Analysis: Pre or Post Oscars, you want to research Forest Whitaker, Helen Mirren, or Jennifer Hudson. What do you do? Go on a screen scrapping and keyword regular expression odyssey? Or you simply lookup a Data Web oriented Data Source like <a href="http://dbpedia.org">dbpedia</a>.</p> <p>Here is what I was I was able to knock together using my <a href="http://demo3.openlinksw.com:8890/isparql">SPARQL QBE</a> (without writing the SPARQL by hand):</p> <ol> <li> <a href="http://demo3.openlinksw.com:8890/DAV/home/demo/Forest_Whitaker_DataSpace.isparql.xml">Forest Whitaker Data</a> </li> <li> <a href="http://demo3.openlinksw.com:8890/DAV/home/demo/Helen_Mirren_DataSpace.isparql.xml">Helen Mirren Data</a> </li> <li> <a href="http://demo3.openlinksw.com:8890/DAV/home/demo/Jennifer_Hudson_DataSpace.isparql.xml">Jennifer Hudson Data</a>. </li> </ol> <p>Note: Just select the "Explore" option when the link-lookup window appears in response to you clicking on any of the links. That said, if you are using the <a href="https://addons.mozilla.org/firefox/190/">Firefox Linkification</a> extension the page will not work properly (as per this <a href="http://www.beggarchooser.com/forum/index.php?topic=37.0">discussion about disabling Linkification</a>) :-(</p> <p>BTW - I have a comments page, so don't be shy about showing me how you could produce this kind of data driven web page much quicker than I have :-)</p> <p>Warning: IE6 and Safari (use <a href="http://webkit.org/">Webkit</a> instead) cannot process these pages due to the use of Ajax.</p>
Hello Data Web (Take 3 - Feel The "RDF" Force)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-02-24#1144
2007-02-24T21:43:39Z
2007-02-24T17:01:28-05:00
<p>As I have stated, and implied, in various posts about the Data Web and burgeoning Semantic Web in general; the value of RDF is felt rather than seen (driven by presence as opposed to web sites). That said, it is always possible to use the visual Interactive-Web dimension (Web 1.0) as a conduit to the Data-Web dimension.</p> <p>In this third take on my introduction to the Data Web I would like to share a link with you (a Dynamic Start Page in Web 2.0 parlance) with a Data Web twist: You do not have to preset the Start Page Data Sources (this is a small-big thing, if you get my drift, hopefully!).</p> <p>Here are some Data Web based Dynamic Start Pages that I have built for some key play ers from the Semantic Web realm (in random order):</p> <ol> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/danbri_dataspace.isparql.xml">Dan Brickley</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/timbl_dataspace.isparql.xml">Tim Berners-Lee</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/danc_dataspace.isparql.xml">Dan Connolly</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/danja_dataspace.isparql.xml">Danny Ayers</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/planet_rdf_dataspace.isparql.xml">Planet RDF</a> </li> </ol> <p>"These are RDF prepped Data Sources....", you might be thinking, right? Well here is the reminder: <a href="http://www.openlinksw.com/blog/~kidehen/?id=1122">The Data Web is a Global Data Generation and Integration Effort</a>. Participation may be active (Semantic Web & Microformats Community), or passive (web sites, weblogs, wikis, shared bookmarks, feed subscription, discussion forums, mailing lists etc..). Irrespective of participation mode, RDF instance can be generated from close to anything (I say this because I plan to add binary files holding metadata to this mix shortly). Here are examples of Dynamic Start Pages for non RDF Data Sources:</p> <ol> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/delicious_web20_events_dataspace.isparql.xml">del.icio.us Web 2.0 Events Bookmarks</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/vecosys_dataspace.isparql.xml">Vecosys</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/techcrunch_dataspace.isparql.xml">Techcrunch</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/jonudell_dataspace.isparql.xml">Jon Udell's Blog</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/davewiner_dataspace.isparql.xml">Dave Winer's Scripting News</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/scobelizer_dataspace.isparql.xml">Robert Scoble's Blog</a> </li> </ol> <p>what about Microformats you may be wondering? Here goes:</p> <ol> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/microformats_dataspace.isparql.xml">Microformats Wiki</a> (click on the Brian Suda link for instance) </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/planet_microformats_dataspace.isparql.xml">Microformats Planet</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/delicious_microformats_dataspace.isparql.xml">Del.icio.us Microformats Bookmarks</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/ben_adida_dataspace.isparql.xml">Ben Adida's home page</a> (RDFa)</li> </ol> <p>Let's carry on.</p> <p>How about some traditional Web Sites? Here goes:</p> <ol> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/openlink_dataspace.isparql.xml">OpenLink Software's Home Page</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/oracle_dataspace.isparql.xml">Oracle's Home Page</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/apple_dataspace.isparql.xml">Apple's Home Page</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/microsoft_dataspace.isparql.xml">Microsoft's Home Page</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/ibm_dataspace.isparql.xml">IBM's Home Page</a> </li> </ol> <p>And before I forget, here is <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/kidehen_dataspace.isparql.xml">My Data Web Start Page </a>.</p> <p>Due to the use of Ajax in the Data Web Start Pages, IE6 and Safari will not work. For Mac OS X users, Webkit works fine. Ditto re. IE7 on Windows.</p>
Hello Data Web!
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-02-08#1134
2007-02-08T19:13:48Z
2008-02-04T23:22:04.000001-05:00
<p>The simple demo use our Ajax based Visual Query Builder for the SPARQL Query Language (this isn't Grandma's Data Web UI, but not to worry, that is on it's way also). Here goes:</p> <ol> <li> go to http://demo.openlinksw.com/isparql </li> <li> Enter any of the following values into the "Default Data URI"; field: </li> <ul>- http://www.mkbergman.com/?p=336</ul> <ul>- http://radar.oreilly.com/archives/2007/02/pipes_and_filte.html</ul> <ul>- http://jeremy.zawodny.com/blog/archives/008513.html</ul> <ul>- Other URIs </ul> </ol> <p> What I am demonstrating is how existing Web Content hooks transperently into the <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=data%20web&type=text&output=html">"Data Web"</a>. Zero RDF Tax :-) Everything is good!</p> <p>Note: Please look to the bottom of the screen for the "Run Query" Button. Remember, it not quite Grandma's UI but should do for Infonauts etc.. A screencast will follow.</p>
OAT: OpenAjax Alliance Compliant Toolkit (Live Links Version)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-01-29#1129
2007-01-29T16:16:14Z
2007-02-02T10:29:55-05:00
<blockquote> <p> <a href="http://ajaxian.com/archives/oat-openajax-alliance-compliant-toolkit">OAT: OpenAjax Alliance Compliant Toolkit</a>: "</p> <p>Ondrej Zara and his team at Openlink Software have created a Openlink Software JS Toolkit, known as OAT. It is a full-blown JS framework, suitable for developing<br /> rich applications with special focus to data access.</p> <p>OAT works standalone, offers vast number of widgets and has some rarely seen features, such as on-demand library loading (which reduces the total amount of downloaded JS code).</p> <p>OAT is one of the first JS toolkits which show full OpenAjax Alliance conformance: see the appropriate <a href="http://www.openajax.org/member/wiki/InteropFest_2007_March)">wiki page</a> and <a href="http://demo.openlinksw.com/DAV/JS/openajax/HubTest-OATConformance.html">conformance test page</a>.</p> <p>There is a lot to see with this toolkit:</p> <p>You can see some of the widgets in a <a href="http://demo.openlinksw.com/DAV/JS/demo/index.html">Kitchen sink application</a> </p> <p>Sample data access applications:</p> <ul> <li> <a href="http://demo.openlinksw.com/DAV/JS/qbe/index.html">SQL Query By Example</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/JS/formdesigner/index.html">Forms designer</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/JS/designer/index.html">DB Designer</a> </li> </ul> <p>OAT is Open Source and GPLâed over at <a href="http://sourceforge.net/project/showfiles.php?group_id=168143">sourceforge</a> and the team has recently managed to incorporate our OAT data access layer as a<br /> module to <a href="http://demo.openlinksw.com/DAV/JS/dojo-oatstore-demo/test_OATStore_in_FilteringTable.html">dojo datastore</a>.</p> <p>(Via <a href="http://ajaxian.com">Ajaxian Blog</a>.)</p> </blockquote> <p>This is a corrected version of the initial post. Unfortunately, the initial post was inadvertently littered with invalid links :-( Also, since the original post we have released <a href="http://sourceforge.net/mailarchive/forum.php?thread_id=31568932&forum_id=49207">OAT 1.2</a> that includes integration of our iSPARQL QBE into the OAT Form Designer application.</p> <p>Re. Data Access, It is important to note that OAT's Ajax Database Connectivity layers supports data binding to the following data source types:</p> <ol> <li> <a href="http://www.w3.org/TR/rdf-primer/">RDF</a> - via <a href="http://demo.openlinksw.com/DAV/JS/demo/index.html?dav">SPARQL</a> (Query Language, Protocol, and Resultset Serialization formats: <a href="http://en.wikipedia.org/wiki/JDBC">RDF/XML</a>, <a href="http://www.w3.org/DesignIssues/Notation3">RDF/N3</a>, <a href="http://www.dajobe.org/2004/01/turtle/">RDF/Turtle</a>, <a href="http://en.wikipedia.org/wiki/XML">XML</a>, and <a href="http://www.json.org/">JSON</a>)</li> <li> <a href="http://en.wikipedia.org/wiki/SQL">SQL</a> - via <a href="http://www.xmla.org/faq.asp">XMLA</a> (somewhat forgotten <a href="http://en.wikipedia.org/wiki/SOAP">SOAP</a> protocol for SQL Data Access that can sit atop <a href="http://en.wikipedia.org/wiki/Open_Database_Connectivity">ODBC</a>, <a href="http://en.wikipedia.org/wiki/ADO.NET">ADO.NET</a>, <a href="http://en.wikipedia.org/wiki/OLE_DB">OLE-DB</a>, and even <a href="http://en.wikipedia.org/wiki/JDBC">JDBC</a>)</li> <li>XML - via SOAP or <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">REST</a> style Web Services</li> </ol> In all cases, OAT also provides Data Aware controls for the above that include: <ol> <li> <a href="http://demo.openlnksw.com/DAV/JS/demo/index.html?grid">Tabular Grids</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/JS/demo/index.html?pivot">Pivot Tables</a> </li> <li> <a href="http://demo.openlnksw.com/DAV/JS/demo/index.html?timeline">TimeLines</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/JS/demo/index.html?anchor">Extended Anchor Tags</a> </li> <li> <a href="http://demo.openlnksw.com/DAV/JS/demo/index.html?mashups">Map Service Controls</a> (Google, Yahoo!, OpenLayers, Microsoft Visual Earth)</li> <li> <a href="http://demo.openlinksw.com/DAV/JS/demo/index.html?rdf">SVG based RDF Graph Control</a> (Opera 9.x provides best viewing experience at the current time)</li> </ol> <p>OAT also includes a number of prototype applications that are completely developed using OAT Controls and Libraries:</p> <ol> <li> <a href="http://demo.openlnksw.com/isparql/">Visual SPARQL Query Builder</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/JS/qbe/index.html">Visual SQL Query Builder</a> </li> <li> <a href="http://demo.openlinksw.com/DAV/JS/formdesigner/index.html">Web Forms Designer</a> (includes Drag-Drop usage of Data Aware Controls etc.)</li> <li> <a href="http://demo.openlinksw.com/DAV/JS/designer/index.html">Visual DB Designer</a> </li> </ol> <p>Note: Pick "Local DSN" from page initialization dialog's drop-down list control when prompted</p>
SPARQL, Ajax, Tagging, Folksonomies, Share Ontologies and Semantic Web
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-12-07#1095
2006-12-07T17:35:29Z
2006-12-13T15:09:50-05:00
<p>A quick dump that demonstrates how I integrate tags and links from del.icio.us with links from my local bookmark database via one of my public Data Spaces (this demo uses the <a href="http://myopenlink.net:8890/dataspace/kidehen">kidehen Data Space</a>).</p> <p> <a href="http://www.w3.org/TR/rdf-sparql-query/">SPARQL</a> (query language for the Semantic Web) basically enables me to query a collection of typed links (predicates/properties/attributes) in my Data Space (<a href="http://virtuoso.openlinksw.com/wiki/main/Main/OdsIndex">ODS</a> based of course) without breaking my existing local bookmarks database or the one I maintain at del.icio.us.</p> <p>I am also demonstrating how <a href="http://en.wikipedia.org/wiki/Web_2.0">Web 2.0</a> concepts such as <a href="http://en.wikipedia.org/wiki/Tags">Tagging</a> mesh nicely with the more formal concepts of Topics in the Semantic Web realm. The key to all of this is the ability to generate <a href="http://www.w3.org/TR/rdf-primer/">RDF Data Model</a> Instance Data based on <a href="http://en.wikipedia.org/wiki/Upper_ontology_(computer_science)">Shared Ontologies</a> such as <a href="http://rdfs.org/sioc/spec/">SIOC</a> (from <a href="http://www.semanticweb.org/">DERI</a>'s <a href="http://sioc-project.org/">SIOC Project</a>) and <a href="http://www.w3.org/2004/02/skos/">SKOS</a> (again showing that <a href="http://tomgruber.org/writing/ontology-of-folksonomy.htm">Ontologies and Folksonomies</a> are complimentary).</p> <p>This demo also shows that Ajax also works well in the Semantic Web realm (or <a href="http://www.openlinksw.com/blog/~kidehen/?id=1037">web dimension of interaction 3.0</a>) especially when you have a toolkit with Data Aware controls (for SQL, RDF, and XML) such as OAT (<a href="http://demo.openlinksw.com/DAV/JS/demo/index.html">OpenLink Ajax Toolkit</a>). For instance, we've successfully used this to build a <a href="http://myopenlink.net:8890/isparl/">Visual Query Building Tool for SPARQL</a> (alpha) that really takes a lot of the pain out of constructing SPARQL Queries (there is much more to come on this front re. handling of DISTINCT, FILTER, ORDER BY etc..). </p> <p>For now, take a look at the SPARQL Query dump generated by this <a href="http://myopenlink.net:8890/DAV/home/kidehen/gallery/my_photos/sparql_qbe_sioc_skos_shot1.png">SIOC & SKOS SPARQL QBE Canvas Screenshot</a>. </p> <p>You can cut and paste the queries that follow into the Query Builder or use the screenshot to build your variation of this query sample. Alternatively, you can simply click on *<a href="http://myopenlink.net:8890/sparql?default-graph-uri=http%3A%2F%2Fmyopenlink.net%2Fdataspace&query=PREFIX+rdf%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F1999%2F02%2F22-rdf-syntax-ns%23%3E%0D%0APREFIX+sioc%3A+++%3Chttp%3A%2F%2Frdfs.org%2Fsioc%2Fns%23%3E%0D%0APREFIX+dct%3A+%3Chttp%3A%2F%2Fpurl.org%2Fdc%2Felements%2F1.1%2F%3E%0D%0APREFIX+skos%3A+%3Chttp%3A%2F%2Fwww.w3.org%2F2004%2F02%2Fskos%2Fcore%23%3E%0D%0A%0D%0ASELECT+distinct+%3Fforum_name%2C+%3Fowner%2C+%3Fpost%2C+%3Ftitle%2C+%3Flink%2C+%3Furl+%3Ftag%0D%0AFROM+%3Chttp%3A%2F%2Fmyopenlink.net%2Fdataspace%3E%0D%0AWHERE+%7B%0D%0A++++++++%3Fforum+a+sioc%3AForum.%0D%0A++++++++%3Fforum+sioc%3Atype+%22bookmark%22.%0D%0A++++++++%3Fforum+sioc%3Aid+%3Fforum_name.%0D%0A++++++++%3Fforum+sioc%3Ahas_member+%3Fowner.%0D%0A++++++++%3Fowner+sioc%3Aid+%22kidehen%22.%0D%0A++++++++%3Fforum+sioc%3Acontainer_of+%3Fpost+.%0D%0A++++++++%3Fpost++dct%3Atitle+%3Ftitle+.%0D%0A++++++++optional+%7B+%3Fpost+sioc%3Atopic+%3Ftopic.%0D%0A+++++++++++++++++++%3Ftopic+a+skos%3AConcept%3B%0D%0A+++++++++++++++++++++++++skos%3AprefLabel+%3Ftag.+%7D%0D%0A++++++++optional%7B+%3Fpost+sioc%3Alink+%3Flink++%7D+.%0D%0A++++++++optional%7B+%3Fpost+sioc%3Alinks_to+%3Furl+%7D%0D%0A++++++%7D%0D%0AORDER+BY+%3Ftitle&format=text%2Fhtml">This</a>* <a href="http://www.w3.org/TR/rdf-sparql-protocol/">SPARQL Protocol</a> URL to see the query results in a basic HTML Table. And one last thing, you can grab the <a href="http://myopenlink.net:8890/DAV/home/kidehen/SPARQL/tagging_sioc_skos_delicios_my_bookmarks.rq">SPARQL Query File</a> saved into my <a href="http://virtuoso.openlinksw.com/wiki/main/Main/OdsBriefcase">ODS-Briefcase</a> (the <a href="http://en.wikipedia.org/wiki/WebDAV">WebDAV</a> repository aspect of my Data Space). </p> <p> <b>Note the following SPARQL Protocol Endpoints:</b> </p> <ol> <li> <a href="http://myopenlink.net:8890/sparql/">MyOpenLink Data Space</a> </li> <li> <a href="http://myopenlink.net:8890/isparql/">Experimental Data Space SPARQL Query Builder</a> (you need to register at http://myopenlink.net:8890/ods to use this version)</li> <li> <a href="http://demo.openlinksw.com/sparql/">Live Demo Sever</a> </li> <li> <a href="http://demo.openlinksw.com/isparql/">Demo Server SPARQL Query Builder</a> (use: demo for both username and pwd when prompted)</li> </ol> <p>My beautified Version of the SPARQL Generated by QBE (you can cut and paste into "Advanced Query" section of QBE) is presented below:</p> <pre> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX sioc: <http://rdfs.org/sioc/ns#> PREFIX dct: <http://purl.org/dc/elements/1.1/> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> <br /> SELECT distinct ?forum_name, ?owner, ?post, ?title, ?link, ?url, ?tag FROM <http://myopenlink.net/dataspace> WHERE { ?forum a sioc:Forum; sioc:type "bookmark"; sioc:id ?forum_name; sioc:has_member ?owner. ?owner sioc:id "kidehen". ?forum sioc:container_of ?post . ?post dct:title ?title . optional { ?post sioc:link ?link } optional { ?post sioc:links_to ?url } optional { ?post sioc:topic ?topic. ?topic a skos:Concept; skos:prefLabel ?tag}. } </pre> <p>Unmodified dump from the QBE (this will be beautified automatically in due course by the QBE):</p> <pre> PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> PREFIX sioc: <http://rdfs.org/sioc/ns#> PREFIX dct: <http://purl.org/dc/elements/1.1/> PREFIX skos: <http://www.w3.org/2004/02/skos/core#> <br /> SELECT ?var8 ?var9 ?var13 ?var14 ?var24 ?var27 ?var29 ?var54 ?var56 WHERE { graph ?graph { ?var8 rdf:type sioc:Forum . ?var8 sioc:container_of ?var9 . ?var8 sioc:type "bookmark" . ?var8 sioc:id ?var54 . ?var8 sioc:has_member ?var56 . ?var9 rdf:type sioc:Post . OPTIONAL {?var9 dc:title ?var13} . OPTIONAL {?var9 sioc:links_to ?var14} . OPTIONAL {?var9 sioc:link ?var29} . ?var9 sioc:has_creator ?var37 . OPTIONAL {?var9 sioc:topic ?var24} . ?var24 rdf:type skos:Concept . OPTIONAL {?var24 skos:prefLabel ?var27} . ?var56 rdf:type sioc:User . ?var56 sioc:id "kidehen" . } } </pre> <p> Current missing items re. Visual QBE for SPARQL are:</p> <ol> <li> Ability to Save properly to WebDAV so that I can then expose various saved SPARQL Queries (.rq file) from my Data Space via URIs </li> <li> Handling of DISTINCT, FILTERS (note: OPTIONAL is handled via dotted predicate-links) </li> <li>General tidying up re. click event handling etc. </li> </ol> Note: You can even open up your own account (using our <a href="http://demo.openlinksw.com/ods">Live Demo</a> or <a href="http://myopenlink.net:8890/ods">Live Experiment Data</a> Space servers) which enables you to repeat this demo by doing the following (post registration/sign-up): <ol> <li>Export some bookmarks from your local browser to the usual HTML bookmarks dump file</li> <li>Create an ODS-Bookmarks Instance using your new ODS account</li> <li>Use the ODS-Bookmark Instance to import your local bookmarks from the HTML dump file</li> <li>Repeat the same import sequence using the ODS-Bookmark Instance, but this time pick the del.icio.us option</li> <li>Build your query (change 'kidehen' to your ODS-user-name)</li> <li>That's it you now have Semantic Web presence in the form of a Data Space for your local and del.icio.us hosted bookmarks with tags integrated</li> </ol> <p>Quick Query Builder Tip: You will need to import the following (using the Import Button in the Ontologies & Schemas side-bar); </p> <ol> <li> <a href="http://www.w3.org/1999/02/22-rdf-syntax-ns#">http://www.w3.org/1999/02/22-rdf-syntax-ns#</a> (<a href="http://www.w3.org/TR/rdf-primer/">RDF</a>)</li> <li> <a href="http://rdfs.org/sioc/ns#">http://rdfs.org/sioc/ns#</a> (<a href="http://rdfs.org/sioc/spec/">SIOC</a>)</li> <li> <a href="http://purl.org/dc/elements/1.1/">http://purl.org/dc/elements/1.1/</a> (<a href="http://dublincore.org/">Dublin Core</a>)</li> <li> <a href="http://www.w3.org/2004/02/skos/core#">http://www.w3.org/2004/02/skos/core#</a> (<a href="http://www.w3.org/TR/2005/WD-swbp-skos-core-guide-20050510/">SKOS</a>)</li> </ol> <p>Browser Support: The SPARQL QBE is SVG based and currently works fine with the following browsers; Firefox 1.5/2.0, Camino (Cocoa variant of Firefox for Mac OS X), Webkit (Safari pre-release / advanced sibling), Opera 9.x. We are evaluating the use of the Adobe SVG plugin re. IE 6/7 support.</p> <p>Of course this should be a screencast, but I am the middle of a plethora of things right now :-) </p>
Data Spaces and Web of Databases
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-08-28#1030
2006-08-28T19:38:00Z
2006-09-04T18:58:56.000001-04:00
<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'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&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'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's weblogs.com</li> <li>  <a href="http://simile.mit.edu/piggy-bank/">PiggyBank</a> - a Firefox Extension</li> </ul> <p> </p>
Paul Graham was Surprised by Google Calendar?
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-08-19#1028
2006-08-19T20:17:31Z
2006-08-19T23:39:03-04:00
<p>Dare's insightful take below, sheds light on the problems associated with building Web 2.0 business offerings around a single Collaborative Application feature as opposed to a coherently integrated platform.</p> <p> BTW - I am just as perplexed as Dare about Paul Graham being blind-sided by the integration of Calendaring and Email by Google.</p> <blockquote> <p> <a href="http://www.25hoursaday.com/weblog/CommentView.aspx?guid=a0e893a1-95a1-4277-b635-2b4abb240b69">Paul Graham was Surprised by Google Calendar?</a>: "</p> <p> I was just reading Paul Graham's post entitled <a href="http://paulgraham.infogami.com/blog/kiko">The Kiko Affair</a> which talks about <a href="http://jkanstyle.com/2006/08/17/actual-lessons-from-kiko/">the recent failure of Kiko</a>, an AJAX web-calendaring application. I was quite surprised to see the following sentence in Paul Graham's post </p> <blockquote> <i>The killer, unforseen by the Kikos and by us, was Google Calendar's integration with Gmail. The Kikos can't very well write their own Gmail to compete.</i> </blockquote> <p> Integrating a calendaring application with an email application seems pretty obvious to me especially since the most popular usage of calendaring applications is using Outlook/Exchange to schedule meetings in corporate environments. What's surprising to me is how surprised people are that <a href="http://news.com.com/2100-1023-219412.html?legacy=cnet">an idea that failed in 1990s</a> will turn out any differently now because you sprinkle the AJAX magic pixie dust on it. </p> <p> <a href="http://www.kiko.com/">Kiko</a> was a feature, not a full-fledged online destination let alone a viable business. There'll be a lot more entrants into the <a href="http://www.techcrunch.com/tag/deadpool">TechCrunch deadpool</a> that are features masquerading as companies before the 'Web 2.0' hype cycle runs its course. </p>" <p>(Via <a href="http://www.25hoursaday.com/weblog/">Dare Obasanjo aka Carnage4Life</a>.)</p> </blockquote>
OpenLink Ajax Toolkit (OAT) 1.0 Released
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-08-08#1023
2006-08-08T22:11:45Z
2006-08-09T05:12:48-04:00
<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'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>
New Toolkit for Rich Web Applications
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-07-19#1014
2006-07-19T00:26:36Z
2006-07-18T21:39:38.000002-04:00
<p> <a href="http://tirania.org/blog/archive/2006/Jun-28-1.html">New Toolkit for Rich Web Applications</a>: "</p> <p>The other day I ran into <a href="http://www.jitsu.org/jitsu/">Jitsu</a>, a new toolkit for creating Ajax-y applications. </p> <p>Jitsu takes an interesting <a href="http://www.jitsu.org/jitsu/guide/approach.html">approach</a> in the Ajaxy space."</p> <p>(Via <a href="http://tirania.org/blog/index.html">Miguel de Icaza</a>.)</p>
Contd: Ajax Database Connectivity Demos
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-06-01#988
2006-06-02T02:48:00Z
2006-06-22T08:56:58-04:00
<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>
Screencast: Yahoo! Maps variation of Ajax Database Connectivity Maps Mash-up
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#986
2006-05-26T22:49:00Z
2006-06-22T08:56:58-04:00
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 />
Screencast: Building Database Centric Web 2.0 Mash-ups using Ajax Database Connectivity
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#985
2006-05-26T22:38:00Z
2006-06-22T08:56:58-04:00
This screencast covers the actual codeless process of building a database centric Web 2.0 mash-up using OAT'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 />
Screencast: Using a Live Report (mash-up) that exploits AJAX Database Connectivity
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#984
2006-05-26T22:27:00Z
2006-06-22T08:56:58-04:00
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 />
Building Pivot Tables using Ajax Database Connectivity
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#983
2006-05-26T22:08:00Z
2008-02-04T20:43:35.000004-05:00
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 />
Screencast: Ajax Database Connectivity and SQL Query By Example
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-26#982
2006-05-26T21:59:00Z
2006-06-22T08:56:58-04:00
AJAX Database Connectivity is the Data Access Component of OAT (<a href="http://www.openlinksw.com/oat/">OpenLink AJAX Toolkit</a>). It'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 />
A Web 2.0 Style Mash-up using the OpenLink Ajax Toolkit (OAT)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-25#981
2006-05-25T20:47:00Z
2006-06-22T08:56:58-04:00
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 "enclosure" 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 />
New XTech web site, and why we don't sell presentation space
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-03-14#939
2006-03-14T21:24:26Z
2006-06-22T08:56:58-04:00
<p> <a href="http://times.usefulinc.com/2006/03/14-xtech">New XTech web site, and why we don't sell presentation space</a>: "</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'll bore you at length about how amazing it was. Of the second, I'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'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' Day</a>.</li> </ul> <p>A few more details on the Ajax Developers' Day. As I mentioned before, when putting together the schedule we felt there was a lot of excellent content still missed out (I'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'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's a day-long event, we didn'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'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'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' time and intelligence, but still attends, you know they'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're still trying to keep the costs as low as we can, but we'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's reputation as a conference where you can hear some of the best no-fluff presentations on web technology.<br />" <p>(Via <a href="http://times.usefulinc.com/">Edd Dumbill's Weblog: Behind the Times</a>.)</p>
Design Pattern: Read/Write Div
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-01-26#927
2006-01-26T13:06:36Z
2006-06-22T08:56:58-04:00
<p> <a href="http://ajaxian.com/archives/design-pattern-readwrite-div">Design Pattern: Read/Write Div</a>: "</p> <p>Jonathan Boutelle has written about, what he calls, the <a href="http://www.jonathanboutelle.com/mt/archives/2006/01/ajax_design_pat.html">Read/Write Div pattern</a>.</p> <blockquote> <b>What is the Read/Write Div pattern?</b> <p>A new AJAX convention cropping up in a few places, one that is easy to implement and has real benefit to end users. I haven’t found a description of it anywhere, so I thought I’d write it up here.</p> <p>The basic idea is that user controls (typically for editing the displayed data) should be hidden from the user until needed. At ‘rest’, an area of the screen displays information in read-only fashion. </p> <b>Why the Read/Write Div Works</b> <p>Fewer controls means that the user has to make fewer choices before taking an action, and therefore it takes less time for the user to choose which item to click on. The technical term for this effect is ‘Hicks Law’.</p> <p>Also, the ‘read-only’ view of the data takes up much less space than the ‘read-write’ view does, so much more information can be packed into a given page, which means that the user doesn’t have to scroll down to read content. Avoiding the scrolling saves the user a measureable amount of time while browsing (3.05 seconds, according to my back-of-the-envelope GOMS keystroke analysis). </p> <p> <a href="http://www.usernomics.com/news/2006/01/ajax-design-pattern-readwrite-div.html"><img src="http://ajaxian.com/wp-content/images/readwritedivpattern.jpg" alt="ReadWrite Div Pattern" border="0" height="361" width="235" /> </a> </p> </blockquote> <div class="feedflare"> <a href="http://feeds.feedburner.com/%7Ef/ajaxian?a=a4ssZyRX"><img src="http://feeds.feedburner.com/%7Ef/ajaxian?i=a4ssZyRX" border="0" /> </a> <a href="http://feeds.feedburner.com/%7Ef/ajaxian?a=h0P2MErn"><img src="http://feeds.feedburner.com/%7Ef/ajaxian?i=h0P2MErn" border="0" /></a> <a href="http://feeds.feedburner.com/%7Ef/ajaxian?a=4pdOaWls"><img src="http://feeds.feedburner.com/%7Ef/ajaxian?i=4pdOaWls" border="0" /></a> <a href="http://feeds.feedburner.com/%7Ef/ajaxian?a=D3dLrHwC"><img src="http://feeds.feedburner.com/%7Ef/ajaxian?i=D3dLrHwC" border="0" /></a> </div>" <p>(Via <a href="http://ajaxian.com">Ajaxian Blog</a>.)</p>
JavaScript Image Magnifier
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-12-06#917
2005-12-06T04:43:56Z
2006-06-22T08:56:58-04:00
<p><a href="http://ajaxian.com/archives/2005/12/javascript_imag.html">JavaScript Image Magnifier</a>: "</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><script type='text/javascript' src='http://valid.tjp.hu/zoom/tjpzoom.js'> </script> </pre></blockquote> and: <blockquote><pre><div style='float:left' onmouseover='zoom_on(event,300,239,'image.jpg');' onmousemove='zoom_move(event);' onmouseout='zoom_off();'> <img src='image.jpg'/> </div> </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'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>" <p>(Via <a href="http://ajaxian.com/">Ajaxian Blog</a>.)</p>
what is web 2.0?
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-18#909
2005-11-18T21:49:15Z
2006-06-22T08:56:58-04:00
<p><a href="http://blog.del.icio.us/blog/2005/11/there_has_been_.html">what is web 2.0?</a>: " </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' 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> " <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>
Ajax-S: Ajaxian slideshow software
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-16#905
2005-11-16T20:50:32Z
2006-06-22T08:56:58-04:00
<blockquote><p><a href="http://www.ajaxian.com/archives/2005/11/ajaxs_ajaxian_s.html">Ajax-S: Ajaxian slideshow software</a>: "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)."</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>
Solutions to allow XMLHttpRequest to talk to external services
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-11#900
2005-11-11T21:01:15Z
2006-07-21T07:23:03.000001-04:00
<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>: "</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'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'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'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>
2 New Geocoding APIs
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-11-02#891
2005-11-02T22:27:41Z
2006-06-22T08:56:58-04:00
<p><a href="http://blog.programmableweb.com/?p=103">2 New Geocoding APIs</a>: "</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>" <p>(Via <a href="http://blog.programmableweb.com">ProgrammableWeb.com</a>.)</p>
TechCrunch Top Web 2.0 VCs
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-10-20#876
2005-10-20T03:50:55Z
2006-06-22T08:56:58-04:00
<p><span style="font-family:Verdana;font-size:10pt;"> By way of the upcoming <a href="http://wiki.techcrunch.com/third_meetup">TechCrunch âun-conferenceâ style demo-brainstorm-fest Wiki</a> I came across a blog post by <a href="http://www.techcrunch.com/">Michael Arrington</a> titled: <a href="http://www.techcrunch.com/2005/10/19/top-five-web-20-venture-capitalists/">Top 5 Web 2.0 VCs</a>. Here is the entire list (Top 5, Notables, and Up and Coming) extracted from the post (see <a href="http://www.openlinksw.com/blog/~kidehen/index.vspx?page=linkblog">my linkblog page</a> to get some insight into the motivation behind this post): </span> </p><blockquote><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.bvp.com/about/bio.asp?id=7" id="7">David Cowan</a></span><span style="font-family:Verdana;font-size:9pt;"> is a partner at </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.bvp.com/">Bessemer Venture Partners</a></span><span style="font-family:Verdana;font-size:9pt;"> and writes a blog called </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://whohastimeforthis.blogspot.com/">Who Has Time For This</a></span><span style="font-family:Verdana;font-size:9pt;">. Heâs on this list partially because he incubated the hottest and most anticipated company on the web right now, Flock. <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.dfj.com/team/tim_bio.shtml">Tim Draper</a></span><span style="font-family:Verdana;font-size:9pt;"> invested in Skype. Done. He also sits on the board of SocialText, and his fund was in Baidu. <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.augustcap.com/team/dh.shtml">David Hornik</a></span><span style="font-family:Verdana;font-size:9pt;"> is is a General Partner at August Capital and writes a </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.ventureblog.com/">blog</a></span><span style="font-family:Verdana;font-size:9pt;"> that has over 10,000 RSS readers. <br />Josh Kopelman, through </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.firstroundcapital.com/">FirstRoundCapital</a></span><span style="font-family:Verdana;font-size:9pt;">, is quietly filtering through just about every young web 2.0 company, and investing in many of them. <br /><br />Fred Wilson is a founding partner of </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.unionsquareventures.com/">Union Square Ventures</a></span><span style="font-family:Verdana;font-size:9pt;"> and writes the extremely popular </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://avc.blogs.com/a_vc/">A VC</a></span><span style="font-family:Verdana;font-size:9pt;">. If you are new to web 2.0, start with his </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://avc.blogs.com/a_vc/2005/02/blogging_10.html">Blogging 1.0</a></span><span style="font-family:Verdana;font-size:9pt;"> post. <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://softtechvc.blogs.com">Jeff Clavier</a></span><span style="font-family:Verdana;font-size:9pt;"> - </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://softtechvc.blogs.com/about.html">Jeff</a></span><span style="font-family:Verdana;font-size:9pt;"> is a former VC and still makes the odd angel investment (Feedster, Truveo, and a few others). His </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.softtechvc.com/">new venture</a></span><span style="font-family:Verdana;font-size:9pt;"> allows him to work with pre-funding companies and get them ready for prime time. <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.feld.com/blog/">Brad Feld</a></span><span style="font-family:Verdana;font-size:9pt;"> - Brad is a managing director at </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.mobiusvc.com/index.php">Mobius Venture Capital</a></span><span style="font-family:Verdana;font-size:9pt;"> and writes a must-read web 2.0 blog called Feld Thoughts. Read his </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.feld.com/blog/archives/term_sheet/index.html">posts on Term Sheets</a></span><span style="font-family:Verdana;font-size:9pt;"> if you are in the process of raising capital. <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.oatv.com/">OâReilly AlphaTech Ventures</a></span><span style="font-size:9pt;"></span><span style="font-family:Verdana;font-size:9pt;"> - This is the only non-person on here. </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.oatv.com/">OATV</a></span><span style="font-family:Verdana;font-size:9pt;"> just closed a $50 million fund to invest in young companies. Given the incredible access Tim OâReilly has to these companies, OATV could quickly become an important fund in the web 2.0 space. <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://pierre.typepad.com/">Pierre Omidyar</a></span><span style="font-family:Verdana;font-size:9pt;"> - </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://pierre.typepad.com/">Pierre</a></span><span style="font-family:Verdana;font-size:9pt;"> founded ebay and is the Co-founder of </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.omidyar.net/index.html">Omidyar Network</a></span><span style="font-family:Verdana;font-size:9pt;">, where heâs invested in a number of interesting companies including EVDB, SocialText and Feedster, and others. <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://earlystagevc.typepad.com/">Peter Rip</a></span><span style="font-family:Verdana;font-size:9pt;"> - Peter is a founding partner of </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.leapfrogventures.com/">Leapfrog Ventures</a></span><span style="font-family:Verdana;font-size:9pt;">, a $100 million fund. Peter also writes </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://earlystagevc.typepad.com/">Early Stage VC</a></span><span style="font-family:Verdana;font-size:9pt;">, another must-read blog. His investments include ojos, an incredible new photo-metadata service that is going to be extremely disruptive (and useful). <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.thefoundersfund.com/index.html">Peter Thiel</a></span><span style="font-family:Verdana;font-size:9pt;"> - Peter, the former CEO of paypal, has invested in LinkedIn, Friendster, LinkedIn and other web 2.0 companies. Heâs just created the </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.thefoundersfund.com/index.html">Founders Fund</a></span><span style="font-size:9pt;">. <br /></span><span style="font-family:Verdana;color:#51796f;font-size:9pt;"><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.austinventures.com/team/teammember.asp?id=81" id="81">Thomas Ball</a></span><span style="font-family:Verdana;font-size:9pt;"> - </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.austinventures.com/team/teammember.asp?id=81" id="81">Tom</a></span><span style="font-family:Verdana;font-size:9pt;"> is a Venture Partner at Austin Ventures, a fund with $3 billion under management. Heâs their consumer and web 2.0 guy and seems to be spending a lot of time in Silicon Valley and at web 2.0 event. <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.venrock.com/bio_deg.html">Dan Grossman</a></span><span style="font-family:Verdana;font-size:9pt;"> - </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.venrock.com/bio_deg.html">Dan</a></span><span style="font-family:Verdana;font-size:9pt;"> is a principal at Venrock Associates and has recently started a great blog called </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.aventureforth.com/">A Venture Forth</a></span><span style="font-family:Verdana;font-size:9pt;"> (where he wrote a much bookmarked post on </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.aventureforth.com/2005/09/06/top-10-ajax-applications/">Ajax</a></span><span style="font-family:Verdana;font-size:9pt;">). <br /><br /></span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.shastaventures.com/pressman.htm">Jason Pressman</a></span><span style="font-family:Verdana;font-size:9pt;"> - </span><span style="font-family:Verdana;font-size:9pt;"><a href="http://www.shastaventures.com/pressman.htm">Jason</a></span><span style="font-family:Verdana;font-size:9pt;"> is a principal at Shasta Ventures, a young $200 million fund that has a deep commitment to and expertise in consumer-focused businesses. <br /></span></blockquote>
Web 2.0 Conference Trip Report: Mash-ups 2.0 - Where#39s the Business Model?
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-10-06#871
2005-10-06T18:43:31Z
2006-06-22T08:56:58-04:00
<p>Great report from Dare as usual :-) Beyond the obvious value of the post (information wise), I am also using the post placement here as a simple demonstration of what Blogs can offer (if driven or built atop a Web 2.0+ platform like<a href="http://www.openlinksw.com/virtuoso"> Virtuoso</a>). See the post that follows...</p><blockquote><p><a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=fe52dada-78e0-4508-80c2-8764d9668651">Web 2.0 Conference Trip Report: Mash-ups 2.0 - Where's the Business Model?</a>: "</p><p> I attended the panel on business models for mash-ups hosted by <a href="http://www.web2con.com/cs/web2005/view/e_spkr/2453">Dave McClure</a>,<br /><a href="http://www.web2con.com/cs/web2005/view/e_spkr/1637">Jeffrey McManus</a>, <a href="http://www.web2con.com/cs/web2005/view/e_spkr/2277">Paul Rademacher</a>, and <a href="http://www.web2con.com/cs/web2005/view/e_spkr/1518">Adam Trachtenberg</a>. </p><p> A mash up used to mean remixing two songs into something new and cool but now the term has been hijacked by geeks to means mixing two or more web-based data sources and/or services. </p><p> Paul Rademacher is the author of the <a href="http://www.housingmaps.com/">Housing Maps mash-up</a> which he used as a way to find a house using Craig'sList + Google Maps. The data obtained from Craig's List is fetched via screen scraping. Although Craig's List has RSS feeds, they didn't meet his needs. Paul also talked about some of the issues he had with building the site such as the fact that since most browsers block cross-site scripting using XMLHttpRequest then a server needs to be set up to aggregate the data instead of all the code running in the browser. The site has been very popular and has garnered over 900,000 unique visitors based solely on word-of-mouth. </p><p> The question was asked as to why he didn't make this a business but instead took a job at Google. He listed a number of very good reasons </p><ol><li> He did not own the data that was powering the application.</li><li> The barrier to entry for such an application was low since there was no unique intellectual property or user interface design to his application </li></ol><p> I asked whether he'd gotten any angry letters from the legal department at Craig's List and he said they seem to be tolerating him because he drives traffic to their site and caches a bunch of data on his servers so as not to hit their servers with a lot of traffic. </p><p> A related mash-up site which scrapes real estate websites called <a href="http://www.trulia.com/">Trulia</a> was then demoed. A member of the audience asked whether Paul thought the complexity of mash-ups using more than two data sources and/or services increased in a linear or exponential fashion. Paul said he felt it increased in a linear fashion. This segued into a demo of <a href="http://www.simplyhired.com/">SimplyHired</a> with integrates with a number of sites including <a href="http://www.payscale.com/">PayScale</a>, <a href="http://www.linkedin.com/">LinkedIn</a>, Job databases, etc. </p><p> At this point I asked whether they would have service providers giving their perspective on making money from mash-ups since they are the gating factor because they own the data and/or services mash-ups are built on. The reply was that the eBay & Yahoo folks would give their perspective later. </p><p> Then we get a demo of a <a href="http://www.trachtenberg.com/emgm/">Google Maps & eBay Motors mash-up</a>. Unlike the <a href="http://www.housingmaps.com/">Housing Maps mash-up</a>, all the data is queried live instead of cached on the server. eBay has dozens of APis that encourage people to build against their platform and they have an affiliates program so people can make money from building on their API. We also got showed <a href="http://www.unwiredbuyer.com/">Unwired Buyer</a> which is a site that enables you to bid on eBay using your cell phone and even calls you just before an auction is about to close. Adam Trachtenberg pointed out that since there is a <a href="http://share.skype.com/sdp">Skype API</a> perhaps some enterprising soul could mash-up eBay & Skype. </p><p> Jeffrey McManus of Yahoo! pointed out that you don't even need coding skills to build a Yahoo! Maps mash-up since all it takes is specifying your RSS feed with longitude and latitude elements on each item to have it embedded in the map. I asked why unlike Google Maps and MSN Virtual Earth, Yahoo! Maps doesn't allow users to host the maps on their page nor does there seem to be an avenue for revenue sharing with mash-up authors via syndicated advertising. The response I got was that they polled various developers and there wasn't significant interest in embedding the maps on developer's sites especially when this would require paying for hosting. </p><p> We then got showed a number mapping mashups including a mashup of the <a href="http://geepster.com/london.php">London bombings which used Google Maps, Flickr & RSS feeds of news</a> (the presenter had the poor taste to point out opportunities to place ads on the site), a mashup from alkemis which <a href="http://www.alkemis.com/default.php?pID=laboratory&pID2=googleMapA">mashes Google Maps, A9.com street level photos and traffic cams</a>, and a mash-up from Analygis which <a href="http://www.analygis.com/products/google_api.htm">integrates census data with Google Maps data</a>. </p><p> The following items were then listed as the critical components of mash-ups<br />  - AJAX (Jeffrey McManus said it isn't key but a few of the guys on the panel felt that at least dynamic UIs are better) <br />  - APIs<br />  - Advertising<br />  - Payment<br />  - Identity/Acct mgmt<br />  - Mapping Services<br />  - Content Hosting<br />  - Other? </p><p> On the topic of identity and account management, the problem of how mash-ups handle user passwords came up as a problem. If a website is password protected then user's often have to enter their usernames and passwords into third party sites. An example of this was the fact that PayPal used to store lots of username/password information of eBay users which caused the company some consternation since eBay went through a lot of trouble to protect their sensitive data only to have a lot of it being stored on Paypal servers. </p><p> eBay's current solution is similar to that used by <a href="http://www.passport.net">Microsoft Passport</a> in that applications are expected to have user's login via the eBay website then the user is redirected to the originating website with a ticket indicating they have been authenticated. I pointed out that although this works fine for websites, it offers no solution for people trying to build desktop applications that are not browser based. The response I got indicated that eBay hasn't solved this problem. </p><p> My main comment about this panel is that it didn't meet expectations. I'd expected to hear a discussion about turning mashups [and maybe the web platforms they are built on] into money making businesses. What I got was a show-and-tell of various mapping mashups. Disappointing. </p>" <p>(Via <a href="http://www.25hoursaday.com/weblog/">Dare Obasanjo aka Carnage4Life</a>.)</p></blockquote>
Microsoft Gadgets, Start.com and Innovation
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-09-16#868
2005-09-16T17:54:52Z
2006-06-22T08:56:58-04:00
<blockquote><p><a href="http://www.25hoursaday.com/weblog/PermaLink.aspx?guid=88270766-b9e1-407b-937f-ab41edce97de">Microsoft Gadgets, Start.com and Innovation</a>: "</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'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 'Sideshow*' 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, 'Sideshow: Providing peripheral awareness of important information' 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>></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, 'Sidebar' 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, 'Avalon', 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 'Microsoft Gadgets' is the shipping version of Microsoft Research's 'Sideshow' 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'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 'Atlas' 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 'aggregator' 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're shipping really innovative stuff but because of branding that has attempted to cash in on the 'widgets' hype, we end up looking like followers and copycats. </span></p><p class="MsoNormal" dir="ltr"><span>Marketing sucks. </span></p>" <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'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!!
FireFox Semantic Web Extension: Piggy Bank 2.0 Beta
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-05-24#850
2005-05-24T18:37:20Z
2006-07-21T07:25:03.000001-04:00
<div align="left">I just found this interesting Semantic Web effort via '<a href="http://dannyayers.com/">Danny Ayers</a>' 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 "screen scraper" <em>[XSLT or Javascript]</em> that can re-structure the web page HTML code into RDF data. </p></blockquote> <p>There'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's</a> functionality pool; combining Database & Web Application Server functionality amongst other things, as a single product offering.<br /> </div>
Ajax, Hard Facts, Brass Tacks ... and Bad Slacks
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-04-29#825
2005-04-29T20:11:22Z
2006-06-22T08:56:58-04:00
<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><a></code> and <code><form></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><form action=/search name=f><br> <input type=hidden name=hl value=en><br> <input maxLength=256 size=55 name=q value=""><br> <input type=submit value="Google Search" name=btnG><br></form><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><a></code> and <code><form></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><xf:submission id="sub-search"<br> action="http://www.google.com/complete/search?hl=en"<br> method="get" separator="&"<br> replace="all"<br>/><br> <br><xf:input ref="q"><br> <xf:label>Query:</xf:label><br></xf:input><br> <br><xf:submit submission="sub-search"><br> <xf:label>Google Search</xf:label><br></xf:submit><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><xf:submission id="sub-search"<br> action="http://www.google.com/complete/search?hl=en"<br> method="get" separator="&"<br> replace="<span style="COLOR: red">instance</span>"<br>/><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><a></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><xf:action ev:observer="sub-search" ev:event="xforms-submit-error"><br> <xf:message level="modal"><br> Submission failed<br> </xf:message><br></xf:action><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><div></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><hint></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>
SOA, AJAX and REST: The Software Industry Devolves into the Fashion Industry
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-03-24#763
2005-03-24T15:20:36Z
2006-06-22T08:56:58-04:00
<p>Dare Obasanjo ponders about: <a href="http://blogs.msdn.com/dareobasanjo/archive/2005/03/22/400372.aspx">SOA, AJAX and REST: The Software Industry Devolves into the Fashion Industry</a> .</p> <p>I absolutely understand the frustration expressed in Dare's post. An additional comment from my perspective is that this devolution has been in motion for a while and it is an integral part of the Misinformation and Disinformation based marketing strategies of many companies.</p> <p>Misinformation and Disinformation only work when the target audience is apathetic (unfortunately the sad reality to date!). The bad news for marketing strategies that assume perpetuation of the aforementioned apathy is that the Internet is fundamentally reducing the cost of knowledge acquisition; by implication today's naive customer is tomorrow's knowledgeable decision maker. Vendors have a choice: build valuable products, and then market these products by disseminating knowledge. If a competitor's product is better than yours, get back to the labs (developers are actually stimulated and motivated by constructive challenges; especially as any developer worth his or her salt intrinsically believes they are the best at their craft deep down; and so they should!). </p> <p>In the imminent future (Internet time) I expect to see the Wikisphere, Blogosphere, and other Web 2.0 (and beyond) realms bring clarity to the futility of Misinformation and Disinformation based marketing and PR (see my post about the <a href="http://www.openlinksw.com/blog/~kidehen/index.vspx?id=746">Wikipedia induced inflection on Marketing and PR</a> ).</p> <p>BTW -- Does anyone know what's the difference between an <a href="http://en.wikipedia.org/wiki/Enterprise_Service_Bus">ESB</a> and a <a href="http://en.wikipedia.org/wiki/Enterprise_Service_Bus">Universal Server</a>? Likewise, the difference between a <a href="http://en.wikipedia.org/wiki/Virtual_database">Virtual Database</a> and an <a href="http://en.wikipedia.org/wiki/EII">EII</a> solution?</p>
The Mozilla Project and XUL
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-05-28#553
2004-05-28T22:40:08Z
2006-06-22T08:56:58-04:00
<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'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'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>
Macromedia Brings Flash to the Enterprise
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-04-01#498
2004-04-01T19:45:16Z
2006-06-22T08:56:58-04:00
<font size="2"> <p dir="ltr">XML based generation of Rich and Native UI'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'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'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>
Technology: Just Make It Simpler
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-09-02#246
2003-09-02T17:23:20Z
2006-06-22T08:56:58-04:00
<P><!--StartFragment -->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 "<EM>Web of Distrust and Fallability</EM>" which has been sold to the unsuspecting public 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&editexclude=b3848011_mz001&var=427150392439006700&adsize=300x250&pagepos=9&chan=mz&?"></SCRIPT> </FONT></P></BLOCKQUOTE> <P><A href="http://www.businessweek.com/magazine/content/03_36/b3848011_mz001.htm">Read on.</A></P>
Inner-Browsing
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-03#356
2003-06-03T17:30:57Z
2006-06-22T08:56:58-04:00
<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> </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. This capability was IE specific (as per our demos) until Mozilla's addition of SOAP extensions to its Javascript implementation.</EM></DIV>
By Harry Fuecks
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#997
2003-05-21T20:49:29Z
2006-07-07T08:29:38-04:00
<h2> <font size="3">By Harry Fuecks</font> <br /> <font size="2">Here'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's content? It sounds a little far fetched, I know, but it's right here, right now -- and it calls itself "Zool". </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>
By Harry Fuecks
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#318
2003-05-21T20:49:00Z
2006-07-07T08:58:06.000001-04:00
<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>
<a href="http://dotnetweblogs.com/britchie/posts/3920.aspx">.NET Languages Everywhere</a>
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-16#30
2003-05-16T22:23:07Z
2006-06-22T08:56:58-04:00
<A href="http://dotnetweblogs.com/britchie/posts/3920.aspx">.NET Languages Everywhere</A> <P>More .NET languages are popping up everyday. 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>. </P> <P>Its pulled from many sources including: <A href="http://www.asp.net/Default.aspx?tabindex=8&tabid=40"><FONT face=Verdana size=2>.NET Languages</FONT></A><FONT face=Verdana size=2> (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 Talk </FONT> <UL> <LI><A href="http://www.smallscript.org/"><FONT face=Verdana size=2>S#</FONT></A><FONT face=Verdana size=2> (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. 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>
<a href="http://dotnetweblogs.com/britchie/posts/3920.aspx">.NET Languages Everywhere</a>
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-16#303
2003-05-16T22:23:07Z
2006-06-22T08:56:58-04:00
<A href="http://dotnetweblogs.com/britchie/posts/3920.aspx">.NET Languages Everywhere</A> <P>More .NET languages are popping up everyday. 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>. </P> <P>Its pulled from many sources including: <A href="http://www.asp.net/Default.aspx?tabindex=8&tabid=40"><FONT face=Verdana size=2>.NET Languages</FONT></A><FONT face=Verdana size=2> (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 Talk </FONT> <UL> <LI><A href="http://www.smallscript.org/"><FONT face=Verdana size=2>S#</FONT></A><FONT face=Verdana size=2> (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. 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>