<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.opendap.org/index.php?action=history&amp;feed=atom&amp;title=DAP4%3A_DAP4_Projection_Syntax</id>
	<title>DAP4: DAP4 Projection Syntax - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://docs.opendap.org/index.php?action=history&amp;feed=atom&amp;title=DAP4%3A_DAP4_Projection_Syntax"/>
	<link rel="alternate" type="text/html" href="https://docs.opendap.org/index.php?title=DAP4:_DAP4_Projection_Syntax&amp;action=history"/>
	<updated>2026-04-21T10:21:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.4</generator>
	<entry>
		<id>https://docs.opendap.org/index.php?title=DAP4:_DAP4_Projection_Syntax&amp;diff=9498&amp;oldid=prev</id>
		<title>DennisHeimbigner: Created page with &quot;DevelopmentDAP4  &lt;&lt; Back to OPULS Development  ==Background== Currently, the syntax for &quot;projection&quot; constraints ...&quot;</title>
		<link rel="alternate" type="text/html" href="https://docs.opendap.org/index.php?title=DAP4:_DAP4_Projection_Syntax&amp;diff=9498&amp;oldid=prev"/>
		<updated>2013-02-08T20:44:50Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&lt;a href=&quot;/index.php/Category:Development&quot; title=&quot;Category:Development&quot;&gt;Development&lt;/a&gt;&lt;a href=&quot;/index.php/Category:DAP4&quot; title=&quot;Category:DAP4&quot;&gt;DAP4&lt;/a&gt; &lt;a href=&quot;/index.php/OPULS_Development&quot; title=&quot;OPULS Development&quot;&gt; &amp;lt;&amp;lt; Back to OPULS Development&lt;/a&gt;  ==Background== Currently, the syntax for &amp;quot;projection&amp;quot; constraints ...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:Development|Development]][[Category:DAP4|DAP4]]&lt;br /&gt;
[[OPULS_Development| &amp;lt;&amp;lt; Back to OPULS Development]]&lt;br /&gt;
&lt;br /&gt;
==Background==&lt;br /&gt;
Currently, the syntax for &amp;quot;projection&amp;quot; constraints in the spec&lt;br /&gt;
looks roughly like this:&lt;br /&gt;
: /group1/.../groupn/struct1[a1:b1].field2[a2:b2].struct3[a3:b3].field4[a4:b4]&lt;br /&gt;
&lt;br /&gt;
In looking how John handled this in CDM, I noticed that he used a different but equivalent notation that strikes me a superior.&lt;br /&gt;
&lt;br /&gt;
==Proposal==&lt;br /&gt;
Basically, the proposal is to push all of the indexing to the end of the expression. So we now would have (using the above example):&lt;br /&gt;
: /group1/.../groupn/struct1.field2.struct3.field4[a1:b1][a2:b2][a3:b3][a4:b4]&lt;br /&gt;
&lt;br /&gt;
==Rationale==&lt;br /&gt;
Assuming one has the rank info for the intermediate structs and fields, the two&lt;br /&gt;
forms are equivalent. The advantage of this format is that it has a simpler syntax and is easier to parse. It is basically an FQN followed by a sequence of slice specs.&lt;br /&gt;
&lt;br /&gt;
[[User:dmh|Dennis]]&lt;/div&gt;</summary>
		<author><name>DennisHeimbigner</name></author>
	</entry>
</feed>