-
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
Organizing building blocks by type first? #2
Comments
@doublebyte1 @rob-metalinkage @ghobona I believe it should be possible to almost fully automate building this registry of building blocks (or at the very least the foundation for it) by pulling the information out of the various OpenAPI definitions programmatically. The end result would also be much more usable as a backend to a queryable table of building blocks than a bunch of static ASCIIDoc files. |
Thanks for your comment @jerstlouis !
So instead of having these on the folder structure, they would be encoded in the "IsGeospatial" category? |
Yes, but also having that specific top-level organization that I am suggesting. A relational database might be a more suitable storage mechanism than a GitHub repository for the building blocks though, so that the data can easily be presented organized in different ways. |
@cportele what do you think of this reorganisation? did you have a strong motivation to have the top level hierarchy with geo, ogc-utils and unstable, or you think that distinction could be moved to an attribute? |
@doublebyte1 I am not averse to @jerstlouis 's suggestion, but I found it easier to add the EDR building blocks by creating an EDR folder, alongside the Common and Feature folders. That might help with provenance or authority if considered important. |
@chris-little @doublebyte1 With a database / relational model, the API specification owning the building block (common, features, edr, tiles...), and the re-usable building block type (schema, query parameter, response, request header, response header, resource path...) would be two fields, so we could have it both ways :) I think being able to query by building block type first is better for discovering already existing building blocks of a paticular type, and for maintaining consistency across the OGC API specifications. |
|
This is a 'straw man' proposed structure for building blocks from @robatkinson:
|
I agree @cportele , but what about "unstable"? isn't that already captured in the "maturity" property? |
I refactored the register, based on feedback: https://blocks.ogc.org/register.html (there is also a shortcut, in the top menu from https://blocks.ogc.org/) To do this, I added another property, "type", which captures what we have in the folder structure: "geo", "ogc-utils". The edr and coverage blocks from @chris-little were included - thank you for the contribution! I also added a couple of issues discussing various things - I really welcome your feedback! |
@doublebyte1 Now that I have seen the re-factored register (looks good!), perhaps Also, on the register page, how about giving each of the filter properties a definition in a mouse-over? |
This looks great now, but as we develop more building blocks and have more schema and query parameter equivalent forms, and more specialisations (like we see with Extent, bbox, bounding box, bbox-crs) already we may need to include the common conceptual models as a grouping and filtering mechanism, as well as the type of building block. We can play with this after loading into a knowledge graph and annotating - then push the ideas that work back into the point of truth registry once we have tested these facets and found the right level of granularity of typing. |
@chris-little Good idea 👍🏽 |
@doublebyte1 The improved building blocks register page is a thousand times better, thank you. My organization/structure-hungry brain still finds it difficult to find things in https://blocks.ogc.org/register.html . The tags can possibly help with this, but all tags are currently presented as a flat single list. I imagine most tags are enumeration value for a particular thing. I still think a single block per row presentation, with the first column being the name, second column description, and additional columns reflecting each of these scoped labels categories, and the tags within them, and the ability to sort and filter by the value of these tag categories, with a default sort, would make it much easier to discover building blocks of interest, and see the big picture of what building blocks exist. Right now the building blocks appear to be listed in a random order. I don't know if the intention is to remain at this level of granularity (which is either very high level or only includes a small selection of the APIs building blocks), but I was thinking every path, response, parameter, schema and requirements class of OGC API could/would be registered as a building block, with several of them shared between multiple APIs (e.g., all of those from OGC API - Common). That is the first and most important tag scope that I would include: type:path, type:response, type:parameter, type:schema, type:reqClass. |
Note that the bblocks register and build process now supports a logical reference usng a bblocks:// that allows blocks to be developed in one sub-register andf then moved to another as its status changes. We also now support visualisation of dependencies, including accessing building blocks from different registers, so we need to remove status in names. see #22 |
I feel it would make things a lot easier to maintain if we used as top-level subdirectories the following list:
This should make it easier to import and synchronize the different building blocks from existing specs which already use several of these directories, e.g.:
Entries in the registry should probably be in a machine-readable form like JSON rather than ASCIIDoc (to implement organization / filtering by type etc.), including all the properties needed to efficiently support the building blocks registry.
e.g., following properties could be included:
The text was updated successfully, but these errors were encountered: