Closed dwinston closed 3 years ago
On it.
The first error message (at the bottom): is trying to say id
is not a defined slot. We clearly need to remove the stack cruft from the actual message itself. To get this to parse, you will need to add id
, name
and type
to the slot definitions.
I would propose that I go ahead complete the prov.yaml schema as a bit of a hint on where you are going. Note, in particular, that we now have a syntactic shortcut that allows slots to be defined directly under classes
.
Similarly, on the second error message (which I'm getting from line 185 in annotation.yaml), it is whining because there are two identifiers declared (id
and entity_inchi
) for the class. The current BiolinkML implementation only supports single keys.
Will post a new issue to clean up the error messages. Also, would be happy to set up an online session to work through some of the issues
Thanks for looking into this!
For the first error, I was hoping that perhaps the
imports:
- biolinkml:types
section of prov.yaml was a signal that slot definitions for id
et al. would be imported from another place or something? I am totally new to biolinkml -- my intuition there is from from foo import *
in Python modules.
For the second error message, that makes a lot of sense. I wonder why that double-identifier error doesn't trigger when generating other formats (e.g. gen-jsonld
), though.
I'm just trying to use the raw yaml and the generated html docs to get stuff done in the short term, but I'd be interested in working through issues with you at some point. Thanks!
Thanks all!
@hsolbrig
The first error message (at the bottom): is trying to say id is not a defined slot. We clearly need to remove the stack cruft from the actual message itself. To get this to parse, you will need to add id, name and type to the slot definitions.
this is due to my poor modularization in prov. It uses id
which is defined in core. however, prov imports core, rather than vice versa! this doesn't manifest when we use the nmdc module, as it imports both. But it's now clear that this first error is purely an nmdc schema issue, not linkml, thanks!
@dwinston
section of prov.yaml was a signal that slot definitions for id et al. would be imported from another place or something? I am totally new to biolinkml -- my intuition there is from from foo import * in Python modules.
your intuition is pretty much spot on, except that id
is not defined in the metamodel, it's a field we declare in nmdc
@hsolbrig:
Similarly, on the second error message (which I'm getting from line 185 in annotation.yaml), it is whining because there are two identifiers declared (id and entity_inchi) for the class. The current BiolinkML implementation only supports single keys.
@wdduncan and @deepakunni3 fixed the inchi key issue independently (this was due to me using key
incorrectly - more on key
here: #211). @dwinston if you try again on master hopefully this vanishes, and we can close this ticket!
And yes, having more concise error reporting would have helped us spot the cause of error here!
Thanks @cmungall and @hsolbrig ! gen-owl schema/{prov,core,nmdc}.yaml
all work after moving id, name, and type slot definitions to prov.yaml (PR at microbiomedata/nmdc-metadata#222) (using biolinkml==1.7.0).
thanks!
For example, trying
gen-owl schema/prov.yaml
for this file raisesand a larger example,
gen-owl schema/nmdc.yaml
for this file raisesI am using python 3.8 and
biolinkml==1.6.1
viapip install
. I'm not sure how to troubleshoot. Thanks @cmungall for suggesting I note the issue here to track.