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

Clarify semantics aspects #71

Merged
merged 3 commits into from
Nov 3, 2021

Conversation

msdemlei
Copy link
Collaborator

Clarification of the meaning and use of semantics and content_qualifier.

This introduces a potentially document-breaking change, namely the requirement
that datalink/core concept URIs must be relative (i.e., not include the URI).
I think everyone has always done it like this, and making this guaranteed makes
it a bit simpler to correctly deal with the semantics column (actually,
both implementations I know that use values from the semantics columns
already make that assumption).

This depends on the ivoatex update that comes with PR #70 for citations
to resolve.

This, I claim, would solve Issue #67.

This introduces a potentially document-breaking change, namely the requirement
that datalink/core concept URIs must be relative (i.e., not include the URI).
I think everyone has always done it like this, and making this guaranteed makes
it a bit simpler to correctly deal with the semantics column (actually,
both implementations I know that use values from the semantics columns
already make that assumption).

This depends on the ivoatex update that comes with PR ivoa-std#70 for citations
to resolve.
@Bonnarel
Copy link
Contributor

Bonnarel commented Oct 25, 2021 via email

@msdemlei
Copy link
Collaborator Author

msdemlei commented Oct 25, 2021 via email

@pdowler
Copy link
Collaborator

pdowler commented Oct 25, 2021

IIRC, the "undesirable usage" was that if you can use bare product-type terms like "spectrum" and we allow terms from other vocabs, people might use bare terms from them as well, in which case it's just a column where you can put any one word.

I think content_qualifier is a little different than semantics: my understanding of using fully qualified URIs in semantics was that it was for a custom term (extension) but still in the same vocabulary (best example is our #thumbnail child of #preview -- extension of datalink/core rather than different vocab entirely). I don't recall off-hand how an rdf doc says it is an extension of another, but if that's possible I would expect any custom FQ term in semantics to be in a vocab that extends datalink/core. That's not true of content-qualifier

Anyway, looking at the current text now, it isn't as clear/explicit as I thought and the above from Markus looks fine to me, but I wonder if I am still reading something different into it. I think that content_qualifier could contain URIs from UAT or SimDM or whatever, not just standard product-type and custom extensions, because not all links are "to data products".

@msdemlei
Copy link
Collaborator Author

msdemlei commented Oct 26, 2021 via email

@Bonnarel
Copy link
Contributor

On Mon, Oct 25, 2021 at 02:59:00AM -0700, Bonnarel wrote: Le 25/10/2021 à 11:28, msdemlei a écrit : > it a bit simpler to correctly deal with the semantics column (actually, > both implementations I know that use values from the semantics columns > already make that assumption). > Well. During the last DAL running meeting we apparently had a consensus the content_qualifier will mandate to have full URIs . But you were not attending Markus. That's why the initial text of the first PR #51 with content_qualifier was rewritten like in the recently merged master Your new text is going in the other direction See : https://wiki.ivoa.net/internal/IVOA/IvoaDAL_RunningMeetings/IVOA_DAL_RM12.txt
Hm. I wonder what Pat's concerns about "undesirable usage" were. I have no strong opinion either way, but if I had been at that telecon, I'd have said: (a) Well, it would be nicer if content_qualifier worked the same way as semantics; it's certainly a bit odd that vocabularies are used in two different ways in the same standard. (b) Having a standard vocabulary increases the chances that people will actually do the right thing and take terms from it rather than just dump it random URIs that no client at all will understand (in which case it's not machine readable, which kind of defeats the purpose). (c) Nobody wants to have long URIs when short words would do most of the time, which, I think, for content_qualifier is a reasonable expectation (though I admit I'm not sure what use cases for the long URIs are there). (d) Comparing URIs (whose schemes and perhaps authority parts are supposed to be case-insensitive, with path parts and fragment identifiers quite certainly case-sensitive) is a huge pain. Let's spare normal clients that pain. If the other authors say they've weighed those points and found them outweighed by whatever concern brought up the full URL thing, I'd still like the changes to semantics in; and the content_qualifier text could then probably be something like Where applicable, concepts from the vocabulary http://www.ivoa.net/rdf/product-type should be chosen. In contrast to the semantics column, content_qualifier must always contain full concept URIs, regardless of whether URIs point into product-type or somewhere else. As in the semantics case, non-IVOA concept URIs may be used. Again, they should resolve to human-readable definitions of the meaning and intended usage of the concept. As an example, a light curve service might link to a spectrum of the object by using #counterpart in the semantics column and http://www.ivoa.net/rdf/product-type#spectrum in content_qualifier.

+1. I definitely prefer this version than the one in PR #71 and than the initial one I wrote

Is that preferable to the proponents of full URIs here? Given it's a bit odd to have two different recipes, I think it would be great if someone could donate a rationale for the difference (I can't write that because I don't see a good reason).

We don't want to "close the future" by giving a special rule in favor of data-product vocabulary.
Imagine in the case of "semantics=documentation" we want to specify if it's simple free description, refereed paper, or conference proceedings paper. content_qualifier would be the right place to specify that I think.
We may imagine having a standard vocabulary for "documents and papers" in the future.

@msdemlei
Copy link
Collaborator Author

msdemlei commented Oct 26, 2021 via email

@pdowler
Copy link
Collaborator

pdowler commented Oct 27, 2021

hmmm. Since RDF has no notion of a vocabulary and therefore an extension, if I use http://www.opencadc.org/rdf/foo#bag in content_qualifier there is no implied sense that this is a custom product-type or a custom astronomical object type or anything else. It's just a word with a definition... by putting it into content_qualifier I'm saying "the thing at the end of this link is a bag".

Substitute http://ivoa.net/rdf/vospace#container for bag and it would be a real use case; also content_type text/xml would not convey enough information. Also, we could drop the RFE for VOTable to allow content param in the mimetype and just put #datalink into content_qualifier for recursive datalink.

The other aspect where short #term and full http://ivoa.net/rdf/{vocab}#term comes into play for me is the VEP process. I had been (in semantics) using FQ uris for prototype terms, but VEP requires that the term be demonstrated in use. That's manageable for me because the terms are in s/w, not (eg) in the database directly. But I wonder: if using a new term is as simple as create VEP && start using term (and be prepared to change use, of course) then that removes one use of FQ uris. How bad would it be if we said that any term in any ivoa vocab could be used in short form? That seems like it would cover > 98% of use cases. And I could see making a service to resolve #term to http://ivoa.net/rdf/{vocab}#term (which in principle would have to allow for multiple returns in some cases).

If this doesn't sound crazy, why not allow it? s/w will still only do things automatically if it recognises the #term.

@msdemlei
Copy link
Collaborator Author

msdemlei commented Oct 28, 2021 via email

DataLink.tex Outdated Show resolved Hide resolved
@pdowler pdowler merged commit 78ba495 into ivoa-std:master Nov 3, 2021
mbtaylor added a commit to mbtaylor/DataLink that referenced this pull request Nov 5, 2021
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.

3 participants