-
Notifications
You must be signed in to change notification settings - Fork 3
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
Convert IRI -> CURIE using bioregistry
while parse
-ing a KGCL command.
#6
Conversation
src/kgcl_schema/grammar/parser.py
Outdated
pref, i = parse_iri(uri[0].replace("<", "").replace(">","")) | ||
pref = get_preferred_prefix(pref) | ||
curie = curie_to_str(pref, i) | ||
input = input.replace(uri[0], curie) |
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.
Beter use https://github.com/cthoyt/curies
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.
(but dont sweat it)
pref = get_preferred_prefix(pref) | ||
curie = curie_to_str(pref, i) | ||
input = input.replace(uri[0], curie) | ||
|
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.
It seems very hacky to replace URIs with CURIEs just so the KGCL parser works. Why is that necessary?
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.
When adding synonyms, apparently only CURIEs are expected and ehnce the conversion from URI => CURIE. Just a judgement call, there could be a better way of handling this. Ideas?
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 dont know how that parser works, but if CURIES are expected, wouldn't it be better to make sure the input is "valid kgcl" using a validator and not trying to hack anything? The user can be forced to provide CURIEs if that is what the spec wants..
In any case, I would for sure factor out the method def replace_uris_with_curies_in_kgcl_command(input)
into its how, document it etc. Not convinced this is great but if its necessary to be parseable than so be it.
Triggered by this comment.
curie_from_iri
<>
around URIs : fixes Do not require <>s in URIs kgcl-rdflib#58