-
Notifications
You must be signed in to change notification settings - Fork 79
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
Adopt & release the schema-aligned v2 codemeta.jsonld context file? #142
Comments
Thinking about how to review proposed changes more, I think its better to break them out as we may want some changes but not others. Here's my revised summary of all the proposed changes. Additionally, I've crosswalked codemeta-v1 into v2, and I illustrate how we can (approximately) transform any JSON-LD in codemeta-v1 context into the v2 context using Expansion and Compaction. Minor changes
In several cases we have invented a new term when schema.org provides a functionally equivalent one. In some cases our term already declares itself identical to the schema term, in some cases we have used a dcterms property identical to a schema property. I think the following terms could be easily re-aligned:
Dependencies
This one is slightly more subtle, since I think we would adopt the schema term but change the type to something more expressive:
If we re-type this as SoftwareApplication it can do everything we currently put under Agent/role structure
See #135. This is perhaps the most useful change. The current proposal is a bit semantically troubled, but this also makes it very difficult to use json-ld tools (expansion & compaction). More immediately, it's rather hard to represent in a tabular crosswalk. I propose we adopt the relevant agent (Person/Organization) roles already defined by schema.org for now, and extend codemeta with additional roles when we find an essential role is missing (e.g. codemeta:maintainer). Use Schema.org Types
We also re-type a lot of schema.org terms using XSD types, which also seems needlessly complicated. e.g. we use When to declare Type?
A more subtle issue is when we should declare a Type on a node. I propose that when referring to an existing schema term in our context in which we intend the same Type as it already has in Schema.org, that we do not explicitly type it, e.g. we should state: "author": "schema:author" rather than "author": {"@id": "schema:author", "@type": "schema:Person" } but when introducing a new term, we should explicitly type it: "readme": {"@id": "codemeta:readme", "@type": "schema:URL" } Using schema.org properties not already associated with the original schema.org type
For instance, Drop redundant / confusing terms
These terms don't crosswalk to any existing schema, and I'm still not sure what they mean.
Inherit additional terms from schema.org
Schema.org
Still need a proposal for...
|
If using schema.org types vs our own codemeta types will facilitate wider use, then I think we should do it. Also, if translating codemeta documents from an author’s schema to a consumer's schema (JSON-LD expand/compact, from Manu Sporny’s video) is a goal then the author and consumer need to be using the same set of 'universal' types, as the video states. In this context, using the already established 'universal' types (from the widely used schema.org) makes sense. The remainder of my comments are under the same section titles as used above. If these issues Minor changesThe type Dependencies.In v1, Agent/role structureI think we still need Use schema.org typesThe xsd:types types provided the potential to validate values. The schema.org types only loosely provide this. So is validation important to us? When to declare Type?Yep, this is a reasonable approach Using schema.org properties not already associated with the original schema.org typeNot sure that we could prevent/control this even if we wanted to. The positive point about this is that it will assist us in showing where our schema and especially schema.org schema is lacking. The additional types that authors use should prompt requests to schema.org to update their schema hierarchy to accommodate the new usage (position in hierarchy) of these types. Drop redundant / confusing termsWell, if we aren’t 100% certain of what these terms mean or how they should be used, then we should drop them. Inherit additional terms from schema.orgFor |
@gothub Thanks, nicely put explanation and very helpful feedback. A few replies to the detailed issues:
Agent/role
types from other properties
Additional types from Schema.org typesRight, for this reason I've only proposed adding those terms specific to Okay, I think that hits everything? |
You have addressed all of my concerns, thanks. |
Great, thanks. Good, let's use Ah, right, that's a good point about XSD's precise type definitions. Yeah, I think it's still worth sticking with schema for compatibility. |
@mbjones Can you generate a new DOI to point to the v2.0 tag, https://github.com/codemeta/codemeta/releases/tag/2.0 ? Can you let me know the DOI and I'll post it in the release notes when I create the 'release' for the tag? Thanks! |
Closing stale issue, DOI was created in June: https://doi.org/10.5063/schema/codemeta-2.0 |
As has been discussed in #134 and related issues, I propose we adopt and release a new version of the codemeta.jsonld context file that is more closely aligned with Schema.org.
To recap, the main reasons for the switch are:
A. to better align with / be more interoperable with related efforts (e.g.
paper.json
, DataCite's schema based version, etc),B. To permit a basic codemeta representation entirely within the schema.org vocabulary,
C. facilitate tool development, particularly in cases where schema.org terms are already in use (e.g. #91).
The new context file maintains most concepts from the original, but choses more existing schema.org properties to express them instead of inventing new terms. Type choices are also more closely aligned to schema.org types, avoiding the use of the equivalent xsd types. To help review these changes I've created an annotated version of the current v1 context file.
I've also posted the properties and types on the codemeta.github.io terms page, (analogous to the schema.org pages for Types, though the webpage doesn't have unique endpoints for the new codemeta terms yet). These tables are probably the easiest way to review the properties taken from schema.org and also the new properties introduced by codemeta: http://codemeta.github.io/terms/
Note that in addition to re-mapping some old codemeta terms to their schema equivalents, I've listed additional terms in the schema.org namespace that may be relevant to codemeta. See #139 Please weigh in if we want any of these new terms or not.
The text was updated successfully, but these errors were encountered: