<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.na-mic.org/w/index.php?action=history&amp;feed=atom&amp;title=Slicer3%3AExecution_Model</id>
	<title>Slicer3:Execution Model - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.na-mic.org/w/index.php?action=history&amp;feed=atom&amp;title=Slicer3%3AExecution_Model"/>
	<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;action=history"/>
	<updated>2026-04-24T23:50:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=97402&amp;oldid=prev</id>
		<title>Grundlett: Text replacement - &quot;http://www.slicer.org/slicerWiki/index.php/&quot; to &quot;https://www.slicer.org/wiki/&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=97402&amp;oldid=prev"/>
		<updated>2017-07-10T17:48:37Z</updated>

		<summary type="html">&lt;p&gt;Text replacement - &amp;quot;http://www.slicer.org/slicerWiki/index.php/&amp;quot; to &amp;quot;https://www.slicer.org/wiki/&amp;quot;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 17:48, 10 July 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;big&amp;gt;'''Note:''' We are migrating this content to the slicer.org domain - &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;The newer page is [&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;http&lt;/del&gt;://www.slicer.org/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;slicerWiki/index.php&lt;/del&gt;/Slicer3:Execution_Model  here]&amp;lt;/font&amp;gt;&amp;lt;/big&amp;gt;a&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;big&amp;gt;'''Note:''' We are migrating this content to the slicer.org domain - &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;The newer page is [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;https&lt;/ins&gt;://www.slicer.org/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;wiki&lt;/ins&gt;/Slicer3:Execution_Model  here]&amp;lt;/font&amp;gt;&amp;lt;/big&amp;gt;a&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Grundlett</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25700&amp;oldid=prev</id>
		<title>Marianna: Protected &quot;Slicer3:Execution Model&quot; [edit=sysop:move=sysop]</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25700&amp;oldid=prev"/>
		<updated>2008-05-22T16:09:41Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/wiki/Slicer3:Execution_Model&quot; title=&quot;Slicer3:Execution Model&quot;&gt;Slicer3:Execution Model&lt;/a&gt;&amp;quot; [edit=sysop:move=sysop]&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 16:09, 22 May 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Marianna</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25005&amp;oldid=prev</id>
		<title>Marianna: Unprotected &quot;Slicer3:Execution Model&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25005&amp;oldid=prev"/>
		<updated>2008-05-19T19:39:21Z</updated>

		<summary type="html">&lt;p&gt;Unprotected &amp;quot;&lt;a href=&quot;/wiki/Slicer3:Execution_Model&quot; title=&quot;Slicer3:Execution Model&quot;&gt;Slicer3:Execution Model&lt;/a&gt;&amp;quot;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:39, 19 May 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Marianna</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25004&amp;oldid=prev</id>
		<title>Marianna at 19:39, 19 May 2008</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25004&amp;oldid=prev"/>
		<updated>2008-05-19T19:39:10Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:39, 19 May 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=== Abstract ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;big&amp;gt;'''Note:''' We &lt;/ins&gt;are &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;migrating this content &lt;/ins&gt;to the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;slicer&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;org domain - &amp;lt;font color&lt;/ins&gt;=&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;orange&lt;/ins&gt;&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;gt;The newer page &lt;/ins&gt;is [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;http://www&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;slicer&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;org/slicerWiki/index&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;php/&lt;/ins&gt;Slicer3:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Execution_Model  here&lt;/ins&gt;]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/font&amp;gt;&amp;lt;/big&amp;gt;a&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The purpose of the Slicer3 Execution Model is to facilitate a &amp;quot;run-everywhere&amp;quot; philosophy for algorithm writers. NAMIC has adopted a standard for algorithm &amp;quot;self-description&amp;quot; that is followed when command line executables &lt;/del&gt;are &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;written. Slicer, the grid, clusters, etc... will be able &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;use &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;executables directly in their environment&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;==&lt;/del&gt;= &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Status ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The Slicer3 execution model contains three components:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# Module Description Parser - This is a C++ library that parses an xml description of a module and creates C++ classes that can be accessed in applications.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# Command Line Processing - This is a C++ program that uses the Module Description Parser to generate C++ code that parses the command line arguments specified in the xml module description. This code can be included in the command line module to access the command line arguments at run-time.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# Slicer3 GUI - This GUI and related MRML and Logic classes uses the Module Description Parser to create GUI, MRML and Logic classes for each module &lt;/del&gt;&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;discovered&lt;/del&gt;&amp;quot; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;at run-time.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Currently, an initial implementation of all three components &lt;/del&gt;is &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;complete.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[Execution_Model_Reference_Systems | Here]] is a discussion page on how to deal with reference systems in the Execution Model&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=== Documentation ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Look at the [[Slicer3:Execution_Model_Documentation|Slicer3:Execution Model Documentation]] for details&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=== Background ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The initial implementation of the Slicer3 Execution Model followed a Wiki discusion of requirements and implementation options&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Refer to the [[Slicer3:Execution_Model_Discussion|&lt;/del&gt;Slicer3:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Execution_Model_Discussion&lt;/del&gt;]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;] for background and motivation.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Marianna</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25003&amp;oldid=prev</id>
		<title>Marianna at 19:34, 19 May 2008</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25003&amp;oldid=prev"/>
		<updated>2008-05-19T19:34:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:34, 19 May 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;big&amp;gt;'''Note&lt;/del&gt;:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''' We are migrating this content &lt;/del&gt;to the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;slicer&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;org domain &lt;/del&gt;- &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;font color=&lt;/del&gt;&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;orange&lt;/del&gt;&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;gt;The newer &lt;/del&gt;page &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;is &lt;/del&gt;[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;http&lt;/del&gt;:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;//www&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;slicer&lt;/del&gt;.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;org/slicerWiki/index.php/&lt;/del&gt;Slicer3:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Execution_Model  here&lt;/del&gt;]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/font&amp;gt;&amp;lt;/big&amp;gt;a&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== Abstract ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The purpose of the Slicer3 Execution Model is to facilitate a &amp;quot;run-everywhere&amp;quot; philosophy for algorithm writers. NAMIC has adopted a standard for algorithm &amp;quot;self-description&amp;quot; that is followed when command line executables are written. Slicer, the grid, clusters, etc... will be able to use the executables directly in their environment.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== Status ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The Slicer3 execution model contains three components&lt;/ins&gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# Module Description Parser - This is a C++ library that parses an xml description of a module and creates C++ classes that can be accessed in applications.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# Command Line Processing - This is a C++ program that uses the Module Description Parser to generate C++ code that parses the command line arguments specified in the xml module description. This code can be included in the command line module &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;access &lt;/ins&gt;the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;command line arguments at run-time&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;# Slicer3 GUI &lt;/ins&gt;- &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This GUI and related MRML and Logic classes uses the Module Description Parser to create GUI, MRML and Logic classes for each module &lt;/ins&gt;&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;discovered&lt;/ins&gt;&amp;quot; &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;at run-time.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Currently, an initial implementation of all three components is complete.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Execution_Model_Reference_Systems | Here]] is a discussion &lt;/ins&gt;page &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;on how to deal with reference systems in the Execution Model.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== Documentation ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Look at the [&lt;/ins&gt;[&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Slicer3:Execution_Model_Documentation|Slicer3&lt;/ins&gt;:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Execution Model Documentation]] for details&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=== Background ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;The initial implementation of the Slicer3 Execution Model followed a Wiki discusion of requirements and implementation options&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Refer to the [[Slicer3:Execution_Model_Discussion|&lt;/ins&gt;Slicer3:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Execution_Model_Discussion]&lt;/ins&gt;] &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;for background and motivation.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Marianna</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25002&amp;oldid=prev</id>
		<title>Marianna at 19:29, 19 May 2008</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=25002&amp;oldid=prev"/>
		<updated>2008-05-19T19:29:37Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 19:29, 19 May 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=== Abstract ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;big&amp;gt;'''Note:''' We &lt;/ins&gt;are &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;migrating this content &lt;/ins&gt;to the &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;slicer&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;org domain - &amp;lt;font color&lt;/ins&gt;=&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;orange&lt;/ins&gt;&amp;quot;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;gt;The newer page &lt;/ins&gt;is [&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;http://www&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;slicer&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;org/slicerWiki/index&lt;/ins&gt;.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;php/&lt;/ins&gt;Slicer3:&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Execution_Model  here&lt;/ins&gt;]&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;/font&amp;gt;&amp;lt;/big&amp;gt;a&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The purpose of the Slicer3 Execution Model is to facilitate a &amp;quot;run-everywhere&amp;quot; philosophy for algorithm writers. NAMIC has adopted a standard for algorithm &amp;quot;self-description&amp;quot; that is followed when command line executables &lt;/del&gt;are &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;written. Slicer, the grid, clusters, etc... will be able &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;use &lt;/del&gt;the &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;executables directly in their environment&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;==&lt;/del&gt;= &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Status ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The Slicer3 execution model contains three components:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# Module Description Parser - This is a C++ library that parses an xml description of a module and creates C++ classes that can be accessed in applications.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# Command Line Processing - This is a C++ program that uses the Module Description Parser to generate C++ code that parses the command line arguments specified in the xml module description. This code can be included in the command line module to access the command line arguments at run-time.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;# Slicer3 GUI - This GUI and related MRML and Logic classes uses the Module Description Parser to create GUI, MRML and Logic classes for each module &lt;/del&gt;&amp;quot;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;discovered&lt;/del&gt;&amp;quot; &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;at run-time.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Currently, an initial implementation of all three components &lt;/del&gt;is &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;complete.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[Execution_Model_Reference_Systems | Here]] is a discussion page on how to deal with reference systems in the Execution Model&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=== Documentation ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Look at the [[Slicer3:Execution_Model_Documentation|Slicer3:Execution Model Documentation]] for details&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=== Background ===&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The initial implementation of the Slicer3 Execution Model followed a Wiki discusion of requirements and implementation options&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Refer to the [[Slicer3:Execution_Model_Discussion|&lt;/del&gt;Slicer3:&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Execution_Model_Discussion&lt;/del&gt;]&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;] for background and motivation.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Marianna</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=6738&amp;oldid=prev</id>
		<title>Lantiga: /* Status */</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=6738&amp;oldid=prev"/>
		<updated>2007-01-13T07:45:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Status&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 07:45, 13 January 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l12&quot; &gt;Line 12:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 12:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Currently, an initial implementation of all three components is complete.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Currently, an initial implementation of all three components is complete.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Execution_Model_Reference_Systems | Here]] is a discussion page on how to deal with reference systems in the Execution Model.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Documentation ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Documentation ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Lantiga</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=4143&amp;oldid=prev</id>
		<title>Andy: Update from Wiki</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=4143&amp;oldid=prev"/>
		<updated>2006-12-18T13:36:47Z</updated>

		<summary type="html">&lt;p&gt;Update from Wiki&lt;/p&gt;
&lt;a href=&quot;https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;amp;diff=4143&amp;amp;oldid=4142&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Andy</name></author>
		
	</entry>
	<entry>
		<id>https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=4142&amp;oldid=prev</id>
		<title>Andy: Update from Wiki</title>
		<link rel="alternate" type="text/html" href="https://www.na-mic.org/w/index.php?title=Slicer3:Execution_Model&amp;diff=4142&amp;oldid=prev"/>
		<updated>2006-12-18T13:36:46Z</updated>

		<summary type="html">&lt;p&gt;Update from Wiki&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=== Abstract ===&lt;br /&gt;
&lt;br /&gt;
The purpose of this proposal is to facilitate a &amp;quot;run-everywhere&amp;quot; philosophy for algorithm writers. If NAMIC adopts a standard for algorithm &amp;quot;self-description&amp;quot; that is followed when command line executables are written, Slicer, the grid, clusters, etc... should be able to use the executables directly in their environment.&lt;br /&gt;
&lt;br /&gt;
=== Execution model for stand-alone executables ===&lt;br /&gt;
&lt;br /&gt;
For Slicer3 to interact with stand-alone executables, a communications protocol must be created and implemented on both sides. This implies that the executable must be able to describe itself in sufficient detail for Slicer3 to run it and retrieve the results of the algorithm.&lt;br /&gt;
&lt;br /&gt;
=== Initial Standard ===&lt;br /&gt;
&lt;br /&gt;
This sample describes the initial standard. The current best implementation is to write your XML algorithm description by hand, then have your executable respond to the --xml flag by producing the XML description to standard output.&lt;br /&gt;
&lt;br /&gt;
Some notes about the sample below.&lt;br /&gt;
&lt;br /&gt;
# The &amp;lt;category&amp;gt; tag corresponds to where the executable should show up in a menu on the calling Application&lt;br /&gt;
# &amp;lt;parameters&amp;gt; tags are grouped together by name in the GUI, in the example &amp;quot;Registration Parameters&amp;quot; and &amp;quot;IO&amp;quot;&lt;br /&gt;
# The currently described parameters are&lt;br /&gt;
## &amp;lt;integer&amp;gt; for simple integers&lt;br /&gt;
## &amp;lt;double&amp;gt; for floating point numbers&lt;br /&gt;
## &amp;lt;string&amp;gt; for string arguments&lt;br /&gt;
## &amp;lt;boolean&amp;gt; for boolean switches&lt;br /&gt;
## &amp;lt;image&amp;gt; for images. The current standard is 3d images, but may be agumented in the future&lt;br /&gt;
## &amp;lt;file&amp;gt; for files.&lt;br /&gt;
## &amp;lt;integer-vector&amp;gt; for a comma separated list of integers&lt;br /&gt;
## &amp;lt;float-vector&amp;gt; for a comma separated list of floats&lt;br /&gt;
## &amp;lt;double-vector&amp;gt; for a comma separated list of doubles&lt;br /&gt;
# Most parameters share some common attributes&lt;br /&gt;
## &amp;lt;flag&amp;gt; the short flag for this parameter, ''i.e.'' &amp;lt;flag&amp;gt;f&amp;lt;/flag&amp;gt;&lt;br /&gt;
## &amp;lt;longflag&amp;gt; the long flag for this parameter, ''i.e.'' &amp;lt;longflag&amp;gt;foo&amp;lt;/longflag&amp;gt;&lt;br /&gt;
## &amp;lt;label&amp;gt; the text to display next to the parameter&lt;br /&gt;
## &amp;lt;default&amp;gt; default value&lt;br /&gt;
## &amp;lt;description&amp;gt; a useful description of the parameter, suitable for tool tips, ''etc...''&lt;br /&gt;
## &amp;lt;constraints&amp;gt; currently &amp;lt;minimum&amp;gt;, &amp;lt;maximum&amp;gt;, and &amp;lt;step&amp;gt; for &amp;lt;integer&amp;gt; and &amp;lt;double&amp;gt;&lt;br /&gt;
# For positional arguments, an index is required, in this case Fixed and Moving images are indices 0 and 1&lt;br /&gt;
# For images, there is a &amp;lt;channel&amp;gt; tag. &amp;lt;channel&amp;gt;input&amp;lt;/channel&amp;gt; indicates that this file is read by the executable, &amp;lt;channel&amp;gt;output&amp;lt;/channel&amp;gt; indicates the executale writes the image&lt;br /&gt;
&lt;br /&gt;
==== To Do ====&lt;br /&gt;
&lt;br /&gt;
* Add radiobutton like choices&lt;br /&gt;
* Add image format discription, ''i.e.'' does this algorithm handle 2D images, need DICOM files, ''etc...''&lt;br /&gt;
* Establish convention for progress indications&lt;br /&gt;
* XSD&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== This is the example from the NAMIC Sandbox. ====&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 {practical:CommandLineAPI-Linux}1356:./CLRegistration --xml&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;executable&amp;gt;&lt;br /&gt;
   &amp;lt;category&amp;gt;registration&amp;lt;/category&amp;gt;&lt;br /&gt;
   &amp;lt;title&amp;gt;NAMIC sample registration&amp;lt;/title&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;Registers two images together using a rigid transform and MI&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
   &amp;lt;documentationurl&amp;gt;&amp;lt;/documentationurl&amp;gt;&lt;br /&gt;
   &amp;lt;license&amp;gt;&amp;lt;/license&amp;gt;&lt;br /&gt;
   &amp;lt;contributor&amp;gt;Daniel Blezek&amp;lt;/contributor&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;parameters&amp;gt;&lt;br /&gt;
     &amp;lt;label&amp;gt;Registration Parameters&amp;lt;/label&amp;gt;&lt;br /&gt;
     &amp;lt;description&amp;gt;Parameters used for registration&amp;lt;/description&amp;gt;&lt;br /&gt;
     &amp;lt;integer&amp;gt;&lt;br /&gt;
       &amp;lt;flag&amp;gt;b&amp;lt;/flag&amp;gt;&lt;br /&gt;
       &amp;lt;longflag&amp;gt;histogrambins&amp;lt;/longflag&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;Number of histogram bins to use for Mattes Mutual Information&amp;lt;/description&amp;gt;&lt;br /&gt;
       &amp;lt;label&amp;gt;Histogram Bins&amp;lt;/label&amp;gt;&lt;br /&gt;
       &amp;lt;default&amp;gt;30&amp;lt;/default&amp;gt;&lt;br /&gt;
       &amp;lt;constraints&amp;gt;&lt;br /&gt;
         &amp;lt;minimum&amp;gt;1&amp;lt;/minimum&amp;gt;&lt;br /&gt;
         &amp;lt;maximum&amp;gt;500&amp;lt;/maximum&amp;gt;&lt;br /&gt;
         &amp;lt;step&amp;gt;5&amp;lt;/step&amp;gt;&lt;br /&gt;
       &amp;lt;/constraints&amp;gt;&lt;br /&gt;
     &amp;lt;/integer&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;integer&amp;gt;&lt;br /&gt;
       &amp;lt;flag&amp;gt;s&amp;lt;/flag&amp;gt;&lt;br /&gt;
       &amp;lt;longflag&amp;gt;spatialsamples&amp;lt;/longflag&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;Number of spatial samples to use in estimating Mattes Mutual Information&amp;lt;/description&amp;gt;&lt;br /&gt;
       &amp;lt;label&amp;gt;Spatial Samples&amp;lt;/label&amp;gt;&lt;br /&gt;
       &amp;lt;default&amp;gt;10000&amp;lt;/default&amp;gt;&lt;br /&gt;
       &amp;lt;constraints&amp;gt;&lt;br /&gt;
         &amp;lt;minimum&amp;gt;1000&amp;lt;/minimum&amp;gt;&lt;br /&gt;
         &amp;lt;maximum&amp;gt;50000&amp;lt;/maximum&amp;gt;&lt;br /&gt;
         &amp;lt;step&amp;gt;1000&amp;lt;/step&amp;gt;&lt;br /&gt;
       &amp;lt;/constraints&amp;gt;&lt;br /&gt;
     &amp;lt;/integer&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;string&amp;gt;&lt;br /&gt;
       &amp;lt;flag&amp;gt;i&amp;lt;/flag&amp;gt;&lt;br /&gt;
       &amp;lt;longflag&amp;gt;iterations&amp;lt;/longflag&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;Comma separated list of iterations must have the same number of elements as learning rate&amp;lt;/description&amp;gt;&lt;br /&gt;
       &amp;lt;label&amp;gt;Iterations&amp;lt;/label&amp;gt;&lt;br /&gt;
       &amp;lt;default&amp;gt;200,100&amp;lt;/default&amp;gt;&lt;br /&gt;
     &amp;lt;/string&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;string&amp;gt;&lt;br /&gt;
       &amp;lt;flag&amp;gt;l&amp;lt;/flag&amp;gt;&lt;br /&gt;
       &amp;lt;longflag&amp;gt;learningrate&amp;lt;/longflag&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;Comma separated list of learning rates must have the same number of elements as iterations&amp;lt;/description&amp;gt;&lt;br /&gt;
       &amp;lt;label&amp;gt;Learning Rates&amp;lt;/label&amp;gt;&lt;br /&gt;
       &amp;lt;default&amp;gt;0.05,0.005&amp;lt;/default&amp;gt;&lt;br /&gt;
     &amp;lt;/string&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;double&amp;gt;&lt;br /&gt;
       &amp;lt;longflag&amp;gt;translationscale&amp;lt;/longflag&amp;gt;&lt;br /&gt;
       &amp;lt;flag&amp;gt;t&amp;lt;/flag&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;Relative scale of translations to rotations, i.e. a value of 100 means 10mm = 1 degree&amp;lt;/description&amp;gt;&lt;br /&gt;
       &amp;lt;label&amp;gt;Translation scaling&amp;lt;/label&amp;gt;&lt;br /&gt;
       &amp;lt;default&amp;gt;100.0&amp;lt;/default&amp;gt;&lt;br /&gt;
       &amp;lt;constraints&amp;gt;&lt;br /&gt;
         &amp;lt;minimum&amp;gt;10.0&amp;lt;/minimum&amp;gt;&lt;br /&gt;
         &amp;lt;maximum&amp;gt;500.0&amp;lt;/maximum&amp;gt;&lt;br /&gt;
         &amp;lt;step&amp;gt;50.0&amp;lt;/step&amp;gt;&lt;br /&gt;
       &amp;lt;/constraints&amp;gt;&lt;br /&gt;
     &amp;lt;/double&amp;gt;&lt;br /&gt;
   &amp;lt;/parameters&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;parameters&amp;gt;&lt;br /&gt;
     &amp;lt;label&amp;gt;IO&amp;lt;/label&amp;gt;&lt;br /&gt;
     &amp;lt;description&amp;gt;Input/output parameters&amp;lt;/description&amp;gt;&lt;br /&gt;
     &amp;lt;image&amp;gt;&lt;br /&gt;
       &amp;lt;name&amp;gt;Fixed&amp;lt;/name&amp;gt;&lt;br /&gt;
       &amp;lt;label&amp;gt;Fixed Image&amp;lt;/label&amp;gt;&lt;br /&gt;
       &amp;lt;channel&amp;gt;input&amp;lt;/channel&amp;gt;&lt;br /&gt;
       &amp;lt;index&amp;gt;0&amp;lt;/index&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;Fixed image to register to&amp;lt;/description&amp;gt;&lt;br /&gt;
     &amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;image&amp;gt;&lt;br /&gt;
       &amp;lt;name&amp;gt;Moving&amp;lt;/name&amp;gt;&lt;br /&gt;
       &amp;lt;label&amp;gt;Moving Image&amp;lt;/label&amp;gt;&lt;br /&gt;
       &amp;lt;channel&amp;gt;input&amp;lt;/channel&amp;gt;&lt;br /&gt;
       &amp;lt;index&amp;gt;1&amp;lt;/index&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;Moving image&amp;lt;/description&amp;gt;&lt;br /&gt;
     &amp;lt;/image&amp;gt;&lt;br /&gt;
     &amp;lt;image&amp;gt;&lt;br /&gt;
       &amp;lt;name&amp;gt;Output&amp;lt;/name&amp;gt;&lt;br /&gt;
       &amp;lt;label&amp;gt;Output Volume&amp;lt;/label&amp;gt;&lt;br /&gt;
       &amp;lt;channel&amp;gt;output&amp;lt;/channel&amp;gt;&lt;br /&gt;
       &amp;lt;index&amp;gt;2&amp;lt;/index&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;Resampled Moving Image&amp;lt;/description&amp;gt;&lt;br /&gt;
     &amp;lt;/image&amp;gt;&lt;br /&gt;
   &amp;lt;/parameters&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;/executable&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== Sample screenshots ====&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|- valign=&amp;quot;top&amp;quot;&lt;br /&gt;
!&lt;br /&gt;
&amp;lt;div class=&amp;quot;thumb tright&amp;quot;&amp;gt;&amp;lt;div style=&amp;quot;width: 182px&amp;quot;&amp;gt;[[Image:NAMICSampleRegistrationMenu.png|[[Image:180px-NAMICSampleRegistrationMenu.png|Sample GUI generated from XML above ]]]]&amp;lt;div class=&amp;quot;thumbcaption&amp;quot;&amp;gt;&amp;lt;div class=&amp;quot;magnify&amp;quot; style=&amp;quot;float: right&amp;quot;&amp;gt;[[Image:NAMICSampleRegistrationMenu.png|[[Image:magnify-clip.png|Enlarge]]]]&amp;lt;/div&amp;gt;Sample GUI generated from XML above &amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Open questions ====&lt;br /&gt;
&lt;br /&gt;
# What classes of algorithms should Slicer3 be aware of?&lt;br /&gt;
## Registration, classification, segmentation, filtering?&lt;br /&gt;
# How should Slicer3 communicate with the executables?&lt;br /&gt;
## Special FileIO objects (for ITK) has been suggested.&lt;br /&gt;
## MMapped files for efficient IO.&lt;br /&gt;
## Shared memory.&lt;br /&gt;
## Standard files.&lt;br /&gt;
# Does Slicer3 need to communicate with the executing process?&lt;br /&gt;
## For status, &amp;quot;Cancel&amp;quot; operations, ''etc''...&lt;br /&gt;
&lt;br /&gt;
=== Proposal ===&lt;br /&gt;
&lt;br /&gt;
If we adopt a standard XML description of the parameters to the algorithm, any application should be able to parse the XML and construct a GUI suitable for interaction with the software.&lt;br /&gt;
&lt;br /&gt;
Below are potential ideas for an XML file format:&lt;br /&gt;
&lt;br /&gt;
==== Initial JSON output from sample registration package ====&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 /* JSON version 1.0 */&lt;br /&gt;
 {&lt;br /&gt;
         &amp;quot;class&amp;quot; : &amp;quot;registration&amp;quot;,&lt;br /&gt;
         &amp;quot;name&amp;quot; : &amp;quot;CLRegistration&amp;quot;,&lt;br /&gt;
         &amp;quot;info&amp;quot; : &amp;quot;Register two volumes&amp;quot;,&lt;br /&gt;
         &amp;quot;executable&amp;quot; : &amp;quot;CLRegistration&amp;quot;,&lt;br /&gt;
         &amp;quot;requiredparameters&amp;quot;: {&lt;br /&gt;
                &amp;quot;fixed&amp;quot; : {&lt;br /&gt;
                      &amp;quot;type&amp;quot; : &amp;quot;file&amp;quot;,&lt;br /&gt;
                      &amp;quot;index&amp;quot; : &amp;quot;0&amp;quot;,&lt;br /&gt;
                      &amp;quot;channel&amp;quot; : &amp;quot;input&amp;quot;,&lt;br /&gt;
                      /* what about image dimension: 2, 3, ... */&lt;br /&gt;
                      },&lt;br /&gt;
                &amp;quot;moving&amp;quot; : {&lt;br /&gt;
                      },&lt;br /&gt;
                &amp;quot;output&amp;quot; : {&lt;br /&gt;
                      }&lt;br /&gt;
         &amp;quot;parameters&amp;quot; : {&lt;br /&gt;
                 &amp;quot;histogrambins&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;b&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;histogrambins&amp;quot;,&lt;br /&gt;
                         &amp;quot;displayname&amp;quot; : &amp;quot;Number of histogram bins&amp;quot;,&lt;br /&gt;
                         &amp;quot;description&amp;quot; : &amp;quot;Number of histogram bins&amp;quot;,&lt;br /&gt;
                         &amp;quot;type&amp;quot; : &amp;quot;integer&amp;quot;,&lt;br /&gt;
                         &amp;quot;guihints&amp;quot; : &amp;quot;slider&amp;quot;,&lt;br /&gt;
                         &amp;quot;range&amp;quot; : &amp;quot;[5-200]&amp;quot;,&lt;br /&gt;
                         &amp;quot;default&amp;quot; : &amp;quot;100&amp;quot;&lt;br /&gt;
                         },&lt;br /&gt;
                 &amp;quot;randomseed&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;d&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;randomseed&amp;quot;,&lt;br /&gt;
                         },&lt;br /&gt;
                 &amp;quot;gradtolerance&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;g&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;gradtolerance&amp;quot;,&lt;br /&gt;
                         },&lt;br /&gt;
                 &amp;quot;iterations&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;i&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;iterations&amp;quot;,&lt;br /&gt;
                         },&lt;br /&gt;
                 &amp;quot;learningrate&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;l&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;learningrate&amp;quot;,&lt;br /&gt;
                         },&lt;br /&gt;
                 &amp;quot;spatialsamples&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;s&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;spatialsamples&amp;quot;,&lt;br /&gt;
                         },&lt;br /&gt;
                 &amp;quot;translationscale&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;t&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;translationscale&amp;quot;,&lt;br /&gt;
                         },&lt;br /&gt;
                 &amp;quot;noinitializetransform&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;u&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;noinitializetransform&amp;quot;,&lt;br /&gt;
                         },&lt;br /&gt;
                 &amp;quot;help&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;h&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;help&amp;quot;,&lt;br /&gt;
                         },&lt;br /&gt;
                 &amp;quot;json&amp;quot; : {&lt;br /&gt;
                         &amp;quot;flag&amp;quot; : &amp;quot;j&amp;quot;,&lt;br /&gt;
                         &amp;quot;name&amp;quot; : &amp;quot;json&amp;quot;,&lt;br /&gt;
                         },&lt;br /&gt;
                 }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
