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

Profiles may be written in or may link to a document or schema in a validation language (ShEx, SHACL, XMLschema). [ID41] (5.41) #279

Open
nicholascar opened this issue Jun 27, 2018 · 24 comments

Comments

@nicholascar
Copy link
Contributor

Entered from Google Doc

@agreiner
Copy link
Contributor

What does it mean to "link to" something in this context? In general, the web allows one to link anything on the web to anything else on the web.

@kcoyle
Copy link
Contributor

kcoyle commented Aug 29, 2018

I think the idea was that the validation rules, in a validation language like shacl or shex or xsd, could be a separate file, but that the profile would provide a URL or (if in RDF) a property with the identifier of the validation file as its value. If the profile is itself expressed as some form of code (k/v pairs, xml, rdf, etc.) then my preference would be that there be an explicit metadata element for the validation document, not just something like "dct:related". You'd want to be able to know precisely if the profile has an actionable validation file somewhere.

Where I see a hitch is that there are validation descriptions, like xsd, shacl, and shex, which are files that define validation but need software to run them, and then there are actual validation programs that someone may provide. In my community there are a lot of home-grown validation programs for metadata. I don't know if people are sharing those, but they are of a different nature from the validation files that are input to to a program like schematron or topbraid.

@rob-metalinkage
Copy link
Contributor

Yep. not a hitch however in profileDesc which models these similar to Distributions for Datasets - without constraing the nature of the distribution - hence we can have custom programs, web pages, instructions, guidance etc. The link is via another object, and can thus be qualified with a any metadata we need about form, role, audience etc. We have work to do to optimise the model (standardise this metadata) I suspect, but the basic separation and mechanism is there.

We dont have an alternative (pre-existing) canonical option for a qualified link or specialised links for all possible types of implementation resources for profile definition or validation.

@makxdekkers
Copy link
Contributor

makxdekkers commented Aug 30, 2018

I do not understand why we can't just use the existing DCAT model of Dataset (for the profile) and Distribution (for the machine-readable file that expresses the profile). Also in the case of a Distribution of a Dataset, you need software to do something with a file -- all we do is provice the format or media type, and let the client figure out what to do with it. What's the difference with the handling of a SHACL file?

@kcoyle
Copy link
Contributor

kcoyle commented Aug 30, 2018

Makx, I'm not sure that you know that a shacl document is a shacl document based on the media type - it would have a media type of .ttl or .rdfxml. (This is from memory of discussions of a few years ago, but that is what I recall.) Does that matter? It seems that you would have to read the distribution to determine what type of distribution it is, and if it can be used to validate the data. My impression is that there was a desire to favor validation as a function, making it explicit.

@makxdekkers
Copy link
Contributor

@kcoyle Thanks, I do now see that there is a difference between the media type and the 'meaning' of the file. This is actually why in ADMS there are two properties, one for the media type of the file and one for the 'representation technique' https://www.w3.org/TR/vocab-adms/#adms-representationtechnique. Maybe such an approach could be adopted for profiles too. In a way, ADMS might be a pretty good starting point for profile descriptions. After all, it was specifically designed to describe these kinds of things and it's based on DCAT.
However, I do not think that the fact you need software to process the file is something we need to cover in DCAT.

@kcoyle
Copy link
Contributor

kcoyle commented Aug 30, 2018

Thanks, @makxdekkers for the reminder about ADMS. If I recall correctly, Andrea was suggesting ADMS for profile description some months ago. I'll try to find a place to add it into that discussion. That would fit with treating profiles as datasets, I believe.

@dr-shorthair
Copy link
Contributor

dr-shorthair commented Aug 31, 2018

ADMS for profile description

An adms:Asset is a special kind (i.e. sub-class) of dcat:Dataset, which primarily has some additional properties reflecting the fact that an Asset is better managed than a generic Dataset. It also adds some relationships to other Assets. The latter are certainly related to the requirements around dependencies that are typical in descriptions of Profiles. But overall adms:Asset is a more general case, so would need further specialization to support description of Profiles.

