LDflex/Query-Solid

Cannot remove @solid/context

matthieu-fesselier opened this issue · 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?

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

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?

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.