Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/SemanticWebLanguageServer/swls-vscode/llms.txt

Use this file to discover all available pages before exploring further.

SWLS offers three property completion modes that control which properties appear in the suggestion list for a given subject node: none uses the server default, loose surfaces all known properties regardless of type declarations, and strict filters suggestions to properties whose rdfs:domain matches the subject’s declared rdf:type. You can also override the global mode on a per-namespace basis using swls.completion.strict and swls.completion.except.

Completion modes

none (default)

{ "swls.completion.mode": "none" }
The server uses its own default property ranking. This is the safest choice when you are getting started and want to see everything the server knows about.

loose

{ "swls.completion.mode": "loose" }
Every property in the indexed ontologies is offered as a completion for any subject, regardless of whether its rdfs:domain matches the subject’s rdf:type. Use loose mode when you want maximum discoverability and don’t want the server to hide anything from you — for example, when exploring an unfamiliar ontology.

strict

{ "swls.completion.mode": "strict" }
Only properties whose rdfs:domain is compatible with the subject’s declared rdf:type are suggested. Use strict mode when working with large ontologies (e.g. Schema.org) where the full property list would otherwise be overwhelming.
strict mode is strongly recommended when you have loaded a large ontology such as Schema.org. Limiting suggestions to domain-matched properties keeps the completion list short and relevant, significantly reducing the time spent scanning irrelevant items.

Setting the mode

Add the following to your settings.json (user or workspace level):
{ "swls.completion.mode": "strict" }

Per-namespace overrides

The global swls.completion.mode can be overridden for individual namespace URI prefixes using swls.completion.strict and swls.completion.except. When either array is non-empty, it takes precedence over whatever swls.completion.mode is set to — swls.completion.strict is checked first, then swls.completion.except; the global mode string is only used when both arrays are empty.

swls.completion.strict — enforce domain matching for specific namespaces in loose mode

When the global mode is loose, you may still want certain vocabularies to be treated strictly — for example, Schema.org where the full property list runs to hundreds of items. List the namespace URI prefixes that should always require domain matching:
{ "swls.completion.strict": ["https://schema.org/"] }
Properties whose IRI starts with https://schema.org/ will only be suggested when the subject’s rdf:type is compatible, even though the global mode is loose.

swls.completion.except — always suggest specific namespaces regardless of strict mode

When the global mode is strict, foundational RDF/OWL properties such as rdf:type, rdfs:label, or owl:sameAs are genuinely applicable to almost any subject. Rather than force-typing every blank node just to get those suggestions, add their namespace URIs to swls.completion.except:
{
  "swls.completion.except": [
    "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
    "http://www.w3.org/2000/01/rdf-schema#"
  ]
}
Properties from those namespaces will always appear in completions regardless of the subject’s rdf:type declaration.
swls.completion.strict and swls.completion.except both take precedence over swls.completion.mode. When swls.completion.strict is non-empty, it is applied and the mode setting is ignored entirely. When swls.completion.except is non-empty (and swls.completion.strict is empty), it is applied and the mode setting is ignored. The mode string is only used when both arrays are empty.

Hiding unwanted prefix.cc completions

Prefix suggestions sourced from prefix.cc can be noisy if you never use certain well-known prefix aliases. Suppress specific short names with swls.prefixDisabled:
{ "swls.prefixDisabled": ["dct", "dcterms"] }
This removes those entries from the prefix completion list while leaving all property and class completions untouched.

Build docs developers (and LLMs) love