SpruceID
Search…
⌃K

# Properties

There exists two ways of defining a property. One is to embed the property definition inside a type definition:
base <https://example.com/>;
type MyType {
myProperty: Type // embedded property definition.
}
This will define the `https://example.com/MyType/myProperty` property. Note how the base IRI changes inside the braces to match the IRI of the type. The `myProperty` relative IRI is resolved into `https://example.com/MyType/myProperty` and not `https://example.com/myProperty`. For this reason, one may prefer to define properties independently. This can be done using the `property` keyword:
base <https://example.com/>;
property myProperty: Type; // independent property definition.
It can then be referred to using an absolute, relative, or compact IRI:
use <https://example.com/> as ex;
type MyType {
<https://example.com/myProperty>,
<../myProperty>, // same as above
ex:myProperty // same as above
}
As showed in this example, when a property is defined outside the type definition, it is not required to specify its type again.