Change to the JSON-LD Structure of the Standard to support Startin' Blox integrating #3
Replies: 5 comments 7 replies
-
I think this is actually a wider issue... the current URI's for the ontology/taxonomies return a download link, there is no direct URL access to the ontology files. @lecoqlibre : Can you confirm how this is expected to work?
I think this would primarily impact the bulk GET of Products, there would probably be impacts to the Prototype code and other platforms would need to update their code to comply with this change. It may be possible to absorb some/all of the change within the connector (for platforms utilising that). @lecoqlibre : what do you think ?
I think this makes sense & my only concern is whether this move us closer to general SOLID compliance or is this a practice specific to Startin' Blox ? |
Beta Was this translation helpful? Give feedback.
-
1. JSON-LD context Following the link in the header will lead to the direct URL: https://www.datafoodconsortium.org/wp-content/plugins/wordpress-context-jsonld/context.jsonld (with a I already told Benoit and the direct link is written in the SiB API Guidelines. About the ontologies and taxonomies I guess we will have a problem if we try to do inference. Sooner or later we will probably have to provide direct links. But if we are just referencing vocabularies it should not be a problem. 2. One object per resource instead of a graph In the SiB API Guidelines I can read:
I'm very afraid to see that because one of the top requirements of Solid is the support of documents which can contain multiple objects! DFC is using default graph (a graph with no name) which is an easy way to represent documents. This is illustrated on the example 116 of the JSON-LD spec. The JSON-LD spec says:
If we don't use the I made some tests to access the representation of a document in JSON-LD on both:
3. Use This is two different things. But whatever, the standard should not tell where to host the data. It should instead let users choose the locations they want, in LDP containers or not, with one or multiple objects per document. This is also a top requirement of Solid! The standard should therefore instead provide a way to express the locations chosen by users. It might recommend various file structures to fit the users needs and ensure scalability. The current DFC Solid client-to-client standard proposes to use a TypeIndex [1] to save these locations. A discussion on this subject is started here. This would require the ability to serve a profile document associated to the user's WebID (which SiB does not support yet). Conclusion In conclusion I would say that we need to agree on a way to express data locations in the DFC standard. For me we should use an index document (TypeIndex or not) as it is pure RDF which ensure consistency and re-usability. This index would contain pointers to documents or LDP containers, depending on users needs. Also I would say that SiB should comply with the Solid spec and thus support documents and WebID. [1] I'm wondering if it would not be better to use a dedicated index instead. Indeed, like Tim B. Lee told us, the TypeIndex should be used for large piece of data only. I would like to talk with the TypeIndex team about it. But even if we don't use a Typeindex this won't change a lot a thing as we still need to be able to save the location to this index somewhere, in the profile document or elsewhere. |
Beta Was this translation helpful? Give feedback.
-
I'm trying to summarise my understanding of your reply here.
We just use the direct long link as context and we are good.
You would like Startin'Blox to support the I don't think that Startin'Blox supports the unprefixed array either. They just want one object on the top level, not multiple. Since this is very restrictive and Solid supports multiple objects, Startin'Blox should increase compatibility and support
I don't understand the details here. Using ldp:contains for every collection means that every collection has an id (URL) and can be referenced. So as long as we have one entry point, like the link to a person, an enterprise or a collection, we can find all other related data from there. A container can be hosted anywhere. So I can have a user profile on serverA and it says that I manage products in a container on serverB. I don't understand why we need TypeIndex in this case. The addition of containers introduces some indirection to the data structure though. Instead of enterprise manages product we have to write enterprise manages container which contains product. Is that right? |
Beta Was this translation helpful? Give feedback.
-
So, Benoit from Startin'blox here. I would like to clarify that the document we write do not bear the intention to be accepted as-is as modifications to the DFC standard, but provides an explanation of our own APIs constraints to ease the technical convergence work.
Managed as stated by @mkllnk by
I am not sure where you get that exact requirements being part of Solid. As we are actually discussing as part of our common project it looks more of a client-to-client agreement on the graph structure of your hierarchy of documents. We may have missed something from the specs though. @lecoqlibre let's put that on the roadmap of our client framework improvements then.
I do not get how you can push to promote the client-to-client standard approach and then state that users/apps should do what they want. In a practical implementation in the real world where none of the WebID or TypeIndex or others current drafts are widely used, we need to enforce constraints on those questions to achieve some interoperability. You have to understand that the massive usage of containers on SiB side is the current implementation achieving this goal without requiring any type of Index which we started before those topics were raised. Once again, let's use the context of our common research project to converge.
As far as I know, we support Solid-OIDC, LDP, Web-ACLs and Linked data Notifications. Simplifying the conclusion as "you should comply" to a specification which is still a draft covering really wide ambitions (I mean, Web-sized ambitions is wide) does not look constructive. As a reminder, even the CSS does not support ACP or Linked Data Event Streams or the WebSocket part of the specs. Do you consider it compliant though ? |
Beta Was this translation helpful? Give feedback.
-
Since this work is being picked up again, I just wanted to add a vague memory that the Startin'Blox framework would like all linked resources in JSON format. I think @balessan mentioned that a dependency update will remove support of referencing RDF files in the context. Is that right? |
Beta Was this translation helpful? Give feedback.
-
Further to this discussion in slack, Startin' Blox (SIB) are proposing a couple of changes/clarifications to the format of the JSONLD within DFC standard.
Further details are available on the SIB API Guidelines
Beta Was this translation helpful? Give feedback.
All reactions