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:
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;
};
{
"$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"
}
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:
{
"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:
resourceis of typehttp://example.com/vocab/Company- a
subResourceexists which is related toresourcevia thehttp://example.com/vocab/hasParentproperty