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

add initial structure of README #1

Closed
VladimirAlexiev opened this issue Sep 19, 2024 · 15 comments · Fixed by #3
Closed

add initial structure of README #1

VladimirAlexiev opened this issue Sep 19, 2024 · 15 comments · Fixed by #3

Comments

@VladimirAlexiev
Copy link
Collaborator

@amivanoff could you please take a first stab at it?
Make the structure as per awesomelists (w3c/shacl#78 (comment)) and add sections as per my above comment and the "updated list".

@amivanoff
Copy link
Contributor

Ok, on it

@amivanoff
Copy link
Contributor

amivanoff commented Sep 19, 2024

After some initial screening of Updated list of implementations I may conclude, it needs to decide upfront (and document in CONTRIBUTING.md maybe) on software inclusion/exclusion criteria:

1 What to do with "abandonware" (5-6 years old from the last update, or more)?

2 What to do with "unusable prototypes"? A "technology readiness level" aspect, like TRL from NASA. Especially in section "Shape Editors, Visualizations". Something like "is cool-looking but unusable -- awesome, or not"; “is novice, but not cool-looking and not usable -- awesome, or not”.

Because there are too much of it in SemWeb area and both cases exist even in "Updated list of implementations". And parallel copy-paste from several lists by several people, even with deduplication, could quickly lead to a mess.

Do we need a criterion “I propose it to the “awesome” because I use it” or not? Or maybe even "many people use it" or "it is suitable for mass usage"?

3 Are we including open-source only or closed-source too? If so, it seems, we need OSS/$$$ mark on every software entry.

4 Should we sort software in categories by its name or by popularity?

@amivanoff
Copy link
Contributor

I also could commit settings for VS Code with "Markdown All in One" and spellchecker with recommend extensions, initial dictionary and so on, if we agree on common IDE.

@tpluscode
Copy link
Collaborator

1 What to do with "abandonware" (5-6 years old from the last update, or more)?

Fine if it is known to work. But we could add some marker for software which hasn't received updates in a long time. Like "☠️☠️☠️", or something less loaded

2 What to do with "unusable prototypes" [...]

That's a hard one. Some software may have a narrow use case but do it's job. Some are developed with little resources and an awesome-list can boost visibility. I would not try to be too restrictive because in the end you rely on arbitrary decisions.

3 Are we including open-source only or closed-source too?

+1 to closed/commercial too.
+1 to a 💰💰💰 marker

4 Should we sort software in categories by its name or by popularity?

Name IMO. Else, how do you decide on popularity? GitHub stars, package repository download count? Would someone keep the ordering in sync with changes to popularity?

if we agree on common IDE

One should never do that IMO. VS Code may be popular but it's not the only tool. And expect contributions directly from GitHub. All formatting, linting, spellchecking should be IDE-agnostic and runnable from the command line.

@amivanoff
Copy link
Contributor

One should never do that IMO. VS Code may be popular but it's not the only tool. And expect contributions directly from GitHub. All formatting, linting, spellchecking should be IDE-agnostic and runnable from the command line.

IDE-agnostic CLI tools just for one file -- It looks like overkill. It also requires some stack commitment: Java one (Maven/Gradle) or JS (ESLint, etc) or any other...

@VladimirAlexiev
Copy link
Collaborator Author

@amivanoff , thanks for your PR!! I made some comments.

In general I agree with @tpluscode :

  • let's be inclusive. Even if something appears dead, if it's promising, someone may revive it
  • I like adding icons
  • I would really like to have the last updated date and version. I understand these will get obsolete very soon, but still a sofware updated 5y ago is very different from one updated 1 month ago.
  • number of contributors, stars and forks is also important info, would be nice to have
  • IMHO it's ok to add substantive comments, even though these are subjective.
    Eg "tried it, can't compile"
    or "Shaclex is the only implementation of SHACL and ShEx"
  • Within big sections, let's have subsections per language: Java, Python, JS. This is a major constraint on selecting a software
  • Let's list the most important software first in a section.
    Eg for Java that's Jena, Rdf4j, TQ, Shaclex.
    For the less established sections, any order will do.

Last but not least:

@VladimirAlexiev
Copy link
Collaborator Author

Can you add JS implementatons from w3c/shacl#78 (comment)

@tpluscode
Copy link
Collaborator

  • I would really like to have the last updated date and version. I understand these will get obsolete very soon, but still a sofware updated 5y ago is very different from one updated 1 month ago.
  • number of contributors, stars and forks is also important info, would be nice to have

I like those ideas but I don't see this would be possible without actually generating the list and sourcing some of this information from GitHub directly. Else, as you said, it'd immediately become out of date

@amivanoff
Copy link
Contributor

amivanoff commented Sep 23, 2024

To indicate the last commit activity we could use bages from https://img.shields.io like here

There are similar color-coded bages there for the latest release date from GitHub Releases and for the latest release version

Examples:

Jena SHACL - GitHub Release Date GitHub last commit GitHub Release GitHub Release - tags, but no releases on GitHub

RDF4J SHACL Sail - GitHub Release Date GitHub last commit GitHub Release GitHub Release - there are releases and tags on GitHub

Maybe we should choose only latest release or tag + last commit?

@amivanoff
Copy link
Contributor

amivanoff commented Sep 23, 2024

Release or Tag -- always blue, Release date or Last commit -- color-coded by "recency".

@amivanoff
Copy link
Contributor

License and programming language formatting example awesome-selfhosted/awesome-selfhosted

@VladimirAlexiev
Copy link
Collaborator Author

@VladimirAlexiev
Copy link
Collaborator Author

VladimirAlexiev commented Sep 24, 2024

The only Ruby implementation I know: https://github.com/ruby-rdf/shacl/

@VladimirAlexiev
Copy link
Collaborator Author

shacl-maven-plugin: supports validation and inferencing. I guess it serves to process RDF files in a source code repo, as it's mentioned in qudt/qudt-public-repo#959

@TallTed
Copy link

TallTed commented Oct 3, 2024

  • Let's list the most important software first in a section
    Eg for Java that's Jena, Rdf4j, TQ, Shaclex.

I think "the most important software" is an extremely subjective ordering.

I also wonder about "server" vs "client" in that "Java" section. Java "client" tools that use, for instance, JDBC or HTTP to connect to "servers" may (I daresay, should) not care about the runtime that "server" is running in (JRE, Intel-native [macOS, Linux, Windows, other?], ARM-native [macOS, Linux, other?], etc.)

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 a pull request may close this issue.

4 participants