Joel,  Here are my comments on the initial requirements list.  I read the notes 
from Chuck Acton and strongly agree with them.  In particular, it seems to be 
important to understand the time frame over which these requirements will be 
implemented, thus, helping to establish priorities.  Also, the timeframe would 
be helpful in determining how the system could be built in stages; which 
functions would benefit from future technology development, etc.  Also, I was 
concerned about the amount of data processing in the requirements, particularly 
offering services and links to systems supported outside of PDS.

In addition, the scope of some of the requirements need more description to 
understand what they are requiring.

It would also be helpful to outline the process flow of data from data providers 
into pds and its functions.  For example, during ingest data should not be store 
in operational repositories until it is validated and the interfaces and data 
bases that support that data are updated and ready for use.

Finally, my comments listed below (starting with a >) were based on reading the 
initial requirements lists and not the revised ones below.

Requirements List - 2003-07-03 (Revision 1): 
==========================================

1. Functional Requirements 
--------------------------
FR.SYS.1 The system shall provide the following functions:
1.1 Ingest --------- ING - Recieve and store holdings 
1.2 Validate ------- VAL - Validate holdings 
1.3 Track ---------- TRK - Track the status of holdings 
1.4 Search --------- SCH - Find holdings 
1.5 View ----------- VIE - View holdings 
1.6 Retrieve ------- RET - Get holdings 
1.7 Geometry ------- GEO - Get and use geometric information about holdings 
1.8 Correlate ------ COR - Correlate holdings with each other 
1.9 Process -------- PRC - Run processes on holdings 
1.10 Transfer ------- TRN - Transfer holdings to other systems or media 
1.11 Subscribe ------ SUB - Subscribe to notification services 
1.12 Administer ----- ADM - Monitor and update the state of the system

Note that a "holding" is defined as any object held in the system 
that is searchable and retrievable. 
Note also that there are no Distribution or Archive functions because 
these are accomplished through combinations of more basic functions. 
Distribution is accomplished through a combination of the View, Search, 
Retrieve, Transfer, and Subscribe functions. Data archiving is performed 
through the Transfer function, where data are tranferred to long-term 
media and the NSSDC.

1.1 Ingest Requirements 
-----------------------
FR.ING.1 [The ingest function] shall provide an online mechanism 
for delivering data to the PDS (CN).

>Does this mean delivery of complete datasets or pieces of data sets (e.g. only 
>data products).  The delivery of a data set may be a collaboration between the 
>producer and a PDS node.

FR.ING.2 [The ingest function] shall provide a mechanism for 
delivering data to the PDS on physical media (CN).
FR.ING.3 [The ingest function] shall provide a mechanism for 
submitting data set catalog information through catalog files 
that are part of the data delivery (CN).
FR.ING.4 [The ingest function] shall provide an online mechanism 
for submitting data set catalog information, independent of data 
delivery (CN, xCR.18.2 and xCR.18.5 - p12).
FR.ING.5 [The ingest function] shall provide an online mechanism 
for submitting changes to the Planetary Science Data Dictionary 
(PSDD), independent of data delivery (CN).
FR.ING.6 [The ingest function] shall provide an online mechanism 
for creating and updating local data dictionaries, independent of 
data delivery (OO.1.4, xCR.8.26 - p41).
FR.ING.7 [The ingest function] shall automatically store all data 
delivered to the PDS in an accessible online or nearline repository 
(xCR.13.17 - p18).
FR.ING.8 [The ingest function] shall automatically build/update 
online data set and product catalogs when new data are delivered 
to the PDS (CN).

>  How automatic?  What catalogs does this mean?

FR.ING.9 [The ingest function] shall automatically build/update 
a default web interface to the data when new data are delivered 
to the PDS (xCR.16.2, xCR.8.27 - p30).

> Why default interface, what about custom ones?

FR.ING.10 [The ingest function] shall provide an online mechanism 
for updating product catalogs with new or corrected metadata, for 
example, when better geometry information becomes available. 
(FR.1.1.2, xCR.18.50.6 - p14 and xCR.8.17 - p15).
FR.ING.11 [The ingest function] shall provide an online mechanism 
for describing resources to the system, adding new resources, and linking 
to those resources (xCR.1.3.2 - p35).
FR.ING.12 [The ingest function] shall provide an online mechanism 
for associating data and ancillary products with each other and 
defining new collections of products (Anne).

1.2 Validate Requirements 
-------------------------
FR.VAL.1 [The validation function] shall provide a suite of archive 
production tools to help data submitters create PDS-compliant data 
releases (FR.1.1.2, xCR.114.2.17 - p10).
FR.VAL.2 The archive production tool suite shall provide the 
following capabilities (FR.1.1.2, xCR.114.2.17 - p10):
1. Generate index tables from a set of product labels 
2. Generate labels for index tables 
3. Generate catalog files from online catalog information

> Need tool to generate labels from an index or index-like table.

