GraphResourcePattern¤
This chapter specifies the JSON object used to provide a EasyNav Search (query) configuration.
The GraphResourcePattern
is part of an optional advanced configuration of the EasyNav module.
It can be used to provide search filter / facets in order to tailor the search results presented to the end user.
The GraphResourcePattern
object reference is provided in different ways depending on your preferences:
Type Script
export type GraphResourcePattern = {
paths: Path[];
pathFilters?: PathVariableFilter[];
};
export type Path = {
subjectVarName?: string;
objectVarName?: string;
inverted: boolean;
predicate: string;
};
export type PathVariableFilter = {
varname?: string;
varIsAnyOneOfResource?: string[];
varIsAnyOneOfLiteral?: Literal[];
isNoneOfResource?: string[];
isNoneOfLiteral?: Literal[];
literalFilters?: PathVariableLiteralFilter[];
};
export type Literal = {
value: string;
lang?: string;
datatype?: string;
};
export type PathVariableLiteralFilter = {
operation:
| "GreaterThan"
| "LessThan"
| "GreaterEqualsThan"
| "LessEqualThan"
| "NotEquals"
| "Contains"
| "Regex";
value: Literal;
};
JSON Schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title" : "GraphResourcePattern",
"description" : "Description of the GraphResourcePattern JSON data structure",
"properties": {
"pathFilters": {
"items": {
"properties": {
"isNoneOfLiteral": {
"items": {
"properties": {
"datatype": {
"type": "string"
},
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"isNoneOfResource": {
"items": {
"type": "string"
},
"type": "array"
},
"literalFilters": {
"items": {
"properties": {
"operation": {
"enum": [
"Contains",
"GreaterEqualsThan",
"GreaterThan",
"LessEqualThan",
"LessThan",
"NotEquals",
"Regex"
],
"type": "string"
},
"value": {
"properties": {
"datatype": {
"type": "string"
},
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"type": "object"
}
},
"type": "object"
},
"type": "array"
},
"varIsAnyOneOfLiteral": {
"items": {
"properties": {
"datatype": {
"type": "string"
},
"lang": {
"type": "string"
},
"value": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"varIsAnyOneOfResource": {
"items": {
"type": "string"
},
"type": "array"
},
"varname": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
},
"paths": {
"items": {
"properties": {
"inverted": {
"type": "boolean"
},
"objectVarName": {
"type": "string"
},
"predicate": {
"type": "string"
},
"subjectVarName": {
"type": "string"
}
},
"type": "object"
},
"type": "array"
}
},
"type": "object"
}
json-schema-for-humans
The following section are a human friendly representation generated using json-schema-for-humans
Title: GraphResourcePattern
Type | object |
Required | No |
Additional properties | [Not allowed] |
Defined in | #/definitions/GraphResourcePattern |
Description: Description of the GraphResourcePattern JSON data structure
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- pathFilters | No | array | No | - | - |
+ paths | No | array | No | - | - |
pathFilters¤
Type | array |
Required | No |
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
PathVariableFilter | - |
PathVariableFilter¤
Type | object |
Required | No |
Additional properties | [Not allowed] |
Defined in | #/definitions/PathVariableFilter |
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- isNoneOfLiteral | No | array | No | - | - |
- isNoneOfResource | No | array of string | No | - | - |
- literalFilters | No | array | No | - | - |
- varIsAnyOneOfLiteral | No | array | No | - | - |
- varIsAnyOneOfResource | No | array of string | No | - | - |
- varname | No | string | No | - | - |
isNoneOfLiteral¤
Type | array |
Required | No |
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
Literal | - |
Literal¤
Type | object |
Required | No |
Additional properties | [Not allowed] |
Defined in | #/definitions/Literal |
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
- datatype | No | string | No | - | - |
- lang | No | string | No | - | - |
+ value | No | string | No | - | - |
datatype¤
Type | string |
Required | No |
lang¤
Type | string |
Required | No |
value¤
Type | string |
Required | Yes |
isNoneOfResource¤
Type | array of string |
Required | No |
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
isNoneOfResource items | - |
isNoneOfResource items¤
Type | string |
Required | No |
literalFilters¤
Type | array |
Required | No |
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
PathVariableLiteralFilter | - |
PathVariableLiteralFilter¤
Type | object |
Required | No |
Additional properties | [Not allowed] |
Defined in | #/definitions/PathVariableLiteralFilter |
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
+ operation | No | enum (of string) | No | - | - |
+ value | No | object | No | Same as pathFilters_items_isNoneOfLiteral_items | - |
operation¤
Type | enum (of string) |
Required | Yes |
Must be one of:
- “GreaterThan”
- “LessThan”
- “GreaterEqualsThan”
- “LessEqualThan”
- “NotEquals”
- “Contains”
- “Regex”
value¤
Type | object |
Required | Yes |
Additional properties | [Not allowed] |
Same definition as | pathFilters_items_isNoneOfLiteral_items |
varIsAnyOneOfLiteral¤
Type | array |
Required | No |
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
Literal | - |
Literal¤
Type | object |
Required | No |
Additional properties | [Not allowed] |
Same definition as | pathFilters_items_isNoneOfLiteral_items |
varIsAnyOneOfResource¤
Type | array of string |
Required | No |
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
varIsAnyOneOfResource items | - |
varIsAnyOneOfResource items¤
Type | string |
Required | No |
varname¤
Type | string |
Required | No |
paths¤
Type | array |
Required | Yes |
Array restrictions | |
---|---|
Min items | N/A |
Max items | N/A |
Items unicity | False |
Additional items | False |
Tuple validation | See below |
Each item of this array must be | Description |
---|---|
Path | - |
Path¤
Type | object |
Required | No |
Additional properties | [Not allowed] |
Defined in | #/definitions/Path |
Property | Pattern | Type | Deprecated | Definition | Title/Description |
---|---|---|---|---|---|
+ inverted | No | boolean | No | - | - |
- objectVarName | No | string | No | - | - |
+ predicate | No | string | No | - | - |
- subjectVarName | No | string | No | - | - |
inverted¤
Type | boolean |
Required | Yes |
objectVarName¤
Type | string |
Required | No |
predicate¤
Type | string |
Required | Yes |
subjectVarName¤
Type | string |
Required | No |
Generated using json-schema-for-humans on 2022-11-10 at 21:15:54 +0100
An concrete example object is shown here:
Example GraphResourcePattern
{
"paths": [
{
"subjectVarName": "subResource",
"objectVarName": "resource",
"predicate": "http://example.com/vocab/hasParent"
},
{
"subjectVarName": "resource",
"predicate": "http://www.w3.org/1999/02/22-rdf-syntax-ns#type",
"objectVarName": "class"
}
],
"pathFilters": [
{
"varname": "class",
"varIsAnyOneOfResource": [
"http://example.com/vocab/Company"
]
}
]
}
A valid configuration must use a subjectVarName
called resource
. This is the binding that yields results.
This configuration produces the following result, it only shows results where:
resource
is of typehttp://example.com/vocab/Company
- a
subResource
exists which is related toresource
via thehttp://example.com/vocab/hasParent
property