edi3 / edi3-json-ld-ndr

GNU General Public License v3.0
0 stars 2 forks source link

verifying "vocabulary conformance"? #36

Open onthebreeze opened 4 years ago

onthebreeze commented 4 years ago

Once question we have received is "how can an implementer verify that they conform to the JSON-LD vocabulary?

Some kind of verification tool would be good. for example https://github.com/gjgd/jsonld-checker

how could that be used / deployed to edi3?

Fak3 commented 4 years ago

Some kind of verification tool would be good. for example https://github.com/gjgd/jsonld-checker

I'm not sure what this tool really does... it thinks that this example is "valid" json-ld, while the term "abracadabra" is surely undefined.

On the broader topic, it is not well known what "conformance to the JSON-LD vocabulary" might mean.

Vocabularies are concerned with allowing a data producer generate the data graph in such a way, that semantic of nodes and links of some relevant part of this graph can be understood by the data consumer.

If we state that data producers are only allowed to use properties defined in our vocabulary, then i am afraid that we will prevent some big chunk of potential usecases. For example, geospatial part of the BSP looks quite poor, and I could imagine that many users will resort to mixing in other vocabualries into the data.

onthebreeze commented 4 years ago

It's true that many implementers may wish to use multiple vocabularies - eg both schema.org and edi3.org. And this is a reasonable requirement that we shouldn't obstruct

Nevertheless, we should be able to offer some tool that provides some analysis like 65% of elements comply with edi3.org, 30% with schema.org and 5% unknown ?

Fak3 commented 4 years ago

I think we can generate SHACL shapes for all vocabulary classes. We can use data from BSP RDM xls file to set the properties cardinality of the defined SHACL shapes. Then a user will be able to validate his data with any SHACL validator, online like https://shacl.org/playground/ or use offline tool like pySHACL