FR.VAL.3 [The validation function] shall provide a suite of 
validation tools to determine the PDS standards compliance of 
every data release (xCR.13.30 - p41, xCR.13.50.5 - p41, FR.1.1.2, 
xCR.18.50.4, OO.1.6, xCR.18.3 - p43, xCR.8.10 - p44).
FR.VAL.4 The validation tool suite shall provide the following tests 
(CN, FR.1.1.2, xCR.18.50.4, OO.1.6, xCR.18.3 - p43, xCR.8.10 - p44):
1. Check that required directories and files are present 
2. Check that every file is pointed to by a PDS label 
3. Check every label for the following: 
A. Valid syntax. 
B. Valid metadata (i.e., all metadata is in the data dictionary) 
C. Correct pointing to one or more files. 
D. Correct description of file properties (e.g., RECORD_BYTES) 
4. Check that ASCII files are properly formed 
5. Check that the index tables are properly formed and correctly 
point to online data 
6. Check catalog files are properly formed and match information 
contained in the data set catalog 
7. Ensure that updated catalog files can be ingested without 
violating the referential integrity of the data set catalog

> We need to have tool(s) that checks that labels properly describe the data and 
> that can process large numbers of data files without user input.  I personally 
> have low confidence in NASAview given the repeated and seemly continuous 
> revisions and often having it not do what it is expected to do. It seems to 
> have gone way past its original goals.  Also, need tool to check that label 
> keyword values are consistent across the data products in a data set and the 
> label and keywords are consistent across the data products.  Right now lvtool 
> checks individual files, but there is no tool to check one data product label 
> is consistent with the others in the data set.

FR.VAL.5 [The validation function] shall provide a mechanism to 
augment the validation tool suite with additional tests, for 
example those designed for a particular mission, data set, or 
data type (CN).
FR.VAL.6 [The validate function] shall provide a mechanism for 
running the validation tests automatically on a data delivery, 
with one of the following results (CN, FR.1.1.2, xCR.18.50.4, 
OO.1.6, xCR.18.3 - p43, xCR.8.10 - p44):
1. All the tests run successfully, and the data delivery is 
deemed valid, and a summary report is generated. 
2. One or more of the tests failed, the data delivery is deemed 
not valid, and a detailed report is generated. 
FR.VAL.7 [The validate function] shall provide an online mechanism 
for running the validation tests interactively from a location 
remote from the data (CN). 

1.3 Track Requirements 
----------------------
FR.TRK.1 [The track function] shall keep a record of the status 
and location of every data release as it progresses through the 
following phases of mission archive production (CN):
1. Production 
2. Transfer (i.e., delivery) 
3. Validation 
4. Distribution 
5. Reprocessing 
6. Preservation

> These phases should match or trace back to the high level functions listed 
> under 1.0.

FR.TRK.2 [The track function] shall keep a record of the following 
properties of every data release (CN, Cassini Tracker, xCR.10.10 - 
p34, xCR.10.2 - p34, xCR.4.1.9 - p35, xCR.10.4 - p34, FR.1.2.6, 
xCR.10.1 - p34, and xCR.10.5 - p35):
1. Data Set ID 
2. Release ID 
3. Release version ID 
4. Release description 
5. Online location (URL) 
6. Data provider (i.e., instrument team) 
7. Data distributor (i.e., PDS data or discipline node) 
8. Release phase (e.g., production, transfer, etc.) 
9. Expected date of delivery to the PDS 
10. Actual date of delivery to the PDS 
11. Expected date the release will be available to the community 
12. Actual date the release is made available to the community 
13. Number of files in the release 
14. Size of the release in bytes 
15. Product type(s) in the release 
16. Release coverage (e.g., a list of start/stop times) 
17. Whether the data set has been peer reviewed 
18. Whether the release has been validated 
19. Coverage gaps that need to be resolved by the instrument team 
20. Other liens against the release 
21. Other errata of the release

> Seems overly detailed, not sure whether tracking this much information 
> would become overly burdensome and thus less likely for people to keep the 
> information up-to-date and accurate.  What is really essential here?

FR.TRK.3 [The track function] shall track the progress of every data 
delivery from an instrument team to a PDS data or discipline node, 
through the following phases (Cassini Tracker): 
1. Data delivered 
2. Delivery acknowledged 
3. Delivery resolved, with one of the following results: 
A. Delivery accepted (by PDS) 
B. Delivery rejected (by PDS) 
C. Delivery withdrawn (by instrument team)

> Data does not always come from instrument teams.

FR.TRK.4 [The track function] shall keep a record of the following 
properties of every data delivery from an instrument team to a PDS 
data or discipline node (Cassini Tracker): 
1. Delivery ID 
2. Release ID (For release being transferred or updated) 
3. Release Version ID (For release being transferred or updated) 
4. Whether the release is complete following this delivery 
5. Date the delivery was made (or "N/A" if not delivered yet) 
6. Date the delivery was acknowledged (or "N/A" if not acknowledged yet) 
7. Date the delivery was resolved (or "N/A" if not resolved yet) 
8. Delivery medium 
9. Size of delivery in bytes 
10. Checksum for delivery 
11. Manifest for all files delivered

