codemeta/codemeta-generator

[Context] Add v3.0 properties and context identifier

Closed this issue · 11 comments

Propose the possibility to choose the CodeMeta version and updating with the CodeMeta v3.0 release.

This includes:

  • Add at the top of the interface a multi-options button with v2 and v3 that will affect the generation with the correct vocabulary identifier

  • In the v3.0 view add the new properties of the CodeMeta v3.0 and the semantic changes, which include:

    • Rename codemeta:contIntegration to codemeta:continuousIntegration
    • Rename codemeta:embargoDate to codemeta:embargoEndDate
    • Add codemeta:hasSourceCode
    • Add codemeta:isSourceCodeOf
    • Remove type restriction to schema:releaseNote
    • Add schema:Role, schema:startDate, schema:endDate, and schema:roleName
    • Added schema:Review, schema:review, schema:reviewAspect, and schema:reviewBody
  • Validate the file with the correct context (v2.0 or v3.0)

  • Create codemeta.json files with v3.0 context to test

stain commented

Recommend awaiting for clarifications codemeta/codemeta#236 (comment) before releasing with the new context.

Hi @moranegg, how should we generate codemeta:hasSourceCode and codemeta:isSourceCodeOf for codemeta v3?

Based on this, I think hasSourceCode is supposed to be used with only SoftwareApplication. However, our generator is only supposed to work for SoftwareSourceCode.

So I think we just need to take care of isSourceCodeOf term. But there are no examples in the repository.

Is this sufficient? Or do we need more fields like the hasSourceCode example?

"isSourceCodeOf": {
  "id": "https://codemeta.github.io",
  "type": "SoftwareApplication"
}

@moranegg @progval

For the roles, we need author id to connect them with the respective author. But the generator doesn't auto-generate an author id in case author URI isn't provided by the user. What should be done for such cases?

{
    "@type": "Role",
    "roleName": "Coding",
    "startDate": "2000",
    "endDate": "2002",
    "author": {
        "@id": "http://example.org/~jdupont" // not generated at the moment
    }
},

Should we generate something like https://example.com/firstName.lastName?email=foo@xyz.com

Remove type restriction to schema:releaseNote

Not required for codemeta generator. It's validation logic is already allowing URLs as well as normal text

Add schema:Review, schema:review, schema:reviewAspect, and schema:reviewBody

Are we sure that we want this in the codemeta generator? Manually entering all this data will be too tedious for the end user and just mentioning a few reviews doesn't add much value.

Hi @stain, sure that the work here is dependent on the context value.
I'll update the issue when we identify the v3.0 context.

Hi @KShivendu, good catch! for the hasSourceCode property, an option is to write a text at the start of the generator specifying that this tool is generating codemeta.json files for SoftwareSourceCode. This option is an MVP option.
In a later iteration we could also provide the type SoftwareApplication as a possibility (like the choice between v2 and v3 which will open up the hasSourceCodeProperty.

At this stage, the focus is to have two correct CodeMeta files for v2.0 and v3.0 for a SoftwareSourceCode type.

Is the @id in the author property mandatory?

-edit-
Is generating something like https://example.com/firstName.lastName?email=foo@xyz.com, common practice with schema.org?

Concerning the review, this property is planned to be used for publishers and editors that want to review code for a academic purposes, it's a different use case from the code review case where there might be many review and very tedious to add in a codemeta.json file :-)

To clarify this use case, I suggest creating a box with the title Editorial review and add into this box also other properties that are related like editor and referencePublication (which is now in a generic additional info box).

Should we generate something like https://example.com/firstName.lastName?email=foo@xyz.com

No, use blank node identifiers

@moranegg @progval does the latest generator version close this issue?

Looks like it does, thanks