-
Notifications
You must be signed in to change notification settings - Fork 1
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
add okh JSON schema #1
Conversation
Please Take a look at the $comments in this Schema. As we put this together we had a number of question and use the comments as an opportunity to point a finger at them. |
I had a look at it (mostly at the HistoryI personally also think, having a JSON-Schema (A widely used industry standard) for the OKH Spec is the most sensible thing to have, and should be the single-/original-source of truth of the spec, as long as the manifest file is in YAML, TOML or JSON format. End of September this year, I had a chat with (mostly) @Jbutler-helpful about how to work together and unite the different OKH versions. In that meeting I also introduced him to JSON-Schema, as I saw that Helpful also uses their own schema format. As he suggested, I also created an issue on one of their projects regarding this whole unification topic: FeedbackUnlike our version, this helpful version does not represent OKH v1, but includes various adjustments as they saw fit, as explained in the My SuggestionFrom the IoPA perspective, I think the best course of action would be, to start hosting the spec on a platform where everyone can easily suggest changes (like GitHub or GitLab), and then switch to a single format of truth, which is machine- and (at least somewhat) human readable, and from which all other necessary and desired formats can and will be generated.
This whole system should prove invaluable for other standards as well (like OKW, Valueflows, OSH-Ontology and many more). If we get there, we can finally start to move forward together, bring in Helpfuls changes, LOSH changes, anyone elses, and have a clean process of handling these change-requests. |
I would recommend to undo this merge, and link to our JSON Schema of OKH v1 instead, which conforms to the current state of OKH v1, unlike this schema. |
@hoijui thanks for all the detail and context on this, it helps quite a bit to have the background you've shared here, and I value your opinions on this matter. You make a lot of very good points regarding the necessity of a single source of truth if we are ever to have any hope of keeping our versions in sync. I have no personal experience working with RDF, so I can't speak to any of the existing tooling available for such things, but I understand that there are python libraries like rdflib, and we can probably build most of what we need with that if there isn't something already built. I would love to discuss this with you in more detail, to put together a more concrete roadmap and figure out what kind of technical resources would be needed to make something like your vision become a reality. My main concern with this plan is that it will make the perfect the enemy of the good, and require several more years of effort before we have something that enables design sharing, supply chain mapping and all the rest. So if we can work out what a minimal prototype of this proposed system would require, that should answer most of the questions I have. Regarding the proposal of undoing this merge and instead linking to the LOSH schema, I have no particular problem with doing that, but I would like to have a plan for what to do with the Helpful Engineering version and their contributions. If, for example, I undo this merge and instead link to the LOSH schema, what should then be done with the Helpful version to capture their contributions? |
Woohoo! :-) I will answer in random order JSON SchemasWith have both the OKH v1 Schema, and the LOSH Schema in one repo. They are kept as similar as possible, so the diff is minimal. So at first, I would recommend to link to the OKHv1 schema, or even copy that file into your repo (-> overwrite the helpful schema with it). With that, you would be in a sane state again: not defining different standard versions/states in different formats within a single repo. RDFYes, there are RDF libraries in all the big languages (I would guess, the 50 most used ones). It is by no means an new thing or niche-tech. ... I could go on and on, but really, you would have to dive into it. As with git, it takes time and brain-remodeling to get it. The inventor of RDF is the same guy that previously invented HTTP. He obviously has a very social, interconnected dream, and RDF gets us much closer to it then HTTP. Once you get it, it will be as important to you as is git (vs SVN). I warmly recommend the video on this page as an intro to RDF, by its originator; it is good for both tech- and non-tech-people; it transports all the cool things about RDF to you, in 10min: Perfection vs goodThat is a very good point, thank you!
Do you have an idea where/how we could host that? This would then be our playground, and we can put data there. The cool thing with RDF then is, that the data always references its Ontology (~= Schema), and it does so through the hosting URL of the Ontology, and that URL contains the version (often the release-date, but can be a semver or commit SHA). That means, we can store data following different ontology versions in the same DB. When querying, we can choose a single version, or combine data from different versions. That allows for fast and stress-free iteration: No need to coordinate all team members and external groups when changing the Ontology! SyncTODO (I'll write about this in an other comment) |
(This is my proposal only) SyncIn theory, with the above setup, we could keep working in parallel on OKH v1, OKH LOSH and OKH Helpful, on the same infrastructure, using the same base technology, and of course we could come up with a completely new schema(=ontology) for this project.
And in a second step, we would choose a starting point (on which later to propose changes). From then on, we can proose changes. If we start off with OKH v1, I would first go though the OKH LOSH changes. If we start off with OKH LOSH, I would go straight to the "atomization" of the BoM, as proposed in helpfulengineering/project-data-platform#60, probably by first creating a simple, Open BoM Spec (<- see this repo, where we could already now start working on it). Summary
|
No description provided.