>  What is the difference between delivery id and release id?

FR.TRK.5 [The track function] shall provide an online mechanism to 
inform the recipient when a delivery has been made (Cassini Tracker). 
FR.TRK.6 [The track function] shall provide an online mechanism for 
the recipient of a delivery to acknowledge receipt of delivery 
(Cassini Tracker).
FR.TRK.7 [The track function] shall send email reminders to 
instrument teams when their deliveries are late (Cassini Tracker).
FR.TRK.8 [The track function] shall provide an online mechanism 
for generating and posting a list of all expected deliveries that 
are late (Cassini Tracker).
FR.TRK.9 [The track function] shall provide an online mechanism for 
generating reports showing the status of all releases for a given 
data set, a given instrument, or within a given time frame (Cassini 
Tracker).

1.4 Search Requirements 
-----------------------
FR.SCH.1 [The search function] shall provide an online mechanism 
for locating the following kinds of objects stored in the system, 
using a set of search parameters (CN):
1. Data sets 
2. Data products 
3. Ancillary files (e.g., documents, software, or calibration files) 
4. Metadata describing data sets 
5. Metadata describing data products 
6. Metadata describing ancillary files
FR.SCH.2 [The search function] shall provide a mechanism for 
searching for data sets by a set of parameters, including 
(xCR.13.8 - p16):
1. Target 
2. Mission 
3. Instrument host (e.g., spacecraft) 
4. Instrument name 
5. Instrument type 
6. Data type 
7. Curating node 
8. Start/stop times 
9. Ephemeris 
10. Wavelength 
11. Data set ID 
12. Citation ID

> Also product type.  Not always wavelength, could be frequency or energy, for 
> example.

FR.SCH.3 [The search function] shall provide a mechanism for 
searching for data products by any set of keywords in the Planetary 
Science Data Dictionary (PSDD) (CN, FR.1, xCR.8.4 - p8 and 
xCR.17.3 - p17).
FR.SCH.4 [The search function] shall provide a master index that 
enables searching for products within a data set or group of 
correlated data sets (e.g., data sets all belonging to a mission) 
(FR.1.1.1, xCR.13.20 - p8).
FR.SCH.5 [The search function] shall provide a hierarchy of keywords 
to support correlative search across the following collections 
(OO.2.2, xCR.15.12 - p50, xCR.16.5 - p50):
1. All data in the PDS 
2. All data for a given target 
3. All data for a given mission 
4. All data for a given instrument 

> Could also include instrument type. For example, Mars imaging or Jupiter or 
> Saturn images.

FR.SCH.6 [The search function] shall provide the ability to locate 
all documentation and software tools distributed by the PDS 
(xCR.32.8 - p3).
FR.SCH.7 [The search function] shall support differing coordinate 
systems for searching (FR.1.2.5, xCR.14.1.1 - p31).

>  Be more specific.

FR.SCH.8 [The search function] shall provide a general method for 
associating products with other products, whether of the same or 
different types. This method shall be capable of assigning 
associations after the data are archived and storing the associations 
for use by the search function, e.g., "find all calibration products 
associated with this data product". (xCR.8.2 - p52).
FR.SCH.9 [The search function] shall enable all search methods that 
apply to data products to apply to other system resource types, 
including software, documentation, calibration, and browse resources 
[We have to decide whether to call these products or resources or 
both] (OO.2.6, xCR.8.15 and xCR.8.16 - p52).
FR.SCH.10 [The search function] shall enable searching for landing 
sites or observational target areas using attributes considered high 
priority according to program or mission goals, for example those 
identified by the Mars Exploration Payload Analysis Group (MEPAG) 
(xCR.28.13 - p53).
FR.SCH.11 Given a citation from the ADS bibliographic reference 
system, [the search function] shall provide a mechanism for finding 
the data set(s) or product(s) associated with the citation 
(xCR.18.6 - p43).

> Given a reference within a data set provide link to that reference in ADS 
> (some ADS references can be accessed on-line).

> Has the unique product id requirement gone away?  I had several issues that 
> that one.

1.5 View Requirements 
---------------------
FR.VIE.1 [The view function] shall provide a mechanism for viewing all 
holdings in the PDS (OO.1.6, called "browsing" in xCR.13.24 - p41, 
xCR.8.11 - p44).

> Be specific as to what viewing means.

