<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>AI3:::Adaptive Information &#187; Ontologies</title>
	<atom:link href="http://www.mkbergman.com/category/ontologies/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mkbergman.com</link>
	<description>Mike Bergman on the semantic Web and structured Web</description>
	<lastBuildDate>Tue, 24 Jan 2012 15:52:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>An Ontologies Architecture for Ontology-driven Apps</title>
		<link>http://www.mkbergman.com/989/an-ontologies-architecture-for-ontology-driven-apps/</link>
		<comments>http://www.mkbergman.com/989/an-ontologies-architecture-for-ontology-driven-apps/#comments</comments>
		<pubDate>Mon, 05 Dec 2011 18:01:41 +0000</pubDate>
		<dc:creator>Mike Bergman</dc:creator>
				<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[#data]]></category>
		<category><![CDATA[#data integration]]></category>
		<category><![CDATA[#semweb]]></category>
		<category><![CDATA[Ontology]]></category>
		<category><![CDATA[rdf]]></category>
		<category><![CDATA[Semantic Web]]></category>

		<guid isPermaLink="false">http://www.mkbergman.com/?p=989</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=An Ontologies Architecture for Ontology-driven Apps&amp;rft.aulast=Bergman&amp;rft.aufirst=Mike&amp;rft.subject=Ontologies&amp;rft.subject=Open Semantic Framework&amp;rft.source=AI3:::Adaptive Information&amp;rft.date=2011-12-05&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.mkbergman.com/989/an-ontologies-architecture-for-ontology-driven-apps/&amp;rft.language=English"></span>
Ontology Modularization and Roles within an OSF Instance For some time now, Structured Dynamics (SD) has been touting the unique advantages of ODapps, or ontology-driven applications [1]. ODapps are modular, generic software applications designed to operate in accordance with the specifications contained in one or more ontologies. The relationships and structure of the information driving [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=An Ontologies Architecture for Ontology-driven Apps&amp;rft.aulast=Bergman&amp;rft.aufirst=Mike&amp;rft.subject=Ontologies&amp;rft.subject=Open Semantic Framework&amp;rft.source=AI3:::Adaptive Information&amp;rft.date=2011-12-05&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.mkbergman.com/989/an-ontologies-architecture-for-ontology-driven-apps/&amp;rft.language=English"></span>
<h2><a><img title="Open Semantic Framework" src="../wp-content/themes/ai3/images/2010Posts/triple_90.png" alt="Open Semantic Framework" align="left" /></a> Ontology Modularization and Roles within an OSF Instance</h2>
<p>For some time now, <a href="http://structureddynamics.com/">Structured Dynamics</a> (SD) has been touting the unique advantages of ODapps, or <em><a href="http://techwiki.openstructs.org/index.php/Ontology-driven_Applications"> ontology-driven applications</a></em> <a href="#arch1">[1]</a>. ODapps are modular, generic software applications designed to operate in accordance with the specifications contained in one or more ontologies. The relationships and structure of the information driving these applications are based on the standard functions and roles of ontologies (namely as domain ontologies), as supplemented by UI and instruction sets and validations and rules. When these supplements are added to standard ontology functions, we collectively term them <em><a href="http://techwiki.openstructs.org/index.php/Adaptive_Ontology_Concept"> adaptive ontologies</a></em><a href="#arch2"> [2]</a>.</p>
<p>To further the discussion around ODapps, today we are publishing two new documents, using the semantic technology foundation of the <a href="http://openstructs.org/open-semantic-framework">open semantic framework</a>. OSF is a comprehensive, open source stack of SD and external tools that provides a turnkey environment for enterprises to adopt semantic technologies and approaches. OSF has been designed from the ground up to be an ontology-driven application framework.</p>
<p>The first new document, posted on Fred Giasson&#8217;s blog, provides a detailed discussion of the <a href="http://fgiasson.com/blog/index.php/2011/12/05/role-and-use-of-ontologies-in-the-open-semantic-framework">dozen or so roles ontologies can play within an OSF installation</a>. Fred&#8217;s document is geared more to specific properties and configurations useful to deploy this framework; that is, the &#8220;drivers&#8221; in an ODapp setting. The second new document &#8212; this one &#8212; is more of a broad overview of the modularization and architecture of the constituent ontologies that make up an OSF installation. Both documents have also been posted to SD&#8217;s open content <a href="http://techwiki.openstructs.org/index.php/Main_Page">TechWiki</a> <a href="#arch3">[3]</a>, which now has about 360 technical articles on understanding and implementing an OSF installation, importantly including its ontologies.</p>
<h3>OSF Constituent Ontologies</h3>
<p>As presently configured, an OSF installation may typically utilize most or all of the following internal ontologies:</p>
<ul>
<li>The <a title="SCO Ontology" href="http://techwiki.openstructs.org/index.php/SCO_Ontology">SCO Ontology</a> (Semantic Component Ontology)</li>
<li>The <a title="WSF Ontology" href="http://techwiki.openstructs.org/index.php/WSF_Ontology">WSF Ontology</a> (Web Service Framework Ontology)</li>
<li>The <a title="AGGR Ontology" href="http://techwiki.openstructs.org/index.php/AGGR_Ontology">AGGR Ontology</a> (Aggregation Ontology)</li>
<li>The <a title="IrON Ontology" href="http://techwiki.openstructs.org/index.php/IrON_Ontology">irON Ontology</a> (Instance Record and Object Notation Ontology)</li>
<li>One or more <a title="Domain Ontologies in OSF" href="http://techwiki.openstructs.org/index.php/Domain_Ontologies_in_OSF">domain ontologies</a>, to capture the concepts and relationships for the purposes of a given OSF installation, and</li>
<li>Possibly <a title="UMBEL: Overview and Relation to OSF" href="http://techwiki.openstructs.org/index.php/UMBEL:_Overview_and_Relation_to_OSF">UMBEL</a> (optional) or other upper-level concept ontologies, used for linkages to external systems.</li>
</ul>
<p>(<strong>Note:</strong> the internal wiki links to each of these ontologies also provides links to the actual ontology specifications on Github.)</p>
<p>Depending on the specific OSF installation, of course, multiple external ontologies may also be employed. Some of the common external ones used in an OSF installation are described by the <a title="Common External Ontologies" href="http://techwiki.openstructs.org/index.php/Common_External_Ontologies">external ontologies</a> document on the TechWiki. These external ontologies are important &#8212; indeed essential in order to ensure linkage to the external world &#8212; but have little to do with internal OSF control structures. That is why the rest of this discussion is focused on internal ontologies only.</p>
<h3>The OSF Ontologies Architecture</h3>
<p>The actual relationships between these ontologies are shown in the following diagram. Note that the ontologies tend to cluster into two main areas:</p>
<ol>
<li>Content (or domain) ontologies, which tend to embody more of the traditional ontology functions such as information interoperability. inferencing, reasoning and conceptual and knowledge capture of the applicable domain; and</li>
<li>Administrative ontologies, which govern internal application use and user interface interactions.</li>
</ol>
<p>This ontology architecture supports the broader open semantic framework:</p>
<div><a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111205_osf_ontologies.png"> <img class="center_ok" style="border: 0px solid; width: 600px; height: 464px;" title="OSF Ontologies Architecture" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111205_osf_ontologies.png" alt="OSF Ontologies Architecture" /></a></div>
<p style="font-style: italic; text-align: center;"><small>(click for <a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111205_osf_ontologies.png"> full size</a>)</small></p>
<p>The WSF ontology plays a special role in that it sets the overall permission and access rights to the other components and ontologies. The UMBEL ontology (or other upper-level ontologies that might be chosen) is also optional. Such vocabularies are included when interoperability with external applications or knowledge bases is desired.</p>
<h3>Summary of OSF Roles</h3>
<p>We can further disaggregate these ontology splits with respect to the specific dozen or so ontology roles discussed in Fred&#8217;s complementary piece on <a href="http://fgiasson.com/blog/index.php/2011/12/05/role-and-use-of-ontologies-in-the-open-semantic-framework">ontology roles in OSF</a>. These dozen roles are shown by the rows with interactions marked for the various ontologies:</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="4">
<tbody>
<tr>
<td style="vertical-align: top; font-weight: bold; background-color: #ffffcc;"> </td>
<td style="vertical-align: top; font-weight: bold; background-color: #ffffcc;">S <br /> C <br /> O</td>
<td style="vertical-align: top; font-weight: bold; background-color: #ffffcc;">A <br /> G <br /> G <br /> R</td>
<td style="vertical-align: top; font-weight: bold; background-color: #ffffcc;">W <br /> S <br /> F</td>
<td style="vertical-align: top; font-weight: bold; background-color: #ffffcc;">i <br /> r <br /> O <br /> N</td>
<td style="vertical-align: top; font-weight: bold; background-color: #ffffcc;">D <br /> o <br /> m <br /> a <br /> i <br /> n</td>
<td style="vertical-align: top; font-weight: bold; background-color: #ffffcc;">U <br /> M <br /> B <br /> E <br /> L</td>
</tr>
<tr>
<td>Define record descriptions</td>
<td> </td>
<td> </td>
<td> </td>
<td>♦</td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Inform interface displays</td>
<td> </td>
<td> </td>
<td> </td>
<td>♦</td>
<td>♦</td>
<td>♦</td>
</tr>
<tr>
<td>Integrate different data sources</td>
<td> </td>
<td> </td>
<td> </td>
<td>♦</td>
<td>♦</td>
<td>♦</td>
</tr>
<tr>
<td>Define component selections</td>
<td>♦</td>
<td> </td>
<td> </td>
<td>♦</td>
<td>♦</td>
<td>♦</td>
</tr>
<tr>
<td>Define component behaviors</td>
<td>♦</td>
<td>♦</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Guide template selection</td>
<td> </td>
<td> </td>
<td> </td>
<td>♦</td>
<td>♦</td>
<td>♦</td>
</tr>
<tr>
<td>Provide reasoning and inference</td>
<td> </td>
<td> </td>
<td> </td>
<td>♦</td>
<td>♦</td>
<td>♦</td>
</tr>
<tr>
<td>Guide content filtering (with and without inference)</td>
<td> </td>
<td>♦</td>
<td>♦</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Tag concepts in text documents</td>
<td> </td>
<td> </td>
<td> </td>
<td>♦</td>
<td>♦</td>
<td>♦</td>
</tr>
<tr>
<td>Help organize and navigate Web portals</td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>♦</td>
<td>♦</td>
</tr>
<tr>
<td>Manage datasets and ontologies</td>
<td> </td>
<td> </td>
<td>♦</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>Set access permissions and registrations</td>
<td> </td>
<td> </td>
<td>♦</td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</tbody>
</table>
</div>
<p>One of the unique aspects of adaptive ontologies is their added role in informing user interfaces and supporting specific semantic tools. Note, for example, the role of the content ontologies in informing interface displays, as well as their use in tagging concepts (via information extraction). These additional roles are the reason that these ontologies are shown as straddling both content and administrative functions in the first figure.</p>
<p>See Fred&#8217;s piece to learn more about these dozen roles.</p>
<h3>Interactions Are More Complex than Arrows</h3>
<p>Naturally, a simple drawn arrow between ontologies (first figure) or a checkmark on a matrix (table above) can hide important details of how these interactions between ontologies and components actually work. In an <a href="../948/ontology-driven-apps-using-generic-applications/"> earlier article</a>, we discussed how the whole workflow takes place between users and user interface selections affecting the types of data returned by those selections, and then the <a href="http://techwiki.openstructs.org/index.php/Category:Semantic_Component"> semantic components</a> (widgets) used to display them. This example interaction is shown by the following animation:</p>
<div><a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/sco_animation.gif"> <img class="center_ok" style="border: 0px solid; width: 600px; height: 538px;" title="Semantic Components Workflow" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/sco_animation.gif" alt="Semantic Components Workflow" /></a></div>
<p style="font-style: italic; text-align: center;"><small>(click for <a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/sco_animation.gif"> full size</a>)</small></p>
<p>The blue nodes show the ontology interactions. These, in turn, instruct how the various components (yellow) and code (green) need to operate. These interactions are the essence of an ontology-driven app. The software is expressively designed to respond to specifications in the ontology(ies) used, and the ontologies themselves embrace some additional properties specific to driving those apps.</p>
<h3>Possible Future Directions</h3>
<p>ODapps are a relatively new paradigm, from which we continue to learn more about uses and potentials. We have wanted to write the first versions of these two new documents for some time, but have held off as we learned and exploited further the latent potentials in this design. As it stands, we see further potentials in this approach, and will therefore be likely adding new ontologies and capabilities to the general system for some time.</p>
<p>Some of the areas that look promising to us include:</p>
<ul>
<li>A generalized statistical ontology, especially as it can inform data displays in the semantic components</li>
<li>Even more capable widgets in business intelligence (BI) uses, with a concomitant expansion of the vocabulary (predicates and classes) in some of the underlying ontologies</li>
<li>More aggregation and summation functions supported by the AGGR ontology, and</li>
<li>Still further improved permissions and access layers in the WSF ontology.</li>
</ul>
<p>These potentials arise from the native power of the design basis for ontology-driven apps. Conceptually, the design is simplicity itself. Operationally, the system is extremely flexibile and robust. Strategically, it means that development and specification efforts can now move from coding and programmers to ontologies and the subject matter users who define and depend on them. With these advantages, who can argue with that?</p>
<hr align="left" size="1" width="33%" />
<div style="margin: 10px 0pt; font-size: 90%;"><a name="arch1"></a>[1] For the most comprehensive discussion of ODapps, see M. K. Bergman, 2011. &#8221; <a title="Permanent Link to Ontology-Driven Apps Using Generic Applications" href="../948/ontology-driven-apps-using-generic-applications/" rel="bookmark">Ontology-Driven Apps Using Generic Applications</a>,&#8221; posted on the AI3:::Adaptive Information blog, March 7, 2011. You may also search on that blog for &#8216;<a href="../?s=%22ontology-driven%22">ODapps</a>&#8216; to see related content.</div>
<div style="margin: 10px 0pt; font-size: 90%;"><a name="arch2"></a>[2] See M.K. Bergman, 2009. <a href="../492/ontology-best-practices-for-data-driven-applications-part-3/"> “Ontologies as the ‘Engine’ for Data-Driven Applications“</a>, AI3:::Adaptive Information blog, June 10, 2009, for the first presentation of these topics, but the specific term adaptive ontology was not yet used. That term was first introduced in <a href="../553/confronting-misconceptions-with-adaptive-ontologies/"> “Confronting Misconceptions with Adaptive Ontologies”</a> (August 17, 2009). The dedicated treatment of these topics and their interplay was provided in M.K. Bergman, 2009. <a href="../847/ontology-driven-applications-using-adaptive-ontologies/"> “Ontology-driven Applications Using Adaptive Ontologies”</a>, AI3:::Adaptive Information blog, November 23, 2009. The relation of these topics to enterprise software was first presented in M.K. Bergman, 2009. <a href="../825/fresh-perspectives-on-the-semantic-enterprise/"> “Fresh Perspectives on the Semantic Enterprise”</a>, AI3:::Adaptive Information blog, September 28, 2009.</div>
<div style="margin: 10px 0pt; font-size: 90%;"><a name="arch3"></a>[3] Slight revisions of these documents have been posted to the TechWiki as <a title="Role and Use of Ontologies in OSF" href="http://techwiki.openstructs.org/index.php/Role_and_Use_of_Ontologies_in_OSF">Role and Use of Ontologies in OSF</a> and <a title="OSF Ontologies Modularization and Architecture" href="http://techwiki.openstructs.org/index.php/OSF_Ontologies_Modularization_and_Architecture">OSF Ontologies Modularization and Architecture</a>, respectively.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mkbergman.com/989/an-ontologies-architecture-for-ontology-driven-apps/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>UMBEL Services, Part 4: structOntology</title>
		<link>http://www.mkbergman.com/988/umbel-services-part-4-structontology/</link>
		<comments>http://www.mkbergman.com/988/umbel-services-part-4-structontology/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 19:33:38 +0000</pubDate>
		<dc:creator>Mike Bergman</dc:creator>
				<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[Open Semantic Framework]]></category>
		<category><![CDATA[UMBEL]]></category>
		<category><![CDATA[ontology engineering]]></category>
		<category><![CDATA[ontology management]]></category>
		<category><![CDATA[osf]]></category>
		<category><![CDATA[relation browser]]></category>
		<category><![CDATA[semantic framework]]></category>
		<category><![CDATA[semantic technology]]></category>
		<category><![CDATA[structOntology]]></category>
		<category><![CDATA[Structured Dynamics]]></category>

		<guid isPermaLink="false">http://www.mkbergman.com/?p=988</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=UMBEL Services, Part 4: structOntology&amp;rft.aulast=Bergman&amp;rft.aufirst=Mike&amp;rft.subject=Ontologies&amp;rft.subject=Open Semantic Framework&amp;rft.subject=UMBEL&amp;rft.source=AI3:::Adaptive Information&amp;rft.date=2011-11-15&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.mkbergman.com/988/umbel-services-part-4-structontology/&amp;rft.language=English"></span>
Improved Ontology Navigation and Management in Read-only and Editable Forms This continues our series on the new UMBEL portal. UMBEL, the Upper Mapping and Binding Exchange Layer, is an upper ontology of about 28,000 reference concepts and a vocabulary designed for domain ontologies and ontology mapping [1]. This part four discusses structOntology, the online ontology [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=UMBEL Services, Part 4: structOntology&amp;rft.aulast=Bergman&amp;rft.aufirst=Mike&amp;rft.subject=Ontologies&amp;rft.subject=Open Semantic Framework&amp;rft.subject=UMBEL&amp;rft.source=AI3:::Adaptive Information&amp;rft.date=2011-11-15&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.mkbergman.com/988/umbel-services-part-4-structontology/&amp;rft.language=English"></span>
<h2><a href="http://umbel.org/"><img style="border: 0px solid; width: 206px; height: 100px; float: left; margin-right: 10px;" title="UMBEL Vocabulary and Reference Concept Ontology" src="http://www.mkbergman.com/wp-content/themes/ai3/images/umbel_medium.png" alt="UMBEL Vocabulary and Reference Concept Ontology" align="left" /></a>Improved Ontology Navigation and Management in Read-only and Editable Forms</h2>
<p>This continues our series on the new <a href="http://techwiki.openstructs.org/index.php/UMBEL_Concept">UMBEL</a> portal. UMBEL, the <em>Upper Mapping and Binding Exchange Layer</em>, is an upper ontology of about 28,000 reference concepts <em><strong>and</strong></em> a vocabulary designed for domain ontologies and ontology mapping<a href="#pt4_1"> [1]</a>. This part four discusses structOntology, the online ontology viewing and management tool that is an integral part of the <a href="http://techwiki.openstructs.org/index.php/Category:Open_Semantic_Framework"> open semantic framework</a> (OSF), the framework that hosts the UMBEL portal.</p>
<p>Ontologies are the central governing structure or &#8220;brains&#8221; of a semantic installation. As provided by the <a title="Category:Open Semantic Framework" href="http://techwiki.openstructs.org/index.php/Category:Open_Semantic_Framework">OSF</a> framework, ontologies are also the basis for instructing user interface labels and how the interface behaves. The Web is about global access, immediacy, flexibility and adaptability. Why can&#8217;t our use of ontologies be the same?</p>
<p>Unlike similar tools of the past, <a href="http://techwiki.openstructs.org/index.php/StructOntology:_Overview">structOntology</a> exists on the same installation as the ontology that drives it. It is a backoffice ontology editing and management tool that is part of the <a href="http://techwiki.openstructs.org/index.php/Category:ConStruct">conStruct</a> tool suite, accessible via the OSF admin panel. There is no need to go off to a separate application, make changes, re-import, and then test. structOntology allows all of that to occur locally with the instance in which it resides. Also, there are some important functionality differences &#8212; especially finding and selecting stuff and search &#8212; that sets structOntology apart from existing, conventional tools.</p>
<p>Yet, that being said, structOntology is also not the complete Swiss Army knife for ontology management. It is designed for local and immediate use. Its spectrum of functionality is not as complete as other ontology frameworks (for example, supporting reasoners, consistency testers or plug-ins). So, for immmediate and locally relevant use, structOntology appears to be the appropriate tool. For more detailed ontology work or testing, other frameworks are perhaps more useful. And, in recognition of these roles, structOntology also has robust import and export capabilities that enable these dual local-detailed use scenarios. For these distinctions, see further the <a title="StructOntology v Protégé?" href="http://techwiki.openstructs.org/index.php/StructOntology_v_Prot%C3%A9g%C3%A9%3F">structOntology v Protégé?</a> document.</p>
<p>structOntology comes in two versions. First, there is the read-only version, which can be made publicly available, that is a great aid to ontology navigation and discovery. This is the version viewable on the UMBEL portal. Second, there is an editable version, which is only available to administrators via a back office function within an OSF instance. Some screen shots of this version, plus pointers to more documentation about it, are provided below.</p>
<h3>OWL API as a First-class Citizen</h3>
<p>What enables OSF to treat ontologies as a first-class citizen &#8212; viewable and editable from within the applications in which they operate &#8212; results from the incorporation of the <a href="http://techwiki.openstructs.org/index.php/OWL_API">OWL API</a> as one of the major engines underlying the <a href="http://openstructs.org/structwsf">structWSF Web services framework</a>, the key foundational basis to an OSF installation. As noted in <a href="http://www.mkbergman.com/986/umbel-services-part-2-full-text-faceted-search"> Part 2</a> of this series, the OWL API is one of the four major engines supporting structWSF:</p>
<div><a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111107_engines_solr.png"> <img class="center_ok" style="width: 600px; height: 278px;" title="OWL API, a Main structWSF Engine" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111114_engines_owl_api.png" alt="OWL API, a Main structWSF Engine" /></a></div>
<p>The OWL API is the same engine used by <a title="StructOntology v Protégé?" href="http://techwiki.openstructs.org/index.php/Category:Prot%C3%A9g%C3%A9">Protégé</a> <a title="StructOntology v Protégé?" href="http://techwiki.openstructs.org/index.php/Category:Prot%C3%A9g%C3%A9">4</a>, which is why both structOntology and Protégé are fully interoperable.</p>
<p>Besides interoperabilty, the use of the OWL API also means that other OWL API-based tools, such as reasoners or mappers, may be linked into the system. This design is in keeping with our <a href="http://techwiki.openstructs.org/index.php/Normative_Landscape_of_Ontology_Tools"> normative view of an ontology tooling landscape</a>, which <a href="http://structureddynamics.com">Structured Dynamics</a> keeps pursuing in a steady, incremental manner <a href="#pt4_2">[2]</a>. Further, because of its sibling engines, the OWL API and OSF are also able to leverage the other engines supporting structWSF, such as <a href="http://lucene.apache.org/solr/">Solr</a> for advanced search or efficient indexing in the <a href="http://www.openlinksw.com/virtuoso/">RDF triplestore</a>. (The advantages go both ways, too, such as for example enabling the OWL API to feed appropriate ontology specifications to the <a href="http://en.wikipedia.org/wiki/General_Architecture_for_Text_Engineering"> GATE</a> text processing area for uses such as ontology-based information extraction [<a href="http://techwiki.openstructs.org/index.php/Ontology-based_Information_Extraction">OBIE</a>]). All of this makes for a most powerful and capable foundation to an OSF instance.</p>
<h3>The Read-Only Version (UMBEL)</h3>
<p>Since UMBEL is a reference ontology and the UMBEL portal is an access point to those references and specifications, we really don&#8217;t want casual users making modifications to the ontology <a href="#pt4_3">[3]</a>. For this reason, only a read-only version of structOntology is provided on the portal.</p>
<p>Access to the structOntology function occurs via the <a href="http://umbel.org/conStruct/ontology/">Ontology</a> link on the UMBEL portal. Upon access, you are presented with the main structOntology interface:</p>
<div><a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111114_ontology_select.png"> <img class="center_ok" style="border: 1px solid #820000; width: 600px; height: 117px;" title="UMBEL ontology select" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111114_ontology_select.png" alt="UMBEL ontology select" /></a></div>
<p>The organization of the structOntology application presents all currently available and active ontologies listed in the left panel; UMBEL, of course, is the one selected here. Since this is a read-only version, only the View button shows up in the right-hand panel. (For the options available in the editable version, see below.)</p>
<h4>View Option</h4>
<p>Upon invoking the View option, the hierarchical tree for the selected ontology appears on the left; structural and definitions on the right. </p>
<div><a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111114_ontology_view.png"> <img class="center_ok" style="border: 1px solid #820000; width: 600px; height: 425px;" title="UMBEL ontology view" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111114_ontology_view.png" alt="UMBEL ontology view" /></a></div>
<p>You may expand the tree and explore the structure deeper by either clicking on the tree nodes in the left-hand panel or the item links in the right-hand panel. If there are further levels in the tree, you will get the JavaScript &#8216;working&#8217; icon and then see the tree expanded with the new node information shown to the right.</p>
<p>Also note that your interaction with the structOntology application is recounted via the &#8220;breadcrumbs&#8221; listing at the upper left of the application. The green arrow icon allows you to expand or collapse various sections in the display.</p>
<h4>Tooltips</h4>
<p>The tree labels are themselves based on the preferred labels assigned to things. However, if you want to see the actual ontology URI reference, you can do so via the tooltip when mousing over the item:</p>
<div><img class="center_ok" style="border: 1px solid #820000; width: 344px; height: 132px;" title="Ontology view tooltips" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111114_ontology_tooltips.png" alt="Ontology view tooltips" /></div>
<p>The tooltip shows the full URI path (unique identifier) of the selected item.</p>
<h4>Classes Tab</h4>
<p>This example has been based on the Classes tab, which are the reference concepts in the UMBEL context. In read-only mode, the basic information presented is the tree structure, the item description and <code>prefLabel</code>, and super and sub class information in the right-hand panel. (More options are available in the editable version; see below.)</p>
<h4>Properties Tab</h4>
<p>Properties &#8212; that is the relations or predicates between items or nodes &#8212; are presnted in a similar manner to that for Classes. The Properties tab has the same basic layout and operations as the Classes tab, including similar right-hand panels:</p>
<div><a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111114_ontology_properties.png"> <img class="center_ok" style="border: 1px solid #820000; width: 600px; height: 274px;" title="Ontology properties tab" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/111114_ontology_properties.png" alt="Ontology properties tab" /></a></div>
<h3>The Editable Version</h3>
<p>The editable version of structOntology shares all of the functionality of the read-only version. Besides adding editing capabilities, the editable version also has other functionality related to general ontology creation and management. There is <a href="http://techwiki.openstructs.org/index.php/StructOntology:_Overview">separate documentation for the editable version</a>; the examples below are from a different instance than UMBEL.</p>
<p>The editable version is accessed via the backoffice admin function within an OSF instance. When invoked, it also has more management options presented in the right-hand panel:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_main.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/d/da/StructOntology_main.png/600px-StructOntology_main.png" alt="StructOntology main.png" width="600" height="396" /></a></div>
<p>We&#8217;ll highlight some of the differences from the read-only version below.</p>
<h4>Create New Option</h4>
<p>The first notable addition is the ability to create ontologies (as well as to delete, or Remove, them):</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_create_new.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/e/e9/StructOntology_create_new.png/600px-StructOntology_create_new.png" alt="StructOntology create new.png" width="600" height="442" /></a></div>
<p>The URL (such as <a class="external free" href="http://purl.org/ontology/myont#" rel="nofollow">http://purl.org/ontology/myont#</a>) becomes the base URI for the new ontology. The new ontology is created with a basic structure, from which you only need fill in your new concepts or classes and relationships:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_create_new_list.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/b/bf/StructOntology_create_new_list.png/600px-StructOntology_create_new_list.png" alt="StructOntology create new list.png" width="600" height="168" /></a></div>
<p>Basic stubbing is provided for the new ontology to help bootstrap its development (not shown). Once created, this new ontology also now appears on the available local ontologies when first invoking the structOntology application.</p>
<h4>View Option</h4>
<p>Most screens are quite similar to the read-only version with the obvious change of replacing labels with edit boxes. It is via these edit fields that the ontology becomes editable. This change is quite evident for the View screen:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_view.png"><img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/2/2e/StructOntology_view.png/600px-StructOntology_view.png" alt="StructOntology view.png" width="600" height="592" /></a></div>
<h4>Searching</h4>
<p>Searching can take place on the currently active ontology or all loaded (available) ontologies. Note that selection was made above via the radiobutton under the search box.</p>
<p>Also, depending on settings, searching can also take place on only the preferred label, or on alternative labels or descriptions (in fact, all annotations). (This is part of the settings.)</p>
<p>When entering search terms, the system automatically attempts to complete the matching search phrase. A minimum of three entered characters guides this auto-completion functionality:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_autocomplete.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/3/3d/StructOntology_autocomplete.png/600px-StructOntology_autocomplete.png" alt="StructOntology autocomplete.png" width="600" height="308" /></a></div>
<p>When search is initiated, the potential results list also auto-completes for what you have already typed into the search box. Upon selection of one of these items (or completion of the full search phrase), the structOntology system issues a search query to the remote server, which then acts to auto-populate the ontology tree on the left-hand panel. In this case, we have selected &#8216;communitiy facilities&#8217;:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_tree_results.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/1/1a/StructOntology_tree_results.png/600px-StructOntology_tree_results.png" alt="StructOntology tree results.png" width="600" height="242" /></a></div>
<p>The desired search results then automatically expand the ontology tree. This is really helpful for longer ontologies (the example one shown has about 3000 concepts and about 6000 axioms) and means quicker initial tree loading. Once completed, the (multiple) occurrences of the search item are shown in highlight throughout the tree.</p>
<p>Note this search is not necessarily restricted to the actual node label. Alternative labels and descriptions may also be used to find the search results. This greatly expands the findability of the search function. Here is a great example of matching the OWL API engine to Solr underneath a structWSF instance.</p>
<h4>Tab Structure</h4>
<p>The editable version of structOntology offers more detail in the right-hand panel when Viewing an item. These sections include:</p>
<ul>
<li>Annotations</li>
<li>Structural relationships</li>
<li>Instances</li>
<li>Linkage to characteristics, and</li>
<li>Advanced settings.</li>
</ul>
<p>Each section is editable. All have auto-complete. Each section may also be expanded or collapsed.</p>
<h5>General Operations</h5>
<p>Each panel has an expand and collapse arrow shown at the upper right of its panel. These causes the panel&#8217;s individual entries to either be exposed or hidden. At the right of each entry, new entries can be invoked with the green plus symbol; existing entries can be deleted with the red minus symbol. (See Structural Relationships below.)</p>
<p>In working with each panel, note that each entry also has the search and auto-complete features earlier noted. Drag-and-drop is also contextual into these panels or not, depending on the nature of the item selected in the left-hand panel (tree).</p>
<h5>Annotations</h5>
<p>Annotations provide the descriptions about the thing at hand and its associated metadata. (These are separately defined under the Properties tab, or as part of the imported ontology specification.) The available annotations are displayed in this panel when expanded:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_annotations.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/f/fc/StructOntology_annotations.png" alt="StructOntology annotations.png" width="439" height="151" /></a></div>
<p>Entries are simply provided by entering values into the text fields and then Saving.</p>
<h5>Structural Relationships</h5>
<p>The structural relationships are the means to set parent and child relations between concepts, as well as to instruct disjoint or equivalent class relations. The Structural Relationships panel is the key one for setting the interconnections within the graph structure at the heart of the governing ontology.</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_structure.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/2/22/StructOntology_structure.png" alt="StructOntology structure.png" width="439" height="313" /></a></div>
<p>Most of the key structural relationships in OWL are provided by this panel. (However, note there are some additional and rarely used structural specifications in OWL. These must be set via a third-party external application. Such potential interactions are made possible via the flexible import and export options with structOntology).</p>
<h5>Instances (Individuals)</h5>
<p>Another right-hand panel provides the facility to assign individuals to the classes (or concepts) established under the prior two panels. In this case, we are looking at some specific &#8216;community facilities&#8217; to assign to that concept:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_instances.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/e/e8/StructOntology_instances.png" alt="StructOntology instances.png" width="433" height="601" /></a></div>
<p>As with the prior panels, a new instance may be added or discarded ones deleted. Individual instances and their characteristics may also be updated or changes.</p>
<h5>Linkage to Characteristics</h5>
<p>Another aspect to OSF ontologies is the ability to relate concepts to various metadata characteristics or attributes that might describe that concept&#8217;s instances. This relationship is done via the dedicated <code>hasCharacteristic</code> property, which is assigned via this right-hand panel:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_characteristics.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/8/82/StructOntology_characteristics.png" alt="StructOntology characteristics.png" width="433" height="69" /></a></div>
<p>This option has the specific behavior of allowing one or more properties (characteristics) to be asserted for a given a class (concept).</p>
<h5>Advanced Options</h5>
<p>Display and widget and other options are set under the Advanced Options panel. One item to note are the widgets that may be assigned for displaying a given information item:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_advanced.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/8/8a/StructOntology_advanced.png" alt="StructOntology advanced.png" width="429" height="155" /></a></div>
<p>The relationship of widgets (or semantic components) to information items is a deserving topic in its own right. For more information about this topic, see the <a title="Category:Semantic Component" href="http://techwiki.openstructs.org/index.php/Category:Semantic_Component">semantic components category</a>.</p>
<h4>Contextual Drag-and-Drop</h4>
<p>In edit mode, it is possible to drag items from the left-hand tree panel into the specifications at the right. This is contextual. In this first example, we see an attempt to drop a &#8220;class&#8221; result (or concept) into the annotation panel, which violates the structure of the system and is therefore not allowed (as shown by the visual red X cues):</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_dragdrop_no.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/9/9f/StructOntology_dragdrop_no.png/600px-StructOntology_dragdrop_no.png" alt="StructOntology dragdrop no.png" width="600" height="288" /></a></div>
<p>However, if we drag and drop from the tree in an allowable structural definition, we get the visual green check as a cue the move is legal:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_dragdrop_yes.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/8/85/StructOntology_dragdrop_yes.png/600px-StructOntology_dragdrop_yes.png" alt="StructOntology dragdrop yes.png" width="600" height="286" /></a></div>
<p>This functionality and feedback means that only allowable assignments can be dropped into a new structural definition.</p>
<h4>Export Option</h4>
<p>Another piece of functionality in the editable version is the export option. When invoked, Export brings up the save dialog with the ability to assign an ontology file name:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_export.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/0/02/StructOntology_export.png/600px-StructOntology_export.png" alt="StructOntology export.png" width="600" height="298" /></a></div>
<p>Upon saving, it stores the currently active ontology in RDF/XML format:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_export_xml.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/5/5e/StructOntology_export_xml.png/600px-StructOntology_export_xml.png" alt="StructOntology export xml.png" width="600" height="407" /></a></div>
<p>Export is not active in UMBEL do to the large size of the ontology. If you want to obtain it directly, you may do so from the <a href="http://code.google.com/p/umbel/source/browse/#svn/trunk">UMBEL ontology CVS</a>.</p>
<h4>Import Option</h4>
<p>An Import option is available in the editable version. structOntology import supports all OWL API serializations, specifically RDF/XML, N3, Manchester Syntax and Turtle. When import is invoked, a file open dialog is presented that enables you to find the ontology on your local hard drive:</p>
<div><a href="http://techwiki.openstructs.org/index.php/File:StructOntology_import.png"> <img class="center_ok" style="border: 1px solid #820000;" src="http://techwiki.openstructs.org/images/thumb/0/09/StructOntology_import.png/600px-StructOntology_import.png" alt="StructOntology import.png" width="600" height="444" /></a></div>
<p>The Import feature has no file extension limitations; make care to pick and assign the proper types for importation.</p>
<p>Via the Import and Export buttons, it is possible to work locally with structOntology while exporting to more capable third-party tools. Then, once use of those tools is complete, Import provides the ability to re-import the updated ontology back into the local collection.</p>
<h4>File Options</h4>
<p>Finally, as a server-based system accessed via Web services, there are some slightly different concepts necessary to keep in mind when using the editable version of structOntology. These distinctions need to be kept in mind because you might be working with the local version or the one on the main server. These file options are:</p>
<ul>
<li>Save &#8212; saves all modifications on the file, on the server. Then, all modifications will be used if you do a Reload</li>
<li>Unload &#8212; removes the currently active ontology from the local instance, but does <strong>NOT</strong> remove it from the server. It merely acts to remove that ontology for local use in the current session</li>
<li>Remove &#8212; a full delete of the ontology, both locally and on the server</li>
<li>Update &#8212; recreates the serializations files created from these ontologies, like the .SRZ files used by structWSF and conStruct; the ironXML schema used by the semantic components, etc. The Update option is the most common one when updating an ontology locally, for which you want the persistent version on the remote server to be kept in sync</li>
<li>Reload &#8212; reloads the server version. If prior local work had not been updated, then a reload acts as a way to restore the remote instance to the local one without change..</li>
</ul>
<p>These are all available via buttons under the main right-hand panel in structOntology and are more fully described in the <a href="http://techwiki.openstructs.org/index.php/StructOntology:_Overview">edit version documentation</a>.</p>
<h3>Additional Information</h3>
<p>Additional information on structOntology may be found in an online video:</p>
<ul>
<li><a href="http://www.youtube.com/watch?v=WuM9wIO4Qpc">structOntology intro video</a>.</li>
</ul>
<div class="boxBrownDotted">
<div style="float: left; margin-right: 15px;"><img title="UMBEL small logo" src="http://www.mkbergman.com/wp-content/themes/ai3/images/umbel_logo_42.png" alt="UMBEL small logo" /></div>
<p>This is the fourth of a multi-part series on the newly updated UMBEL services. Other articles in this series are:</p>
<ul>
<li><a href="http://www.mkbergman.com/983/umbel-services-part-1-overview/">UMBEL Services, Part 1: Overview</a></li>
<li><a href="http://www.mkbergman.com/986/umbel-services-part-2-full-text-faceted-search"> UMBEL Services, Part 2: Full-text, Faceted Search</a></li>
<li><a href="http://www.mkbergman.com/987/umbel-services-part-3-concept-browser"> UMBEL Services, Part 3: Concept Browser</a>.</li>
</ul>
</div>
<hr style="margin: 15px 0px;" align="left" size="1" width="33%" />
<div style="margin: 10px 0pt; font-size: 90%;"><a name="pt4_1"></a>[1] See further the general <a href="http://en.wikipedia.org/wiki/UMBEL">Wikipedia description of UMBEL</a> or its specification on the <a href="http://umbel.org">official UMBEL Web site</a>.</div>
<div style="margin: 10px 0pt; font-size: 90%;"><a name="pt4_2"></a>[2] See especially the second figure and the accompanying discussion in this document.</div>
<div style="margin: 10px 0pt; font-size: 90%;"><a name="pt4_3"></a>[3] The appropriate pathway for suggested changes to the UMBEL ontology itself is via its official mailing list.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mkbergman.com/988/umbel-services-part-4-structontology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thirty OWL API Tools</title>
		<link>http://www.mkbergman.com/977/thirty-owl-api-tools/</link>
		<comments>http://www.mkbergman.com/977/thirty-owl-api-tools/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 08:52:07 +0000</pubDate>
		<dc:creator>Mike Bergman</dc:creator>
				<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[Semantic Web Tools]]></category>
		<category><![CDATA[owl]]></category>
		<category><![CDATA[owlapi]]></category>
		<category><![CDATA[Semantic Web]]></category>

		<guid isPermaLink="false">http://www.mkbergman.com/?p=977</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Thirty OWL API Tools&amp;rft.aulast=Bergman&amp;rft.aufirst=Mike&amp;rft.subject=Ontologies&amp;rft.subject=Semantic Web Tools&amp;rft.source=AI3:::Adaptive Information&amp;rft.date=2011-09-26&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.mkbergman.com/977/thirty-owl-api-tools/&amp;rft.language=English"></span>
Documenting the Emerging Ecosystem Around OWL 2 We have been touting the importance of OWL 2 as the language of choice for federating and reasoning over RDF and ontologies. An absolutely essential enabler of the OWL 2 language is version 3 of the OWL API (actually, version 3.2.4 at the time of this writing), a [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=Thirty OWL API Tools&amp;rft.aulast=Bergman&amp;rft.aufirst=Mike&amp;rft.subject=Ontologies&amp;rft.subject=Semantic Web Tools&amp;rft.source=AI3:::Adaptive Information&amp;rft.date=2011-09-26&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.mkbergman.com/977/thirty-owl-api-tools/&amp;rft.language=English"></span>
<h2><a href="http://www.w3.org/TR/2009/REC-owl2-overview-20091027/"><img title="OWL - Web Ontology Language" src="../wp-content/themes/ai3/images/owl.jpg" alt="OWL - Web Ontology Language" align="left" /></a>Documenting the Emerging Ecosystem Around OWL 2</h2>
<p>We have been touting the importance of OWL 2 as the language of choice for federating and reasoning over RDF and ontologies. An absolutely essential enabler of the <a href="http://www.w3.org/TR/2009/REC-owl2-overview-20091027/">OWL 2 language</a> is version 3 of the <a href="http://owlapi.sourceforge.net/2.x.x/index.html">OWL API</a> (actually, <a href="http://sourceforge.net/projects/owlapi/files/OWL%20API%20%28for%20OWL%202.0%29/3.2.4/owlapi-3.2.4.zip/download"> version 3.2.4</a> at the time of this writing), a Java-based framework for accessing and managing the language. <a href="http://protege.stanford.edu/">Protégé 4</a>, the most popular open source ontology editor and integrated development environment (<a href="http://en.wikipedia.org/wiki/Integrated_development_environment">IDE</a>), for example, is built around the OWL API.</p>
<p>As we laid out a bit <a href="../909/a-new-landscape-in-ontology-development-tools/"> more than a year ago</a>, now codified on our <a href="http://techwiki.openstructs.org/index.php/Main_Page">TechWiki</a> as the <em><a href="http://techwiki.openstructs.org/index.php/Normative_Landscape_of_Ontology_Tools"> Normative Landscape of Ontology Tools</a></em> (especially the second figure), we see the OWL API as the essential pivot point for all forms of ontology tools moving forward.</p>
<p>We have attempted to assemble a definitive and comprehensive list of all known tools presently based around version 3 of the OWL API. (We have surely missed some and welcome comments to this post that identify missing ones; we promise to add them and keep tracking them.) Herein is a listing of the 30 or so known OWL API-based tools:</p>
<ul>
<li><a href="http://protege.stanford.edu/">Protégé 4</a> is a free, open source ontology editor and knowledge-base framework based on OWL 2 and centered on the OWL API</li>
<li><a href="http://lat.inf.tu-dresden.de/systems/cel/">CEL</a>, <a href="http://owl.man.ac.uk/factplusplus/">FaCT++</a>, <a href="http://hermit-reasoner.com/">HermiT</a>, <a href="http://clarkparsia.com/pellet/">Pellet</a>, and <a href="http://www.racer-systems.com/products/racerpro/">Racer Pro</a> reasoners provide OWL API wrappers and are also available as reasoner plugins to Protégé 4</li>
<li>There is also a <a href="http://jfact.sourceforge.net/">FaCT++ port to Java</a> that is also implementing the OWLReasoner and is available as a plugin for Protégé 4.1; it is at version 0.9 with user feedback welcomed</li>
<li><a href="http://openstructs.org/structontology">structOntology</a> is an open source ontology editor and manager supporting <a href="http://structureddynamics.com/">Structured Dynamics</a>&#8216; <a href="http://openstructs.org/construct">conStruct</a> implementation of the Open Semantic Framework (<a href="http://openstructs.org/open-semantic-framework">OSF</a>) in <a href="http://drupal.org/">Drupal</a>; more information is provided <a href="http://techwiki.openstructs.org/index.php/StructOntology:_Overview">here</a></li>
<li><a href="http://trowl.eu/?page_id=2">TrOWL</a> is a Tractable reasoning infrastructure for OWL 2. TrOWL supports both standard TBox and ABox reasoning, as well as conjunctive query answering</li>
<li><a href="http://code.google.com/p/skoseditor/">SKOSEd</a> is a SKOS editor for Protege; just recently made compatible with Protégé 4.1</li>
</ul>
<div class="boxYellowSolid" style="margin: 8px 0pt 8px 8px; width: 320px; float: right; text-align: center;"><big>Please let us know of any missing OWL API tools that should be added to this list by submitting a comment to this post. We will keep this listing current.</big></div>
<ul>
<li><a href="http://code.google.com/p/owlpopulous/">Populus</a> is a semantic spreadsheet framework using <a href="http://www.sysmo-db.org/rightfield">RightField</a> and <a href="http://oppl2.sourceforge.net/">OPPL</a> for creating OWL ontologies</li>
<li><a href="http://wwwdev.ebi.ac.uk/efo/bubastis/">Bubastis</a> is a tool for detecting asserted logical differences between two ontologies, such as between versions. A stand alone version of the tool is also available for download from the <a href="http://www.ebi.ac.uk/efo/tools">EFO tools page</a>. Bubastis is powered by the OWL API</li>
<li><a href="http://www.ebi.ac.uk/efo/tools#">Tab2OWL</a> and its <a href="https://sourceforge.net/projects/efo/files/tab%20to%20owl%20class/"> download</a> is a Java tool for importing classes into an already existing OWL file. The script uses the OWL API to read in a tab delimited file of class details and create OWL classes from these rows, adding them to an existing ontology</li>
<li><a href="http://semanticmatching.org/s-match.html">S-Match</a> is a semantic matching framework, which provides several semantic matching algorithms and facilities for developing new ones. Currently S-Match contains implementations of the original S-Match semantic matching algorithm, as well as minimal semantic matching algorithm and structure preserving semantic matching algorithm</li>
<li>The <a href="http://alignapi.gforge.inria.fr/">Alignment API</a> is an API and implementation for expressing and sharing ontology alignments. It uses an RDF format for expressing alignments in a uniform way. Its four main interfaces (Alignment, Cell, Relation and Evaluator) provides these services: storing, finding, and sharing alignments; piping alignment algorithms (improving an existing alignment); manipulating (thresholding and hardening); generating processing output; and comparing alignments</li>
<li>The <a href="http://owllink-owlapi.sourceforge.net/index.html">OWLlink API</a> is a Java interface and implementation of the <a href="http://owllink-owlapi.sourceforge.net/owllink.org">OWLlink protocol</a> on top of the Java-based <a href="http://owllink-owlapi.sourceforge.net/owlapi.sourceforge.net">OWL API</a>. The OWLlink API enables OWL API-based applications to access remote reasoners (so-called OWLlink servers), and it turns any OWL API aware reasoner into an OWLlink server</li>
<li><a href="http://oppl2.sourceforge.net/">OPPL2</a> (ontology pre-processing language) is an abstract formalism that allows for manipulating ontologies written in OWL. It is 100% based on the <a href="http://www.co-ode.org/resources/reference/manchester_syntax/">Manchester OWL Syntax</a>; a query language based on OWL (logical) axioms and variables; a scripting language that allows the addition/removal of OWL (logical) axioms. It is available as an Protégé 4.1 <a href="http://sourceforge.net/projects/oppl2/files/OPPL%20Protege%204.1%20plugin/"> plug-in</a></li>
<li><a href="http://oppl2.sourceforge.net/patterns/index.html">OPPL Patterns</a> It is available as an Protégé 4.1 <a href="http://sourceforge.net/projects/oppl2/files/Patterns%20Protege%204.1%20plugin/"> plug-in</a></li>
<li><a href="http://blipkit.wordpress.com/posh/">Posh</a> (Prolog OWL Shell) is a command line utility that wraps the Thea OWL library to allow for advanced querying and processing of ontologies, combining the power of Prolog and OWL reasoning</li>
<li><a href="http://blipkit.wordpress.com/popl/">POPL</a> (Prolog Ontology Processing Language) allows you to write expressive ontology rewrite rules in a high-level declarative fashion using a syntax similar to Manchester syntax</li>
<li><a href="http://wiki.geneontology.org/index.php/OWLTools">OWLTools</a> (aka OWL2LS &#8211; OWL2 Life Sciences) is a convenience Java API on top of the OWL API. Code is available <a href="http://code.google.com/p/owltools/">here</a></li>
<li><a href="http://precedings.nature.com/documents/3468/version/1">LexOWL</a> is a plug-in for Protégé 4. In order to add more powerful functionality (<em>e.g.</em>, inferencing, editing) to the existing infrastructure and align LexGrid more closely with various Semantic Web technologies, the LexOWL plugin for Protégé 4 provides a way for representing the ontologies modeled within the LexGrid environment in OWL. A source for downloading this tool has not been found</li>
<li>Apero, a Protégé plug-in that is an ontology debugging tool based on the use of anti-patterns; see <a href="http://www.emcl-study.eu/fileadmin/master_theses/thesis_tahwil.pdf">http://www.emcl-study.eu/fileadmin/master_theses/thesis_tahwil.pdf</a></li>
<li><a href="http://www.kr.tuwien.ac.at/research/systems/drew/">DReW</a> is a prototype DL reasoner over LDL+ ontologies and a prototype reasoner for dl-programs over LDL+ ontologies under well-founded semantics. It is not well developed or documented; it can be <a href="http://www.kr.tuwien.ac.at/research/systems/drew/download.html">downloaded here</a></li>
<li>The LingInfo, <a href="http://ontoware.org/projects/lexonto/">LexOnto</a>, LexInfo and LMF ontologies are available from the project website, as well as a corresponding Java API with an implementation for the commonly used OWL API</li>
<li><a href="http://www.semanticweb.gr/thea/index.html">Thea2</a> is a Prolog library that provides complete support for querying and processing OWL 2 ontologies directly from within Prolog programs. Thea2 also offers additional capabilities including a bridge to the Java OWL API and translation of ontologies to Description Logic programs</li>
<li><a href="http://www.glowvis.org/Main_Page">GLOW</a> is a visualization for OWL ontologies, based on Hierarchical Edge Bundles. Hierarchical Edge Bundles is a new visually attractive technique for displaying adjacency relations in hierarchical data, such as concept structures formed by `subclass-of&#8217; and `type-of&#8217; relations. The displayed adjacency relations can be selected from an ontology using a set of common configurations, allowing for intuitive discovery of information. It is a visualization library based on OWL API, as well as a plug-in for Protégé</li>
<li><a href="http://www.dis.uniroma1.it/quonto/?q=node/26">ROWLKit</a> is a simple GUI to reason and query over ontologies written in the OWL 2 QL profile of OWL</li>
<li><a href="https://babbage.inf.unibz.it/trac/obdapublic/wiki/ObdalibPlugin">OBDA Plugin</a> (Ontology-based data access) is an add-on for the Protégé ontology editor aimed at transforming Protégé into a fully fledged OBDA model editor. It provides data source and mapping editors, as well as querying facilities that, in conjunction with an OBDA-enabled reasoner, allows you to design and test every aspect of an OBDA system</li>
<li><a href="http://www.ontocat.org/">OntoCAT</a> provides high level abstraction for interacting with ontology resources including local ontology files in standard OWL and OBO formats (via OWL API)</li>
<li><a href="http://semarule.com/navigator.htm">SemaRule Navigator</a> is an Eclipse-based toolkit of multiple semWeb tools, built around the OWL API, organized into a pipeline-like system (appears quite complicated)</li>
<li><a href="http://owldb.sourceforge.net/">OWLDB</a> (alias Mnemosyne) is a storage system based on object-relational mappings utilising the OWL-API for the W3C Web Ontology Language OWL</li>
<li>Finally, for a periodically updated list of &#8220;official&#8221; extensions, see <a href="https://owlapi.svn.sourceforge.net/svnroot/owlapi/v3/branches/owlextensions/"> https://owlapi.svn.sourceforge.net/svnroot/owlapi/v3/branches/owlextensions/</a>.</li>
</ul>
<h3>Addendum</h3>
<p>Ignazio Palmisano also graciously suggested these additional sources:</p>
<ul>
<li><a href="http://owl.cs.manchester.ac.uk/tools/">http://owl.cs.manchester.ac.uk/tools/</a></li>
</ul>
<p>which also further leads to this additional listing:</p>
<ul>
<li><a href="http://www.w3.org/2007/OWL/wiki/Implementations">http://www.w3.org/2007/OWL/wiki/Implementations</a></li>
</ul>
<p>It is not clear if all of these offer OWL 2 support, let along work with the current OWL API.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mkbergman.com/977/thirty-owl-api-tools/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>A New Best Friend: Gephi for Large-scale Networks</title>
		<link>http://www.mkbergman.com/968/a-new-best-friend-gephi-for-large-scale-networks/</link>
		<comments>http://www.mkbergman.com/968/a-new-best-friend-gephi-for-large-scale-networks/#comments</comments>
		<pubDate>Mon, 08 Aug 2011 09:27:47 +0000</pubDate>
		<dc:creator>Mike Bergman</dc:creator>
				<category><![CDATA[Ontologies]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Semantic Web Tools]]></category>
		<category><![CDATA[UMBEL]]></category>
		<category><![CDATA[cytoscape]]></category>
		<category><![CDATA[Gephi]]></category>
		<category><![CDATA[graph]]></category>
		<category><![CDATA[graph analysis]]></category>
		<category><![CDATA[graph visualization]]></category>
		<category><![CDATA[graphing programs]]></category>
		<category><![CDATA[network]]></category>

		<guid isPermaLink="false">http://www.mkbergman.com/?p=968</guid>
		<description><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=A New Best Friend: Gephi for Large-scale Networks&amp;rft.aulast=Bergman&amp;rft.aufirst=Mike&amp;rft.subject=Ontologies&amp;rft.subject=Open Source&amp;rft.subject=Semantic Web Tools&amp;rft.subject=UMBEL&amp;rft.source=AI3:::Adaptive Information&amp;rft.date=2011-08-08&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.mkbergman.com/968/a-new-best-friend-gephi-for-large-scale-networks/&amp;rft.language=English"></span>
Visualization + Analysis Pushes Aside Cytoscape Though I never intended it, some posts of mine from a few years back dealing with 26 tools for large-scale graph visualization have been some of the most popular on this site. Indeed, my recommendation for Cytoscape for viewing large-scale graphs ranks within the top 5 posts all time [...]]]></description>
			<content:encoded><![CDATA[	
	<span class="Z3988" title="ctx_ver=Z39.88-2004&amp;rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Adc&amp;rfr_id=info%3Asid%2Focoins.info%3Agenerator&amp;rft.title=A New Best Friend: Gephi for Large-scale Networks&amp;rft.aulast=Bergman&amp;rft.aufirst=Mike&amp;rft.subject=Ontologies&amp;rft.subject=Open Source&amp;rft.subject=Semantic Web Tools&amp;rft.subject=UMBEL&amp;rft.source=AI3:::Adaptive Information&amp;rft.date=2011-08-08&amp;rft.type=blogPost&amp;rft.format=text&amp;rft.identifier=http://www.mkbergman.com/968/a-new-best-friend-gephi-for-large-scale-networks/&amp;rft.language=English"></span>
<h2><a><img style="border: 0px solid; width: 250px; height: 246px; float: left; margin-right: 10px;" title="Geshi Network" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/110808_geshi.png" alt="Geshi Network" hspace="5" vspace="5" align="left" /></a>Visualization + Analysis Pushes Aside Cytoscape</h2>
<p>Though I never intended it, some posts of mine from a few years back         dealing with <a href="../414/large-scale-rdf-graph-visualization-tools/"> 26 tools for large-scale graph visualization</a> have been some of the         most popular on this site. Indeed, my <a href="../415/cytoscape-hands-down-winner-for-large-scale-graph-visualization/"> recommendation for Cytoscape</a> for viewing large-scale graphs ranks         within the top 5 posts all time on this site.</p>
<p>When that analysis was done in January 2008 <a href="http://structureddynamics.com/">my company</a> was in the midst         of needing to process the large <a href="http://www.umbel.org/">UMBEL</a> vocabulary, which now consists of         28,000 concepts. Like anything else, need drives research and demand,         and after reviewing <a href="../414/large-scale-rdf-graph-visualization-tools/"> many graphing programs</a>, we <a href="../415/cytoscape-hands-down-winner-for-large-scale-graph-visualization/"> chose Cytoscape</a>, then provided some ongoing guidelines in its use         for semantic Web purposes. We have continued to use it productively in         the intervening years.</p>
<p>Like for any tool, one reviews and picks the best at the time of need.         Most recently, however, with growing customer usage of large ontologies and the development of our         own <a href="../959/intro-to-structontology/">structOntology</a> editing and managing framework, we have begun to butt up against the         limitations of large-scale graph and network analysis. With this post,         we announce our new favorite tool for semantic Web network and graph         analysis &#8212; <a href="http://gephi.org/">Gephi</a> &#8212; and explain its         use and showcase a current example.</p>
<h3>The Cytoscape Baseline and Limitations</h3>
<p>Three and one-half years ago when I first wrote about <a href="../415/cytoscape-hands-down-winner-for-large-scale-graph-visualization/"> Cytoscape</a>, it was at version 2.5. Today, it is at version 2.8, and         many aspects have seen improvement (including its Web site). However,         in other respects, development has slowed. For example, version         3.x was first discussed more than three years ago; it is still not         available today.</p>
<p>Though the system is open source, Cytoscape has also largely been         developed with external grant funds. Like other similarly funded         projects, once and when grant funds slow, development slows as well.         While there has clearly been an active community behind Cytoscape, it         is beginning to feel tired and a bit long in the tooth. From a semantic         Web standpoint, some of the limitations of the current Cytoscape         include:</p>
<ul>
<li>Difficult conversion of existing ontologies &#8212; Cytoscape requires         creating a CSV input; there was an earlier <a href="http://bioinformatics.org/rdfscape/">RDFscape</a> plug-in that held         great promise to bridge the software into the RDF and semantic Web         sphere, but it has not remained active</li>
<li>Network analysis &#8212; one of the early and valuable generalized         network analysis plug-ins was <a href="http://med.bioinf.mpi-inf.mpg.de/netanalyzer/">NetworkAnalyzer</a>;         however, that component has not seen active development in three years,         and dynamic new generalized modules suitable for social network         analysis (<a href="http://en.wikipedia.org/wiki/Social_network_analysis">SNA</a>) and         <a href="http://en.wikipedia.org/wiki/Small-world_network">small-world         networks</a> have not been apparent</li>
<li>Slow performance and too-frequent crashes &#8212; Cytoscape has always         had a quirky interface and frequent crashes; later versions are a bit         more stable, but usability remains a challenge</li>
<li>Largely supported by the biomedical community &#8212; from the         beginning, Cytoscape was a project of the biomedical community. Most         plug-ins still pertain to that space. Because of support for <a href="http://www.obofoundry.org/">OBO</a> (Open Biomedical and Biological         Ontologies) formats and a lack of uptake by the broader semantic Web         community, RDF- and OWL-based development has been keenly lacking</li>
<li>Aside from PDFs, poor ability to output large graphs in a viewable         manner</li>
<li>Limited layout support &#8212; and poor performance for many of those         included with the standard package.</li>
</ul>
<p>Undoubtedly, were we doing semantic technologies in the biomedical         space, we might well develop our own plug-ins and contribute to the         Cytoscape project to help overcome some of these limitations. But,         because I am a tools geek (see my <a href="../sweet-tools/">Sweet Tools listing</a> with         nearly 1000 semantic Web and -related tools), I decided to check out         the current state of large-scale visualization tools and see if any had         made progress on some of our outstanding objectives.</p>
<h3>Choosing Geshi and Using It</h3>
<p>There are three classes of graph tools in the semantic technology         space:</p>
<ol>
<li>Ontology navigation and discovery, to which the <a href="http://techwiki.openstructs.org/index.php/SRelationBrowser_Examples"> Relation Browser</a> and <a href="http://www.visualdataweb.org/relfinder.php">RelFinder</a> are           notable examples</li>
<li>Ontology structure visualization (and sometimes editing), such as         the <a href="http://graphviz.org/">GraphViz</a> (OWLViz) or <a href="http://protegewiki.stanford.edu/wiki/OntoGraf">OntoGraf</a> tools used         in <a href="http://protege.stanford.edu/">Protégé</a> (or the nice         <a href="http://www.thechiselgroup.org/flexviz">FlexViz</a>, again used         by the OBO community), and</li>
<li>Large-scale graph visualization in order to gain a complete picture         and macro relationships in the ontology.</li>
</ol>
<p>One could argue that the first two categories have received the most         current development attention. But, I would also argue that the third         class is one of the most critical:  to understand where one is in         a large knowledge space, much better larger-scale visualization and         navigation tools are needed. Unfortunately, this third category is also         the one that appears to be receiving the least development attention.         (To be sure, large-scale graphs pose computational and performance         challenges.)</p>
<p>In the nearly four years since my <a href="../414/large-scale-rdf-graph-visualization-tools/"> last major survey of 26 tools</a> in this category, the new entrants         appear <a href="http://en.wikipedia.org/wiki/Social_network_analysis_software">quite         limited</a>. I&#8217;ve surely overlooked some, but the most notable are         <a href="http://www.franz.com/agraph/gruff/">Gruff</a>, <a href="http://ophid.utoronto.ca/navigator/">NAViGaTOR</a>, <a href="http://networkx.lanl.gov/">NetworkX</a> and <a href="http://gephi.org/">Gephi</a> <a href="#gephi1">[1]</a>. Gruff actually appears to belong         most in Category #2; I could find no examples of graphs on the scale of         thousands of nodes. NAViGaTOR is biomedical only. NetworkX has no direct         semantic graph importing and &#8212; while apparently some RDF libraries can         be used for manipulating imports &#8212; alternative workflows were too         complex for me to tackle for initial evaluation. This leaves Gephi as         the only potential new candidate.</p>
<p>From a clean Web site to well-designed intro tutorials, first         impressions of Gephi are strongly positive. The real proof, of course,         was getting it to perform against my real use case tests. For that, I         used a &#8220;big&#8221; ontology for a current client that captures about 3000         different concepts and their relationships and more than 100         properties. What I recount here &#8212; from first installing the program         and plug-ins and then setting up, analyzing, defining display         parameters, and then publishing the results &#8212; took me less than a day         from a totally cold start. The Gephi program and environment is         surprisingly easy to learn, aided by some great tutorials and online info         (see concluding section).</p>
<p>The critical enabler for being able to use Gephi for this source and         for my purposes is the <a href="http://gephi.org/plugins/semanticwebimport/">SemanticWebImport</a> plug-in, recently developed by Fabien Gandon and his team at <a href="http://www.inria.fr/en/">Inria</a> as part of the <a href="http://www-sop.inria.fr/edelweiss/">Edelweiss</a> project <a href="#gephi2">[2]</a>. Once         the plug-in is installed, you need only open up the SemanticWebImport         tab, give it the URL of your source ontology, and pick the Start button         (middle panel):</p>
<div><a title="SemWeb Plug-in for Gephi" href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/110509_intangibles_trends.png"> </a><a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/110808_gephi_semwebimport.png"><img class="center_ok" style="border: 0px solid; width: 600px; height: 488px;" title="SemWeb Plug-in for Gephi" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/110808_gephi_semwebimport.png" alt="SemWeb Plug-in for Gephi" /></a>Note the SemanticWebImport tool also has the ability (middle panel) to         issue queries to a SPARQL endpoint, the results of which return a         results graph (partial) from the source ontology. (This feature is not         further discussed herein.) This ontology load and display capability         worked without error for the five or six OWL 2 ontologies I initially         tested against the system.&nbsp;</p>
</div>
<p>Once loaded, an ontology (graph) can be manipulated with a conventional         IDE-like interface of tabs and views. In the right-hand panels above we         are selecting various network analysis routines to run, in this case         Average Degrees. Once one or more of these analysis options is run, we can use the results to then cluster or         visualize the graph; the upper left panel shows highlighting the         Modularity Class, which is how I did the community (clustering)         analysis of our big test ontology. (When run you can also assign         different colors to the cluster families.) I also did some filtering of         extraneous nodes and properties at this stage and also instructed the         system via the ranking analysis to show nodes with more link         connections as larger than those nodes with fewer links.</p>
<p>At this juncture, you can also set the scale for varying such display         options as linear or some power function. You can also select different         graph layout options (lower left panel). There are many layout plug-in         options for Gephi. The layout plugin called <a rel="nofollow" href="http://gephi.org/2010/openord-new-layout-plugin-the-fastest-algorithm-so-far/">OpenOrd</a>, for instance, is reported to be able to         scale to millions of nodes.</p>
<p>At this point I played extensively with the combination of filters,          analysis, clusters, partitions and rankings (as may be separately          applied to nodes and edges) to: 1) begin to understand the gross          structure and characteristics of the big graph; and 2) refine the          ultimate look I wanted my published graph to have.</p>
<p>In our example, I ultimately chose the standard Yifan Hu layout in order to         get the communities (clusters) to aggregate close to one another on the         graph. I then applied the Parallel Force Atlas layout to organize the nodes and make the         spacings more uniform. The parallel aspect of this force-based layout         allows these intense calculations to run faster. The result of these         two layouts in sequence is then what was used for the results displays.</p>
<p>Upon completion of this analysis, I was ready to publish the graph. One         of the best aspects of Gephi is its flexibility and control over         outputs. Via the main Preview tab, I was able to do my final         configurations for the published graph:</p>
<div><a title="Publication Options for Gephi" href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/110509_intangibles_trends.png"> </a><a href="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/110808_gephi_preview.png"><img class="center_ok" style="border: 0px solid; width: 600px; height: 489px;" title="Publication Options for Gephi" src="http://www.mkbergman.com/wp-content/themes/ai3/images/2011Posts/110808_gephi_preview.png" alt="Publication Options for Gephi" /></a>The graph results from the earlier-worked out filters and clusters and colors are         shown in the right-hand Preview pane. On the left-hand side, many         aspects of the final display are set, such as labels on or off, font         sizes, colors, etc. It is worth looking at the figure above in full         size to see some of the options available.&nbsp;</p>
</div>
<p>Standard output options include either SVG (vector image) or PDFs, as         shown at the lower left, with output size scaling via slider bar. Also,         it is possible to do standard saves under a variety of file formats or         to do targeted exports.</p>
<p>One really excellent publication option is to create a dynamically         zoomable display using the <a href="http://www.seadragon.com/">Seadragon</a> technology via a separate         <a href="http://gephi.org/plugins/seadragon/">Seadragon Web Export</a> plug-in. (However, because of cross-site scripting limitations due to         security concerns, I only use that option for specific sites. See next         section for the <a href="http://zoom.it/">Zoom It</a> option &#8212; based on Seadragon &#8212; to         workaround that limitation.)</p>
<h3>Outputs Speak for Themselves</h3>
<p>I am very pleased with the advances in display and analysis provided by         Gephi. Using the <a href="http://zoom.it/">Zoom It</a> alternative <a href="#gephi3">[3]</a> to embedded Seadragon, we can see our big ontology example with:</p>
<ul>
<li>All 3000 nodes labeled, with connections shown (though you must must zoom to see)         and</li>
<li>When zooming (use scroll wheel or + icon) or panning (via mouse down moves), wait a couple of seconds to get the         clearest image refresh:</li>
</ul>
<div><script src="http://zoom.it/BAs7.js?width=616px&amp;height=614px" type="text/javascript">
</script></div>
<p><strong>Note</strong>: at standard resolution,         if this graph were to be rendered in actual size, it would be larger than         7 feet by 7 feet square at full zoom !!!</p>
<p>To compare output options, you may also;</p>
<ul>
<li> <a href="../network/big_ontology.pdf">Download a           PDF</a> of this big graph, OR</li>
<li> <a href="../network/big_ontology.svg">Download an           SVG</a> (Inkscape readable version) of this big graph.</li>
</ul>
<h3>Still, Some Improvements Would be Welcomed</h3>
<p>It is notable that Gephi still only versions itself as an &#8220;alpha&#8221;.         There is already a robust user community with promise for much more         technology to come.</p>
<p>As an alpha, Gephi is remarkably stable and well-developed. Though         clearly useful as is, I measure the state of Gephi against my complete         list of desired functionality, with these items still missing:</p>
<ul>
<li>Real-time and interactive navigation &#8212; the ability to move through         the graph interactively and to issue queries and discover relationships</li>
<li>Huge node numbers &#8212; perhaps the <a rel="nofollow" href="http://gephi.org/2010/openord-new-layout-plugin-the-fastest-algorithm-so-far/">OpenOrd</a> plug-in somewhat addresses this need. We           will be testing Gephi against <a href="http://www.umbel.org/">UMBEL</a>, which is an order of magnitude           larger than our test big ontology</li>
<li>More node and edge control &#8212; Cytoscape still retains the advantage         in the degree to which nodes and edges can be graphically styled</li>
<li>Full round-tripping &#8212; being able to use Gephi in an edit mode         would be fantastic; the edit functionality is fairly straightforward,         but the ability to round-trip in appropriate formats (OWL, RDF or         otherwise) may be the greater sticking point.</li>
</ul>
<p>Ultimately, of course, as I explained in an earlier presentation on a         <em><a href="http://techwiki.openstructs.org/index.php/Normative_Landscape_of_Ontology_Tools"> Normative Landscape for Ontology Tools</a></em>, we would like to see a         full-blown graphical program tie in directly with the <a href="http://owlapi.sourceforge.net/">OWL API</a>. Some initial attempts         toward that have been made with the non-Gephi <a href="http://glowvis.org/Main_Page">GLOW visualization</a> approach, but it         is still in very early phases with ongoing commitments unknown.         Optimally, it would be great to see a Gephi plug-in that ties directly to the OWL API.</p>
<p>In any event, while perhaps Cytoscape development has stalled a bit for         semantic technology purposes, Gephi and its SemanticWebImport plug-in         have come roaring into the lead. This is a fine toolset that promises         usefulness for many years to come.</p>
<h3>Some Further Gephi Links</h3>
<p>To learn more about Gephi, also see the:</p>
<ul>
<li>Terrific introductory tutorials on <a href="http://gephi.org/users/quick-start/">quick start</a>, <a href="http://gephi.org/users/tutorial-visualization/">visualization</a> and         <a href="http://gephi.org/users/tutorial-layouts/">layouts</a></li>
<li>Fast videos on the use of the <a href="http://wiki.gephi.org/index.php/SemanticWebImport">SemanticWebImport</a> plug-in for <a href="http://www-sop.inria.fr/teams/edelweiss/wiki/wakka.php?wiki=DBpediaGephi"> DBpedia</a> and <a href="http://www-sop.inria.fr/teams/edelweiss/wiki/wakka.php?wiki=BBCinGephi"> BBC programs</a></li>
<li>Gephi <a href="http://wiki.gephi.org/index.php/Main_Page">community         wiki.</a></li>
</ul>
<p>Also, for future developments across the graph visualization spectrum,         check out the Wikipedia <a href="http://www.wikiviz.org/wiki/Tools">general visualization tools</a> listing on a periodic basis.</p>
<hr style="margin: 15px 0px;" size="1" />
<div style="margin: 10px 0pt; font-size: 90%;"><a name="gephi1"></a>[1] The <a href="http://www.r-project.org/">R</a> open source math and statistics package is very rich with apparently some graph visualization capabilities, such as the dedicated network analysis and visualization project <a href="http://statnetproject.org/">statnet</a>. <a href="http://cran.r-project.org/web/packages/rrdf/index.html">rrdf</a> may also provide an interesting path for RDF imports. R and its family of tools may indeed be quite promising, but the commitment necessary to R appears quite daunting. Longer-term, R may represent a more powerful upgrade path for our general toolsets. <a href="http://neo4j.org/">Neo4j</a> is also a rising star in graph databases, with its own visualization components. However, since we did not want to convert our underlying data stores, we also did not test this option.</div>
<div style="margin-top: 10px; font-size: 90%;"><a name="gephi2"></a>[2] Erwan Demairy is the lead developer and committer for <a href="http://wiki.gephi.org/index.php/SemanticWebImport">SemanticWebImport</a>. The first version was released in mid-April 2011.</div>
<div style="margin: 10px 0pt; font-size: 90%;"><a name="gephi3"></a>[3] For presentations like this blog post, the Seadragon JavaScript enforces some security restrictions against cross-site scripting. To overcome that, the option I followed was to:</div>
<div style="font-size: 90%;">
<ul>
<li>Use Gephi&#8217;s SVG export option</li>
<li>Open the SVG in Inkscape</li>
<li>Expand the size of the diagram as needed (with locked dimensions to prevent distortion)</li>
<li>Save As a PNG</li>
<li>Go to <a href="http://zoom.it/">Zoom It</a> and submit the image file</li>
<li>Choose the embed function, and</li>
<li>Embed the link provided, which is what is shown above.</li>
</ul>
</div>
<div style="font-size: 90%;">(Though Zoom.it also accepts SVG files directly, I found performance to be spotty, with many graphical elements dropped in the final rendering.)</div>
]]></content:encoded>
			<wfw:commentRss>http://www.mkbergman.com/968/a-new-best-friend-gephi-for-large-scale-networks/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