Profile is logically a sub-class of dct:Standard (see https://w3c.github.io/dxwg/profiledesc/) and potentially also of adms:Asset (which would make it also a sub-class of dcat:Dataset). But whether this makes our life easier (i.e. whether it will be easier to explain to implementers) to rely on deeper subsumption, instead of defining a Profile class with fewer dependencies is questionable IMHO.

@dr-shorthair
Copy link
Contributor

(I also recall @makxdekkers and @philarcher warning us against making strong dependencies on ADMS - we should certainly learn from it, but maybe not build it into a potentially brittle dependency chain? - also see #111 )

@nicholascar
Copy link
Contributor Author

nicholascar commented Aug 31, 2018

@dr-shorthair why "...hunch is that Profile is logically a sub-class of dct:Standard when it's explicitly stated as such in https://w3c.github.io/dxwg/profiledesc/ and, I think, this definition has been viewed by a few members of the group and not found to be incorrect?

@dr-shorthair
Copy link
Contributor

dr-shorthair commented Aug 31, 2018

Apologies - the hunch was more about the second part of the sentence, but the hedge was superfluous given the rest of the sentence. I've edited the comment above to match.

@dr-shorthair
Copy link
Contributor

@rob-metalinkage responded by email (but it didn't make it through to here) -

There are two reasons we dont just reuse dcat:Dataset

  1. We need to model more aspects of profiles including their relationships to each other and different possible roles of resources.

  2. We decided profile descriptions are a broader concern than cataloguing them.

Thus the alignment between Profiles and dcat:Resources is what we are concerned about here and perhaps more explicitly whether subclasses of Resource are disjoint. I'm agnostic whether in the alignment Profile is a subclass of Resource or Dataset... but for backwards compatability could we add a note and example stating that a Profile MAY be considered as a dataset of constraint objects?

@dr-shorthair
Copy link
Contributor

dr-shorthair commented Aug 31, 2018

whether subclasses of Resource are disjoint

I believe that OWL semantics would say that sub-classes are not disjoint unless it is specifically axiomatized. Here's the kind of thing I have in mind though -

dcat:Resource sub-classes

ext:Sample and ext:Software are examples of other things that we might want to catalog.

Depending on how one feels about 'hijacking' you may be more or less unhappy about the sub-class relationship between dct:Standard and dcat:Resource. Personally I don't see a problem - if you want to catalog a standard then it is probably both ...

@kcoyle
Copy link
Contributor

kcoyle commented Aug 31, 2018

First, thanks for the diagrams! I always find pictures helpful.

I don't think you need the sub-classing of dct:standard to dcat:Resource. The profile can be a sub-class of both. So the arrow from dct:Standard could instead be moved to Profile, and it then is a subclass of both dct:Standard and dcat:Resource, and no statements need to be made to subclass dct:Standard to any DCAT classes. This makes it, semantically, a "standard resource", which I think is a great way to define it.

@nicholascar nicholascar changed the title Requirement: Profiles may be written in or may link to a document or schema in a validation language (ShEx, SHACL, XMLschema). [ID41] (5.41) Profiles may be written in or may link to a document or schema in a validation language (ShEx, SHACL, XMLschema). [ID41] (5.41) Sep 1, 2018
@dr-shorthair
Copy link
Contributor

OK - fair enough. A dct:Standard is not necessarily a dcat:Resource - at least it is not until it has been added to a dcat:Catalog somewhere ☺ Of course the same applies to a profdesc:Profile. So strictly I think we should have something like this

Cataloguing standards UML

This separates the DCAT concerns (which are about cataloguing) and the Profile concerns (which are about standards).

Of course it is not necessary to axiomatize the dcat:Catalogued* classes directly, just give the catalogued resources both types e.g.

my:StandardABC 
    rdf:type dcat:Resource ; 
    rdf:type dct:Standard . 

Thinking about how this all relates to ADMS you might go to
Cataloguing assets UML
Not sure how much of this we would want to follow through with.

@nicholascar
Copy link
Contributor Author

Back to Makx's question "I do not understand why we can't just use the existing DCAT model of Dataset (for the profile) and Distribution":

I've just set up a profileDesc description of a dummy DC Application Profile for testing: CSIRO ePublish Dublin Core Application Profile.

I've modelled the thing overall as a Dataset (given not by any RDF properties but just by the use of a URI with /dataset/ in it) and it's not great fun. I have the various profileDesc Implementation Resource Descriptors (the Guidance and FullConstraint objects in RDF, PDF, etc.) serving useful functions (allowing for multiple constraint representation and descriptive docs about the profile) but I don't see how any of this is easily mappable to a DCAT-like things such as Dataset & Distribution in any useful way.

I can see how there may be upper, abstract mappings possible but so what? Do we really need profiling artifacts to be slaved to even abstract versions of DCAT? Sure, one can abstract right up to owl:Thing and find mappings but, again, so what?

Can we perhaps concentrate on representing existing practice of profiling, with a nod to future practice, as profiling, not cataloguing, before we really pound the profiling/cataloguing crosswalks further? Else we might be hampering profile representation due to DCAT's embedded ways of operating.

@nicholascar
Copy link
Contributor Author

Also see my answer #317 (comment) for things that ADMS can't do for profiling.

@nicholascar
Copy link
Contributor Author

This requirement is clearly met by the 2PWD of PROF

@kcoyle kcoyle reopened this Aug 19, 2019
@kcoyle kcoyle closed this as completed Aug 19, 2019
@kcoyle kcoyle reopened this Aug 19, 2019
@aisaac
Copy link
Contributor

aisaac commented Aug 27, 2019

@nicholascar do you remember why you've removed the profile-guidance label from this issue? I think it may be worth keeping the attachment...

And for the record I think it would be good to point to the places of 2PWD that meet the requirement.

@nicholascar
Copy link
Contributor Author

nicholascar commented Sep 2, 2019

@aisaac I don't remember why Guidance was removed but I think this Issues should really be for guidance, not PROF: PROF allows Constraint Language Resources and has multiple examples of them in 2PWD, e.g. Example 3. Switching labels.

@nicholascar nicholascar added profile-guidance and removed profiles-vocabulary For discussion of profile description vocabulary labels Sep 2, 2019
@aisaac
Copy link
Contributor

aisaac commented Sep 2, 2019

@nicholascar thanks I think the reference you give should be enough, but that for the sake of precision if you mention 2PWD you can use the real link, which in that case should be (I believe) https://www.w3.org/TR/2019/WD-dx-prof-20190402/#example-3-property-isinheritedfrom-in-use . Who knows, later on maybe the general URI in dx-prof will contain a document with different HTML anchors!

And ok if you don't remember why you've removed the Guidance label and agree with keeping it, we're good on that front! I am however just removing the 'due-for-closing' label as I'm not certain it should have this status wrt Guidance.

@aisaac aisaac removed the due for closing Issue that is going to be closed if there are no objection within 6 days label Sep 2, 2019
@nicholascar
Copy link
Contributor Author

OK, thanks @aisaac for the reminder to use the more persistent link!

Closing after listing in plenary 2019-09-03 + 3-day wait period.

@kcoyle
Copy link
Contributor

kcoyle commented Sep 8, 2019

@aisaac are you ok with closing this? You removed the label earlier. Also, there is quite a bit of discussion above - has it been captured in the document? @nicholascar remember to give the resolution of the issue, not just that it was listed in the plenary. That isn't the key bit of info; we need to know what happened with the ideas that came up here.

@kcoyle kcoyle reopened this Sep 8, 2019
@aisaac
Copy link
Contributor

aisaac commented Sep 8, 2019

@kcoyle indeed I'm not ok closing this, well spotted. As said earlier I don't know if it has been handled for the Profile Guidance document, therefore we need to keep it open from the perspective of this deliverable. @nicholascar it should have disappeared from your list of issues to close, as it's not labeled for PROF anymore!

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

No branches or pull requests

8 participants