FR.VIE.2 [The view function] shall provide a standard way to 
navigate through the directories of a data set stored online and 
view individual files, as though viewing a well-organized web site 
(xCR.15.17 - p16).
FR.VIE.3 [The view function] shall provide an online mechanism for 
previewing a representation of the data in order to determine whether 
it is appropriate for further actions, such as downloading (xCR.17.10 - p16).
FR.VIE.4 [The view function] shall provide a mechanism for overlaying 
image data with the following (FR.1.22, xCR.1.4.1.3, xCR.14.4):
1. Textual information 
2. Feature information 
3. Topographic information 
4. Ground tracks of other data 
5. Latitude/longitude grids
[Need node input for viewing data in other representations, e.g., 
plots, graphs, false-color, etc.]

> Seems highly ambitious , particularly for non geo-referenced EDR data.

1.7 Retrieve Requirements 
-------------------------
FR.RET.1 [The retrieve function] shall support the downloading on 
demand of any online data or ancillary product, given one of the 
following (xCR.13.11, OO.2.6, xCR.8.1 - p51):
1. The online file specification of the product's label 
2. The unique product ID
FR.RET.2 [The retrieve function] shall inform the user of download 
file size and estimated download time prior to committing to the 
actual download (xCR.17.11 - p16, xCR.13.14).
FR.RET.3 [The retrieve function] shall inform the user if the 
download file size is too large for the system to handle (CN).
FR.RET.4 [The retrieve function] shall provide a means of ordering 
collections of products other that cannot be downloaded (CN).
FR.RET.5 [The retrieve function] shall inform the user how long it 
will take to deliver an ordered product (xCR.13.15 - p18).
FR.RET.6 [The retrieve function] shall enable the automated packaging 
of selected data with all associated files and supporting information 
for download (FR.1.2.2, xCR.13.10 p17).
FR.RET.7 [The retrieve function] shall enable the on-demand packaging 
of files for download in TAR or ZIP format (xCR.13.14 - p17).
FR.RET.8 [The retrieve function] shall enable the on-demand building 
of PDS compliant volumes, combining the data sought with related 
ancillary files. These volumes may be downloaded or written to 
physical media (see FR.TRN.X1). (xCR.13.9)

>  I think this is very high priorty.

FR.RET.9 [The retrieve function] shall enable the downoad of large 
data volumes (FR.1.2.2, xCR.14.2.8) through FTP (xCR.14.1.15).
FR.RET.10 [The retrieve function] shall support the distribution of 
large quantities of data (xCR.14.1.2).
FR.RET.11 [The retrieve function] shall enable a user to input a 
unique product ID (e.g., data set ID plus product ID) and recieve the 
product, regardless of its location on the system (xCR.14.1.7).

> would need to handle data at multiple locations (several pds nodes or pds 
> node and data node).

FR.RET.12 [The retrieve function] shall enable off-line data to be 
tracked, ordered, and retrieved through the same channel as data kept 
on line (FR.1.2.2, xCR.8.19 - p30).
FR.RET.13 [The retrieve function] shall enable the on-demand delivery 
of the most recent catalog files (xCR.18.4 - p43).
FR.RET.14 [The retrieve function] shall enable the reformatting of 
data on demand to any of the supported set of formats appropriate to 
that data type (xCR.17.2 - p51). For Radio Science those formats 
include: simple binary tables with fixed length fields, simple ASII 
tables, and simple images (xCR.18.13 - p51).
FR.RET.15 [The retrieve function] shall enable the automatic retrieval 
of all files that are part of a multi-file product (xCR.8.3 - p52).

1.8 Geometry Requirements 
-------------------------
FR.GEO.1 [The geometry function] shall provide a mechanism for 
updating all geometry and pointing information in product index 
tables using updated SPICE data (OO.2.9, xCR.4.1.11 - p54, 
xCR.8.12 - p50, FR.1.2.5, xCR.13.50.1 - p30, xCR.13.6 - p30, and 
xCR.18.11).

> have to track geometry file versions and sources.  Latest is not always the 
> best if geometry info is provided by multiple sources(e.g. MGS).

FR.GEO.3 Given an observation's START and STOP time, [the geometry 
function] shall determine all targets and features that lie within 
the instrument's field of view during the observation. (OO.2.9, 
xCR.4.1.11 - p54, xCR.8.12 - p50).
FR.GEO.4 Given the coordinates of a "footprint" on a planet, [the 
geometry function] shall find all data of a given type within that 
footprint (FR.1.2.5, xCR.21.2.3 - p33, xCR.4.1.12).
FR.GEO.5 Given a targeted feature, [the geometry function] shall 
find all data in the PDS archive pertaining to that feature. The 
targeted feature may either be static or dynamic, such as Jupiter's 
red spot (FR.1.2.5, xCR.21.2.3 - p33, xCR.4.1.12, FR.1.1.1, 
xCR.14.1.5 - p9).
FR.GEO.6 [The geometry function] shall determine the ephemeris or 
time for the following types of events (CN):
1. Occultations (CN) 
2. Periapsis (CN)

> Probably other parameters important like those in the NAIF orb_num files. 
> For example longitude crossing for a given orbit in polar orbiting missions.