XML Version of the same description&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;sl&lt;br /&gt;
         class = &amp;quot;registration&amp;quot;&lt;br /&gt;
         name = &amp;quot;CLRegistration&amp;quot;&lt;br /&gt;
         info = &amp;quot;Register two volumes&amp;quot;&lt;br /&gt;
         executable = &amp;quot;CLRegistration&amp;quot;&amp;gt;&lt;br /&gt;
         &amp;lt;requiredparameters&amp;gt;&lt;br /&gt;
                &amp;lt;requirement name=&amp;quot;fixed&amp;quot;&amp;gt;&lt;br /&gt;
                      type = &amp;quot;file&amp;quot;&lt;br /&gt;
                      index = &amp;quot;0&amp;quot;&lt;br /&gt;
                      channel = &amp;quot;input&amp;quot;&lt;br /&gt;
                      &amp;lt;!-- what about image dimension: 2 3 ... --&amp;gt;&lt;br /&gt;
                &amp;lt;/requirement&amp;gt;&lt;br /&gt;
                &amp;lt;requirement name=&amp;quot;moving&amp;quot; /&amp;gt;&lt;br /&gt;
                &amp;lt;requirement name=&amp;quot;output&amp;quot; /&amp;gt;&lt;br /&gt;
         &amp;lt;/requiredparameters&amp;gt;&lt;br /&gt;
         &amp;lt;parameters&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;histogrambins&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;b&amp;quot;&lt;br /&gt;
                         name = &amp;quot;histogrambins&amp;quot;&lt;br /&gt;
                         displayname = &amp;quot;Number of histogram bins&amp;quot;&lt;br /&gt;
                         description = &amp;quot;Number of histogram bins&amp;quot;&lt;br /&gt;
                         type = &amp;quot;integer&amp;quot;&lt;br /&gt;
                         guihints = &amp;quot;slider&amp;quot;&lt;br /&gt;
                         range = &amp;quot;[5-200]&amp;quot;&lt;br /&gt;
                         default = &amp;quot;100&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;randomseed&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;d&amp;quot;&lt;br /&gt;
                         name = &amp;quot;randomseed&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;gradtolerance&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;g&amp;quot;&lt;br /&gt;
                         name = &amp;quot;gradtolerance&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;iterations&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;i&amp;quot;&lt;br /&gt;
                         name = &amp;quot;iterations&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;learningrate&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;l&amp;quot;&lt;br /&gt;
                         name = &amp;quot;learningrate&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;spatialsamples&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;s&amp;quot;&lt;br /&gt;
                         name = &amp;quot;spatialsamples&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;translationscale&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;t&amp;quot;&lt;br /&gt;
                         name = &amp;quot;translationscale&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;noinitializetransform&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;u&amp;quot;&lt;br /&gt;
                         name = &amp;quot;noinitializetransform&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;help&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;h&amp;quot;&lt;br /&gt;
                         name = &amp;quot;help&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
                 &amp;lt;parameter name=&amp;quot;json&amp;quot;&lt;br /&gt;
                         flag = &amp;quot;j&amp;quot;&lt;br /&gt;
                         name = &amp;quot;json&amp;quot;&lt;br /&gt;
                         /&amp;gt;&lt;br /&gt;
         &amp;lt;/parameters&amp;gt;&lt;br /&gt;
 &amp;lt;/sl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Data-centric proposal ====&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;executable class=&amp;quot;registration&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;Name&amp;gt;CLRegistration&amp;lt;/name&amp;gt;&lt;br /&gt;
   &amp;lt;Description&amp;gt;Registers two images, writes the resampled moving image&amp;lt;/description&amp;gt;&lt;br /&gt;
   &amp;lt;Parameters&amp;gt;&lt;br /&gt;
     &amp;lt;Parameter required=&amp;quot;false&amp;quot; flag=&amp;quot;t&amp;quot; name=&amp;quot;threshold&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;Description&amp;gt;Threshold&amp;lt;/Description&amp;gt;&lt;br /&gt;
       &amp;lt;Type&amp;gt;integer&amp;lt;/Type&amp;gt;&lt;br /&gt;
       &amp;lt;Constraints&amp;gt;&lt;br /&gt;
         &amp;lt;Range minimum=&amp;quot;0&amp;quot; maximum=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/Constraints&amp;gt;&lt;br /&gt;
     &amp;lt;/Parameter&amp;gt;&lt;br /&gt;
     &amp;lt;Parameter required=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
     &amp;lt;/Parameter&amp;gt;&lt;br /&gt;
   &amp;lt;/Parameters&amp;gt;&lt;br /&gt;
 &amp;lt;/executable&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== GUI-centric proposal ====&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
 &amp;lt;executable class=&amp;quot;register&amp;quot;&amp;gt;&lt;br /&gt;
   &amp;lt;name&amp;gt;Register3d&amp;lt;/name&amp;gt;&lt;br /&gt;
   &amp;lt;version&amp;gt;1.0&amp;lt;/version&amp;gt;&lt;br /&gt;
   &amp;lt;description&amp;gt;This registers and resamples two images&amp;lt;/description&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
   &amp;lt;parameters&amp;gt;&lt;br /&gt;
     &amp;lt;!-- a switch is a boolean flag, likely a checkbox.&lt;br /&gt;
          on the command line, name is the long version, flag is the&lt;br /&gt;
          one character version of the argument&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
     &amp;lt;switch name=&amp;quot;interpolate&amp;quot; flag=&amp;quot;i&amp;quot; default=&amp;quot;true&amp;quot; required=&amp;quot;false&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;&lt;br /&gt;
     &amp;lt;/switch&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- a value takes a single argument, may be required to be present&lt;br /&gt;
          and has a type.  In this case, the &amp;quot;metric&amp;quot; value is constrained to be&lt;br /&gt;
          one of the listed options below.  This should be represented by a&lt;br /&gt;
          group of radio buttons or drop down menu.&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
     &amp;lt;value name=&amp;quot;metric&amp;quot; flag=&amp;quot;m&amp;quot; default=&amp;quot;mattes&amp;quot; required=&amp;quot;false&amp;quot; type=&amp;quot;string&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;description&amp;gt;&amp;lt;/description&amp;gt;&lt;br /&gt;
       &amp;lt;constraints&amp;gt;&lt;br /&gt;
         &amp;lt;list&amp;gt;&lt;br /&gt;
           &amp;lt;constraint&amp;gt;mattes&amp;lt;/constraint&amp;gt;&lt;br /&gt;
           &amp;lt;constraint&amp;gt;mi&amp;lt;/constraint&amp;gt;&lt;br /&gt;
           &amp;lt;constraint&amp;gt;normalizedcorrelation&amp;lt;/constraint&amp;gt;&lt;br /&gt;
         &amp;lt;/list&amp;gt;&lt;br /&gt;
       &amp;lt;/constraints&amp;gt;&lt;br /&gt;
     &amp;lt;/value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- an integer value with a range --&amp;gt;&lt;br /&gt;
     &amp;lt;value name=&amp;quot;threshold&amp;quot; flag=&amp;quot;t&amp;quot; type=&amp;quot;integer&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;constraints&amp;gt;&lt;br /&gt;
         &amp;lt;range minimum=&amp;quot;0&amp;quot; maximum=&amp;quot;100&amp;quot;/&amp;gt;&lt;br /&gt;
         &amp;lt;increment&amp;gt;.1&amp;lt;/increment&amp;gt;&lt;br /&gt;
       &amp;lt;/constraints&amp;gt;&lt;br /&gt;
     &amp;lt;/value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- a value argument that allow several instances of the argument to be specified.&lt;br /&gt;
          The values are appended to each other and returned in a vector.&lt;br /&gt;
          In the GUI, this could be a list of numbers in a string, or a&lt;br /&gt;
          dynamic list constructed by the user.&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
     &amp;lt;value name=&amp;quot;iterations&amp;quot; flag=&amp;quot;e&amp;quot; type=&amp;quot;iteration&amp;quot; allowrepeats=&amp;quot;true&amp;quot;&amp;gt;&lt;br /&gt;
       &amp;lt;constraints&amp;gt;&lt;br /&gt;
         &amp;lt;range minimum=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;/constraints&amp;gt;&lt;br /&gt;
     &amp;lt;/value&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- xor specifies that only one of it's contained parameters&lt;br /&gt;
          be specified.  In this case, we want a file or url, but not&lt;br /&gt;
          both --&amp;gt;&lt;br /&gt;
     &amp;lt;xor&amp;gt;&lt;br /&gt;
       &amp;lt;value name=&amp;quot;file&amp;quot; flag=&amp;quot;f&amp;quot; type=&amp;quot;filename&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;value name=&amp;quot;url&amp;quot; flag=&amp;quot;u&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;/xor&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
     &amp;lt;!-- unlabeledvalue do not have a flag associated with them, and are positional.&lt;br /&gt;
          In this case, we are looking for 3 filenames.&lt;br /&gt;
          --&amp;gt;&lt;br /&gt;
     &amp;lt;unlabeledvalue name=&amp;quot;fixedimage&amp;quot; position=&amp;quot;0&amp;quot; type=&amp;quot;filename&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;unlabeledvalue name=&amp;quot;movingimage&amp;quot; position=&amp;quot;1&amp;quot; type=&amp;quot;filename&amp;quot;/&amp;gt;&lt;br /&gt;
     &amp;lt;unlabeledvalue name=&amp;quot;outputimage&amp;quot; position=&amp;quot;2&amp;quot; type=&amp;quot;filename&amp;quot;/&amp;gt;&lt;br /&gt;
   &amp;lt;/parameters&amp;gt;&lt;br /&gt;
 &amp;lt;/executable&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== JSON description ====&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 /* JSON version 1.0&lt;br /&gt;
    January 11, 2005 */&lt;br /&gt;
 {&lt;br /&gt;
   &amp;quot;class&amp;quot; : &amp;quot;registration&amp;quot;,&lt;br /&gt;
   &amp;quot;name&amp;quot; : &amp;quot;CLRegistration&amp;quot;,&lt;br /&gt;
   &amp;quot;info&amp;quot; : &amp;quot;Registers two images, writes the resampled moving image&amp;quot;,&lt;br /&gt;
   &amp;quot;executable&amp;quot; : &amp;quot;CLRegistration&amp;quot;,&lt;br /&gt;
   &amp;quot;parameters&amp;quot; :&lt;br /&gt;
 	&amp;quot;threshold&amp;quot; : {&lt;br /&gt;
 		&amp;quot;info&amp;quot; : &amp;quot;threshold&amp;quot;&lt;br /&gt;
 		&amp;quot;flag&amp;quot; : &amp;quot;t&amp;quot;,&lt;br /&gt;
 		&amp;quot;required&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
 		&amp;quot;type&amp;quot; : &amp;quot;integer&amp;quot;,&lt;br /&gt;
 		&amp;quot;default&amp;quot; : &amp;quot;50&amp;quot;,&lt;br /&gt;
 		&amp;quot;contraints&amp;quot; : {&lt;br /&gt;
 			&amp;quot;range&amp;quot; : {&lt;br /&gt;
 				&amp;quot;minimum&amp;quot; : &amp;quot;0&amp;quot;,&lt;br /&gt;
 				&amp;quot;maximum&amp;quot; : &amp;quot;100&amp;quot; } },&lt;br /&gt;
 		&amp;quot;guihints&amp;quot; : {&lt;br /&gt;
 			&amp;quot;control&amp;quot; : &amp;quot;slider&amp;quot;,&lt;br /&gt;
 			&amp;quot;group&amp;quot; : &amp;quot;preprocessing&amp;quot; } },&lt;br /&gt;
 	&amp;quot;xsigma&amp;quot; : {&lt;br /&gt;
 		&amp;quot;info&amp;quot; : &amp;quot;X Direction in sigma&amp;quot;,&lt;br /&gt;
 		&amp;quot;flag&amp;quot; : &amp;quot;x&amp;quot;,&lt;br /&gt;
 		&amp;quot;required&amp;quot; : &amp;quot;false&amp;quot;,&lt;br /&gt;
 		&amp;quot;type&amp;quot; : &amp;quot;float&amp;quot;,&lt;br /&gt;
 		&amp;quot;default&amp;quot; : &amp;quot;1.0&amp;quot;,&lt;br /&gt;
 		&amp;quot;contraints&amp;quot; : {&lt;br /&gt;
 			&amp;quot;range&amp;quot; : {&lt;br /&gt;
 				&amp;quot;minimum&amp;quot; : &amp;quot;0&amp;quot;,&lt;br /&gt;
 				&amp;quot;maximum&amp;quot; : &amp;quot;5.0&amp;quot; } },&lt;br /&gt;
 		&amp;quot;guihints&amp;quot; : {&lt;br /&gt;
 			&amp;quot;control&amp;quot; : &amp;quot;slider&amp;quot;,&lt;br /&gt;
 			&amp;quot;group&amp;quot; : &amp;quot;preprocessing&amp;quot; } },&lt;br /&gt;
 	&amp;quot;fixedfile&amp;quot; : {&lt;br /&gt;
 		&amp;quot;info&amp;quot; : &amp;quot;Fixed Image&amp;quot;,&lt;br /&gt;
 		&amp;quot;order&amp;quot; : &amp;quot;0&amp;quot;,&lt;br /&gt;
 		&amp;quot;required&amp;quot; : &amp;quot;true&amp;quot;,&lt;br /&gt;
 		&amp;quot;type&amp;quot; : &amp;quot;file&amp;quot;,&lt;br /&gt;
 		&amp;quot;contraints&amp;quot; : {&lt;br /&gt;
 			&amp;quot;filetypes&amp;quot; : [&lt;br /&gt;
 				&amp;quot;ITK&amp;quot;,&lt;br /&gt;
 				&amp;quot;Slicerd&amp;quot;,&lt;br /&gt;
 				&amp;quot;MRML&amp;quot; ] },&lt;br /&gt;
 		&amp;quot;guihints&amp;quot; : {&lt;br /&gt;
 			&amp;quot;control&amp;quot; : &amp;quot;fileselection&amp;quot;,&lt;br /&gt;
 			&amp;quot;group&amp;quot; : &amp;quot;io&amp;quot; } },&lt;br /&gt;
 &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Related Work ===&lt;br /&gt;
&lt;br /&gt;
==== MetaCommand ====&lt;br /&gt;
&lt;br /&gt;
Julien Jomier and Stephen Aylward have added support for command line parsing to itk with the MetaCommand class (Utilities/MetaIO/metaCommand.{h,cxx}). It supports a -xml flag to output args in an xml syntax.&lt;br /&gt;
&lt;br /&gt;
==== Qt Designer XML Format ====&lt;br /&gt;
&lt;br /&gt;
Qt has an xml syntax for representing their GUI layouts. It's unclear if this tool could be used to design layouts used by other GUI packages.&lt;br /&gt;
&lt;br /&gt;
==== ParaView Server ====&lt;br /&gt;
&lt;br /&gt;
ParaView has a syntax to extend the GUI described [http://www.paraview.org/Wiki/ParaView:Extend on their wiki here].&lt;br /&gt;
&lt;br /&gt;
==== LONI Pipeline ====&lt;br /&gt;
&lt;br /&gt;
Parameters to executables are described in an XML file as part of the process of wrapping them for the pipeline. These XML descriptions are quite similar to the example given above. Some example pipelines are available at the [http://www.loni.ucla.edu/twiki/bin/view/Pipeline/PipelineModules Pipeline Wiki]. A working draft of the language description is found also on the [http://www.loni.ucla.edu/twiki/bin/view/Pipeline/DeveloperDocumentation Wiki].&lt;br /&gt;
&lt;br /&gt;
==== JSON ====&lt;br /&gt;
&lt;br /&gt;
Mike Halle suggested looking a JSON to describe the command line arguments to the parser, then to fill in the values from the command line. With this description, a GUI could build an interface for your code and/or communicate with your executable using JSON. Requires a standard set of elements.&lt;br /&gt;
&lt;br /&gt;
[http://www.json.org/ JSON (JavaScript Object Notation)] is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== DICOM Working Group 23 ====&lt;br /&gt;
&lt;br /&gt;
Dave Channin suggests this group be aware of the efforts of [http://medical.nema.org/DICOM/minutes/WG-23/ DICOM Working Group 23] along these lines. Although termed ''application hosting'' the work group is defining a DICOM standard mechanism by which a workstation can ''invoke'' an algorithm, send it (DICOM) data and receive from it (DICOM) results (as well as statuses, etc.) Although still in draft form they are thinking about using web services and in particular, [http://www.globus.org/ogsa/ OGSA (Open Grid Services Architecture)]. This has the interesting repercussion of allowing invoked algorihtms to be run locally or over the grid. This effort may be of interest to this group along two lines: 1) IMNSHO, Slicer should support the DICOM WG23 plug so as to be able to invoke compliant algorithms, and 2) Algorithm developers need to decide whether to add their specific functionality to ''base Slicer'' or as a DICOM WG23. In th elatter case it would then be possible to run these (presumably VTK and iTK based) algorithms not only on Slicer but on other (potentially commercial workstations) that support DICOM WG23. (I hope this is the right group to consider this).&lt;/div&gt;</summary>
		<author><name>Andy</name></author>
		
	</entry>
</feed>