ResearchObject / ro-crate

Research Object Crate
https://w3id.org/ro/crate/
Apache License 2.0
82 stars 34 forks source link

Missing schema:author in Workflow Example #55

Open ThomasThelen opened 4 years ago

ThomasThelen commented 4 years ago

Describe the bug According to the 0.2 spec, schema:author must appear at least once.

Screen Shot 2019-10-30 at 10 11 45 AM

In the workflow-0.2, no author is defined.

URL https://github.com/ResearchObject/ro-crate/blob/master/examples/workflow-0.2.0/ro-crate-metadata.jsonld

Suggested fix Add "author": {"@id": "#thomas"} or equivalent to the file.

stain commented 4 years ago

Depending on #49 the workflow-0.2.0/ro-crate-metadata.jsonld example needs quite a bit of update. You are right in that there should be author (and not creator) in the example. I also think the example has not been properly flattened (nested potentialAction)

The workflow example also use some PAV provenance properties not mentioned in the spec (importedFrom) but which are in the JSON-LD context - should those be explained in the Provenance section or removed from the example?

ThomasThelen commented 4 years ago

I think a small blurb that mentions or explicitly states that users can pull out of the context (although this should be implicit) may be helpful. Additionally, a small addition to the example README.md may help.

This example also uses some PAV provenance properties not explicitly mentioned in the spec (importedFrom) but which are in the JSON-LD context. This demonstrates the flexibility in the spec by showing the ability to pull in additional definitions not explicitly stated

I think most people looking at the example are going to be using it as a reference on how their metadata should be structured (just how a software engineer may look at example code on how to use a particular library and follow that convention).

stain commented 4 years ago

I think this example should just show what RO-Crate mandate or mentions already in text.

For the context I agree, because now it's deliberately written to be easy to parse - see massaging in https://github.com/ResearchObject/ro-crate/blob/master/scripts/schema-context.py

It means it's possible to do very simple things using pure JSON, as in https://github.com/ResearchObject/ro-crate-py/blob/master/rocrate/metadata.py#L27

49 now tidied so author is shown and creator removed. The new example is much smaller:

{
    "@id": "workflow/retropath.knime",  
    "@type": ["SoftwareSourceCode", "Workflow"],
    "author": {"@id": "#thomas"},
    "name": "RetroPath Knime workflow",
    "description": "Retrosynthesis workflow calculating chemical reactions",
    "license": { "@id": "https://spdx.org/licenses/CC-BY-NC-SA-4.0"},
    "programmingLanguage": {"@id": "#knime"}
}

(see that section for the extras)