[Node input is needed to define other events for which users may 
need to calculate time and ephemeris]
FR.GEO.7 [The geometry function] shall determine when the 
spacecraft falls within the gravitational pull of a given feature 
(xCR.18.50.1 - p32).
FR.GEO.8 [The geometry function] shall determine the pedigree of 
the NAIF software used and the geometry information stored in the 
label (xCR.14.2.5 - p30).

1.9 Correlate Requirements 
--------------------------

> not sure what any of these requirements mean.

FR.COR.1 [The correlate function] shall determine whether a given 
keyword can be used as a correlative keyword between two data sets 
(i.e., whether the keyword has the same meaning across the two 
data sets) (CN).
FR.COR.2 [The correlate function] shall provide a mechanism for 
registering all geo-referenced data for the same planetary target 
to the same, user-selected coordinate system (xCR.13.7 - p8, 
xCR.14.1.6).
FR.COR.3 [The correlate function] shall provide a mechanism for 
registering all geo-referenced data for the same planetary target 
to the same, user-selected map projection (xCR.13.7 - p8, xCR.14.1.6).
FR.COR.4 [The correlate function] shall provide images of surfaces 
for correlation with data used by radio scientists (xCR.18.10 - p9).

2.0 Process Requirements 
------------------------
FR.PRC.1 [The process function] shall provide a mechanism for running 
local processes on any collection of data products (xCR.31.5 - p38).
FR.PRC.2 [The process function] shall provide a mechanism for running 
remote processes as web services on any collection of data prodcts 
(CN, xCR.31.5 - p38).
FR.RPC.3 [The process function] shall provide web service interfaces 
to the following remote processing systems (xCR.14.1.12, Susie, 
xCR.21.2.1, FR.1.2.2, xCR.14.2.13):
1. The THEMIS processing server at Arizona State University 
2. The GRS processing server at the University of Arizona 
3. The Rings Feature Tracker 
4. The Map-A-Planet service at USGS

> Have to be careful in providing services by non-PDS supported systems.  Will 
> they always be available and do what PDS expects of them?

FR.PRC.4 [The process function] shall supply local processes for 
transforming the following PDS data to the given formats (xCR.14.1.8, 
xCR.13.4 - p18).
1. PDS image and table data to FITS format 
2. PDS image data to PNG and JPEG formats 
3. Binary tables to ASCII tables
FR.PRC.5 [The process function] shall supply local processes for 
transforming PDS image and QUB data as follows (xCR.14.1.16, 
FR.1.2.5, xCR.17.7 - p32, xCR.13.21 - p18):
1. Geometrically correcting images 
2. Radiometrically correcting images 
3. Mapping images to any PDS-supported coordinate system 
4. Re-projecting images to any PDS-supported map projection 
5. Applying transformations available from the ISIS system

> See other comments about being ambitious, using systems from outside PDS. 
> Should be more restricted to resources within PDS or provided by data producer 
> to include with the archives.

R.PRC.6 [The process function] shall supply local processes for 
subsetting the following data types (xCR.31.5 - p38, xCR.8.8 - p44):
1. Selecting individual bands from spectral QUB data 
2. Selecting rectangular sub-regions of images 
3. Selecting specified rows and columns from tabular data 
4. selecting specified intervals from time series

1.10 Transfer Requirements 
--------------------------
FR.TRN.1 [The transfer function] shall provide a mechanism for 
writing any collection of data products and ancillary files on-demand 
to physical media (xCR.13.9).
FR.TRN.2 [The transfer function] shall enable generation on-demand 
of PDS compliant archive volumes on any sized physical media, from 
a single online archive volume (OO.2.13, xCR.16.1 - p49).

> Again high priority.

FR.TRN.3 [The transfer function] shall provide a mechanism for 
delivering the PDS compliant archive volumes covering each data 
set to the following organizations (CN, FR.1.2.2, xCR.17.5):
1. Central node 
2. The discipline node curator for that data set 
3. NSSDC

1.11 Subscribe Requirements 
---------------------------

> change name to notification requirements.  Subscribe implies to me that I 
> will automatically get products delivered.

FR.SUB.1 [The subscribe function] shall provide an online mechanism 
for creating subscriber accounts, with each account requiring the 
following attributes:
1. User full name 
2. User last name 
3. Password 
4. Institution 
5. Work telephone 
6. Email address 
7. Mailing address 
8. Whether user is funded by NASA Code S
FR.SUB.2 [The subscribe function] shall provide an online mechanism 
for users to subscribe to recieve email notifications of the 
following events (CN, xCR.10.3 - p34):
1. When new data from a user-specified data set are released 
2. When a new version of the PDS standards is released 
3. When a new version of the data dictionary is released 
4. When a new version of the online PDS system is released 
5. When a new version of a PDS software suite is released
FR.SUB.3 [The subscribe function] shall provide an online mechanism 
for subscribers to change their account information, change their 
notification requests, delete their accounts, and cancel their 
subscriptions (CN).

