-
Notifications
You must be signed in to change notification settings - Fork 52
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
What are the actual canonical URLs of terms in bioschemas? #653
Comments
Bioschemas has Specifications (classes) which are Profiles (and have additional property-related constraints) and Types (which do not). Hence to resolve to the appropriate specification on the Bioschemas website, you would include that as part of the base url (eg- 'https://bioschemas.org/types/' or 'https://bioschemas.org/profiles/') to resolve to the desired specification. To my knowledge, the bioschemas site does not resolve properties, which made it tricky to generate the JSON file you referenced. The schema (json) files for Bioschemas were generated using (and registered to) the Data Discovery Engine (DDE) hence the urls that pointing there should resolve regardless of whether it's a property or a class. That said, there are limitations with the tool in that multiple classes are not allowed in the same name space. Hence, only the latest version of a draft and latest version of a release is available from the DDE site. This is also why there are multiple namespaces, resulting in multiple urls on the DDE (e.g.- |
Thanks for getting back to me @gtsueng For our current purposes I am not concerned with how to identify profiles, just Types (AKA Classes) and Properties. My understanding is that Types in schema.org are essentially the same as Classes - the Schema.org schema defines the schema.org Types using You are correct that it makes it tricky to generate JSON-LD with these schemas as it is not clear what implementers are supposed to do to generate bioschemas documents but it is not possible to implement systems that create bioschemas markup with knowing the answer. How are your Types (Classes) and Properties identified using URLs? Is it as per the schema which resolves to the DDE documentation or as per the bioschemas website which has Type (Class) documentation? |
Since all the projects I work on also use the DDE, I usually resolve any classes or properties for those projects using the DDE. |
For interop it's important that everyone does it the same way - otherwise there is no way to tell that two documents are using the same terms, this is fundamental to linked-data and the schema.org approach on which bioschemas is based. |
So far, I've just used This ticket tells me Bioschema should decide some policy about URIs and take corresponding actions, such as redirecting canonical URIs to the DDE. I'm in favour of a simple canonical namespace like bioschemas.org and without paths for types/profiles/drafts/properties/etc, cause the latter is more complicated to manage (you need to declare multiple namespaces everytime and remember which one you need every time). Applications can know what a type exactly is (including if it's stable or draft) by resolving its URI, if one needs to refer a given version of a type, we might have a canonical URI that always point to the last (stable?) version, plus versioned URIs, eg, Obviously, I'm not saying anything new, similar policies have been applied for years in ontology and linked data projects. |
The use of https://discovery.biothings.io/ns/bioschemas/ as a temporary namespace seems to be a new thing due to how the DDE editor work, and should not be how Bioschemas' profiles are published. For one thing, this namespace is not in control by Bioschemas community, but by biothings.io. Secondly if a PID is to be established it should be by redirection from a PURL service, not directly leading into the UI of however service works today. For compatibility with schema.org I would also have expected https://bioschemas.org/input etc. for the properties, but in reality these property links don't work, only for the types. Some of the types HTML (but not Types and properties should not be versioned in their PID, because a 1.0 ComputationalWorkflow is semantically also a 2.0 ComputationalWorkflow - however a profile from Some properties are shared in multiple types, for instance |
I can't see the problem: if Bioschemas needs to add a new property, it can adopt the
I'm not sure what PID is. Apart from that, ComputationalWorkflow v2 might not be completely semantically equivalent to ComputationalWorkflow v1 at a formal specification level (not even considering subsumption), for you might have inconsistent specifications or one more general than the other, roughly, as it happens for a class or function name in a Java or Python library. Certainly, we should have a short name like |
So is there someone at Bioschemas who can make a determination on this? |
I would also wish for |
'first type that introduced it' might not be ambiguous (it could be based on the creation date), but defining a property description to feed a URL is a cleaner path and such a description could be more informative than landing on some usage example. By the way, how many new bioschemas properties do we have? I don't remember very many. |
Codemeta Namespace boldly assumed to be w3id-based rather than github.io see codemeta/codemeta#216 Added Biochemas namespace comment, see BioSchemas/specifications#653
Hi all, let's take the example of I would go for creating a page in the Bioschemas for each of these "dead" links. Would that be ok ? |
@albangaignard as an outsider that makes perfect sense to me -- we could then add these terms to our RO-Crate context and change them if/when the terms are added to schema.org. It would also be helpful if the documentation made it clear how to refer to the terms, as it is clear that some bioschemas community members are using different URIs for the terms including in the which defeats the purpose of using Linked Data. BTW, also as an outsider though the properties |
@ptsefton I thought (my recollection, could be wrong) I had replied via the Slack integration but my reply is not here at all, so adding it now. As for the input/output, I am moving your comment to a new discussion, dedicated to those two properties. |
@ptsefton |
Trying to re-awake to close this - are we agreed that the new https://bioschemas.org/properties/input etc. solves this already from a namespace perspective? Then we can implement ResearchObject/ro-crate#300 using that in the context. |
Like @stain I'd like to get a resolution for this -- anything happening? |
In the bioschemas schema the @context has:
And Classes and properties are defined below. Eg:
Which would mean that the URL to use for
ComputationalWorkflow
should be https://discovery.biothings.io/view/bioschemas/ComputationalWorkflow, right? This does in fact resolve to some documentation as does the property https://discovery.biothings.io/view/bioschemas/input albeit not with a very good description of input.BUT this URL also resolves to some documentation: https://bioschemas.org/ComputationalWorkflow which says that the canonical URL for
ComputationalWorkflow
is https://bioschemas.org/ComputationalWorkflow though https://bioschemas.org/input doesn't resolve.(I came here from the RO-Crate project and Crate-O trying to sort out a bug we had related to this -- which arose from what I think is an error in our default context where input and output are linked to the ComputationalWorkflow page
But a colleague @alex-ip working using the Bioschemas Schema definition (linked above) has been using
https://discovery.biothings.io/view/bioschemas/input
.)
Is there a standard context for bioschemas that includes all these terms as there is for schema.org and RO-Crate?
My colleague @alex-ip found this example: https://bio.tools/api/blast?format=jsonld
This is using the following @context definitions based on, I assume the assumption that the canonical URL for the schema is bioschemas.org:
But as noted above http://bioschemas.org/input does not resolve.
So, what are the IDs of these Classes and Properties?
The text was updated successfully, but these errors were encountered: