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

rudof gives lint:double-link warnings #21

Open
VladimirAlexiev opened this issue Nov 28, 2024 · 11 comments
Open

rudof gives lint:double-link warnings #21

VladimirAlexiev opened this issue Nov 28, 2024 · 11 comments

Comments

@VladimirAlexiev
Copy link
Collaborator

https://github.com/w3c-cg/awesome-semantic-shapes/actions/runs/12038380640/job/33563929313#step:5:1
Shows a bunch of lint:double-link errors because the "rudof" line is duplicated.
I think we should disable this check: @amivanoff is that possible?

@amivanoff
Copy link
Contributor

amivanoff commented Nov 30, 2024

It's doable by "ignore" statement (above duplicate items) in markdown, like this:

<!--lint ignore double-link-->
- [rudof](https://rudof-project.github.io/rudof)

But I'm not sure if we should do this. We have faced this issue before with SHACL/ShEx Jena validators #3 (comment) and have decided (if I've got it correctly there) to use more specific links to the submodules in a source code repository.

This decision is already documented in the CONTRIBUTING.md.

Example:

This link https://rudof-project.github.io/rudof with label "rudof" is mentioned in two sections "SHACL Validators" and "ShEx Validators". According to the guide, it should become two links:

This link https://rudof-project.github.io/rudof/cli_usage/convert.html from the section "Shape Conversion Tools" and label "rudof" should become the link:

So, there are NO duplicate URL links, and duplicate link's text (label).

We could change this approach to any other, but we must update Jena's items in README.md and CONTRIBUTING.md to preserve consistency.

Maybe it is even better to update the CONTRIBUTING.md first.

@VladimirAlexiev VladimirAlexiev changed the title Disable lint:double-link rudof gives lint:double-link warnings Dec 2, 2024
@VladimirAlexiev
Copy link
Collaborator Author

@amivanoff you make very good points, and I edited the title of this issue.

However, I'd use links to the documentation (and remove or have links to source as secondary):

@jeswr You contributed rudof, right? Could you fix this?

@amivanoff
Copy link
Contributor

amivanoff commented Dec 2, 2024

This links points to the command line interface.

But validator libraries have different interfaces
https://docs.rs/shacl_validation/latest/shacl_validation/
https://docs.rs/shex_validation/latest/shex_validation/

It's interesting ontological question. Where are the boundaries of a "validator" in this dependency tree?

Should we recognize as "validator" only a library with an algorithm implementation?

Or this distinction should be "interface based": all modules, involved in a data pass from a user to a validator and backwards, are considered as parts of "validator"?

Or will it be no recognition, just rudof for SHACL, for ShEx, for converter CLI?

Example from the Java world:

  • Jena SHACL Validator library
  • CLI interface wrapper (with validation commands) + Jena SHACL Validator library (+ many other stuff)
  • REST API (with validation requests) + persistent store + Jena SHACL Validator library (+ many other stuff)

@amivanoff
Copy link
Contributor

The same question for rudof. It's quite compleх piece of software. Where are the validator's boundaries on this dependency diagram?

image

Picture from https://rudof-project.github.io/rudof/overview.html

@amivanoff
Copy link
Contributor

So, besides formatting complications from #16 there are some "semantics" questions:

  • ontological grounding and uniform grounds for software classification (relation between an abstract "validator" and a specific "software module" from a particular project)
  • information consistency in the list (the same approach applied uniformly to the complex software in any language, like Jena, RDF4J, rudof,...)

@amivanoff
Copy link
Contributor

Another open question:

  • how to assign globally unique dereferenceable identifiers of the software and its parts

@VladimirAlexiev
Copy link
Collaborator Author

You're overcomplicating it a bit. All that we care is that rudof includes SHACL, SHEX.

  • IMHO the first (leading) link should be to the end-user documentation (I'm neither a rust nor python programmer).
  • and we can add links "(library)" pointing to the developer documentation

@VladimirAlexiev
Copy link
Collaborator Author

@amivanoff do you agree with the sentiment in my last comment?

@amivanoff
Copy link
Contributor

Ok, do we need to change Jena's and RDF4J's items to make it a consistent approach?

@VladimirAlexiev
Copy link
Collaborator Author

@amivanoff Yes! Could you please do it? I think I did it for rudof in #31.
And I see in #25 that you add linter switches to turn on/off various validations: is that documented in CONTRIBUTING.md so we don't have to ask you every time?

Huge THANKS for mastering the awesome tools for us!

@amivanoff
Copy link
Contributor

I suggested some further improvements on rudof list items in #31. I'd like to address them first and then we'll return here.

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

No branches or pull requests

2 participants