Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduce the IDTA Query Language #292

Draft
wants to merge 48 commits into
base: IDTA-01002-3-1_preparation
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
528d33b
add query interface section
sebbader-sap Jun 30, 2024
e6a253e
start the query language definitions
sebbader-sap Jun 30, 2024
9364501
add the changelog entries
sebbader-sap Jun 30, 2024
8f283f0
adjust interface naming grammar
sebbader-sap Jul 2, 2024
2400f92
remove the ...IdsByQuery operations and rename the others
sebbader-sap Jul 2, 2024
2156164
adding tables for the other query interfaces
sebbader-sap Jul 12, 2024
74eb829
adding example table for comparison operators
sebbader-sap Jul 12, 2024
acd9248
add example for nested comparisons
sebbader-sap Jul 12, 2024
c1d607b
Add missing part for sort, paging and added like
waltersve Jul 23, 2024
4623dcf
adding comparison operator definitions
sebbader-sap Jul 29, 2024
269c978
continue with the query language
sebbader-sap Jul 29, 2024
a2542d1
add "exists" operator
sebbader-sap Aug 2, 2024
a400082
add first BNF draft
sebbader-sap Aug 5, 2024
1484f0e
add text to the query language intro
sebbader-sap Aug 5, 2024
130d592
adjust BNF to aas spefics
sebbader-sap Aug 5, 2024
a3dc667
add xpath-inspired approach
sebbader-sap Aug 9, 2024
3834089
Add `or` logical expression (#315)
zrgt Sep 10, 2024
c21449a
update grammar + adding casting functions
sebbader-sap Sep 20, 2024
63313fb
escape the <= characters
sebbader-sap Sep 24, 2024
7076771
Update query language
aorzelskiGH Sep 26, 2024
65558c6
Add example
aorzelskiGH Sep 26, 2024
fffbc5d
Update query language
aorzelskiGH Sep 29, 2024
2e94906
Update query language
aorzelskiGH Sep 29, 2024
6e4839d
Update grammar
aorzelskiGH Oct 2, 2024
9de342e
Bug fix full grammar
aorzelskiGH Oct 11, 2024
ecfc16e
add query overview plantuml file
sebbader-sap Nov 2, 2024
c74b4ba
externalize grammar to own file + minor text changes
sebbader-sap Nov 2, 2024
59c5a7a
extend grammar with fieldidentifiers and query options
sebbader-sap Nov 2, 2024
fe96c5a
debug grammar through a small number of reference examples
sebbader-sap Nov 2, 2024
db7a13c
query fixes + additions to the http query explanation
sebbader-sap Nov 2, 2024
ff797a1
split json schema in common, and query and access rule-specific parts.
sebbader-sap Nov 8, 2024
42d256f
enhance with more detailed fieldmodifiers and query test data
sebbader-sap Nov 10, 2024
6e1cd16
remove width of the query picture
sebbader-sap Nov 14, 2024
f2c23e6
extending the query parts, general explanations + grammar
sebbader-sap Nov 24, 2024
2955ca6
Merge branch 'SeBa/query-language' of https://github.com/admin-shell-…
sebbader-sap Nov 24, 2024
fc62990
fix typos in the elemMatch table
sebbader-sap Nov 26, 2024
2c17bc8
additional example to the comparison table
sebbader-sap Nov 26, 2024
1d3a42e
remove non-queryable fields
sebbader-sap Dec 1, 2024
ce4b095
redraw query overview picture
sebbader-sap Dec 1, 2024
a1a1d15
minor corrections grammar querying and access control (#349)
BirgitBoss Dec 4, 2024
fa7b419
merge grammar with security tf version
sebbader-sap Dec 7, 2024
2275410
new version of the query overview picture
sebbader-sap Dec 7, 2024
eb94a99
add query profiles + update text in the general and http-specific sec…
sebbader-sap Dec 7, 2024
e720fa0
add openapi domain for the query classes
sebbader-sap Dec 7, 2024
53b3014
add the query class to the openapi profiles
sebbader-sap Dec 9, 2024
20f01fe
Update grammar.adoc
aorzelskiGH Dec 10, 2024
d7ab9c1
Add JSON schema for query language
aorzelskiGH Dec 10, 2024
3ff1d12
Merge pull request #355 from aorzelskiGH/aorzelski/pr1
aorzelskiGH Dec 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
openapi: 3.0.3
info:
title: DotAAS Part 2 | HTTP/REST | Asset Administration Shell Registry Service Specification
description: >-
The Query Profile of the Asset Administration Shell Registry Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](http://industrialdigitaltwin.org/en/content-hub).

Publisher: Industrial Digital Twin Association (IDTA) April 2024
contact:
name: Industrial Digital Twin Association (IDTA)
email: [email protected]
license:
name: CC BY 4.0
url: https://creativecommons.org/licenses/by/4.0/
version: V3.1.0_SSP-004
x-profile-identifier: https://admin-shell.io/aas/API/3/1/AssetAdministrationShellRegistryServiceSpecification/SSP-004
servers:
- url: '{protocol}://{host_name}:{port}/api/{version_prefix}'
variables:
protocol:
description: 'Allows access through http and https (recommended)'
enum:
- 'http'
- 'https'
default: 'https'
host_name:
default: admin-shell.io
description: 'Hostname of server hosting the api'
port:
enum:
- '80'
- '443'
default: '443'
description: '80 is default for http, 443 for https'
version_prefix:
enum:
- 'v3.1'
default: v3.1

paths:
/query:
post:
tags:
- Asset Administration Shell Registry API
summary: Returns all Asset Administration Shell Descriptors that confirm to the input query
operationId: QueryAssetAdministrationShellDescriptors
x-semanticIds:
- https://admin-shell.io/aas/API/QueryAssetAdministrationShellDescriptors/3/1
- https://admin-shell.io/aas/API/QueryAssetAdministrationShellDescriptorIds/3/1
requestBody:
content:
application/json:
schema:
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/AAS-Query-Schema/3.1.0#/components/schemas/query'
responses:
'200':
description: Requested Asset Administration Shell Descriptors
content:
application/json:
schema:
allOf:
- $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/schemas/PagedResult'
- type: object
properties:
result:
type: array
items:
oneOf:
- $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/schemas/AssetAdministrationShellDescriptor"
- type: string
'400':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/bad-request'
'401':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/unauthorized'
'403':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/forbidden'
'500':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/internal-server-error'
default:
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/default'


/description:
get:
tags:
- Description API
summary: Returns the self-describing information of a network resource (ServiceDescription)
operationId: GetDescription
x-semanticIds:
- https://admin-shell.io/aas/API/Descriptor/GetDescription/3/0
responses:
'200':
description: Requested Description
content:
application/json:
schema:
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/schemas/ServiceDescription'
'401':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/unauthorized'
'403':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/forbidden'
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
openapi: 3.0.3
info:
title: DotAAS Part 2 | HTTP/REST | Asset Administration Shell Repository Service Specification
description: >-
The Query Profile of the Asset Administration Shell Repository Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](http://industrialdigitaltwin.org/en/content-hub).

Publisher: Industrial Digital Twin Association (IDTA) April 2024
contact:
name: Industrial Digital Twin Association (IDTA)
email: [email protected]
license:
name: CC BY 4.0
url: https://creativecommons.org/licenses/by/4.0/
version: V3.1.0_SSP-003
x-profile-identifier: https://admin-shell.io/aas/API/3/1/AssetAdministrationShellRepositoryServiceSpecification/SSP-003
servers:
- url: '{protocol}://{host_name}:{port}/api/{version_prefix}'
variables:
protocol:
description: 'Allows access through http and https (recommended)'
enum:
- 'http'
- 'https'
default: 'https'
host_name:
default: admin-shell.io
description: 'Hostname of server hosting the api'
port:
enum:
- '80'
- '443'
default: '443'
description: '80 is default for http, 443 for https'
version_prefix:
enum:
- 'v3.1'
default: v3.1

paths:
/query:
post:
tags:
- Asset Administration Shell Repository API
summary: Returns all Asset Administration Shells that confirm to the input query
operationId: QueryAssetAdministrationShells
x-semanticIds:
- https://admin-shell.io/aas/API/QueryAssetAdministrationShells/3/1
- https://admin-shell.io/aas/API/QueryAssetAdministrationShellIds/3/1
requestBody:
content:
application/json:
schema:
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/AAS-Query-Schema/3.1.0#/components/schemas/query'
responses:
'200':
description: Requested Asset Administration Shells
content:
application/json:
schema:
allOf:
- $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/schemas/PagedResult'
- type: object
properties:
result:
type: array
items:
oneOf:
- $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part1-MetaModel-Schemas/V3.0.3#/components/schemas/AssetAdministrationShell"
- type: string
'400':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/bad-request'
'401':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/unauthorized'
'403':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/forbidden'
'500':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/internal-server-error'
default:
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/default'


/description:
get:
tags:
- Description API
summary: Returns the self-describing information of a network resource (ServiceDescription)
operationId: GetDescription
x-semanticIds:
- https://admin-shell.io/aas/API/Descriptor/GetDescription/3/0
responses:
'200':
description: Requested Description
content:
application/json:
schema:
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/schemas/ServiceDescription'
'401':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/unauthorized'
'403':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/forbidden'
100 changes: 100 additions & 0 deletions ConceptDescriptionServiceSpecification/V3.1_SSP-002.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
openapi: 3.0.3
info:
title: DotAAS Part 2 | HTTP/REST | Concept Description Repository Service Specification
description: >-
The Query Profile of the Concept Description Repository Service Specification as part of the [Specification of the Asset Administration Shell: Part 2](http://industrialdigitaltwin.org/en/content-hub).

Publisher: Industrial Digital Twin Association (IDTA) April 2024
contact:
name: Industrial Digital Twin Association (IDTA)
email: [email protected]
license:
name: CC BY 4.0
url: https://creativecommons.org/licenses/by/4.0/
version: V3.1.0_SSP-002
x-profile-identifier: https://admin-shell.io/aas/API/3/1/ConceptDescriptionRepositoryServiceSpecification/SSP-002
servers:
- url: '{protocol}://{host_name}:{port}/api/{version_prefix}'
variables:
protocol:
description: 'Allows access through http and https (recommended)'
enum:
- 'http'
- 'https'
default: 'https'
host_name:
default: admin-shell.io
description: 'Hostname of server hosting the api'
port:
enum:
- '80'
- '443'
default: '443'
description: '80 is default for http, 443 for https'
version_prefix:
enum:
- 'v3.1'
default: v3.1

paths:
/query:
post:
tags:
- Concept Description Repository API
summary: Returns all Concept Descriptions that confirm to the input query
operationId: QueryConceptDescriptions
x-semanticIds:
- https://admin-shell.io/aas/API/QueryConceptDescriptions/3/1
- https://admin-shell.io/aas/API/QueryConceptDescriptionIds/3/1
requestBody:
content:
application/json:
schema:
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/AAS-Query-Schema/3.1.0#/components/schemas/query'
responses:
'200':
description: Requested Concept Descriptions
content:
application/json:
schema:
allOf:
- $ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/schemas/PagedResult'
- type: object
properties:
result:
type: array
items:
oneOf:
- $ref: "https://api.swaggerhub.com/domains/Plattform_i40/Part1-MetaModel-Schemas/V3.0.3#/components/schemas/ConceptDescription"
- type: string
'400':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/bad-request'
'401':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/unauthorized'
'403':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/forbidden'
'500':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/internal-server-error'
default:
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/default'


/description:
get:
tags:
- Description API
summary: Returns the self-describing information of a network resource (ServiceDescription)
operationId: GetDescription
x-semanticIds:
- https://admin-shell.io/aas/API/Descriptor/GetDescription/3/0
responses:
'200':
description: Requested Description
content:
application/json:
schema:
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/schemas/ServiceDescription'
'401':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/unauthorized'
'403':
$ref: 'https://api.swaggerhub.com/domains/Plattform_i40/Part2-API-Schemas/V3.0.3#/components/responses/forbidden'
Loading