Review Comment:
The paper presents LDKit, a library that can be used to work with RDF data in Typescript. The tool seems interesting and the library has several features like a good documentation, open source repository in github, being available as an npm package, tests, etc.
The paper presents some related work in three different aspects: web frameworks in general, Typescript/Javascript RDF libraries and Javascript runtimes.
I think the authors could include two other aspects which are about other RDF libraries and mappings from OO languages to RDF, as well as other web possibilities like WebAssembly. In the case of other bindings from OO languages and RDF, there are some historical proposals like Trioo: https://trioo.wikier.org/ (Disclaimer, I was one of the coauthors, I am not requesting the authors to cite it, but just suggesting that at least they could consider talking about some of those approaches that intended to provide a mapping between OO languages and RDF in a type safe way). Another approach that could also be interesting to mention in the related work is rudof (https://labra.weso.es/publication/2024_rudof_demo/) which could be compiled to WebAssembly and they could also provide an alternative way to work with RDF in the browser (I am again one of the coauthors).
The caption of Listing 1 says that it is the formal specification of LDKit schema, but I think it is an informal specification and the paper doesn’t describe it properly. For example, the paper doesn’t mention the fields “optional” or “multilang”. And the vocabulary employed in the specification is also not clear to me. I noticed that the online documentation of LDKit contains more properties like multilangarray which are not described in the paper. I would suggest the authors to describe better the different fields of the Schema and their semantics, as it seems to me that the Schema is an important and novel part of this proposal.
There are some questions that appear when one looks to the Schema specification…is it allowed to have recursion in Schemas…for example, to have a Schema that refers to itself in a nested definition?
One feature that I think the authors of LDKit should consider or address is the relationship between those schemas and ShEx schemas or even SHACL shapes. I think that the library could be very helpful if it could import subsets of ShEx/SHACL schemas and generate schemas, making the library compatible with those definitions.
Another possibility to explore or mention would be to work with VOID descriptions from SPARQL endpoints in a way similar to the recent SPARQL editor from SIB (https://github.com/sib-swiss/sparql-editor)
What are the possibilities of available datatypes in LDKit? Looking to the vocabulary, it seems that the available ones are Boolean, Number (Integer) or Date…is it possible to have decimals?
I am also wondering if the type system in Schema can enforce, for example, to have a multilingual string without an integer datatype. It seems that it can’t, but I am not sure.
Some minor comments:
- Page 3, line 47, “an of a driver…”
- I would suggest the authors to review some of the language in the paper to avoid statements which are not very academic and look more as a sales document, for example, the statement in page 4 that Communica is a highly modular and flexible query engine…I think I would try to avoid those adjectives which are not easy to prove.
- Page 5, line 19, “that is facilitated by NPM package registry”
- Page 5 line 21, “by the JIT transform (I think it should be transformer?) with Node.js
- Page 5 line 27 “test deploy applications…”
- Page 5, line 40, “The examples in the rest of paper”
- Page 5, line 41 “to to other runtime environments”
- Page 5, line 49, “client, server, or edge” the paper doesn’t introduce “edge” before, I wonder if it may be interesting to mention what the authors consider “edge” before…
- Page 6, line 5 “P1 Embraces Linked data heterogenity” (I think it should be “heterogeneity”
- Page 9, line 20, “browse data, more advanced interface is required…
- Page 9, line 21, “solutions provide to retrieve all…”
- Page 10, line 24, why do you use “take” and “skip” for “limit” and “offset”, why not use “limit” and offset” which would be more familiar to SPARQL users?
- Page 11, “LDKit assumes that the data present in the data source correspond to the defined data schema…” I think it would be a great feature if LDKit could read directly from ShEx schemas or SHACL shapes so it could work with already validated RDF data without the need to assume it.
- Page 15, Table 1, the Type safety entry may need some explanation because in the case of LDKit it says that it has automatically inferred types…but I think they are not inferred, they are declared in the Schema…while in the comparison to LDO, they are obtained from ShEx.
- In the previous table, the entry Environment compatibility looks to have the same values for each of the entries…maybe remove that entry as it doesn’t give any difference?
- Page 15, line 49, “LDKit provides unmatched tooling support” seems to me not very academic…
- Page 16, line 12…”a strong emphasis on adherence to W3C standards and recommendations…” is again not very academic…and specially since it seems to ignore ShEx or SHACL…
- Page 16, line 15 “... SPARQL
- Page 16, line 21 “LDKit provides a consistent and efficient way to handle RDF data” is again not very scientific.
- Page 16, line 43, “Since the complexity of such queries is directly proportional to the complexity of the data schemas, the more properties developers add to schema, the less performant LDKit becomes” This sentence raised a lot of questions for me…first, it seems that the queries always take all the properties in the Schema, is that the reason why they are less performant? Maybe those queries are more specific and less general, which could make them more efficient? How do you measure the performance? Maybe include a section about performance in the paper would be a good idea?
- Page 19, line 48 replace graphql by GraphQL
The section about usage shows some usage metrics which are not very high but nevertheless, I think it is a good idea and I encourage the authors to include working on this kind of software. It also mentions three scenarios which look fine although in the first two, the authors of this paper are involved. The third scenario looks similar to the work on Vincent Emonet with the SPARQL editor and it seems it could make sense to explore the use of LDKit to explore SPARQL endpoints and to obtain the schema declarations from the VOID descriptions.
In general, I think the paper and the tool described are interesting, although I think it needs some major revision to improve its quality with a better description of the Schema which would not require to read the documentation as well as other features which are not properly described (for example, the encoders and decoders are not described neither in the documentation nor in the paper. I also think the paper could give more details about the performance of the library as well as improve a little bit the related work section.
|