jam-schema / jams

Journal Article Metadata Schema
Creative Commons Zero v1.0 Universal
32 stars 5 forks source link

JSON schema #52

Closed mjaquiery closed 2 years ago

mjaquiery commented 2 years ago

Dear JAMS maintainers,

I've been discussing the JAMS project with @marton-balazs-kovacs, and we saw that it would be useful to the tenzing project to have a flexible schema that allowed for self-description of authorship roles. That prompted me to take a look at the state of your project and suggest a JSON schema (interoperable with your preferred YAML approach) that allows for both machine-readability and human convenience.

Please let me know if this PR is useful to you, or if you have any questions regarding its details.

For a basic overview of how the schema works, and to experiment with what does and does not fit it, you can copy-paste the contents of either schema file (schema_flat.json or schema_relaxed.json) into the online JSON schema validator and then paste the contents of one of the example JSON files (examples/json/flat.json or examples/json/nested.json) into the right-hand box. You should see that the flat json validates against both schemas, while the nested one only validates against the relaxed schema. You may notice the nested schema is easier to write.

Currently there's only rudiementary details in the definitions section of the schemas to describe the way the objects should be defined.

All of this information has been appended to the readmes by editing README.md and including a new schema_meta_notes.md readme file.

Thanks, Matt

jcolomb commented 2 years ago

dear matt,

Thank you for reaching out. I am sorry I did not see this earlier.

I had a rapid look and it sounds an interesting approach. On the other hand, we have been trying to include jatsxml information so far, and the json schema you add seem to lack some elements, as well as have additional ones. We also aim for a single format, while you already have two (?). It would probably not help merging this PR in this state, but it would be nice to think about interoperability with other initiatives like yours and json is definitively a way to go for jams.