Query-Solid icon indicating copy to clipboard operation
Query-Solid copied to clipboard

Cannot remove @solid/context

Open matthieu-fesselier opened this issue 5 years ago • 4 comments

My current context is:

{
  '@vocab': 'http://happy-dev.fr/owl/#',
  rdf: 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
  rdfs: 'http://www.w3.org/2000/01/rdf-schema#',
  ldp: 'http://www.w3.org/ns/ldp#',
  foaf: 'http://xmlns.com/foaf/0.1/',
  name: 'rdfs:label',
  acl: 'http://www.w3.org/ns/auth/acl#',
  permissions: 'acl:accessControl',
  mode: 'acl:mode'
};

The @vocab defines our default which is used for almost all our properties. With the @solid context, some properties are overriden. For example, when we try to target http://happy-dev.fr/owl/#firstName, we get http://xmlns.com/foaf/0.1/givenName.

Is it possible to use only our context and not the solid one?

matthieu-fesselier avatar Sep 16 '19 13:09 matthieu-fesselier

So when using https://github.com/solid/query-ldflex/tree/ede10272df5178f1d5910f4888eee31061b7390f#adding-a-custom-json-ld-context, existing properties are favored over custom ones?

@rubensworks Is that expected behavior given the implementation https://github.com/RubenVerborgh/LDflex/blob/f4bc6fe1e8f15bc2af17d24be8b7397357531196/src/JSONLDResolver.js#L53-L56 ?

RubenVerborgh avatar Sep 16 '19 13:09 RubenVerborgh

The existing properties are favored only over our default which is defined by '@vocab': 'http://happy-dev.fr/owl/#' For the properties we define explicitely, it works fine

matthieu-fesselier avatar Sep 16 '19 13:09 matthieu-fesselier

Right… then perhaps it is a feature instead of a bug. i.e., you probably want to explicitly override existing properties.

But I would actually recommend against that, given that the same Solid LDflex expressions then get different meanings. If you want to get really custom, perhaps consider distributing a custom configuration of ldflex rather than extending @solid/query-ldflex. Or in other words: @solid/query-ldflex is a configuration of ldflex; maybe you want your own configuration?

RubenVerborgh avatar Sep 16 '19 13:09 RubenVerborgh

That does indeed sound like the intended JSON-LD context semantics. Explicitly defined terms (such as firstName in the Solid context) have priority over @vocab.

Perhaps a flag could be added to context.extend() to exclude the default context? The the user is responsible for the full context.

rubensworks avatar Sep 16 '19 13:09 rubensworks