|
General Discussion:
Several software developers, those who's cave survey software is under the most active development, have been contacted and asked for input. Their useful comments are coming in all the time and to some degree are replicated below: (I readily recognize that I don't have enough input from our European counterparts. This is not an intentional effort to ignore them, I merely don't have the names or email addresses of the right people to contact. Any suggestions to fix this situation will be gratefully accepted.)
Feedback on v0.4
From Garry Petrie -
[
I did add a tag to version 0.4 for the purpose of housing such processing
instructions. The tag I chose is <Handling> but already I'm thinking this
should be changed to <Processing>. This will need further expansion to
establish the children or data types that could be housed within this
"processing" portion of each shot. Send some ideas on what you think
appropriate tags of flags should be. I'll also be more liberal with the
<Comment> tag. It should basically appear in every major subsection of
the file hierarchy.
I'm also thinking of adding a <Heading> tag. This would contain all the
header information that doesn't fit inside a pair of survey tags, like
CaveName, GeographicData, CaveNumber, etc. After doing this there would be just
three children of the root <CaveSurvey> tag, - <DataFileVersion>,
<Heading> and
<Survey> DSK
]
Feedback on v0.3 From Taco van Ieperen -
[
At this point in the game the product is so underdeveloped that
I can't attempt to enforce compatability between versions 1, 2, and 3. But in
the future I agree, backward compatability is a design goal. Compatability will
become very serious when we get to a version 1.0, which should represent the
"baseline" implementation from which all future work builds. I'm using
DataFileVersion now at the suggestion of others to keep track of where we are
in the development process. In the future the data inside this tag could be
used by an application developer to understand what types of data might appear
in a given XML file. For example, v1.0 might not support cave diving survey
data, but maybe version 2.0 will. An application could gain some basic
information based on that simple element. DSK
]
[I'm starting to think the same thing, too. I threw the
<EquivalentStation>
in there to see how it would work. It is nice having it in the context to which
it applies, i.e. within the <From> or <To> tag pair that it
describes, but I'm having second thoughts. There's also merit to placing it at
a "global" level as you suggest. Further though, there's the talk underway in
the UIS discussion for using XPointer and Xlinks to associate data elements in
one location (or file) with data elements in another location (or file). This
will innevitably be one of the thornier issues to work out. I'm not wedded to
what we have now, but I'd like to keep it there for the time being. Atleast
until some more thought and research can be brought to bear. DSK]
[Great one, thanks. I assume accruacy will be an attribute of each type of
instrument (compass, clino, tape, etc.). There fore I'll add a tag like
<Accuracy> to each of the "instrument" element structures, right alongside
the <Correction> tag. DSK]
[I think this is a good call too. And I'll up the ante. Since we're placing
data at the global level we should naturally create the ability to override it
at the global level. E.g. suppose for some reason someone sneaks a shot into
the middle of the survey that isn't decimal feet, but is instead feet and
inches. A tag incorporated in that shot would tell you the units used for that
particular shot and allow the processing software to deal with it accordingly.
If not local units were indicated for a shot then the global units would be
used. DSK]
[Actually, this is already in there. If you look immediately below the tag
<StationName> you'll see it. But this brings up a point I've been
thinking about. I'm
not really pleased with the method I've used to organize the data of a survey.
What we have here starts with a highlevel <CaveSurvey> that contains
<Shot>s, each of which contains a single <From> station and a single
<To> station. This is a decent hierarchical representation of a cave
survey but there may be some method of crafting a less cumbersome structure.
Something
similar to what gets entered into the survey book. I've got to think about
this one more. But suggestions would defintely be helpful here. DSK]
[OK, I need my soap box for this one. Here's a very clear instance of mixing
presentation into the survey data.
I agree that cavers want to see their data
"presented"
in exactly the same way they entered it into the "editing application" but
tracking the settings of that "presentation layer data" should be handled
seperately from the storage of actual cave survey data. Those presentation
settings should be recorded for later use, but they should be recorded in an
"application data" file, and not the "survey data" file. For instance, the
application developer could save the user's "Editor Appearance" configuration
settings in an XML file called EditorSettings.XML. But there's no reason for
those settings to go into the actual CaveSurvey data file. That would introduce
exactly
the kind of data that some other cave survey rendering program would view as
unnecessary. Please see the comments on this topic in my rant titled "
Data Quality Comments
" below. Soapbox off. DSK]
[Differentiating between surveys was suggested buy someone else previously
(maybe you). But I haven't put much effort into it just yet. The difficulty is
knowing when you actually go from below ground to above ground. Unless you use
two different surveys (with different names) it could be different. For
instance, if I survey my way out of an entrance, down the valley and into
another entrance, I haven't done anything to indicate I'm out of the cave. I
know this normally doesn't occur but I use it to illustrate that surveying
below ground differs little from surveying above ground. You just lose the
left, right, up and down. One way of dealing with this is to add a comment,
either globally if the entire survey is above ground that tells you this is a
surface survey, or locally if you just have a few shots within a survey that
are above ground. This could be taken to the other extreme too, how do we know
when we're looking at a regular cave survey versus a diving cave survey?
Knowing how to handle a shot, i.e. whether it counts in the system length, is a
good one. I consider this kind of thing to be a processing instruction, that
while not recorded in the cave, definitely applies to how the survey data should
be handled (and is not a presentation issue like order of entry). The
difficulty here is coming up with a convention that software developers can all
agree upon. This one borders very closely on proprietary extenstions but I'll
try to get something into the next version that address this.
Thanks for all the excellent commentary Taco. You've definitely made a big
contribution. DSK]
Feedback on the Second draft, v0.2 From Larry Fish -
The only suggestion I have at this point is to maybe add
one more layer of
hierarchy above the <CaveSurvey> level.
For example, it is often useful to group several caves together into a system.
You might
want to add a tag like
<CaveSystem>
Another approach would be have the groupings done with a
separate file
which controls how the different caves are assembled into a
system. This
would make the system more flexible because you would not have
to
subdivide a file if you wanted to work with individual caves.
[
This second suggestion is probably the better approach. There are two
developments within the XML world, Xpointers and Xlinks, that facilitate the
association of files, and their constituent data to one another. Conversation
has begun on the Cave Surveying discussion group to develop an international
standard similar to the effort presented here. In that conversation Xpointers
and Xlinks have been discussed as methods of associating one survey to another
in different files, or even equating one station to another, in the same file
or a different file. I'll probably watch developments in that group while
continuing to make progress with this effort. DSK]
Developer feedback on the first draft:
Opening comments, before the first draft submission:
|
|
Developer Feedback on the first draft of Cave Survey data in XML
December 19, 2000 -
From Larry Fish
From Garry Petrie
From Ralph Hartley
Earlier Discussions:
Data Quality Comments from Devin Kouts: After reviewing the proprietary data formats of Compass, OnStation, Survex, Walls and WinKarst I've noticed a state of affairs, that if left unaddressed, will undermine the simiplicity of an eventual XML solution to representing cave survey data. Probably for convenience sake, the various authors of cave survey rendering software have slipped into the habit of storing proprietary data elements within the same file as the raw cave survey data. This is a poor practice for at least three reasons.
In order to insure the highest possible integrity of raw cave survey data, authors of cave survey software should endeavor to store modifying data, proprietary data, or data derived from processing, in a seperate data store (i.e. file). These practices increase the quality of cave survey data collectively and make survey data more interchangeable because there's less need to navigate "extraneous" elements added into the raw data store. Data is sacred. Science lives and dies upon the quality of the data it collects. Therefore the treatment of data must be taken seriously and its integrity protected at every turn. Surveyors are ultimately responsible for the quality of the data they collect in the pursuit of cave science. But, application developers hold an obligation to the "data collector" to protect the data and minimize any possibility of data corruption in the subsequent processing, representation and transfer of that data. |