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-29T06:57:30Z
Virtuoso Universal Server 08.03.3327
http://www.openlinksw.com:443/weblog/public/images/vbloglogo.gif
Virtuoso Linked Data Deployment In 3 Simple Steps
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-10-29#1642
2010-10-29T22:54:32Z
2010-11-02T11:55:31.000005-04:00
<p>Injecting <a class="auto-href" href="http://dbpedia.org/resource/Linked_Data" id="link-id0x17012e18">Linked Data</a> into the <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> has been a major pain point for those who seek personal, service, or organization-specific variants of <a class="auto-href" href="http://dbpedia.org/resource/DBpedia" id="link-id0x196518a8">DBpedia</a>. Basically, the sequence goes something like this: </p> <ol> <li> You encounter DBpedia or the <a class="auto-href" href="http://community.linkeddata.org/dataspace/organization/lod#this" id="link-id0x1b26d008">LOD</a> Cloud Pictorial.</li> <li> You look around (typically following your nose from link to link). </li> <li> You attempt to publish your own stuff. </li> <li> You get stuck. </li> </ol> <p>The problems typically take the following form:</p> <ol> <li> Functionality confusion about the complementary Name and Address functionality of a single <a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id0xa108a00">URI</a> abstraction </li> <li> Terminology confusion due to conflation and over-loading of terms such as Resource, <a class="auto-href" href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id0x1b3d08f8">URL</a>, Representation, Document, etc. </li> <li> Inability to find robust tools with which to generate Linked Data from existing <a href="http://dbpedia.org/resource/Data">data</a> sources such as relational databases, CSV files, XML, Web Services, etc. </li> </ol> <p>To start addressing these problems, here is a simple guide for generating and publishing Linked Data using <a class="auto-href" href="http://virtuoso.openlinksw.com" id="link-id0x1a7841e0">Virtuoso</a>.</p> <h3>Step 1 - RDF Data Generation</h3> <p>Existing RDF data can be added to the Virtuoso RDF Quad Store via a variety of built-in data loader utilities.</p> <p>Many options allow you to easily and quickly generate RDF data from other data sources:</p> <ul> <li> Install the Sponger Bookmarklet for the <a href="http://uriburner.com" id="link-id0x1aa50800">URIBurner service</a>. Bind this to your own <a class="auto-href" href="http://dbpedia.org/resource/SPARQL" id="link-id0x1a4255e0">SPARQL</a>-compliant backend RDF database (in this scenario, your local Virtuoso instance), and then Sponge some HTTP-accessible resources. </li> <li> Convert relational DBMS data to RDF using the Virtuoso RDF Views Wizard. </li> <li> Starting with CSV files, you can <ul> <li>Place them at an HTTP-accessible location, and use the Virtuoso <a class="auto-href" href="http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html" id="link-id0x16f7ba58">Sponger</a> to convert them to RDF or; </li> <li> Use the CVS import feature to import their content into Virtuoso's relational data engine; then use the built-in RDF Views Wizard as with other <a class="auto-href" href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id0x1982ea80">RDBMS</a> data. </li> </ul> </li> <li> Starting from XML files, you can <ul> <li> Use Virtuoso's inbuilt XSLT-Processor for manual XML to RDF/XML transformation or;</li> <li>Leverage the Sponger Cartridge for <a class="auto-href" href="http://dbpedia.org/resource/GRDDL" id="link-id0x1b350968">GRDDL</a>, if there is a transformation service associated with your XML data source, or;</li> <li>Let the Sponger analyze the XML data source and make a best-effort transformation to RDF.</li> </ul> </li> </ul> <h3>Step 2 - Linked Data Deployment</h3> <p> Install the <a href="http://download.openlinksw.com/packages/6.2/virtuoso/fct_dav.vad" id="link-id0x19845ad0">Faceted Browser VAD package (<code>fct_dav.vad</code>)</a> which delivers the following:</p> <ol> <li> Faceted Browser Engine UI</li> <li> Dynamic Hypermedia Resource Generator <ul> <li>delivers descriptor resources for every <a class="auto-href" href="http://dbpedia.org/resource/Entity" id="link-id0x1b3a69f0">entity</a> (data object) in the Native or Virtual Quad Stores</li> <li>supports a broad array of output formats, including HTML+<a class="auto-href" href="http://dbpedia.org/resource/RDFa" id="link-id0x1a92d2f8">RDFa</a>, RDF/XML, N3/Turtle, NTriples, RDF-JSON, OData+Atom, and OData+JSON. </li> </ul> </li> </ol> <h3>Step 3 - Linked Data Consumption & Exploitation</h3> <p> Three simple steps allow you, your enterprise, and your customers to consume and exploit your newly deployed Linked Data -- </p> <ol> <li> Load a page like this in your browser: <code>http://<cname>[:<port>]/describe/?uri=<entity-uri></code> <ul> <li> <code><cname>[:<port>]</code> gets replaced by the host and port of your Virtuoso instance</li> <li> <code><entity-uri></code> gets replaced by the URI you want to see described -- for instance, the URI of one of the resources you let the Sponger handle. </li> </ul> </li> <li> Follow the links presented in the descriptor page. </li> <li>If you ever see a blank page with a hyperlink subject name in the About: section at the top of the page, simply add the parameter "&sp=1" to the URL in the browser's Address box, and hit [ENTER]. This will result in an "on the fly" resource retrieval, transformation, and descriptor page generation.</li> <li> Use the navigator controls to page up and down the data associated with the "in scope" resource descriptor. </li> </ol> <h3>Related</h3> <ul> <li> <a href="http://linkeddata.uriburner.com/describe/?url=http%3A%2F%2Flinkeddata.uriburner.com%2Fabout%2Fid%2Fentity%2Fhttp%2Fwww.amazon.com%2Fo%2FASIN%2F006251587X" id="link-id0x1a8aeaf8">Sample Descriptor Page</a> (what you see post completion of the steps in this post) </li> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1639" id="link-id0x1af66f38">What is Linked Data, really?</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1613" id="link-id0x1acdbc58">Painless Linked Data Generation via URIBurner</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtRDFInsert" id="link-id0x1abe3b18">How To Load RDF Data Into Virtuoso</a> (various methods)</li> <li> <a href="http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtBulkRDFLoader" id="link-id0x1a441ff0">Virtuoso Bulk Loader Script for RDF</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/dav/wiki/Main/VirtCsvFileBulkLoader" id="link-id0x190382e8">Bulk Loader Script for CSV</a> </li> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtRdb2RDFViewsGeneration#OneClickLinkedDataGenerationAndDemployment" id="link-id0x1ac9c9c0">Wizard based generation of RDF based Linked Data from ODBC accessible Relational Databases </a> </li> </ul>
Re-introducing the Virtuoso Virtual Database Engine
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-02-17#1608
2010-02-17T21:38:01Z
2010-02-17T16:46:53-05:00
<p>In recent times a lot of the commentary and focus re. <a href="http://virtuoso.openlinksw.com" id="link-id16a22f48">Virtuoso</a> has centered on the RDF Quad Store and <a href="http://dbpedia.org/resource/Linked_Data" id="link-id112d82a0">Linked Data</a>. What sometimes gets overlooked is the sophisticated <a href="http://dbpedia.org/resource/Virtual_Database" id="link-id6493cc8">Virtual Database</a> Engine that provides the foundation for all of Virtuoso's <a href="http://dbpedia.org/resource/Data">data</a> integration capabilities.</p> <p>In this post I provide a brief re-introduction to this essential aspect of Virtuoso.</p> <h3>What is it?</h3> <p>This component of Virtuoso is known as the Virtual Database Engine (VDBMS). It provides transparent high-performance and secure access to disparate data sources that are external to Virtuoso. It enables federated access and integration of data hosted by any <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id13c26008">ODBC</a>- or <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id166604c0">JDBC</a>-accessible <a href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id139dfdb8">RDBMS</a>, RDF Store, XML database, or Document (Free Text)-oriented Content Management System. In addition, it facilitates integration with <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> Services (SOAP-based SOA RPCs or REST-fully accessible Web Resources). </p> <h3>Why is it important?</h3> <p>In the most basic sense, you shouldn't need to upgrade your existing database engine version simply because your current DBMS and Data Access Driver combo isn't compatible with ODBC-compliant desktop tools such as Microsoft Access, Crystal Reports, BusinessObjects, Impromptu, or other of ODBC, JDBC, <a href="http://dbpedia.org/resource/ADO.NET" id="link-id13c7ceb8">ADO</a>.NET, or OLE DB-compliant applications. Simply place Virtuoso in front of your so-called "legacy database," and let it deliver the compliance levels sought by these tools</p> <p>In addition, it's important to note that today's enterprise, through application evolution, company mergers, or acquisitions, is often faced with disparately-structured data residing in any number of line-of-business-oriented data silos. Compounding the problem is the exponential growth of user-generated data via new social media-oriented collaboration tools and platforms. For companies to cost-effectively harness the opportunities accorded by the increasing intersection between line-of-business applications and social media, virtualization of data silos must be achieved, and this virtualization must be delivered in a manner that doesn't prohibitively compromise performance or completely undermine security at either the enterprise or personal level. Again, this is what you get by simply installing Virtuoso.</p> <h3>How do I use it?</h3> <p>The VDBMS may be used in a variety of ways, depending on the data access and integration task at hand. Examples include: </p> <h4>Relational Database Federation</h4> <p>You can make a single ODBC, JDBC, ADO.NET, OLE DB, or XMLA connection to multiple ODBC- or JDBC-accessible RDBMS data sources, concurrently, with the ability to perform intelligent distributed joins against externally-hosted database tables. For instance, you can join internal human resources data against internal sales and external stock market data, even when the HR team uses <a href="http://dbpedia.org/resource/Oracle_Database" id="link-id16706720">Oracle</a>, the Sales team uses <a href="http://dbpedia.org/resource/IBM_Informix" id="link-ide5a15c8">Informix</a>, and the Stock Market figures come from <a href="http://dbpedia.org/resource/Ingres" id="link-id13c0e138">Ingres</a>!</p> <h4>Conceptual Level Data Access using the RDF Model</h4> <p>You can construct RDF Model-based Conceptual Views atop Relational Data Sources. This is about generating HTTP-based <a href="http://dbpedia.org/resource/Entity-attribute-value_model" id="link-id115150f8">Entity</a>-Attribute-Value (E-A-V) graphs using data culled "on the fly" from native or external data sources (Relational Tables/Views, XML-based Web Services, or User Defined Types).</p> <p>You can also derive RDF Model-based Conceptual Views from Web Resource transformations "on the fly" -- the Virtuoso <a href="http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html" id="link-id1675db50">Sponger</a> (RDFizing middleware component) enables you to generate RDF Model Linked Data via a RESTful Web Service or within the process pipeline of the <a href="http://dbpedia.org/resource/SPARQL" id="link-id166b8d90">SPARQL</a> query engine (i.e., you simply use the <a href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id167d00c8">URL</a> of a Web Resource in the FROM clause of a SPARQL query).</p> <p>It's important to note that Views take the form of HTTP links that serve as both Data Source Names and Data Source Addresses. This enables you to query and explore relationships across entities (i.e., People, Places, and other Real World Things) via HTTP clients (e.g., Web Browsers) or directly via SPARQL Query Language constructs transmitted over HTTP.</p> <h4>Conceptual Level Data Access using ADO.NET <a href="http://dbpedia.org/resource/Entity" id="link-id13c6bb60">Entity</a> <a href="http://dbpedia.org/resource/ADO.NET_Entity_Framework" id="link-id16ad3f68">Frameworks</a> </h4> <p>As an alternative to RDF, Virtuoso can expose ADO.NET Entity Frameworks-based Conceptual Views over Relational Data Sources. It achieves this by generating Entity Relationship graphs via its native ADO.NET Provider, exposing all externally attached ODBC- and JDBC-accessible data sources. In addition, the ADO.NET Provider supports direct access to Virtuoso's native RDF database engine, eliminating the need for resource intensive Entity Frameworks model transformations.</p> <h3>Related</h3> <ul> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtLinkRemoteTables" id="link-id1183acd8">Attaching ODBC or JDBC accessible Relational Tables to Virtuoso</a> </li> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtRdb2RDFViewsGeneration#One-Click%20Linked%20Data%20Generation%20&%20Deployment" id="link-id113f2fd8">Using an HTML based Wizard to Generate RDF based Linked Views over Relational Tables</a> </li> <li> <a href="http://www.youtube.com/watch?v=bj7AbJ0ZYCk&feature=channel" id="link-id16ad4480">Screencast Demonstrating Wizard based generation of RDF based Linked Data Views Part 1</a> </li> <li> <a href="http://www.youtube.com/watch?v=yXNlcISS0aY&feature=channel" id="link-id114eb720">Screencast Demonstrating Wizard based generation of RDF based Linked Data Views Part 1</a> </li> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSponger" id="link-id116e5810">Generating RDF based Linked Data from non RDF based Web Resources via the Sponger</a> </li> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAdoNet35Provider" id="link-id16706118">Building ADO.NET based Entity Frameworks Views over Relational Data</a> </li> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSilverlightSPARQLExample" id="link-id139c1278">Building Silverlight Rich Internat Applicaitons using ADO.NET, Entity Frameworks, and RDF based Linked Data</a>.</li> </ul>
Getting The Linked Data Value Pyramid Layers Right (Update #2)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-01-31#1593
2010-01-31T22:44:04Z
2010-02-01T09:02:14.000004-05:00
<p> One of the real problems that pervades all routes to <a href="http://dbpedia.org/resource/Linked_Data" id="link-id13539328">Linked Data</a> value prop. incomprehension stems from the layering of its value pyramid; especially when communicating with -initially detached- end-users. </p> <p> <strong>Note to <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> Programmers:</strong> Linked Data is about <a href="http://dbpedia.org/resource/Data">Data</a> (Wine) and not about Code (Fish). Thus, it isn't a "programmer only zone", far from it. More than anything else, its inherently inclusive and spreads its participation net widely across: Data Architects, Data Integrators, Power Users, <a href="http://dbpedia.org/resource/Knowledge" id="link-id13600d98">Knowledge</a> Workers, <a href="http://dbpedia.org/resource/Information" id="link-id149f8230">Information</a> Workers, Data Analysts, etc.. Basically, everyone that can "click on a link" is invited to this particular party; remember, it is about "Linked Data" not "Linked Code", after all. :-) </p> <h3>Problematic Value Pyramid Layering</h3> <p> Here is an example of a Linked Data value pyramid that I am stumbling across --with some frequency-- these days (note: 1 being the pyramid apex):</p> <ol> <li> <a href="http://dbpedia.org/resource/SPARQL" id="link-id10e85538">SPARQL</a> Queries</li> <li> <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id1495b578">RDF</a> Data Stores</li> <li> RDF Data Sets </li> <li> <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id158e4be0">HTTP</a> scheme URIs</li> </ol> <p> Basically, Linked Data deployment (assigning de-referencable HTTP URIs to DBMS records, their attributes, and attribute values [optionally] ) is occurring last. Even worse, this happens in the <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id626d988">context</a> of Linked Open Data oriented endeavors, resulting in nothing but confusion or inadvertent perpetuation of the overarching pragmatically challenged "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id111774b8">Semantic Web</a>" stereotype. </p> <p> As you can imagine, hitting SPARQL as your introduction to Linked Data is akin to hitting <a href="http://dbpedia.org/resource/SQL" id="link-id151f9938">SQL</a> as your introduction to Relational Database Technology, neither is an elevator-style value prop. relay mechanism. </p> <p> In the relational realm, killer demos always started with desktop productivity tools (spreadsheets, report-writers, SQL QBE tools etc.) accessing, relational data sources en route to unveiling the "Productivity" and "Agility" value prop. that such binding delivered i.e., the desktop application (clients) and the databases (servers) are distinct, but operating in a mutually beneficial manner to all, courtesy of a data access standards such as <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id1519aac0">ODBC</a> (Open Database Connectivity). </p> <p> In the Linked Data realm, learning to embrace and extend best practices from the relational dbms realm remains a challenge, a lot of this has to do with hangovers from a misguided perception that RDF databases will somehow completely replace <a href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id110dec88">RDBMS</a> engines, rather than compliment them. Thus, you have a counter productive variant of NIH (Not Invented Here) in play, taking us to the dreaded realm of: Break the Pot and You Own It (exemplified by the 11+ year Semantic Web Project comprehension and appreciation odyssey). </p> <p> From my vantage point, here is how I believe the <a href="http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/images/URI_Data_Source_SemWeb.png" id="link-id1592f528">Linked Data value pyramid should be layered</a>, especially when communicating the essential value prop.: </p> <ol> <li> HTTP URLs -- LINKs to documents (Reports) that users already appreciate, across the public Web and/or Intranets </li> <li> HTTP URIs -- typically not visually distinguishable from the URLs, so use the Data exposed by de-referencing a <a href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id11209ce8">URL</a> to show how each Data Item (<a href="http://dbpedia.org/resource/Entity" id="link-id1449b558">Entity</a> or Object) is uniquely identified by a Generic HTTP <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id112065f8">URI</a>, and how clicking on the said URIs leads to more structured metadata bearing documents available in a variety of data representation formats, thereby enabling flexible data presentation (e.g., smarter HTML pages) </li> <li> SPARQL -- when a user appreciates the data representation and presentation dexterity of a Generic HTTP URI, they will be more inclined to drill down an additional layer to unravel how HTTP URIs mechanically deliver such flexibility </li> <li> RDF Data Stores -- at this stage the user is now interested data sources behind the Generic HTTP URIs, courtesy of natural desire to tweak the data presented in the report; thus, you now have an engaged user ready to absorb the "How Generic HTTP URIs Pull This Off" message </li> <li>RDF Data Sets -- while attempting to make or tweak HTTP URIs, users become curious about the actual data loaded into the RDF Data Store, which is where data sets used to create powerful Lookup Data Spaces (e.g., <a href="http://dbpedia.org/resource/DBpedia" id="link-id110675c0">DBpedia</a>) come into play such as those from the <a href="http://www4.wiwiss.fu-berlin.de/bizer/pub/lod-datasets_2009-07-14.html" id="link-id11127ff8">LOD</a> constellation as exemplified by <a href="http://wiki.dbpedia.org/Datasets" id="link-id14a2fad8">DBpedia (extractions from Wikipedia)</a>.</li> </ol> <h3>Related</h3> <ul> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1565" id="link-id149c7048">Exploring the Linked Data Value Proposition</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1543" id="link-id14998f98">Simple Explanation of Linked Data & RDF Dynamics</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1546" id="link-id114fbd58">What is the Linked Data Meme About?</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1547" id="link-id1447ada0">Linked Data & Data Item Identifiers (Identity)</a> </li> </ul>
5 Very Important Things to Note about HTTP based Linked Data
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-01-31#1591
2010-01-31T22:31:35Z
2010-02-01T09:00:56-05:00
<ol> <li> It isn't <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-id115dfd68">World Wide Web</a> Specific (HTTP != World Wide Web)</li> <li> It isn't Open <a href="http://dbpedia.org/resource/Data">Data</a> Specific </li> <li> It isn't about "Free" (Beer or Speech) </li> <li> It isn't about Markup (so don't expect to grok it via "markup first" approach) </li> <li>It's about <a href="http://dbpedia.org/resource/Linked_Data" id="link-id13a6aa98">Hyperdata</a> - the use of HTTP and REST to deliver a powerful platform agnostic mechanism for Data Reference, Access, and Integration.</li> </ol> <p> When trying to understand HTTP based <a href="http://dbpedia.org/resource/Linked_Data" id="link-id18aa1490">Linked Data</a>, especially if you're well versed in DBMS technology use (User, Power User, Architect, Analyst, DBA, or Programmer) think: <br /> </p> <ul> <li> Open Database Connectivity (<a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id1428fba0">ODBC</a>) without operating system, data model, or wire-protocol specificity or lock-in potential </li> <li> Java Database Connectivity (<a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id18d3c2a8">JDBC</a>) without programming language specificity </li> <li> <a href="http://dbpedia.org/resource/ADO.NET" id="link-id125725b8">ADO</a>.NET without .NET runtime specificity and .NET bound language specificity </li> <li> OLE-DB without Windows operating system & programming language specificity </li> <li> XMLA without XML format specificity - with Tabular and Multidimensional results formats expressible in a variety of data representation formats. </li> <li>All of the above scoped to the Record rather than Container level, with Generic HTTP scheme URIs associated with each Record, Field, and Field value (optionally) </li> </ul> <p>Remember the need for Data Access & Integration technology is the by product of the following realities:</p> <ol> <li> Human curated data is ultimately dirty, because: <ul> <li>our thick thumbs, inattention, distractions, and general discomfort with typing, make typos prevalent</li> <li>database engines exist for a variety of data models - Graph, Relational, Hierarchical;</li> <li>within databases you have different record container/partition names e.g. Table Names;</li> <li>within a database record container you have records that are really aspects of the same thing (different keys exist in a plethora of operational / line of business systems that expose aspects of the same <a href="http://dbpedia.org/resource/Entity" id="link-id13378338">entity</a> e.g., customer data that spans Accounts, CRM, ERP application databases);</li> <li>different field names (one database has "EMP" while another has "Employee") for the same record</li>.</ul> </li> <li>Units of measurement is driven by locale, the UK office wants to see sales in Pounds Sterling while the French office prefers Euros etc.</li> <li>All of the above is subject to <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id17e46398">context</a> halos which can be quite granular re. sensitivity e.g. staff travel between locations that alter locales and their roles; basically, profiles matters a lot.</li> </ol> <h3>Related</h3> <ul> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1364" id="link-id128f0fe8">ODBC and WODBC (Web Open Database Connectivity) Comparison</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1364" id="link-id1367cd18">Creating, Deploying, and Exploiting Linked Data Presentation</a> </li> <li> <a href="http://www.odata.org/" id="link-id122ab708">Open Data Protocol Project</a> </li> </ul>
Virtuoso Chronicles from the Field: Nepomuk, KDE, and the quest for a sophisticated RDF DBMS.
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2010-01-28#1602
2010-01-28T16:14:04Z
2010-02-01T09:02:55-05:00
<p>For this particular user experience chronicle, I've simply inserted the content of <a href="http://trueg.wordpress.com" id="link-id1368b4d8">Sebastian Trueg</a>'s post titled: <a href="http://trueg.wordpress.com/2010/01/26/what-we-did-last-summer-and-the-rest-of-2009-a-look-back-onto-the-nepomuk-development-year-with-an-obscenely-long-title/#comments" id="link-id139dddb0">What We Did Last Summer (And the Rest of 2009) â A Look Back Onto the Nepomuk Development Year ...</a>, directly into this post, without any additional commentary or modification.</p> <div class="snap_preview"> <p>2009 is over. <em>Yeah, sure, trueg, we know that, it has been over for a while now!</em> Ok, ok, I am a bit late, but still I would like to get this one out - if only for my archive. So here goes.</p> <h2> <a href="http://virtuoso.openlinksw.com" id="link-id64672f0">Virtuoso</a> </h2> <p>Letâs start with the major topic of 2009 (and also the beginning of 2010): The new Nepomuk database backend: <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/" id="link-id13cc47e0">Virtuoso</a>. Everybody who used Nepomuk had the same problems: you either used the <a href="http://openrdf.org/" id="link-id13a4ac88">sesame2</a> backend which depends on Java and steals all of your memory or you were stuck with <a href="http://librdf.org/" id="link-id11b6a550">Redland</a> which had the worst performance and missed some <a href="http://dbpedia.org/resource/SPARQL" id="link-id139d82b8">SPARQL</a> features making important parts of Nepomuk like queries unusable. So more than a year ago I had the idea to use the one GPLâed database server out there that supported RDF in a professional manner: <a href="http://www.openlinksw.com/" id="link-id139fd948">OpenLin</a>kâs <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/" id="link-id12329590">Virtuoso</a>. It has all the features we need, has a very good performance, and scales up to dimensions we will probably never reach on the desktop (<em>yeah, right, and 64k main memory will be enough forever!</em>). So very early I started coding the necessary Soprano plugin which would talk to a locally running Virtuoso server through <a href="http://en.wikipedia.org/wiki/Open_Database_Connectivity" id="link-id14930d90">ODBC</a>. But since I ran into tons of small problems (as always) and got sidetracked by other tasks I did not finish it right away. OpenLink, however, was very interested in the idea of their server being part of every KDE installation (why wouldnât they ;)). So they not only introduced a <a href="http://docs.openlinksw.com/virtuoso/databaseadmsrv.html#ini_Parameters" id="link-id136763c0">lite-mode</a> which makes Virtuoso suitable for the desktop but also helped in debugging all the problems that I had left. Many test runs, patches, and a Virtuoso 5.0.12 release later <a href="http://trueg.wordpress.com/2009/10/22/virtuoso-once-more-with-feeling/" id="link-id13c5a5a0">I could finally announce the Virtuoso integration</a> as usable.</p> <p>Then end of last year I dropped the support for sesame2 and redland. Virtuoso is now the only supported database backend. The reason is simple: Virtuoso is way more powerful than the rest - not only in terms of performance - and it is fully implemented in <a href="http://dbpedia.org/resource/C%2B%2B" id="link-id13a17cd8">C</a>(++) without any traces of Java. Maybe even more important is the integration of the full text index which makes the previously used CLucene index unnecessary. Thus, we can finally combine full text and graph queries in one SPARQL query. This results in a cleaner API and way faster return of search results since there is no need to combine the results from several queries anymore. A direct result of that is the new <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/nepomuk/html/namespaceNepomuk_1_1Query.html" id="link-id149a9fd8">Nepomuk Query API</a> which I will discuss later.</p> <p>So now the only thing I am waiting for is the first bugfix release of Virtuoso 6, i.e. 6.0.1 which will fix the bugs that make 6.0.0 fail with Nepomuk. Should be out any day now. :)</p> <h2>The Nepomuk Query API</h2> <p>Querying <a href="http://dbpedia.org/resource/Data">data</a> in Nepomuk pre-KDE-4.4 could be done in one of two ways: 1. Use the very limited capabilities of the <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/nepomuk/html/classNepomuk_1_1ResourceManager.html" id="link-id139ad3d0">ResourceManager</a> to list resources with certain properties or of a certain type; or 2. Write your own <a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/AdvancedQueries" id="link-id13c74608">SPARQL query using ugly QString::arg replacements</a>.</p> <p>With the introduction of Virtuoso and its awesome power we can now do pretty much everything in one query. This allowed <a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id13c4cf18">me</a> to finally create a query API for KDE: <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/nepomuk/html/classNepomuk_1_1Query_1_1Query.html" id="link-id602e818">Nepomuk::Query::Query</a> and friends. I wonât go into much detail here since I did that <a href="http://trueg.wordpress.com/2009/12/07/convenient-querying-in-libnepomuk/" id="link-id11282ff8">before</a>.</p> <p>All in all you should remember one thing: whenever you think about writing your own SPARQL query in a KDE application - have a look at libnepomukquery. It is very likely that you can avoid the hassle of debugging a query by using the query API.</p> <p>The first nice effect of the new API (apart from me using it all over the place obviously) is the new query interface in Dolphin. Internally it simply combines a bunch of <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/nepomuk/html/classNepomuk_1_1Query_1_1Term.html" id="link-id11952270">Nepomuk::Query::Term</a> objects into a <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/nepomuk/html/classNepomuk_1_1Query_1_1AndTerm.html" id="link-id13aa85b8">Nepomuk::Query::AndTerm</a>. All very readable and no ugly query strings.</p> <div id="attachment_234" class="wp-caption aligncenter" style="width: 610px"> <a href="http://trueg.files.wordpress.com/2010/01/dolphin-kde-4-4-search-panel.png" id="link-id11454028"><img class="size-full wp-image-234" title="Dolphin Search Panel in KDE SC 4.4" src="http://trueg.files.wordpress.com/2010/01/dolphin-kde-4-4-search-panel.png?w=600&h=208" alt="" width="600" height="208" /> </a> <p class="wp-caption-text">Dolphin Search Panel in KDE SC 4.4</p> </div> <h2>Shared Desktop Ontologies</h2> <p>An important part of the <a href="http://nepomuk.semanticdesktop.org/" id="link-id13a35a90">Nepomuk research project</a> was the creation of a set of <a href="http://www.semanticdesktop.org/ontologies/" id="link-id123a6700">ontologies</a> for describing desktop resources and their metadata. After the <a href="http://xesam.org/main/XesamAbout" id="link-id13c70ab8">Xesam</a> project under the umbrella of <a href="http://www.freedesktop.org/" id="link-id139e2108">freedesktop.org</a> had been convinced to use RDF for describing file metadata they developed their own ontology. Thanks to Evgeny (phreedom) Egorochkin and Antonie Mylka both the Xesam ontology and the Nepomuk <a href="http://dbpedia.org/resource/Information" id="link-id119be318">Information</a> Elements Ontology were already very close in design. Thus, it was relatively easy to merge the two and be left with only one ontology to support. Since then not only KDE but also <a href="http://strigi.sourceforge.net/" id="link-id123b63f0">Strigi</a> and <a href="http://projects.gnome.org/tracker/" id="link-id13d02a30">Tracker</a> are using the Nepomuk ontologies.</p> <p>At the Gran Canaria Desktop Summit I met some of the guys from Tracker and we tried to come up with a plan to create a joint project to maintain the ontologies. This got off to a rough start as nobody really felt responsible. So I simply took the initiative and released the <a href="http://sourceforge.net/projects/oscaf/files/" id="link-id148d7078">shared-desktop-ontologies</a> version 0.1 in November 2009. The result was a s***-load of hate-mails and bug reports due to me breaking KDE build. But in the end it was worth it. Now the package is established and other projects can start to pick it up to create data compatible to the Nepomuk system and Tracker.</p> <p>Today the ontologies (and the shared-desktop-ontologies package) are maintained in the <a href="http://sourceforge.net/apps/trac/oscaf/" id="link-id10ce1038">Oscaf project at Sourceforge</a>. The situation is far from perfect but it is a good start. If you need specific properties in the ontologies or are thinking about creating one for your own application - come and join us in the <a href="http://sourceforge.net/apps/trac/oscaf/report/1" id="link-id11413910">bug tracker</a>â¦</p> <h2>Timeline KIO Slave</h2> <p>It was at the Akonadi meeting that Will Stephenson and myself got into talking about mimicking some <a href="http://live.gnome.org/Zeitgeist" id="link-id116888b0">Zeitgeist</a> functionality through Nepomuk. Basically it meant gathering some data when opening and when saving files. We quickly came up with a hacky patch for KIO and <a href="http://api.kde.org/4.x-api/kdelibs-apidocs/kio/html/classKFileDialog.html" id="link-id13637348">KFileDialog</a> which covered most cases and allowed us to track when a file was modified and by which application. This little experiment did not leave that state though (it will, however, this year) but another one did: Zeitgeist also provides a fuse filesystem which allows to browse the files by modification dates. Well, whatever fuse can do, KIO can do as well. <a href="http://trueg.wordpress.com/2009/10/26/just-another-way-of-browsing-your-files/" id="link-id13cf58c0">Introducing the timeline:/ KIO slave</a> which gives a calendar view onto your files.</p> <p> <a href="http://trueg.wordpress.com/2009/10/26/just-another-way-of-browsing-your-files/" id="link-id113d4988"><img class="aligncenter size-medium wp-image-208" title="timeline-october" src="http://trueg.files.wordpress.com/2009/10/timeline-october.png?w=300&h=235" alt="" width="300" height="235" /> </a> </p> <h2>Tips And Tricks</h2> <p>Well, I thought I would mention the <a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/TipsAndTricks" id="link-id116357d0">Tips And Tricks</a> section I wrote for the <a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk" id="link-id14473520">techbase</a>. It might not be a big deal but I think it contains some valuable information in case you are using Nepomuk as a developer.</p> <h2>Google Summer Of Code 2009</h2> <p>This time around I had the privilege to <a href="http://trueg.wordpress.com/2009/04/22/nepomuk-in-the-summer-x2/" id="link-id116b0cf8">mentor two students</a> in the Google Summer of Code. Alessandro Sivieri and Adam Kidder did outstanding work on <a href="http://trueg.wordpress.com/2009/08/25/gsoc-wrap-up-part-1/" id="link-id13c9f2f8">Improved Virtual Folders</a> and the <a href="http://trueg.wordpress.com/2009/08/28/gsoc-wrap-up-part-2/" id="link-id123bac00">Smart File Dialog</a>.</p> <p>Adamâs work lead me to some heavy improvements in the Nepomuk KIO slaves myself which I only finished this week (more details on that coming up). Alessandro continued his work on faceted file browsing in KDE and created:</p> <h3>Sembrowser</h3> <p>Alessandro is following up on his work to make faceted file browsing a reality in 2010 (and KDE SC 4.5). Since it was too late to get faceted browsing into KDE SC 4.4 he is working on <a href="http://www.kde-apps.org/content/show.php/Sembrowser?content=117692" id="link-id117c67d0">Sembrowser</a>, a stand-alone faceted file browser which will be the grounds for experiments until the code is merged into Dolphin.</p> <div id="attachment_238" class="wp-caption aligncenter" style="width: 310px"> <a href="http://trueg.files.wordpress.com/2010/01/sembrowser.png" id="link-id13aa8e80"><img class="size-medium wp-image-238" title="sembrowser" src="http://trueg.files.wordpress.com/2010/01/sembrowser.png?w=300&h=189" alt="" width="300" height="189" /> </a> <p class="wp-caption-text">Faceted Browsing in KDE with Sembrowser</p> </div> <h2>Nepomuk Workshops</h2> <p>In 2009 I organized the first Nepomuk workshop in Freiburg, Germany. And also the second one. While <a href="http://trueg.wordpress.com/2009/06/23/the-first-nepomuk-workshop-its-a-wrap/" id="link-id13b553e0">I reported properly on the first one</a> I still owe a summary for the second one. I will get around to that - sooner or later. ;)</p> <h2>CMake Magic</h2> <p> <a href="http://soprano.sourceforge.net/" id="link-id148bfad8">Soprano</a> gives us a nice command line tool to create a C++ namespace from an ontology file: <a href="http://soprano.sourceforge.net/apidox/trunk/soprano_devel_tools.html" id="link-iddac3b58">onto2vocabularyclass</a>. It produces nice convenience namespaces like <a href="http://soprano.sourceforge.net/apidox/trunk/namespaceSoprano_1_1Vocabulary_1_1NAO.html" id="link-idfd4b970">Soprano::Vocabulary::NAO</a>. Nepomuk adds another tool named <a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/ResourceGenerator" id="link-id11b60200">nepomuk-rcgen</a>. Both were a bit clumsy to use before. Now we have nice cmake macros which make it very simple to use both.</p> <p>See the <a href="http://techbase.kde.org/Development/Tutorials/Metadata/Nepomuk/ResourceGenerator" id="link-id11963490">techbase article</a> on how to use the new macros.</p> <h2>Bangarang</h2> <p>Without my <a href="http://dbpedia.org/resource/Knowledge" id="link-iddcbd7c8">knowledge</a> (imagine that!) Andrew Lake created an amazing new media player named <a href="http://bangarangkde.wordpress.com/" id="link-id113d9500">Bangarang</a> - <em>a Jamaican word for noise, chaos or disorder.</em> This player is Nepomuk-enabled in the sense that it has a media library which lets you browse your media files based on the Nepomuk data. It remembers the number of times a song or a video has been played and when it was played last. It allows to add detail such as the TV series name, season, episode number, or actors that are in the video - all through Nepomuk (I hope we will soon get <a href="http://thetvdb.com/" id="link-id1154d7a0">tvdb</a> integration).</p> <div id="attachment_242" class="wp-caption aligncenter" style="width: 310px"> <a href="http://trueg.files.wordpress.com/2010/01/bangarang2.png" id="link-id148bcdb8"><img class="size-medium wp-image-242" title="bangarang2" src="http://trueg.files.wordpress.com/2010/01/bangarang2.png?w=300&h=208" alt="" width="300" height="208" /> </a> <p class="wp-caption-text">Edit metadata directly in Bangarang</p> </div> <div id="attachment_243" class="wp-caption aligncenter" style="width: 303px"> <a href="http://trueg.files.wordpress.com/2010/01/bangarang-dolphin-fileinfo.png" id="link-id11c70a48"><img class="size-full wp-image-243" title="bangarang-dolphin-fileinfo" src="http://trueg.files.wordpress.com/2010/01/bangarang-dolphin-fileinfo.png?w=293&h=242" alt="" width="293" height="242" /> </a> <p class="wp-caption-text">Dolphin showing TV episode metadata created by Bangarang</p> </div> <div id="attachment_245" class="wp-caption aligncenter" style="width: 310px"> <a href="http://trueg.files.wordpress.com/2010/01/bangarang-dolphin-search.png" id="link-id149200f8"><img class="size-medium wp-image-245" title="bangarang-dolphin-search" src="http://trueg.files.wordpress.com/2010/01/bangarang-dolphin-search.png?w=300&h=212" alt="" width="300" height="212" /> </a> <p class="wp-caption-text">And of course searching for it works, too...</p> </div> <div id="attachment_244" class="wp-caption aligncenter" style="width: 310px"> <a href="http://trueg.files.wordpress.com/2010/01/bangarang1.png" id="link-id114f7c80"><img class="size-medium wp-image-244" title="bangarang1" src="http://trueg.files.wordpress.com/2010/01/bangarang1.png?w=300&h=225" alt="" width="300" height="225" /> </a> <p class="wp-caption-text">And it is pretty, too...</p> </div> <p>I am especially excited about this since finally applications not written or mentored by me start contributing Nepomuk data.</p> <h2>Gran Canaria Desktop Summit</h2> <p>2009 was also the year of the first Gnome-KDE joint-conference. Let me make a bulletin for completeness and refer to <a href="http://trueg.wordpress.com/2009/07/13/gran-canaria-desktop-summit-2009-the-nepomuk-perspective/" id="link-id143ff668">my previous blog post reporting on my experiences on the island</a>.</p> <p>Well, that was by far not all I did in 2009 but I think I covered most of the important topics. And after all it is âjust a blog entryâ - there is no need for completeness. Thanks for reading.</p> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/trueg.wordpress.com/232/" id="link-id118a1950"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/trueg.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/trueg.wordpress.com/232/" id="link-id148ffb08"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/trueg.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/trueg.wordpress.com/232/" id="link-id13c65a88"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/trueg.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/trueg.wordpress.com/232/" id="link-id119b85a0"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/trueg.wordpress.com/232/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/trueg.wordpress.com/232/" id="link-id13f5d6b8"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/trueg.wordpress.com/232/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=trueg.wordpress.com&blog=6648236&post=232&subd=trueg&ref=&feed=1" /> </div>"
BBC Linked Data Meshup In 3 Steps
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2009-06-12#1560
2009-06-12T18:09:08Z
2009-06-12T16:38:34.000046-04:00
<h3>Situation Analysis:</h3> <p>Dr. Dre is one of the artists in the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id1117a230">Linked Data</a> <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id10ff0fc0">Space</a> we host for the <a href="http://dbpedia.org/resource/BBC" id="link-id13cdba70">BBC</a>. He is also referenced in music oriented <a href="http://dbpedia.org/resource/Data">data</a> spaces such as <a href="http://dbpedia.org/resource/DBpedia" id="link-id119688a0">DBpedia</a>, <a href="http://musicbrainz.org/" id="link-id146f7d00">MusicBrainz</a> and <a href="http://last.FM" id="link-id15f50698">Last.FM</a> (to name a few). </p> <h3>Challenge:</h3> <p>How do I obtain a holistic view of the <a href="http://dbpedia.org/resource/Entity" id="link-id147a1490">entity</a> "Dr. Dre" across the BBC, MusicBrainz, and Last.FM data spaces? We know the BBC published Linked Data, but what about Last.FM and MusicBrainz? Both of these data spaces only expose XML or JSON data via REST APIs?</p> <h3>Solution:</h3> Simple 3 step Linked Data Meshup courtesy of <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSponger" id="link-id147faf78">Virtuoso's in-built RDFizer Middleware</a> "the Sponger" (think <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id115ecea0">ODBC</a> Driver Manager for the Linked Data <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id11806418">Web</a>) and its numerous Cartridges (think ODBC Drivers for the Linked Data Web). <h3>Steps:</h3> <ol> <li> Go to Last.FM and search using pattern: Dr. Dre (you will end up with this <a href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id11778f10">URL</a>: http://www.last.fm/music/Dr.+Dre)</li> <li> Go to the Virtuoso powered <a href="http://bbc.openlinksw.com" id="link-id14f40338">BBC Linked Data Space home page</a> and enter: http://bbc.openlinksw.com/about/html/http://www.last.fm/music/Dr.+Dre</li> <li> Go to the BBC Linked Data Space home page and type full text pattern (using default tab): Dr. Dre, then view <a href="http://bbc.openlinksw.com/fct/rdfdesc/usage.vsp?g=http%3A%2F%2Fwww.bbc.co.uk%2Fmusic%2Fartists%2F5f6ab597-f57a-40da-be9e-adad48708203%23artist&tp=4&sid=519&urilookup=&orig_refr=http://bbc.openlinksw.com/describe/?url=http://www.bbc.co.uk/music/artists/5f6ab597-f57a-40da-be9e-adad48708203" id="link-id119ac658">Dr. Dre's metadata via the Statistics Link</a>. </li> </ol> <h3>What Happened?</h3> <p>The following took place:</p> <ol> <li> Virtuoso <a href="http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html" id="link-id11a46fd8">Sponger</a> sent an HTTP GET to Last.FM</li> <li> Distilled the "Artist" entity "Dr. Dre" from the page, and made a <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id1297cc68">Linked Data graph</a> </li> <li> Inverse Functional Property and sameAs reasoning handled the Meshup (augmented graph from a conjunctive query processing pipeline)</li> <li>Links for "Dr. Dre" across <a href="http://bbc.openlinksw.com/describe/?url=http%3A%2F%2Fdbpedia.org%2Fresource%2FDr._Dre" id="link-id119e63e8">BBC (sameAs), Last.FM (seeAlso), via DBpedia URI</a>.</li> </ol> <p>The <a href="http://bbc.openlinksw.com/about/rdf/http/www.last.fm/music/Dr.+Dre#this" id="link-id111f6130">new enhanced URI for Dr. Dre</a> now provides a rich holistic view of the aforementioned "Artist" entity. This URI is usable anywhere on the Web for Linked Data Conduction :-)</p> <h3>Related (as in NearBy)</h3> <ul> <li> <a href="http://blogs.talis.com/n2/archives/617" id="link-idf3e0898">Augmenting Last.fm Data with BBC data on the Talis Platform</a> </li> </ul>
Time for RDBMS Primacy Downgrade is Nigh! (No Embedded Images Edition - Update 1)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2009-01-27#1520
2009-01-27T19:19:44Z
2009-03-17T11:50:58-04:00
<p> As the world works it way through a "once in a generation" economic crisis, the long overdue downgrade of the <a href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id15750540">RDBMS</a>, from its pivotal position at the apex of the <a href="http://dbpedia.org/resource/Data" id="link-id0x24ea3650">data</a> access and data management pyramid is nigh.</p> <h3>What is the Data Access, and Data Management Value Pyramid?</h3> <p> As depicted below, a top-down view of the data access and data management value chain. The term: apex, simply indicates value primacy, which takes the form of a data access API based entry point into a DBMS realm -- aligned to an underlying data model. Examples of data access APIs include: Native Call Level Interfaces (CLIs), <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id11c254c0">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id149b16a8">JDBC</a>, <a href="http://dbpedia.org/resource/ADO.NET" id="link-id11451eb0">ADO</a>.NET, <a href="http://dbpedia.org/resource/OLE_DB" id="link-id15b02478">OLE-DB</a>, <a href="http://dbpedia.org/resource/XML_for_Analysis" id="link-id1181fa10">XMLA</a>, and <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-id0x1f8394a8">Web</a> Services.</p> See: <a href="http://virtuoso.openlinksw.com/images/Agility_Value_Factors_Pyramid.png" id="link-id146cadd8"> AVF Pyramid Diagram.</a> <p> The degree to which ad-hoc views of data managed by a DBMS can be produced and dispatched to relevant data consumers (e.g. people), without compromising concurrency, data durability, and security, collectively determine the "Agility Value Factor" (AVF) of a given DBMS. Remember, agility as the cornerstone of environmental adaptation is as old as the concept of evolution, and intrinsic to all pursuits of primacy. </p> <p>In simpler business oriented terms, look at AVF as the degree to which DBMS technology affects the ability to effectively implement "Market Leadership Discipline" along the following pathways: innovation, operation excellence, or customer intimacy. </p> <h3>Why has RDBMS Primacy has Endured?</h3> <p> Historically, at least since the late '80s, the RDBMS genre of DBMS has consistently offered the highest AVF relative to other DBMS genres en route to primacy within the value pyramid. The desire to improve on paper reports and spreadsheets is basically what DBMS technology has fundamentally addressed to date, even though conceptual level interaction with data has never been its forte.</p> See: <a href="http://virtuoso.openlinksw.com/images/Old_RDBMS_Primacy_Pyramid.png" id="link-id134dab90"> RDBMS Primacy Diagram.</a> <p> For more then 10 years -- at the very least -- limitations of the traditional RDBMS in the realm of conceptual level interaction with data across diverse data sources and schemas (enterprise, Web, and <a href="http://dbpedia.org/resource/Internet" id="link-id116001c0">Internet</a>) has been crystal clear to many RDBMS technology practitioners, as indicated by some of the quotes excerpted below:</p> <blockquote> <cite> <p> "Future of Database Research is excellent, but what is the future of data?" </p> "..it is hard for <a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id14932398">me</a> to disagree with the conclusions in this report. It captures exactly the right thoughts, and should be a must read for everyone involved in the area of databases and database research in particular." <p>-- <a href="http://jhingran.typepad.com/anant_jhingrans_musings/" id="link-id11334c50">Dr. Anant Jingran</a>, CTO, IBM <a href="http://dbpedia.org/resource/Information" id="link-id150c7970">Information</a> Management Systems, commenting on the <a href="http://db.cs.berkeley.edu/claremont/" id="link-id11c3b408">2007 RDBMS technology retreat</a> attended by a number of key DBMS technology pioneers and researchers.</p> </cite> </blockquote> <blockquote> <cite> <p> "<a href="http://www.databasecolumn.com/2007/09/one-size-fits-all.html" id="link-id15c14f08">One size fits all: A concept whose time has come and gone</a> </p> <p> </p> <ol> <li> They are direct descendants of System R and <a href="http://dbpedia.org/resource/Ingres" id="link-id146da780">Ingres</a> and were architected more than 25 years ago</li> <li> They are advocating "one size fits all"; i.e. a single engine that solves all DBMS needs. </li> </ol> <p>-- Prof. <a href="http://en.wikipedia.org/wiki/Michael_Stonebraker" id="link-id145c4e28">Michael Stonebreaker</a>, one of the founding fathers of the RDBMS industry.</p> </cite> </blockquote> <p>Until this point in time, the requisite confluence of "circumstantial pain" and "open standards" based technology required to enable an objective "compare and contrast" of RDBMS engine virtues and viable alternatives hasn't occurred. Thus, the RDBMS has endured it position of primacy albeit on a "one size fits all basis". </p> <h4>Circumstantial Pain</h4> <p> As mentioned earlier, we are in the midst of an economic crisis that is ultimately about a consistent inability to connect dots across a substrate of interlinked data sources that transcend traditional data access boundaries with high doses of schematic heterogeneity. Ironically, in a era of the dot-com, we haven't been able to make meaningful connections between relevant "real-world things" that extend beyond primitive data hosted database tables and content management style document containers; we've struggled to achieve this in the most basic sense, let alone evolve our ability to connect inline with the <a href="http://www.vldb2007.org/program/slides/s1161-brodie.pdf" id="link-id11a0dcf0">exponential rate at which the Internet & Web are spawning "universes of discourse" (data spaces) that emanate from user activity</a> (within the enterprise and across the Internet & Web). In a nutshell, we haven't been able to upgrade our interaction with data such that "conceptual models" and resulting "<a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id12da4b00">context</a> lenses" (or facets) become concrete; by this I mean: real-world <a href="http://dbpedia.org/resource/Entity" id="link-id146a48a8">entity</a> interaction making its way into the computer realm as opposed to the impedance we all suffer today when we transition from conceptual model interaction (real-world) to logical model interaction (when dealing with RDBMS based data access and data management). </p> <p>Here are some simple examples of what I can only best describe as: "critical dots unconnected", resulting from an inability to interact with data conceptually:</p> <strong>Government (Globally) -</strong> <p> Financial regulatory bodies couldn't effectively discern that a <a href="http://dbpedia.org/resource/Credit_default_swap" id="link-id115ba0e0">Credit Default Swap</a> is an Insurance policy in all but literal name. And in not doing so the cost of an unregulated <a href="http://dbpedia.org/resource/Insurance" id="link-id158d4960">insurance policy</a> laid the foundation for exacerbating the toxicity of fatally flawed mortgage backed securities. Put simply: a flawed insurance policy was the fallback on a toxic security that financiers found exotic based on superficial packaging.</p> <strong>Enterprises - </strong> <p> Banks still don't understand that capital really does exists in tangible and intangible forms; with the intangible being the variant that is inherently dynamic. For example, a tech companies intellectual capital far exceeds the value of fixture, fittings, and buildings, but you be amazed to find that in most cases this vital asset has not significant value when banks get down to the nitty gritty of debt collateral; instead, a buffer of flawed securitization has occurred atop a borderline static asset class covering the aforementioned buildings, fixtures, and fittings. </p> <p> In the general enterprise arena, IT executives continued to "rip and replace" existing technology without ever effectively addressing the timeless inability to connect data across disparate data silos generated by internal enterprise applications, let alone the broader need to mesh data from the inside with external data sources. No correlations made between the growth of buzzwords and the compounding nature of data integration challenges. It's 2009 and only a miniscule number of executives dare fantasize about being anywhere within distance of the: relevant information at your fingertips vision. </p> <p> Looking more holistically at data interaction in general, whether you interact with data in the enterprise space (i.e., at work) or on the Internet or Web, you ultimately are delving into a mishmash of disparate computer systems, applications, service (Web or SOA), and databases (of the RDBMS variety in a majority of cases) associated with a plethora of disparate schemas. Yes, but even today "rip and replace" is still the norm pushed by most vendors; pitting one mono culture against another as exemplified by irrelevances such as: FOSS/LAMP vs Commercial or Web vs. Enterprise, when none of this matters if the data access and integration issues are recognized let alone addressed (see: <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1497?sid=0df0294caee8b37925c6a888bbbca136&realm=wa" id="link-id15c27300">Applications are Like Fish and Data Like Wine</a>). </p> <p> Like the current credit-crunch, exponential growth of data originating from disparate application databases and associated schemas, within shrinking processing time frames, has triggered a rethinking of what defines data access and data management value today en route to an inevitable RDBMS downgrade within the value pyramid.</p> <h3>Technology</h3> <p>There have been many attempts to address real-world modeling requirements across the broader DBMS community from Object Databases to Object-Relational Databases, and more recently the emergence of simple <a href="http://dbpedia.org/resource/Entity-attribute-value_model" id="link-id1128dad0">Entity</a>-Attribute-Value model DBMS engines. In all cases failure has come down to the existence of one or more of the following deficiencies, across each potential alternative:</p> <ol> <li>Query language standardization - nothing close to <a href="http://dbpedia.org/resource/SQL" id="link-id16002d60">SQL</a> standardization</li> <li>Data Access API standardization - nothing close to ODBC, JDBC, OLE-DB, or ADO.NET</li> <li>Wire protocol standardization - nothing close to HTTP</li> <li>Distributed Identity infrastructure - nothing close to the non-repudiatable digital Identity that <a href="http://dbpedia.org/resource/Friend_of_a_friend" id="link-id14926b18">foaf</a>+ssl accords</li> <li>Use of Identifiers as network based pointers to data sources - nothing close to RDF based <a href="http://dbpedia.org/resource/Linked_Data" id="link-id16180a28">Linked Data</a> </li> <li>Negotiable data representation - nothing close to Mime and HTTP based Content Negotiation</li> <li>Scalability especially in the era of Internet & Web scale.</li> </ol> <h4>Entity-Attribute-Value with Classes & Relationships (<a href="http://dbpedia.org/resource/Entity-attribute-value_model" id="link-id13e741b8">EAV</a>/CR) data models</h4> <p>A common characteristic shared by all post-relational DBMS management systems (from Object Relational to pure Object) is an orientation towards variations of EAV/CR based data models. Unfortunately, all efforts in the EAV/CR realm have typically suffered from at least one of the deficiencies listed above. In addition, the same "one DBMS model fits all" approach that lies at the heart of the RDBMS downgrade also exists in the EAV/CR realm.</p> <h3>What Comes Next?</h3> <p>The RDBMS is not going away (ever), but its era of primacy -- by virtue of its placement at the apex of the data access and data management value pyramid -- is over! I make this bold claim for the following reasons: </p> <ol> <li> The Internet aided "Global Village" has brought "<a href="http://en.wikipedia.org/wiki/Open_World_Assumption" id="link-id1148e560">Open World</a>" vs "<a href="http://en.wikipedia.org/wiki/Closed_World_Assumption" id="link-id11967cd0">Closed World</a>" assumption issues to the fore e.g., the current global economic crisis remains centered on the inability to connect dots across "Open World" and "Closed World" data frontiers </li> <li> Entity-Attribute-Value with Classes & Relationships (EAV/CR) based DBMS models are more effective when dealing with disparate data associated with disparate schemas, across disparate DBMS engines, host operating systems, and networks. </li> </ol> <p>Based on the above, it is crystal clear that a different kind of DBMS -- one with higher AVF relative to the RDBMS -- needs to sit atop today's data access and data management value pyramid. The characteristics of this DBMS must include the following:</p> <ol> <li> Every item of data (Datum/Entity/Object/Resource) has Identity</li> <li> Identity is achieved via Identifiers that aren't locked at the DBMS, OS, Network, or Application levels</li> <li> Object Identifiers and Object values are independent (extricably linked by association)</li> <li> Object values should be de-referencable via Object Identifier</li> <li> Representation of de-referenced value graph (entity, attributes, and values mesh) must be negotiable (i.e. content negotiation)</li> <li>Structured query language must provide mechanism for Creation, Deletion, Updates, and Querying of data objects</li> <li> Performance & Scalability across "Closed World" (enterprise) and "Open World" (Internet & Web) realms.</li> </ol> <p>Quick recap, I am not saying that RDBMS engine technology is dead or obsolete. I am simply stating that the era of RDBMS primacy within the data access and data management value pyramid is over. </p> <p>The problem domain (conceptual model views over heterogeneous data sources) at the apex of the aforementioned pyramid has simply evolved beyond the natural capabilities of the RDBMS which is rooted in "Closed World" assumptions re., data definition, access, and management. The need to maintain domain based conceptual interaction with data is now palpable at every echelon within our "Global Village" - Internet, Web, Enterprise, Government etc.</p> <p>It is my personal view that an EAV/CR model based DBMS, with support for the seven items enumerated above, can trigger the long anticipated RDBMS downgrade. Such a DBMS would be inherently multi-model because you would need to the best of RDBMS and EAV/CR model engines in a single product, with in-built support for HTTP and other Internet protocols in order to effectively address data representation and serialization issues.</p> <h4>EAV/CR Oriented Data Access & Management Technology</h4> <p>Examples of contemporary EAV/CR frameworks that provide concrete conceptual layers for data access and data management currently include:</p> <ul> <li> <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id115d1cb0"> Resource Description Framework</a> (RDF) - an EAV/CR based framework</li> <li> <a href="http://dbpedia.org/resource/Linked_Data" id="link-id116cf810">RDF Linked Data </a>- EAV/CR based framework that mandates de-referencable HTTP based Identifiers</li> <li> <a href="http://dbpedia.org/resource/ADO.NET_Entity_Framework" id="link-id13daa160">ADO.NET Entity Frameworks</a> - Microsoft .NET based EAV/CR framework</li> <li> <a href="http://dbpedia.org/page/Core_Data" id="link-id11111838">Core Data Services </a>- Mac OS X based EAV/CR framework that evolved from NeXT's <a href="http://dbpedia.org/resource/Enterprise_Objects_Framework" id="link-id15c27df0">Enterprise Object Frameworks</a> (EOF).</li> </ul> <p>The frameworks above provide the basis for a revised AVF pyramid, as depicted below, that reflects today's data access and management realities i.e., an Internet & Web driven global village comprised of interlinked distributed data objects, compatible with "Open World" assumptions.</p> See: <a href="http://virtuoso.openlinksw.com/images/New_EAV_RDBMS_Pyramid.png" id="link-id158e0760">New EAV/CR Primacy Diagram.</a> <h3>Related</h3> <ul> <li> <a href="http://dynamicorange.com/2009/01/22/blueblog-how-and-why-glue-is-using-amazon-simpledb-instead-of-a-relational-database/" id="link-id15e07c10">How & Why Glue is Using Amazon SimpleDB</a> </li> <li> <a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/user/clamen/OODBMS/Manifesto/htManifesto/node4.html#SECTION00022000000000000000" id="link-id116cf450">Object Database Manifesto (Identity excerpt)</a> </li> <li> <a href="http://www.unixspace.com/context/databases.html" id="link-id150b2c20">Database Models Overview</a> </li> <li> <a href="http://www.youtube.com/watch?v=WEj9vqVvHPc&feature=related" id="link-id0x1135d978">Ted Nelson Explaining Irregularity and Idiosyncrasy of Data Structures</a> - ZigZag Demo </li> </ul>
The Time for RDBMS Primacy Downgrade is Nigh!
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2009-01-24#1519
2009-01-25T00:04:00Z
2009-06-03T18:09:58.000001-04:00
<p> As the world works it way through a "once in a generation" economic crisis, the long overdue downgrade of the <a href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id15750540">RDBMS</a>, from its pivotal position at the apex of the <a href="http://dbpedia.org/resource/Data" id="link-id0x66a74b8">data</a> access and data management pyramid is nigh.</p> <h3>What is the Data Access, and Data Management Value Pyramid?</h3> <p> As depicted below, a top-down view of the data access and data management value chain. The term: apex, simply indicates value primacy, which takes the form of a data access API based entry point into a DBMS realm -- aligned to an underlying data model. Examples of data access APIs include: Native Call Level Interfaces (CLIs), <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id11c254c0">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id149b16a8">JDBC</a>, <a href="http://dbpedia.org/resource/ADO.NET" id="link-id11451eb0">ADO</a>.NET, <a href="http://dbpedia.org/resource/OLE_DB" id="link-id15b02478">OLE-DB</a>, <a href="http://dbpedia.org/resource/XML_for_Analysis" id="link-id1181fa10">XMLA</a>, and <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-id0x2fef498">Web</a> Services.</p> <div> <img alt="Image" src="http://virtuoso.openlinksw.com/images/Agility_Value_Factors_Pyramid.png" /> </div> <p> The degree to which ad-hoc views of data managed by a DBMS can be produced and dispatched to relevant data consumers (e.g. people), without compromising concurrency, data durability, and security, collectively determine the "Agility Value Factor" (AVF) of a given DBMS. Remember, agility as the cornerstone of environmental adaptation is as old as the concept of evolution, and intrinsic to all pursuits of primacy. </p> <p>In simpler business oriented terms, look at AVF as the degree to which DBMS technology affects the ability to effectively implement "Market Leadership Discipline" along the following pathways: innovation, operation excellence, or customer intimacy. </p> <h3>Why has RDBMS Primacy has Endured?</h3> <p> Historically, at least since the late '80s, the RDBMS genre of DBMS has consistently offered the highest AVF relative to other DBMS genres en route to primacy within the value pyramid. The desire to improve on paper reports and spreadsheets is basically what DBMS technology has fundamentally addressed to date, even though conceptual level interaction with data has never been its forte.</p> <div> <img alt="Image" src="http://virtuoso.openlinksw.com/images/Old_RDBMS_Primacy_Pyramid.png" /> </div> <p> For more then 10 years -- at the very least -- limitations of the traditional RDBMS in the realm of conceptual level interaction with data across diverse data sources and schemas (enterprise, Web, and <a href="http://dbpedia.org/resource/Internet" id="link-id116001c0">Internet</a>) has been crystal clear to many RDBMS technology practitioners, as indicated by some of the quotes excerpted below:</p> <blockquote> <cite> <p> "Future of Database Research is excellent, but what is the future of data?" </p> "..it is hard for <a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id14932398">me</a> to disagree with the conclusions in this report. It captures exactly the right thoughts, and should be a must read for everyone involved in the area of databases and database research in particular." <p>-- <a href="http://jhingran.typepad.com/anant_jhingrans_musings/" id="link-id11334c50">Dr. Anant Jingran</a>, CTO, IBM <a href="http://dbpedia.org/resource/Information" id="link-id150c7970">Information</a> Management Systems, commenting on the <a href="http://db.cs.berkeley.edu/claremont/" id="link-id11c3b408">2007 RDBMS technology retreat</a> attended by a number of key DBMS technology pioneers and researchers.</p> </cite> </blockquote> <blockquote> <cite> <p> "<a href="http://www.databasecolumn.com/2007/09/one-size-fits-all.html" id="link-id15c14f08">One size fits all: A concept whose time has come and gone</a> </p> <p> </p> <ol> <li> They are direct descendants of System R and <a href="http://dbpedia.org/resource/Ingres" id="link-id146da780">Ingres</a> and were architected more than 25 years ago</li> <li> They are advocating "one size fits all"; i.e. a single engine that solves all DBMS needs. </li> </ol> <p>-- Prof. <a href="http://en.wikipedia.org/wiki/Michael_Stonebraker" id="link-id145c4e28">Michael Stonebreaker</a>, one of the founding fathers of the RDBMS industry.</p> </cite> </blockquote> <p>Until this point in time, the requisite confluence of "circumstantial pain" and "open standards" based technology required to enable an objective "compare and contrast" of RDBMS engine virtues and viable alternatives hasn't occurred. Thus, the RDBMS has endured it position of primacy albeit on a "one size fits all basis". </p> <h4>Circumstantial Pain</h4> <p> As mentioned earlier, we are in the midst of an economic crisis that is ultimately about a consistent inability to connect dots across a substrate of interlinked data sources that transcend traditional data access boundaries with high doses of schematic heterogeneity. Ironically, in a era of the dot-com, we haven't been able to make meaningful connections between relevant "real-world things" that extend beyond primitive data hosted database tables and content management style document containers; we've struggled to achieve this in the most basic sense, let alone evolve our ability to connect inline with the <a href="http://www.vldb2007.org/program/slides/s1161-brodie.pdf" id="link-id11a0dcf0">exponential rate at which the Internet & Web are spawning "universes of discourse" (data spaces) that emanate from user activity</a> (within the enterprise and across the Internet & Web). In a nutshell, we haven't been able to upgrade our interaction with data such that "conceptual models" and resulting "<a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id12da4b00">context</a> lenses" (or facets) become concrete; by this I mean: real-world <a href="http://dbpedia.org/resource/Entity" id="link-id146a48a8">entity</a> interaction making its way into the computer realm as opposed to the impedance we all suffer today when we transition from conceptual model interaction (real-world) to logical model interaction (when dealing with RDBMS based data access and data management). </p> <p>Here are some simple examples of what I can only best describe as: "critical dots unconnected", resulting from an inability to interact with data conceptually:</p> <strong>Government (Globally) -</strong> <p> Financial regulatory bodies couldn't effectively discern that a <a href="http://dbpedia.org/resource/Credit_default_swap" id="link-id115ba0e0">Credit Default Swap</a> is an Insurance policy in all but literal name. And in not doing so the cost of an unregulated <a href="http://dbpedia.org/resource/Insurance" id="link-id158d4960">insurance policy</a> laid the foundation for exacerbating the toxicity of fatally flawed mortgage backed securities. Put simply: a flawed insurance policy was the fallback on a toxic security that financiers found exotic based on superficial packaging.</p> <strong>Enterprises - </strong> <p> Banks still don't understand that capital really does exists in tangible and intangible forms; with the intangible being the variant that is inherently dynamic. For example, a tech companies intellectual capital far exceeds the value of fixture, fittings, and buildings, but you be amazed to find that in most cases this vital asset has not significant value when banks get down to the nitty gritty of debt collateral; instead, a buffer of flawed securitization has occurred atop a borderline static asset class covering the aforementioned buildings, fixtures, and fittings. </p> <p> In the general enterprise arena, IT executives continued to "rip and replace" existing technology without ever effectively addressing the timeless inability to connect data across disparate data silos generated by internal enterprise applications, let alone the broader need to mesh data from the inside with external data sources. No correlations made between the growth of buzzwords and the compounding nature of data integration challenges. It's 2009 and only a miniscule number of executives dare fantasize about being anywhere within distance of the: relevant information at your fingertips vision. </p> <p> Looking more holistically at data interaction in general, whether you interact with data in the enterprise space (i.e., at work) or on the Internet or Web, you ultimately are delving into a mishmash of disparate computer systems, applications, service (Web or SOA), and databases (of the RDBMS variety in a majority of cases) associated with a plethora of disparate schemas. Yes, but even today "rip and replace" is still the norm pushed by most vendors; pitting one mono culture against another as exemplified by irrelevances such as: FOSS/LAMP vs Commercial or Web vs. Enterprise, when none of this matters if the data access and integration issues are recognized let alone addressed (see: <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1497?sid=0df0294caee8b37925c6a888bbbca136&realm=wa" id="link-id15c27300">Applications are Like Fish and Data Like Wine</a>). </p> <p> Like the current credit-crunch, exponential growth of data originating from disparate application databases and associated schemas, within shrinking processing time frames, has triggered a rethinking of what defines data access and data management value today en route to an inevitable RDBMS downgrade within the value pyramid.</p> <h3>Technology</h3> <p>There have been many attempts to address real-world modeling requirements across the broader DBMS community from Object Databases to Object-Relational Databases, and more recently the emergence of simple <a href="http://dbpedia.org/resource/Entity-attribute-value_model" id="link-id1128dad0">Entity</a>-Attribute-Value model DBMS engines. In all cases failure has come down to the existence of one or more of the following deficiencies, across each potential alternative:</p> <ol> <li>Query language standardization - nothing close to <a href="http://dbpedia.org/resource/SQL" id="link-id16002d60">SQL</a> standardization</li> <li>Data Access API standardization - nothing close to ODBC, JDBC, OLE-DB, or ADO.NET</li> <li>Wire protocol standardization - nothing close to HTTP</li> <li>Distributed Identity infrastructure - nothing close to the non-repudiatable digital Identity that <a href="http://dbpedia.org/resource/Friend_of_a_friend" id="link-id14926b18">foaf</a>+ssl accords</li> <li>Use of Identifiers as network based pointers to data sources - nothing close to RDF based <a href="http://dbpedia.org/resource/Linked_Data" id="link-id16180a28">Linked Data</a> </li> <li>Negotiable data representation - nothing close to Mime and HTTP based Content Negotiation</li> <li>Scalability especially in the era of Internet & Web scale.</li> </ol> <h4>Entity-Attribute-Value with Classes & Relationships (<a href="http://dbpedia.org/resource/Entity-attribute-value_model" id="link-id13e741b8">EAV</a>/CR) data models</h4> <p>A common characteristic shared by all post-relational DBMS management systems (from Object Relational to pure Object) is an orientation towards variations of EAV/CR based data models. Unfortunately, all efforts in the EAV/CR realm have typically suffered from at least one of the deficiencies listed above. In addition, the same "one DBMS model fits all" approach that lies at the heart of the RDBMS downgrade also exists in the EAV/CR realm.</p> <h3>What Comes Next?</h3> <p>The RDBMS is not going away (ever), but its era of primacy -- by virtue of its placement at the apex of the data access and data management value pyramid -- is over! I make this bold claim for the following reasons: </p> <ol> <li> The Internet aided "Global Village" has brought "<a href="http://en.wikipedia.org/wiki/Open_World_Assumption" id="link-id1148e560">Open World</a>" vs "<a href="http://en.wikipedia.org/wiki/Closed_World_Assumption" id="link-id11967cd0">Closed World</a>" assumption issues to the fore e.g., the current global economic crisis remains centered on the inability to connect dots across "Open World" and "Closed World" data frontiers </li> <li> Entity-Attribute-Value with Classes & Relationships (EAV/CR) based DBMS models are more effective when dealing with disparate data associated with disparate schemas, across disparate DBMS engines, host operating systems, and networks. </li> </ol> <p>Based on the above, it is crystal clear that a different kind of DBMS -- one with higher AVF relative to the RDBMS -- needs to sit atop today's data access and data management value pyramid. The characteristics of this DBMS must include the following:</p> <ol> <li> Every item of data (Datum/Entity/Object/Resource) has Identity</li> <li> Identity is achieved via Identifiers that aren't locked at the DBMS, OS, Network, or Application levels</li> <li> Object Identifiers and Object values are independent (extricably linked by association)</li> <li> Object values should be de-referencable via Object Identifier</li> <li> Representation of de-referenced value graph (entity, attributes, and values mesh) must be negotiable (i.e. content negotiation)</li> <li>Structured query language must provide mechanism for Creation, Deletion, Updates, and Querying of data objects</li> <li> Performance & Scalability across "Closed World" (enterprise) and "Open World" (Internet & Web) realms.</li> </ol> <p>Quick recap, I am not saying that RDBMS engine technology is dead or obsolete. I am simply stating that the era of RDBMS primacy within the data access and data management value pyramid is over. </p> <p>The problem domain (conceptual model views over heterogeneous data sources) at the apex of the aforementioned pyramid has simply evolved beyond the natural capabilities of the RDBMS which is rooted in "Closed World" assumptions re., data definition, access, and management. The need to maintain domain based conceptual interaction with data is now palpable at every echelon within our "Global Village" - Internet, Web, Enterprise, Government etc.</p> <p>It is my personal view that an EAV/CR model based DBMS, with support for the seven items enumerated above, can trigger the long anticipated RDBMS downgrade. Such a DBMS would be inherently multi-model because you would need to the best of RDBMS and EAV/CR model engines in a single product, with in-built support for HTTP and other Internet protocols in order to effectively address data representation and serialization issues.</p> <h4>EAV/CR Oriented Data Access & Management Technology</h4> <p>Examples of contemporary EAV/CR frameworks that provide concrete conceptual layers for data access and data management currently include:</p> <ul> <li> <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id115d1cb0"> Resource Description Framework</a> (RDF) - an EAV/CR based framework</li> <li> <a href="http://dbpedia.org/resource/Linked_Data" id="link-id116cf810">RDF Linked Data </a>- EAV/CR based framework that mandates de-referencable HTTP based Identifiers</li> <li> <a href="http://dbpedia.org/resource/ADO.NET_Entity_Framework" id="link-id13daa160">ADO.NET Entity Frameworks</a> - Microsoft .NET based EAV/CR framework</li> <li> <a href="http://dbpedia.org/page/Core_Data" id="link-id11111838">Core Data Services </a>- Mac OS X based EAV/CR framework that evolved from NeXT's <a href="http://dbpedia.org/resource/Enterprise_Objects_Framework" id="link-id15c27df0">Enterprise Object Frameworks</a> (EOF).</li> </ul> <p>The frameworks above provide the basis for a revised AVF pyramid, as depicted below, that reflects today's data access and management realities i.e., an Internet & Web driven global village comprised of interlinked distributed data objects, compatible with "Open World" assumptions.</p> <div> <image src="http://virtuoso.openlinksw.com/images/New_EAV_RDBMS_Pyramid.png"></image> </div> <h3>Related</h3> <ul> <li> <a href="http://allanslibrary.blogspot.com/2009/06/semantic-way.html" id="link-id0xb8c5e498">The Semantic Way</a> - Alan Cho's Summary of <a href="http://www.pwc.com/extweb/home.nsf/docid/1308AF8EA7929CCA852575BA00720F26" id="link-id0xb80f5e10">PwC 2009 tech forecast report on the Semantic Web</a> </li> <li> <a href="http://www.readwriteweb.com/archives/is_the_relational_database_doomed.php" id="link-id0xb8c20658">Is the RDBMS Doomed</a> - <a href="http://www.readwriteweb.com">ReadWriteWeb</a> Article</li> <li> <a href="http://www.metabrew.com/article/anti-rdbms-a-list-of-distributed-key-value-stores/" id="link-id0x1ab4778">Anti-RDBMS: a list of Distributed Key-Value Stores</a> - by <a href="http://www.last.fm/user/RJ" id="link-id0x5a968060">Richard Jones</a> (CTO Last.FM)</li> <li> <a href="http://dynamicorange.com/2009/01/22/blueblog-how-and-why-glue-is-using-amazon-simpledb-instead-of-a-relational-database/" id="link-id15e07c10">How & Why Glue is Using Amazon SimpleDB</a> </li> <li> <a href="http://www.cs.cmu.edu/afs/cs.cmu.edu/user/clamen/OODBMS/Manifesto/htManifesto/node4.html#SECTION00022000000000000000" id="link-id116cf450">Object Database Manifesto (Identity excerpt)</a> </li> <li> <a href="http://www.unixspace.com/context/databases.html" id="link-id150b2c20">Database Models Overview</a> </li> <li> <a href="http://www.youtube.com/watch?v=WEj9vqVvHPc&feature=related" id="link-id0x66b0850">Ted Nelson Explaining Irregularity and Idiosyncrasy of Data Structures</a> - ZigZag Demo </li> </ul>
New ADO.NET 3.x Provider for Virtuoso Released (Update 2)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2009-01-08#1514
2009-01-08T04:36:47Z
2009-01-08T09:12:50.000006-05:00
<p>I am pleased to announce the immediate availability of the <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtAdoNet35Provider" id="link-id142e7390">Virtuoso ADO.NET 3.5 data provider</a> for Microsoft's .NET platform.</p> <h3>What is it?</h3> <p>A data access driver/provider that provides conceptual <a href="http://dbpedia.org/resource/Entity" id="link-id11c36c00">entity</a> oriented access to <a href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id12fb8618">RDBMS</a> data managed by Virtuoso. Naturally, it also uses Virtuoso's in-built virtual / <a href="http://dbpedia.org/resource/federated_database_system" id="link-id115bedc8">federated database</a> layer to provide access to <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id15153c08">ODBC</a> and <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id13418908">JDBC</a> accessible RDBMS engines such as: <a href="http://dbpedia.org/resource/Oracle_Database" id="link-id134d72f0">Oracle</a> (7.x to latest), <a href="http://dbpedia.org/resource/SQL" id="link-id15757b88">SQL</a> Server (4.2 to latest), <a href="http://dbpedia.org/resource/Sybase" id="link-id15ef8d48">Sybase</a>, IBM <a href="http://dbpedia.org/resource/IBM_Informix" id="link-id12f56aa0">Informix</a> (5.x to latest), IBM <a href="http://dbpedia.org/resource/IBM_DB2" id="link-id119feb38">DB2</a>, <a href="http://dbpedia.org/resource/Ingres" id="link-id14e3d6c8">Ingres</a> (6.x to latest), Progress (7.x to OpenEdge), <a href="http://dbpedia.org/resource/MySQL" id="link-id11295630">MySQL</a>, PostgreSQL, <a href="http://dbpedia.org/resource/Firebird_database_server" id="link-id12f40448">Firebird</a>, and others using our ODBC or JDBC bridge drivers.</p> <h3>Benefits?</h3> <h4>Technical:</h4> <p>It delivers an <a href="http://dbpedia.org/resource/Entity-attribute-value_model" id="link-id14012040">Entity-Attribute-Value + Classes & Relationships model</a> over disparate data sources that are materialized as .NET Entity Framework Objects, which are then consumable via ADO.NET Data Object Services, LINQ for Entities, and other ADO.NET data consumers.</p> <p>The provider is fully integrated into Visual Studio 2008 and delivers the same "ease of use" offered by Microsoft's own SQL Server provider, but across Virtuoso, Oracle, Sybase, DB2, Informix, Ingres, <a href="http://dbpedia.org/resource/Progress_4GL" id="link-id158d1fe8">Progress (OpenEdge</a>), MySQL, PostgreSQL, Firebird, and others. The same benefits also apply uniformly to Entity Frameworks compatibility.</p> <p> Bearing in mind that Virtuoso is a multi-model (hybrid) data manager, this also implies that you can use .NET Entity Frameworks against all data managed by Virtuoso. Remember, Virtuoso's SQL channel is a conduit to Virtuoso's core; thus, RDF (courtesy of <a href="http://esw.w3.org/topic/SPASQL" id="link-id133c9b70">SPASQL</a> as already implemented re. <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtJenaProvider" id="link-id11380b80">Jena</a>/<a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtSesame2Provider" id="link-id10fc0c88">Sesame</a>/<a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtRDFDriverRedland" id="link-id1390f730">Redland</a> providers), XML, and other data forms stored in Virtuoso also become accessible via .NET's Entity Frameworks.</p> <br /> <h4>Strategic:</h4> <p>You can choose which entity oriented data access model works best for you: RDF <a href="http://dbpedia.org/resource/Linked_Data" id="link-id151354f0">Linked Data</a> & <a href="http://dbpedia.org/resource/SPARQL" id="link-id15dc5eb0">SPARQL</a> or .NET Entity Frameworks & <a href="http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework#Entity_SQL" id="link-id14404e80">Entity SQL</a>. Either way, Virtuoso delivers a commercial grade, high-performance, secure, and scalable solution.</p> <br /> <h3>How do I use it?</h3> Simply follow one of guides below: <ul> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtEntityFrameworkSchoolDbWinFormApp" id="link-id15e5c580">Using Visual Studio 2008 & Virtuoso to build an Entity Frameworks based Windows forms application</a> </li> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtUsingMsAdoNetDataServicesWithVirtuoso" id="link-id157912b0">Using Visual Studio 2008 & Virtuoso to build an ADO.NET Data Services based application</a> </li> </ul> <p> <b>Note:</b> When working with external or 3rd party databases, simply use the Virtuoso Conductor to link the external data source into Virtuoso. Once linked, the remote tables will simply be treated as though they are native Virtuoso tables leaving the <a href="http://dbpedia.org/resource/Virtual_Database" id="link-id15b04b18">virtual database</a> engine to handle the rest. This is similar to the role the Microsoft JET engine played in the early days of ODBC, so if you've ever linked an ODBC data source into Microsoft Access, you are ready to do the same using Virtuoso.</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/1420" id="link-id160afdd0">Entity Oriented Data Access</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1474" id="link-id113eeb50">Yoda & the Data FORCE.</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>
Entity Oriented Data Access
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-11-03#1475
2008-11-03T17:32:08Z
2008-11-03T22:51:48-05:00
<p>Recent <a href="http://en.wiktionary.org/wiki/perturbation" id="link-id1bdb9ec8">perturbations</a> in <a href="http://dbpedia.org/resource/Data">Data</a> Access and Data Management technology realms are clear signs of an imminent inflection. In a nutshell, the focus of data access is moving from the "Logical Level" (what you see if you've ever looked at a DBMS schema derived from an <a href="http://dbpedia.org/resource/Entity" id="link-id18735f38">Entity</a> Data Model) to the "Conceptual Level" (i.e., the Entity Model becoming concrete).</p> <p>In recent times I've stumbled across Master Data Management (MDM) which is all about entities that provide holistic views of enterprise data (or what I call: <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id18f07ec8">Context</a> Lenses). I've also stumbled across emerging tensions in the .NET realm between Linq to Entities and Linq to <a href="http://dbpedia.org/resource/SQL" id="link-id19429e88">SQL</a>, where in either case the fundamental issues comes down to the optimal paths "Conceptual Level Access" over the "Logical Logical Level" when dealing with data access in the .NET realm.</p> <p> Strangely, the emerging realm of RDF <a href="http://dbpedia.org/resource/Linked_Data" id="link-id115b3780">Linked Data</a>, MDM, and .NET's Entity Frameworks, remain strangely disconnected.</p> <p>Another oddity is the obvious, but barely acknowledged, blurring of the lines between the "traditional enterprise employee" and the "individual <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> <a href="http://dbpedia.org/resource/Netizen" id="link-id0x1ffd8640">netizen</a>". The fusion between these entities is one of the most defining characteristics of how the Web is reshaping the data landscape.</p> <p>At the current time, I tend to crystalize my data access world view under the moniker: <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1474" id="link-id1544ee60">YODA</a> ("You" Oriented Data Access), based on the following:</p> <ol> <li> Entities are the new focal point of data access, management, and integration </li> <li> "You" are the entry point (Data Source Name) into this new realm of inter connected Entities that the Web exposes</li> <li> "You" the "Person" Entity is associated with many other "Things" such as "Organizations", "Other People", "Books", "Music", "Subject Matter" etc. </li> <li> "You" the "Person" needs Identity in this new global database, which is why "You" need to Identify "Yourself" using an an HTTP based Entity <a href="http://dbpedia.org/resource/Identity_%28object-oriented_programming%29" id="link-id145d0438">ID</a> (aka. <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id1873ad08">URI</a>) </li> <li> When "You" have an ID for "Yourself" it becomes much easier for the essence of "You" to be discovered via the Web </li> <li> When "Others" have IDs for "Themselves" on the Web it becomes much easier for "You" to serendipitously discover or explicitly "Find" things on the Web. </li> </ol> <h3>Related</h3> <ul> <li> <a href="http://www.infoq.com/news/2008/11/DLINQ-Future" id="link-id17501eb0">Is LINQ to SQL truly dead?</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1420" id="link-id10fbf920">Virtuoso, Linked Data, and Linq2Rdf</a> </li> <li> <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1224" id="link-id19c44b00">Enterprise 0.0, Linked Data, and the Semantic Data Web</a> (*an old post*)</li> </ul>
Virtuoso, PHP Runtime Hosting: phpBB, Wordpress, Drupal, MediaWiki, and Linked Data
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-10-24#1461
2008-10-24T19:55:00Z
2010-03-25T21:19:59-04:00
<p> Runtime hosting is functionality realm of <a href="http://virtuoso.openlinksw.com" id="link-id1189fee8">Virtuoso</a> that is sometimes easily overlooked. In this post I want to provide a simple no-hassles HOWTO guide for installing Virtuoso on Windows (32 or 64 Bit), Mac OS X (Universal or Native 64 Bit), and Linux (32 or 64 Bit). The installation guide also covers the instantiation of <a href="http://dbpedia.org/resource/PhpBB" id="link-id118af3a8">phpBB3</a> as verification of the Virtuoso hosted <a href="http://dbpedia.org/resource/PHP" id="link-id12736b88">PHP</a> 3.5 runtime.</p> <h3> What are the benefits of PHP Runtime Hosting?</h3> <p> Like <a href="http://dbpedia.org/resource/Apache" id="link-id111ca408">Apache</a>, Virtuoso is a bona-fide <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> <a href="http://dbpedia.org/resource/Application_server" id="link-id110d2aa8">Application Server</a> for PHP based applications. Unlike Apache, Virtuoso is also the following:</p> <ul> <li> a Hybrid Native DBMS Engine (Relational, RDF-Graph, and Document models) that is accessible via industry standard interfaces (solely)</li> <li> a Virtual DBMS or Master <a href="http://dbpedia.org/resource/Data">Data</a> Manager (MDM) that virtualizes heterogeneous data sources (<a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id0x22b6f0c8">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id0x23af98c8">JDBC</a>, Web Services, Hypermedia Resources, Non Hypermedia Resources)</li> <li> an <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=rdf%20middleware&type=text&output=html" id="link-id1116aad8">RDF Middleware</a> solution for RDF-zation of non RDF resources across the Web and enterprise Intranets and/or Extranets (in the form of Cartridges for data exposed via REST or SOA oriented SOAP interfaces)</li> <li> an RDF <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10fbe088">Linked Data</a> Server (meaning it can deploy RDF Linked Data based on its native and/or virtualized data)</li> </ul> <p> As result of the above, when you deploy a PHP application using Virtuoso, you inherit the following benefits:</p> <ol> <li> Use of PHP-<a href="http://www.iodbc.org" id="link-id1159e070">iODBC</a> for in-process communication with Virtuoso</li> <li> Easy generation of RDF Linked Data Views atop the <a href="http://dbpedia.org/resource/SQL" id="link-id0x24f44c98">SQL</a> schemas of PHP applications</li> <li> Easy deployment of RDF Linked Data from virtualized data sources</li> <li> Less <a href="http://dbpedia.org/resource/LAMP_stack" id="link-id1179dff0">LAMP</a> monoculture (*there is no such thing as virtuous monoculture*) when dealing with PHP based Web applications.</li> </ol> <p> As indicated in prior posts, producing RDF Linked Data from the existing Web, where a lot of content is deployed by PHP based content managers, should simply come down to RDF Views over the SQL Schemas and deployment / publishing of the RDF Views in RDF Linked data form. In a nutshell, this is what Virtuoso delivers via its PHP runtime hosting and pre packaged VADs (Virtuoso Application Distribution packages), for popular PHP based applications such as: <a href="http://blogs.usnet.private:8893/weblog/kidehen@openlinksw.com/127/dbpedia.org/resource/PhpBB" id="link-id120cc6368">phpBB3</a>, <a href="http://dbpedia.org/resource/Drupal" id="link-id111ff1c0">Drupal</a>, <a href="http://dbpedia.org/resource/WordPress" id="link-id111e26f8">WordPress</a>, and <a href="http://dbpedia.org/resource/MediaWiki" id="link-id10ea0258">MediaWiki</a>.</p> <p> In addition, to the RDF Linked Data deployment, we've also taken the traditional LAMP installation tedium out of the typical PHP application deployment process. For instance, you don't have to rebuild PHP 3.5 (32 or 64 Bit) on Windows, Mac OS X, or Linux to get going, simply install Virtuoso, and then select a VAD package for the relevant application and you're set. If the application of choice isn't pre packaged by us, simply install as you would when using Apache, which comes dow to situating the PHP files in your Web structure under the Web Application's root directory.</p> <h3> Installation Guide</h3> <ol> <li> Download the Virtuoso installer for Windows (<a href="http://download.openlinksw.com/downwiz/login.vsp?pfam=2&pform=26&pcat=47&prod=virtuoso-uim-unisvr-ent&os=i686-generic-win-32&os2=i686-generic-win-32&xpfam=virtuoso&xpform=personal&xpcat=unisvr&xos=i686-generic-win-32&release-dbms=6.1-virt61" id="link-id11d084578">32 Bit msi file</a> or <a href="http://download.openlinksw.com/downwiz/login.vsp?pfam=2&pform=26&pcat=47&prod=virtuoso-uim-unisvr-ent&os=x86_64-generic-win-64&os2=x86_64-generic-win-64&xpfam=virtuoso&xpform=personal&xpcat=unisvr&xos=x86_64-generic-win-64&release-dbms=6.1-virt61" id="link-id11aea67a8">64 Bit msi file</a>), Mac OS X (<a href="http://download.openlinksw.com/downwiz/login.vsp?pfam=2&pform=26&pcat=47&prod=virtuoso-uim-unisvr-ent&os=universal-apple-macosx10.6-32&os2=universal-apple-macosx10.6-32&xpfam=virtuoso&xpform=personal&xpcat=unisvr&xos=universal-apple-macosx10.6-32&release-dbms=6.1-virt61" id="link-id11a93bef8">Universal Binary dmg file</a>), or instantiate the <a href="http://www.openlinksw.com/oat/wiki/main/Main/ODSInstallationEC2" id="link-id111fe248">Virtuoso EC2 AMI</a> (*search for pattern: "Virtuoso when using the Firefox extension for EC2 as the AMI ID is currently: ami-7c31d515 and name: virtuoso-test/virtuoso-cloud-beta-9-i386.manifest.xml, for latest cut*)</li> <li> Run the installer (or download the movies using the links in the related section below)</li> <li> Go to the Virtuoso Conductor (*which will show up at the end of the installation process* or go to http://localhost:8890/conductor)</li> <li> Go to the "Admin" tab within the (X)HTML based UI and select the "Packages" sub-menu item (a Tab)</li> <li> Pick phpBB3 (or any other pre-packaged PHP app) and then click on "Install/Upgrase"</li> <li> The watch one of my silent movies or read the initial startup guides for Virtuoso hosted phpBB3, Drupal, Wordpress, MediaWiki.</li> </ol> <h3> Related</h3> <p> At the current time, I've only provided links to ZIP files containing the Virtuoso installation "silent movies". This approach is a short-term solution to some of my current movie publishing challenges re. YouTube and Vimeo -- where the compressed output hasn't been of acceptable visual quality. Once resolved, I will publish much more "Multimedia Web" friendly movies :-)</p> <ul> <li> <a href="http://my-movies.s3.amazonaws.com/Virtuoso_PHPBB3_Vista_Linked_Data_Demo.mov.zip" id="link-id11642450">Windows Vista (x64) Installation Movie</a> </li> <li> <a href="http://my-movies.s3.amazonaws.com/Virtuoso_PHPBB3_MacOSX_Linked_Data_Demo.mov.zip" id="link-id11210498">Mac OS X (x64 & Universal binary) Installation Movie</a> </li> <li> <a href="http://my-movies.s3.amazonaws.com/Virtuoso_PHPBB3_EC2_AMI_Linked_Data_Demo.zip" id="link-id111ff268">Virtuoso EC2 Cloud Edition Installation Movie</a> </li> <li> <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VirtuosoPHP" id="link-id12038b6c8">Guide for PHP based Application Deployment using Virtuoso</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>
Crunchbase & Semantic Web Interview (Remix - Update 1)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-08-27#1424
2008-08-27T18:16:37Z
2008-08-27T20:35:15-04:00
<p>After reading <a href="http://blog.crunchbase.com/2008/08/26/building-a-semantic-web-interview-with-benjamin-nowack/" id="link-id16b8e0e0">Bengee's interview with CrunchBase</a>, I decided to knock up a quick interview remix as part of my usual attempt to add to the developing discourse.</p> <blockquote> <cite><a href="http://www.crunchbase.com/" id="link-id17c8e7b8">CrunchBase</a>: When we released the <a href="http://www.crunchbase.com/help/api" id="link-id16681f68">CrunchBase API</a>, you were one of the first developers to step up and quickly released a <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com's%20BLOG%20%5B127%5D/1395" id="link-id1016d5f0">CrunchBase Sponger Cartridge</a>. Can you explain what a CrunchBase Sponger Cartridge is?</cite> </blockquote> <blockquote> <a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id13243300">Me</a>: A Sponger Cartridge is a <a href="http://dbpedia.org/resource/Data">data</a> access driver for <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> Resources that plugs into our <a href="http://virtuoso.openlinksw.com" id="link-id17042f08">Virtuoso</a> <a href="http://dbpedia.org/resource/Virtuoso_Universal_Server" id="link-id1399b588">Universal Server</a> (DBMS and <a href="http://dbpedia.org/resource/Linked_Data" id="link-id137fd188">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id100b23d8">Web</a> Server combo amongst other things). It uses the internal structure of a resource and/or a web service associated with a resource, to materialize an RDF based <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id10418750">Linked Data graph</a> that essentially describes the resource via its properties (Attributes & Relationships). </blockquote> <br /> <img src="http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/images/ldp4.png" /> <br /> <br /> <br /> <blockquote> <cite>CrunchBase: And what inspired you to create it?</cite> </blockquote> <blockquote> <a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id12fa60c0">Me</a>: Bengee built a new space with your data, and we've built a space on the fly from your data which still resides in your domain. Either solution extols the virtues of <a href="http://dbpedia.org/resource/Linked_Data" id="link-id101a8d28">Linked Data</a> i.e. the ability to explore relationships across data items with high degrees of serendipity (also colloquially known as: following-your-nose pattern in <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id14a3ff30">Semantic Web</a> circles).</blockquote> <blockquote> <a href="http://cb.semsol.org/" id="link-id182a0170">Bengee</a> posted a notice to the <a href="http://esw.w3.org/topic/SweoIG/TaskForces/CommunityProjects/LinkingOpenData" id="link-id131e8d10">Linking Open Data Community</a>'s public <a href="http://lists.w3.org/Archives/Public/public-lod/2008Jul/0110.html" id="link-id11dd0720">mailing list announcing his effort</a>. Bearing in mind the fact that we've been using <a href="http://www.openlinksw.com/blog/~kidehen/?id=1144" id="link-id117cf6e8">middleware to mesh the realms of Web 2.0 and the Linked Data Web</a> for a while, it was a no-brainer to knock something up based on the conceptual similarities between <a href="http://wikicompany.org/wiki/Main_Page" id="link-id13b87a68">Wikicompany</a> and CrunchBase. In a sense, a quadrant of orthogonality is what immediately came to mind re. Wikicompany, CrunchBase, Bengee's RDFization efforts, and ours.</blockquote> <blockquote>Bengee created an RDF based <a href="http://dbpedia.org/resource/Linked_Data" id="link-id133c8fc8">Linked Data</a> warehouse based on the data exposed by your API, which is exposed via the <a href="http://cb.semsol.org/" id="link-id1826f928">Semantic CrunchBase</a> <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id102d8890">data space</a>. In our case we've taken the "RDFization on the fly" approach which produces a transient <a href="http://dbpedia.org/resource/Linked_Data" id="link-id16a0b8d0">Linked Data</a> View of the CrunchBase data exposed by your APIs. Our approach is in line with our world view: all resources on the Web are data sources, and the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id1668e6c8">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id188e7da0">Web</a> is about incorporating HTTP into the naming scheme of these data sources so that the conventional <a href="http://dbpedia.org/resource/Uniform_Resource_Locator" id="link-id13490710">URL</a> based hyperlinking mechanism can be used to access a structured description of a resource, which is then transmitted using a range negotiable representation formats. In addition, based on the fact that we house and publish a lot of <a href="http://dbpedia.org/resource/Linked_Data" id="link-id169aa568">Linked Data</a> on the Web (e.g. <a href="http://dbpedia.org/resource/DBpedia" id="link-id10af10e8">DBpedia</a>, <a href="http://www.pingthesemanticweb.com/about/" id="link-id10a2b710">PingTheSemanticWeb</a>, and others), we've also automatically meshed Crunchbase data with related data in <a href="http://dbpedia.org/resource/DBpedia" id="link-id1403cd40">DBpedia</a> and Wikicompany data.</blockquote> <br /> <blockquote> <cite>CrunchBase: Do you know of any apps that are using CrunchBase Cartridge to enhance their functionality?</cite> </blockquote> <blockquote> <a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id177d24c8">Me</a>: Yes, the <a href="http://ode.openlinksw.com" id="link-id10725ca0">OpenLink Data Explorer</a> which provides CrunchBase site visitors with the option to explore the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id17dedea8">Linked Data</a> in the CrunchBase <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id13f02a00">data space</a>. It also allows them to "Mesh" (rather than "Mash") CrunchBase data with other <a href="http://dbpedia.org/resource/Linked_Data" id="link-id11fb3ba0">Linked Data</a> sources on the Web without writing a single line of code. </blockquote> <br /> <blockquote> <cite>CrunchBase: You have been immersed in the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id12e18a00">Semantic Web</a> movement for a while now. How did you first get interested in the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id15132110">Semantic Web</a>?</cite> </blockquote> <blockquote> <a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id0xddaa9c8">Me</a>: We saw the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id188b3330">Semantic Web</a> as a vehicle for standardizing conceptual views of heterogeneous data sources via <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id10350978">context</a> lenses (URIs). In 1998 as part of our strategy to expand our business beyond the development and deployment of <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id171d6798">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id138120a0">JDBC</a>, and OLE-DB data providers, we decided to build a <a href="http://dbpedia.org/resource/Virtual_Database" id="link-id13ea6618">Virtual Database</a> Engine (see: <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSHistory" id="link-id11a4fa30">Virtuoso History</a>), and in doing so we sought a standards based mechanism for the conceptual output of the <a href="http://dbpedia.org/resource/Federated_database_system" id="link-id101a1248">data virtualization</a> effort. As of the time of the <a href="http://www.w3.org/DesignIssues/Semantic.html" id="link-id18882cf8">seminal unveiling of the Semantic Web in 1998</a> we were clear about two things, in relation to the effects of the Web and <a href="http://dbpedia.org/resource/Internet" id="link-id12fa2c58">Internet</a> data management infrastructure inflections: 1) Existing DBMS technology had reached it limits 2) Web Servers would ultimately hit their functional limits. These fundamental realities compelled us to develop <a href="http://virtuoso.openlinksw.com" id="link-id102b09a0">Virtuoso</a> with an eye to leveraging the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id11984d98">Semantic Web</a> as a vehicle from completing its technical roadmap.</blockquote> <br /> <blockquote> <cite>CrunchBase: Can you put into laymanâs terms exactly what RDF and <a href="http://dbpedia.org/resource/SPARQL" id="link-id1066dcf0">SPARQL</a> are and why they are important? Do they only matter for developers or will they extend past developers at some point and be used by website visitors as well?</cite> </blockquote> <blockquote>Me: RDF (Resource Description Framework) is a Graph based Data Model that facilitates resource description using the <a href="http://www.eslincanada.com/englishlesson2.html" id="link-id178b94a8">Subject, Predicate, and Object principle</a>. Associated with the core data model, as part of the overall framework, are a number of markup languages for expressing your descriptions (just as you express presentation markup semantics in HTML or document structure semantics in XML) that include: <a href="http://dbpedia.org/resource/RDFa" id="link-id188db0a8">RDFa</a> (simple extension of HTML markup for embedding descriptions of things in a page), N3 (a human friendly markup for describing resources), RDF/XML (a machine friendly markup for describing resources).</blockquote> <blockquote> <a href="http://dbpedia.org/resource/SPARQL" id="link-id188c2030">SPARQL</a> is the query language associated with the RDF Data Model, just as <a href="http://dbpedia.org/resource/SQL" id="link-id13f0ffe0">SQL</a> is a query language associated with the Relational Database Model. Thus, when you have RDF based structured and <a href="http://dbpedia.org/resource/Linked_Data" id="link-id166874d0">linked data</a> on the Web, you can query against Web using <a href="http://dbpedia.org/resource/SPARQL" id="link-id1016cc98">SPARQL</a> just as you would against an <a href="http://dbpedia.org/resource/Oracle_Database" id="link-id101c9708">Oracle</a>/<a href="http://dbpedia.org/resource/SQL" id="link-id11cb0b18">SQL</a> Server/<a href="http://dbpedia.org/resource/IBM_DB2" id="link-id10760ec0">DB2</a>/<a href="http://dbpedia.org/resource/IBM_Informix" id="link-id1066c8c0">Informix</a>/<a href="http://dbpedia.org/resource/Ingres" id="link-id18894f40">Ingres</a>/<a href="http://dbpedia.org/resource/MySQL" id="link-iddc9ebb0">MySQL</a>/etc.. DBMS using <a href="http://dbpedia.org/resource/SQL" id="link-id1030d120">SQL</a>. That's it in a nutshell.</blockquote> <br /> <blockquote> <cite>CrunchBase: On your website you wrote that âRDF and <a href="http://dbpedia.org/resource/SPARQL" id="link-id168e9ad0">SPARQL</a> as productivity boosters in everyday web developmentâ. Can you elaborate on why you believe that to be true?</cite> </blockquote> <blockquote>Me: I think the ability to discern a formal description of anything via its discrete properties is of immense value re. productivity, especially when the capability in question results in a graph of <a href="http://dbpedia.org/resource/Linked_Data" id="link-id0x179f6328">Linked Data</a> that isn't confined to a specific host operating system, database engine, application or service, programming language, or development framework. RDF <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a> is about infrastructure for the true materialization of the "<a href="http://dbpedia.org/resource/Information" id="link-id13e475b8">Information</a> at Your Fingertips" vision of yore. Even though it's taken the emergence of RDF Linked Data to make the aforementioned vision tractable, the comprehension of the vision's intrinsic value have been clear for a very long time. Most organizations and/or individuals are quite familiar with the adage: <a href="http://dbpedia.org/resource/Knowledge" id="link-id13e38a30">Knowledge</a> is Power, well there isn't any <a href="http://dbpedia.org/resource/Knowledge" id="link-id188b7348">knowledge</a> without accessible <a href="http://dbpedia.org/resource/Information" id="link-id140415d0">Information</a>, and there isn't any accessible <a href="http://dbpedia.org/resource/Information" id="link-id11a976e8">Information</a> without accessible Data. The Web has always be grounded in accessibility to data (albeit via compound container documents called Web Pages).</blockquote> <blockquote>Bottom line, RDF based Linked Data is about Open <a href="http://dbpedia.org/resource/Reference_(computer_science)" id="link-id1206bfb8">Data access by reference</a> using URIs (HTTP based <a href="http://dbpedia.org/resource/Entity" id="link-idfaa6ce0">Entity</a> IDs / Data Object IDs / Data Source Names), and as I said earlier, the intrinsic value is pretty obvious bearing in mind the costs associated with integrating disparate and heterogeneous data sources -- across intranets, extranets, and the <a href="http://dbpedia.org/resource/Internet" id="link-id188ecc68">Internet</a>.</blockquote> <br /> <blockquote> <cite>CrunchBase: In his definition of Web 3.0, Nova Spivack proposes that the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id12e2d968">Semantic Web</a>, or Semanti<a href="http://dbpedia.org/resource/C_(programming_language)" id="link-id105744c0">c</a> Web technologies, will be force behind much of the innovation that will occur during Web 3.0. Do you agree with Nova Spivack? What role, if any, do you feel the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id13fa4218">Semantic Web</a> will play in Web 3.0?</cite> </blockquote> <blockquote>Me: I agree with Nova. But I see Web 3.0 as a phase within the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id188c9000">Semantic Web</a> innovation continuum. Web 3.0 exists because Web 2.0 exists. Both of these Web versions express usage and technology focus patterns. Web 2.0 is about the use of Open Source technologies to fashion Web Services that are ultimately used to drive proprietary Software as Service (SaaS) style solutions. Web 3.0 is about the use of "Smart Data Access" to fashion a new generation of Linked Data aware Web Services and solutions that exploit the federated nature of the Web to maximum effect; proprietary branding will simply be conveyed via quality of data (cleanliness, <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id188d2ef8">context</a> fidelity, and comprehension of privacy) exposed by URIs.</blockquote> <p>Here are some examples of the CrunchBase Linked Data <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id122756f8">Space</a>, as projected via our CruncBase Sponger Cartridge:</p> <ol> <li> <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http%3A%2F%2Fwww.crunchbase.com%2Fcompany%2Famazon" id="link-id13e0fd18">Amazon.com</a> </li> <li> <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http%3A%2F%2Fwww.crunchbase.com%2Fcompany%2Fmicrosoft" id="link-id13eef9e0">Microsoft</a> </li> <li> <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http%3A%2F%2Fwww.crunchbase.com%2Fcompany%2Fgoogle" id="link-id13fe47a0">Google</a> </li> <li> <a href="http://demo.openlinksw.com/rdfbrowser2/?uri=http%3A%2F%2Fwww.crunchbase.com%2Fcompany%2Fapple" id="link-id170c73b8">Apple</a> </li> </ol>
Response to: Whole Data Post (Update 3)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-08-15#1413
2008-08-15T13:06:12Z
2008-08-15T18:31:48-04:00
<p>This post is in response to <a href="http://www.furia.com" id="link-id107907b8">Glenn McDonald</a>'s post titled: <a href="http://www.furia.com/page.cgi?type=log&id=308" id="link-id13dcf2d0">Whole Data</a>, where he highlights a number of issues relating to "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id1016c1f0">Semantic Web</a>" marketing communications and overall messaging, from his perspective.</p> <p> By coincidence, Glenn and I presented at this month's Cambridge <a href="http://dbpedia.org/resource/Semantic_Web" id="link-idd526f48">Semantic Web</a> Gathering.</p> <p>I've provided a dump of Glenn's issues and my responses below:</p> <h3>Issue - RDF</h3> <ul> <li>Ingenious <a href="http://dbpedia.org/resource/Data">data</a> decomposition idea, but: </li> <li>too low-level; the assembly language of data, where we need Java or <a href="http://dbpedia.org/resource/Ruby_programming_language" id="link-id103f3dd0">Ruby</a> </li> <li>"resource" is not the issue; there's no such thing as "metadata", it's all data; "meta" is a perspective </li> <li>lists need to be effortless, not painful and obscure </li> <li>nodes need to be represented, not just implied; they need types and literals in a more pervasive, integrated way. </li> </ul> <h4>Response:</h4> <p>RDF is a Graph based Data Model it stands for Resource Description Framework. The Metadata data angle comes from it's <a href="http://dbpedia.org/resource/Meta_Content_Framework" id="link-id1690df60">Meta Content Framework (MCF)</a> origins. You can express and serialize data based on the RDF Data Model using: Turtle, N3, TriX, N-Triples, and RDF/XML.</p> <h3>Issue - <a href="http://dbpedia.org/resource/SPARQL" id="link-id10234b38">SPARQL</a> (and Freebase's MQL)</h3> <p>These are just appeasement: <br />- old query paradigm: fishing in dark water with superstitiously tied lures; only works well in carefully stocked lakes <br />- we don't ask questions by defining answer shapes and then hoping they're dredged up whole.</p> <h4>Response:</h4> <p> <a href="http://dbpedia.org/resource/SPARQL" id="link-id16e45e50">SPARQL</a>, <a href="http://www.freebase.com/view/freebase/api" id="link-id13e7d468">MQL</a>, and <a href="http://msdn.microsoft.com/en-us/library/bb387145.aspx" id="link-id1516fbd8">Entity-SQL</a> are Graph Model oriented Query Languages. Query Languages always accompany Database Engines. <a href="http://dbpedia.org/resource/SQL" id="link-id13f8c100">SQL</a> is the Relational Model equivalent. </p> <h3>Issue - <a href="http://dbpedia.org/resource/Linked_Data" id="link-id171dee68">Linked Data</a> </h3> <p>Noble attempt to ground the abstract, but: <br />- <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id1576d5f8">URI</a> dereferencing/namespace/<a href="http://dbpedia.org/resource/Open_world_assumption" id="link-id15f50180">open-world</a> issues focus too much technical attention on cross-source cases where the human issues dwarf the technical ones anyway <br />- <a href="http://dbpedia.org/resource/Friend_of_a_friend" id="link-id105df458">FOAF</a> query over the people in this room? forget it. <br />- link asymmetry doesn't scale <br />- identity doesn't scale <br />- generating RDF from non-graph sources: more appeasement, right where the win from actually converting could be biggest! </p> <h4>Response:</h4> <p>Innovative use of HTTP to deliver "<a href="http://dbpedia.org/resource/Reference_%28computer_science%29" id="link-id13eeab20">Data Access by Reference</a>" to the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id13492610">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id105dfc10">Web</a>.</p> <p>When you have a Data Model, Database Engine, and Query Language, the next thing you need is a Data Access mechanism that provides "<a href="http://dbpedia.org/resource/Reference_(computer_science)" id="link-id100ef2c0">Data Access by Reference</a>". <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id16692e88">ODBC</a> and <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id1699b970">JDBC</a> (amongst others) provide "<a href="http://dbpedia.org/resource/Reference_(computer_science)" id="link-id16034b48">Data Access by Reference</a>" via Data Source Names. <a href="http://dbpedia.org/resource/Linked_Data" id="link-id16690118">Linked Data</a> is about the same thing (URIs are Data Source Names) with the following differences:</p> <ul> <li>Naming is scoped to the <a href="http://dbpedia.org/resource/Entity" id="link-id1195dc48">entity</a> level rather than container level</li> <li>HTTP's use within the data source naming scheme expands the referencability of the Named <a href="http://dbpedia.org/resource/Entity" id="link-id10485760">Entity</a> Descriptions beyond traditional confines such as applications, operating systems, and database engines. </li> </ul> <h3> Issue - <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id104684d0">Giant Global Graph</a> </h3> <p>Hugely motivating and powerful idea, worthy of a superhero (Graphius!), but: <br />- giant and global parts are too hard, and starting global makes every problem harder <br />- local projects become unmanageable in global <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id12497088">context</a> (Cyc, Freebase data-modeling lists...). And my thus my plea, again. Forget "semantic" and "<a href="http://dbpedia.org/resource/World_Wide_Web">web</a>", let's fix the database tech first: <br />- node/arc data-model, path-based exploratory query-model <br />- data-graph applications built easily on top of this common model; building them has to be easy, because if it's hard, they'll be bad <br />- given good database tech, good web data-publishing tech will be trivial! <br />- given good tools for graphs, the problems of uniting them will be only as hard as they have to be.</p> <h4>Response:</h4> <p> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id144466d8">Giant Global Graph</a> is just another moniker for a "Web of <a href="http://dbpedia.org/resource/Linked_Data" id="link-id15c2c738">Linked Data</a>" or "<a href="http://dbpedia.org/resource/Linked_Data" id="link-id14e73520">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id10aef200">Web</a>".</p> <p>Multi-Model Database technology that meshes the best of the Graph & Relational Models exist. In a nutshell, this is what <a href="http://virtuoso.openlinksw.com" id="link-id13492e10">Virtuoso</a> is all about and it's existed for a very long time :-)</p> <p> <a href="http://virtuoso.openlinksw.com" id="link-id105a4f58">Virtuoso</a> is also a Virtual DBMS engine (so you can see Heterogeneous Relational Data via Graph Model <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id15845110">Context</a> Lenses). Naturally, it is also a <a href="http://dbpedia.org/resource/Linked_Data" id="link-id109e2c78">Linked Data</a> Deployment platform (or <a href="http://dbpedia.org/resource/Linked_Data" id="link-id1086d650">Linked Data</a> Sever). </p> <p>The issue isn't the "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id107f1ba8">Semantic Web</a>" moniker per se., it's about how <a href="http://dbpedia.org/resource/Linked_Data" id="link-id0xba72818">Linked Data</a> (foundation layer of <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id101dbf50">Semantic Web</a>) gets introduced to users. As I said during the MIT Gathering: "The Web is experienced via Web Browsers primarily, so any enhancement to the Web must be exposed via traditional Web Browsers", which is why we've opted to simply add "View <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a> Sources" to the existing set of common Browser options that includes:</p> <ol> <li>View page in rendered form (default)</li> <li>View page source (i.e., how you see the markup behind the page)</li> </ol> <p>By exposing the Linked Data <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id15a04b70">Web</a> option as described above, you enable the Web user to knowingly transition from the traditional Rendered (X)HTML page view to the Linked Data View (i.e., structured data behind the page). This simple "User Interaction" tweak makes the notion of exploiting a Structured Web becomes somewhat clearer.</p> <p>The Linked Data <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id10a187d0">Web</a> isn't a panacea. It's just an addition to the existing Web that enrichens the things you can do with the Web. It's predominance, like any application feature, will be subject to the degrees to which it delivers tangible value or matrializes internal and external opportunity costs.</p> <p>Note: The Web isn't ubiquitous today becuase all it's users groked HTML Markup. It's ubquitity is a function of opportunity costs: there simply came a point in the Web boostrap when nobody could afford the opportunity costs associated with being off the Web. The same thing will play out with Linked Data and the broader <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id10a97330">Semantic Web</a> vision.</p> <b>Links:</b> <ol> <li> <a href="http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/Creating_Deploying_Exploiting_Linked_Data2_TimBL_v3.html(15)" id="link-id137fc560">Linked Data Journey part of my Linked Data Planet Presentation Remix</a>(from slides 15 to 22 - which include bits from <a href="http://www.w3.org/People/Berners-Lee/card#i" id="link-id1048a968">TimBL</a>'s presentation)</li> <li> <a href="http://ode.openlinksw.com" id="link-id1667df98">OpenLink Data Explorer</a> </li> <li> <a href="http://ode.openlinksw.com/example.html" id="link-id137ee860">OpenLink Data Explorer Screenshots and examples</a>.</li> </ol>
CrunchBase gets hooked up with the Linked Data Web!
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-07-25#1395
2008-07-25T14:01:01Z
2008-07-29T21:43:27-04:00
<p>It's getting really hot in <a href="http://dbpedia.org/resource/Linked_Data" id="link-id15eea8f8">Linked Data</a> land! Two days ago <a href="http://bnode.org/about" id="link-id107e2f70">Benjamin Nowack</a> pinged the <a href="http://community.linkeddata.org/dataspace/organization/lod#this" id="link-id11b93670">LOD</a> community about his <a href="http://lists.w3.org/Archives/Public/public-lod/2008Jul/0110.html" id="link-id1022a270">RDFization of Crunchbase</a> (sample (X)HTML view: http://cb.semsol.org/company/opera-software) courtesy of Crounchbase releasing an API. As you know, I've always equated <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> Service API to Database CLIs (<a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id16327528">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id1027f410">JDBC</a>, <a href="http://dbpedia.org/resource/ADO.NET" id="link-id10683850">ADO</a>.<a href="http://dbpedia.org/resource/ADO.NET" id="link-id13beb9b8">NET</a> etc.) as both offer code level hooks into <a href="http://dbpedia.org/resource/Data">Data</a> Spaces.</p> <p></p> <p></p> <p>Naturally, we've decided to join the Crunchbase RDFization party, and have just completed a <a href="http://virtuoso.openlinksw.com" id="link-id10282208">Virtuoso</a> <a href="http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html" id="link-id10acf0f8">Sponger</a> Cartridge (an RDFizer) for Crouncbase. What we add in our particular cartridge is additional meshing with <a href="http://dbpedia.org/resource/DBpedia" id="link-id115e2a98">DBpedia</a> and Wikicompany <a href="http://dbpedia.org/resource/Linked_Data" id="link-id132f0568">Linked Data</a> Spaces, plus RDFizaton of the Crunchbase (X)HTML pages :-)</p> <p></p> <p></p> <p>As I've postulated for a while, <a href="http://dbpedia.org/resource/Linked_Data" id="link-id13304010">Linked Data</a> is about data "Meshing" and "Meshups". This isn't a buzzword play. I am pointing out an important distinction between "Mashups" and "Meshpus". Which goes as follows: "Mashups" are about code level joining devoid of structured modelling, hence the revelation of code as opposed to data when you look behind a "Mashup". "Meshups" on the other hand, are about joining disparate structured data sources across the Web. And when you look behind a "Meshup" you see structured data (preferably <a href="http://dbpedia.org/resource/Linked_Data" id="link-id143bdb68">Linked Data</a>) that enables further "Meshing".</p> <p></p> <p></p> <p>I truly believe that we are now inches away from critical mass re. <a href="http://dbpedia.org/resource/Linked_Data" id="link-id14829640">Linked Data</a>, and because we are dealing with data, the network-effect will be sky-high! I shudder to think about the state of the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id0x1c41d150">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id133364e8">Web</a> in 12 months time. Yes, I am giving the explosion 12 months (or less). These are very exciting times.</p> <p></p> <p></p> <p>Demo Links:</p> <p></p> <p></p> <ul> <li> <a href="http://demo.openlinksw.com/ode/?uri%5B%5D=http%3A%2F%2Fcb.semsol.org%2Fcompany%2Fopera-software&" id="link-id12fe1dc8">Opera Software via Benjee's Linked Data Space for Cunchbase</a> </li> <li> <a href="http://demo.openlinksw.com/ode/?uri=http%3A%2F%2Fwww.crunchbase.com%2Fcompany%2Fopera-software" id="link-id10739a18">Opera Software via our Linked Data Space for Crunchbas</a> </li> </ul> <p></p> <p></p> <p>For best experience I encourage you to look at the <a href="https://addons.mozilla.org/en-US/firefox/addon/8062" id="link-id1499a0f8">OpenLink Data Explorer extension</a> for Firefox (2.x - 3.x). This enables you to go to Crunchbase (X)HTML pages (and other sites on the Web of course), and then simply use the "View | <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a> Sources" main or <a href="http://dbpedia.org/resource/Context_%28language_use%29" id="link-id10051b50">context</a> menu sequence to unveil the Linked Data Sources associated with any Web Page.</p> <p></p> <p>Of course there is much more to come!</p>
Response to: Where's the Killer Semantic Web Application (Update #2)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-06-26#1391
2008-06-26T18:28:14Z
2008-07-19T15:50:46-04:00
<p>As is often the case these days, it's much easier to drop a <a href="http://dbpedia.org/resource/Blog" id="link-id13519b98">blog</a> post than it is to make a simple comment in an "old media" style<a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id134e92c8"> data space </a>:-(</p> <blockquote> <p> <cite>My use of "old media" implies: a place that still seeks subscriber data (no OpenID etc..), for the umpteenth time, as the toll fee for discourse development and participation on the Web.</cite> </p> </blockquote> <p>Anyway, here is what I attempted to post as a comment to Dan Grigorovici's post titled: <a href="http://www.semanticweb.com/article.php/12160_3753806_2" id="link-id134dfb80">Where is the Semantic Web Killer App?</a> </p> <p>Dan,</p> <p>An intriguing post to say the least :-) </p> <p>"<a href="http://dbpedia.org/resource/Linked_Data" id="link-id134265c0">Linked Data</a>" and "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id133d7048">Semantic Web</a>" aren't synonymous, they are simply connected, infrastructure DNA-wise. You can have "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id1096cb70">Semantic Web</a>" style graphs (i.e RDF Data) and not have "<a href="http://dbpedia.org/resource/Linked_Data" id="link-id133f0f48">Linked Data</a>" as per <a href="http://dbpedia.org/resource/Linked_Data" id="link-id134fc7c0">Linked Data</a> deployment tenets and best practices, a very important point.</p> <p>I've stated repeatedly, the "<a href="http://dbpedia.org/resource/Linked_Data" id="link-id134f03e8">Linked Data</a>" emphasis has more to do with focusing on a point of crystallization within the larger "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id134104f0">Semantic Web</a>" vision, so here is a quick recap:</p> <h3>What is <a href="http://dbpedia.org/resource/Linked_Data" id="link-id133decd0">Linked Data</a>?</h3> <p>A term coined by <a href="http://www.w3.org/People/Berners-Lee/card#i" id="link-id1340dd28">TimBL</a> that describes an application of HTTP to the time-tested process of "<a href="http://dbpedia.org/resource/Reference_(computer_science)">Data Access by Reference</a>". "<a href="http://dbpedia.org/resource/Linked_Data" id="link-id10695c20">Linked Data</a>" adds vital items to the "Data Access by Reference" pattern that have been erstwhile unattainable:</p> <ul> <li> The use of a Data Source Naming scoped to Database / Data Container Records as opposed to Tables, Views, Stored Procedures, Databases, and other Record Container tuple collections. Example: in <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-idd9c8af8">ODBC</a> / <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id130b0df0">JDBC</a>, a Data Source Name's scope stops at the Table / View level. In the <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a> realm you get an added layer of granularity due to record level name scope</li> <li>Incorporation of HTTP into the Data Source Naming scheme, which injects the expanse of the Web into the Data Access Range of the Data Source Name (i.e. a Named Record); so you can reference a record's description directly via HTTP which is simply a major deal (to put things mildly).</li> </ul> <p>So we have HTTP based URIs as the Data Sources Names for a "Linked Data <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id1044a2d8">Web</a>" i.e a Web of inter-connected Data Source Names that de-emphasize the importance of their host containers (Compound Documents / <a href="http://dbpedia.org/resource/Information" id="link-id134e0d38">Information</a> Resources).</p> <p>The business case or value proposition of "Linked Data" is synonymous with the value proposition of data access technologies such as <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id13400500">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id134f0250">JDBC</a>. <a href="http://dbpedia.org/resource/ADO.NET" id="link-id10923840">ADO</a>.<a href="http://dbpedia.org/resource/ADO.NET" id="link-id134ef878">NET</a>, OLE-DB, XMLA, and others (enterprise or consumer) in relation to the Individual and Enterprise pursuit of agility; in a realm where data is growing exponentially, and the maximum processing time in a single day remains 24 hrs. Data Access & Data Integration are timeless challenges due to the following constants:</p> <ul> <li> Structured Data Schema Heterogeneity - we will always model the same things differently</li> <li>Dirtiness of Data within Structured Data Containers - we are error prone due to laziness / sloppiness, time constraints, and the inherent limitation of our DNA based CPUs when dealing with large volumes of data.</li> </ul> <p> Note: The line between the Enterprise & Individuals continue to blur by the second, this is something I covered during my <a href="http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/Creating_Deploying_Exploiting_Linked_Data2.html" id="link-id13479488">Linked Data Planet keynote</a>, which is like most things I put on the Web (via this <a href="http://dbpedia.org/resource/Blog" id="link-id130ac870">blog</a> <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id10923ba8">data space</a>), is a live and practical demonstration of the virtues of Linked Data courtesy of <a href="http://dbpedia.org/resource/RDFa" id="link-id133fd270">RDFa</a>, the <a href="http://bibliontology.com/" id="link-id134248d8">Bibliographic Ontology</a>, and dereferencable URIs (i.e. HTTP based Data Source Names for Documents and the Entities they host).</p> <h3>Related</h3> <ul> <li> <a href="http://zitgist.com/labs/linked_data.html" id="link-id104778a8">Linked Data FAQ</a> - by <a href="http://community.linkeddata.org/dataspace/person/mkbergman#this" id="link-idd8e71b0">Mike Bergman</a> </li> <li> <a href="http://www.wired.com/special_multimedia/2008/st_infoporn_1607" id="link-id134c1e80">The Planetary Computer</a> from <a href="http://www.wired.com" id="link-id13416518">Wired Magazine</a> - which is basically the effect of Linked Data under a different label (note to Wired: "Tired of old Media repetitive Registrations" when seeking to make comments in the OpenID era!).</li> </ul>
My Linked Data Planet Keynote (Updated with missing link)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-06-19#1387
2008-06-19T05:25:00Z
2008-06-19T09:48:14-04:00
<p>I've finally found a second to drop a note about my keynote.</p> <p>The keynote: <a href="http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/Creating_Deploying_Exploiting_Linked_Data2.html" id="link-id103acfb8">Creating, Deploying, and Exploiting Linked Data</a>, sought to achieve the fundamental goal of: Demystify the concept of "<a href="http://dbpedia.org/resource/Linked_Data" id="link-id107134e8">Linked Data</a>" using anecdotal material that resonates with enterprise decision makers.</p> <p>To my pleasure, 90% of the audience members confirmed familiarization with the "<a href="http://dbpedia.org/resource/Data">Data</a> Source Name" concept of <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id106d97a8">Open Database Connectivity</a> (<a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id10956268">ODBC</a>). Thus, all I had to do was map "<a href="http://dbpedia.org/resource/Linked_Data" id="link-id10a55728">Linked Data</a>" to <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id10e77210">ODBC</a>, and then unveil the fundamental add-ons that "<a href="http://dbpedia.org/resource/Linked_Data" id="link-id10d1d290">Linked Data</a>" delivers:</p> <ul> <li>The ability to give database records names (Identifiers)</li> <li>The use of HTTP in the database record naming mechanism - which expands a named database record's reference scope via the expanse of the <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> (i.e HTTP based Identifiers called URIs).</li> </ul> <p>I believe a majority of attendees came to realize that the combination above injects a new Web interaction dynamic: access to "<a href="http://dbpedia.org/resource/Topic" id="link-id110978d0">Subject matter Concepts</a>" and <a href="http://dbpedia.org/resource/Named_entity_recognition" id="link-id10ea5160">Named Entities</a> contained within a page via HTTP base Data Source Names (URIs).</p> <p>BTW - My presentation is a <a href="http://dbpedia.org/resource/Linked_Data" id="link-id109e5e30">Linked Data Space</a> in it's own right courtesy of the <a href="http://bibliontology.com/" id="link-id10e76d90">Bibliographic Ontology</a> (which provides slide show modeling) and <a href="http://dbpedia.org/resource/RDFa" id="link-id10d48e40">RDFa</a> that allows me to embed annotations into my <a href="http://www.w3.org/Talks/Tools/Slidy/" id="link-id104be488">Slidy</a> based presentation :-)</p> <h3>Related</h3> <ul> <li> <a href="http://virtuoso.openlinksw.com/presentations/Creating_Deploying_Exploiting_Linked_Data2/Linked_Data_2008_keynote.ppt" id="link-id10a63640">PowerPoint</a> version of Presentation</li> <li> <a href="http://www.slideshare.net/rumito/linked-data-planet-key-note/" id="link-id103aaff8">Slideshare hosted </a>version</li> <li> <a href="http://www.authorstream.com/Presentation/rumito-72460-linked-data-planet-key-note-2008-keynote-science-technology-ppt-powerpoint/" id="link-id10b97c68">Authorstream hosted </a>version</li> <li> <a href="http://docs.google.com/Presentation?id=dc7jvc6m_1061gz888hdb" id="link-id10e01640">Google Docs hosted </a>version</li> </ul>
ODBC & WODBC Comparison
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-05-20#1364
2008-05-20T19:37:53Z
2008-05-20T15:46:11-04:00
<p> <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id100eb550">ODBC</a> delivers open <a href="http://dbpedia.org/resource/Data" id="link-idffd2338">data</a> access (by reference) to a broad range of enterprise databases via a '<a href="http://dbpedia.org/resource/C_(programming_language)" id="link-id104fd1d8">C</a>' based API. Thanks to the <a href="http://www.iodbc.org" id="link-id104721b0">iODBC</a> and <a href="http://www.unixodbc.org" id="link-id10954990">unixODBC</a> projects, <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id10494670">ODBC</a> is available across broad range of platforms beyond Windows.</p> <p> <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id0xc900928">ODBC</a> identifies <a href="http://dbpedia.org/resource/Data" id="link-id10f82200">data</a> sources using <a href="http://dbpedia.org/resource/Data" id="link-id0xcaad080">Data</a> Source Names (DSNs). </p> <p> WODBC (<a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> Open Database Connectivity) delivers open <a href="http://dbpedia.org/resource/Data">data</a> access to Web Databases / Data Spaces. The Data Source Naming scheme: <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id1009ce40">URI</a> or IRI, is <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id101fc1b0">HTTP</a> based thereby enabling data access by reference via the Web. </p> <p><a href="http://dbpedia.org/resource/Open_Database_Connectivity">ODBC</a> DSNs bind ODBC client applications to Tables, Views, Stored Procedures. </p> <p>WODBC DSNs bind you to a Data <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id10182a88">Space</a> (e.g. my <a href="http://myopenlink.net/dataspace/person/kidehen" id="link-id105a7858">FOAF based Profile Page</a> where you can use the "Explore Data Tab" to look around if you are a human visitor) or a specific <a href="http://dbpedia.org/resource/Entity" id="link-id10bd8578">Entity</a> within a Data <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id10780dc0">Space</a> (i.e <a href="http://myopenlink.net/dataspace/person/kidehen#this" id="link-id10848e08">Person Entity Me</a>).</p> <p>ODBC Drivers are built using APIs (DBMS Call Level Interfaces) provided by DBMS vendors. Thus, a DBMS vendor can chose not to release an API, or do so selectivity, for competitive advantage or market disruption purposes (it's happened!).</p> <p>WODBC Drivers are also built using APIs (Web Services associated with a Web Data <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id0xcbe6348">Space</a>). These drivers are also referred to as <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=rdf%20middleware&type=text&output=html" id="link-id16564058">RDF Middleware</a> or RDFizers. The "Web" component of WODBC ensures openness, you publish Data with URIs from your <a href="http://dbpedia.org/resource/Linked_Data" id="link-id1064a768">Linked Data</a> Server and that's it; your data <a href="http://en.wikipedia.org/wiki/Data_Spaces">space</a> or specific data entities are live and accessible (by reference) over the Web!</p> <p>So we have come full circle (or cycle), the Web is becoming more of a structured database everyday! What's new is old, and what's old is new! </p> <p>Data Access is everything, without "Data" there is no <a href="http://dbpedia.org/resource/Information" id="link-id100a9de8">information</a> or <a href="http://dbpedia.org/resource/Knowledge" id="link-id10bb67e8">knowledge</a>. Without "Data" there's not notion of vitality, purpose, or value.</p> <p>URIs make or break everything in the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10a71638">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id10494400">Web</a> just as ODBC DSNs do within the enterprise. </p> <p>I've deliberately left <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id10a05280">JDBC</a>, <a href="http://dbpedia.org/resource/ADO.NET" id="link-id104e4a70">ADO</a>.<a href="http://dbpedia.org/resource/ADO.NET" id="link-id10215668">NET</a>, and OLE-DB out of this piece due to their respective programming languages and frameworks specificity. None of these mechanisms match the platform availability breadth of ODBC.</p> <p>The Web as a true <a href="http://dbpedia.org/resource/Model-view-controller" id="link-id108ee598">M</a>-<a href="http://dbpedia.org/resource/Model-view-controller" id="link-id0xcda5e90">V</a>-C pattern is now crystalizing. The "M" (Model) component of M-V-C is finally rising to the realm of broad attention courtesy of the "<a href="http://www.w3.org/DesignIssues/LinkedData.html" id="link-id1024ff08">Linked Data" meme</a> and "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id1831b418">Semantic Web</a>" vision.</p> <p>By the way, M-V-C lines up nicely with Web 1.0 (Web Forms / Pages), Web 2.0 (Web Services based APIs), and Web 3.0 (Data Web, Web of Data, or <a href="http://dbpedia.org/resource/Linked_Data" id="link-id0xb6d0e90">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id0xb22a158">Web</a>) :-)</p>
On "Semantic", "Semantic Web", and "Linked Data Web"
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-05-15#1360
2008-05-15T14:11:13Z
2008-05-15T14:31:38.000004-04:00
<p> <a href="http://novaspivack.typepad.com/" id="link-id102f4e00">Nova Spivack</a> has just penned a post titled: <a href="http://novaspivack.typepad.com/nova_spivacks_weblog/2008/05/on-the-differen.html" id="link-id101a2300">On the Difference Between "Semantic" and "Semantic Web</a>", where he covers the fundamental difference between "Semantic" (what I call "Semantics Inside") and "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id11dd0578">Semantic Web</a>" applications. I would like to extend the distinctions further by adding the "<a href="http://dbpedia.org/resource/Linked_Data" id="link-id10b54ca0">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id106f73d0">Web</a>" distinctions to the developing discourse. </p> <p>The <a href="http://dbpedia.org/resource/Linked_Data" id="link-id1089ff48">Linked Data Web</a> (aka. <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10653828">Linked Data</a>) describes <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id134abfb0">RDF</a> <a href="http://dbpedia.org/resource/Data" id="link-id140283a8">data</a> injected into the Web, where the <a href="http://dbpedia.org/resource/Identity_(object-oriented_programming)" id="link-id1029ebf0">Data Object Identifiers</a> (URIs) in an <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id1011b180">RDF</a> graph (collection of <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id103a4960">RDF</a> triples) are endowed with <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id104362d8">HTTP</a> based URIs. The net effect of this approach to <a href="http://dbpedia.org/resource/Data" id="link-id107963a0">Data</a> Object Identity is that it facilitates "Open <a href="http://dbpedia.org/resource/Data" id="link-id1331f640">Data</a> Access by Reference" on the Web (aka <a href="http://dbpedia.org/resource/Data" id="link-id10a3c608">data</a> dereferencing).</p> <p>If you recall pre Web ubiquity, in the enterprise realm for instance, Open Database Connectivity (<a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id12c6dd40">ODBC</a>) emerged as a mechanism for separating <a href="http://dbpedia.org/resource/Data" id="link-id13d6a5b0">Data</a> Access and <a href="http://dbpedia.org/resource/Data" id="link-id10b29488">Data</a> Management in the database oriented Client-Sever model. Although <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id106a8bd8">ODBC</a> gave you access to <a href="http://dbpedia.org/resource/Data">data</a>, the data access entry point took the form of a data access specific naming mechanism called a "Data Source Name" (DSN). <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id106eef18">ODBC</a> DSNs typically exposed Tables or Views. The same thing applies to <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id12c6dfe8">JDBC</a> where a non <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id104cb620">HTTP</a> based URN scheme applies.</p> <p>Zip forward to where we are today on the Web; the Web is evolving from a Document centric Database to a Distributed <a href="http://dbpedia.org/resource/Object_database" id="link-id12d15268">Object Database</a>, and you should see that in <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10716bb8">Linked Data</a> we are now truly looking at the best of all worlds: Web Open Database Connectivity (WODBC) with the following advantages:</p> <ul>- direct Access to a single Record (an <a href="http://dbpedia.org/resource/Entity" id="link-id1037d530">Entity</a>) or Record Sets (<a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id10d48e98">RDF</a> based <a href="http://dbpedia.org/resource/Entity" id="link-id1402c8f0">Entity</a> Sets) by reference over <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id10bae7a8">HTTP</a> across disparate Data Spaces on the Web</ul> <ul>- the ability to mesh disparate data sources without being impeded by back-end DBMS engine model, vendor, host operating development frameworks, or host operating system specificity</ul> <ul>- an opportunity to learn from the enterprise DBMS market and Client-Server markets of yore with regards to the shape and form of next generation <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10fe4558">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id10153c98">Web</a> oriented solutions.</ul> <p>To conclude, we now have "Semantics Inside" (<a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id109d1280">RDF</a> or non <a href="http://dbpedia.org/resource/Resource_Description_Framework">RDF</a>), "<a href="http://dbpedia.org/resource/Semantic_Web" id="link-id106741a8">Semantic Web</a>" (RDF graphs with Object Identifiers that may or may not be <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id1011cc28">HTTP</a> based), and "<a href="http://dbpedia.org/resource/Linked_Data" id="link-id10793f70">Linked Data</a> <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id149ecc10">Web</a>" (RDF graphs with Object Identifiers that must be <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id10a3b860">HTTP</a> based and dereferencable) oriented applications, in the emerging landscape associated with the "Semantics" moniker.</p> <p>As per usual, this post is a record in my <a href="http://dbpedia.org/resource/Blog" id="link-id1020e240">Blog</a> oriented <a href="http://en.wikipedia.org/wiki/Data_Spaces" id="link-id105cbf90">Data Space</a> on the Web. The permalink of this post is a <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id10ce53a8">URI</a> constructed with <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id1082f0f8">Giant Global Graph</a> enrichment in mind :-)</p>
Linked Data enabling PHP Applications
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-04-10#1334
2008-04-10T18:09:49Z
2008-04-10T14:12:47-04:00
<p> <a href="http://myopenlink.net/dataspace/person/danieljohnlewis#this" id="link-id10820610">Daniel lewis</a> has penned a variation of post about <a href="http://vanirsystems.com/danielsblog/2008/04/10/simplified-adding-wordpress-blogs-into-the-linked-data-web-using-virtuoso/" id="link-id10827948">Linked Data enabling PHP applications</a> such as: <a href="http://dbpedia.org/resource/WordPress" id="link-id10426278">Wordpress</a>, <a href="http://dbpedia.org/resource/PhpBB" id="link-id13f431c0">phpBB3</a>, <a href="http://dbpedia.org/resource/MediaWiki" id="link-id10dd8760">MediaWiki</a> etc.</p> <p>Daniel simplifies my post by using diagrams to depict the different paths for <a href="http://dbpedia.org/resource/PHP" id="link-id10adcc08">PHP</a> based applications exposing <a href="http://dbpedia.org/resource/Linked_Data" id="link-id107b4e60">Linked Data</a> - especially those that already provide a significant amount of the content that drives <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-id13b0ab48">Web</a> 2.0.</p> <p>If all the content in <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-id0x1d499470">Web</a> 2.0 <a href="http://dbpedia.org/resource/Information" id="link-id12bd3b10">information</a> resources are distillable into discrete <a href="http://dbpedia.org/resource/Data" id="link-id10962060">data</a> objects endowed with <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id176a30e8">HTTP</a> based IDs (URIs), with zero "<a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=rdf%20tax&type=text&output=html" id="link-id1098bcd8">RDF handcrafting Tax</a>", what do we end up with? A <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id1372ce88">Giant Global Graph</a> of <a href="http://dbpedia.org/resource/Linked_Data" id="link-id0xa29f0658">Linked Data</a>; the <a href="http://dbpedia.org/resource/World_Wide_Web">Web</a> as a Database.</p> <p>So, what used to apply exclusively, within enterprise settings re. <a href="http://dbpedia.org/resource/Oracle_Database" id="link-id12d91448">Oracle</a>, <a href="http://dbpedia.org/resource/IBM_DB2" id="link-id13dd27d8">DB2</a>, <a href="http://dbpedia.org/resource/IBM_Informix" id="link-id108e6b98">Informix</a>, <a href="http://dbpedia.org/resource/Ingres" id="link-id13383708">Ingres</a>, <a href="http://dbpedia.org/resource/Sybase" id="link-idfed8aa8">Sybase</a>, <a href="http://dbpedia.org/resource/Microsoft_SQL_Server" id="link-id10b8b190">Microsoft SQL Server</a>, <a href="http://dbpedia.org/resource/MySQL" id="link-id13066ea8">MySQL</a>, PostrgeSQL, Progress Open Edge, <a href="http://dbpedia.org/resource/Firebird_database_server" id="link-id104f0a78">Firebird</a>, and others, now applies to the Web. The Web becomes the "<a href="http://dbpedia.org/resource/federated_database_system" id="link-id105a5340">Distributed Database</a> Bus" that connects database records across disparate databases (or <a href="http://dbpedia.org/resource/Data" id="link-id0xc706c68">Data</a> Spaces). These databases manage and expose records that are remotely accessible "by reference" via <a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-id0x1c8f7fe0">HTTP</a>.</p> <p>As I've stated at every opportunity in the past, Web 2.0 is the greatest thing that every happened to the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id13d65278">Semantic Web</a> vision :-) Without the "<a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=Web%202.0%20%20conundrum&type=text&output=html" id="link-id100d16d0">Web 2.0 Data Silo Conundrum</a>" we wouldn't have the cry for "<a href="http://dbpedia.org/resource/Data">Data</a> Portability" that brings a lot of clarity to some fundamental Web 2.0 limitations that end-users ultimately find unacceptable.</p> <p> In the late '80s, the <a href="http://dbpedia.org/resource/SQL" id="link-idff4f0d0">SQL</a> <a href="http://dbpedia.org/resource/SQL_Access_Group" id="link-id138fbd40">Access Group</a> (now part of <a href="http://dbpedia.org/resource/X/Open" id="link-id104ee010">X</a>/<a href="http://dbpedia.org/resource/X/Open" id="link-id0xac9eab8">Open</a>) addressed a similar problem with <a href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id106d2008">RDBMS</a> silos within the enterprise that lead to the SAG <a href="http://dbpedia.org/resource/Call_Level_Interface" id="link-id105d45d0">CLI</a> which is exists today as Open Database Connectivity.</p> <p>In a sense we now have WODBC (Web Open Database Connectivity), comprised of Web Services based CLIs and/or traditional back-end DBMS CLIs (<a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id13f58708">ODBC</a>, <a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id10aa81e0">JDBC</a>, <a href="http://dbpedia.org/resource/ADO.NET" id="link-id5fddb68">ADO</a>.<a href="http://dbpedia.org/resource/ADO.NET" id="link-id0x9f085a10">NET</a>, OLE-DB, or Native), Query Language (<a href="http://dbpedia.org/resource/SPARQL" id="link-id10adb5c8">SPARQL</a> Query Language), and a Wire Protocol (<a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol">HTTP</a> based <a href="http://www.w3.org/TR/rdf-sparql-protocol/" id="link-id126fa068">SPARQL Protocol</a>) delivering Web infrastructure equivalents of <a href="http://dbpedia.org/resource/SQL" id="link-id0x1d0a5fc8">SQL</a> and RDA, but much better, and with much broader scope for delivering profound value due to the Web's inherent openness. Today's <a href="http://dbpedia.org/resource/PHP" id="link-id0xc88ed68">PHP</a>, <a href="http://dbpedia.org/resource/Python_programming_language" id="link-id10a70530">Python</a>, <a href="http://dbpedia.org/resource/Ruby_programming_language" id="link-id13d9da18">Ruby</a>, <a href="http://dbpedia.org/resource/Tcl" id="link-id10a3c2a8">Tcl</a>, <a href="http://dbpedia.org/resource/Perl" id="link-id13e1b6f0">Perl</a>, <a href="http://dbpedia.org/resource/ASP.NET" id="link-id10810388">ASP</a>.<a href="http://dbpedia.org/resource/ASP.NET" id="link-id0xa22ce378">NET</a> developer is the enterprise <a href="http://dbpedia.org/resource/4GL" id="link-id1396a500">4GL</a> developer of yore, without enterprise confinement. We could even be talking about <a href="http://dbpedia.org/resource/5GL" id="link-id1077f250">5GL</a> development once the <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a> interaction is meshed with dynamic languages (delivering higher levels of abstraction at the language and data interaction levels). Even the underlying schemas and basic design will evolve from <a href="http://dbpedia.org/resource/Closed_world_assumption" id="link-id10b280c8">Closed World</a> (solely) to a mesh of Closed & <a href="http://dbpedia.org/resource/Open_world_assumption" id="link-id104b9978">Open World</a> view schemas.</p>
Adding Wordpress Blogs into the Linked Data Web using Virtuoso
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-04-09#1333
2008-04-09T21:27:34Z
2008-04-10T12:33:05.000003-04:00
<p> <a href="http://dbpedia.org/resource/WordPress" id="link-id101103b0">Wordpress</a> is a Weblog platform comprised of the following: </p> <ol> <li>User Interface - <a href="http://dbpedia.org/resource/PHP" id="link-id107ba368">PHP</a> </li> <li>Application Logic - <a href="http://dbpedia.org/resource/PHP" id="link-id107066b8">PHP</a> </li> <li> <a href="http://dbpedia.org/resource/Data" id="link-id13968340">Data</a> Storage (<a href="http://dbpedia.org/resource/SQL" id="link-id104c5350">SQL</a> <a href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id1076d790">RDBMS</a>) - <a href="http://dbpedia.org/resource/MySQL" id="link-id109c4ea0">MySQL</a> via <a href="http://dbpedia.org/resource/PHP" id="link-id133af570">PHP</a>-<a href="http://dbpedia.org/resource/MySQL" id="link-idf0b03b0">MySQL</a> </li> <li> <a href="http://dbpedia.org/resource/Application_server" id="link-id13217630">Application Server</a> - <a href="http://dbpedia.org/resource/Apache" id="link-id108219d8">Apache</a> </li> </ol> <p>In the form above (the norm), <a href="http://dbpedia.org/resource/WordPress" id="link-id105c6d88">Wordpress</a> <a href="http://dbpedia.org/resource/Data" id="link-id104938f8">data</a> can be injected into the <a href="http://dbpedia.org/resource/Linked_Data" id="link-id107a5f18">Linked Data</a> <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-id177329c0">Web</a> via RDFization middleware such as the<a href="http://virtuoso.openlinksw.com/Whitepapers/html/VirtSpongerWhitePaper.html" id="link-id10531b50">Virtuoso Sponger</a> (built into all <a href="http://virtuoso.openlinksw.com" id="link-id10d7e710">Virtuoso</a> instances) and <a href="http://triplr.org/" id="link-id107dcab8">Triplr</a>. The downside of this approach is that the <a href="http://dbpedia.org/resource/Blog" id="link-id1055ab68">blog</a> owner doesn't necessary possess full control over their contributions to the emerging <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-idfed0358">Giant Global Graph</a> or <a href="http://dbpedia.org/resource/Linked_Data" id="link-id10d70668">Linked Data</a>.</p> <p>Another route to <a href="http://dbpedia.org/resource/Linked_Data" id="link-id104c7f68">Linked Data</a> exposure is via <a href="http://virtuoso.openlinksw.com" id="link-id0xa255fb50">Virtuoso</a>'s Metaschema Language for producing <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id10968388">RDF</a> Views over <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id13f594c8">ODBC</a>/<a href="http://dbpedia.org/resource/Java_Database_Connectivity" id="link-id138f69a8">JDBC</a> accessible <a href="http://dbpedia.org/resource/Data" id="link-id1393c068">Data</a> Sources, that enables the following setup:</p> <ol> <li>User Interface - <a href="http://dbpedia.org/resource/PHP" id="link-id0x9fb9c478">PHP</a> </li> <li>Application Logic - PHP </li> <li> <a href="http://dbpedia.org/resource/Data" id="link-id0xc605960">Data</a> Storage (<a href="http://dbpedia.org/resource/SQL" id="link-id0xc2be608">SQL</a> <a href="http://dbpedia.org/resource/Relational_database_management_system" id="link-id0xc7a28a8">RDBMS</a>) - <a href="http://dbpedia.org/resource/MySQL" id="link-id0xc7228f0">MySQL</a> via the PHP-MySQL <a href="http://dbpedia.org/resource/Data">data</a> access interface </li> <li> <a href="http://dbpedia.org/resource/Virtual_Database" id="link-id134b1ee8">Virtual Database</a> linkage of MySQL Tables into Virtuoso </li> <li> <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-idfe31548">RDF</a> View generated over the Virtual SQL Tables </li> <li> <a href="http://dbpedia.org/resource/Application_server" id="link-id0xb8dfa68">Application Server</a> - Virtuoso which provides <a href="http://dbpedia.org/resource/Linked_Data" id="link-id0xc149518">Linked Data</a> Deployment such that <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id10ad9ca0">RDF</a> <a href="http://dbpedia.org/resource/Linked_Data">Linked Data</a> is exposed when requested by <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-idfd352e0">Web</a> User Agents.</li> </ol> <p>Alternatively, you can also exploit Virtuoso as the SQL DBMS, <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id0x9ec4f440">RDF</a> DBMS, Application Server, and Linked Data Deployment platform:</p> <ol> <li>User Interface - PHP </li> <li> Application Logic - PHP </li> <li>Data Storage (SQL RDBMS) - Virtuoso via PHP-<a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id14197218">ODBC</a> data access interface (* <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id103d1a80">ODBC</a> is Virtuoso's native SQL CLI/API *) </li> <li><a href="http://dbpedia.org/resource/Resource_Description_Framework">RDF</a> View generated over the Native SQL Tables </li> <li>Application Server - Virtuoso which provides Linked Data Deployment such that RDF Linked Data is exposed when requested by <a href="http://dbpedia.org/resource/World_Wide_Web" id="link-id13918d68">Web</a> User Agents (e.g. <a href="http://demo.openlinksw.com/rdfbrowser" id="link-idff835f0">OpenLink RDF Browser</a>, <a href="http://zitgist.com/about/" id="link-id1372e510">Zitgist</a> <a href="http://dataviewer.zitgist.com" id="link-id109c3048">Data Viewer</a>, <a href="http://www4.wiwiss.fu-berlin.de/rdf_browser" id="link-id105d97f0">DISCO Hyperdata Browser</a>, and <a href="http://dig.csail.mit.edu/2005/ajar/release/tabulator/0.8/tab.html" id="link-id10cc20d8">Tabulator</a>). </li> </ol> <h2 align="left">Benefits?</h2> <ul> <li>Each user account gets a proper Linked Data <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id108c92b0">URI</a> (ID) that can me meshed/smushed with other IDs (so you add data from this new <a href="http://dbpedia.org/resource/Blog" id="link-idfd39648">blog</a> space to other linked data sources associated with you other URIs/IDs) </li> <li>Each post gets a proper <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id10add540">URI</a> All data is now query-able via <a href="http://dbpedia.org/resource/SPARQL" id="link-id101b98f0">SPARQL</a> Discoverability increases exponentially (without drop in relevance in either direction i.e. discovering or being discovered)</li> </ul> <p>How Do I map the <a href="http://dbpedia.org/resource/WordPress" id="link-id12e448c0">WordPress</a> SQL Schema to RDF using Virtuoso? </p> <ul> <li>Determine the RDF Schema or Ontologies that define the Classes for which you will be producing instance data (e.g. SIOC and FOAF) </li> <li>Declare <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-idfaf5c80">URI</a>/IRI generator functions (*special Virtuoso functions*) </li> <li>Use <a href="http://dbpedia.org/resource/SPARQL" id="link-id100436b8">SPARQL</a> Graph patterns to apply <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id0x9de74950">URI</a>/IRI generator functions to Tables, Views, Table Values mode Stored Procedures, Query Resultsets as part of RDBMS to RDF mapping </li> </ul> <p> Read the <a href="http://virtuoso.openlinksw.com/dataspace/dav/wiki/Main/VOSSQL2RDF" id="link-idfaf5d58">Meta Schema Language guide</a> or simply apply our "<a href="http://dbpedia.org/resource/WordPress" id="link-id0x9ef73c78">WordPress</a> SQL Schema to RDF" script to your Virtuoso hosted instance. Of course, there are other mappings that cover other PHP applications deployed via Virtuoso:</p> <ul> <li> <a href="http://dbpedia.org/resource/PhpBB" id="link-id179f4870">phpBB3</a> SQL Schema to RDF </li> <li> <a href="http://dbpedia.org/resource/Drupal" id="link-id10b263d8">Drupal</a> SQL Schema to RDF </li> <li> <a href="http://dbpedia.org/resource/MediaWiki" id="link-id10263a40">MediaWiki</a> SQL Schema to RDF </li> </ul> <h2>Live Demos?</h2> <ul> <li> <a href="http://demo.openlinksw.com/phpBB3" id="link-id17761e88">Virtuoso Hosting phpBB3</a> (<a href="http://demo.openlinksw.com/phpBB3/user/demo#this" id="link-id10087e68">example User URI</a>)</li> <li> <a href="http://demo.openlinksw.com/drupal" id="link-id1091f1d8">Virtuoso Hosting Drupal</a> (<a href="http://demo.openlinksw.com/drupal/user/demo#this" id="link-id13e3d468">example User URI</a>)</li> <li> <a href="http://demo.openlinksw.com/mediawiki" id="link-id10531be0">Virtuoso Hosting MediaWiki</a> (<a href="http://demo.openlinksw.com/mediawiki/user/KingsleyIdehen#this" id="link-id109c5d40">example User URI</a>)</li> </ul>
Linked Data is vital to Enterprise Integration driven Agility
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-03-21#1325
2008-03-22T01:56:00Z
2008-03-22T14:13:41.000002-04:00
<p> <a href="http://www.linkedin.com/pub/0/207/489" id="link-id10914030">John Schmidt</a>, from Informatica, penned an interesting post titled: <a href="http://blogs.informatica.com/enterprise_data_management/2008/03/it_doesnt_matter_integration_d.html" id="link-idd6d76d8">IT Doesn't Matter - Integration Does</a>. </p> <p>Yes, integration is hard, but I do profoundly believe that what's been happening on the Web over the last 10 or so years also applies to the Enterprise, and by this I absolutely do not mean "Enterprise 2.0" since "2.0" and productive agility do not compute in my realm of discourse. </p> <blockquote>large collections of RSS feeds, Wikiwords, Shared Bookmarks, Discussion Forums etc.. when disconnected at the data level (i.e. hosted in pages with no access to the "data behind") simply offer information deluge and inertia (there are only so many hours for processing opaque information sources in a given day).</blockquote> <p>Enterprises fundamentally need to process information efficiently as part of a perpetual assessment of their relative competitive Strengths, Weaknesses, Opportunities, and Threats (<a href="http://dbpedia.org/resource/SWOT_analysis" id="link-id10776fe8">SWOT</a>), in existing and/or future markets. Historically, IT acquisitions have run counter intuitively to the aforementioned quest for "Ability" due to the predominance of "rip and replace" approach technology acquisition that repeatedly creates and perpetuates information silos across Application, Database, Operating System, Development Environment boundaries. The sequence of events typically occurs as follows:</p> <ol> <li> applications are acquired on a problem by problem basis</li> <li>back-end application databases are discovered once ad-hoc information views are sought by <a href="http://dbpedia.org/resource/Information_worker" id="link-id10a111c8">information workers</a> </li> <li>back-end database disparity across applications is discovered once holistic views are sought by <a href="http://dbpedia.org/resource/Knowledge_worker" id="link-id107997d8">knowledge workers</a> (typically <a href="http://dbpedia.org/resource/Domain_expert" id="link-id102ddf08">domain experts</a>).</li> </ol> <p>In the early to mid 90's (pre ubiquitous Web), operating system, programming language, operating system, and development framework independence inside the enterprise was technically achievable via ODBC (due to it's platform independence). That said, DBMS specific <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id10889d20">ODBC</a> channels alone couldn't address the holistic requirements associated with Conceptual Views of disparate data sources, hence the need for Data Access Virtualization via <a href="http://dbpedia.org/resource/Federated_database_system" id="link-id10884490">Virtual Database</a> Engine technology.</p> <p>Just as is the case on the Web today, with the emergence of the "Linked Data" meme, enterprises now have a powerful mechanism for exploiting the Data Integration benefits associated with generating Data Objects from disparate data sources, endowed with HTTP based IDs (URIs).</p> <p>Conceptualizing access to data exposed Databases APIs, SOA based Web Services (SOAP style Web Services), Web 2.0 APIs (REST style Web Services), XML Views of <a href="http://dbpedia.org/resource/SQL" id="link-id117f8a00">SQL</a> Data (<a href="http://dbpedia.org/resource/SQL/XML" id="link-id104bb730">SQLX</a>), pure XML etc.. is problem area addressed by RDF aware middleware (<a href="http://esw.w3.org/topic/ConverterToRdf" id="link-id10a9deb8">RDFizers</a> e.g <a href="http://virtuoso.openlinksw.com/presentations/Virtuoso_Sponger_1/Virtuoso_Sponger_1.html" id="link-id10256fb0">Virtuoso Sponger</a>).</p> <img src="http://myopenlink.net:8890/%7Ekidehen/Public/images/URI_Data_Source_Pyra_Enterp.png" /> <p>Here are examples of what <a href="http://virtuoso.openlinksw.com/presentations/RDF_Mapping_Presentation_W3C_workshop3/RDF_Mapping_Presentation_W3C_workshop3.html" id="link-id129a6a30">SQL Rows exposed as RDF Data Objects </a>(identified using HTTP based URIs) would look like outside or behind a corporate firewall:</p> <ul> Customer - <a href="http://demo.openlinksw.com/Northwind/Customer/ALFKI#this" id="link-id1183acd8">Alfreds Futterkiste</a> </ul> <ul>Customer Contact - <a href="http://demo.openlinksw.com/Northwind/CustomerContact/ALFKI#this" id="link-id11746bb0">Maria Anders</a> </ul> <ul>Salesrep - <a href="http://demo.openlinksw.com/Northwind/Employee/NancyDavolio1#this" id="link-idff76ed8">Nancy Davolio</a> </ul> <ul>Customer Orders Numbers - <a href="http://demo.openlinksw.com/Northwind/Order/11084#this" id="link-id10ca2648">11084</a>, <a href="http://demo.openlinksw.com/Northwind/Order/11011#this" id="link-id11736160">11011</a>, <a href="http://demo.openlinksw.com/Northwind/Order/11078#this" id="link-id108156e0">11078</a>, <a href="http://demo.openlinksw.com/Northwind/Order/11088#this" id="link-id10747f30">11085</a> </ul> <p>What's Good for the Web Goose (<a href="http://kidehen.idehen.net/dataspace/person/kidehen%23this%3E" id="link-id10a33c50">Personal Data Space URIs</a>) is good for the Enterprise Gander (<a href="http://www.openlinksw.com/dataspace/organization/openlink#this" id="link-id109fbbe0">Enterprise Data Space URIs</a>).</p> <h2>Related</h2> <ul> <a href="http://blogs.informatica.com/enterprise_data_management/2008/02/data_access_a_cultural_or_tech.html" id="link-idffe8168">Data Access - A Cultural or Technical Challenge?</a> </ul>
Semantic Web Advocate of Tribe Linked Data! (Updated)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-03-20#1324
2008-03-20T16:03:35Z
2008-03-20T16:29:47-04:00
<p>These days I increasingly qualify myself and my Semantic Web advocacy as falling under the realm Linked Data. Thus, I tend to use the following introduction: I am <a href="http://kidehen.idehen.net/dataspace/person/kidehen%23this" id="link-idfd257f0">Kingsley Idehen</a>, of the Tribe <a href="http://dbpedia.org/resource/Linked_Data" id="link-idfec62f8">Linked Data</a>.</p> <p>The aforementioned qualification is increasingly necessary for the following reasons:</p> <ol> <li>The Semantic Web vision is broad and comprised of many layers</li> <li>A new era of confusion is taking shape just as we thought we had quelled the prior AI dominated realm of confusion</li> <li>None of the Semantic Web vision layers are comprehensible in practical ways without a basic foundation</li> <li>Open Data Access is the foundation of the Semantic Web (in prior post I used the term: <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1037" id="link-idfe71640">Semantic Web Layer 1</a>)</li> <li>URIs units of Open Data Access in Semantic Web parlance i.e.. each datum on the Web must have an ID (minted by the host Data Space).</li> </ol> <p>The terms <a href="http://dbpedia.org/resource/Giant_Global_Graph" id="link-id1224e020">GGG</a>, Linked Data, Data Web, Web of Data, and Web 3.0 (when I use this term) all imply URI driven Open Data Access for the Web Database (maybe call this <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-idfeb86e8">ODBC</a> for the Web) -- ability to point to records across data spaces without any adverse effect to the remote data spaces. It's really important to note that none of the aforementioned terms have nothing to do with the "Linguistic Meaning of blurb". Building a smarter document exposed via a URL without exposing descriptive data links doesn't provide open access to information data sources. </p> <p>As human beings we are all endowed with reasoning capability. But we can't reason without access to data. Dearth of openly accessible structured data is the source of many ills in cyberspace and across society in general. Today we still have Subjectivity reigning over Objectivity due to the prohibitive costs of open data access.</p> <p>We can't cost-effectively pursue objectivity without cost-effective infrastructure for creating alternative views of the data behind information sources (e.g. Web Pages). More Objectivity and less Subjectivity is what the next Web Frontier is about. At OpenLink we simply use the moniker: Analysis for All! Everyone becomes a data analyst in some form, and even better, the analysis are easily accessible to anyone connected to the Web. Of course, you will be able to share special analysis with your private network of friends and family, or if you so choose, not at all :-)</p> <p>Recap, it's important to note that Linked Data is the foundation layer of the Semantic Web vision. It's not only facilitates open data access, it also enables data integration (Meshing as opposed to Mashing) across disparate data schemas</p> <p>As demonstrated by <a href="http://dbpedia.org/about" id="link-idfe37fd8">DBpedia</a> and the <a href="http://richard.cyganiak.de/2007/10/lod/" id="link-idfeeef40">Linked Data Solar system</a> emerging around it, if you <a href="http://www.w3.org/Provider/Style/URI" id="link-idee98310">URI everything, then everything is Cool</a>.</p> <p>Linked Data and <a href="http://dbpedia.org/resource/Information_silo" id="link-idfcae4a0">Information Silos</a> are mutually exclusive concepts. Thus, you cannot produce a web accessible Information Silo and then refer to it as "Semantic Web" technology. Of course, it might be very Semantic, but it's fundamentally devoid of critical "Semantic Web" essence (<a href="http://dbpedia.org/resource/DNA" id="link-id10dddd08">DNA</a>).</p> <p>My acid test for any Semantic Web solution is simply this (using a <a href="http://dbpedia.org/resource/User_agent" id="link-idff7b4e8">Web User Agent or Client</a>):</p> <ol> <li>go to the profile page of the service</li> <li>ask for an RDF representation of my profile (by this I mean "get me the raw data in structured form")</li> <li>attempt to traverse the structured data graph (RDF) that the service provides via live de-referncable URIs.</li> </ol> <p>Here is the Acid test against my Data Space:</p> <ol> <li> <a href="http://kidehen.idehen.net/dataspace/person/kidehen" id="link-idfd2e5c8">My Profile Page</a> (HTML representation dispatched via an instance of <a href="http://en.wikipedia.org/wiki/OpenLink_Data_Spaces" id="link-id10d3d0f8">OpenLink Data Spaces</a>)</li> <li>Click on the "Linked Data Tab" (HTML representation endowed with Data Links the link to information resources containing other structured descriptions of things).</li> </ol>
Linked Data Solution for Exposing OpenLink Product Portfolio
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-02-16#1317
2008-02-16T21:08:17Z
2008-02-25T15:08:04-05:00
<p>At <a href="http://www.openlinksw.com" id="link-id14a37688">OpenLink Software</a>, we've had an immense problem explaining the depth and breadth of our product porfolio via traditional Document Web pages. Thanks to <a href="http://dbpedia.org/resource/SPARQL" id="link-id101bc330">SPARQL</a> and <a href="http://dbpedia.org/resource/Linked_Data" id="link-id105d2d28">Linked Data</a>, we are now able to use <a href="http://dbpedia.org/resource/Identity_%2528object-oriented_programming%2529" id="link-id1341fbd0">Web Data Object IDs</a> (<a href="http://dbpedia.org/resource/Hypertext_Transfer_Protocol" id="link-idf101908">HTTP</a> based <a href="http://dbpedia.org/resource/Uniform_Resource_Identifier" id="link-id135cd8a0">URI</a>s) to produce super SKUs for every item in our product portfolio. Even better, we are able to handle the additional challenge of exposing features and benefits which by their very nature are mercurial across an array of fronts (products releases, product formats, and supported platforms etc). </p> <p> Now I can simply state the following using Linked Data (hyperdata) links:</p> <a href="http://dbpedia.org/resource/OpenLink_Software" id="link-idfafc070">OpenLink Software</a>'s product porfolio is comprised of the following product families: <ol> <li> <a href="http://data.openlinksw.com/oplweb/product_family/uda#this" id="link-idf856aa8">Universal Data Access Drivers Suite (UDA)</a> for <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-idfc5f498">ODBC</a>, JDBC, <a href="http://dbpedia.org/resource/ADO.NET" id="link-idfc20120">ADO.NET</a>, <a href="http://dbpedia.org/resource/OLE_DB" id="link-id11579a08">OLE-DB</a>, and <a href="http://dbpedia.org/resource/XML_for_Analysis" id="link-id1067d098">XMLA</a> </li> <li> <a href="http://data.openlinksw.com/oplweb/product_family/dca#this" id="link-id1318b3f8">OpenLink Data Spaces</a> </li> <li> <a href="http://data.openlinksw.com/oplweb/product_family/virtuoso#this" id="link-idf8d7ea0">Virtuoso</a> </li> </ol> <p> We no longer have to explain (repeatedly) why our drivers exist in <a href="http://data.openlinksw.com/oplweb/product_format/express#this" id="link-idf76e1f0">Express</a>, <a href="http://data.openlinksw.com/oplweb/product_format/st#this" id="link-idf861be8">Lite</a>, and <a href="http://data.openlinksw.com/oplweb/product_format/mt#this" id="link-id128da1e0">Multi-Tier</a> Edition formats, or why you ultimately need Multi-Tier Drivers over Single Tier Drivers (Express or Lite Editions) since you ultimately heed <a href="http://data.openlinksw.com/oplweb/product_format_feature/RulesEngineBasedSecurity#this" id="link-idf8d70b0">high-performance, data encryption, and policy based security</a> across each of the data access driver formats.</p>
SPARQL based RDF Store Benchmarks via DBpedia
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-01-17#1298
2008-01-18T01:10:00Z
2008-05-05T08:06:45-04:00
<p> <a href="http://christianhbecker.com/contact/" id="link-id1436ad98">Christian Becker</a> has delivered the final cut of an initial iteration of his <a href="http://dbpedia.org" id="link-id143223c8">DBpedia</a> based <a href="http://www4.wiwiss.fu-berlin.de/benchmarks-200801/" id="link-id1729ebc8">RDF Data Stores benchmark</a>. This particular exercise brought some very interesting things to our attention re. <a href="http://dbpedia.org/resource/Virtuoso_Universal_Server" id="link-id17178108">Virtuoso</a>'s default mode of operation:</p> <ol> <li> <a href="http://virtuoso.openlinksw.com" id="link-id0x1c519718">Virtuoso</a> is a Quad Store in a Triple Store world -- it supports <a href="http://dbpedia.org/resource/Resource_Description_Framework" id="link-id0x1cce9730">RDF</a> <a href="http://dbpedia.org/resource/Data" id="link-id0x1934f0b8">data</a> set storage partitioning via <a href="http://www.w3.org/TR/rdf-sparql-query/#namedGraphs" id="link-id13f6c948">Named Graphs</a> and it requires the use of the <a href="http://dbpedia.org/resource/SPARQL" id="link-id0x1eeb1b28">SPARQL</a> FROM clause to scope query patterns to appropriate <a href="http://dbpedia.org/resource/Data">data</a> sets. Otherwise, it looks across all hosted data sets for matching patterns</li> <li>We should be able to use our server side configuration settings to make the Quad Store behave like a Triple Store (meaning we set the list of applicable named graphs as part of the session configuration)</li> <li>Provide hints to users about missing POGS, PSOG, and SOPG bitmap indexes when <a href="http://dbpedia.org/resource/SPARQL">SPARQL</a> query patterns received by the server are deemed suboptimal (we do know the execution costs of each query)</li> </ol> <p>How Do I create the missing Bitmap Indexes?</p> <p>Go to the <a href="http://dbpedia.org/resource/HTML" id="link-id1733e248">HTML</a> based Virtuoso Conductor, iSQL command line interface, or an <a href="http://dbpedia.org/resource/ODBC" id="link-id1427f338">ODBC</a> / <a href="http://dbpedia.org/resource/JDBC" id="link-id16edfa08">JDBC</a> / <a href="http://dbpedia.org/resource/ADO.NET" id="link-id1716af90">ADO.NET</a> / <a href="http://dbpedia.org/resource/OLE_DB" id="link-id1725e5e0">OLE DB</a> client and execute:</p> <b><pre>CREATE BITMAP index <a href="http://dbpedia.org/resource/Resource_Description_Framework">RDF</a>_QUAD_POGS on DB.DBA.RDF_QUAD (P,O,G,S); <br />CREATE BITMAP index RDF_QUAD_PSOG on DB.DBA.RDF_QUAD (P,S,O,G); <br />CREATE BITMAP index RDF_QUAD_SOPG on DB.DBA.RDF_QUAD (S,O,P,G); </pre></b> <h3>Related</h3> <ul> <a href="http://esw.w3.org/topic/RdfStoreBenchmarking" id="link-id14de2630">RDF Store Benchamrking Wiki</a> </ul>
Semantic Data Web Epiphanies: One Node at a Time
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-01-17#1300
2008-01-17T22:59:00Z
2008-01-18T02:27:27.000004-05:00
<p>In 2006, I stumbled across <a href="http://www.jasonkolb.com" id="link-id17165b98">Jason Kolb</a> (online) via a 4-part series of posts titled: <a href="http://www.jasonkolb.com/weblog/2006/08/reinventing_the_1.html" id="link-id14204cf8">Reinventing the Internet</a>. At the time, I realized that Jason was postulating about what is popularly known today as "<a href="http://en.wikipedia.org/wiki/Data_portability" id="link-id1412b280">Data Portability</a>", so I made contact with him (blogosphere style) via a post of my own titled: <a href="http://www.openlinksw.com/dataspace/kidehen@openlinksw.com/weblog/kidehen@openlinksw.com%27s%20BLOG%20%5B127%5D/1033" id="link-id13b1cb20">Data Spaces, Internet Reinvention, and the Semantic Web</a>. Naturally, I tried to unveil to Jason the connection between his vision and the essence of the <a href="http://dbpedia.org/resource/Semantic_Web" id="link-id143117f0">Semantic Web</a>. Of course, he was skeptical :-)</p> <p>Jason recently moved to <a href="http://dbpedia.org/resource/Massachusetts" id="link-id13c4a470">Massachusetts</a> which lead to me pinging him about our earlier blogosphere encounter and the emergence of a <a href="http://dataportability.org/" id="link-id17395c60">Data Portability Community</a>. I also informed him about the fact that <a href="http://dbpedia.org/resource/Tim_Berners-Lee" id="link-id105507f0">TimBL</a>, myself, and a number of other Semantic Web technology enthusiasts, frequently meet on the 2nd Tuesday of each month at the <a href="http://dbpedia.org/resource/Massachusetts_Institute_of_Technology" id="link-id1719f798">MIT</a> hosted <a href="http://esw.w3.org/topic/CambridgeSemanticWebGatherings" id="link-id1734d460">Cambridge Semantic Web Gatherings</a>, to discuss, demonstrate, debate all aspects of the Semantic Web. Luckily (for both of us), Jason attended the last event, and we got to meet each other in person.</p> <p>Following our face to face meeting in Cambridge, a number of follow-on conversations ensued covering, Linked Data and practical applications of the Semantic Web vision. Jason writes about our exchanges a recent post titled: <a href="http://www.jasonkolb.com/weblog/2008/01/the-semantic-we.html" id="link-id13be6280">The Semantic Web</a>. His passion for Data Portability enabled me to use <a href="http://esw.w3.org/topic/FoafOpenid" id="link-id141516a8">OpenID and FOAF integration</a> to connect the Semantic Web and Data Portability via the Linked Data concept.</p> <p>During our conversations, Jason also eluded to the fact that he had already encountered <a href="http://en.wikipedia.org/wiki/OpenLink_Software" id="link-id17038218">OpenLink Software</a> while working with our <a href="http://data.openlinksw.com/oplweb/product_category/odbc#this" id="link-id14325f08">ODBC Drivers</a> (part of or <a href="http://data.openlinksw.com/oplweb/product_family/uda#this" id="link-id11ab1008">UDA product family</a>) for <a href="http://dbpedia.org/resource/Informix" id="link-id125858d0">IBM Informix</a> (<a href="http://data.openlinksw.com/oplweb/product/odbc-informix-st#this" id="link-id13b85e30">Single-Tier</a> or <a href="http://data.openlinksw.com/oplweb/product/odbc-informix-mt#this" id="link-id13edceb0">Multi-Tier</a> Editions) a few years ago (interesting random connection).</p> <p>As I've stated in the past, I've always felt that the Semantic Web vision will materialize by way of a global epiphany. The count down to this inevitable event started at the birth of the blogosphere, ironically. And accelerated more recently, through the emergence of <a href="http://dbpedia.org/resource/Web_2.0" id="link-id171d4ec8">Web 2.0</a> and <a href="http://dbpedia.org/page/Social_network" id="link-id140da830">Social Networking</a>, even more ironically :-)</p> <p>The blogosphere started the process of Data Space coalescence via RSS/Atom based semi-strucutured data enclaves, Web 2.0 RDFpropagated Web Service usage en route to creating service provider controlled, data and information silosRDF, Social NetworkingRDF brought attention to the fact that User Generated Data wasn't actually owned or controlled by the Data Creators etc.</p> <p>The emergence of "Data Portability" has created a palatable moniker for a clearly defined, and slightly easier to understand, problem: the meshing of Data and Identity in cyberspace i.e. individual points of presence in cyberspace, in the form of "Personal Data Spaces in the Clouds" (think: doing really powerful stuff with .name domains). In a sense, this is the critical inflection point between the document centric "Web of Linked Documents" and the data centric "Web or Linked Data". There is absolutely no other way solve this problem in a manner that alleviates the imminent challenges presented by information overload -- resulting from the exponential growth of user generated data across the Internet and enterprise Intranets.</p>
OpenOffice.org, SPARQL, and the Linked Data Web
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2008-01-04#1288
2008-01-05T02:50:00Z
2008-02-04T20:42:50.000004-05:00
<p>Question posed by Dan Brickley via a blog post: SQL, OpenOffice: <a href="http://danbri.org/words/2008/01/04/245" id="link-id1689abd8">would a JDBC driver for SPARQL protocol make sense?</a> </p> <p>Writing a <a href="http://dbpedia.org/resource/JDBC_driver" id="link-id16a96580">JDBC Driver</a> for <a href="http://dbpedia.org/resource/SPARQL" id="link-id1a908a70">SPARQL</a> is a little overkill. <a href="http://dbpedia.org/resource/OpenOffice.org" id="link-id16ae69a8">OpenOffice.org</a> simply needs to make <a href="http://dbpedia.org/resource/XML" id="link-id168d3880">XML</a> or Web Data (<a href="http://dbpedia.org/resource/HTML" id="link-id1a7f1f50">HTML</a>, <a href="http://dbpedia.org/resource/XHTML" id="link-id16c1ae60">XHTML</a>, and XML) bonafide data sources within its "<a href="http://dbpedia.org/resource/Pivot_table" id="link-id16665398">Pivot Table</a>" functionality realm. Then all that would then be required is a <a href="http://www.w3.org/TR/rdf-sparql-query/#select" id="link-id168bcbe8">SPARQL SELECT Query</a> transported via the <a href="http://www.w3.org/TR/rdf-sparql-protocol/" id="link-id16c1bbc0">SPARQL Protocol</a> with results sent back using the <a href="http://www.w3.org/TR/rdf-sparql-XMLres/" id="link-id1aa61118">SPARQL XML results serialization</a> format (all part of a single SPARQL Protocol URL).</p> <p>Excel successfully consumes the following information resource URI: http://tinyurl.com/yvoccj (a tiny url for a SPARQL SELECT against my<a href="http://myopenlink.net/dataspace/person/kidehen" id="link-id16702ba8"> FOAF file</a>).</p> <p>Alternatively, and currently achievable, you could simply use <a href="http://esw.w3.org/topic/SPASQL" id="link-id1a1b6b78">SPASQL</a> (SPARQL within SQL) using a <a href="http://dbpedia.org/resource/DBMS" id="link-id1661f240">DBMS</a> engine that supports SQL, SPARQL, and SPARQL e.g. <a href="http://dbpedia.org/resource/Virtuoso_Universal_Server" id="link-id168bba60">Virtuoso</a>. </p> <p> <a href="http://docs.openlinksw.com/virtuoso/rdfapiandsql.html" id="link-id167d9508">Virtuoso SPASQL support</a> is exposed via it's <a href="http://dbpedia.org/resource/Open_Database_Connectivity" id="link-id16c62160">ODBC</a> and/or JDBC Drivers. Thus you can do things such as: </p> <ol> <li>Use a SPARQL Query in the FROM CLAUSE of a <a href="http://dbpedia.org/resource/SQL" id="link-id1657a3a8">SQL</a> statement</li> <li>Execute SPARQL via SQL processor by prepending SPARQL query text with the literals "sparql" </li> </ol> <p>BTW - My News Years Resolution: get my act together and shrink the ever increasing list of "simple & practical Virtuoso use case demos" on my todo which now spans all the way back to 2006 :-(</p>
Linked Data & The Web Information BUS
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-07-20#1231
2007-07-20T07:50:00Z
2007-08-08T18:26:55-04:00
<p> <a href="http://www.wiwiss.fu-berlin.de/suhl/ueber_uns/team/chris_bizer.htm">Chris Bizer</a>, <a href="http://richard.cyganiak.de/">Richard Cyganiak</a>, and <a href="http://kmi.open.ac.uk/people/tom/html">Tom Heath</a> have just published a <a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/pub/LinkedDataTutorial/">Linked Data Publishing Tutorial</a> that provides a guide to the mechanics of Linked Data injection into the Semantic Data Web.</p> <p> On different, but related, thread, <a href="http://www.mkbergman.com">Mike Bergman</a> recently penned a post titled: <a href="http://feeds.feedburner.com/~r/AI3_AdaptiveInformation/~3/134989485/">What is the Structured Web?</a>. Both of these public contributions shed light on the "Information BUS" essence of the World Wide Web by describing the evolving nature of the payload shuttled by the BUS. </p> <h3>What is an Information BUS? </h3> <p>Middleware infrastructure for shuttling "Information" between endpoints using a messaging protocol.</p> <p>The Web is the dominant Information BUS within the Network Computer we know as the "Internet". It uses HTTP to shuttle information payloads between "Data Sources" and "Information Consumers" - what happens when we interact with Web via User Agents / Clients (e.g Browsers). </p> <h3>What are Web Information Payloads?</h3> <p>HTTP transported streams of contextualized data. Hence the terms: "Information Resource" and "Non Information" when reading material related to <a href="http://www.w3.org/2001/tag/doc/httpRange-14/2007-05-31/HttpRange-14#iddiv2104118728">http-range-14 and Web Architecture</a>. For example, an (X)HTML document is a specific data context (representation) that enables us to perceive, or comprehend, a data stream originating from a Web Server as a Web Page. On the other hand, if the payload lacks contextualized data, a fundamental Web requirement, then the resource is referred to as a "Non Information" resource. Of course, there is really no such thing as a "Non Information" resource, but with regards to Web Architecture, it's the short way of saying: "the Web Transmits Information only". That said, I prefer to refer to these "Non Information" resources as "Data Sources", are term well understood in the world of Data Access Middleware (ODBC, JDBC, OLEDB, ADO.NET etc.) and Database Management Systems (Relational, Objec-Relational, Object etc).</p> <p>Examples of Information Resource and Data Source URIs:</p> <ul> <a href="http://demo.openlinksw.com/Northwind/Customer/ALFKI">http://demo.openlinksw.com/Northwind/Customer/ALFKI</a> (Information Resource)</ul> <ul> <a href="http://demo.openlinksw.com/sparql?query=CONSTRUCT+{+%3Chttp%3A//demo.openlinksw.com/Northwind/Customer/ALFKI%23this%3E+%3Fp+%3Fo+}+FROM+%3Chttp%3A//demo.openlinksw.com/Northwind%3E+WHERE+{+%3Chttp%3A//demo.openlinksw.com/Northwind/Customer/ALFKI%23this%3E+%3Fp+%3Fo+}&format=application/rdf%2Bxml">http://demo.openlinksw.com/Northwind/Customer/ALFKI#this</a> (Data Source)</ul> <p>Explanation: The Information Resource is a conduit to the Entity identified by Data Source (an entity in my RDF Data Space that is the Subject or Object of one of more Triple based Statements. The triples in question can that can be represented as an RDF resource when transmitted over the Web via an Information Resource that takes the form of a SPARQL REST Service URL or a Physical RDF based Information Resource URL). </p> <h3>What about Structured Data?</h3> <p>Prior to the emergence of the Semantic Data Web, the payloads shuttled across the Web Information BUS comprised primarily of the following:</p> <ol> <li>HTML - Web Resource with presentation focused structure (Web 1.0 dominant payload form)</li> <li>XML - Web Resource with structure that separates presentation and data (Web 2.0's dominant payload form).</li> </ol> <p>The Semantic Data Web simply adds <a href="http://blogs.usnet.private:8893/Resource_Description_Framework">RDF</a> to the payload formats that shuttle the Web Information BUS. RDF addresses formal data structure which XML doesn't cover since it is semi-structured (distinct data entities aren't formally discernible). In a nutshell, an RDF payload is basically a conceptual model database packaged as an Information Resource. It's comprised of granular data items called "Entities", that expose fine grained properties values, individual and/or group characteristics (attributes), and relationships (associations) with other Entities.</p> <h3>Where is this all headed? </h3> <p>The Web is in the final stages of the 3rd phase of it's evolution. A phase characterized by the shuttling of structured data payloads (RDF) alongside less data oriented payloads (HTML, XHTML, XML etc.). As you can see, <a href="http://linkeddata.org">Linked Data</a> and Structured Data are both terms used to describe the addition of more data centric payloads to the Web. Thus, you could view the process of creating a Structured Web of Linked Data as follows:</p> <ol> <li>Identify or Create Structured Data Sources</li> <li>Name these Data Sources using Data Source URIs</li> <li>Expose Structured Data Sources to the Web as Linked Data using Information Resource (conduit) URIs</li> </ol> <h3>Conclusions</h3> <p>The Semantic Data Web is an evolution of the current Web (an Information Space) that adds structured data payloads (RDF) to current, less data oriented, structured payloads (HTML, XHTML, XML, and others).</p> <p>The Semantic Data Web is increasingly seen as an inevitability because it's rapidly reaching the point of critical mass (i.e. network effect kick-in). As a result, Data Web emphasis is moving away from: "What is the Semantic Data Web?" To: "How will Semantic Data Web make our globally interconnected village an even better place?", relative to the contributions accrued from the Web thus far. Remember, the initial "Document Web" (Web 1.0) bootstrapped because of the benefits it delivered to blurb-style content publishing (remember the term electronic brochure-ware?). Likewise, in the case of the "Services Web" (Web 2.0), the bootstrap occurred because it delivered platform independence to Web Application Developers - enabling them to expose application logic behind Web Services. It is my expectation that the Data Integration prowess of the Data Web will create a value exchange realm for data architects and other practitioners from the database and data access realms.</p> <h3>Related Items</h3> <ol> <li> <a href="http://www.mkbergman.com/?p=153">Mike Bergman's post about Semi-Structured Data</a> </li> <li> <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=structured%20data&type=text&output=html">My Posts covering Structured and Un-Structured Containers</a> </li> </ol>
Enterprise 0.0, Linked Data, and Semantic Data Web
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-06-14#1224
2007-06-14T15:28:26Z
2008-02-04T23:19:26.000001-05:00
<p>Last week we <a href="http://www.openlinksw.com/press/virt_501.htm">officially released Virtuoso 5.0.1</a> (in Commercial and Open Source Editions). The press release provided us with an official mechanism and timestamp for the current Virtuoso feature set.</p> <p>A vital component of the new Virtuoso release is the finalization of our SQL to RDF mapping functionality -- enabling the declarative mapping of SQL Data to RDF. Additional technical insight covering other new features (delivered and pending) is provided by <a href="http://www.openlinksw.com/weblogs/oerling/">Orri Erling</a>, as part of a series of post-Banff posts.</p> <h2>Why is SQL to RDF Mapping a Big Deal?</h2> <p>A majority of the world's data (especially in the enterprise realm) resides in SQL Databases. In addition, Open Access to the data residing in said databases remains the biggest challenge to enterprises for the following reasons:</p> <ol> <li> SQL Data Sources are inherently heterogeneous because they are acquired with business applications that are in many cases inextricably bound to a particular DBMS engine </li> <li> Data is predictably dirty </li> <li> DBMS vendors ultimately hold the data captive and have traditionally resisted data access standards such as ODBC (*trust me they have, just look at the unprecedented bad press associated with ODBC the only truly platform independent data access API. Then look at how this bad press arose..*) </li> </ol> <p> Enterprises have known from the beginning of modern corporate times that data access, discovery, and manipulation capabilities are inextricably linked to the "Real-time Enterprise" nirvana (hence my use of 0.0 before this becomes 3.0).</p> <p>In my experience, as someone whose operated in the data access and data integration realms since the late '80s, I've painfully observed enterprises pursue, but unsuccessfully attain, full control over enterprise data (the prized asset of any organization) such that data-, information-, knowledge-workers are just a click away from commencing coherent platform and database independent data drill-downs and/or discovery that transcend intranet, internet, and extranet boundaries -- serendipitous interaction with relevant data, without compromise!</p> <p>Okay, situation analysis done, we move on.. </p> <p>At our most recent (<a href="http://esw.w3.org/topic/CambridgeSemanticWebGatherings/Meeting/2007-06-12_Gathering">12th June</a>) monthly <a href="http://esw.w3.org/topic/CambridgeSemanticWebGatherings">Semantic Web Gathering</a>, I unveiled to <a href="http://www.w3.org/People/Berners-Lee/card#i">TimBL</a> and a host of other attendees a simple, but powerful, demonstration of how <a href="http://en.wikipedia.org/wiki/Linked_Data">Linked Data</a>, as an aspect of the <a href="http://www.businessweek.com/technology/content/apr2007/tc20070409_961951.htm">Semantic Data Web</a>, can be applied to enterprise data integration challenges.</p> <h2>Actual SQL to RDF Mapping Demo / Experiment</h2> <h4>Hypothesis</h4> A SQL Schema can be effectively mapped declaratively to RDF such that SQL Rows morph into RDF Instance Data (Entity Sets) based on the Concepts & Properties defined in a Concrete Conceptual Data Model oriented Data Dictionary (<a href="http://www.w3schools.com/rdf/rdf_schema.asp">RDF Schema</a> and/or <a href="http://www.w3schools.com/rdf/rdf_owl.asp">OWL Ontology</a>). In addition, the solution must demonstrate how "Linked Data in the Web" is completely different from "Data on the Web" or "Linked Data on the Web" (btw - <a href="http://kasei.us/people/Tom_Heath/">Tom Heath</a> eloquently unleashed this point in his recent <a href="http://blogs.talis.com/nodalities/2007/06/tom_heath_talks_with_talis_abo.php">podcast interview with Talis</a>). <h4>Apparatus</h4> An Ontology - in this case we simply derived the <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/SQLRDFIntegraton/Explore_Northwind_Ontology.isparql">Northwind Ontology</a> from the XML Schema based CSDL (<a href="http://blogs.msdn.com/adonet/archive/2007/01/30/entity-data-model-part-1.aspx">Conceptual Schema Definition Language</a>) used by Microsoft's public <a href="http://astoria.mslivelabs.com/Default.aspx">Astoria demo</a> (specifically the <a href="http://astoria.mslivelabs.com/termsOfUseNorthwind.aspx?returnURL=Northwind">Northwind Data Services demo</a>). SQL Database Schema - <a href="http://www.microsoft.com/library/media/1033/technet/images/prodtechnol/sql/2000/maintain/sscpop07_big.gif">Northwind</a> (comes bundled with ACCESS, SQL Server, and Virtuoso) comprised of tables such as: <a href="http://www.openlinksw.com/schemas/northwind#Customer">Customer</a>, <a href="http://www.openlinksw.com/schemas/northwind#Employee">Employee</a>, <a href="http://www.openlinksw.com/schemas/northwind#Product">Product</a>, <a href="http://www.openlinksw.com/schemas/northwind#Category">Category</a>, <a href="http://www.openlinksw.com/schemas/northwind#Supplier">Supplier</a>, <a href="http://www.openlinksw.com/schemas/northwind#Shipper">Shipper</a> etc. <a href="http://www.openlinksw.com/virtuoso/">OpenLink Virtuoso</a> - SQL DBMS Engine (although this could have been any <a href="http://en.wikipedia.org/wiki/Open_Database_Connectivity">ODBC</a> or <a href="http://en.wikipedia.org/wiki/Java_Database_Connectivity">JDBC</a> accessible Database), <a href="http://www.openlinksw.com/virtuoso/Whitepapers/pdf/Virtuoso_SQL_to_RDF_Mapping.pdf">SQL-RDF Metaschema Language</a>, HTTP URL-rewriter, WebDAV Engine, and DBMS hosted XSLT processor Client Tools -<a href="http://demo.openlinksw.com/isparql/"> iSPARQL Query Builder</a>, <a href="http://demo.openlinksw.com/DAV/JS/rdfbrowser/index.html">RDF Browser</a> (which could also have been <a href="http://www.w3.org/2005/ajar/tab">Tabulator</a> or<a href="http://sites.wiwiss.fu-berlin.de/suhl/bizer/ng4j/disco/"> DISCO</a> or a standard Web Browser) <h4>Experiment / Demo</h4> <ol> <li> Declaratively map the Northwind SQL Schema to RDF using the Virtuoso Meta Schema Language (see: <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/SQLRDFIntegraton/northwind_sql_rdf.sql">Virtuoso PL based Northwind_SQL_RDF script</a>) </li> <li> Start browsing the data by clicking on the URIs that represent the RDF Data Model Entities resulting from the SQL to RDF Mapping </li> </ol> <h4>Observations</h4> <ol> <li> Via a single Data Link click I was able to obtain specific information about the Customer represented by the URI <a href="http://demo.openlinksw.com/Northwind/Customer/ALFKI">"ALFKI"</a> (act of URI Dereferencing as you would an Object ID in an Object or Object-Relational Database) </li> <li> Via a <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/SQLRDFIntegraton/Explore_Northwind.isparql">Dynamic Data Page </a> I was able to explore all the entity relationships or specific entity data (i.e Exploratory or Entity specific dereferencing) in the Northwind Data Space </li> <li> I was able to perform similar exploration (as per item 2) using our <a href="http://demo.openlinksw.com/DAV/home/demo/Public/Queries/SQLRDFIntegraton/Explore_Northwind_Customer_ALFKI.wqx">OpenLink Browser. </a> </li> </ol> <h4>Conclusions</h4> <p>The vision of data, information, or knowledge at your fingertips is nigh! Thanks to the infrastructure provided by the Semantic Data Web (URIs, <a href="http://en.wikipedia.org/wiki/Resource_Description_Framework">RDF Data Model</a>, variety of RDF Serialization Formats[<a href="http://www.dajobe.org/2004/01/turtle/">1</a>][<a href="http://www.w3.org/DesignIssues/Notation3">2</a>][<a href="http://www.w3.org/TR/2002/WD-rdf-syntax-grammar-20020325/">3</a>], and Shared Data Dictionaries / Schemas / Ontologies [<a href="http://xmlns.com/foaf/spec/">1</a>][<a href="http://rdfs.org/sioc/spec/">2</a>][<a href="http://www.w3.org/TR/swbp-skos-core-guide/">3</a>][<a href="http://musicontology.com/">4</a>][<a href="http://bblfish.net/work/atom-owl/2006-06-06/AtomOwl.html">5</a>]) it's now possible to Virtualize enterprise data from the Physical Storage Level, through the Logical Data Management Levels (Relational), up to a Concrete Conceptual Model (Graph) without operating system, development environment or framework, or database engine lock-in.</p> <h2>Next Steps</h2> <p>We produce a shared ontology for the CRM and Business Reporting Domains. I hope this experiment clarifies how this is quite achievable by converting XML Schemas to RDF Data Dictionaries (RDF Schemas or Ontologies). Stay tuned :-) </p> <p>Also watch <a href="http://news.com.com/1606-2-6189377.html">TimBL amplify and articulate Linked Data value</a> in a recent interview.</p> <h2>Other Related Matters</h2> <p>To deliver a mechanism that facilitates the crystallization of this reality is a contribution of boundless magnitude (as we shall all see in due course). Thus, it is easy to understand why even "her majesty", the queen of England, simply had to get in on the act and <a href="http://www.royal.gov.uk/output/Page1880.asp">appoint TimBL to the "British Order of Merit</a>" :-)</p> <p>Note: All of the demos above now work with IE & Safari (a "remember what Virtuoso is epiphany") by simply putting Virtuoso's DBMS hosted XSLT engine to use :-) This also applies to my earlier collection of demos from the <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=hello%20data%20web&type=text&output=html">Hello Data Web</a> and other <a href="http://www.openlinksw.com/weblog/public/search.vspx?blogid=127&q=.isparql&type=text&output=html">Data Web & Linked Data related demo style posts</a>.</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>
Microsoft Data Access API Backgrounder: ODBC
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2007-01-03#1106
2007-01-03T18:20:45Z
2007-01-03T13:35:51.000001-05:00
<p>Mike Pizzo has commenced a much needed<a href="http://blogs.msdn.com/data/archive/2006/12/05/data-access-api-of-the-day-part-i.aspx"> 4-part article series covering the history of Microsoft's various Data Access</a> related APIs. Naturally, Part 1 covers: <a href="http://en.wikipedia.org/wiki/Open_Database_Connectivity">Open Database Connectivity</a> (ODBC) which is the first of a series of purpose specific Data Access APIs.</p> <p>Here is a very important excerpt:</p> <blockquote> <cite> ... <p>And then something happened. Visual Basic became popular as a scriptable "automation language". ODBC, being a C-style interface, was not directly consumable from VB. However, some of you clever folks figured out that Microsoft Access supported executing queries against ODBC Datasources, and that Access did support scriptable automation through its Data Access Object (DAO) API. Voila! Now you could write applications against ODBC sources using VB.</p> <p>However, DAO went through <b>Access's internal "Jet" (Joint Engine Technology)</b> database engine, which defaulted to building local keysets for each result in order to do advanced query processing and cursoring against the remote data. This was fine if you needed that functionality, but significant performance overhead and additional round trips when you didn't. </p> <p>Enter the Visual Basic team who, responding to customer demand for better performance against ODBC sources, came up with something called Remote Data Objects (RDO). RDO implemented the same DAO programming patterns directly against ODBC, rather than going through Jet. RDO was extremely popular among VB developers, but the fact that we had two different sets of automation objects for accessing ODBC sources caused confusion.</p> <p> But apparently not enough confusion, because our solution was to introduce "ODBCDirect". Despite its name, ODBCDirect was not a new API; it was just a mode we added to DAO that set defaults in such a way as to avoid the overhead of building keysets and such</p> ... </cite> </blockquote> <p>To this very day (unfortunately!) ODBC has been maligned by the perpetuated misunderstanding of JET's DAO layer that sits atop ODBC providing advanced query processing (i.e. Virtual DBMS functionality) alongside a client-side keyset cursor model implementation.</p>
Birds of a Feather Flock Together - Mac OS X & Rails
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-10-20#1065
2006-10-20T23:55:40Z
2006-10-22T19:21:17.000001-04:00
<p>A very cool v<a href="http://www.apple.com/education/whymac/compsci/video.html">ideo promo for Ruby on Rails and Mac OS X</a>, or should I say: 37 Signals & Apple :-) Either way, very cool!</p> <p>BTW - We have just released a collection of <a href="http://rubyforge.org/projects/odbc-rails/">High-Performance Data Providers for ActiveRecord</a>. Our providers deliver </p> <blockquote>Consistent Functionality</blockquote> to RoR developers across <a href="http://virtuoso.openlinksw.com/wiki/main/">Virtuoso</a>, Oracle, SQL Server, Sybase, DB2, Ingres, Informix, and others without compromising performance or cross platform portability.
Virtuoso's SQL Schema to RDF Ontology Mapping Language (1.0)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-10-18#1064
2006-10-18T22:18:00Z
2006-11-17T18:24:25-05:00
<p>A new technical white paper about our declarative language for SQL Schema to RDF Ontology Mapping has just been published.</p> <h2>What is this?</h2> <p>A declarative language adapted from SPARQL's graph pattern language (N3/Turtle) for mapping SQL Data to RDF Ontologies. We currently refer to this as a Graph Pattern based RDF VIEW Definition Language.</p> <h2>Why is it important?</h2> <p>It provides an effective mechanism for exposing existing SQL Data as virtual RDF Data Sets (Graphs) negating the data duplication associated with generating physical RDF Graphs from SQL Data en route to persistence in a dedicated Triple Store. </p> <p>Enterprise applications (traditional and web based) and most Web Applications (Web 1.0 and Web 2.0) sit atop relational databases, implying that SQL/RDF model and data integration is an essential element of the burgeoning "Data Web" (Semantic Web - Layer 1) comprehension and adoption process.</p> <p>In a nutshell, this is a quick route for non disruptive exposure of existing SQL Data to SPARQL supporting RDF Tools and Development Environments.</p> <h2>How does it work?</h2> <h3>RDF Side</h3> <ol> <li>locate one or more Ontologies (e.g FOAF, SIOC, AtomOWL, SKOS etc.) that effectively defines the Concepts (Classes) and Terms (Predicates) to be exposed via your RDF Graph</li> <li>Using the Virtuoso's RDF View Definition Language declare a International Resource Identifier (or URI) for your Graph. Example:<pre>CREATE GRAPH IRI("http://myopenlink.net/dataspace")</pre> </li> <li>Then create Classes (Concepts), Class Properties/Predicates (Memb), and Class Instances (Inst) for the new Graph. Example: <pre>CREATE IRI CLASS odsWeblog:feed_iri "http://myopenlink.net/dataspace/kidehen/weblog/MyFeeds" ( in memb varchar not null, in inst varchar not null)</pre> </li> </ol> <h3>SQL Side</h3> <ol> <li>If Virtuoso isn't your SQL Data Store, Identify the ODBC or JDBC SQL data source(s) containing the SQL data to be mapped to RDF and then link the relevant tables into Virtuoso's Virtual DBMS Layer</li> <li>Then use the RDF View Definition Language's graph pattern feature to generate SQL to RDF Mapping Template for your Graph. As shown in this <a href="http://www.usnet.private:8889/wiki/main/Main/VOSSQLRDF#MappingOdsBlogToAtomOwlExample">ODS Weblog -> AtomOWL Mapping example</a>.</li> </ol>
Object Relational Rediscovered?
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-07-13#1005
2006-07-14T01:59:15Z
2006-07-13T21:59:16.000002-04:00
<p>Microsoft's recent unveiling of the next <a href="http://msdn.microsoft.com/data/default.aspx?pull=/library/en-us/dnvs05/html/ADONETEnFrmOvw.asp">generation of ADO.NET</a> has pretty much crystalized a long running hunch that the era of standardized client/user level interfaces for "Object-Relational" technology is neigh. Finally, this application / problem domain is attracting the attention of industry behemoths such as Microsoft.</p> <p> </p> <p>In an initial response to these developments<a href="http://www.openlinksw.com/weblog/oerling/">Orri Erling</a>, Virtuoso's Program Manager, shares <a href="http://www.openlinksw.com/weblog/oerling/?id=1002">valuable insights from past re. Object-Relational technology developments and deliverables challenges</a>. As Orri notes, the Virtuoso team suspended ORM and ORDBMS work at the onset of the <a href="http://virtuoso.openlinksw.com/wiki/main/Main/VOSHistory">Kubl-Virtuoso transition</a> due to the lack of standardized client-side functionality exposure points.</p> <p>My hope is that Microsoft's efforts trigger community wide activity that result in a collection of interfaces that make scenarios such as generating .NET based Semantic Web Objects (where the S in an S-P->O RDF-Triple becomes a bona fide .NET class instance generated from OWL).</p> <p>To be continued since the interface specifics re. ADO.NET 3.0 remain in flux...</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 />
SPARQL Parameterized Queries (Virtuoso using SPARQL in SQL)
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-11#973
2006-05-11T18:54:47Z
2006-06-22T08:56:58-04:00
<h2>SPARQL with SQL (Inline) </h2> <p>Virtuoso extends its SQL3 implementation with syntax for integrating SPARQL into queries and subqueries.Thus, as part of a SQL SELECT query or subquery, one can write the SPARQL keyword and a SPARQL query as part of query text processed by Virtuoso's SQL Query Processor.</p> <h4>Example 1 (basic) : </h4> <p>Using Virtuoso's Command line or the Web Based ISQL utility type in the following (note: "SQL>" is the command line prompt for the native ISQL utility): </p> <pre>SQL> sparql select distinct ?p where { graph ?g { ?s ?p ?o } };</pre> <p>Which will return the following: </p> <blockquote> <pre> p varchar ---------- http://example.org/ns#b http://example.org/ns#d http://xmlns.com/foaf/0.1/name http://xmlns.com/foaf/0.1/mbox ... </pre> </blockquote> <h4>Example 2 (a subquery variation):</h4> <pre>SQL> select distinct subseq (p, strchr (p, '#')) as fragment from (sparql select distinct ?p where { graph ?g { ?s ?p ?o } } ) as all_predicates where p like '%#%' ;</pre> <blockquote> <pre> fragment varchar ---------- #query #data #name #comment ...</pre> </blockquote> <h3>Parameterized Queries:</h3> <p>You can pass parameters to a SPARQL query using a Virtuoso-specific syntax extension. '??' or '$?' indicates a positional parameter similar to '?' in standard SQL. '??' can be used in graph patterns or anywhere else where a SPARQL variable is accepted. The value of a parameter should be passed in SQL form, i.e. this should be a number or an untyped string. An IRI ID can not be passed, but an absolute IRI can. Using this notation, a dynamic SQL capable client (ODBC, JDBC, ADO.NET, OLEDB, XMLA, or others) can execute parametrized SPARQL queries using parameter binding concepts that are common place in dynamic SQL. Which implies that existing SQL applications and development environments (PHP, Ruby, Python, Perl, VB, C#, Java, etc.) are capable of issuing SPARQL queries via their existing SQL bound data access channels against RDF Data stored in Virtuoso. </p> <p>Note: This is the Virtuoso equivalent of a <a href="http://seaborne.blogspot.com/2006/05/parameterized-queries_07.html">recently published example using Jena </a>(a Java based RDF Triple Store).</p> <h3>Example:</h3> <p>Create a Virtuoso Function by execting the following: </p> <pre>SQL> create function param_passing_demo (); { declare stat, msg varchar; declare mdata, rset any; exec ('sparql select ?s where { graph ?g { ?s ?? ?? }}', stat, msg, vector ('http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#int1', 4 ), -- Vector of two parameters 10, -- Max. result-set rows mdata, -- Variable for handling result-set metadata rset -- Variable for handling query result-set ); return rset[0][0]; } </pre> Test new "param_passing_demo" function by executing the following: <br /> <pre>SQL> select param_passing_demo (); </pre> <p>Which returns: </p> <blockquote> <pre> callret VARCHAR _______________________________________________________________________________</pre> <pre>http://www.w3.org/2001/sw/DataAccess/tests/data/Sorting/sort-0#four</pre> <pre>1 Rows. -- 00000 msec.</pre> </blockquote> <h3>Â </h3> <h3>Using SPARQL in SQL Predicates:</h3> <p>A SPARQL ASK query can be used as an argument of the SQL EXISTS predicate.</p> <pre>create function sparql_ask_demo () returns varchar { if (exists (sparql ask where { graph ?g { ?s ?p 4}})) return 'YES'; else return 'NO'; }; </pre> <p> <br /> Test by executing: </p> <pre>SQL> select sparql_ask_demo (); </pre> <p>Which returns:</p> <pre>_________________________ YES</pre>
"Free" Databases: Express vs. Open-Source RDBMSs
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-05#968
2006-05-05T16:02:17Z
2006-07-21T07:21:57.000006-04:00
<p>Very detailed and insightful peek into the state of affairs re. database engines (Open & Closed Source).</p> <p>I added the missing piece regarding the "Virtuoso Conductor" (the Web based Admin UI for Virtuoso) to the original post below. I also added a link to our live SPARQL Demo so that anyone interested can start playing around with SPARQL and SPARQL integrated into SQL right away.</p> <p>Another good thing about this post is the vast amount of valuable links that it contains. To really appreciate this point simply visit my Linkblog (excuse the current layout :-) - a Tab if you come in via the front door of this <a href="http://www.infoworld.com/opinions/index.html">Data Space</a> (what I used to call <a href="http://www.openlinksw.com/blog/%7Ekidehen/">My Weblog Home Page</a>).</p> <blockquote> <p> <a href="http://oakleafblog.blogspot.com/2006/05/free-databases-express-vs-open-source.html">"Free" Databases: Express vs. Open-Source RDBMSs</a>: "<span style="font-family: verdana;">Open-source relational database management systems (RDBMSs) are gaining IT mindshare at a rapid pace. As an example, <em>BusinessWeek</em>'s February 6, 2006 '</span> <a href="http://www.businessweek.com/technology/content/feb2006/tc20060206_918648.htm"><span style="font-family: verdana;">Taking On the Database Giants</span> </a><span style="font-family: verdana;">' article asks 'Can open-source upstarts compete with Oracle, IBM, and Microsoft?' and then provides the answer: 'It's an uphill battle, but customers are starting to look at the alternatives.'</span> <br /> <span style="font-family: Verdana;"></span> <br /> <span style="font-family: Verdana;">There's no shortage of open-source alternatives to look at. The <em>BusinessWeek</em> article concentrates on <a href="http://www.mysql.com/">MySQL</a>, which <em>BW</em> says 'is trying to be the Ikea of the database world: cheap, needs some assembly, but has a sleek, modern design and does the job.' The article also discusses <a href="http://www.postgresql.org/">Postgre[SQL]</a> and <a href="http://www.ingres.com/products/Prod_Ingres_2006.html">Ingres</a>, as well as <a href="http://www.enterprisedb.com/">EnterpriseDB</a>, an Oracle clone created from PostgreSQL code*. Sun includes <a href="http://www.sun.com/software/solaris/postgres.jsp">PostgreSQL with Solaris 10</a> and, as of April 6, 2006, with <a href="http://docs.sun.com/app/docs/doc/819-2183/6n4g726uc?a=view">Solaris Express</a>.**</span> <br /> <span style="font-family: Verdana;"></span> <br /> <span style="font-family: Verdana;"><span style="font-size: 85%;">*Frank Batten, Jr., the investor who originally funded Red Hat, invested a reported </span> <a href="http://www.theinquirer.net/?article=28201"><span style="font-size: 85%;">$16 million into Great Bridge</span> </a><span style="font-size: 85%;"> with the hope of making a business out of providing paid support to PostgreSQL users. </span> <a href="http://news.com.com/2100-1001-272715.html"><span style="font-size: 85%;">Great Bridge stayed in business only 18 months</span> </a><span style="font-size: 85%;">, having </span> <a href="http://news.com.com/2100-1001-268915.html"><span style="font-size: 85%;">missed an opportunity to sell the business to Red Hat</span> </a><span style="font-size: 85%;"> and finding that selling </span> <a href="http://news.com.com/2100-1001-269729.html"><span style="font-size: 85%;">$50,000-per-year support packages</span> </a><span style="font-size: 85%;"> for an open-source database wasn't easy. As Batten concluded, 'We could not get customers to pay us big dollars for support contracts.' Perhaps EnterpriseDB will be more successful with a choice of </span> <a href="http://www.enterprisedb.com/shop.do?cID=10000&pID=10001"><span style="font-size: 85%;">$5,000, $3,000, or $1,000 annual support subscriptions</span> </a><span style="font-size: 85%;">.</span> </span> <br /> <span style="font-family: Verdana;"></span><span style="font-family: Verdana;"></span><span style="font-family: Verdana;"></span> <br /> <span style="font-family: Verdana; font-size: 85%;">**Interestingly, <a href="http://www.sun.com/smi/Press/sunflash/2005-11/sunflash.20051115.4.xml">Oracle announced in November 2005</a> that Solaris 10 is 'its preferred development and deployment platform for most x64 architectures, including x64 (x86, 64-bit) AMD Opteron and Intel Xeon processor-based systems and Sun's UltraSPARC(R)-based systems.'</span> <br /> <br /> <span style="font-family: Verdana;">There is a surfeit of reviews of current MySQL, PostgreSQL andâto a lesser extentâIngres implementations. These three open-source RDBMSs come with their own or third-party management tools. These systems compete against free versions of commercial (proprietary) databases: <a href="http://msdn.microsoft.com/vstudio/express/sql/">SQL Server 2005 Express Edition</a> (and its MSDE 2000 and 1.0 predecessors), <a href="http://www.oracle.com/technology/products/database/xe/index.html" target="_blank">Oracle Database 10g Express Edition</a>, <a href="http://www-306.ibm.com/software/data/db2/udb/db2express/download.html" target="_blank">IBM DB2 Express-C</a>, and <a href="http://www.sybase.com/linux_promo" target="_blank">Sybase ASE Express Edition for Linux</a> where database size and processor count limitations aren't important. Click <a href="http://www.ftponline.com/special/sqlserver/rjennings-overview/table4.aspx">here</a> for a summary of recent <em>InfoWorld</em> reviews of the full versions of these four databases plus MySQL, which should be valid for Express editions also. The <a href="http://www.ftponline.com/special/sqlserver/">FTPOnline Special Report</a> article, 'Microsoft SQL Server Turns 17,' that contains the preceding table is <a href="http://www.ftponline.com/special/sqlserver/rjennings-overview/">here</a> (requires registration.)</span> <br /> <br /> </p> <p> <strong><span style="font-family: verdana;">SQL Server 2005 Express Edition SP-1 Advanced Features</span> </strong> </p> <p> <span style="font-family: Verdana;"><a href="http://www.microsoft.com/downloads/details.aspx?familyid=4C6BA9FD-319A-4887-BC75-3B02B5E48A40&displaylang=en">SQL Server 2005 Express Edition with Advanced Features</a> enhances SQL Server 2005 Express Edition (SQL Express or SSX) dramatically, so it deserves special treatment here. SQL Express gains full text indexing and now supports SQL Server Reporting Services (SSRS) on the local SSX instance. The SP-1 with Advanced Features setup package, which Microsoft released on April 18, 2006, installs the release version of SQL Server Management Studio Express (SSMSE) and the full version of Business Intelligence Development Studio (BIDS) for designing and editing SSRS reports. My '<a href="http://www.ftponline.com/special/sqlserver/rjennings-sp1/">Install SP-1 for SQL Server 2005 and Express</a>' article for FTPOnline's <a href="http://www.ftponline.com/special/sqlserver/">SQL Server Special Report</a> provides detailed, illustrated installation instructions for and related information about the release version of SP-1. SP-1 makes SSX the most capable of all currently available Express editions of commercial RDBMSs for Windows.</span> </p> <p> <strong><span style="font-family: verdana;">OpenLink Software's Virtuoso Open-Source Edition</span> </strong> <br /> <span style="font-family: verdana;"></span> <br /> <span style="font-family: verdana;"><a href="http://openlinksw.com/">OpenLink Software</a> announced an <a href="http://virtuoso.openlinksw.com/wiki/main/Main/">open-source version</a> of it's <a href="http://virtuoso.openlinksw.com/">Virtuoso Universal Server</a> commercial DBMS on April 11, 2006. On the initial date of this post, May 2, 2006, Virtuoso Open-Source Edition (VOS) was virtually under the radar as an open-source product. According to <a href="http://www.openlinksw.com/press/VOSPressRelease.htm">this press release</a>, the new edition includes:</span> <span style="font-family: Verdana;"></span> </p> <blockquote> <span style="font-family: Verdana;"></span> </blockquote> <blockquote></blockquote> <blockquote></blockquote> <ul> <li> <a href="http://demo.openlinksw.com/sparql_demo/">SPARQL compliant RDF Triple Store</a> </li> <li>SQL-200n Object-Relational Database Engine (SQL, XML, and Free Text) </li> <li>Integrated BPEL Server and Enterprise Service Bus</li> <li>WebDAV and Native File Server </li> <li>Web Application Server that supports PHP, Perl, Python, ASP.NET, JSP, etc. </li> <li>Runtime Hosting for Microsoft .NET, Mono, and Java </li> </ul>VOS only lacks the virtual server and replication features that are offered by the commercial edition. VOS includes a Web-based administration tool called the "Virtuoso Conductor" According to <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=951&sid=&realm=">Kingsley Idehen's Weblog</a>, 'The Virtuoso build scripts have been successfully tested on Mac OS X (Universal Binary Target), Linux, FreeBSD, and Solaris (AIX, HP-UX, and True64 UNIX will follow soon). A Windows Visual Studio project file is also in the works (ETA some time this week).'<br /> <br /> <em>InfoWorld</em>'s Jon Udell has tracked Virtuoso's progress since <a href="http://www.infoworld.com/article/02/04/12/020415plvirtuoso_1.html">2002</a>, with an <a href="http://www.infoworld.com/article/03/03/21/12virtuoso_1.html">additional article in 2003</a> and a <a href="http://weblog.infoworld.com/udell/2006/04/28.html#a1437">one-hour podcast with Kingsley Idehen</a> on April 26, 2006. A major talking point for Virtuoso is its support for Atom 0.3 syndication and publication, Atom 1.0 syndication and (forthcoming) publication, and future support for Google's <a href="http://code.google.com/apis/gdata/overview.html">GData protocol</a>, as mentioned in <a href="http://www.openlinksw.com/blog/%7Ekidehen/index.vspx?page=&id=965">this Idehen post</a>. Yahoo!'s <a href="http://jeremy.zawodny.com/blog/archives/006687.html">Jeremy Zawodny</a> points out that the 'fingerprints' of <a href="http://oakleafblog.blogspot.com/2005/11/adam-bosworth-learning-from-web-and.html">Adam Bosworth</a>, Google's VP of Engineering and the primary force behind the development of Microsoft Access, 'are all over GData.' Click <a href="http://search.blogger.com/?as_q=bosworth&ie=UTF-8&ui=blg&bl_url=oakleafblog.blogspot.com&x=50&y=10">here</a> to display a list of all OakLeaf posts that mention Adam Bosworth.<br /> <br />One application for the GData protocol is querying and updating the Google Base database independently of the Google Web client, as mentioned by Jeremy: 'It's not about building an easier onramp to Google Base. ... Well, it is. But, again, that's the small stuff.' Click <a href="http://search.blogger.com/?as_q=%22google+base%22&ie=UTF-8&x=50&y=9&q=%22google+base%22+blogurl:oakleafblog.blogspot.com&filter=0&ui=blg&sa=N&start=0">here</a> for a list of posts about my experiences with Google Base. Watch for a future OakLeaf post on the subject as the GData APIs gain ground.<br /> <span style="font-family: Verdana;"></span> <br /> <span style="font-family: Verdana;"><strong>Open-Source and Free Embedded Database Contenders</strong> </span> <br /> <span style="font-family: Verdana;"></span> <br /> <span style="font-family: Verdana;">Open-source and free embedded SQL databases are gaining importance as the number and types of mobile devices and OSs proliferate. Embedded databases usually consist of Java classes or Windows DLLs that are designed to minimize file size and memory consumption. Embedded databases avoid the installation hassles, heavy resource usage and maintenance cost associated with client/server RDBMSs that run as an operating system service.</span> <br /> <br /> <span style="font-family: Verdana;">Andrew Hudson's December 2005 '<a href="http://www.theinquirer.net/?article=28201">Open Source databases rounded up and rodeoed</a>' review for The Enquirer provides brief descriptions of one commercial and eight open source database purveyors/products: Sleepycat, MySQL, PostgreSQL, Ingres, InnoBase, Firebird, IBM Cloudscape (a.k.a, Derby), Genezzo, and Oracle. Oracle <a href="http://www.sleepycat.com/">Sleepycat</a>* isn't an SQL Database, Oracle <a href="http://www.innodb.com/index.php">InnoDB</a>* is an OEM database engine that's used by MySQL, and <a href="http://www.genezzo.com/">Genezzo</a> is a multi-user, multi-server distributed database engine written in Perl. These special-purpose databases are beyond the scope of this post.</span> <br /> <br /> <span style="font-family: Verdana;"><span style="font-size: 85%;">* Oracle <a href="http://www.oracle.com/sleepycat/index.html">purchased Sleepycat Software, Inc. in February 2006</a> and </span> <a href="http://www.oracle.com/innodb/index.html"><span style="font-size: 85%;">purchased Innobase OY in October 2005</span> </a><span style="font-size: 85%;">. The press release states: 'Oracle intends to continue developing the InnoDB technology and expand our commitment to open source software.' </span> </span> <br /> <span style="font-family: Verdana; font-size: 85%;"></span> <br /> <span style="font-family: Verdana;"> <a href="http://db.apache.org/derby/"><strong>Derby</strong> </a> is an open-source release by the <a href="http://www.apache.org/">Apache Software Foundation</a> of the <a href="http://www.infoworld.com/article/04/08/03/HNcloudscape_1.html">Cloudscape Java-based database that IBM acquired</a> when it bought Informix in 2001. IBM offers a commercial release of Derby as <a href="http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0408cline/">IBM Cloudscape 10.1</a>. Derby is a Java class library that has a relatively light footprint (2 MB), which make it suitable for <a href="http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0503stumpf/">client/server synchronization</a> with the IBM DB2 Everyplace Sync Server in <a href="http://www-128.ibm.com/developerworks/library/wi-cloud/">mobile applications</a>. The IBM DB2 Everyplace Express Edition isn't open source or free*, so it doesn't qualify for this post. The same is true for the corresponding Sybase SQL Anywhere components.**</span> <br /> <br /> <br /> <p> <span style="font-family: verdana; font-size: 85%;">* IBM DB2 Everyplace Express Edition with synchronization costs $379 per server (up to two processors) and $79 per user. DB2 Everyplace Database Edition (without DB2 synchronization) is $49 per user. (Prices are based on those when </span> <a href="http://news.earthweb.com/wireless/article.php/3107101"><span style="font-family: verdana; font-size: 85%;">IBM announced version 8</span> </a><span style="font-family: verdana; font-size: 85%;"> in November 2003.)</span> </p> <p> <span style="font-family: verdana; font-size: 85%;">** Sybase's iAnywhere subsidiary calls SQL Anywhere 'the industry's leading mobile database.' A Sybase SQL Anywhere Personal DB seat license with synchronization to SQL Anywhere Server is $119; the cost without synchronization wasn't available from the Sybase Web site. Sybase SQL Anywhere and IBM DB2 Everyplace perform similar replication functions.</span> </p> <p> <span style="font-family: Verdana;">Sun's <a href="http://developers.sun.com/prodtech/javadb/"><strong>Java DB</strong></a>, another commercial version of Derby, comes with the <a href="http://www.sun.com/software/solaris/">Solaris Enterprise Edition</a>, which bundles Solaris 10, the Java Enterprise System, developer tools, desktop infrastructure and N1 management software. A recent Between the Lines blog entry by ZDNet's David Berlind waxes enthusiastic over the use of <a href="http://blogs.zdnet.com/BTL/?p=2298">Java DB embedded in a browser</a> to provide offline persistence. RedMonk analyst <a href="http://www.redmonk.com/jgovernor/archives/001151.html">James Governor</a> and <em>eWeek</em>'s <a href="http://www.eweek.com/article2/0,1895,1902407,00.asp">Lisa Vaas</a> wrote about the use of Java DB as a local data store when <a href="http://www.sauria.com/blog/2005/12/13#1440">Tim Bray announced Sun's Derby derivative</a> and <a href="http://blogs.sun.com/roller/page/FrancoisOrsini?entry=derby_apachecon_demo">Francois Orsini</a> demonstrated Java DB embedded in the Firefox browser at the ApacheCon 2005 conference.</span> <br /> <span style="font-family: Verdana;"></span> <br /> <span style="font-family: Verdana;"> <a href="http://www.firebirdsql.org/"><strong>Firebird</strong> </a> is derived from Borland's InterBase 6.0 code, the first commercial relational database management system (RDBMS) to be released as open source. Firebird has excellent support for SQL-92 and comes in three versions: Classic, SuperServer and Embedded for Windows, Linux, Solaris, HP-UX, FreeBSD and MacOS X. The embedded version has a 1.4-MB footprint. Release Candidate 1 for Firebird 2.0 became available on March 30, 2006 and is a major improvement over earlier versions. <a href="http://www.borland.com/us/products/interbase/index.html">Borland continues to promote InterBase</a>, now at version 7.5, as a small-footprint, embedded database with commercial Server and Client licenses.</span> <br /> <span style="font-family: Verdana;"></span> <br /> <span style="font-family: Verdana;"> <a href="http://www.sqlite.org/index.html"><strong>SQLite</strong> </a> is a featherweight C library for an embedded database that implements most SQL-92 entry- and transitional-level requirements (some through the JDBC driver) and supports transactions within a tiny 250-KB code footprint. <a href="http://www.sqlite.org/cvstrac/wiki?p=SqliteWrappers">Wrappers</a> support a multitude of languages and operating systems, including Windows CE, SmartPhone, Windows Mobile, and Win32. SQLite's primary <a href="http://www.sqlite.org/omitted.html">SQL-92 limitations</a> are lack of nested transactions, inability to alter a table design once committed (other than with RENAME TABLE and ADD COLUMN operations), and foreign-key constraints. SQLite provides read-only views, triggers, and 256-bit encryption of database files. A downside is the the entire database file is <a href="http://weblogs.asp.net/jgalloway/archive/2006/04/12/442615.aspx">locked when while a transaction is in progress</a>. SQLite uses file access permissions in lieu of GRANT and REVOKE commands. Using SQLite involves no license; its code is entirely in the public domain.</span> </p> <p> <span style="font-family: Verdana; font-size: 85%;">The Mozilla Foundation's <a href="http://wiki.mozilla.org/Mozilla2:Unified_Storage">Unified Storage wiki</a> says this about SQLite: 'SQLite will be the back end for the unified store [for Firefox]. Because it implements a SQL engine, we get querying 'for free', without having to invent our own query language or query execution system. Its code-size footprint is moderate (250k), but it will hopefully simplify much existing code so that the net code-size change should be smaller. It has exceptional performance, and supports concurrent access to the database. Finally, it is released into the public domain, meaning that we will have no licensing issues.'</span> </p> <p> <span style="font-family: verdana;">Vieka Technology, Inc.'s <a href="http://vieka.com/esql.htm"><strong>eSQL 2.11</strong></a> is a port of SQLite to Windows Mobile (Pocket PC and Smartphone) and Win32, and includes development tools for Windows devices and PCs, as well as a .NET native data provider. A conventional ODBC driver also is available. eSQL for Windows (Win32) is free for personal and commercial use; eSQL for Windows Mobile requires a license for commercial (for-profit or business) use.</span> </p> <p> <span style="font-family: verdana;"> <a href="http://hsqldb.org/"><strong>HSQLDB</strong> </a> isn't on most reviewers' radar, which is surprising because it's the default database for <a href="http://www.openoffice.org/">OpenOffice.org</a> (OOo) 2.0's <a href="http://www.openoffice.org/product/base.html">Base</a> suite member. HSQLDB 1.8.0.1 is an open-source (BSD license) Java dembedded database engine based on Thomas Mueller's original Hypersonic SQL Project. Using OOo's Base feature requires installing the Java 2.0 Runtime Engine (which is not open-source) or the presence of an alternative open-source engine, such as Kaffe. My prior posts about OOo Base and HSQLDB are <a href="http://oakleafblog.blogspot.com/2005/10/openoffice-base-20-vs-microsoft-access.html">here</a>, <a href="http://oakleafblog.blogspot.com/2005/10/openoffice-base-20-vs-microsoft-access_22.html">here</a> and <a href="http://oakleafblog.blogspot.com/2005/10/openoffice-20-base-matches-microsoft.html">here</a>.</span> </p> <p> <span style="font-family: verdana;">The <a href="http://hsqldb.sourceforge.net/web/hsqlDocsFrame.html">HSQLDB 1.8.0 documentation</a> on SourceForge states the following regarding SQL-92 and later conformance:</span> </p> <span style="font-family: verdana;"> <blockquote> <p> <span style="font-family: verdana;">HSQLDB 1.8.0 supports the dialect of SQL defined by SQL standards 92, 99 and 2003. This means where a feature of the standard is supported, e.g. left outer join, the syntax is that specified by the standard text. Many features of SQL92 and 99 up to Advanced Level are supported and here is support for most of SQL 2003 Foundation and several optional features of this standard. However, certain features of the Standards are not supported so no claim is made for full support of any level of the standards. </span> </p> </blockquote> <span style="font-family: verdana;"><span style="font-size: 85%;">Other less well-known embedded databases designed for or suited to mobile deployment are </span> <a href="http://www.mimer.com/leftright.asp?secId=172"><span style="font-size: 85%;">Mimer SQL Mobile</span> </a><span style="font-size: 85%;"> and </span> <a href="http://www.vistadb.net/"><span style="font-size: 85%;">VistaDB 2.1</span> </a><span style="font-size: 85%;">. Neither product is open-source and require paid licensing; VistaDB requires a small up-front payment by developers but offers royalty-free distribution.</span> </span> <br /> <br /> <span style="font-family: Verdana;">Java DB, Firebird embedded, SQLite and eSQL 2.11 are contenders for lightweight PC and mobile device database projects that aren't Windows-only.</span> <br /> <br /> <strong> <span style="font-family: verdana;">SQL Server 2005 Everywhere<br /> </span><span style="font-family: Verdana;"></span> </strong> <br /> <span style="font-family: verdana;">If you're a Windows developer, SQL Server Mobile is the logical embedded database choice for mobile applications for Pocket PCs and Smartphones. Microsoft's April 19, 2006 press release delivered the news that SQL Server 2005 Mobile Editon (SQL Mobile or SSM) would gain a big brotherâSQL Server 2005 Everywhere Edition. </span> <br /> <span style="font-family: verdana;"></span> <br /> <span style="font-family: verdana;">Currently, the SSM client is licensed (at no charge) to run in production on devices with Windows CE 5.0, Windows Mobile 2003 for Pocket PC or Windows Mobile 5.0, or on PCs with Windows XP Tablet Edition only. SSM also is licensed for development purposes on PCs running Visual Studio 2005.</span> <span style="font-family: verdana;"> Smart Device replication with SQL Server 2000 SP3 and later databases has been the most common application so far for SSM.<br /> <br /> </span><span style="font-family: verdana;">By the end of 2006, Microsoft will license SSE for use on <em>all</em> PCs running any Win32 version or the preceding device OSs. A version of SQL Server Management Studio Express (SSMSE)âupdated to support SSEâis expected to release by the end of the year. These features will qualify SSE as <em>the universal embedded database</em> for Windows client and smart-device applications. </span> <br /> <br /> <span style="font-family: verdana;">For more details on SSE, read <a href="http://weblogs.asp.net/jgalloway/archive/2006/04/11/442451.aspx">John Galloway's April 11, 2006 blog post</a> and my '<a href="http://www.ftponline.com/special/sqlserver/rjennings-mobile/">SQL Server 2005 Mobile Goes Everywhere</a>' article for the <a href="http://www.ftponline.com/special/sqlserver/">FTPOnline Special Report on SQL Server</a>.</span><span style="font-family: verdana;"></span>" <p>(Via <a href="http://oakleafblog.blogspot.com">OakLeaf Systems</a>.)</p> </span> </blockquote>
Samba creator echoes common Microsoft ISV gripe
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2006-05-01#966
2006-05-01T13:14:44Z
2006-06-22T08:56:58-04:00
<p>Excerpted from:<a href="http://c.moreover.com/click/here.pl?r518324049">"InfoWorld piece covering"</a> last week's EU testimony by <a href="http://samba.org/~tridge/">Andrew Tridgell</a>.</p> <blockquote> <cite><p>The engineers bring computers and the software programs they are working on and literally plug them together to see how their programs interoperate. “We work around the clock for a week. We torture our machines in the pursuit of interoperability,” he told a rapt courtroom.</p> <p>“Can you do this test with Microsoft?” Judge Cooke asked.</p> <p>“Yes, but they don’t turn up,” Tridgell said.</p> <p>In an interview after the court had adjourned for the day, Tridgell explained that for the past six years Microsoft has boycotted the event.</p> <p>“They used to come. It used to be held in Seattle, close to Microsoft’s headquarters,” he said.</p> <p>But the software giant turned its back on the rest of the software community in the late 1990s once it had developed a server operating system it believed it could corner the market with. This marked a turning point for the software industry, Tridgell said. He spoke nostalgically about the days before Microsoft went its separate way. “It’s not like it used to be. I’d like it to get back to that,” he said.</p> <p>The market for workgroup server operating systems lies at the heart of the European Commission’s antitrust decision against Microsoft. Sun Microsystems Inc., a player in this market, complained to the European competition regulator in 1998 that Microsoft was competing unfairly. That complaint sparked the five year-long antitrust investigation.</p> <p>To remedy the situation, the Commission ordered Microsoft to divulge interoperability protocols within its own Windows workgroup server operating system. With this information, rival server systems should be able to communicate as fluently with Windows on PCs as Microsoft’s own server system.</p> <p>Two years on from the historic antitrust ruling, the Commission contends that Microsoft still hasn’t provided the necessary information, and the Commission is poised to issue a new antitrust ruling against the company for failing to comply with its 2004 decision.</p> <p>Even if Microsoft does comply, it isn’t certain that Tridgell and others from the free and open source sides of the software community will be granted access to the information.</p> <p>At the time of the antitrust ruling, Microsoft said the remedy proposed by the then competition commissioner, Mario Monti, would result in its valuable intellectual property being given away if it fell into the hands of open source developers.</p> </cite> </blockquote> <p>Andrew's testimony reflects an experience familiar to many ISV's that worked closely with Microsoft in the "early to mid 90's". In our case, the technology was ODBC (Open Database Connectivity). The cost of achieving ODBC compliance and interoperability grew exponentially as Microsoft veered towards a platform and database specific monoculture.</p>
Another Reminder About Database Independence
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-10-10#875
2005-10-10T21:36:58Z
2006-06-22T08:56:58-04:00
<a href="http://techdirt.com/articles/20051010/000252_F.shtml">MySQL's essential core has been acquired by Oracle</a>. This is yet another warning salvo to the legions of developers out there (especially the Open Source tribe) that write database specific applications. I have been <a href="http://www.openlinksw.com/weblog/kidehen@openlinksw.com/127/?id=446">warning about database specific application development</a> myopia for a very long time! <p>There is a countdown that is pretty much in motion as a result of the latest move by Oracle. If Open Source developers want to alleviate the inevitable despair, they will need to revisit the issue of decoupling those MySQL specific applications via a re-binding effort to database independent call level interfaces such as ODBC (using <a href="http://www.iodbc.org">iODBC</a> or <a href="http://www.unixodbc.org"> unixODBC</a>).</p> <p>For those MySQL users that think binding to ODBC is too hard, simply take a look at the two year old <a href="http://www.iodbc.org/index.php?page=mysql2odbc/index">MySQL2ODBC SDK</a>. It will not stop you from using MySQL, it simply separates your intellectual capital (the application logic) from the data storage (DBMS engine). You can still use ODBC to talk to MySQL, but you won't be locked into an inheritance tree that is susceptible to the inevitable strategic assaults on MySQL.</p>
End of Line for Microsoft?
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-07-26#856
2005-07-26T22:15:51Z
2006-06-22T08:56:58-04:00
<p><a href="http://www.pcmag.com/article2/0,1895,1840479,00.asp">John C. Dvorak pens an interesting piece about the "deafening silence" accorded Windows Vista</a> thus far. <br /> </p><p> <a href="http://www.openlinksw.com/weblog/kidehen@openlinksw.com/127/?id=793">In the past I have expressed views that echo the essence</a> of John's piece. It has been pretty darn clear to me that Microsoft is struggling as a result of its inability to handle challenges associated with the metaphoric "computing vase" which it sought to own solely as a result of its proclivity for crushing and/or alienating erstwhile technology partners as part of this quest (a process that commenced a long time ago culminating the <a href="http://www.betanews.com/article/Microsoft_No_IE7_for_Windows_2000/1117464807">contradiction and ultimate paradox called IE7</a>; remember not too long ago it was impossible to separate IE from Windows! It could only exist as an OS extension etc.).</p> <p>Windows in its current incarnation fails to provide a productive working environment, you either have a plethora of viruses and spyware contending for you computing resources, or you have all the software in place to protect against these assaults rendering the computing resources equally busy. The computing power lag is simply too much when using windows, and this is its achilles heel! </p> <p> I have been using Windows since version 2.0, and although I have always found the Mac OS variations to be superior on the UI front, I never found any of the historic versions viable alternatives. In my case, this is all about providing a productive work environment across the following usage modes, in descending order of priority:</p> <blockquote>1. Power User (OutLook, Excel, WORD, and other desktop productivity tools)<br /> 2. Product Testing and QA<br /> 3. Programmer Buddy (a Microsoft term)<br /> 4. Programming (for the most part prototyping)<br /> </blockquote> <p>The release of Mac OS X Tiger lead me down an evaluation path that I have repeated many times in the past: test the viability of moving wholesale from Windows to Mac OS X and remain functional (if really lucky, exceed existing productivity levels). This time around I found that I could actually migrate over 6 years worth of emails, contacts, presentations, documents, spreadsheets from Windows to Mac OS X. I also discovered that success extended all the way to my data linked documents that are transparently bound to back-end databases (in my case the norm rather the exception via ODBC). </p> <p>I now use Mac OS X as my prime working platform (I still have to use Windows as the platform remains strategic for all our product offerings), and I am absolutely loving it! The joint feelings of euphoria and confusion that I experienced post migration were similar to how I felt after making the transition from "stick shift" to "automatic" geared cars (as I transitioned my residence from the UK to the U.S). At the time I couldn't understand why anyone (other than a grand prix driver) would ever drive a "stick shift" by choice. </p> <p>Today, I can't understand why I stuck with Windows for so long at the expense of my daily working productivity. The biggest bonus from this transition is that Mac OS X has made it easier for me to engage less technical individuals (family & friends) in the sheer joy and potential of Information Technology across a variety of realms as opposed to being confined to the "business computing" realm solely. I can demonstrate the power and potential of the Internet, Web, Web Services, Blogosphere, Wikispehere, with much more sanity and coherence now that my machine responds in a timely fashion during these demos amongst other benefits. </p> <p>Some may deem this windows bashing, but if they take the time to look a little deeper, this is simply about "straight shooting" from a real computer user (I like my computers to do deliver on their hugh potential promised; I don't compromise this basic expectation; my computer and associate software should save me time and ramp up my productivity!) . If Microsoft is the company that it once was, then it would simply use this kind of commentary to rally its troops and get its act together! That's what I would do if a customer felt so badly about our technology (<a href="http://uda.openlinksw.com">UDA </a>or <a href="http://virtuoso.openlinksw.com">Virtuoso</a>).</p>
A Collection of PHP and ODBC How-To Links
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-05-01#831
2005-05-01T15:46:45Z
2006-06-22T08:56:58-04:00
<p>In 2005 I am somewhat surprised at the steady level of emails and commentary expressing confusion about the use of PHP and ODBC.</p> <p>Here are a few links that resolve any confusion about this matter:</p> <ol> <li>OpenLink's PHP and iODBC HOWTO doc: <a href="http://www.iodbc.org/index.php?page=languages/php/odbc-phpHOWTO">http://www.iodbc.org/index.php?page=languages/php/odbc-phpHOWTO</a><br></li> <li>PHP Everywhere's guide: <a href="http://phplens.com/phpeverywhere/node/view/9">http://phplens.com/phpeverywhere/node/view/9</a><br></li> <li>Zili Zhang's piece from 1999 (time flies!): <a href="http://www.tldp.org/HOWTO/MSSQL6-Openlink-PHP-ODBC.html">http://www.tldp.org/HOWTO/MSSQL6-Openlink-PHP-ODBC.html</a><br></li> <li>Zend's ODBC Tutorial: <a href="http://www.zend.com/zend/tut/odbc.php">http://www.zend.com/zend/tut/odbc.php</a> </li></ol> <p>Or simple google on PHP and ODBC or PHP and iODBC ...</p>
SAP, IBM Make Play for Oracle Database Customers With New DB2 Version
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-04-28#819
2005-04-28T21:52:55Z
2006-06-22T08:56:58-04:00
<font size="2"> <p><a href="http://ct.enews.eweek.com/rd/cts?d=186-1965-11-96-81585-221904-0-0-0-1">CNET reports</a>:</p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p>There are a whopping <u>44,000 SAP customers</u> running on Oracle databases, and IBM wants them. To get them, for the first time ever, it's optimized its enterprise database for a specific vendor's applications. The new version of DB, 8.2.2, will include a slew of SAP-optimized features, including self-tuning, self-configuration, silent install, dynamic storage allocation and more. </p></blockquote> <p dir="ltr">Wouldn't SAP be better served by simply making their application database independent via <a href="http://uda.openlinksw.com/odbc/">ODBC</a>? This process really could have commenced years ago and prevented today's dilema: Your Partner has become Your most aggressive Competitor! </p> <p dir="ltr">SAP tuned for specifically for DB2 or SAP tuned likewise for Microsoft SQL simply reeks of: "Same Sh*t different Pile". Microsoft and IBM will emulate Oracle in due course regarding their assault on SAP's market if DBMS specificity remains the SAP data access API strategy (this is a simple fact).</p> <p dir="ltr">SAP should be using its quest for DBMS independence to stimulate or contribute ODBC enhancements (should ODBC be lacking in areas critical to its application needs; it is available in <a href="http://www.iodbc.org">Open Source form</a> and across all major platforms). Should the ODBC API not be the problem, then it can push ODBC Driver vendors (DBMS vendors such as IBM included) to get their Drivers in shape (should they be lacking, I know <a href="http://uda.openlinksw.com/odbc ">our ODBC Drivers</a> are absolutely fine for this kind of task).</p> <p dir="ltr">Database specificity gets application vendors nowhere. You can only control your business development destiny by being database independent. When applications are database independent the intellectual capital that drives your applications is preserved. This is akin to building physical and logical firewalls around the ecosystem created by your products. This is much better that being a pseudo DBMS engine reseller for a future competitor.</p> <p dir="ltr"> </p> <p dir="ltr"> </p> <p dir="ltr"></font> </p>
Have RSS feeds killed the email star?
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-02-28#704
2005-02-28T20:36:19Z
2006-06-22T08:56:58-04:00
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p><a href="http://networks.silicon.com/webwatch/0,39024667,39128215,00.htm">Have RSS feeds killed the email star? </a>silicon.com Feb 28 2005 12:58PM GMT </p></blockquote> <div align="right">[via <a href="http://www.moreover.com/rss">Moreover - XML and metadata news</a>]</div> <div align="left"> </div> <div align="left"><a href="http://www.answers.com/topic/rss-protocol">RSS</a> and other <a href="http://www.answers.com/main/ntquery?s=xml&method=2&gwp=13">XML</a> based syndication formats (<a href="http://www.answers.com/main/ntquery?method=4&dsid=2222&dekey=Resource+Description+Framework&gwp=8&curtab=2222_1">RDF</a>, <a href="http://www.answers.com/topic/atom-standard?hl=atom&hl=syndication">Atom</a>, etc.) allow organizations to syndicate their value propositions via feeds. Thus, instead of, depending solely on sending out HTML based advertorial emails (which end up in Spam Folders 75% of the time anyhow) to targets such as; suspects, leads, and customers. You can rely on the <a href="http://en.wikipedia.org/wiki/Web_2.0">Web 2.0 </a>fabric for <a href="http://diveintomark.org/archives/2002/06/02/important_change_to_the_link_tag">auto-discovery</a> of syndicated feeds covering marketing collateral such as; <a href="http://rss.openlinksw.com/uda.xml">features & benefits data</a>, product documentation (ODBC/JDBC <a href="http://docs.openlinksw.com/mt/mtdocs.opml">Multi-Tier</a>, ODBC/JDBC <a href="http://docs.openlinksw.com/st/litedocs.opml">Single-Tier</a>, and <a href="http://docs.openlinksw.com/virtuoso/virtdocs.opml">Virtuoso</a> ), <a href="http://demo.openlinksw.com/tutorial/rss.vsp">product functionality tutorials</a>, and screencasts (<a href="http://support.openlinksw.com/viewlets/uda_viewlets_rss.vsp">UDA </a>, <a href="http://support.openlinksw.com/viewlets/virtuoso_viewlets_rss.vsp">Virtuoso</a>, and <a href="http://support.openlinksw.com/viewlets/utilities_viewlets_rss.vsp">ODBC Benchmark & Troubleshooting Utilities</a>) etc. </div>
The Cost of Database Specificity
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-02-28#698
2005-02-28T15:57:24Z
2006-06-22T08:56:58-04:00
<p dir="ltr" style="MARGIN-RIGHT: 0px">The cost of writing database specific applications (Open or Closed Source) adversely affects application developers/vendors and end user alike. <a href="http://www.nwc.com/showitem.jhtml?docid=1603buzz3">This</a> article in <a href="http://www.nwc.com">Network Computing</a> (regarding Oracle and PeopleSoft's DB2's user base) provides great insight into the time-tested problem of writing or acquiring database driven applications that are database specific. <span class="grey12"></p></span> <p dir="ltr" style="MARGIN-RIGHT: 0px">DB2 users of PeopleSoft and IBM (the DB2 developer and vendor) suspect that Oracle will obviously try to use its ownership of PeopleSoft to covertly coerce DB2 users into becoming Oracle DBMS users. This strategy would take the form of new features and fixes discrimination as somewhat echoed in these excerpts:</p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p dir="ltr" style="MARGIN-RIGHT: 0px"><span class="grey12">"..In the crescendo surrounding the Oracle-PeopleSoft merger, one question has been repeatedly drowned out: What happens to users of PeopleSoft's DB2 database? Oracle chief Larry Ellison has repeatedly assured DB2 users--and IBM--that Oracle will continue to support DB2 and PeopleSoft's interfaces to IBM's WebSphere platform. But IBM isn't taking any chances, announcing an initiative to alter DB2 to work with products from Oracle rival SAP." </span></p> <p dir="ltr" style="MARGIN-RIGHT: 0px"><span class="grey12">"..IBM has good reason to be concerned. Oracle vies with SAP as the leading vendor for enterprise applications, but it's under pressure to show concrete benefits from the merger by combining assets and pumping up revenue. One obvious tactic will be to use the PeopleSoft applications to steer enterprise customers toward the Oracle database by optimizing performance and features toward the Oracle back end."</span></p></blockquote> <p dir="ltr" style="MARGIN-RIGHT: 0px">If PeopleSoft's application core was ODBC based, the vulnerability to this predictable competitive tactic would at the very least be significantly alleviated. DB2 end-users and IBM the product vendor would have a much stronger basis for countering Oracle by taking them to task about their claimed inability to implement new application functionality enhancements against DB2 etc. especially as this would have morphed into a generic database issue as opposed to a DB2 specific issue -- by virtue of the application and data access layer seperation provided by <a href="http://uda.openlinksw.com/odbc/">ODBC's architecture</a>. </p> <p dir="ltr" style="MARGIN-RIGHT: 0px"> </p>
Cognitive Dissonance
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-02-25#695
2005-02-25T00:58:21Z
2006-06-22T08:56:58-04:00
<p><a href="http://www.answers.com/main/ntquery?s=definition+cognitive+dissonance&method=2&gwp=13">Cognitive dissonance</a> is how <a href="http://blogs.msdn.com/dareobasanjo/archive/2005/02/17/375367.aspx">Dare Obasanjo</a> aptly describes the emergence of some of the <a href="http://www.answers.com/main/ntquery?s=smart+tags&method=2&gwp=13">Smart Tags </a>concepts previously introduced by Microsoft and now emulated by the new google toolbar's autolink feature (<a href="http://glinden.blogspot.com/">Greg Linden</a> explains the problem with <a href="http://glinden.blogspot.com/2005/02/autolink-in-google-toolbar.html">clarity</a>).</p> <p>Anyway, back to cognitive dissonance. Could this be the reason for the following?</p> <ol> <li>Open Source products are increasingly database specific even though they could be database independent via Open Source ODBC SDK efforts such as <a href="http://www.iodbc.org">iODBC</a> and <a href="http://www.unixodbc.org">unixODBC</a>. We increasingly narrowing our choices down to database specific "Closed Source" or database specific "Open Source" solutions and somehow deem this to be progress<br></li> <li>The prevalent use of free standards compliant data access drivers (<a href="http://en.wikipedia.org/wiki/ODBC">ODBC</a>, <a href="http://en.wikipedia.org/wiki/JDBC">JDBC</a>, and <a href="http://en.wikipedia.org/wiki/ADO.NET">ADO.NET</a>) or their native counterparts that remain vulnerable to simple password hacks (there are databases behind those dynamic web sites!!) as none of these have any notion of "rules based" authentication and data access policy<br></li> <li>The time-tested fallacy that: "select * from table" defines a viable <a href="http://en.wikipedia.org/wiki/RDBMS">RDBMS</a> engine since Transaction Atomicity, Concurrency, Isolation, and Durability (ACID) mean zip! Ditto scrollable cursors, stored procedures, and other presumably useless aspects of any marginably decent RDBMS engine<br></li> <li>Failing to comprehend that a <a href="http://en.wikipedia.org/wiki/Weblog">Weblog</a> is your property (if you have a personal blog) not the property of the vendor hosting your service (that important issue of separating data ownership and data storage again). You may have heard about, or experienced, total loss of weblog and/or weblog archives arising from weblog engine or blog service provider changeovers<br></li> <li>Failing to see the synergy between personal/group/corporate information stores (aka <a href="http://www.openlinksw.com/blog/search.vspx?blogid=127&q=infoBase&type=text&output=html">infobase</a>) such as Wikis, Weblogs, and the burgeoning semantic web. <a href="http://weblog.infoworld.com/udell/2005/02/22.html#a1183">Jon Udell</a> for instance, is trying to get the point across via his tireless collection of <a href="http://en.wikipedia.org/wiki/XML_query_language">XQuery</a>/<a href="http://en.wikipedia.org/wiki/XPath">XPath</a> based queries aimed at the blogosphere section of the burgeoning semantic web. Here are some of mine (scoped to this weblog):<br></li> <ul> <li>Security related posts to date (<a href="http://www.openlinksw.com/blog/search.vspx?blogid=127&q=//p[contains%28.%2C%27security%27%29]&type=xpath&output=html">XPath</a> query)<br></li> <li>Infobase related posts to date (<a href="http://www.openlinksw.com/blog/search.vspx?blogid=127&q=infoBase&type=text&output=html">Free Text</a> search)<br></li></ul></ol> <p>And more...</p>
Email As A Platform
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2005-02-10#680
2005-02-10T17:01:57Z
2006-06-22T08:56:58-04:00
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p><a href="http://techdirt.com/articles/20050209/1329235_F.shtml">Email As A Platform</a> It looks like more people are starting to realize that email is more than it seems. Especially given the drastic increase in storage size of web-based email applications, more people are realizing that <a href="http://news.bbc.co.uk/2/hi/business/4167633.stm">email is basically a personal database</a>. People simply store information in their email, from contact information that was emailed to them to schedule information to purchase tracking from emailed receipts. Lots of people email messages to themselves, realizing that email is basically the best "permanent" filing system they have. That's part of the reason why good email search is so important. Of course, what the article doesn't discuss is the next stage of this evolution. If you have a database of important information, the next step is to build useful applications on top of it. In other words, people are starting to realize that email, itself, is a <i>platform</i> for personal information management. </p></blockquote> <div align="right">[via <a href="http://www.techdirt.com/">Techdirt</a>]</div> <div align="left"> </div> <div align="left">Yep! And this is where the Unified Storage vision comes into play. Many years ago the same issues emerged in the business application realm, and at the time the issue at hand was: separating the DBMS engine from the Application logic. This is what the SQL Access Group (SAG) addressed via the CLI that laid the foundation for ODBC, JDBC, and recent derivatives; OLE DB and ADO.NET. </div> <div align="left"> </div> <div align="left">Most of us live inside our email applications and the need to integrate the content of emails, address books, notes, calendars with other data sources (Web Portal, Blogs, Wikis, CRM, ERP, and more) as part of our application interaction cycles and domain specific workflow is finally becoming obvious. There is a need for separation of the application/service layer from the storage engine across each one of these functionality realms. XML, RDF, and Triple Stores (RDF / Semantic Data Stores) collectively provide a standards based framework for achieving this goal. On the other hand so does WinFS albeit total proprietary (by this I mean none standards compliant) at the current time.</div> <div align="left"> </div> <div align="left">As you can already see there are numerous applications (conventional or hosted) that address email, address books, bookmarking, notes, calendars, blogs, wikis, crm etc. specifically, but next to none that address the obvious need for transparent integration across each functionality realm - the ultimate goal.</div> <div align="left"> </div> <div align="left">Yes, you know what I am about to say! <a href="http://virtuoso.openlinksw.com">OpenLink Virtuoso</a> is the platform for developing and/or implementing these next generation solutions. We have also decided to go one step further by developing a number of applications that demonstrate the vision (and ultimate reality); and each of these applications (and the inherent integration tapestry) will be the subject of a future Virtuoso Application specific post.</div>
MacSOS Releases SyBrowser 6.2
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-11-19#642
2004-11-19T17:40:38Z
2006-06-22T08:56:58-04:00
<a href="http://feeds.feedburner.com/rbgarage?m=93">MacSOS Releases SyBrowser 6.2</a> <div xmlns="http://www.w3.org/1999/xhtml">Dr. Gerard Hammond of MacSOS announced the release of SyBrowser 6.2, a Macintosh application that can query Sybase, FrontBase, PostgreSQL, Oracle, ODBC and MS SQL databases hosted on OSX, UNIX, Linux, and Windows servers. <br><br>SyBrowser v6.2 features include: <br><br>- Added FrontBase database support. <br>- Added "Bachman" style ERD features (Tridents for 'Many' arms of a relationship, open circles for optional entities) <br>- The arms of a relationship now track their entities correctly in all directions. <br>- The arm of the selected relationship can be moved using the mouse or the keyboard <br>- Fixed bug with SQL auto-completion popup with multiple monitors. <br>- Enhanced the "Edit Relationships Info..." dialog. This dialog allows the properties of the selected relationship to be edited. <br>- The mouse cursor changes to reflect the draggable direction when resizing ERD tables, or dragging the various arms of a relationship. The selected arm of the selected relationship now has a circle for a handle. <br>- Documentation added. <br>- Printing the ERD panel has been improved. <br>- The Find dialog allows searching the returned datasets on the SQL panel and Results windows as well as the code in Sybase stored procedures. <br><br>SyBrowser Overview <br>SyBrowser is a table browser and alternative "isql" client for Sybase databases. It facilitates SQL generation thorough a point and click interface. SyBrowser also provides an overview of the tables in ODBC, MySQL, Oracle, FrontBase, PostgreSQL and MS SQL databases. Complex queries can be saved to disk for reuse. An ERD module allows the creation of visual representations of data models. <br><br>$89 Shareware from MacSOS, Australia <br>$49 upgrade from any previous version <br><br><a href="http://www.macsos.com.au/">http://www.macsos.com.au</a> </div> <div align="right">[via <a href="http://rbgarage.blogspot.com/">RB Garage News Feed</a>]</div>
Preventable SQL DBMS Vulnerabilities
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-05-17#546
2004-05-18T00:42:08Z
2006-06-22T08:56:58-04:00
<p>Here are some excerpts (inlined) with my comments (outlined) from an <a href="http://www.db2mag.com/showArticle.jhtml?articleID=18901175">interesting article</a> on SQL DBMS exploits and vulnerabilities by <a href="http://www.appsecinc.com/">Aaron C. Newman</a>, for <a href="http://www.db2mag.com/show">DB2 Magazine</a> titled "6 Security Secrets Attackers don't want You To Know".</p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p>How secure is your data? Looking at your information management resources through a would-be intruder's eyes can help you find (and fix) vulnerabilities.</p></blockquote> <p dir="ltr">Naturally :-)</p> <p></p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p>When E. F. Codd developed his relational data model in 1970, the business world was a different place. Almost 35 years after his seminal work appeared, RDBMSs that sprung from Codd's ideas are the standard for storing corporate information. And, with government and industry regulations dictating what kinds of information companies have to store, manage, and audit (and for how long), protecting this information is more important than ever. Unfortunately, it's also more challenging</p> <p>Even in 1985, when <a href="http://www.databaseanswers.com/codds_rules.htm">Dr. Codd published 12 guidelines for RDBMSs</a>, there was little concern for data security. In those days, gaining access to a database was so difficult that advanced security features on the database were irrelevant. </p> <p>Today, RDBMSs carry the lifeblood of every organization. Note the use of the plural: Organizations now have many databases that are decentralized in terms of use and security controls. E-business demands that data access be extended to customers, partners, suppliers, and other parties who were rarely considered in the early data management days. With all this availability ? not to mention pressure from an array of government and industry regulations (see the sidebar, <a href="http://www.db2mag.com/showArticle.jhtml?articleID=18901175#sidebar">"Security and Compliance"</a>) ? the need to control exactly who can access or modify data is becoming paramount. </p></blockquote> <p dir="ltr">Absolute facts, that are still partially understood at best. For instance we are still in a so called "Information Age" in which standards based data access remains an issue of contempt instead of absolute necessity. </p> <p dir="ltr">There are a number of prevailing myths about standards based data access that continue to cloak reality:</p> <ol dir="ltr"> <li> <div>ODBC, JDBC, ADO.NET, OLEDB all deliver poor performance (compared to their native, proprietary, and database specific counterparts; native interfaces)<br></div></li> <li> <div>You can't really right generic database applications with these standards due to inconsistencies in the DBMS implementations of SQL (not true! there are many aspects of the specs that address these concerns if only a majority of driver vendors would implement these features, and the application developers actually used them by seeking drivers with full implementations).</div></li></ol> <p>Even if the above were true (which I refute strongly), how about the general security vulnerabilities that affect both Native, and Standards compliant, data access interfaces?</p> <p>Aaron's article does a good job of highlighting 6 areas of vulnerability:</p> <ol> <li> <div>DBMS Defaults (usernames and passwords)</div></li> <li> <div>Authentication (at connect time)</div></li> <li> <div>Database Privileges</div></li> <li> <div>Fixpaks </div></li> <li> <div>Buffer Overflows</div></li> <li> <div>SQL Injection</div></li></ol> <p>What I have been able to do very quickly (thanks to blogging, and the power of a blog engine that supports <a href="http://www.openlinksw.com/blog/~kidehen/index.vspx?id=543">WebDAV</a>), is write a <a href="http://www.openlinksw.com/blog/~kidehen/articles/uda_rule_book_sql_attacks.htm">tabulated response to each of the items </a>(bar Fixpaks) indicating how the <a href="http://www.openlinksw.com/info/mtproduct.htm">OpenLink Multi-Tier Data Access Drivers </a>(for ODBC, JDBC, ADO.NET, and OLEDB) protect corporate databases from each of these vulnerabilities.</p> <p>To cut a long story short, we are increasingly living a contradiction where the terms "simple" and "free" are supposed to lead us to products that can adequately handle the challenges of an increasingly sophisticated grid of inter-connecting point. </p> <p>I have been asked on numerous occassions, "How can you build a company and business based on data access technology?". My reply is the same as usual, "because everything comes down to data". If the data is compromised in anyway, then kiss Information, Knowledge, and everything else goodbye!</p> <table align="right" border="0" cellpadding="5" cellspacing="0" width="336"> <tbody> <tr> <td></td></tr></tbody></table> <p> </p>
Customer demand for a ubiquitous InfoPath runtime
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-04-06#499
2004-04-06T18:55:04Z
2006-06-22T08:56:58-04:00
<p dir="ltr">My little addition to the observation below re. InfoPath: when will this tool actually make use of ADO.NET or ODBC in a manner reflective of these data access APIs? There are supposed to facilitate database independence, but InfoPath simply does not want to know anything other than SQL Server or ACCESS?</p> <p dir="ltr">So we all buy and deploy copies of InfoPath, and then get rid of our non SQL Server and ACCESS databases? Wow!</p> <p dir="ltr">How about InfoPath emitting XForms compliant forms? Even better, what about</p>
Customer demand for a ubiquitous InfoPath runtime
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-04-06#506
2004-04-06T18:55:04Z
2006-06-22T08:56:58-04:00
<p dir="ltr">My little addition to the observation below re. InfoPath: when will this tool actually make use of ADO.NET or ODBC in a manner reflective of these data access APIs? There are supposed to facilitate database independence, but InfoPath simply does not want to know anything other than SQL Server or ACCESS?</p> <p dir="ltr">So we all buy and deploy copies of InfoPath, and then get rid of our non SQL Server and ACCESS databases? Wow!</p> <p dir="ltr">How about InfoPath emitting XForms compliant forms? Even better, what about</p>
Demo Hell and back
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-03-23#482
2004-03-23T20:04:04Z
2006-06-22T08:56:58-04:00
<p>This piece links to a great <a href="http://www.frenchguys.com/temp/Mono.ppt">Mono presentation</a> (bar the reference placement of MySQL/PostgreSQL in a box somewhat adjacent to ADO.NET (see slide 7). When ADO.NET should have be associated with Data Providers for ODBC, MySQL, PostgresSQL, and others for clarity (the natural goal of the presentation).</p> <p>We have got to take time to understand the Data Access Layer, if we don't we will utlimately <a href="http://www.securityfocus.com/archive/1/358200">pay a hefty price </a>(IMHO).</p> <p>This blog post is also hillarious, especially if you have encountered the mercurial "Murphy" during live product demos.</p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p>So, today I went to hell. And then I came back. It was a short trip.</p> <p>This year, I am giving a presentation on Mono at Brainshare in Salt Lake City, an intro to Mono for developers. I got a pretty good turnout with a few ximian people in the back (including Joe whom I saw for the first time without a hat).</p></blockquote> <p dir="ltr"> </p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p>So I plug in my PowerBook 12" as I always do but for some reason I have a hard time getting the projector to display its output. After struggling a little I resort to using the desktop provided by Novell, running Ximian Desktop 2 (and some version Suse Linux).</p> <p>So I upload my <a href="http://www.frenchguys.com/temp/Mono.ppt" target="_blank">presentation</a> to <a href="http://www.frenchguys.com/" target="blank">www.frenchguys.com</a> from my mac and then download it back to the desktop. Now I can make my presentation, which goes well. Then I get to a slide that just says : <b>DEMO</b>. Hmmm. Demo. I don't have Mono installed on that generic machine I was just given. I am going to need magic. So to magic I resort.</p></blockquote> <p align="right">[via <a href="http://go-mono.com/monologue">Monologue</a>]</p>
MySQL 4.1 Client Libraries go GPL
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-01-07#446
2004-01-08T04:26:20Z
2006-06-22T08:56:58-04:00
<blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p><a href="http://blog.bitflux.ch/p1626.html">MySQL and the GPL</a> Interesting read and thoughts and discussion about MySQL and "their" interpretation (backed by FSF) of the GPL on <a href="http://www.edwardbear.org/serendipity/archives/1193_My_Beef_with_MySQLs_License.html">Sterling's Blog</a> </p></blockquote> <div align="right">[via <a href="http://blog.bitflux.ch/">Bitflux Blog</a>]</div> <div align="left"> </div> <div align="left">Well it looks like the guys at MySQL AB have made a very bad move re. the MySQL 4.1 client libraries. They have made these libraries GPL as opposed to LGPL (these license format of the prior library releases), which simply means that any application that uses these libraries is now a "derivative work" and basically required to unveil source.</div> <div align="left"> </div> <div align="left">I wonder how the tons of LAMP users and developers feel right now, a change of this magnitude in mid-stream! Nice way to treat a community that has built itself around MySQL's LGPL Client Libraries</div> <div align="left"> </div> <div align="left">A few years ago I had to rescue the <a href="http://www.iodbc.org">iODBC (Independent ODBC) SDK project </a>from the hands of <a href="http://www.fsf.org">FSF</a> (Free Software Foundation), and this was done solely to prevent what MySQL and FSF are attempting to pull off (FSF had a clear understanding of the inherent importance of data that is not necessarily comprehended by LAMP, or the broader industry). </div> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <div align="left"><em>Unfortunately I couldn't locate the Kingsley Idehen vs. Richard Stallman FreeODBC mailing list debate archive re. iODBC anywhere on the net, so this </em><a href="http://udell.roninhouse.com/bytecols/1999-11-03.html"><em>interview link </em></a><em>will have to suffice).</em></div></blockquote> <div align="left">Ironically MySQL as opposed to iODBC|ODBC|unixODBC has come to instinctively define data access in the LAMP world, and in doing so the very essence of the ODBC value proposition has been somewhat lost.</div> <div align="left"> </div> <div align="left">Recap:</div> <div align="left">ODBC (Open Database Connectivity) is an API (Application Programming Interface) that enables database independent application development. <a href="http://www.iodbc.org/index.php?page=docs/odbcstory#walkthrough">Its implementation architecture</a> enables Applications to bind to a Driver Manager which in turn loads ODBC Drivers. Now, initially this doesn't look like a big deal, but it is, and the situation re. MySQL 4.1 illustrates the benefit of this architecture by protecting LAMP users and developers from the GPL'd 4.1 Client Libraries since MySQL is accessible via ODBC. <br /></div> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <div align="left"><em>note: ODBC Driver developers that use the 4.1 client libraries are "derivative work" and they will have to release source code which means we won't be updating our MySQL ODBC Drivers because we won't be forced into release the source code of our ODBC Drivers.</em></div></blockquote> <div align="left"> </div> <div align="left">LAMP applications that are bound to iODBC|unixODBC|Microsoft ODBC will not be exposed to this stunt by FSF and MySQL AB. Why? Because an ODBC based LAMP solution isn't touching those MySQL 4.1 client libraries!</div> <div align="left"> </div> <div align="left">Now if you think that you are stumped simply because you went innocently down the LAMP path by buying into the "MySQL data access is good enough perception", and now find yourself over invested in MySQL specific code (that is data access code bound directly to the MySQL client libraries), please don't worry! There is an <a href="http://www.iodbc.org/index.php?page=mysql2odbc/index">Open Source solution called MySQL2ODBC</a> that is based on the pre 4.1 MySQL client libraries that enables your MySQL specific application (which is typical of LAMP solutions) to become iODBC compliant, and this is achieved without a wholesale rewrite of your application. </div> <div align="left"> </div> <div align="left">I have been an ardent ODBC supporter since its inception simply because data is timelessly important, and ODBC provides a critical solution for separating application logic from data repositories.  There is a lot of SQL data driving mission critical business applications globally, and failure to comprehend ODBC's value proposition ultimately results in loss of control over Data, which is the foundation from which Information and Knowledge are derived.</div> <div align="left"> </div> <div align="left">You should never find yourself locked into any database vendor, programming language vendor, operating system vendor, or business application vendor, simply becuase you want exploit your own data. </div> <div align="left"> </div> <div align="left">Ironically the statement above is for the most part the real reason why ODBC has such a bad wrap!</div> <div align="left"> </div> <div align="left"> </div>
New Open Source ODBC SDK Site
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-01-06#445
2004-01-07T00:16:03Z
2006-06-22T08:56:58-04:00
<P>A revamped <A href="http://www.iodbc.org/">iodbc.org</A> site is now live. A cross platform ODBC SDK (for writing Drivers, or making applications database independent) remains an important part of the tecnology spectrum for the information age. The further we go into the information age, the more obvious the value of data access, and a standards base API will become.</P>
Enterprise Databases get a grip on XML
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2004-01-06#442
2004-01-06T23:17:07Z
2006-06-22T08:56:58-04:00
<blockquote style="margin-right: 0px;" dir="ltr"> <p><a class="listLinkLrg" title="http://newsletter.infoworld.com/t?ctl=4FEDB6:1F3948D" href="http://newsletter.infoworld.com/t?ctl=4FEDB6:1F3948D" target="_new"><strong><font face="Verdana">Databases get a grip on XML</font></strong></a><br /><font size="2"></font><font face="Verdana">From <a href="http://newsletter.infoworld.com/t?ctl=4FEDB6:1F3948D">Inforworld</a>.</font><br /><br /><font face="Verdana,Geneva,Arial,sans-serif" size="2">The next iteration of the SQL standard was supposed to arrive in 2003. But SQL standardization has always been a glacially slow process, so nobody should be surprised that SQL:2003 ? now known as SQL:200n ? isn?t ready yet. Even so, 2003 was a year in which XML-oriented data management, one of the areas addressed by the forthcoming standard, showed up on more and more developers? radar screens.ÃÂ <a title="http://newsletter.infoworld.com/t?ctl=4FEDB6:1F3948D" href="http://newsletter.infoworld.com/t?ctl=4FEDB6:1F3948D" target="_blank">>> READ MORE</a></font></p></blockquote> <p dir="ltr"><font face="Verdana" size="2">This article rounds up product for 2003 in the critical area of Enterprise Database Technology. It's certainly provides an apt reflection of how Virtuoso compares with offerings from some the larger (but certainly slower to implement) database vendors in this space. As usual Jon Udell's quote pretty much sums this up:</font></p> <blockquote style="margin-right: 0px;" dir="ltr"> <p dir="ltr"><!--StartFragment --><span class="artText"><em>"While the spotlight shone on the heavyweight contenders, a couple of agile innovators made noteworthy advances in 2003. </em><a class="regularArticleU" href="http://www.infoworld.com/699"><em>OpenLink Software?s Virtuoso 3.0</em></a><em>, which we reviewed in March, stole thunder from all three major players. Like Oracle, it offers a WebDAV-accessible XML repository. Like DB2 Information Integrator, it functions as database middleware that can perform federated ?joins? across SQL and XML sources. And like the forthcoming Yukon, it embeds the .Net CLR (Common Language Runtime), or in the case of Linux, Novell/Ximian?s Mono."</em></span> </p></blockquote> <p dir="ltr"><font face="Verdana" size="2">Albeit still somewhat unknown to the broader industry we have remained true our "innovator" discipline, which still remains our chosen path to market leadership. Thus, its worth a quick Virtuoso release history, and featuresÃÂ recap as we get set to up the ante even further in 2004:</font></p> <p dir="ltr"><font face="Verdana" size="2"><a href="http://www.openlinksw.com/press/virtuoso.htm">1998 - Virtuoso's initial public beta</a> release with functional emphasis on Virtual Database Engine for ODBC and JDBC Data Sources.</font></p> <p dir="ltr"><font face="Verdana" size="2"><a href="http://www.openlinksw.com/press/virtuoso1.htm">1999 - Virtuoso's official commercial</a> release, with emphasis stillÃÂ on Virtual Database functionality for ODBC, JDBC accessible SQL Databases.</font></p> <p dir="ltr"><font face="Verdana" size="2"><a href="http://www.openlinksw.com/press/v2releas.htm">2000 - Virtuoso 2.0</a> adds XML Storage, XPath, XML Schema, XQuery, XSL-T, WebDAV, SOAP, UDDI, HTTP, Replication, Free Text Indexing (*feature update*), POP3, and NNTP support.</font></p> <p dir="ltr"><font face="Verdana" size="2"><a href="http://www.openlinksw.com/press/v27releas.htm">2002 - Virtuoso 2.7</a> extends Virtualization prowess beyond data access via enhancements to its Web Services protocol stack implementation by enabling SQL Stored Procedures to be published as Web Services. It also debutsÃÂ its Object-Relational engine enhancements that include theÃÂ incorporation of Java and Microsoft .NET Objects into its User Defined Type, User Defined Functions, and Stored ProcedureÃÂ offerings.</font></p> <p dir="ltr"><font face="Verdana" size="2"><a href="http://www.openlinksw.com/press/virt3beta.htm">2003 - Virtuoso 3.0</a> extends data and application logic virtualization into the Application Server realm (basically a Virtual Application server too!), by adding support for ASP.NET, PHP, Java Server Pages runtime hosting (making applications built using any of these languages deployable using Virtuoso across all supported platforms).</font></p> <p dir="ltr"><font face="Verdana" size="2">Collectively each of these releases have contributed to a very premeditated architecture and vision that will ultimately unveil the inherent power of critical I.S infrastructure virtualizationÃÂ along the following lines; data storage, data access , and application logic via coherent integration of SQL, XML, Web Services, and Persistent Stored Modules (.NET, Java, and other object based component building blocks).</font></p> <p dir="ltr"><font face="Verdana"></font>ÃÂ </p>
Replace and defend -- Contd
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-10-31#410
2003-10-31T20:58:52Z
2006-06-22T08:56:58-04:00
<BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <P dir=ltr style="MARGIN-RIGHT: 0px">Reading the Longhorn SDK docs is a disorienting experience. Everything's familiar but different. Consider these three examples: </P> <P dir=ltr style="MARGIN-RIGHT: 0px">[Full story: <A href="http://weblog.infoworld.com/udell/2003/10/31.html#a836">Replace and defend</A> via <A href="http://weblog.infoworld.com/udell/">Jon's Radio</A>]</P></BLOCKQUOTE> <P dir=ltr style="MARGIN-RIGHT: 0px">"Replace & Defend" is certainly a strategy that would have awakened the entire non Microsoft Developer world during the recent PDC event. I know these events are all about preaching to the choir (Windows only developers), but as someone who has worked with Microsoft technologies as an ISV since the late 80's there is something about this events announcements that leave me concerned. </P> <P dir=ltr style="MARGIN-RIGHT: 0px">Ironically these concerns aren't about the competitive aspects of their technology disruptions, but more along the lines of how Microsoft (I hope inadvertently) generates the kinds of sentiments echoed in the <A href="http://longhornblogs.com/scobleizer/posts/345.aspx#FeedBack">comments thread </A>from <A href="http://longhornblogs.com/">Scobles</A> recent <A href="http://longhornblogs.com/scobleizer/posts/345.aspx">"How to hate Microsoft"</A> post. As indicated in my response to this post, I don't believe Microsoft is as bad or evil as is instinctively assumed in many quarters, but I can certainly understand why they are hated by others which is really unfortunate, especially bearing in mind that they have done more good than harm to date (in my humble opinion) . </P> <P dir=ltr style="MARGIN-RIGHT: 0px">Anyway, back to my concerns post PDC which I break down as follows:</P> <OL dir=ltr> <LI> <DIV style="MARGIN-RIGHT: 0px">Disruptive assaults on existing standards with the only benefit being Microsoft platform centricity. <A href="http://weblog.infoworld.com/udell/2003/10/31.html#a836">Jon Udell addressed this in his "Replace and Defend" post </A>(which kicked of this post), and I see exactly what he sees here, and I don't see any reason for this approach whatsoever. Even if one of these standards was deficient what stops the Microsoft from addressing these deficiencies, and then should the W3C's standards acceptance and ratification process bogs things down at least let the industry know you gave it openness a chance but have to move on etc.. <BR><BR></DIV></LI> <LI> <DIV style="MARGIN-RIGHT: 0px">Gradual obsolescence of existing Microsoft standards which used to provide interfaces for 3rd party ISV partners, and replacing these with totally closed infrastructure implementations that bind to Microsoft products only. A good example is <A href="http://msdn.microsoft.com/longhorn/default.aspx?pull=/msdnmag/issues/04/01/WinFS/default.aspx">WinFS</A>, I believe in the unified data storage concept, <A href="http://www.openlinksw.com/blog/~kidehen/index.vspx?id=406">it's a vision that I've believed in for many years</A>, but there is no notion from any PDC presentation or Blog that I have read so far (I aggregate a serious number of feeds) that Microsoft is committed to an architectural strategy that enables 3rd party ISVs to hook their data stores and data sources into this storage infrastructure - it's simply about <A href="http://www.openlinksw.com/blog/~kidehen/index.vspx?id=407">Yukon (SQL Server)</A> and that's basically it.</DIV></LI></OL> <P style="MARGIN-RIGHT: 0px">WinFS needs to architecturally separate the <STRONG>System Provider</STRONG> from the <STRONG>Data Provider</STRONG> (pretty much the OLE-DB architecture) with Microsoft naturally providing reference System Provider (pretty much what was demonstrated at PDC) and Data Provider (ADO.NET, OLE DB, and ODBC) implementations. Third parties can choose to produce custom WinFS Service or Data Providers which serve their data access needs. It's impractical to want to force every non SQL Server customer over to SQL Server in order them to exploit WinFS, and I certainly hope this isn't the definitive strategy at Microsoft.</P>
HOWTO: Apache-PHP-ODBC on Mac OS X
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-10-24#399
2003-10-24T20:55:06Z
2006-06-22T08:56:58-04:00
<DIV class=Section1> <P><FONT face="Times New Roman"><SPAN style="FONT-SIZE: 12pt"><FONT size=2>There is a new </FONT><A href="http://www.iodbc.org/iodbc-phposxHOWTO.html"><FONT size=2>HOWTO document</FONT></A><FONT size=2> that addresses an area of frequent confusion on Mac OS X, which is how do you build PHP with an ODBC data access layer binding (</FONT><A href="http://www.iodbc.org/"><FONT size=2>iODBC</FONT></A><FONT size=2> variant) using Mac OS X Frameworks as opposed to Darwin Shared Libraries. </FONT></SPAN></FONT></P> <P><FONT face="Times New Roman"><SPAN style="FONT-SIZE: 12pt"></SPAN></FONT><FONT face="Times New Roman" size=2><SPAN style="FONT-SIZE: 12pt"><FONT size=2>This document basically brings clarity to both the Frameworks and Darwin Shared library approaches</FONT>.</SPAN></FONT></P></DIV>
A Virtuoso of a Server
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-10-23#395
2003-10-23T21:57:48Z
2006-06-22T08:56:58-04:00
<font size="2"> <p><a href="http://www.nwfusion.com/index.html">NETWORK WORLD</a> NEWSLETTER: MARK GIBBS ON WEB APPLICATIONS </p> <p><font size="2">Today's focus: A Virtuoso of a server</font></p> <p>By <a href="http://www.nwfusion.com/columnists/gibbs.html">Mark Gibbs</a></p> <p>One of the bigger drags of Web applications development is that building a system of even modest complexity is a lot like herding cats - you need a database, an applications server, an XML engine, etc., etc. And as they all come from different vendors you are faced with solving the constellation of integration issues that inevitably arise.</p> <p>If you are lucky, your integration results in a smoothly functioning system. If not, you have a lot of spare parts flying in loose formation with the risk of a crash and burn at any moment.</p> <p>An alternative is to look for all of these features and services in a single package but you'll find few choices in this arena.</p> <p>One that is available and looks very promising is OpenLink's Virtuoso (see links below).</p> <p>Virtuoso is described as a cross platform (runs on Windows, all Unix flavors, Linux, and Mac OS X) universal server that provides databases, XML services, a Web application server and supporting services all in a single package.</p> <p>OpenLink's list of supported standards is impressive and includes .Net, Mono, J2EE, XML Web Services (Simple Object Application Protocol, Web Services Description Language, WS-Security, Universal Description, Discovery and Integration), XML, XPath, XQuery, XSL-T, WebDav, HTTP, SMTP, LDAP, POP3, SQL-92, ODBC, JDBC and OLE-DB.</p> <p>Virtuoso provides an HTTP-compliant Web Server; native XML document creation, storage and management; a Web services platform for creation, hosting and consumption of Web services; content replication and synchronization services; free text index server, mail delivery and storage and an NNTP server.</p> <p>Another interesting feature is that with Virtuoso you can create Web services from existing SQL Stored Procedures, Java classes,</p> <p>C++ classes, and 'C' functions as well as create dynamic XML</p> <p>documents from ODBC and JDBC data sources.</p> <p>This is an enormous product and implies a serious commitment on the part of adopters due to its scope and range of services.</p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p><em>Virtuoso is enormous by virtue of its architectural ambitions, but actual disk requirements are</em></p></blockquote></font>
ODBC : The UNIX Story
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-08-15#239
2003-08-15T15:05:49Z
2006-06-22T08:56:58-04:00
<p>ODBC (Open DataBase Connectivity) remains an enigma technology to those who would potentially benefit the most from it. Unfortunately the common line of thought in the non Windows world is that <u>LAMPifying</u> applications is simply good enough -- LAMP</p>
Howl is Rendezvous for Windows and Linux
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-08-05#232
2003-08-05T19:18:55Z
2006-06-22T08:56:58-04:00
<p dir="ltr">Very interesting, we have basically ported Zeroconfig as released by Apple (in Open Source) too, and used it in both our <a href="http://www.openlinksw.com/virtuoso/whatis.htm">Virtuoso</a> 3.x and <a href="http://www.openlinksw.com/product.htm">UDA</a> 5.x products.</p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p><a href="http://www.swampwolf.com/products/">Howl</a> is Rendezvous for Windows and Linux. [via <a href="http://www.scripting.com/">Scripting News</a>]</p></blockquote> <p dir="ltr">In the case of UDA you can configure ODBC and JDBC consumable data source names that are hosted on the server. Users can nownbspsimply picknbspDSNs from anbspcombo box and they are ready to make connections to remote databases from any ODBC, JDBC, OLE DB, or ADO.NET application.nbspAnother benefit ofnbspZeroconfignbspis that it facilitates centralized server side configuration which further enhances our server side session rules book;nbspwhich serves all our Multi-Tier data access drivers.</p> <p dir="ltr">In the case of Virtuoso you are able to bind to pre-configured Virtuoso instances in exactly the same way.</p> <p dir="ltr">Our Zeroconfig support has beennbspimplemented across Solaris, AIX, Digital UNIX, IRIX, HP-UX amongst others, but this is a project of interest all the same, and we may end up contributing to this effort.</p>
Email: Killer App Or Just A Killer?
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-07-31#224
2003-07-31T18:28:28Z
2006-06-22T08:56:58-04:00
<p dir="ltr">The current state of e-mail is one of the travesties of the Internet in my opinion, the excerpt below pretty much sums this up"</p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p dir="ltr"><a href="http://techdirt.com/articles/20030730/2334203.shtml">Email: Killer App Or Just A Killer?</a> While many people consider email to be the "killer app" that brought the internet into homes and businesses, now some are saying that <a href="http://www.globetechnology.com/servlet/story/RTGAM.20030731.ujack0731/BNStory/Technology/">email has become annoying and costly</a>. The most obvious issue is with spam, but there are other things as well. Maintaining an email server is a pain, and keeping email free from viruses is an additional cost. For companies that monitor email (and there are more and more), that's yet another expense. Finally, since there are questions about email security, some companies are telling employees not to use email for sensitive material. Thus, for many companies, email is only useful for informal communications, and you can only find those messages once you wade through all the spam and viruses - or so this article would have you believe. It's really not <i>that</i> bad - and there are reasonable technology solutions that should be able to keep most companies afloat with minimal costs. Yes, it's annoying, but the benefits of having email certainly outweigh the annoyances associated with it. [via <a href="http://www.techdirt.com/">Techdirt</a>]</p></blockquote> <p dir="ltr">One of the reasons for e-mail enabling <a href="http://www.openlinksw.com/virtuoso/whatis.htm">Virtuoso</a> (circa. 2000) was to set the stage for addressing what I anticipated would ultimately become the Spam Monster. This is how the solution was envisioned.</p> <p dir="ltr">Build a Driver/Sink that could be attached to the SMTP Agents such as Sendmail, Excim, Exchange etc.. such that the mail received is actually stored in a DBMS Engine (in this case Virtuoso or an ODBC accessible database). Once the mail is in the database it is then possible for Triggers to handle filtering of the Mime headers and mail body (using regular experessions). The end result being that Spam and Virulent mails are already filtered prior to POP or IMAP retrieval.</p> <p dir="ltr">With the emergence of Bayesian Spam Filters and other Anti Spam solutions there remains a possibility for this pursuing the best of both worlds. Enhance the DB Engine via its extensions API (In the case of Virtuosowhich supports Python, Perl etc..), or enhance the Mail Driver/Sink by extending it in a similar manner (a little more work if extensibility isn't part of the original Mail Sink design). My preference is obviously to handle this at the database level so that the Bayesian spam filter becomes a Trigger on the table into which the mail is stored. </p> <p dir="ltr">With a database in the mix I pretty much have a rules based engine for e-mail and also a pretty flexible mechanism for dealing with false positives (nothing's perfect!) since they remain in the database too, but not automatically part of the IMAP or POP retrieval process.</p> <p dir="ltr">At the end of the day e-mail is data and we simply need to look at data </p> <div align="right"></div>
VSIP program free of charge
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-07-30#209
2003-07-30T21:46:48Z
2006-06-22T08:56:58-04:00
<p dir="ltr">Microsoft just made the <a href="http://www.vsipdev.com/">VSIP program free of charge</a>. Awesome.</p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p dir="ltr">[via <a href="http://radio.weblogs.com/0001011/">The Scobleizer Weblog</a>]</p></blockquote> <p>Now this is good news from Microsoft! This means that products like <a href="http://www.openlinksw.com/virtuoso/whatis.htm">Virtuoso</a> can now compete head-on with Yukon (on a level playing field when it arrives) as far as Visual Studio.NET integration goes. Hopefully I will no longer have to rant about any of the following:</p> <ol> <li>Missing Data Access Controls and Wizards for ODBC (we already have annbsp interesting Generic ADO.NET Provider en route to GA release)</li> <li>Tightly bound integration between Visual Studio.NET <a href="http://www.microsoft.com/presspass/press/2003/Jul03/07-29InnovationListPR.asp">("Whidbey" or "Orcas")</a>nbspand Yukon (next release of SQL Server), it's up to us (OpenLink) to get the same degree of integration re. Virtuoso (via VSIP), but most importantly Visual Studio's future will not be inextricably linked to Yukon's (let's hope the same applies to IE and Longhorn)</li></ol> <p>I wonder if the same degree of openness could extend to Web Matrix? That would be something indeed!</p>
Tim O'Reilly about network aware software
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-07-07#201
2003-07-07T20:51:35Z
2006-06-22T08:56:58-04:00
<p><a href="http://blog.bitflux.ch/p1077.html">Tim O'Reilly about network aware software</a> </p> <p>Tim O'Reilly wrote some thoughts about network aware software. Good sumup and nice ideas, why not only blogs should be net-aware (and where even blogs can be improved ;) ) </p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <div align="left">"<i>For the desktop, my personal vision is to see existing software instrumented to become increasingly web aware. It seems that Apple are doing a good job with this. (What does web aware mean for me? Being able to grok URIs, speaking WebDAV, and using open standard data formats.)</i>" -- <strong>Edd Dumbill</strong> </div> <div align="left"></div> <div align="left">[via <a href="http://blog.bitflux.ch/">Bitflux Blog</a>]</div></blockquote> <div align="left">I agree, but you do have to add Open Data Access formats (such as ODBC and to some degree JDBC) to this mix otherwise the you will need to create data for Open Standard Data Formats from sratch (tough for any enterprise irrespective of size).</div> <div align="left"></div> <div align="left">Tim O'Reilly added the following items to Edd's list:</div> <div align="left"> <ul> <li> <p>Rendezvous-like functionality for automatic discovery of and potential synchronization with other instances of the application on other computers. Apple is showing the power of this idea with iChat and iTunes, but it really could be applied in so many other places. For example, if every PIM supported this functionality, we could have the equivalent of "phonester" where you could automatically ask peers for contact information. Of course, that leads to guideline 2. </p></li></ul></div> <p>Another application is discovery of <a href="http://www.openlinksw.com/info/docs/uda50/mt/features.html#features">ODBC data sources</a>, and database servers. Rendezvous can also simply security and administration of data sources accessible by either one of these standards data access mechanisms. It can also apply to XML databases and data sources exposed by <a href="http://www.openlinksw.com/virtuoso/whatis.htm">XML Databases</a>.</p> <p></p> <p></p> <ul> <li>If you assume ad-hoc networking, you have to automatically define levels of access. I've always thought that the old Unix ugo (user, group, other) three-level permission system was simple and elegant, and if you replace the somewhat arbitrary "group" with "on my buddy list", you get something quite powerful. Which leads me to... <p></p> <p></p></li> <ul> <li>Buddy lists ought to be supported as a standard feature of many apps, and in a consistent way. What's more, our address books really ought to make it easy to indicate who is in a "buddy list" and support numerous overlapping lists for different purposes. <br></li></ul> <li>Every application ought to expose some version of its data as an XML feed via some well-defined and standard access mechanism. It strikes me that one of the really big wins that fueled the early web was a simple naming scheme: you could go to a site called www.foo.com, and you'd find a web server there. While it wasn't required, it made web addresses eminently guessable. We missed the opportunity for xml.foo.com to mean "this is where you get the data feed" but it's probably still possible to come up with a simple, consistent naming scheme. And of course, if we can do it for web sites, we also need to think about how to do it for local applications, since... </li></ul> <p>The very point I continue to make about Internet Points of Presence beingactual data acces points, in short these end points should be served by database serverprocesses. This is the very basis of <a href="http://www.openlinksw.com/virtuoso">Virtuoso</a>, the inevitability of this realization remains the undepinings of this product. There are other products out there that have some sense of this vision too, but there is a little snag (at least so far in my research efforts), and that is the tendency to create dedicated independent server per protocol (an ultimate integration, administration, and maintenance nightmare).</p> <ul> <li>We ought to be able to have the expectation that all applications, whether local or remote (web) will be set up for two-way interactions. That is, they can be either a source or sink of online data. So, for example, the natural complement to amazon's web services data feeds is data input (for example, the ability to comment on a book on your local blog, and syndicate the review via RSS to amazon's detail page for the book.) And that leads to: <p></p> <p></p></li> <li>We really need to understand who owns what, and come up with mechanisms that protect the legitimate rights of individuals and businesses to their own data, while creating the "liquidity" and free movement of data that will fuel the next great revolution in computer functionality. (I'm doing a panel on this subject at next week's Open Source Convention, entitled "<a href="http://conferences.oreillynet.com/cs/os2003/view/e_sess/4526">We Need a Bill of Rights for Web Services</a>.") <p></p> <p></p></li> <li>We need easy gateways between different application domains. I was recently in Finland at a Nokia retreat, and we used camera-enabled cell phones to create a mobile photoblog. That was great. But even more exciting was the ease with which I could send a photo from the phone not just to another phone but also to an email address. This is the functionality that enabled the blog gateway, but it also made it trivial to send photos home to my family and friends. Similarly, I often blog things that I hear on mailing lists, and read many web sites via screen-scraping enabled email lists. It would be nice to have cross-application gateways be a routine part of software, rather than something that has to be hacked on after the fact.</li></ul> <div align="left">The wish list is pretty much a clear articulation of key items that should matter most to decision makers (CTOs and CIOs) ; in particular those that continue to wrestle with the identification and isolation of relevantcomponentsfor their enterprisearchitectures. </div>
EXCEL spreadsheet to INFORMIX via ODBC
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-26#191
2003-06-26T23:33:17Z
2006-06-22T08:56:58-04:00
<p><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Since the inception of <a href="http://www.webopedia.com/TERM/O/ODBC.html">ODBC</a> (circa. late 1992) there have been two prime barriers to its total comprehension:</span></p> <ul> <li><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Misconception that it's inherently slow (a message originating from it's creator's, not Microsoft, but rather, the collection of DBMS vendor companies that actually created the <a href="http://www.rdg.opengroup.org/public/news/nov95/sqlaccgp.htm">SAG CLI </a>from which ODBC was derived)</span></li> <li><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><a href="http://ourworld.compuserve.com/homepages/Ken_North/odbcvend.htm">ODBC Drivers</a> are valueless (or at best a check in the box item) so bottom line they cost nothing and we (the DBMS vendors) shall offer them to you free of charge.</span></li></ul> <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The performance issues arenbspnow long forgotten (at least as far as <a href="http://www.openlinksw.com/">OpenLink Software's</a> contribution to ODBC goes). But the ODBC Drivers must be FREE as they offer little or no value problem rages on.</span></p> <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The <a href="http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&threadm=qeEJa.28465%24hI1.4255%40nwrddc01.gnilink.net&rnum=8&prev=/groups%3Fq%3Dopenlink%26hl%3Den%26lr%3D%26ie%3DUTF-8%26sa%3DN%26scoring%3Dd">Usenet posting </a>below pretty much sums up why I decided that OpenLink needednbspto get into the ODBC Driver business in the first place. We anticipated significant problems in the area of usability, configurability and security if all a driver had to offer was query fulfillment in the form of a result set. </span></p> <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The excerpt below shows an all too common dilemma with ODBC (should you reach rollout and put ODBC in the hands of information and knowledge workers):</span></p> <blockquote dir="ltr" style="MARGIN-RIGHT: 0px"> <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><em><font face="Courier New">nbspHi all, </font></em></span></p> <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><em><font face="Courier New">I set up an Excel spreadsheet to our production database through ODBC driver to get a report. Everything was working fine, and life was good until I found a little problem with the SQL tool in Excel. </font></em></span></p> <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><em><font face="Courier New">Normally, to get a report Excel will write a select statement according to criterias that the users input/ choose. It also allows anyone to Edit the select statement it writes in a little box. What I did was changing that select statement to delete/update statement. And it ran. </font></em></span></p> <p><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><em><font face="Courier New">What surprised me was that it actually ran the statement against the database and delete/update tables accordingly. This is not what we want. I have not been able to find any options to turn this thing off so that the user cannot edit the generated select SQL. </font></em></span></p> <p><font face="Verdana"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><em><font face="Courier New">I know all the permissions the user has are defined through the username that is defined in ODBC. </font></em></span><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><em><font face="Courier New">We don't want to change all the user permissions on the database side. Is there any other way ? MS Excel 2000 <a href="http://www.wikipedia.org/wiki/Informix">Informix IDS 9.30 </a>UC1 Dynix/ptx V4.5.3 Thanks N.</font></em> </span></font></p></blockquote> <p dir="ltr"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The user's ODBC usage requirements are unconventional to a database engine. What do I mean? Well relational databases fundamentally handle security on a <u>user or role basis</u>, and this security schemes can be applied to tables and rows, but it does nothing for this scenario. </span></p> <p dir="ltr"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The ODBC Drivers from OpenLink Software were built (in 1993 I might add)nbspwith thisnbspmiddleware predicamentnbspand more in mind. As you might imagine, most ODBC vendors will tell you to sort out the security either at thenbspdatabase end or the client application end.nbsp</span></p> <p dir="ltr"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><a href="http://www.openlinksw.com/main/product.htm">OurnbspDrivers </a>(the <a href="http://www.openlinksw.com/info/mtproduct.htm">Multi-Tier </a>variant) on the other hand enable you to configure a set of rules that will enforce read-only access on an application basis such that in this particular case when Excel is used the session is read-only irrespective of what exits MS Query. The rules can even enable read-write or read-only access to Excel (or other ODBC compliant application) and the basis of any combination of the following: username, client ip, machine alias, application, lan subnet, and any user definable profile (we call these domains).</span></p> <p dir="ltr"><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><a href="http://www.openlinksw.com/info/docs/whitepap.htm">Additional reading</a> as t</span><span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">his is only the tip of the iceberg.</span></p>
OpenLink Software Announces Updated ODBC Drivers, SDK, and Runtime Components for Mac OS X
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-25#186
2003-06-25T21:35:28Z
2006-06-22T08:56:58-04:00
<font size="3"><b>OpenLink demonstrates continuing commitment to cross-platform Open Database Connectivity.</b></font> <br /><br /> <p><font size="2"><b>Burlington, MA. 25 June 2003</b> - OpenLink Software, Inc., industry and technology leader in the development and deployment of secure, high-performance database connectivity drivers for ODBC</font></p>
<p>We all know that the only benchmark that matters, is the one that you run in-house using the systems that comprise your IT infrastructure. </p>
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-25#183
2003-06-25T13:27:02Z
2006-06-22T08:56:58-04:00
<P>We all know that the only benchmark that matters, is the one that you run in-house using the systems that comprise your IT infrastructure. </P> <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <P><A href="http://c.moreover.com/click/here.pl?r77267478">Apple's benchmarks under fire</A> ZDNet Jun 25 2003 7:13AM ET </P> <P>[via <A href="http://www.moreover.com/">Moreover - ZDNet</A>]</P></BLOCKQUOTE> <P>OpenLink Software has provided an Open Source benchmark utility that support Mac OS X, Linux, and UNIX. Thus, if mission critical database oriented performance is what is most relevant to your needs (as opposed to Photoshop) then simply download either one, or both of the following:</P> <P><A href="http://oplweb2.openlinksw.com:8080/download/util.vsp">OpenLink ODBC Bench</A> (you can test TPC-A and TPC-C like performance of the G5 and compare against other platforms) via ODBC)</P> <P><A href="http://oplweb2.openlinksw.com:8080/download/util.vsp">OpenLink JDBC Bench </A>(same thing using JDBC)</P>
The Missing Future
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-23#178
2003-06-23T16:37:41Z
2006-06-22T08:56:58-04:00
<a href="http://weblogs.asp.net/dbrowning/posts/9155.aspx">The Missing Future</a> <font face="Tahoma" size="2">On</font><a href="http://www.randomhacks.net/"><font face="Tahoma" size="2"> Random Hacks</font></a><font face="Tahoma" size="2">, Eric Kidd says: </font> <blockquote><font face="Tahoma" size="2">... that between MS and open source initiatives, there will be no room in the marketplace for small software companies. </font></blockquote> <p><a href="http://www.randomhacks.net/stories/the-missing-future.html"><font face="Tahoma" size="2">This is an interesting article</font></a><font face="Tahoma" size="2">, one that brings up many good points. Overall, I don't really agree with him. I think, for the most part, <b>commercial software companies will still be able to co-exist with MS and open source in the market place</b>. </font></p> <p><font face="Tahoma" size="2">Open source software is great, and I think its a great resource of applications for technologically savvy people (especially developers), but it's still not targeted at novice end users (like my mom). Will this change in the future? Probably to some extent, but <b>I still think open source will lag behind commercial software vendors due to lack of marketing and polishing</b>. </font></p> <p><font face="Tahoma" size="2">On the other hand, I do see a specific niche of the software development market dieing out in the next few years due to the open source movement: custom control vendors. These guys have been lucky for the past decade because most development shops don't want to spend the time writing the next cool button bar, but many developers on their own time love this kind of development. Just look at </font><a href="http://www.codeproject.com/"><font face="Tahoma" size="2">Code Project</font></a><font face="Tahoma" size="2">. Anytime we need a control for one of our apps, </font><a href="http://www.codeproject.com/"><font face="Tahoma" size="2">Code Project</font></a><font face="Tahoma" size="2"> is the first place we go. Why? Well, not only do we get great controls, we get the source! This way, if something is screwed up (which is has been), we can fix the bug and move on (which we do [and send it to the control developer]). </font></p> <p><font face="Tahoma" size="2">BTW, if anyone thinks that a small development shop can't exist when competing against the likes of MS and open source, check out </font><a href="http://www.fogcreek.com/"><font face="Tahoma" size="2">fog creek software</font></a><font face="Tahoma" size="2">. <a href="http://www.joelonsoftware.com/">Joel </a>has managed to create a <u>profitable</u> software company, that sells a few great products, make a little bit of money <b><em>and</em> provide his developers offices</b>. </font></p> <p><font face="Tahoma"><font size="2"><font color="#000080"><b>One day maybe I'll be fortunate enough to work for Joel!</b></font></font></font></p> <p>[via <a href="http://weblogs.asp.net/">WebLogs @ ASP.NET</a>]</p> <div><a href="http://www.openlinksw.com">OpenLink Software</a> has been able to build a profitable business selling ODBC Drivers against a backdrop of Open Source and Free commercial alternatives. Now this is all well and good if decision makers understand our value proposition</div>
Open Database Connectivity for Mac OS X
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-23#177
2003-06-23T15:37:38Z
2006-06-22T08:56:58-04:00
<P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"><A href="http://www.macdevcenter.com/pub/a/mac/2003/06/20/odbc.html">Open Database Connectivity for Mac OS X</A></SPAN></P> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">It continues to amaze me that the fundamental implications of corporate data access remains misunderstood by all parties in the ITsphere. How can any organization afford to be ambivalent about where data is stored, and their ability to transform this data into information and knowledge (ultimate competitive advantage)? Data is the most valuable company asset (we even had data in the enterprise before computers!).</SPAN></P> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Mac OS X is attempting to make a serious push into the enterprise, but how can this be taken seriously if solving one of the biggest problems in the enterprise today isn't a flagship item driving the enterprise marketing strategy? The excerpt below simply sums this up:</SPAN></P> <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">One of the new, albeit virtually undocumented features included in Jaguar is ODBC, or Open Database Connectivity. ODBC allows programs to connect to databases from different vendors using the same set of connectivity protocols. This allows for simplified database programming as well as database access from programs that normally would not allow such access. For instance, with ODBC you can use Excel to get data from MySQL, or you can use FileMaker to get data from Oracle. </SPAN></P> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">From article titled <A href="http://www.macdevcenter.com/pub/a/mac/2003/06/20/odbc.html"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'">Open Database Connectivity in Jaguar</SPAN></A> by <A href="http://www.macdevcenter.com/pub/au/1236"><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'">Andrew Anderson</SPAN></A></SPAN></P> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"></SPAN><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Open Database Connectivity is the only mechanism today that will enable any application to connect to any database without compromising choices across the following lines: Operating System, Programming Language, Desktop Productivity Tools, and Database Engine. All alternatives fail in one of the listed areas, with the ultimate destination being the painful realization that you are down a technology cul-de-sac (and these cost money via integration and data access quagmires). <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P></BLOCKQUOTE> <P> </P>
What's new in Web Matrix ?
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-18#282
2003-06-18T12:02:22Z
2006-06-22T08:56:58-04:00
<P>I had been anticipating the release of Web Matrix 2.0, but was pretty disappointed with the blatant attempts to lock users into SQL Server and ACCESS (of course I know that manual imports are possible re. my .net provider for non Microsoft databases, but that's beside the point). From the feature list:</P> <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <P><STRONG>Easy Data UI Generation</STRONG>. Web Matrix makes it easy to create data bound pages without writing code. Drop SQL/MSDE or Access tables on your page to create data-bound grids, or start with Data Page templates for reports or Master/Detail pages. Code builders help you generate code to select, insert, update and delete SQL/MSDE or Access data. <BR><FONT face=Verdana size=2> </FONT>[via <A href="http://weblogs.asp.net/">WebLogs @ ASP.NET</A>]</P></BLOCKQUOTE> <DIV>It only makes it easy for two databases which are both Microsoft owned? What really baffles me is why they don't use ADO.NET, by the way this is their own data abstraction technology. The same approach has also been applied to InfoPath and this is certainly a disturbing trend for unsuspecting end-users, developers, systems architects, and decision makers. Before you know it you lose your database choices. </DIV> <DIV> </DIV> <DIV>Could this be an oversight on the part of Microsoft? I don't think so somehow, we are taking a very interesting journey here from database independence to database specificity ( ODBC->OLEDB-ADO.NET-[SQL Server|Acces] ), all in a quest to covertly reduce choices (I think I've seen this movie before! And I might have to rewrite the script).</DIV> <DIV> </DIV>
Ingres - A Forgotten Database, the untold story
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-17#279
2003-06-17T11:18:57Z
2006-06-22T08:56:58-04:00
<P><A href="http://www.it-director.com/article.php?articleid=10951">Ingres - A Forgottent Database The Untold Story</A></P> <P><EM>Ingres (technically, Advantage Ingres Enterprise) is, arguably, the forgotten database. There used to be five major databases: Oracle, DB2, Sybase, Informix and Ingres. Then along came Microsoft and, if you listened to most press comment (or the lack of it), you would think that there were only two of these left, plus SQL Server</EM>. [From <A href="http://www.it-director.com/article.php?articleid=10951">IT-Director</A>]</P> <BLOCKQUOTE dir=ltr style="MARGIN-RIGHT: 0px"> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Oracle, Microsoft, and IBM would certainly like the illusion of a 3 horse race, as this is the only way they can induce Ingres, Informix, and Sybase users to jump ship, and this, even though database migrations are by far the most risk prone and problematic aspects of any IT infrastructure. <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p></o:p></SPAN></P> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Here is the interesting logic from the self-made big three, if you want to take advanatage of new paradigms and technologies such as XML, Web Services, and anything else in the pipeline you have to move all your data out of these databases, and then get all the mission critical applications re-associated with one of these databases, and by the way when you do so it is advisable that you use native interfaces (so that sometime in the future you have no chance whatsoever of repeating this folly at their expense).<o:p></o:p></SPAN></P> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The simple fact of the matter (which the self-made big three do not want you to know) is that you can put ODBC, JDBC, even platform specific data access APIs such as OLE DB and ADO.NET atop any of these databases, and then explore and exploit the benefits of new technologies and paradigms as long as the tool pool supports one of more of these standards.<o:p></o:p></SPAN></P> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">Unfortunately the no-brainer above appears to be the more difficult of the choices before decision makers. In other words, many would rather dig themselves into a deeper hole (unknowingly i can only presume) that ultimately leads to technology lock-in.<o:p></o:p></SPAN></P> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">The biggest challenge before any RDBMS based infrastructure today isn't which of the self-made big three to migrate to wholesale, rather, how to make progressive use of the pool of disparate applications, and application databases that proliferate the enterprise. <o:p></o:p></SPAN></P> <P><SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: Arial">This is another way of understanding the burgeoning market for Virtual Databases, which in my opiion present the new frontier in database technology.<o:p></o:p></SPAN></P> <P> </P></BLOCKQUOTE>
How Databases Changed The World
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-09#266
2003-06-09T09:28:17Z
2006-06-22T08:56:58-04:00
<p><a href="http://searchdatabase.techtarget.com/bestWebLinks/0,289521,sid13_tax281575,00.html"><b>How Databases Changed The World</b></a> by Tim DiChiara, Site Editor (<a href="http://www.searchdatabase.com">SearchDatabase.com</a>) </p><p>How did the database industry get started? How has it changed the face of business? What were the key milestones, the big obstacles and the lessons learned? I recently came across an interesting panel discussion addressing these very issues, featuring many of the database pioneers and leaders of the last 30 years:</p><a href="http://en.wikipedia.org/wiki/Chris_Date">Chris Date</a><br /><a href="http://www.computerhistory.org/events/lectures/db_02102003/edelstein/">Herb Edelstein</a> <br /><a href="http://www.computerhistory.org/events/lectures/db_02102003/epstein/">Bob Epstein</a> (<a href="http://en.wikipedia.org/wiki/Sybase">Sybase</a> who shared code with Microsoft for remarketing on SQL Server on OS/2 which inevitably lead to the <a href="http://en.wikipedia.org/wiki/Microsoft_SQL_Server">Microsoft SQL Server</a> we know today)<br /><a href="http://www.oracle.com/corporate/pressroom/html/kjacobs.html">Ken Jacobs</a> (<a href="http://en.wikipedia.org/wiki/Oracle_database">Oracle</a>'s Dr. DBA)<br /><a href="http://www.witi.com/center/witimuseum/halloffame/2004/pselinger.php">Pat Selinger </a> (<a href="http://en.wikipedia.org/wiki/DB2">DB2</a> precursor called System R) <br /><a href="http://en.wikipedia.org/wiki/Informix">Roger Sippl</a> (<a href="http://en.wikipedia.org/wiki/Informix">Informix</a>)<br /><a href="http://en.wikipedia.org/wiki/Michael_Stonebraker">Michael Stonebraker</a> (<a href="http://en.wikipedia.org/wiki/Ingres">Ingres</a>, <a href="http://en.wikipedia.org/wiki/PostgreSQL">Postgres</a>, and <a href="http://mariposa.cs.berkeley.edu/about.html">Mariposa</a>)<br /><br />The event is available via streaming <a href="http://www.computerhistory.org/events/lectures/db_02102003/">video</a> and was recorded in February at the Computer History Museum in Mountain View, California. After a chatty and lengthy (45 minutes!) introduction only interesting to hardcore insiders, you can see Chris Date waxing eloquent about Ted Codd (complete with quotes from Shakespeare, no less), Herb Edelstein waxing eloquent about Chris Date, and Michael Stonebraker at his geeky best. There's also interesting trivia about the beginnings of SQL, the role of INGRES, why the relational model will stand the test of time and some friendly Oracle and IBM bashing (and Microsoft and Sybase and...). I urge all you data management pros interested in broadening your knowledge of the field to check it out! If you're still not satiated, don't forget about our collection of backgrounders about the DBMS and the data management industry. <a href="index.vspx?tag=sql" rel="tag" style="display:none;">sql</a><a href="index.vspx?tag=rdbms" rel="tag" style="display:none;">rdbms</a><a href="index.vspx?tag=database" rel="tag" style="display:none;">database</a>
Borland, Microsoft Move Closer on Databases
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-02#352
2003-06-02T23:49:19Z
2006-06-22T08:56:58-04:00
<A href="http://demo2.usnet.private:8890/blog/kidehen@openlinksw.com/blog/index.vsp?date=2003-06-02#81">Borland, Microsoft Move Closer on Databases</A> <P><A href="http://redir.internet.com/rss/prod-news/www.internetnews.com/infra/article.php/2215361">Borland, Microsoft Move Closer on Databases</A> The two competitors put differences aside to push a new environment on the .NET Framework. [via <A href="http://ipw.internet.com/news.html">Internet Product News</A>]</P> <P><EM>Ah! Now I get it, let's be database specific by bundling developer copies of all the supported databases. So we get one really huge product simply becuase we don't realize that ADO.NET pretty much ensures some degree of DB independence (ODBC delivers the real thing for SQL. but that's old hat! Not!).</EM></P> <P><EM></EM> </P> <P> </P> <DIV></DIV> <DIV align=right>[via <A href="http://demo2.usnet.private:8890/blog/kidehen@openlinksw.com/blog">Kingsley Idehen's Weblog</A>] <DIV></DIV></DIV>
Borland, Microsoft Move Closer on Databases
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-06-02#351
2003-06-02T17:37:45Z
2006-06-22T08:56:58-04:00
<P><A href="http://redir.internet.com/rss/prod-news/www.internetnews.com/infra/article.php/2215361">Borland, Microsoft Move Closer on Databases</A> The two competitors put differences aside to push a new environment on the .NET Framework. [via <A href="http://ipw.internet.com/news.html">Internet Product News</A>]</P> <P><EM>Ah! Now I get it, let's be database specific by bundling developer copies of all the supported databases. So we get one really huge product simply becuase we don't realize that ADO.NET pretty much ensure some degree of DB independence (ODBC delivers the real thing for SQL. but that's old hat! Not).</EM></P> <P><EM></EM> </P> <P> </P> <DIV></DIV>
Web-enable Your Business Intelligence Using XML/A and ASP.NET
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-29#338
2003-05-29T20:01:48Z
2006-06-22T08:56:58-04:00
0
Web-enable Your Business Intelligence Using XML/A and ASP.NET
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-29#66
2003-05-29T20:01:48Z
2006-06-22T08:56:58-04:00
<P>Don't you sometimes wish that accessing database data were easier, and you didn't have to deal with such things as OLE DB, ODBC, and JDBCthat you could use just one uniform approach to access the data regardless of the location and type? </P> <P><EM>Yes, but I don't see how any of the data access mechanisms listed have anything to do with the problem as each serves a different application domain.</EM></P> <P>Well, guess what? You won't have to wait too much longer to see this dream become reality. All major vendors are not only working on this issue seriously but have already started releasing SDKs for exactly this purpose. The point of commonality between them is XML. Like it or not, XML is becoming a standard part of programmers' lives because it's simple and easy to understand structure make it a suitable format for transferring data between disparate applications and platforms. But the real power of XML lies in its ability to not only extend itself, but also define itself.<BR><BR><EM>This is all well and good but it is XML, yes a uniforming technology, but the opening paragraph undermines the pont! </EM></P> <P><EM>XML For Analysis is just another addition to the pool of data access mechanisms, it is an XML./SOAP based data access mechanism for Tabular and Mulitdimensional Data and without our implementation XMLA simply offers little to anyone trying to get at tabular data (SQL Data) as many of the current implementers fall into the OLAP camp, and there is no standard query language for persistenf CUBES (MDX from Microsoft is de facto at best). Thus, without Virtuoso tabular data (where the real data actually resides) is out of the picture.</EM></P> <P><EM>So we say goodbye to ODBC, JDBC, OLE DB to get what exactly? From our perspective, another showcase opportunity, but for the innocent readers of this article I haven't got the faintest idea.</EM></P> <P><EM></EM> </P>
<big>SQL Injection FAQ </big>
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#319
2003-05-21T22:27:45Z
2006-12-04T08:41:24.000003-05:00
<p align="center"><font color="#0080c0" size="2"><big><strong><big>SQL Injection FAQ </big></strong></big></font></p> <p align="center"> </p><p align="center"><strong><font color="red"></font></strong></p><strong><font color="red"> </font></strong><a href="http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&tabid=3"><strong><font color="red"><a href="http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&;tabid=3">http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&;tabid=3</a><br /></font></strong></a><strong><font color="red"> </font></strong> <br /> <div align="center"> <center> <table width="80%" border="0"> <tbody> <tr> <td width="100%"> <p><big><strong><font size="2">Are other SQL Servers (Sybase, Oracle, DB2) subject to SQL injection?</font></strong></big></p> <p><font size="2">Yes, to varying degrees. Here is a site that can get you more details on some of the issues with other SQL Servers. </font><a href="http://www.owasp.org/" target="_blank"><a href="http://www.owasp.org/"><font size="2">http://www.owasp.org</font></a></a></p><font size="2"><b>What is SQL Injection and why is all this information not included in the regular FAQ?</b> </font> <p><font size="2">SQL Injection is simply a term describing the act of passing SQL code into an application that was not intended by the developer.  Since this topic is not specifically restricted to SQL Server it is not included in the normal FAQ. In fact, much of the problems that allow SQL injection are not the fault of the database server per-se but rather are due to poor input validation and coding at other code layers. However, due to the serious nature and prevalence of this problem I feel its inclusion in a thorough discussion of SQL Server security is warranted.</font></p> <p><big><strong><font size="2">What causes SQL Injection?</font></strong></big></p> <p><font size="2">SQL injection is usually caused by developers who use "string-building" techniques in order to execute SQL code. For example, in a search page, the developer may use the following code to execute a query (VBScript/ASP sample shown):</font></p> <p><font face="Courier New" color="#ff0000" size="2">Set myRecordset = myConnection.execute("SELECT * FROM myTable WHERE someText ='" & request.form("inputdata") & "'")</font></p> <p><font size="2">The reason this statement is likely to introduce an SQL injection problem is that the developer has made a classic mistake - poor input validation. We are trusting that user has not entered something malicious - something like the innocent looking single quote ('). Let's consider what would happen if a user entered the following text into the search form:</font></p> <p><font size="2">' exec master..xp_cmdshell 'net user test testpass /ADD' --</font></p> <p><font size="2">Then, when the query string is assembled and sent to SQL Server, the server will process the following code:</font></p> <p><font face="Courier New" color="#ff0000" size="2">SELECT * FROM myTable WHERE someText ='' exec master..xp_cmdshell 'net user test testpass /ADD'--'</font></p> <p><font size="2">Notice, the first single quote entered by the user closed the string and SQL Server eagerly executes the next SQL statements in the batch including a command to add a new user to the local accounts database. If this application were running as 'sa' and the MSSQLSERVER service is running with sufficient privileges we would now have an account with which to access this machine. Also note the use of the comment operator (--) to force the SQL Server to ignore the trailing quote placed by the developer's code.</font></p> <p><a href="http://www.sqlsecurity.com/faq-inj.asp"><font size="2">More</font></a></p> <p><em><font color="#000000" size="2">Very intresting that these are all Native Interface based exploits. So the security issue isn't ODBC, JDBC, ADO.NET, or OLE DB specific (although they certainly increase the potential damage that can be unleashed via metadata analysis en route to that huge Cartesian Product ; the mother of all Exploits!). Our Session Rules Book was devised in 1993 with many of these issues in mind, and to this date there are no other ODBC/JDBC/OLE DB products out there that even come close to acknowledging this reality.</font></em></p></td></tr></tbody></table></center></div>
<big>SQL Injection FAQ </big>
http://www.openlinksw.com:443/blog/kidehen@openlinksw.com/blog/?date=2003-05-21#48
2003-05-21T22:27:45Z
2006-06-22T08:56:58-04:00
<P align=center><FONT color=#0080c0 size=2><BIG><STRONG><BIG>SQL Injection FAQ </BIG></STRONG></BIG></FONT></P> <P align=center> <P align=center><STRONG><FONT color=red></FONT></STRONG></P><STRONG><FONT color=red> </FONT></STRONG><A href="http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&tabid=3"><STRONG><FONT color=red><A href="http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&;tabid=3">http://www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&;tabid=3</A><BR></FONT></STRONG></A><STRONG><FONT color=red> </FONT></STRONG> <BR> <DIV align=center> <CENTER> <TABLE width="80%" border=0> <TBODY> <TR> <TD width="100%"> <P><BIG><STRONG><FONT size=2>Are other SQL Servers (Sybase, Oracle, DB2) subject to SQL injection?</FONT></STRONG></BIG></P> <P><FONT size=2>Yes, to varying degrees. Here is a site that can get you more details on some of the issues with other SQL Servers. </FONT><A href="http://www.owasp.org/" target=_blank><A href="http://www.owasp.org/"><FONT size=2>http://www.owasp.org</FONT></A></A></P><FONT size=2><B>What is SQL Injection and why is all this information not included in the regular FAQ?</B> </FONT> <P><FONT size=2>SQL Injection is simply a term describing the act of passing SQL code into an application that was not intended by the developer. Since this topic is not specifically restricted to SQL Server it is not included in the normal FAQ. In fact, much of the problems that allow SQL injection are not the fault of the database server per-se but rather are due to poor input validation and coding at other code layers. However, due to the serious nature and prevalence of this problem I feel its inclusion in a thorough discussion of SQL Server security is warranted.</FONT></P> <P><BIG><STRONG><FONT size=2>What causes SQL Injection?</FONT></STRONG></BIG></P> <P><FONT size=2>SQL injection is usually caused by developers who use "string-building" techniques in order to execute SQL code. For example, in a search page, the developer may use the following code to execute a query (VBScript/ASP sample shown):</FONT></P> <P><FONT face="Courier New" color=#ff0000 size=2>Set myRecordset = myConnection.execute("SELECT * FROM myTable WHERE someText ='" & request.form("inputdata") & "'")</FONT></P> <P><FONT size=2>The reason this statement is likely to introduce an SQL injection problem is that the developer has made a classic mistake - poor input validation. We are trusting that user has not entered something malicious - something like the innocent looking single quote ('). Let's consider what would happen if a user entered the following text into the search form:</FONT></P> <P><FONT size=2>' exec master..xp_cmdshell 'net user test testpass /ADD' --</FONT></P> <P><FONT size=2>Then, when the query string is assembled and sent to SQL Server, the server will process the following code:</FONT></P> <P><FONT face="Courier New" color=#ff0000 size=2>SELECT * FROM myTable WHERE someText ='' exec master..xp_cmdshell 'net user test testpass /ADD'--'</FONT></P> <P><FONT size=2>Notice, the first single quote entered by the user closed the string and SQL Server eagerly executes the next SQL statements in the batch including a command to add a new user to the local accounts database. If this application were running as 'sa' and the MSSQLSERVER service is running with sufficient privileges we would now have an account with which to access this machine. Also note the use of the comment operator (--) to force the SQL Server to ignore the trailing quote placed by the developer's code.</FONT></P> <P><A href="http://www.sqlsecurity.com/faq-inj.asp"><FONT size=2>More</FONT></A></P> <P><EM><FONT color=#000000 size=2>Very intresting that these are all Native Interface based exploits. So the security issue isn't ODBC, JDBC, ADO.NET, or OLE DB specific (although they certainly increase the potential damage that can be unleashed via metadata analysis en route to that huge Cartesian Product ; the mother of all Exploits!). Our Session Rules Book was devised in 1993 with many of these issues in mind, and to this date there are no other ODBC/JDBC/OLE DB products out there that even come close to acknowledging this reality.</FONT></EM></P></TD></TR></TBODY></TABLE></CENTER></DIV>