-
Notifications
You must be signed in to change notification settings - Fork 93
Defining property "hasSourceCode" to link SoftwareApplication and SourceCode #229
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
Conversation
|
I agree that the usage of both classes might be confusing. |
|
@moranegg, 'schema:codeRepository' is directly from schema.org, so I don't think we can change it. Do you have another proposal that better illustrates the term? I don't mind if we call it differently, as long as there is a term to link schema:SoftwareApplication to schema:SoftwareSourceCode. |
|
I had a discussion with @dgarijo at the above meeting about whether it made more sense for codemeta to have From our perspective as maintainers of a digital repository that wants to capture source code as well as accompanying descriptive metadata, documentation, and dependencies we lean more towards codemeta as SoftwareSourceCode with a SoftwareApplication targetProduct but obviously it could go both ways.. |
|
@dgarijo @alee this is a very interesting discussion ! From my understanding, the usage of CodeMeta and the integration of a codemeta.json file in the code, is implicitly saying that CodeMeta is about source code which can be compiled and executed, so it can refer to a software product. we should try to detail in #198 the use cases for We are also working on the Force11's SCIWG CodeMeta task force on aligning the CodeMeta terms into schema.org, so maybe this term should be worked similarly. see SCIWG issue on this. |
|
@moranegg, @alee thanks for your answers. Codemeta uses codemeta:SoftwareSourceCode, which is an extension of schema:SoftwareSourceCode, to add new properties, and that makes sense to me. What I think is confusing (and my impression is that to other people too) is that codemeta also uses SoftwareApplication properties, which do not describe code, but that distinction is not clear in the spec and examples. For example, things like "memoryRequirements", "operatingSystem", "downloadURL", "installURL", etc describe software applications, not code. This is not a problem of codemeta itself, it's a problem of the documentation. I think Codemeta should be able to describe both SoftwareApplications and SoftwareSourceCode, I am very happy with its scope. From my point of view, I have a software registry where I describe SoftwareApplications, and I want to point to the SourceCode used for it. It makes sense to use hasSourceCode and codeRepository together, because hasSourceCode points to the identifier of the code and describes metadata such as the language it's written in, while codeRepository points to the code repository where the code lives (github, or my server). I can only think of a case where you would use hasSourceCode but not codeRepository, which is when you want to state that an application is written in a programming language, but you don't have the pointer to the source code. |
|
The realignment is to see if any of the extension terms can fit under newer releases of schema.org. For example, if we can replace codemeta:SoftwareSourceCode,funding with schema:SoftwareSourceCode,funding as in #160 we'd make codemeta even more sustainable. Adding codemeta:SoftwareApplication,hasSourceCode makes a lot of sense to me, as do the documentation changes. We can then try to get it adopted by schema.org. |
|
Ah, I understand now. Thanks! |
|
@mbjones Any objections to merging? It looks good to me, though of course, if we adopt the proposal that codemeta inherits/extends schema.org instead of subsetting it, we get this for free... As this change impacts the JSON-LD context file, we will want to think about plans for cutting a new release and a new DOI (though that might await some possible further changes, e.g. re |
codemeta.jsonld
Outdated
| "referencePublication": { "@id": "codemeta:referencePublication", "@type": "@id"}, | ||
| "maintainer": { "@id": "codemeta:maintainer" } | ||
| "maintainer": { "@id": "codemeta:maintainer" }, | ||
| "hasSourceCode": { "@id": "schema:SoftwareSourceCode", "@type": "@id"}, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Final comma on this line is a syntax error and needs to be removed.
Also, it would be better if hasSourceCode were grouped with the other schema.org properties following the patterns in the file so far.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I changed it, there was a typo. It should be fixed now. Sorry!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also, it would be better if
hasSourceCodewere grouped with the other schema.org properties following the patterns in the file so far.
@mbjones hasSourceCode is not a schema.org property even if it makes sense as a schema.org property.
|
I noted a syntax error above. Other than fixing that up, I think the general idea of |
|
I validated it: https://json-ld.org/playground/#startTab=tab-expanded&json-ld=https%3A%2F%2Fraw.githubusercontent.com%2Fcodemeta%2Fcodemeta%2Fc6bf60ca58418b7e8fe56b68165b287aebf64822%2Fcodemeta.jsonld |
|
@cboettig Given that this is a schema change, we should probably merge into a branch for the time being as the master branch is used for validation in the tests. So, if we create a branch for the next schema release version and merge this PR there, all should be ok until we are ready to cut a new release. |
|
I agree with that. The master branch is used in many projects just as something to be synchronized iwth the latest release. You could have a "develop" branch and suggest contributions there for testing. |
|
Sounds good. Looking into why the tests in Travis are failing, I think the PR has a mismatch between some of the documentation files and the new changes in the jsonld file. I fixed the test issues on master, so now it looks like just a problem in the PR with the new property not matching. You can see the error by running |
|
please let me know if I need to change anything else. Thanks! |
|
@dgarijo I think this PR is waiting for a CodeMeta v3 release ;-) |
|
@moranegg The tests are still failing on the PR, and so we can't merge until those are passing. Plus, the PR seems to have conflicts that need to get resolved as well. Once those are taken care of, we can merge, and then include it in a 3.0 release. |
|
@dgarijo That's up to you, but would be appreciated. Eventually either Carl or I would get to it in the process of preparing a 3.0 release, but I am fully swamped for the next several weeks or more and don't anticipate having any cycles to spend on this. So I was just pointing out that those were the barriers to merging this particular PR. |
|
Any reason it shouldn't be this? This allows linking with the |
|
That makes sense to me. Do you want me to edit the PR? |
|
Sure, thanks! Also, could you rebase on the current |
|
This PR will be deleted when #300 will be integrated into |
|
By deleted you mean closed? |
|
Closing in favor of #300 (which resolves merge conflicts, and adds the reverse property |
As we discussed in #198 (and the discussions in the Scientific Software Registry Collaboration Workshop), a link between SoftwareApplication and SoftwareSourceCode is needed for several reasons:
In this pull request I have:
Note: I haven't added an extra line to each code meta mappings (it's the inverse of targetProduct), but will be happy to do so.