1.12 Administer Requirements 
----------------------------
FR.ADM.1 [The administer function] shall provide a mechanism 
for monitoring the availability and performance of every server 
on the system (xCR.32.13 - p2).
FR.ADM.2 [The administer function] shall provide a mechanism for 
capturing, displaying, and summarizing the following metrics 
(xCR.32.13 - p2, OO.1.9, xCR.13.28 - p45, xCR.31.6 - p38):
1. Number of user accesses, per server and time period 
2. Number of data requests, by repository and data set 
3. Number of bytes tranferred, by repository and data set 
4. Transfer performance, by server and time period 
5. Log of all support requests and user comments
FR.ADM.3 [The administer function] shall provide a mechanism for 
monitoring changes to any internal structure, such as catalogs or 
indices, used by the system (xCR.10.8 - p35, xCR.10.9 - p35).
FR.ADM.4 [The administer function] shall maintain an inventory of all 
deep archive volumes (FR.1.2.2, xCR.17.5).
FR.ADM.5 [The administer function] shall enable automatic failovers 
and routing to available systems (xCR.14.1.9).

2. Non-Functional Requirements 
------------------------------
NR.SYS.1 The system shall be constrained by the following non-functional 
requirements:
2.1 Architectural --- ARC - system architecture 
2.2 Interface ------- INT - user interface and look and feel 
2.3 Capacity -------- CAP - storage needs 
2.4 Performance ----- PER - data access, processing, and transfer 
2.5 Availability ---- AVA - uptime requirements 
2.6 Security -------- SEC - security requirements 
2.7 Compatibility --- CMP - platform support and interoperability 
2.8 Standards ------- STD - standards to support system operation 
2.9 Policies -------- POL - policies to support system operation 
2.10 Documentation --- DOC - documentation required for the system 
2.11 Support --------- SUP - technical and user service support 
2.12 Development ----- DEV - development and system evolution

2.1 Architectural requirements 
------------------------------
NR.ARC.1 [The system] shall have an open architecture, where all 
changes and enhancements can be made in a collaborative manner, and 
all Application Programming Interfaces (APIs) are fully documented 
and shared (xCR.17.13 - p38).
NR.ARC.2 [The system] shall have non-proprietary core components. 
This includes all components that enable communication and tranfer 
of data from one location to another (xCR.17.14 - p38).
NR.ARC.3 [The system] shall be modular and capable of being built 
incrementally (xCR.17.14 - p38).

>  Have to set priorities on functions.  How long to implement entire set.

NR.ARC.4 [The system] shall be service based, where each service 
can be built indipendently of each other and are capable of evolving 
independently (xCR.17.15 - p39).
NR.ARC.4 [The system] shall be a distributed system. It shall provide 
the ability to locate data, resources, and services from multiple 
physical locations (xCR.17.12 - p16). 
NR.ARC.5 [The system] shall be peer-to-peer, meaning that each 
component shall be capable of interacting with each other, without 
an intermediary (xCR.17.16 - p39).

2.2 Interface Requirements 
--------------------------
NR.INT.1 [The system] shall provide a web-based interface as the 
primary means through which users interact with the system. A user 
shall be able to access all the functions and services through a 
common web browser (xCR.17.17 - p17, FR 3.1).
NR.INT.2 [The system] shall provide an Application Programming 
Interface (API) as a means for developers to access all functions 
and services provided by the system (xCR.32.12).
NR.INT.3 [The user interface] shall provide access to online help for 
all functions, as well as easy access to all applicable documentation 
(xCR.14.1.13 - p15).
NR.INT.4 [The user interface] shall provide intuitive interaction 
with the system. This means that most users should be able to figure 
out how to use basic system functions without reading further 
documentation (FR.1.2.1, xCR.13.13).
NR.INT.5 [The user interface] shall provide "context sensitive" 
searching for data sets. That is, once the user sets a value for a 
search parameter, the available values for the other parameters 
must be consistent with the first parameter/value pair. For example, 
if TARGET is set to "JUPITER", then the interface will not allow 
MISSION to be set to "PATHFINDER", since PATHFINDER did not observe 
Jupiter (xCR.14.1.10 - p15).
NR.INT.6 All web form input shall be validated to reduce the 
possibility of erroneous results (xCR.10.6 - p35).
NR.INT.7 All web pages and email announcements shall appear neat and 
of professional quality (FR.1.2.1, xCR.15.16 - p16).

2.3 Capacity Requirements 
-------------------------
NR.CAP.1 [The system] shall be able to store 300 TB of data products 
online and ensure that all data are accessible to all system 
functions and services (xCR.28.16).

2.4 Performance Requirements 
----------------------------
NR.PER.1 [The system] shall be able to move 300 GB of data every 
month. At a lower bound, the data are to be shared among at least 
50 sites, or 6B per site. At an upper bound, the data are to be 
distributed to all 50 sites, or a total of 15000 GB transfered 
(xCR.28.10 - p24).

> What does 300 GB refer to?  Ingestion, archiving, delivery to users, all the 
> above?

NR.PER.2 [The system] must be able to transfer 10GB/day between 
instrument teams for intrateam data analysis (MRO, FR.1.2.2, 
xCR.28.17 - p25, xCR.28.8 - p29).

2.5 Availability Requirements 
-----------------------------
NR.AVA.1 All servers on the system shall meet the availability 
standards of their hosting institution (CN).
NR.AVA.2 Best efforts shall be made to minimize system downtime 
(CN).

2.6 Security Requirements 
-------------------------
NR.SEC.1 [The system] shall provide unrestricted access to all 
data, documentation, and software released to the public 
(xCR.28.19 - p36).
NR.SEC.2 [The system] shall strive to ensure that institutional 
security requirements do not interfere with unrestricted access 
to all data, documentation, and software released to the public 
(OO.1.10, xCR.14.2.18 - p37).
NR.SEC.3 [The system] shall provide role-based authentication for 
controlled access to data or system functions and shall recognize 
the following roles (FR.1.2.3, xCR.13.29 - p30, xCR.15.6 - p30):
1. Data provider for a specified mission 
2. Data distributor for a specified mission 
3. Central Node data engineer for a specified mission 
4. Subscriber 
5. Administrator 
NR.SEC.4 [The system] shall restrict access to a mission's 
pre-release data to the following roles (xCR.28.19 - p36):
1. Data provider for the mission 
2. Data distributor for the mission 
3. Central node data engineer for the mission 
4. System administrator 
NR.SEC.5 [The system] shall restrict the ability to perform 
ingest, validate, and transfer functions on a mission's data 
to the following roles (xCR.28.19 - p36):
1. Data distributor for the mission 
2. Central node data engineer for the mission 
3. System administrator 
NR.SEC.6 [The system] shall restrict access to subscription 
information to the subscriber and the system administrator 
(FR.1.2.3, xCR.13.29 - p30, xCR.15.6 - p30). 
NR.SEC.6 [The system] shall restrict the ability to perform 
the administer function to the system administrator (CN).

2.7 Compatibility Requirements 
------------------------------
NR.CMP.1 Server-side components shall be portable across the 
following platforms (xCR.21.2.1):
1. Solaris 
2. Linux 
3. Windows 
4. Mac OS X
NR.CMP.2 Client-side tools shall be portable across the following 
platforms (xCR.4.1.10 - p44, xCR.8.10 - p44):
1. Solaris 
2. Linux 
3. Windows 
4. Mac OS X
NR.CMP.3 File system operations shall be case-insensitive 
(xCR.21.2.1).
NR.CMP.4 [The system] shall support the following bindings for 
APIs to server-side components (CN):
1. HTTP 
2. Java 
3. IDL
NR.CMP.5 [The system] shall support the following bindings for 
APIs to client-side libraries (CN):
1. C 
2. Perl 
3. Java 
4. IDL 

2.7 Standards Requirements 
--------------------------
NR.STD.1 [The PDS] shall ensure that all system functions are 
consistent with PDS standards as documented in the PDS Standards 
Reference (CN).
NR.STD.2 [The PDS] shall establish standards for treating all 
labeled ancillary files as products (SBN).
NR.STD.3 [The PDS] shall establish standards for associating 
any product of any other product (SBN).
NR.STD.4 [The PDS] shall establish standards for applying version 
control to metadata and data products (CN, SBN).
NR.STD.5 [The PDS} shall establish standards for enabling the 
use of a more sophisticated target model (SBN).

2.8 Policy Requirements 
-----------------------
NR.POL.1 [The PDS] shall provide a way of determining a consistent 
set of standards that apply to a mission/volume set and do not 
change over the life of the mission/volume set (xCR.14.2.3 - p36).
NR.POL.2 [The PDS] shall provide a policy for enabling instrument 
teams to become data nodes (xCR.28.18, p36, xCR.13.32 - p45).
NR.POL.3 [The PDS] shall provide a policy for conducting peer 
reviews (xCR.4.1.4 - p37).
NR.POL.4 [The PDS] shall provide a policy for acceptible means of 
electronic data delivery: where files are delivered, who maintains 
the area where files are delivered, how online validation and peer 
review are done, what must take place before data are made 
available (xCR.4.1.7 - p37).

> last point is very important - refers back to my comment on understanding the 
> process flow and order in which functions are done.

NR.POL.5 [The PDS] shall provide a policy for delivery of archive 
volumes, whether electronically or on physical media, to the NSSDC 
(xCR.4.1.8 - p37).
NR.POL.6 [The PDS] shall provide a policy for formalizing all 
required deliverables from missions (xCR.8.22 - p37).
NR.POL.7 [The PDS] shall provide a security policy that takes into 
account security mandates from NASA, the department of Interior, 
discipline node home institutions, and other PDS stake-holders 
(OO.1.10, xCR.14.2.9 - p38).
NR.POL.8 [The PDS] shall provide a policy for enabling mirror 
sites (OO.1.2, xCR.13.22 - p38).
NR.POL.9 [The PDS] shall provide a policy for ensuring backup of data 
that has been distributed online but not yet written to permanent 
archive (xCR.15.21 - p41).
NR.POL.10 [The PDS] shall not access data from NSSDC unless there has 
been a catastrophic failure (OO.1.5, xCR.13.16 - p41).
NR.POL.11 [The PDS] shall provide a backup and security plan 
(xCR.15.21 - p41, xCR.31.3 - p41).
NR.POL.12 [The PDS] shall adopt NASA processing level indicators and 
deprecate the CODMAC levels (OO.2.5, xCR.15.13 - p51).

> Great, probably long overdue.  As an aside - it is not clear to me why 
> processing level needs to be in data set id, also the whole data set id scheme 
> could use some updating.

NR.POL.13 [The PDS] shall provide a policy on the scope of its 
holdings that includes highly derived products, such as parameter 
catalogs (OO.2.8, xCR.8.6 - p53).
NR.POL.14 [The PDS] shall provide a policy for responding to requests 
for CD/DVD volumes, including those created by the system on demand 
(OO.3.1, xCR.14.2.7 - p55).
NR.POL.15 [The PDS] shall establish a canonical coordinate system for 
planetary targets, for example, planetocentric, east longitude 
(xCR.14.2.6 - p9).

> And PDS shall get rid of the target catalog template and use NAIF kernels 
> for these data - coordinate systems, control nets, etc.

NR.POL.16 [The PDS] shall provide data dictionary definitions of 
LATITUDE and LONGITUDE keywords consistent with a "cannonical" 
coordinate system (xCR.14.1.11).

2.9 Documentation Requirements 
------------------------------
NR.DOC.1 [The system] shall provide a document describing the entire 
PDS archive lifecycle (xCR.13.50.2 - p36).
NR.DOC.2 [The system] shall provide a Proposers Archive Guide to 
help proposers understand and describe how to meet PDS archive 
requirements in Announcements of Opportunity (AO) (From March 03 
Management Council).
NR.DOC.3 [The system] shall provide templates and examples of 
the following archive planning and design documents (OO.1.1, 
xCR.13.33 - p36, xCR.13.50.4 - p36, OO.1.8, xCR.13.32 - p45, 
FR.1.1.2, xCR.114.2.17 - p10):
1. Memorandum of Understanding (MOU) between the mission and the 
PDS, defining roles and responsibilities 
2. Archive Plan 
3. Interface Control Document (ICD), describing the archive data 
products and volumes for a particular instrument 
NR.DOC.4 [The system] shall provide an Operations Plan, including 
information on the the following topics (xCR.15.3 - p38, 
xCR.13.27 - p38):
1. Running system functions 
2. Maintaining and upgrading system software 
3. Performing system backups 
4. Ingesting, validating, distributing, and archiving data
NR.DOC.5 [The system] shall provide a development plan, including 
information on the following topics (xCR.15.14 - p42, OO.1.3, 
xCR.15.5 - p38, xCR.31.2 - p38, OO.1.6, xCR.14.2.16 - p42, 
xCR.18.1):
1. Development goals 
2. Technology infusion plans 
3. Tools plan 
4. System evolution 
NR.DOC.6 The system shall provide complete documentation for tools 
and system APIs (OO.1.6, xCR.4.1.10 - p44).
NR.DOC.7 The system shall provide documentation for all interfaces, 
data structures and standards used for online as well as hard media 
distribution (OO.2.13, xCR.14.2.14 - p48).

2.10 Support 
------------
NR.SUP.1 [The PDS] shall provide at least one full-time system 
administrator, responsible for the following (CN):
1. Keeping servers up and running properly 
2. Maintaining and upgrading system software 
3. Peforming system backups 
4. Providing technical support where needed
NR.SUP.1 The PDS shall shall provide a single e-mail address for all 
user feedback and requests for technical support (CN).

> Need people to provide timely responses.  Have a ticket/tracking system to 
> manage user questions.  Could be used to generate a knowledge base or FAQ 
> system.

2.11 Development Requirements 
----------------------------
NR.DEV.1 [The PDS] shall use strict configuration control on all 
components of the system (OO.1.7, xCR.8.18 - p45).
NR.DEV.2 [The PDS] shall develop the system in accordance with an 
iterative phased-development life cycle, with each iteration 
including the following steps (CN):
1. System definition 
2. Requirements analysis 
3. Design 
4. Implementation 
5. Testing 
6. Integration 
7. Deployment 
###