What is missing?
So far <FieldIdentifierAAS> and <FieldIdentifierAasDescriptor> do not support administrativeData
So no queries for the attributes "createdAt" and "updatedAt" are possible.
Also no queries considering the order of versioning are possible: "version" and "revision".
Example to be supported: Find all AAS created or updated before 01.03.2025
$and(
$aas#administration.updatedAt $le "2025-03-01",
$aas#administration.createdAt $le "2025-03-01",
)
or (see also request in #176): Find all AAS created in range between 01.01.2025 and 01.03.2025.
$and(
$aas#administration.createdAt $ge "2025-01-01",
$aas#administration.createdAt $le "2025-03-01",
)
same for AASDescriptor, here find all AASDescriptors that were created after 01.01.2025
$aasdesc#administration.createdAt $ge "2025-01-01",
To Be Done
FieldIdentifierAAS
change
<FieldIdentifierAAS> ::= "$aas#" ( "idShort" | "id" | "assetInformation.assetKind" | "assetInformation.assetType" | "assetInformation.globalAssetId" | "assetInformation." <SpecificAssetIdsClause> | "submodels." <ReferenceClause> )
to
<FieldIdentifierAAS> ::= "$aas#" ( "idShort" | "id" | "assetInformation.assetKind" | "assetInformation.assetType" | "assetInformation.globalAssetId" | "assetInformation." <SpecificAssetIdsClause> | "submodels." <ReferenceClause> )
FieldIdentifierAasDescriptor
change
<FieldIdentifierAasDescriptor> ::= "$aasdesc#" ( "idShort" | "administration".createdAt" | "administration".updatedAt" | "administration".version" | "administration".revision" | "id" | "assetKind" | "assetType" | "globalAssetId" | <SpecificAssetIdsClause> | "endpoints" ( "[" ( [0-9]* ) "]" ) "." <EndpointClause> | "submodelDescriptors" ( "[" ( [0-9]* ) "]" ) "." <SmDescriptorClause> )
to
<FieldIdentifierAasDescriptor> ::= "$aasdesc#" ( "idShort" | "administration".createdAt" | "administration".updatedAt" | "administration".version" | "administration".revision" | "id" | "assetKind" | "assetType" | "globalAssetId" | <SpecificAssetIdsClause> | "endpoints" ( "[" ( [0-9]* ) "]" ) "." <EndpointClause> | "submodelDescriptors" ( "[" ( [0-9]* ) "]" ) "." <SmDescriptorClause> )
Update Table 2
Add new fields to table 2: Attribute Elements for Field Identifiers. is an optional nonNegativeInteger value. No shall be interpreted as 'anywhere in the list'.
Update Comparison table
Add example for comparison of dates in Table in chapter https://industrialdigitaltwin.io/aas-specifications/IDTA-01002/v3.1.1/query-language.html#_example
add examples
Add examples as sketched above
Open Question
Do we need Casting $dateTime() for these comparisons?
For example
$aasdesc#administration.createdAt $ge $dateTime("2025-01-01")
The specification is saying the following:
Implicite casting is used together with FieldIdentifiers. FieldIdentifiers are generally treated as xs:string in the query language.
If a FieldIdentifier is used in a logicalExpression, it will be implicitely casted to xs:boolean, which can only create a valid result for the values true and false.
If a FieldIdentifier is used in a comparison, the second parameter decides implicite casting. If the second parameter is a constant (string, number, hex, boolean, dateTime, time) or a corresponding explicite casting operator, the value of the FieldIdentifier will be implicitely casted to the corresponding data type.
What is missing?
So far
<FieldIdentifierAAS>and<FieldIdentifierAasDescriptor>do not support administrativeDataSo no queries for the attributes "createdAt" and "updatedAt" are possible.
Also no queries considering the order of versioning are possible: "version" and "revision".
Example to be supported: Find all AAS created or updated before 01.03.2025
or (see also request in #176): Find all AAS created in range between 01.01.2025 and 01.03.2025.
same for AASDescriptor, here find all AASDescriptors that were created after 01.01.2025
To Be Done
FieldIdentifierAAS
change
<FieldIdentifierAAS> ::= "$aas#" ( "idShort" | "id" | "assetInformation.assetKind" | "assetInformation.assetType" | "assetInformation.globalAssetId" | "assetInformation." <SpecificAssetIdsClause> | "submodels." <ReferenceClause> )to
<FieldIdentifierAAS> ::= "$aas#" ( "idShort" | "id" | "assetInformation.assetKind" | "assetInformation.assetType" | "assetInformation.globalAssetId" | "assetInformation." <SpecificAssetIdsClause> | "submodels." <ReferenceClause> )FieldIdentifierAasDescriptor
change
<FieldIdentifierAasDescriptor> ::= "$aasdesc#" ( "idShort" | "administration".createdAt" | "administration".updatedAt" | "administration".version" | "administration".revision" | "id" | "assetKind" | "assetType" | "globalAssetId" | <SpecificAssetIdsClause> | "endpoints" ( "[" ( [0-9]* ) "]" ) "." <EndpointClause> | "submodelDescriptors" ( "[" ( [0-9]* ) "]" ) "." <SmDescriptorClause> )to
<FieldIdentifierAasDescriptor> ::= "$aasdesc#" ( "idShort" | "administration".createdAt" | "administration".updatedAt" | "administration".version" | "administration".revision" | "id" | "assetKind" | "assetType" | "globalAssetId" | <SpecificAssetIdsClause> | "endpoints" ( "[" ( [0-9]* ) "]" ) "." <EndpointClause> | "submodelDescriptors" ( "[" ( [0-9]* ) "]" ) "." <SmDescriptorClause> )Update Table 2
Add new fields to table 2: Attribute Elements for Field Identifiers. is an optional nonNegativeInteger value. No shall be interpreted as 'anywhere in the list'.
Update Comparison table
Add example for comparison of dates in Table in chapter https://industrialdigitaltwin.io/aas-specifications/IDTA-01002/v3.1.1/query-language.html#_example
add examples
Add examples as sketched above
Open Question
Do we need Casting $dateTime() for these comparisons?
For example
The specification is saying the following: