Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

rewrite of service descriptor section to clarify; resolve #78 and #80 #83

Merged
merged 7 commits into from
Nov 16, 2021

Conversation

pdowler
Copy link
Collaborator

@pdowler pdowler commented Nov 14, 2021

also added small comment on VOSI endpoints related to WD-DALI-1.2

@pdowler
Copy link
Collaborator Author

pdowler commented Nov 14, 2021

Wow James - either you are a fast reader or I can't type :-)
probably both

@pdowler pdowler requested a review from mbtaylor November 14, 2021 23:00
Copy link
Collaborator

@msdemlei msdemlei left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(a) On the VOSI change, I'm fine.

(b) "In addition, the PARAM element allows for additional child elements
(such as MIN, MAX, or OPTIONS) to convey sensible constraints on
possible values." is IMHO much too weak. My experience is that in
typical scenarios (even just specifying a cutout) the problem of empty
input boxes is still worse in datalink than with normal discovery
services; for standard parameters, they really depend strongly on the
dataset, for custom parameters, well, it's anyone's guess what ought to
come in.

Hence, I'd say this should read: "To allow for expressive, usable user
interfaces, operators SHOULD indicate useful ranges of parameters in MIN
and MAX children or, for enumerated parameters, indicate the valid
values in OPTIONS." Or something like that.

(c) I liked "The PARAM's description" (in line 899) better than the
PARAM description".

(d) Please revert the Makefile change (except perhaps the change to the
DOCDATE) -- VECTORFIGURES isn't really for SVGs, as browsers can
directly display them; if there'll be more of those (before LaTeX learns
SVG), we'll have to think about how to deal with them more generally.
Meanwhile, SOURCES (which is LaTeX's dependencies) really needs to depend
on role_diagram.pdf, as that needs to be built before LaTeX runs. And
the PDF must not be in VECTORFIGURES, as that's files that will be
converted to PNG for the HTML rendering, and we specifically don't want
that for the SVG.

DataLink.tex Outdated Show resolved Hide resolved
DataLink.tex Outdated Show resolved Hide resolved
DataLink.tex Show resolved Hide resolved
DataLink.tex Outdated Show resolved Hide resolved
Copy link
Member

@mbtaylor mbtaylor left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Pat, this is a significant improvement in comprehensibility. I have made some specific suggestions for change but I think it's close to ready.

@msdemlei
Copy link
Collaborator

msdemlei commented Nov 15, 2021 via email

@pdowler
Copy link
Collaborator Author

pdowler commented Nov 15, 2021

I have made some tweaks (included Markus' suggestion about input param info, made intro to service descriptors more general, etc). Everything but the "fixed value" bit....

This was never well specified and your interpretation is consistent with normal VOTable usage. When writing this, I was trying to figure out if we could use value for a default but it seems complicated so I wrote down the strict meaning that I think is what we intended in 1.0... it is how I use such params.

The way I see it, it is going to be quite tricky to differentiate a PARAM with value="something" as "fixed" vs "default". The use case for the former is something like a dataset-specific descriptor that is fixed to a specific dataset with

<PARAM name="ID" ... value="ivo://authority/collection?details" />

where various bits of the other info (like MIN/MAX of some other param) could be depending on that fixed value. On the default side is something like

<PARAM name="RESPONSEFORMAT" ... value="application/fits" />

If the latter included a child OPTIONS with the other possible values, that could work and be interpretted as a "default". This is also why the language in "Clients should assume that these user-specified parameters are optional, but ..." comes in: without default values the client does have to specify something to drive the service.

So, yes, it would be nice to be able to say whether value="foo" is fixed or a sensible default. Would something like this work?

"a PARAM with a value: the value is a default value if there are child elements indicating other possible values and is a fixed value if there are not"

It seems open to misinterpretation. Thoughts? Better Wording? Leave it at "fixed"?

Counter example to the must(s):

<PARAM name="RUNID" ... value="some-encoded-chars" />

Looks like a fixed param but ignoring it is simply "do not track" :-)

@msdemlei
Copy link
Collaborator

msdemlei commented Nov 16, 2021 via email

@Bonnarel
Copy link
Contributor

Bonnarel commented Nov 16, 2021

...... and get serious about prototyping solutions for bug #51 (me, I've already put in LINK-type annotation into DaCHS and https://github.com/msdemlei/datalink-xslt, but I'm happy to change that into anything else people are willing to consume).

Just to clarify for me and maybe others. What do you mean by bug in #51, Markus ? The optional versus mandatory PARAM status ? Was that really a bug or a lack of solution ?

@Bonnarel
Copy link
Contributor

On Mon, Nov 15, 2021 at 11:28:14AM -0800, Patrick Dowler wrote: "a PARAM with a value: the value is a default value if there are child elements indicating other possible values and is a fixed value if there are not" It seems open to misinterpretation. Thoughts? Better Wording? Leave it at "fixed"?
I'm all for leaving it as fixed. We need some advanced metadata for parameters anyway, at the very least to indicate whether they're required, and whatever we come up with there can easily accomodate the default value, too. So, I'd say forget about defaults in this version (we could live without them for a couple of years already) and get serious about prototyping solutions for bug #51 (me, I ve already put in LINK-type annotation into DaCHS and https://github.com/msdemlei/datalink-xslt, but I'm happy to change that into anything else people are willing to consume).

I also agree with letting that as a fixed value for the moment. For client developpers defaults can be inferred from the context sometimes (the way it works in Aladin at least)

@Bonnarel
Copy link
Contributor

Hence, I'd say this should read: "To allow for expressive, usable user interfaces, operators SHOULD indicate useful ranges of parameters in MIN and MAX children or, for enumerated parameters, indicate the valid values in OPTIONS." Or something like that.

This was discussed in the past. In case you come from ObsCore, SSA, SIA and the service is SODA or SODA-like the values can be inferred from the dataset metadata. In general we don't need to repeat that in VALUES. So I suggest to add these words to Markus sentence after "OPTIONS" : , "in case these values cannot be inferred from relevant metadata retrieved before the service descriptor discovery".

@mbtaylor
Copy link
Member

Current text looks good to me now, thanks for changes.

@Bonnarel
Copy link
Contributor

One little suggestion in this part of the text
< For user-specified input PARAMs the value attribute is empty (\attval{value}{})
and the user supplies the value(s). The PARAM specifies the type of value required via
the datatype, arraysize, and xtype attributes; this may be augmented further by the ucd
and units attributes and a child DESCRIPTION element. To allow for expressive, usable user interfaces, operators SHOULD indicate useful ranges of parameters in MIN and MAX children or, for enumerated parameters, indicate the valid values in OPTIONS.

adding "utype" this way
this may be augmented further by the ucd, units and utypes attributes.

Rationale for that is that for example SODA parameters have obvious matching with ObsCore FIELDS. they are actually forcing ObsCORE Fields of the cutout. May have other examples. (see SODA for diuscussion)

@pdowler
Copy link
Collaborator Author

pdowler commented Nov 16, 2021

merging blocked, maybe because Markus requested changes and accepted in comments rather than another review. I will dismiss that review since Mark approved and see what happens (github is wierd sometimes)

Also moving Francois' last item about utypes to an issue; I think it needs use cases and discussion.

@pdowler pdowler dismissed msdemlei’s stale review November 16, 2021 18:24

changes accepted in comments

@pdowler pdowler merged commit 9378bcd into ivoa-std:master Nov 16, 2021
@msdemlei
Copy link
Collaborator

msdemlei commented Nov 17, 2021 via email

@Bonnarel
Copy link
Contributor

Bonnarel commented Nov 18, 2021 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants