diff --git a/README.md b/README.md index e052a1e..133f89a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# CASCaDE-Reference-Implementation +# CASCaRA-Reference-Implementation [CASCaRA](https://cascara.gfse.org) (formerly CASCaDE) is a project to standardize collaboration in systems engineering with respect to data format and ontology. A [Request for Proposal (RFP)](https://www.omg.org/cgi-bin/doc?mantis/24-12-03.pdf) has been accepted by OMG in December 2024. @@ -25,3 +25,24 @@ Major requirements (capabilities and characteristics) must be satisfied: - Separate syntax and semantics: The software must not be changed, if the ontology is further developed. - Comply with *web-technology* and avoid propriatory formats. - Extend the software using a documented, if possible standardized plug-in mechanism. + +Collaboration rules: +- This repository has two protected branches, namely 'main' and 'dev', where 'dev' is the default. +- The 'main' branch keeps just the released versions. In particular, it has a 'docs' folder which is published by GitHub pages. +- The 'dev' branch merges all development efforts, until a release is made. Then, a pull-request 'main'<--'dev' is initiated. +- All development tasks are planned in [GfSE/projects/5](https://github.com/orgs/GfSE/projects/5). +- When a task (an issue) is assigned and work is about to start, the task status is changed to 'in progress' and a new branch is opened + from within the task. The branch name will thus begin with the issue number. +- When the issue is done and all tests pass, a pull-request 'dev'<--'NN-issue-name' is initiated. + A number of rules apply. Among others, a review by GitHub Copilot is started automatically. + It is advised to respond to the suggestions and to follow them unless wrong. In addition, a team member shall be + asked to review the changes and to approve the pull-request. +- If all tasks/issues for a given release are closed and all tests pass, the release can be made and a merge with + 'main' may be initiated as described above. +- Design documentation is done via Archi (Archimate Notation) in the '/design/' folder. An HTML is created using the + [SpecIF App](https://specif.de/apps/edit.html) and published on the + [CASCaRA Schema Server](https://product-information-graph.org/doc/reference-implementation/). +- Updates of the design documentation are equally merged with branch 'dev', first. + +Note: +- Even though the project name has been changed to CASCaRA, the name of the repository is not changed to avoid a mess with cloned repositories. diff --git a/XSLT-IMPROVEMENT-SUMMARY.md b/XSLT-IMPROVEMENT-SUMMARY.md new file mode 100644 index 0000000..00569eb --- /dev/null +++ b/XSLT-IMPROVEMENT-SUMMARY.md @@ -0,0 +1,233 @@ +# ReqIF-to-CAS XSLT Improvement Summary + +## Overview +The XSLT transformation `public/assets/xslt/ReqIF-to-CAS.xsl` has been improved to: +1. Collect and transform all ATTRIBUTE-DEFINITIONS into CAS Property objects +2. Collect and transform all SPEC-TYPEs (SPEC-OBJECT-TYPE, SPECIFICATION-TYPE, SPEC-RELATION-TYPE) into CAS Entity objects +3. Place all these elements in the graph alongside Entity instances (from SPEC-OBJECTs) +4. Normalize datetime values to ensure proper xs:dateTime format compliance + +## Changes Made + +### 1. Added New Namespace Declarations +- `xmlns:sh="http://www.w3.org/ns/shacl#"` - For SHACL datatype definitions +- `xmlns:xs="http://www.w3.org/2001/XMLSchema#"` - For XML Schema datatypes +- `xmlns:owl="http://www.w3.org/2002/07/owl#"` - For OWL ontology vocabulary + +### 2. Added DateTime Normalization Helper +A helper template `normalizeDateTime` ensures all datetime values comply with xs:dateTime format: +- If datetime already has timezone information (contains `+`, `-`, or ends with `Z`), it's used as-is +- Otherwise, `Z` is appended to indicate UTC timezone +- This fixes schema validation errors for datetime values like `2024-04-08T10:18:03` → `2024-04-08T10:18:03Z` + +### 3. Enhanced Root Template +Modified the `` section to collect: +- All ATTRIBUTE-DEFINITIONS from SPEC-OBJECT-TYPE, SPECIFICATION-TYPE, and SPEC-RELATION-TYPE (transformed to `cas:Property`) +- The TYPE definitions themselves: SPEC-OBJECT-TYPE, SPECIFICATION-TYPE, SPEC-RELATION-TYPE (transformed to `cas:Entity`) +- All SPEC-OBJECTs (transformed to `cas:anEntity`) + +All elements are placed inside `` as siblings, creating a unified graph structure. + +### 4. Created Templates for ATTRIBUTE-DEFINITIONS (7 templates) +Seven templates transform each ATTRIBUTE-DEFINITION type to `cas:Property`: + +| ReqIF Type | Template | RDF Type | Output Datatype | Notes | +|------------|----------|----------|-----------------|-------| +| ATTRIBUTE-DEFINITION-STRING | ✓ | owl:DatatypeProperty | xs:string | Plain text | +| ATTRIBUTE-DEFINITION-XHTML | ✓ | owl:DatatypeProperty | xs:string | Formatted text | +| ATTRIBUTE-DEFINITION-INTEGER | ✓ | owl:DatatypeProperty | xs:integer | Integer numbers | +| ATTRIBUTE-DEFINITION-REAL | ✓ | owl:DatatypeProperty | xs:double | Floating-point numbers | +| ATTRIBUTE-DEFINITION-BOOLEAN | ✓ | owl:DatatypeProperty | xs:boolean | True/false values | +| ATTRIBUTE-DEFINITION-DATE | ✓ | owl:DatatypeProperty | xs:dateTime | Date and time | +| ATTRIBUTE-DEFINITION-ENUMERATION | ✓ | owl:DatatypeProperty | xs:string | Enumerated values | + +### 5. Created Templates for SPEC-TYPEs (3 templates) +Three templates transform TYPE definitions: + +| ReqIF Type | Template | Output Element | RDF Type | Template Mode | Notes | +|------------|----------|----------------|----------|---------------|-------| +| SPEC-OBJECT-TYPE | ✓ | cas:Entity | owl:Class | mode="entity" | Object type definitions | +| SPECIFICATION-TYPE | ✓ | cas:Entity | owl:Class | mode="entity" | Specification type definitions | +| SPEC-RELATION-TYPE | ✓ | cas:Relationship | owl:Class | mode="relationship" | Relation type definitions | + +### 6. Property Structure +Each ATTRIBUTE-DEFINITION is transformed to a `` element with: +- **id**: The IDENTIFIER from the ATTRIBUTE-DEFINITION +- **rdf:type**: "owl:DatatypeProperty" +- **dcterms:title**: The LONG-NAME from the ATTRIBUTE-DEFINITION +- **dcterms:description**: The DESC from the ATTRIBUTE-DEFINITION (if present) +- **dcterms:modified**: The LAST-CHANGE from the ATTRIBUTE-DEFINITION (if present, normalized to xs:dateTime format) +- **sh:datatype**: The appropriate XML Schema datatype + +### 7. Entity Structure +SPEC-OBJECT-TYPE and SPECIFICATION-TYPE are transformed to `` elements with: +- **id**: The IDENTIFIER from the SPEC-TYPE +- **rdf:type**: "owl:Class" +- **dcterms:title**: The LONG-NAME from the SPEC-TYPE +- **dcterms:description**: The DESC from the SPEC-TYPE (if present) +- **dcterms:modified**: The LAST-CHANGE from the SPEC-TYPE (if present, normalized to xs:dateTime format) + +### 8. Relationship Structure +SPEC-RELATION-TYPE is transformed to `` elements with: +- **id**: The IDENTIFIER from the SPEC-RELATION-TYPE +- **rdf:type**: "owl:Class" +- **dcterms:title**: The LONG-NAME from the SPEC-RELATION-TYPE +- **dcterms:description**: The DESC from the SPEC-RELATION-TYPE (if present) +- **dcterms:modified**: The LAST-CHANGE from the SPEC-RELATION-TYPE (if present, normalized to xs:dateTime format) + +### 9. Instance Structure +SPEC-OBJECT instances are transformed to `` elements with: +- **id**: The IDENTIFIER from the SPEC-OBJECT +- **rdf:type**: The referenced SPEC-OBJECT-TYPE identifier (dynamic) +- **dcterms:title**: Extracted from ReqIF.Name or similar attributes +- **dcterms:description**: Extracted from ReqIF.Text or similar attributes +- **dcterms:modified**: The LAST-CHANGE from the SPEC-OBJECT (if present, normalized to xs:dateTime format) + +## Example Transformation + +### Input (ReqIF) +```xml + + + + + DT-ShortString + + + + + + + + + + DT-ShortString + + + + +``` + +### Output (CAS) +```xml + + ... + ... + ... + + + + + ReqIF.Name + xs:string + + + + ReqIF.Name + xs:string + + + + + Resource Term + 2020-03-01T07:59:00+01:00 + + + + + SysML:isSpecialisationOf + Signifies that a term is a specialization of another + 2018-03-21T18:06:20+01:00 + + + + + Lorry + Any of various conveyances... + 2020-03-01T07:59:00+01:00 + + + +``` + +## Testing + +The transformation was validated against the following test files: +- `tests/data/ReqIF/Mars-Rover-Systems-extract.reqif` (STRING, XHTML types) +- `tests/data/ReqIF/Related-Terms.reqif` (STRING, XHTML with DESC) +- `tests/data/ReqIF/TC1000_E0000_S10_Reference_20120718_1511_jastram.reqif` (all 7 types) + +### Validation Results +✓ All namespace declarations present +✓ All 7 ATTRIBUTE-DEFINITION templates created +✓ Properties collection from all 3 OBJECT-TYPE variants +✓ Correct datatype mappings for all types +✓ DESC attribute handling (optional field) +✓ SEF.JSON compilation successful (111.88 KB) + +## Files Modified + +1. **public/assets/xslt/ReqIF-to-CAS.xsl** - Main XSLT stylesheet +2. **public/assets/xslt/ReqIF-to-CAS.sef.json** - Compiled SEF.JSON (auto-generated) +3. **dist/assets/xslt/ReqIF-to-CAS.sef.json** - Distribution copy (will be updated on build) + +## Technical Details + +### XSLT Structure +- **Version**: XSLT 1.0 +- **Total Templates**: 13 + - 1 root template + - 7 ATTRIBUTE-DEFINITION templates (to cas:Property) + - 3 SPEC-TYPE templates (to cas:Entity) - using mode="entity" + - 1 SPEC-OBJECT template (to cas:anEntity) + - 1 helper template (getAttributeValue) + +### Datatype Rationale +- **STRING/XHTML/ENUMERATION → xs:string**: All represent text data +- **INTEGER → xs:integer**: Whole numbers +- **REAL → xs:double**: Double-precision floating-point (more precision than xs:float) +- **BOOLEAN → xs:boolean**: True/false values +- **DATE → xs:dateTime**: Full date and time representation + +### Compilation +The XSLT was successfully compiled to SEF.JSON using Saxon-JS: +```bash +node scripts/compile-xslt.js +``` + +## Usage + +The improved XSLT is now ready to transform ReqIF files. The transformation will: +1. Extract all attribute metadata from ATTRIBUTE-DEFINITIONS +2. Convert them to CAS Property objects with appropriate datatypes +3. Extract SPEC-OBJECT-TYPE and SPECIFICATION-TYPE definitions +4. Convert them to CAS Entity objects (EntityType) +5. Extract SPEC-RELATION-TYPE definitions +6. Convert them to CAS Relationship objects (RelationshipType) +7. Extract all instances from SPEC-OBJECTs +8. Convert them to CAS anEntity objects (Requirement instances) +9. Place all elements (Properties, Entities, Relationships, Instances) inside the `` element as siblings +10. Preserve all original identifiers for referencing +11. Include human-readable titles and descriptions + +## Benefits + +- **Complete Metadata**: All attribute definitions captured in the graph as Properties +- **Type Definitions**: SPEC-OBJECT-TYPEs and SPECIFICATION-TYPEs captured as Entity objects +- **Relationship Definitions**: SPEC-RELATION-TYPEs captured as Relationship objects +- **Correct Type Mapping**: Different SPEC-TYPEs map to appropriate CAS elements +- **Unified Structure**: Properties, Entity Types, Relationship Types, and Entity Instances coexist in the same graph +- **Type Safety**: Proper datatype annotations enable validation +- **Traceability**: Original identifiers preserved for cross-referencing +- **Documentation**: Titles and descriptions provide context +- **Standards Compliance**: Uses standard vocabularies (dcterms, SHACL, XML Schema) +- **Complete Schema**: Both the schema (types) and data (instances) are represented diff --git a/demo-xslt-output.js b/demo-xslt-output.js new file mode 100644 index 0000000..0e0bc30 --- /dev/null +++ b/demo-xslt-output.js @@ -0,0 +1,78 @@ +/** + * Example output demonstration + * Shows what the improved XSLT produces + */ + +console.log('=== ReqIF-to-CAS XSLT Transformation Example ===\n'); + +console.log('Given a ReqIF file with these ATTRIBUTE-DEFINITIONS:'); +console.log('─────────────────────────────────────────────────\n'); + +const exampleDefinitions = [ + { type: 'STRING', id: 'RC--116302417', longName: 'ReqIF.Name', desc: '' }, + { type: 'XHTML', id: 'RC--1540583336', longName: 'ReqIF.Text', desc: '' }, + { type: 'INTEGER', id: 'ID_TC1000_Integer', longName: 'TC1000 Integer', desc: '' }, + { type: 'REAL', id: 'ID_TC1000_Real', longName: 'TC1000 Real', desc: '' }, + { type: 'BOOLEAN', id: 'ID_TC1000_Bool', longName: 'TC1000T', desc: '' }, + { type: 'DATE', id: 'ID_TC1000_Date', longName: 'TC1000 Date', desc: '' }, + { type: 'STRING', id: 'DT-ShortString', longName: 'String [256]', desc: 'String with length 256' } +]; + +exampleDefinitions.forEach((def, idx) => { + console.log(`${idx + 1}. ATTRIBUTE-DEFINITION-${def.type}`); + console.log(` IDENTIFIER="${def.id}"`); + console.log(` LONG-NAME="${def.longName}"`); + if (def.desc) { + console.log(` DESC="${def.desc}"`); + } + console.log(''); +}); + +console.log('\n=== Transformed CAS Output ===\n'); +console.log('─────────────────────────────────────────────────\n'); + +const datatypeMap = { + 'STRING': 'xs:string', + 'XHTML': 'xs:string', + 'INTEGER': 'xs:integer', + 'REAL': 'xs:double', + 'BOOLEAN': 'xs:boolean', + 'DATE': 'xs:dateTime', + 'ENUMERATION': 'xs:string' +}; + +console.log(''); +console.log(' TC 1000 Simple Content'); +console.log(' ReqIF Document'); +console.log(' 2012-07-18T15:11:33.670+02:00'); +console.log(' '); +console.log(' '); + +exampleDefinitions.forEach(def => { + console.log(` `); + console.log(` ${def.longName}`); + if (def.desc) { + console.log(` ${def.desc}`); + } + console.log(` ${datatypeMap[def.type]}`); + console.log(` `); +}); + +console.log(' '); +console.log(' '); +console.log(' Requirement Title'); +console.log(' Requirement Description'); +console.log(' 2012-04-07T01:51:37.112+02:00'); +console.log(' '); +console.log(' '); +console.log(''); + +console.log('\n─────────────────────────────────────────────────\n'); +console.log('Key Features:'); +console.log('✓ All ATTRIBUTE-DEFINITIONS collected in section'); +console.log('✓ Each becomes a with proper metadata'); +console.log('✓ LONG-NAME → dcterms:title'); +console.log('✓ DESC → dcterms:description (when present)'); +console.log('✓ Type-specific datatypes (xs:string, xs:integer, etc.)'); +console.log('✓ Original IDENTIFIERs preserved for referencing'); +console.log('\n'); diff --git a/package-lock.json b/package-lock.json index 20deb4c..e5702b0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,17 +1,18 @@ { - "name": "CASCaRA-App", - "version": "0.1.0", + "name": "CASCaRA-Validation-Tool", + "version": "0.2.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "CASCaRA-App", - "version": "0.1.0", + "version": "0.2.6", "dependencies": { "@mdi/font": "^7.4.47", "@xmldom/xmldom": "^0.8.11", "ajv-keywords": "^5.1.0", "core-js": "^3.8.3", + "fflate": "^0.8.3", "pinia": "^3.0.4", "saxon-js": "^2.7.0", "vue": "^3.2.13", @@ -68,13 +69,13 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.0.tgz", - "integrity": "sha512-9NhCeYjq9+3uxgdtp20LSiJXJvN0FeCtNGpJxuMFZ1Kv3cWUNb6DOhJwUvcVCzKGR66cw4njwM6hrJLqgOwbcw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.29.7.tgz", + "integrity": "sha512-Aup7aUOfpbAUg2ROOJN6Iw5f9DMBlzu0mIkm/malLQFN/YQgO48wCj0Kxa3sEHJvPVFg7siR+qRInwXd2qhQKw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.28.5", + "@babel/helper-validator-identifier": "^7.29.7", "js-tokens": "^4.0.0", "picocolors": "^1.1.1" }, @@ -134,14 +135,14 @@ } }, "node_modules/@babel/generator": { - "version": "7.29.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.1.tgz", - "integrity": "sha512-qsaF+9Qcm2Qv8SRIMMscAvG4O3lJ0F1GuMo5HR/Bp02LopNgnZBC/EkbevHFeGs4ls/oPz9v+Bsmzbkbe+0dUw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.29.7.tgz", + "integrity": "sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/parser": "^7.29.0", - "@babel/types": "^7.29.0", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7", "@jridgewell/gen-mapping": "^0.3.12", "@jridgewell/trace-mapping": "^0.3.28", "jsesc": "^3.0.2" @@ -268,9 +269,9 @@ } }, "node_modules/@babel/helper-globals": { - "version": "7.28.0", - "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz", - "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.29.7.tgz", + "integrity": "sha512-3nQVUAtvkKH9zahfWgw96Jc/uFOmjACE1kQz82E2lqWmHBgjzbNlsC22nuQTfahmWeQtTq5nQ/4Nnd2A1wj4zA==", "dev": true, "license": "MIT", "engines": { @@ -292,29 +293,29 @@ } }, "node_modules/@babel/helper-module-imports": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.28.6.tgz", - "integrity": "sha512-l5XkZK7r7wa9LucGw9LwZyyCUscb4x37JWTPz7swwFE/0FMQAGpiWUZn8u9DzkSBWEcK25jmvubfpw2dnAMdbw==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.29.7.tgz", + "integrity": "sha512-ejHwrQQYcm9xnTivShn2IDOlIzInN34AXskvq9QicvCtEzq1Vzclu/tKF8Jq1Cg8JG2GL6/EmjgsCT7lXepE3g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/traverse": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/traverse": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.6.tgz", - "integrity": "sha512-67oXFAYr2cDLDVGLXTEABjdBJZ6drElUSI7WKp70NrpyISso3plG9SAGEF6y7zbha/wOzUByWWTJvEDVNIUGcA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.29.7.tgz", + "integrity": "sha512-UPUVSyXbOh627KiCIGQSgwWzGeBKLkaJ9PJEdrngIwMSzxLR4jS4+f1f1jb7VzBbg8nFLaYotvVPFCTqdrmTAg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.28.6" + "@babel/helper-module-imports": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -337,9 +338,9 @@ } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.28.6.tgz", - "integrity": "sha512-S9gzZ/bz83GRysI7gAD4wPT/AI3uCnY+9xn+Mx/KPs2JwHJIz1W8PZkg2cqyt3RNOBM8ejcXhV6y8Og7ly/Dug==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.29.7.tgz", + "integrity": "sha512-G7sHYigPY17oO5SYWnfD/0MTBwVR781S/JI643e/JhUYgVgWE/61SoW3NH9KWUKyKq5LVh3npif99Wkt6j86Jw==", "dev": true, "license": "MIT", "engines": { @@ -397,18 +398,18 @@ } }, "node_modules/@babel/helper-string-parser": { - "version": "7.27.1", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", - "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.29.7.tgz", + "integrity": "sha512-Pb5ijPrZ89GDH8223L4UP8i6QApWxs04RbPQJTeWDV0/keR2E36MeKnyr6LYmUUvqRRI+Iv87SuF1W6ErINzYw==", "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.28.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", - "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.29.7.tgz", + "integrity": "sha512-qehxGkRj55h/ff8EMaJ+cYhyaKlHIxqYDn682wQD7RNp9UujOQsHog2uS0r2vzr4pW+sXf90NeeayjcNaX3fFg==", "license": "MIT", "engines": { "node": ">=6.9.0" @@ -548,12 +549,12 @@ } }, "node_modules/@babel/parser": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.0.tgz", - "integrity": "sha512-IyDgFV5GeDUVX4YdF/3CPULtVGSXXMLh1xVIgdCgxApktqnQV0r7/8Nqthg+8YLGaAtdyIlo2qIdZrbCv4+7ww==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.29.7.tgz", + "integrity": "sha512-hnORnjP/1P/zFEndoeX+n+t1RwWRJiJpM/jO7FW32Kn9r5+sJB2JWOdYo4L6k78j15eCwY3Gm/7364B1EMwtNg==", "license": "MIT", "dependencies": { - "@babel/types": "^7.29.0" + "@babel/types": "^7.29.7" }, "bin": { "parser": "bin/babel-parser.js" @@ -1418,16 +1419,16 @@ } }, "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.0.tgz", - "integrity": "sha512-PrujnVFbOdUpw4UHiVwKvKRLMMic8+eC0CuNlxjsyZUiBjhFdPsewdXCkveh2KqBA9/waD0W1b4hXSOBQJezpQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.29.7.tgz", + "integrity": "sha512-TM2ZcQLoG2/y4HODiStCo10DibYhWhGWAwVv+EQKmG/7GFl0N+AAmUiXOMKM+aiJ9XBJ9AHVZBvTzMnJ2sM3cQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.28.6", - "@babel/helper-plugin-utils": "^7.28.6", - "@babel/helper-validator-identifier": "^7.28.5", - "@babel/traverse": "^7.29.0" + "@babel/helper-module-transforms": "^7.29.7", + "@babel/helper-plugin-utils": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7", + "@babel/traverse": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2018,33 +2019,33 @@ } }, "node_modules/@babel/template": { - "version": "7.28.6", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.28.6.tgz", - "integrity": "sha512-YA6Ma2KsCdGb+WC6UpBVFJGXL58MDA6oyONbjyF/+5sBgxY/dwkhLogbMT2GXXyU84/IhRw/2D1Os1B/giz+BQ==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.29.7.tgz", + "integrity": "sha512-puq+Gf35oI24FeN11LkoUQFqv9uwNeWpxXZi/Ji3rRIoKAzKnxRaZ+Gkj0vKS9ZCiTESfng1N9LyOyXvo+m+Gg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.28.6", - "@babel/parser": "^7.28.6", - "@babel/types": "^7.28.6" + "@babel/code-frame": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/types": "^7.29.7" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.0.tgz", - "integrity": "sha512-4HPiQr0X7+waHfyXPZpWPfWL/J7dcN1mx9gL6WdQVMbPnF3+ZhSMs8tCxN7oHddJE9fhNE7+lxdnlyemKfJRuA==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.29.7.tgz", + "integrity": "sha512-EhlfNQtZ+NK22w5BM61ciuiq1m58ed33Wr1Xan//ZRTy6hgjnwyCffRYwzsGXdASJSUJ1guZILsErh1eQcl+zw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.29.0", - "@babel/generator": "^7.29.0", - "@babel/helper-globals": "^7.28.0", - "@babel/parser": "^7.29.0", - "@babel/template": "^7.28.6", - "@babel/types": "^7.29.0", + "@babel/code-frame": "^7.29.7", + "@babel/generator": "^7.29.7", + "@babel/helper-globals": "^7.29.7", + "@babel/parser": "^7.29.7", + "@babel/template": "^7.29.7", + "@babel/types": "^7.29.7", "debug": "^4.3.1" }, "engines": { @@ -2052,13 +2053,13 @@ } }, "node_modules/@babel/types": { - "version": "7.29.0", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.0.tgz", - "integrity": "sha512-LwdZHpScM4Qz8Xw2iKSzS+cfglZzJGvofQICy7W7v4caru4EaAmyUuO6BGrbyQ2mYV11W0U8j5mBhd14dd3B0A==", + "version": "7.29.7", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.29.7.tgz", + "integrity": "sha512-4zBIxpPzowiZpusoFkyGVwakdRJUyuH5PxQ/PrqghfdFWWasvnCdPfQXHrenDai+gyLARulZjZowCOj6fjT4pA==", "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.27.1", - "@babel/helper-validator-identifier": "^7.28.5" + "@babel/helper-string-parser": "^7.29.7", + "@babel/helper-validator-identifier": "^7.29.7" }, "engines": { "node": ">=6.9.0" @@ -2132,9 +2133,9 @@ } }, "node_modules/@eslint/eslintrc/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -2436,84 +2437,6 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/@jest/core/node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@jest/core/node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/@jest/environment": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz", @@ -3022,16 +2945,6 @@ "node": ">= 6" } }, - "node_modules/@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true, - "license": "ISC", - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/@types/babel__core": { "version": "7.20.5", "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", @@ -4743,9 +4656,9 @@ } }, "node_modules/@xmldom/xmldom": { - "version": "0.8.11", - "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.11.tgz", - "integrity": "sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==", + "version": "0.8.13", + "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.13.tgz", + "integrity": "sha512-KRYzxepc14G/CEpEGc3Yn+JKaAeT63smlDr+vjB8jRfgTBBI9wRj/nkQEO+ucV8p8I9bfKLWp37uHgFrbntPvw==", "license": "MIT", "engines": { "node": ">=10.0.0" @@ -4904,7 +4817,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, "license": "MIT", "dependencies": { "debug": "4" @@ -5059,9 +4971,9 @@ } }, "node_modules/anymatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -5220,14 +5132,15 @@ } }, "node_modules/axios": { - "version": "1.13.5", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", - "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", + "version": "1.17.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.17.0.tgz", + "integrity": "sha512-J8SwNxprqqpbfenehxWYXE7CW+wM1BB4w3+N+g+/Wx40xM4rsLrfPmHHxSWIxJLYDgSY/HqlFPIYb2/S3rxafw==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.11", + "follow-redirects": "^1.16.0", "form-data": "^4.0.5", - "proxy-from-env": "^1.1.0" + "https-proxy-agent": "^5.0.1", + "proxy-from-env": "^2.1.0" } }, "node_modules/axios/node_modules/form-data": { @@ -5582,9 +5495,9 @@ "license": "MIT" }, "node_modules/body-parser": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", - "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", + "version": "1.20.5", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.5.tgz", + "integrity": "sha512-3grm+/2tUOvu2cjJkvsIxrv/wVpfXQW4PsQHYm7yk4vfpu7Ekl6nEsYBoJUL6qDwZUx8wUhQ8tR2qz+ad9c9OA==", "dev": true, "license": "MIT", "dependencies": { @@ -5596,7 +5509,7 @@ "http-errors": "~2.0.1", "iconv-lite": "~0.4.24", "on-finished": "~2.4.1", - "qs": "~6.14.0", + "qs": "~6.15.1", "raw-body": "~2.5.3", "type-is": "~1.6.18", "unpipe": "~1.0.0" @@ -5642,9 +5555,9 @@ "license": "ISC" }, "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.14.tgz", + "integrity": "sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==", "dev": true, "license": "MIT", "dependencies": { @@ -6412,9 +6325,9 @@ } }, "node_modules/copy-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -6883,7 +6796,6 @@ "version": "4.4.3", "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz", "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==", - "dev": true, "license": "MIT", "dependencies": { "ms": "^2.1.3" @@ -7322,15 +7234,15 @@ } }, "node_modules/editorconfig": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.4.tgz", - "integrity": "sha512-L9Qe08KWTlqYMVvMcTIvMAdl1cDUubzRNYL+WfA4bLDMHe4nemKkpmYzkznE1FwLKu0EEmy6obgQKzMJrg4x9Q==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-1.0.7.tgz", + "integrity": "sha512-e0GOtq/aTQhVdNyDU9e02+wz9oDDM+SIOQxWME2QRjzRX5yyLAuHDE+0aE8vHb9XRC8XD37eO2u57+F09JqFhw==", "dev": true, "license": "MIT", "dependencies": { "@one-ini/wasm": "0.1.1", "commander": "^10.0.0", - "minimatch": "9.0.1", + "minimatch": "^9.0.1", "semver": "^7.5.3" }, "bin": { @@ -7341,9 +7253,9 @@ } }, "node_modules/editorconfig/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "license": "MIT", "dependencies": { @@ -7361,13 +7273,13 @@ } }, "node_modules/editorconfig/node_modules/minimatch": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.1.tgz", - "integrity": "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -7895,9 +7807,9 @@ } }, "node_modules/eslint/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -8174,15 +8086,15 @@ } }, "node_modules/express": { - "version": "4.22.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", - "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", + "version": "4.22.2", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.2.tgz", + "integrity": "sha512-IuL+Elrou2ZvCFHs18/CIzy2Nzvo25nZ1/D2eIZlz7c+QUayAcYoiM2BthCjs+EBHVpjYjcuLDAiCWgeIX3X1Q==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "~1.20.3", + "body-parser": "~1.20.5", "content-disposition": "~0.5.4", "content-type": "~1.0.4", "cookie": "~0.7.1", @@ -8201,7 +8113,7 @@ "parseurl": "~1.3.3", "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "~6.14.0", + "qs": "~6.15.1", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", "send": "~0.19.0", @@ -8308,9 +8220,9 @@ "license": "MIT" }, "node_modules/fast-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", - "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.2.tgz", + "integrity": "sha512-rVjf7ArG3LTk+FS6Yw81V1DLuZl1bRbNrev6Tmd/9RaroeeRRJhAt7jg/6YFxbvAQXUCavSoZhPPj6oOx+5KjQ==", "funding": [ { "type": "github", @@ -8374,6 +8286,12 @@ } } }, + "node_modules/fflate": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.3.tgz", + "integrity": "sha512-tbZNuJrLwGUp3zshBtdy4W+ORxZuIh8a5ilyIEQDC5rY1f3U20JMry0Ll3WBzU58EZKsEuJFXhb5gwv8CsPvgA==", + "license": "MIT" + }, "node_modules/figures": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", @@ -8517,16 +8435,16 @@ } }, "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.4.2.tgz", + "integrity": "sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==", "dev": true, "license": "ISC" }, "node_modules/follow-redirects": { - "version": "1.15.11", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", - "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "version": "1.16.0", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz", + "integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==", "funding": [ { "type": "individual", @@ -8600,9 +8518,9 @@ } }, "node_modules/fork-ts-checker-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -9387,7 +9305,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, "license": "MIT", "dependencies": { "agent-base": "6", @@ -10318,84 +10235,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/jest-config/node_modules/jest-docblock": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", - "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "detect-newline": "^3.0.0" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/jest-environment-node": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", - "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/environment": "^27.5.1", - "@jest/fake-timers": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "jest-mock": "^27.5.1", - "jest-util": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/jest-leak-detector": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", - "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "jest-get-type": "^27.5.1", - "pretty-format": "^27.5.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/jest-config/node_modules/jest-runner": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", - "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/console": "^27.5.1", - "@jest/environment": "^27.5.1", - "@jest/test-result": "^27.5.1", - "@jest/transform": "^27.5.1", - "@jest/types": "^27.5.1", - "@types/node": "*", - "chalk": "^4.0.0", - "emittery": "^0.8.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^27.5.1", - "jest-environment-jsdom": "^27.5.1", - "jest-environment-node": "^27.5.1", - "jest-haste-map": "^27.5.1", - "jest-leak-detector": "^27.5.1", - "jest-message-util": "^27.5.1", - "jest-resolve": "^27.5.1", - "jest-runtime": "^27.5.1", - "jest-util": "^27.5.1", - "jest-worker": "^27.5.1", - "source-map-support": "^0.5.6", - "throat": "^6.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, "node_modules/jest-diff": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz", @@ -10429,6 +10268,19 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-docblock": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz", + "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/jest-each": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz", @@ -10482,6 +10334,24 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/jest-environment-node": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz", + "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "^27.5.1", + "@jest/fake-timers": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "jest-mock": "^27.5.1", + "jest-util": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/jest-get-type": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz", @@ -10565,6 +10435,20 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-leak-detector": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz", + "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "jest-get-type": "^27.5.1", + "pretty-format": "^27.5.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, "node_modules/jest-matcher-utils": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz", @@ -10732,6 +10616,56 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/jest-runner": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz", + "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/console": "^27.5.1", + "@jest/environment": "^27.5.1", + "@jest/test-result": "^27.5.1", + "@jest/transform": "^27.5.1", + "@jest/types": "^27.5.1", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.8.1", + "graceful-fs": "^4.2.9", + "jest-docblock": "^27.5.1", + "jest-environment-jsdom": "^27.5.1", + "jest-environment-node": "^27.5.1", + "jest-haste-map": "^27.5.1", + "jest-leak-detector": "^27.5.1", + "jest-message-util": "^27.5.1", + "jest-resolve": "^27.5.1", + "jest-runtime": "^27.5.1", + "jest-util": "^27.5.1", + "jest-worker": "^27.5.1", + "source-map-support": "^0.5.6", + "throat": "^6.0.1" + }, + "engines": { + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" + } + }, + "node_modules/jest-runner/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/jest-runtime": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz", @@ -10964,9 +10898,9 @@ } }, "node_modules/jest-util/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -11255,9 +11189,9 @@ } }, "node_modules/jest-watch-typeahead/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -11440,9 +11374,9 @@ } }, "node_modules/joi": { - "version": "17.13.3", - "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.3.tgz", - "integrity": "sha512-otDA4ldcIx+ZXsKHWmp0YizCweVRZG96J10b0FevjfuncLO1oX59THoAmHkNubYJ+9gWsYsp5k8v4ib6oDv1fA==", + "version": "17.13.4", + "resolved": "https://registry.npmjs.org/joi/-/joi-17.13.4.tgz", + "integrity": "sha512-1RuuER6kmt8K8I3nIWvPZKi5RQCb568ZPyY4Pwjlua+yo+63ZTmIwxLZH0heBmiKN4uxjvCiarDrjaeH84xicQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -11476,9 +11410,9 @@ } }, "node_modules/js-beautify/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.1.0.tgz", + "integrity": "sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==", "dev": true, "license": "MIT", "dependencies": { @@ -11525,13 +11459,13 @@ } }, "node_modules/js-beautify/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "version": "9.0.9", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.9.tgz", + "integrity": "sha512-OBwBN9AL4dqmETlpS2zasx+vTeWclWzkblfZk7KTA5j3jeOONz/tRCnZomUyvNg83wL5Zv9Ss6HMJXAgL8R2Yg==", "dev": true, "license": "ISC", "dependencies": { - "brace-expansion": "^2.0.1" + "brace-expansion": "^2.0.2" }, "engines": { "node": ">=16 || 14 >=14.17" @@ -11564,14 +11498,11 @@ } }, "node_modules/js-cookie": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.5.tgz", - "integrity": "sha512-cEiJEAEoIbWfCZYKWhVwFuvPX1gETRYPw6LlaTKoxD3s2AkXzkCjnp6h0V77ozyqj0jakteJ4YqDJT830+lVGw==", + "version": "3.0.8", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-3.0.8.tgz", + "integrity": "sha512-yeJd4aNAdYZQjaon2bpD/Gb0B/omw7HQOsynXXcOiWVCacbBcPlgn8S/d1X6blFSaHao7ozqtW7NZW19xpCtIw==", "dev": true, - "license": "MIT", - "engines": { - "node": ">=14" - } + "license": "MIT" }, "node_modules/js-message": { "version": "1.0.7", @@ -11910,9 +11841,9 @@ } }, "node_modules/lodash": { - "version": "4.17.23", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz", - "integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==", + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz", + "integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==", "dev": true, "license": "MIT" }, @@ -12315,9 +12246,9 @@ } }, "node_modules/micromatch/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -12452,9 +12383,9 @@ "license": "ISC" }, "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.5.tgz", + "integrity": "sha512-VgjWUsnnT6n+NUk6eZq77zeFdpW2LWDzP6zFGrCbHXiYNul5Dzqk2HHQ5uFH2DNW5Xbp8+jVzaeNt94ssEEl4w==", "dev": true, "license": "ISC", "dependencies": { @@ -12553,7 +12484,6 @@ "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, "license": "MIT" }, "node_modules/multicast-dns": { @@ -12689,9 +12619,9 @@ } }, "node_modules/node-forge": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", - "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz", + "integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==", "dev": true, "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { @@ -13268,9 +13198,9 @@ } }, "node_modules/path-to-regexp": { - "version": "0.1.12", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz", - "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==", + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.13.tgz", + "integrity": "sha512-A/AGNMFN3c8bOlvV9RreMdrv7jsmF9XIfDeCd87+I8RNg6s78BhJxMu69NEMHBSJFxKidViTEdruRwEk/WIKqA==", "dev": true, "license": "MIT" }, @@ -13304,9 +13234,9 @@ "license": "ISC" }, "node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz", + "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", "engines": { @@ -13453,9 +13383,9 @@ } }, "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "version": "8.5.10", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.10.tgz", + "integrity": "sha512-pMMHxBOZKFU6HgAZ4eyGnwXF/EvPGGqUr0MnZ5+99485wwW41kW91A4LOGxSHhgugZmSChL5AlElNdwlNgcnLQ==", "funding": [ { "type": "opencollective", @@ -14314,10 +14244,13 @@ } }, "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz", + "integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } }, "node_modules/pseudomap": { "version": "1.0.2", @@ -14361,9 +14294,9 @@ } }, "node_modules/qs": { - "version": "6.14.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.2.tgz", - "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", + "version": "6.15.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.15.2.tgz", + "integrity": "sha512-Rzq0KEyX/w/tEybncDgdkZrJgVUsUMk3xjh3t5bv3S1HTAtg+uOYt72+ZfwiQwKdysThkTBdL/rTi6HDmX9Ddw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -14547,9 +14480,9 @@ } }, "node_modules/readdirp/node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz", + "integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==", "dev": true, "license": "MIT", "engines": { @@ -14862,6 +14795,16 @@ "dev": true, "license": "MIT" }, + "node_modules/sax": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.6.0.tgz", + "integrity": "sha512-6R3J5M4AcbtLUdZmRv2SygeVaM7IhrLXu9BmnOGmmACak8fiUtOsYNWUS4uK7upbmHIBbLBeFeI//477BKLBzA==", + "dev": true, + "license": "BlueOak-1.0.0", + "engines": { + "node": ">=11.0.0" + } + }, "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", @@ -14904,9 +14847,9 @@ } }, "node_modules/schema-utils/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -15188,9 +15131,9 @@ } }, "node_modules/shell-quote": { - "version": "1.8.3", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.3.tgz", - "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "version": "1.8.4", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.4.tgz", + "integrity": "sha512-VsC6n6vz1ihYYyZZwX7YZSF5l5x36ca17OC+a69h94YqB7X6XLwf+5MOgynYir2SLFUbl8gIYvBo8K8RoNQ6bQ==", "dev": true, "license": "MIT", "engines": { @@ -15742,18 +15685,18 @@ "dev": true }, "node_modules/svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.2.tgz", + "integrity": "sha512-TyzE4NVGLUFy+H/Uy4N6c3G0HEeprsVfge6Lmq+0FdQQ/zqoVYB62IsBZORsiL+o96s6ff/V6/3UQo/C0cgCAA==", "dev": true, "license": "MIT", "dependencies": { - "@trysound/sax": "0.2.0", "commander": "^7.2.0", "css-select": "^4.1.3", "css-tree": "^1.1.3", "csso": "^4.2.0", "picocolors": "^1.0.0", + "sax": "^1.5.0", "stable": "^0.1.8" }, "bin": { @@ -15865,16 +15808,15 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.16", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.16.tgz", - "integrity": "sha512-h9oBFCWrq78NyWWVcSwZarJkZ01c2AyGrzs1crmHZO3QUg9D61Wu4NPjBy69n7JqylFF5y+CsUZYmYEIZ3mR+Q==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.5.0.tgz", + "integrity": "sha512-UYhptBwhWvfIjKd/UuFo6D8uq9xpGLDK+z8EDsj/zWhrTaH34cKEbrkMKfV5YWqGBvAYA3tlzZbs2R+qYrbQJA==", "dev": true, "license": "MIT", "dependencies": { "@jridgewell/trace-mapping": "^0.3.25", "jest-worker": "^27.4.5", "schema-utils": "^4.3.0", - "serialize-javascript": "^6.0.2", "terser": "^5.31.1" }, "engines": { @@ -16014,9 +15956,9 @@ } }, "node_modules/thread-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "version": "6.15.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.15.0.tgz", + "integrity": "sha512-fgFx7Hfoq60ytK2c7DhnF8jIvzYgOMxfugjLOSMHjLIPgenqa7S7oaagATUq99mV6IYvN2tRmC0wnTYX6iPbMw==", "dev": true, "license": "MIT", "dependencies": { @@ -17326,9 +17268,9 @@ } }, "node_modules/webpack-dev-server/node_modules/ws": { - "version": "8.19.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.19.0.tgz", - "integrity": "sha512-blAT2mjOEIi0ZzruJfIhb3nps74PRWTCz1IjglWEEpQl5XS/UNama6u2/rjFkDDouqr4L67ry+1aGIALViWjDg==", + "version": "8.21.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.21.0.tgz", + "integrity": "sha512-Vsp28b7DRcimFQvrqu2Wek3z1iYxDCWqHYB8Qsnk/S4RfaCQzPGPyBNuVjJV3cd6UiKtUtp6sNM77gWvzcCH+g==", "dev": true, "license": "MIT", "engines": { @@ -17662,9 +17604,9 @@ "license": "ISC" }, "node_modules/yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "version": "1.10.3", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.3.tgz", + "integrity": "sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==", "dev": true, "license": "ISC", "engines": { diff --git a/package.json b/package.json index 3be2928..aa7b48d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "CASCaRA-App", - "version": "0.1.0", + "name": "CASCaRA-Validation-Tool", + "version": "0.2.6", "private": true, "scripts": { "prebuild": "node scripts/generate-build-info.js", @@ -21,6 +21,7 @@ "@xmldom/xmldom": "^0.8.11", "ajv-keywords": "^5.1.0", "core-js": "^3.8.3", + "fflate": "^0.8.3", "pinia": "^3.0.4", "saxon-js": "^2.7.0", "vue": "^3.2.13", diff --git a/public/.htaccess b/public/.htaccess index d6c63f2..6e65583 100644 --- a/public/.htaccess +++ b/public/.htaccess @@ -1,7 +1,34 @@ # Reroute all subfolders to index.html, so that the routing of the Vue app works: -RewriteEngine On -RewriteBase / -RewriteRule ^index\.html$ - [L] -RewriteCond %{REQUEST_FILENAME} !-f -RewriteCond %{REQUEST_FILENAME} !-d -RewriteRule . /index.html [L] \ No newline at end of file + + RewriteEngine On + RewriteBase / + + # Don't rewrite files or directories + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + + # Don't rewrite asset files + RewriteCond %{REQUEST_URI} !^/assets/ + + # Rewrite everything else to index.html to allow HTML5 state routing + RewriteRule ^ index.html [L] + + +# Fallback for servers without mod_rewrite + + ErrorDocument 404 /index.html + + +# Cache-Control for all file types +# Cache expires in 1 day (86400 Sec) +# Applies recursively to all subfolders + + # Cache-Control for 1 day + Header set Cache-Control "public, max-age=86400" + + + # Activates Expires-Header + ExpiresActive On + # Expires: day + ExpiresDefault "access plus 1 day" + diff --git a/public/assets/.htaccess b/public/assets/.htaccess new file mode 100644 index 0000000..7327393 --- /dev/null +++ b/public/assets/.htaccess @@ -0,0 +1,13 @@ +# Cache-Control for all file types +# Cache expires in 1 day (86400 Sec) +# Applies recursively to all subfolders + + # Cache-Control for 1 day + Header set Cache-Control "public, max-age=86400" + + + # Activates Expires-Header + ExpiresActive On + # Expires: day + ExpiresDefault "access plus 1 day" + diff --git a/public/assets/index.html b/public/assets/index.html index c4b7b7d..c7be494 100644 --- a/public/assets/index.html +++ b/public/assets/index.html @@ -21,21 +21,21 @@

CASCaRA Graph

This site publishes documentation and serves the schemata, the semantic infrastructure as well as the ontology with CORS enabled.

-

Content

+

Content

  • Documentation: The latest revision as agreed by the CASCaRA Submission Team:
    - • Metamodel
    - • Semantic Infrastructure (in preparation)
    + • Metamodel and Semantic Infrastructure
    • Ontology (in preparation)

  • -

    JSON-LD Schemata: The versions as developed by the CASCaRA Submission Team:
    - • Latest
    - • 2026-02-18
    - • 2026-01-12 -

    +

    + JSON-LD Schemata: The versions as developed by the CASCaRA Submission Team:
    + • 2026-05-08 (latest)
    + • 2026-02-18
    + • 2026-01-12 +

  • @@ -47,27 +47,31 @@

    Content

  • -

    Reference Implementation: In development for verification and validation before standard submission.
    - • Release (in preparation)
    - • Development "beta" Release (in preparation)
    - • Development "alpha" Release
    -

    +

    + Validation Tool: CASCaRA Reference Implementation for verification and validation before standard submission.
    + • Design
    + • Release (in preparation)
    + • Development "beta" Release (in preparation)
    + • Development "alpha" Release +

-

Key Features

+

Key Features

-
    -
  • Separation of Concerns: Syntax and Semantics are separated, so that no software update is needed, when the ontology evolves over time.
  • -
  • Transformation: The CASCaRA Metamodel assures loss-less transformation between Knowledge Graphs, Property Graphs and Object-oriented Programming.
  • -
  • Federation: Supports dataspaces with federated data under full control of the respective owners.
  • -
  • Versioning: Built-in revision control at the level of individual artifacts (entities) and their relationships.
  • -
  • Specialization: Supports semantic class hierarchies.
  • -
  • Multi-Language Support: Built-in support for multilingual content.
  • -
+
    +
  • Separation of Concerns: Separate syntax and semantics, so that no software updates are needed when the ontology evolves over time.
  • +
  • Transformation: Assure loss-less transformation between Knowledge Graphs (RDF/OWL), Property Graphs (GQL) and Object-oriented Programming.
  • +
  • Federation: Support dataspaces with federated data under full control of the respective owners.
  • +
  • Querying: Enforce a certain graph pattern or profile, so that the same queries can be applied, no matter where the data came from originally.
  • +
  • Extensibility: Complement CASCaRA Ontology with corporate or even project ontologies.
  • +
  • Specialization: Support semantic class hierarchies.
  • +
  • Multi-Language Support: Built-in support for multilingual content.
  • +
  • Versioning: Revision control at the level of individual entities and their relationships.
  • +
-

Project and Community

+

Project and Community

The CACaRA Graph is being developed as part of the CASCaRA project (Collaborative Artifact, Specification, Context and Resource Access), an initiative by:

    @@ -155,30 +159,39 @@

    Project and Community

-

News

+

News

-

Contact and Contribute

+

Contact and Contribute

Interested in the CASCaRA Graph? We're looking for support from companies and software developers!

diff --git a/public/assets/jsonld/Entity.json b/public/assets/jsonld/Entity.json index d7b3de8..89da73b 100644 --- a/public/assets/jsonld/Entity.json +++ b/public/assets/jsonld/Entity.json @@ -1,31 +1,53 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://product-information-graph.org/schema/2026-02-18/jsonld/Entity.json", - "title": "PIG Entity JSON-LD Schema", - "description": "Validates Entity class definitions for individual information objects. Configures which properties (pig:enumeratedProperty) and which outgoing links are allowed (pig:enumeratedTargetLink). Entities classify primary information objects such as Requirements, Components and Diagrams in a systems engineering context. Supports specialization hierarchies via pig:specializes and optional visual representation via pig:icon.", - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Entity.json", + "title": "CASCaRA Entity Schema for JSON-LD", + "description": "Validates Entity class definitions for individual information objects. Configures which properties (cas:enumeratedProperty) and which outgoing links are allowed (cas:enumeratedTargetLink). Entities classify primary information objects such as Requirements, Components and Diagrams in a systems engineering context. Supports specialization hierarchies via cas:specializes and optional visual representation via cas:icon.", + "type": "object", "properties": { "@id": { "$ref": "#/$defs/idString" }, "@type": { - "$ref": "#/$defs/idString" + "type": "string", + "enum": [ "owl:Class" ] }, - "pig:specializes": { + "cas:specializes": { "$ref": "#/$defs/idObject" }, - "pig:itemType": { + "cas:itemType": { "type": "object", "required": [ "@id" ], "properties": { "@id": { "type": "string", - "enum": [ "pig:Entity" ], - "description": "The PigItemType for pig:Entity" + "enum": [ "cas:Entity" ], + "description": "The CASCaRA metamodel item type for cas:Entity" } }, "additionalProperties": false }, + "cas:revision": { + "type": "string", + "description": "Revision identifier for version control" + }, + "cas:priorRevision": { + "type": "array", + "description": "Array of prior revision identifiers", + "maxItems": 2, + "items": { + "type": "string" + } + }, + "dcterms:modified": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 timestamp of last modification" + }, + "dcterms:creator": { + "type": "string", + "description": "Creator/author of this relationship instance" + }, "dcterms:title": { "type": "array", "minItems": 1, @@ -40,28 +62,28 @@ "$ref": "#/$defs/languageValue" } }, - "dcterms:definition": { + "skos:definition": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/languageValue" } }, - "pig:enumeratedProperty": { + "cas:enumeratedProperty": { "type": "array", "description": "Array of Property class references that can be used with this Entity", "items": { "$ref": "#/$defs/idObject" } }, - "pig:enumeratedTargetLink": { + "cas:enumeratedTargetLink": { "type": "array", "description": "Array of Link class references that can be used as outgoing links from this Entity", "items": { "$ref": "#/$defs/idObject" } }, - "pig:Icon": { + "cas:icon": { "type": "object", "description": "Optional icon representation for this Entity type", "properties": { @@ -73,28 +95,19 @@ "additionalProperties": false } }, - "required": [ - "@id", - "pig:itemType", - "dcterms:title" - ], - "oneOf": [ - { - "required": [ "@type" ], - "description": "New Entity class (not specialized)" - }, - { - "required": [ "pig:specializes" ], - "description": "Specialized Entity class" - } - ], - "additionalProperties": false, - "$defs": { - "idString": { - "type": "string", - "pattern": "^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$", - "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" - }, + "required": [ + "@id", + "@type", + "cas:itemType", + "dcterms:title" + ], + "additionalProperties": false, + "$defs": { + "idString": { + "type": "string", + "pattern": "^(?:[A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$", + "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" + }, "idObject": { "type": "object", "required": [ "@id" ], @@ -124,5 +137,5 @@ "additionalProperties": false, "description": "Multi-language text value with optional language tag" } - } + } } diff --git a/public/assets/jsonld/Enumeration.json b/public/assets/jsonld/Enumeration.json new file mode 100644 index 0000000..ec472f8 --- /dev/null +++ b/public/assets/jsonld/Enumeration.json @@ -0,0 +1,169 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Enumeration.json", + "title": "CASCaRA Enumeration Schema for JSON-LD", + "description": "Validates Enumeration class definitions. Must include datatype specification (string, integer, double, boolean, dateTime, etc.), enumeration values (cas:enumeratedValue), measurement units.", + "type": "object", + "properties": { + "@id": { + "$ref": "#/$defs/idString" + }, + "@type": { + "type": "string", + "enum": [ "owl:Class" ] + }, + "cas:specializes": { + "$ref": "#/$defs/idObject" + }, + "cas:itemType": { + "type": "object", + "required": [ "@id" ], + "properties": { + "@id": { + "type": "string", + "enum": [ "cas:Enumeration" ], + "description": "The CASCaRA metamodel item type for cas:Enumeration" + } + }, + "additionalProperties": false + }, + "cas:revision": { + "type": "string", + "description": "Revision identifier for version control" + }, + "cas:priorRevision": { + "type": "array", + "description": "Array of prior revision identifiers", + "maxItems": 2, + "items": { + "type": "string" + } + }, + "dcterms:modified": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 timestamp of last modification" + }, + "dcterms:creator": { + "type": "string", + "description": "Creator/author of this relationship instance" + }, + "dcterms:title": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/$defs/languageValue" + } + }, + "dcterms:description": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/$defs/languageValue" + } + }, + "skos:definition": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/$defs/languageValue" + } + }, + "sh:datatype": { + "$ref": "#/$defs/idObject" + }, + "cas:unit": { + "type": "string", + "description": "Unit of measurement (SI unit)" + }, + "cas:enumeratedValue": { + "type": "array", + "description": "Enumeration of allowed values", + "items": { + "oneOf": [ + { + "type": "object", + "description": "Enumeration value with multi-language title (for xs:string)", + "properties": { + "@id": { + "$ref": "#/$defs/idString" + }, + "dcterms:title": { + "type": "array", + "minItems": 1, + "items": { + "$ref": "#/$defs/languageValue" + } + } + }, + "required": [ "@id", "dcterms:title" ], + "additionalProperties": false + }, + { + "type": "object", + "description": "Enumeration value with literal value (for xs:integer, xs:double, etc.)", + "properties": { + "@id": { + "$ref": "#/$defs/idString" + }, + "@value": { + "type": "string", + "minLength": 1, + "description": "Literal value for numeric and other datatypes (stored as string)" + } + }, + "required": [ "@id", "@value" ], + "additionalProperties": false + } + ] + } + } + }, + "required": [ + "@id", + "@type", + "cas:itemType", + "dcterms:title" + ], + "additionalProperties": false, + "$defs": { + "idString": { + "type": "string", + "pattern": "^(?:[A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$", + "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" + }, + "idObject": { + "type": "object", + "required": [ + "@id" + ], + "properties": { + "@id": { + "$ref": "#/$defs/idString" + } + }, + "additionalProperties": false, + "description": "JSON-LD ID object wrapper" + }, + "languageValue": { + "type": "object", + "required": [ + "@value" + ], + "properties": { + "@value": { + "type": "string", + "minLength": 1, + "description": "The actual text content" + }, + "@language": { + "type": "string", + "pattern": "^[a-z]{2}(-[A-Z]{2})?$", + "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" + } + }, + "additionalProperties": false, + "description": "Multi-language text value with optional language tag" + } + } +} diff --git a/public/assets/jsonld/Link.json b/public/assets/jsonld/Link.json index d5ee023..305772d 100644 --- a/public/assets/jsonld/Link.json +++ b/public/assets/jsonld/Link.json @@ -1,31 +1,53 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://product-information-graph.org/schema/2026-02-18/jsonld/Link.json", - "title": "PIG Link JSON-LD Schema", - "description": "Validates Link class definitions that specify navigable connections between items. Defines enumerated endpoint classes (pig:enumeratedEndpoint) which determine which Entity or Relationship classes can be connected via this link type. Links enable traversal of the information graph and support bi-directional relationships when paired (e.g., 'contains' / 'is contained by').", - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Link.json", + "title": "CASCaRA Link Schema for JSON-LD", + "description": "Validates Link class definitions that specify navigable connections between items. Defines enumerated endpoint classes (cas:enumeratedEndpoint) which determine which Entity or Relationship classes can be connected via this link type. Links enable traversal of the information graph and support bi-directional relationships when paired (e.g., 'contains' / 'is contained by').", + "type": "object", "properties": { "@id": { "$ref": "#/$defs/idString" }, "@type": { - "$ref": "#/$defs/idString" + "type": "string", + "enum": [ "owl:ObjectProperty" ] }, - "pig:specializes": { + "cas:specializes": { "$ref": "#/$defs/idObject" }, - "pig:itemType": { + "cas:itemType": { "type": "object", "required": [ "@id" ], "properties": { "@id": { "type": "string", - "enum": [ "pig:Link" ], - "description": "The PigItemType for pig:Link" + "enum": [ "cas:Link" ], + "description": "The CASCaRA metamodel item type for cas:Link" } }, "additionalProperties": false }, + "cas:revision": { + "type": "string", + "description": "Revision identifier for version control" + }, + "cas:priorRevision": { + "type": "array", + "description": "Array of prior revision identifiers", + "maxItems": 2, + "items": { + "type": "string" + } + }, + "dcterms:modified": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 timestamp of last modification" + }, + "dcterms:creator": { + "type": "string", + "description": "Creator/author of this relationship instance" + }, "dcterms:title": { "type": "array", "minItems": 1, @@ -40,73 +62,72 @@ "$ref": "#/$defs/languageValue" } }, - "dcterms:definition": { + "skos:definition": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/languageValue" } }, - "pig:enumeratedEndpoint": { + "cas:enumeratedEndpoint": { "type": "array", "minItems": 1, "description": "Array of Entity or Relationship class references that can be endpoints for this link", "items": { "$ref": "#/$defs/idObject" } + }, + "sh:minCount": { + "type": "integer", + "minimum": 0 + }, + "sh:maxCount": { + "type": "integer", + "minimum": 1 } }, - "required": [ - "@id", - "pig:itemType", - "dcterms:title", - "pig:enumeratedEndpoint" - ], - "oneOf": [ - { - "required": [ "@type" ], - "description": "New Link class (not specialized)" - }, - { - "required": [ "pig:specializes" ], - "description": "Specialized Link class" + "required": [ + "@id", + "@type", + "cas:itemType", + "dcterms:title", + "cas:enumeratedEndpoint" + ], + "additionalProperties": false, + "$defs": { + "idString": { + "type": "string", + "pattern": "^(?:[A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$", + "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" + }, + "idObject": { + "type": "object", + "required": [ "@id" ], + "properties": { + "@id": { + "$ref": "#/$defs/idString" } - ], - "additionalProperties": false, - "$defs": { - "idString": { - "type": "string", - "pattern": "^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$", - "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" - }, - "idObject": { - "type": "object", - "required": [ "@id" ], - "properties": { - "@id": { - "$ref": "#/$defs/idString" - } - }, - "additionalProperties": false, - "description": "JSON-LD ID object wrapper" + }, + "additionalProperties": false, + "description": "JSON-LD ID object wrapper" + }, + "languageValue": { + "type": "object", + "required": [ "@value" ], + "properties": { + "@value": { + "type": "string", + "minLength": 1, + "description": "The actual text content" }, - "languageValue": { - "type": "object", - "required": [ "@value" ], - "properties": { - "@value": { - "type": "string", - "minLength": 1, - "description": "The actual text content" - }, - "@language": { - "type": "string", - "pattern": "^[a-z]{2}(-[A-Z]{2})?$", - "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" - } - }, - "additionalProperties": false, - "description": "Multi-language text value with optional language tag" + "@language": { + "type": "string", + "pattern": "^[a-z]{2}(-[A-Z]{2})?$", + "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" } + }, + "additionalProperties": false, + "description": "Multi-language text value with optional language tag" } + } } diff --git a/public/assets/jsonld/Property.json b/public/assets/jsonld/Property.json index b124d83..4063f64 100644 --- a/public/assets/jsonld/Property.json +++ b/public/assets/jsonld/Property.json @@ -1,20 +1,21 @@ { "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://product-information-graph.org/schema/2026-02-18/jsonld/Property.json", - "title": "PIG Property JSON-LD Schema", - "description": "Validates Property class definitions that specify attributes for entities and relationships. May include datatype specifications (string, integer, double, boolean, dateTime, etc.), cardinality constraints (sh:minCount, sh:maxCount, value constraints (sh:minInclusive, sh:maxInclusive, sh:maxLength, sh:pattern), enumeration values (pig:enumeratedValue), default values, measurement units, and support for composed properties.", + "$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Property.json", + "title": "CASCaRA Property Schema for JSON-LD", + "description": "Validates Property class definitions that specify attributes for entities and relationships. May include datatype specifications (string, integer, double, boolean, dateTime, etc.), cardinality constraints (sh:minCount, sh:maxCount, value constraints (sh:minInclusive, sh:maxInclusive, sh:maxLength, sh:pattern), default values, measurement units, and support for composed properties.", "type": "object", "properties": { "@id": { "$ref": "#/$defs/idString" }, "@type": { - "$ref": "#/$defs/idString" + "type": "string", + "enum": [ "owl:DatatypeProperty" ] }, - "pig:specializes": { + "cas:specializes": { "$ref": "#/$defs/idObject" }, - "pig:itemType": { + "cas:itemType": { "type": "object", "required": [ "@id" @@ -22,14 +23,33 @@ "properties": { "@id": { "type": "string", - "enum": [ - "pig:Property" - ], - "description": "The PigItemType for pig:Property" + "enum": [ "cas:Property" ], + "description": "The CASCaRA metamodel item type for cas:Property" } }, "additionalProperties": false }, + "cas:revision": { + "type": "string", + "description": "Revision identifier for version control" + }, + "cas:priorRevision": { + "type": "array", + "description": "Array of prior revision identifiers", + "maxItems": 2, + "items": { + "type": "string" + } + }, + "dcterms:modified": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 timestamp of last modification" + }, + "dcterms:creator": { + "type": "string", + "description": "Creator/author of this relationship instance" + }, "dcterms:title": { "type": "array", "minItems": 1, @@ -44,7 +64,7 @@ "$ref": "#/$defs/languageValue" } }, - "dcterms:definition": { + "skos:definition": { "type": "array", "minItems": 1, "items": { @@ -76,7 +96,7 @@ "type": "string", "description": "Regular expression pattern for string validation" }, - "pig:unit": { + "cas:unit": { "type": "string", "description": "Unit of measurement (SI unit)" }, @@ -84,65 +104,7 @@ "type": "string", "description": "Default value for this property" }, - "pig:enumeratedValue": { - "type": "array", - "description": "Enumeration of allowed values", - "items": { - "oneOf": [ - { - "type": "object", - "description": "Enumeration value with multi-language title (for xs:string)", - "properties": { - "@id": { - "type": "string", - "description": "Unique identifier for this enumeration value", - "pattern": "^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$" - }, - "dcterms:title": { - "type": "array", - "minItems": 1, - "items": { - "type": "object", - "properties": { - "@value": { - "type": "string", - "minLength": 1 - }, - "@language": { - "type": "string" - } - }, - "required": [ "@value" ], - "additionalProperties": false - }, - "description": "Multi-language title for string enumerations" - } - }, - "required": [ "@id", "dcterms:title" ], - "additionalProperties": false - }, - { - "type": "object", - "description": "Enumeration value with literal value (for xs:integer, xs:double, etc.)", - "properties": { - "@id": { - "type": "string", - "description": "Unique identifier for this enumeration value", - "pattern": "^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$" - }, - "@value": { - "type": "string", - "minLength": 1, - "description": "Literal value for numeric and other datatypes (stored as string)" - } - }, - "required": [ "@id", "@value" ], - "additionalProperties": false - } - ] - } - }, - "pig:composedProperty": { + "cas:composedProperty": { "type": "array", "description": "References to other properties that compose this property", "items": { @@ -152,27 +114,15 @@ }, "required": [ "@id", - "pig:itemType", - "dcterms:title", - "sh:datatype" - ], - "oneOf": [ - { - "required": [ - "@type" - ] - }, - { - "required": [ - "pig:specializes" - ] - } + "@type", + "cas:itemType", + "dcterms:title" ], "additionalProperties": false, "$defs": { "idString": { "type": "string", - "pattern": "^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$", + "pattern": "^(?:[A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$", "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" }, "idObject": { diff --git a/public/assets/jsonld/Relationship.json b/public/assets/jsonld/Relationship.json index 3ed3b9a..42671d2 100644 --- a/public/assets/jsonld/Relationship.json +++ b/public/assets/jsonld/Relationship.json @@ -1,31 +1,53 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://product-information-graph.org/schema/2026-02-18/jsonld/Relationship.json", - "title": "PIG Relationship JSON-LD Schema", - "description": "Validates Relationship class definitions for directed connections between entities. Configures which properties (pig:enumeratedProperty), source links (pig:enumeratedSourceLink) and target links (pig:enumeratedTargetLink) are allowed. Relationships are reified connections that can carry their own properties, enabling rich traceability and dependency modeling (e.g., 'Refinement' relationships with rationale and traceability status). Relationships classify meaningful statements including a subject and an object, where both the subject and the object is an entity or relationship instance. Supports specialization hierarchies and optional icons.", - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/Relationship.json", + "title": "CASCaRA Relationship Schema for JSON-LD", + "description": "Validates Relationship class definitions for directed connections between entities. Configures which properties (cas:enumeratedProperty), source links (cas:enumeratedSourceLink) and target links (cas:enumeratedTargetLink) are allowed. Relationships are reified connections that can carry their own properties, enabling rich traceability and dependency modeling (e.g., 'Refinement' relationships with rationale and traceability status). Relationships classify meaningful statements including a subject and an object, where both the subject and the object is an entity or relationship instance. Supports specialization hierarchies and optional icons.", + "type": "object", "properties": { "@id": { "$ref": "#/$defs/idString" }, "@type": { - "$ref": "#/$defs/idString" + "type": "string", + "enum": [ "owl:Class" ] }, - "pig:specializes": { + "cas:specializes": { "$ref": "#/$defs/idObject" }, - "pig:itemType": { + "cas:itemType": { "type": "object", "required": [ "@id" ], "properties": { "@id": { "type": "string", - "enum": [ "pig:Relationship" ], - "description": "The PigItemType for pig:Relationship" + "enum": [ "cas:Relationship" ], + "description": "The CASCaRA metamodel item type for cas:Relationship" } }, "additionalProperties": false }, + "cas:revision": { + "type": "string", + "description": "Revision identifier for version control" + }, + "cas:priorRevision": { + "type": "array", + "description": "Array of prior revision identifiers", + "maxItems": 2, + "items": { + "type": "string" + } + }, + "dcterms:modified": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 timestamp of last modification" + }, + "dcterms:creator": { + "type": "string", + "description": "Creator/author of this relationship instance" + }, "dcterms:title": { "type": "array", "minItems": 1, @@ -40,29 +62,38 @@ "$ref": "#/$defs/languageValue" } }, - "dcterms:definition": { + "skos:definition": { "type": "array", "minItems": 1, "items": { "$ref": "#/$defs/languageValue" } }, - "pig:enumeratedProperty": { + "cas:enumeratedProperty": { "type": "array", "description": "Array of Property class references that can be used with this Relationship", "items": { "$ref": "#/$defs/idObject" } }, - "pig:enumeratedSourceLink": { - "$ref": "#/$defs/idObject", - "description": "Link class reference that defines the source endpoint of this Relationship" + "cas:enumeratedSourceLink": { + "type": "array", + "description": "Single link class reference that defines the source endpoint of this Relationship", + "minItems": 1, + "maxItems": 1, + "items": { + "$ref": "#/$defs/idObject" + } }, - "pig:enumeratedTargetLink": { - "$ref": "#/$defs/idObject", - "description": "Link class reference that defines the target endpoint of this Relationship" + "cas:enumeratedTargetLink": { + "type": "array", + "description": "Single link class reference that defines the target endpoint of this Relationship plus 0..n link classes pointing to an enumeration", + "minItems": 1, + "items": { + "$ref": "#/$defs/idObject" + } }, - "pig:Icon": { + "cas:icon": { "type": "object", "description": "Optional icon representation for this Relationship type", "properties": { @@ -74,56 +105,47 @@ "additionalProperties": false } }, - "required": [ - "@id", - "pig:itemType", - "dcterms:title" - ], - "oneOf": [ - { - "required": [ "@type" ], - "description": "New Relationship class (not specialized)" - }, - { - "required": [ "pig:specializes" ], - "description": "Specialized Relationship class" + "required": [ + "@id", + "@type", + "cas:itemType", + "dcterms:title" + ], + "additionalProperties": false, + "$defs": { + "idString": { + "type": "string", + "pattern": "^(?:[A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$", + "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" + }, + "idObject": { + "type": "object", + "required": [ "@id" ], + "properties": { + "@id": { + "$ref": "#/$defs/idString" } - ], - "additionalProperties": false, - "$defs": { - "idString": { - "type": "string", - "pattern": "^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$", - "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" - }, - "idObject": { - "type": "object", - "required": [ "@id" ], - "properties": { - "@id": { - "$ref": "#/$defs/idString" - } - }, - "additionalProperties": false, - "description": "JSON-LD ID object wrapper" + }, + "additionalProperties": false, + "description": "JSON-LD ID object wrapper" + }, + "languageValue": { + "type": "object", + "required": [ "@value" ], + "properties": { + "@value": { + "type": "string", + "minLength": 1, + "description": "The actual text content" }, - "languageValue": { - "type": "object", - "required": [ "@value" ], - "properties": { - "@value": { - "type": "string", - "minLength": 1, - "description": "The actual text content" - }, - "@language": { - "type": "string", - "pattern": "^[a-z]{2}(-[A-Z]{2})?$", - "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" - } - }, - "additionalProperties": false, - "description": "Multi-language text value with optional language tag" + "@language": { + "type": "string", + "pattern": "^[a-z]{2}(-[A-Z]{2})?$", + "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" } + }, + "additionalProperties": false, + "description": "Multi-language text value with optional language tag" } + } } diff --git a/public/assets/jsonld/aPackage.json b/public/assets/jsonld/aPackage.json index f45c694..459998e 100644 --- a/public/assets/jsonld/aPackage.json +++ b/public/assets/jsonld/aPackage.json @@ -1,9 +1,9 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://product-information-graph.org/schema/2026-02-18/jsonld/aPackage.json", - "title": "PIG APackage JSON-LD Schema", - "description": "Validates complete JSON-LD package documents with @context (namespace and vocabulary definitions) as well as @graph (array of PIG items). The graph contains a mix of item classes (Property, Link, Entity, Relationship) and instances (anEntity, aRelationship). Package-level metadata includes optional dcterms:modified, dcterms:creator, dcterms:title, and dcterms:description. Validates each item against its corresponding schema based on pig:itemType.", - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/aPackage.json", + "title": "CASCaRA aPackage Schema for JSON-LD", + "description": "Validates a complete JSON-LD document (CASCaRA aPackage) with @context (namespace and vocabulary definitions) as well as @graph (array of PIG items). The graph contains a mix of item classes (Property, Link, Entity, Relationship) and instances (anEntity, aRelationship). Package-level metadata includes optional dcterms:modified, dcterms:creator, dcterms:title, and dcterms:description. Validates each item against its corresponding schema based on cas:itemType.", + "type": "object", "properties": { "@context": { "description": "JSON-LD context defining namespaces and vocabulary mappings", @@ -37,25 +37,26 @@ "$ref": "#/$defs/idString", "description": "Reference to the Package class this instance belongs to" }, - "pig:itemType": { + "cas:itemType": { "type": "object", "required": [ "@id" ], "properties": { "@id": { "type": "string", - "enum": [ "pig:aPackage" ], - "description": "The PigItemType for pig:aPackage" + "enum": [ "cas:aPackage" ], + "description": "The CASCaRA metamodel item type for cas:aPackage" } }, "additionalProperties": false }, - "pig:revision": { + "cas:revision": { "type": "string", "description": "Revision identifier for version control" }, - "pig:priorRevision": { + "cas:priorRevision": { "type": "array", "description": "Array of prior revision identifiers", + "maxItems": 2, "items": { "type": "string" } @@ -91,21 +92,22 @@ "description": "Array of PIG items (classes and instances)", "items": { "type": "object", - "required": [ "pig:itemType" ], + "required": [ "cas:itemType" ], "properties": { - "pig:itemType": { + "cas:itemType": { "type": "object", "required": [ "@id" ], "properties": { "@id": { "type": "string", "enum": [ - "pig:Property", - "pig:Link", - "pig:Entity", - "pig:Relationship", - "pig:anEntity", - "pig:aRelationship" + "cas:Property", + "cas:Link", + "cas:Entity", + "cas:Relationship", + "cas:Enumeration", + "cas:anEntity", + "cas:aRelationship" ] } } @@ -116,127 +118,221 @@ "if": { "type": "object", "properties": { - "pig:itemType": { + "cas:itemType": { "type": "object", "properties": { - "@id": { "const": "pig:anEntity" } + "@id": { "const": "cas:anEntity" } } } } }, "then": { - "$ref": "http://product-information-graph.org/schema/2026-02-18/jsonld/anEntity.json" + "$ref": "http://product-information-graph.org/schema/2026-05-08/jsonld/anEntity.json" } }, { "if": { "type": "object", "properties": { - "pig:itemType": { + "cas:itemType": { "type": "object", "properties": { - "@id": { "const": "pig:aRelationship" } + "@id": { "const": "cas:aRelationship" } } } } }, "then": { - "$ref": "http://product-information-graph.org/schema/2026-02-18/jsonld/aRelationship.json" + "$ref": "http://product-information-graph.org/schema/2026-05-08/jsonld/aRelationship.json" } }, { "if": { "type": "object", "properties": { - "pig:itemType": { + "cas:itemType": { "type": "object", "properties": { - "@id": { "const": "pig:Property" } + "@id": { "const": "cas:Property" } } } } }, "then": { - "$ref": "http://product-information-graph.org/schema/2026-02-18/jsonld/Property.json" + "$ref": "http://product-information-graph.org/schema/2026-05-08/jsonld/Property.json" } }, { "if": { "type": "object", "properties": { - "pig:itemType": { + "cas:itemType": { "type": "object", "properties": { - "@id": { "const": "pig:Link" } + "@id": { "const": "cas:Link" } } } } }, "then": { - "$ref": "http://product-information-graph.org/schema/2026-02-18/jsonld/Link.json" + "$ref": "http://product-information-graph.org/schema/2026-05-08/jsonld/Link.json" } }, { "if": { "type": "object", "properties": { - "pig:itemType": { + "cas:itemType": { "type": "object", "properties": { - "@id": { "const": "pig:Entity" } + "@id": { "const": "cas:Entity" } } } } }, "then": { - "$ref": "http://product-information-graph.org/schema/2026-02-18/jsonld/Entity.json" + "$ref": "http://product-information-graph.org/schema/2026-05-08/jsonld/Entity.json" } }, { "if": { "type": "object", "properties": { - "pig:itemType": { + "cas:itemType": { "type": "object", "properties": { - "@id": { "const": "pig:Relationship" } + "@id": { "const": "cas:Relationship" } } } } }, "then": { - "$ref": "http://product-information-graph.org/schema/2026-02-18/jsonld/Relationship.json" + "$ref": "http://product-information-graph.org/schema/2026-05-08/jsonld/Relationship.json" + } + }, + { + "if": { + "type": "object", + "properties": { + "cas:itemType": { + "type": "object", + "properties": { + "@id": { "const": "cas:Enumeration" } + } + } + } + }, + "then": { + "$ref": "http://product-information-graph.org/schema/2026-05-08/jsonld/Enumeration.json" } } ] } } }, - "required": [ "@context", "@graph" ], - "additionalProperties": true, - "$defs": { - "idString": { - "type": "string", - "pattern": "^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$", - "description": "Valid identifier format: namespace:name or full URI (e.g., 'pig:Property', 'http://example.org/id')" - }, - "languageValue": { - "type": "object", - "required": [ "@value" ], - "properties": { - "@value": { - "type": "string", - "minLength": 1, - "description": "The actual text content" - }, - "@language": { - "type": "string", - "pattern": "^[a-z]{2}(-[A-Z]{2})?$", - "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" + "patternProperties": { + "^(?!cas:itemType|cas:revision|cas:priorRevision|@id|@type|dcterms:modified|dcterms:creator|dcterms:title|dcterms:description)([A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$": { + "type": "array", + "description": "Configurable properties and links with namespaced keys", + "items": { + "type": "object", + "properties": { + "cas:itemType": { + "type": "object", + "required": [ "@id" ], + "properties": { + "@id": { + "type": "string", + "enum": [ "cas:aProperty", "cas:aTargetLink" ], + "description": "Type of configurable item: property value or target link" + } + }, + "additionalProperties": false + }, + "@value": { + "type": "string", + "description": "Direct property value (for aProperty)" + }, + "@id": { + "$ref": "#/$defs/idString", + "description": "Reference to enumeration value or linked entity/relationship" + } + }, + "required": [ "cas:itemType" ], + "oneOf": [ + { + "type": "object", + "description": "aProperty with direct value", + "properties": { + "cas:itemType": { + "type": "object", + "properties": { + "@id": { + "const": "cas:aProperty" + } + } + } + }, + "required": [ "@value" ], + "not": { + "required": [ "@id" ] + } + }, + { + "type": "object", + "description": "aTargetLink to an enumeration, entity or relationship", + "properties": { + "cas:itemType": { + "type": "object", + "properties": { + "@id": { + "const": "cas:aTargetLink" + } + } + } + }, + "required": [ "@id" ], + "not": { + "required": [ "@value" ] + } + } + ], + "additionalProperties": false } + } + }, + "required": [ + "@context", + "@id", + "@type", + "cas:itemType", + "@graph", + "dcterms:modified" + ], + "additionalProperties": true, + "$defs": { + "idString": { + "type": "string", + "pattern": "^(?:[A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$", + "description": "Valid identifier format: namespace:name or full URI (e.g., 'cas:Property', 'http://example.org/id')" }, - "additionalProperties": false, - "description": "Multi-language text value with optional language tag" + "languageValue": { + "type": "object", + "required": [ "@value" ], + "properties": { + "@value": { + "type": "string", + "minLength": 1, + "description": "The actual text content" + }, + "@language": { + "type": "string", + "pattern": "^[a-z]{2}(-[A-Z]{2})?$", + "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" + } + }, + "additionalProperties": false, + "description": "Multi-language text value with optional language tag" + } } } -} diff --git a/public/assets/jsonld/aRelationship.json b/public/assets/jsonld/aRelationship.json index 00ffae7..4a4ca1f 100644 --- a/public/assets/jsonld/aRelationship.json +++ b/public/assets/jsonld/aRelationship.json @@ -1,185 +1,168 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://product-information-graph.org/schema/2026-02-18/jsonld/aRelationship.json", - "title": "PIG ARelationship JSON-LD Schema", - "description": "Validates relationship instances representing directed, reified connections between items (i.e. entity or relationship instances). Similar metadata to entities, but additionally requires both source links (pig:aSourceLink) and target links (pig:aTargetLink) conforming to the class definition. Source and target links reference entity or relationship instances. Properties can carry contextual information about the relationship (e.g., traceability status, rationale, coverage analysis). Reification enables relationships to be first-class items with their own lifecycle and properties. Must have a dcterms:title and optionally a dcterms:description to convey meaning.", - "type": "object", - "properties": { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/aRelationship.json", + "title": "CASCaRA ARelationship Schema for JSON-LD", + "description": "Validates relationship instances representing directed, reified connections between items (i.e. entity or relationship instances). Similar metadata to entities, but additionally requires both source links (cas:aSourceLink) and target links (cas:aTargetLink) conforming to the class definition. Source and target links reference entity or relationship instances. Properties can carry contextual information about the relationship (e.g., traceability status, rationale, coverage analysis). Reification enables relationships to be first-class items with their own lifecycle and properties. Must have a dcterms:title and optionally a dcterms:description to convey meaning.", + "type": "object", + "properties": { + "@id": { + "$ref": "#/$defs/idString" + }, + "@type": { + "$ref": "#/$defs/idString", + "description": "Reference to the Relationship class this instance belongs to" + }, + "cas:itemType": { + "type": "object", + "required": [ "@id" ], + "properties": { "@id": { - "$ref": "#/$defs/idString" - }, - "@type": { - "$ref": "#/$defs/idString", - "description": "Reference to the Relationship class this instance belongs to" - }, - "pig:itemType": { + "type": "string", + "enum": [ "cas:aRelationship" ], + "description": "The CASCaRA metamodel item type for cas:aRelationship" + } + }, + "additionalProperties": false + }, + "cas:revision": { + "type": "string", + "description": "Revision identifier for version control" + }, + "cas:priorRevision": { + "type": "array", + "description": "Array of prior revision identifiers", + "maxItems": 2, + "items": { + "type": "string" + } + }, + "dcterms:modified": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 timestamp of last modification" + }, + "dcterms:creator": { + "type": "string", + "description": "Creator/author of this relationship instance" + }, + "dcterms:title": { + "type": "array", + "description": "Multi-language titles", + "minItems": 1, + "items": { + "$ref": "#/$defs/languageValue" + } + }, + "dcterms:description": { + "type": "array", + "description": "Multi-language descriptions", + "minItems": 1, + "items": { + "$ref": "#/$defs/languageValue" + } + } + }, + "patternProperties": { + "^(?!cas:itemType|cas:revision|cas:priorRevision|@id|@type|dcterms:modified|dcterms:creator|dcterms:title|dcterms:description)([A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$": { + "type": "array", + "description": "Configurable properties and links with namespaced keys", + "items": { + "type": "object", + "properties": { + "cas:itemType": { "type": "object", "required": [ "@id" ], "properties": { - "@id": { - "type": "string", - "enum": [ "pig:aRelationship" ], - "description": "The PigItemType for pig:aRelationship" - } + "@id": { + "type": "string", + "enum": [ "cas:aProperty", "cas:aSourceLink", "cas:aTargetLink" ], + "description": "Type of configurable item: property value, source link, or target link" + } }, "additionalProperties": false - }, - "pig:revision": { + }, + "@value": { "type": "string", - "description": "Revision identifier for version control" - }, - "pig:priorRevision": { - "type": "array", - "description": "Array of prior revision identifiers", - "items": { - "type": "string" - } - }, - "dcterms:modified": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 timestamp of last modification" - }, - "dcterms:creator": { - "type": "string", - "description": "Creator/author of this relationship instance" - }, - "dcterms:title": { - "type": "array", - "description": "Multi-language titles", - "minItems": 1, - "items": { - "$ref": "#/$defs/languageValue" - } + "description": "Direct property value (for aProperty)" + }, + "@id": { + "$ref": "#/$defs/idString", + "description": "Reference to enumeration value or linked entity/relationship" + } }, - "dcterms:description": { - "type": "array", - "description": "Multi-language descriptions", - "minItems": 1, - "items": { - "$ref": "#/$defs/languageValue" - } - } - }, - "patternProperties": { - "^(?!pig:itemType|pig:revision|pig:priorRevision|@id|@type|dcterms:modified|dcterms:creator|dcterms:title|dcterms:description)([A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$": { - "type": "array", - "description": "Configurable properties and links with namespaced keys", - "items": { + "required": [ "cas:itemType" ], + "oneOf": [ + { + "type": "object", + "description": "aProperty with direct value", + "properties": { + "cas:itemType": { "type": "object", "properties": { - "pig:itemType": { - "type": "object", - "required": [ "@id" ], - "properties": { - "@id": { - "type": "string", - "enum": [ "pig:aProperty", "pig:aSourceLink", "pig:aTargetLink" ], - "description": "Type of configurable item: property value, source link, or target link" - } - }, - "additionalProperties": false - }, - "@value": { - "type": "string", - "description": "Direct property value (for aProperty)" - }, - "@id": { - "$ref": "#/$defs/idString", - "description": "Reference to enumeration value or linked entity/relationship" - } - }, - "required": [ "pig:itemType" ], - "oneOf": [ - { - "type": "object", - "description": "aProperty with direct value", - "properties": { - "pig:itemType": { - "type": "object", - "properties": { - "@id": { - "const": "pig:aProperty" - } - } - } - }, - "required": [ "@value" ], - "not": { - "required": [ "@id" ] - } - }, - { - "type": "object", - "description": "aProperty with enumeration reference", - "properties": { - "pig:itemType": { - "type": "object", - "properties": { - "@id": { - "const": "pig:aProperty" - } - } - } - }, - "required": [ "@id" ], - "not": { - "required": [ "@value" ] - } - }, - { - "type": "object", - "description": "aSourceLink or aTargetLink to another entity or relationship", - "properties": { - "pig:itemType": { - "type": "object", - "properties": { - "@id": { - "enum": [ "pig:aSourceLink", "pig:aTargetLink" ] - } - } - } - }, - "required": [ "@id" ], - "not": { - "required": [ "@value" ] - } - } - ], - "additionalProperties": false + "@id": { + "const": "cas:aProperty" + } + } + } + }, + "required": [ "@value" ], + "not": { + "required": [ "@id" ] } - } - }, - "required": [ - "@id", - "pig:itemType", - "@type", - "dcterms:modified" - ], - "additionalProperties": false, - "$defs": { - "idString": { - "type": "string", - "pattern": "^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$", - "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" - }, - "languageValue": { + }, + { "type": "object", - "required": [ "@value" ], + "description": "aSourceLink to another entity or relationship, resp. aTargetLink to an enumeration, entity or relationship", "properties": { - "@value": { - "type": "string", - "minLength": 1, - "description": "The actual text content" - }, - "@language": { - "type": "string", - "pattern": "^[a-z]{2}(-[A-Z]{2})?$", - "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" + "cas:itemType": { + "type": "object", + "properties": { + "@id": { + "enum": [ "cas:aSourceLink", "cas:aTargetLink" ] + } } + } }, - "additionalProperties": false, - "description": "Multi-language text value with optional language tag" + "required": [ "@id" ], + "not": { + "required": [ "@value" ] + } + } + ], + "additionalProperties": false + } + } + }, + "required": [ + "@id", + "@type", + "cas:itemType", + "dcterms:modified" + ], + "additionalProperties": false, + "$defs": { + "idString": { + "type": "string", + "pattern": "^(?:[A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$", + "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" + }, + "languageValue": { + "type": "object", + "required": [ "@value" ], + "properties": { + "@value": { + "type": "string", + "minLength": 1, + "description": "The actual text content" + }, + "@language": { + "type": "string", + "pattern": "^[a-z]{2}(-[A-Z]{2})?$", + "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" } + }, + "additionalProperties": false, + "description": "Multi-language text value with optional language tag" } + } } diff --git a/public/assets/jsonld/anEntity.json b/public/assets/jsonld/anEntity.json index f06a62e..27a49ca 100644 --- a/public/assets/jsonld/anEntity.json +++ b/public/assets/jsonld/anEntity.json @@ -1,205 +1,188 @@ { - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "http://product-information-graph.org/schema/2026-02-18/jsonld/anEntity.json", - "title": "PIG AnEntity JSON-LD Schema", - "description": "Validates entity instances with actual property values and target link references. Includes mandatory metadata: @type (reference to Entity class), pig:revision, dcterms:modified timestamp, optional pig:priorRevision and dcterms:creator. Properties can have direct values (@value) or reference enumeration values (@id) as defined by its class. Target links reference other entity or relationship instances. Must have either dcterms:title or dcterms:description (or both) to convey meaning.", - "type": "object", - "properties": { + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "http://product-information-graph.org/schema/2026-05-08/jsonld/anEntity.json", + "title": "CASCaRA AnEntity Schema for JSON-LD", + "description": "Validates entity instances with actual property values and target link references. Includes mandatory metadata: @type (reference to Entity class), cas:revision, dcterms:modified timestamp, optional cas:priorRevision and dcterms:creator. Properties can have direct values (@value) or reference enumeration values (@id) as defined by its class. Target links reference other entity or relationship instances. Must have either dcterms:title or dcterms:description (or both) to convey meaning.", + "type": "object", + "properties": { + "@id": { + "$ref": "#/$defs/idString" + }, + "@type": { + "$ref": "#/$defs/idString", + "description": "Reference to the Entity class this instance belongs to" + }, + "cas:itemType": { + "type": "object", + "required": [ "@id" ], + "properties": { "@id": { - "$ref": "#/$defs/idString" - }, - "@type": { - "$ref": "#/$defs/idString", - "description": "Reference to the Entity class this instance belongs to" - }, - "pig:itemType": { + "type": "string", + "enum": [ "cas:anEntity" ], + "description": "The CASCaRA metamodel item type for cas:anEntity" + } + }, + "additionalProperties": false + }, + "cas:revision": { + "type": "string", + "description": "Revision identifier for version control" + }, + "cas:priorRevision": { + "type": "array", + "description": "Array of prior revision identifiers", + "maxItems": 2, + "items": { + "type": "string" + } + }, + "dcterms:modified": { + "type": "string", + "format": "date-time", + "description": "ISO 8601 timestamp of last modification" + }, + "dcterms:creator": { + "type": "string", + "description": "Creator/author of this entity instance" + }, + "dcterms:title": { + "type": "array", + "description": "Multi-language titles", + "items": { + "$ref": "#/$defs/languageValue" + } + }, + "dcterms:description": { + "type": "array", + "description": "Multi-language descriptions", + "items": { + "$ref": "#/$defs/languageValue" + } + } + }, + "patternProperties": { + "^(?!cas:itemType|cas:revision|cas:priorRevision|@id|@type|dcterms:modified|dcterms:creator|dcterms:title|dcterms:description)([A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$": { + "type": "array", + "description": "Configurable properties and links with namespaced keys", + "items": { + "type": "object", + "properties": { + "cas:itemType": { "type": "object", "required": [ "@id" ], "properties": { - "@id": { - "type": "string", - "enum": [ "pig:anEntity" ], - "description": "The PigItemType for pig:anEntity" - } + "@id": { + "type": "string", + "enum": [ "cas:aProperty", "cas:aTargetLink" ], + "description": "Type of configurable item: property value or target link" + } }, "additionalProperties": false - }, - "pig:revision": { - "type": "string", - "description": "Revision identifier for version control" - }, - "pig:priorRevision": { - "type": "array", - "description": "Array of prior revision identifiers", - "items": { - "type": "string" - } - }, - "dcterms:modified": { - "type": "string", - "format": "date-time", - "description": "ISO 8601 timestamp of last modification" - }, - "dcterms:creator": { + }, + "@value": { "type": "string", - "description": "Creator/author of this entity instance" - }, - "dcterms:title": { - "type": "array", - "description": "Multi-language titles", - "items": { - "$ref": "#/$defs/languageValue" - } + "description": "Direct property value (for aProperty)" + }, + "@id": { + "$ref": "#/$defs/idString", + "description": "Reference to enumeration value or linked entity/relationship" + } }, - "dcterms:description": { - "type": "array", - "description": "Multi-language descriptions", - "items": { - "$ref": "#/$defs/languageValue" - } - } - }, - "patternProperties": { - "^(?!pig:itemType|pig:revision|pig:priorRevision|@id|@type|dcterms:modified|dcterms:creator|dcterms:title|dcterms:description)([A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$": { - "type": "array", - "description": "Configurable properties and links with namespaced keys", - "items": { + "required": [ "cas:itemType" ], + "oneOf": [ + { + "type": "object", + "description": "aProperty with direct value", + "properties": { + "cas:itemType": { "type": "object", "properties": { - "pig:itemType": { - "type": "object", - "required": [ "@id" ], - "properties": { - "@id": { - "type": "string", - "enum": [ "pig:aProperty", "pig:aTargetLink" ], - "description": "Type of configurable item: property value or target link" - } - }, - "additionalProperties": false - }, - "@value": { - "type": "string", - "description": "Direct property value (for aProperty)" - }, - "@id": { - "$ref": "#/$defs/idString", - "description": "Reference ID for enumeration value or linked entity" - } - }, - "required": [ "pig:itemType" ], - "oneOf": [ - { - "type": "object", - "description": "aProperty with direct value", - "properties": { - "pig:itemType": { - "type": "object", - "properties": { - "@id": { - "const": "pig:aProperty" - } - } - } - }, - "required": [ "@value" ], - "not": { - "required": [ "@id" ] - } - }, - { - "type": "object", - "description": "aProperty with enumeration reference", - "properties": { - "pig:itemType": { - "type": "object", - "properties": { - "@id": { - "const": "pig:aProperty" - } - } - } - }, - "required": [ "@id" ], - "not": { - "required": [ "@value" ] - } - }, - { - "type": "object", - "description": "aTargetLink to another entity or relationship", - "properties": { - "pig:itemType": { - "type": "object", - "properties": { - "@id": { - "const": "pig:aTargetLink" - } - } - } - }, - "required": [ "@id" ], - "not": { - "required": [ "@value" ] - } - } - ], - "additionalProperties": false - } - } - }, - "required": [ - "@id", - "pig:itemType", - "@type", - "dcterms:modified" - ], - "anyOf": [ - { - "required": [ "dcterms:title" ], - "properties": { - "dcterms:title": { - "type": "array", - "minItems": 1 + "@id": { + "const": "cas:aProperty" + } } + } }, - "description": "Must have at least one title" - }, - { - "required": [ "dcterms:description" ], + "required": [ "@value" ], + "not": { + "required": [ "@id" ] + } + }, + { + "type": "object", + "description": "aTargetLink to an enumeration, entity or relationship", "properties": { - "dcterms:description": { - "type": "array", - "minItems": 1 + "cas:itemType": { + "type": "object", + "properties": { + "@id": { + "const": "cas:aTargetLink" + } } + } }, - "description": "Must have at least one description" + "required": [ "@id" ], + "not": { + "required": [ "@value" ] + } + } + ], + "additionalProperties": false + } + } + }, + "required": [ + "@id", + "@type", + "cas:itemType", + "dcterms:modified" + ], + "anyOf": [ + { + "required": [ "dcterms:title" ], + "properties": { + "dcterms:title": { + "type": "array", + "minItems": 1 } - ], - "additionalProperties": false, - "$defs": { - "idString": { - "type": "string", - "pattern": "^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$", - "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" + }, + "description": "Must have at least one title" + }, + { + "required": [ "dcterms:description" ], + "properties": { + "dcterms:description": { + "type": "array", + "minItems": 1 + } + }, + "description": "Must have at least one description" + } + ], + "additionalProperties": false, + "$defs": { + "idString": { + "type": "string", + "pattern": "^(?:[A-Za-z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$", + "description": "A valid ID string: either a namespaced identifier (prefix:name) or a URL" + }, + "languageValue": { + "type": "object", + "required": [ "@value" ], + "properties": { + "@value": { + "type": "string", + "minLength": 1, + "description": "The actual text content" }, - "languageValue": { - "type": "object", - "required": [ "@value" ], - "properties": { - "@value": { - "type": "string", - "minLength": 1, - "description": "The actual text content" - }, - "@language": { - "type": "string", - "pattern": "^[a-z]{2}(-[A-Z]{2})?$", - "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" - } - }, - "additionalProperties": false, - "description": "Multi-language text value with optional language tag" + "@language": { + "type": "string", + "pattern": "^[a-z]{2}(-[A-Z]{2})?$", + "description": "IETF language tag (e.g., 'en', 'de', 'en-US')" } + }, + "additionalProperties": false, + "description": "Multi-language text value with optional language tag" } + } } diff --git a/public/assets/jsonld/index.html b/public/assets/jsonld/index.html index f3d5a90..c48f8c6 100644 --- a/public/assets/jsonld/index.html +++ b/public/assets/jsonld/index.html @@ -26,57 +26,69 @@

CASCaRA JSON-LD Schemata

Schemata

CASCaRA Metamodel Class Items

These schemata validate the class definitions as derived from the CASCaRA Ontology. - In general, each concept in the ontology results in a class of either Property, Link, Entity, or Relationship. - A class must conform to its respective schema and must have dcterms:title, skos:definition and - optionally dcterms:description properties to convey meaning.

+ In general, each concept in the ontology results in a class of either + Enumeration, Property, Link, Entity or Relationship. + A class must conform to its respective schema and must have the properties + dcterms:title plus none, one or both of skos:definition and + dcterms:description to convey meaning.

  • Property.json

    - Validates Property class definitions that specify attributes for entities and relationships. - May include datatype specifications (string, integer, double, boolean, dateTime, etc.), cardinality constraints - (sh:minCount, sh:maxCount), value constraints (sh:minInclusive, - sh:maxInclusive, sh:maxLength, sh:pattern), enumeration values - (cas-meta:enumeratedValue), default values, measurement units, and support for composed properties. + Validates Property class definitions that specify attributes for entities, relationships and packages. + May include datatype specifications (string, integer, double, boolean, dateTime, etc.), cardinality constraints + (sh:minCount, sh:maxCount), value constraints (sh:minInclusive, + sh:maxInclusive, sh:maxLength, sh:pattern), default value, measurement unit + and support for composed properties.
    → OWL mapping: owl:DatatypeProperty
  • Link.json

    - Validates Link class definitions that specify navigable connections between items. - Defines enumerated endpoint classes (cas-meta:enumeratedEndpoint) which determine which Entity or Relationship classes - can be connected via this link type. Links enable traversal of the information graph and - support bi-directional relationships when paired (e.g., "contains" / "is contained by"). + Validates Link class definitions that specify navigable connections between items. + Defines enumerated endpoint classes (cas:enumeratedEndpoint) which determine which Entity or Relationship classes + can be connected via this link type. Links enable traversal of the information graph and + support bi-directional relationships when paired (e.g., "contains" / "is contained by").
    → OWL mapping: owl:ObjectProperty
  • Entity.json

    - Validates Entity class definitions for individual information objects. - Configures which properties (cas-meta:enumeratedProperty) and which outgoing - links are allowed (cas-meta:enumeratedTargetLink). - Entities classify primary information objects such as Requirements, Components and Diagrams in a systems engineering context. - Supports specialization hierarchies via cas-meta:specializes and optional visual representation - via cas-meta:icon. + Validates Entity class definitions for individual information objects and organizers including packages. + Configures which properties (cas:enumeratedProperty) and which outgoing + links are allowed (cas:enumeratedTargetLink). + Entities classify primary information objects such as Requirements, Components and Diagrams in a systems engineering context. + Supports specialization hierarchies via cas:specializes and optional visual representation + via cas:icon.
    → OWL mapping: owl:Class
  • Relationship.json

    - Validates Relationship class definitions for directed connections between entities. - Configures which properties (cas-meta:enumeratedProperty), source links - (cas-meta:enumeratedSourceLink) and target links (cas-meta:enumeratedTargetLink) are allowed. - Relationships are reified connections that can carry their own properties, enabling rich traceability and - dependency modeling (e.g., "Refinement" relationships with rationale and traceability status). - Relationships classify meaningful statements including a subject and an object, where both the subject and the object is an entity or relationship instance. + Validates Relationship class definitions for directed connections between entities. + Configures which properties (cas:enumeratedProperty), source links + (cas:enumeratedSourceLink) and target links (cas:enumeratedTargetLink) are allowed. + Relationships are reified connections that can carry their own properties, enabling rich traceability and + dependency modeling (e.g., "refines" relationships with rationale and traceability status). + Relationships classify meaningful statements including a subject and an object, + where both the subject and the object is an entity or relationship instance. Supports specialization hierarchies and optional icons.
    → OWL mapping: owl:Class with constrained owl:ObjectProperty endpoints
  • +
  • +

    Enumeration.json

    +
    + Validates Enumeration class definitions for enumerated values of a given concept. + Defines the datatype of the enumeration (string, integer, double, boolean), + enumeration values (cas:enumeratedValue) and optionally a unit of measurement. +
    +
    → OWL mapping: owl:Class with every enumerated value as individual
    +

CASCaRA Metamodel Instance Items

@@ -89,10 +101,11 @@

CASCaRA Metamodel Instance Items

anEntity.json

Validates entity instances with actual property values and target link references. - Includes mandatory metadata: @type (reference to Entity class), cas-meta:revision, - dcterms:modified timestamp, optional cas-meta:priorRevision and + Includes mandatory metadata: @type (reference to Entity class), cas:revision, + dcterms:modified timestamp, optional cas:priorRevision and dcterms:creator. Properties can have direct values (@value) or - reference enumeration values (@id) as defined by its class. Target links reference other entity or relationship instances. + reference enumeration values (@id) as defined by its class. + Target links reference other entity or relationship instances. Must have either dcterms:title or dcterms:description (or both) to convey meaning.
→ OWL mapping: owl:NamedIndividual
@@ -100,13 +113,15 @@

CASCaRA Metamodel Instance Items

  • aRelationship.json

    - Validates relationship instances representing directed, reified connections between items (i.e. entity or relationship instances). - Similar metadata to entities, but additionally requires both source links (cas-meta:aSourceLink) - and target links (cas-meta:aTargetLink) conforming to the class definition. + Validates relationship instances representing directed, + reified connections between items (i.e. entity or relationship instances). + Similar metadata to entities, but additionally requires both source links (cas:aSourceLink) + and target links (cas:aTargetLink) conforming to the class definition. Source and target links reference entity or relationship instances. Properties can carry contextual information about the relationship (e.g., traceability status, rationale, coverage analysis). Reification enables relationships to be first-class items with their own lifecycle and properties. - Must have a dcterms:title and optionally a dcterms:description to convey meaning. + May have a dcterms:title and/or a dcterms:description to convey meaning; + otherwise the title and definition of its class applies.
    → OWL mapping: owl:NamedIndividual (reified predicate)
  • @@ -120,11 +135,16 @@

    CASCaRA Metamodel Package Item

  • aPackage.json

    - Validates complete JSON-LD package documents with @context (namespace and vocabulary definitions) - as well as @graph (array of CASCaRA items). The graph contains a mix of classes (Property, Link, Entity, Relationship) - and instances (anEntity, aRelationship). Package-level metadata includes optional + Validates complete JSON-LD packages with @context (namespace and vocabulary definitions) + as well as @graph (array of CASCaRA items). + Package-level metadata includes optional dcterms:modified, dcterms:creator, dcterms:title, and - dcterms:description. Validates each item against its corresponding schema based on cas-meta:itemType. + dcterms:description. + A package may have configurable properties and target links as defined in its class, which + must be a subclass of cas:Entity. + The graph contains a mix of classes (cas:Property, cas:Link, cas:Entity, cas:Relationship, cas:Enumeration) + and instances (cas:anEntity, cas:aRelationship). + Validates each item in @graph against its corresponding schema based on cas:itemType.
    → OWL mapping: Self-contained RDF graph with ontology and instance data
  • diff --git a/public/assets/xml/cas-package.xsd b/public/assets/xml/cas-package.xsd new file mode 100644 index 0000000..4e4bf77 --- /dev/null +++ b/public/assets/xml/cas-package.xsd @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/xslt/FMI-to-CAS.sef.json b/public/assets/xslt/FMI-to-CAS.sef.json new file mode 100644 index 0000000..0242256 --- /dev/null +++ b/public/assets/xslt/FMI-to-CAS.sef.json @@ -0,0 +1 @@ +{"N":"package","version":"20","packageVersion":"1","saxonVersion":"SaxonJS 2.7","target":"JS","targetVersion":"2","name":"TOP-LEVEL","relocatable":"false","buildDateTime":"2026-06-12T14:30:49.727+02:00","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","C":[{"N":"co","binds":"","id":"0","uniform":"true","C":[{"N":"template","flags":"os","module":"FMI-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","name":"Q{}emit-property-class","line":"107","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}id","slot":"0","sType":"* ","as":"* ","flags":"","line":"108","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}title","slot":"1","sType":"* ","as":"* ","flags":"","line":"109","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"param","name":"Q{}datatype","slot":"2","sType":"* ","as":"* ","flags":"","line":"110","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"2","sType":"* "}]},{"N":"param","name":"Q{}definition","slot":"3","sType":"* ","as":"* ","flags":"","line":"111","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"3","sType":"* "}]},{"N":"elem","name":"cas:Property","sType":"1NE nQ{http://product-information-graph.org}Property ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"112","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:DatatypeProperty"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}id","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"112"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"113","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Property"}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"114","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"115","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}title","slot":"1","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"115"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"117","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"117","C":[{"N":"varRef","name":"Q{}definition","slot":"3"},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}definition","slot":"3"}]}]}]}]}]}]}]}]},{"N":"elem","name":"skos:definition","sType":"1NE nQ{http://www.w3.org/2004/02/skos/core#}definition ","nsuri":"http://www.w3.org/2004/02/skos/core#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"118","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"119","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}definition","slot":"3","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"119"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"sh:datatype","sType":"1NE nQ{http://www.w3.org/ns/shacl#}datatype ","nsuri":"http://www.w3.org/ns/shacl#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"122","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"123","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}datatype","slot":"2","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"123"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"co","id":"1","uniform":"true","binds":"0 4 5","C":[{"N":"template","flags":"os","module":"FMI-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","name":"Q{}emit-ontology","line":"128","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"130","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:fmiVersion","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"131"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMI version","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"132"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"133"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"The version of the FMI standard the FMU conforms to.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"134"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"136","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:guid","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"137"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"GUID / instantiation token","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"138"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"139"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Fingerprint (FMI 2.0 guid / FMI 3.0 instantiationToken) verifying that the model description and the binary match.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"140"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"142","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:modelName","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"143"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"model name","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"144"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"145"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"147","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:author","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"148"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"author","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"149"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"150"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"152","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:version","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"153"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMU version","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"154"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"155"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"157","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:copyright","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"158"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"copyright","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"159"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"160"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"162","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:license","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"163"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"license","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"164"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"165"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"167","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:generationTool","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"168"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"generation tool","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"169"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"170"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"172","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:generationDateAndTime","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"173"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"generation date and time","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"174"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:dateTime","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"175"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"177","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableNamingConvention","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"178"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"variable naming convention","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"179"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"180"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"182","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:numberOfEventIndicators","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"183"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"number of event indicators","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"184"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"185"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"189","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:valueReference","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"190"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"value reference","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"191"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"192"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Handle used to identify the variable value in FMI function calls.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"193"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"195","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:causality","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"196"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"causality","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"197"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"198"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"parameter, calculatedParameter, input, output, local, independent or structuralParameter.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"199"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"201","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variability","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"202"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"variability","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"203"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"204"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"constant, fixed, tunable, discrete or continuous.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"205"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"207","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:initial","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"208"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"initial","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"209"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"210"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"exact, approx or calculated.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"211"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"213","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dataType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"214"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"data type","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"215"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"216"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMI base data type, e.g. Real/Integer/Boolean/String/Enumeration (FMI 2.0) or Float64/Int32/... (FMI 3.0).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"217"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"219","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:start","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"220"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"start value","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"221"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"222"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"224","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:declaredType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"225"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"declared type","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"226"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"227"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"229","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"230"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"231"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"232"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"234","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:displayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"235"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"display unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"236"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"237"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"239","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:quantity","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"240"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"quantity","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"241"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"242"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"244","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:min","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"245"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"minimum","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"246"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"247"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"249","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:max","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"250"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"maximum","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"251"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"252"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"254","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:nominal","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"255"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"nominal","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"256"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"257"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"259","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:derivative","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"260"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"derivative of (index)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"261"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"262"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"266","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canHandleMultipleSetPerTimeInstant","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"267"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"can handle multiple set per time instant","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"268"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"269"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"ModelExchange inputs only: if false, the input may not appear in an algebraic loop.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"270"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"272","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:reinit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"273"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"reinit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"274"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"275"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Continuous-time state (ModelExchange) that can be reinitialized at an event.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"276"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"278","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:relativeQuantity","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"279"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"relative quantity","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"280"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"281"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"If true, the displayUnit offset is ignored when converting values.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"282"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"284","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:unbounded","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"285"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"unbounded","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"286"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"287"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Real variable whose value can grow without bound (e.g. crank angle).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"288"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"290","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:clocks","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"291"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"clocks","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"292"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"293"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMI 3.0: space-separated value references of the clocks this variable is associated with.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"294"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"296","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:intermediateUpdate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"297"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"intermediate update","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"298"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"299"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMI 3.0: variable may be accessed during intermediate update.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"300"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"302","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:previous","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"303"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"previous (value reference)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"304"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"305"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMI 3.0: value reference of the variable holding the previous value of a clocked variable.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"306"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"308","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:mimeType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"309"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"MIME type","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"310"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"311"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMI 3.0 Binary: MIME type of the binary data.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"312"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"314","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:maxSize","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"315"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"max size","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"316"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"317"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMI 3.0 Binary: maximum size in bytes.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"318"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"321","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canBeDeactivated","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"322"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"can be deactivated","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"323"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"324"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"326","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:priority","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"327"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"priority","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"328"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"329"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"331","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:intervalVariability","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"332"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"interval variability","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"333"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"334"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"336","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:intervalDecimal","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"337"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"interval (decimal)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"338"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"339"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"341","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:shiftDecimal","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"342"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"shift (decimal)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"343"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"344"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"346","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:supportsFraction","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"347"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"supports fraction","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"348"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"349"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"351","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:resolution","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"352"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"resolution","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"353"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"354"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"356","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:intervalCounter","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"357"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"interval counter","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"358"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"359"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"361","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:shiftCounter","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"362"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"shift counter","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"363"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"364"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"368","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:exp_kg","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"369"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"SI exponent: kg (mass)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"370"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"371"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Exponent of the SI base unit kilogram in this unit.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"372"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"374","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:exp_m","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"375"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"SI exponent: m (length)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"376"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"377"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"379","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:exp_s","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"380"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"SI exponent: s (time)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"381"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"382"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"384","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:exp_A","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"385"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"SI exponent: A (electric current)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"386"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"387"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"389","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:exp_K","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"390"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"SI exponent: K (temperature)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"391"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"392"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"394","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:exp_mol","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"395"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"SI exponent: mol (amount of substance)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"396"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"397"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"399","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:exp_cd","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"400"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"SI exponent: cd (luminous intensity)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"401"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"402"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"404","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:exp_rad","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"405"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"SI exponent: rad (angle)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"406"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"407"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"409","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:factor","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"410"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"factor","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"411"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"412"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"414","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:offset","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"415"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"offset","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"416"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"417"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"419","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:inverse","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"420"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"inverse","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"421"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"422"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"If true, the display value is computed as factor/value + offset (FMI 3.0 inverse display unit).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"423"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"427","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:baseType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"428"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"base type","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"429"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"430"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"434","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:interfaceType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"435"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"interface type","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"436"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"437"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"ModelExchange, CoSimulation or ScheduledExecution.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"438"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"440","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:modelIdentifier","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"441"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"model identifier","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"442"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"443"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"445","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:needsExecutionTool","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"446"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"needs execution tool","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"447"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"448"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"450","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canGetAndSetFMUstate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"451"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"can get and set FMU state","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"452"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"453"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"455","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canSerializeFMUstate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"456"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"can serialize FMU state","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"457"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"458"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"460","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesDirectionalDerivative","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"461"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"provides directional derivatives","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"462"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"463"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"465","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canHandleVariableCommunicationStepSize","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"466"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"can handle variable communication step size","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"467"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"468"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"470","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:maxOutputDerivativeOrder","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"471"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"max output derivative order","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"472"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"473"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"477","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:completedIntegratorStepNotNeeded","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"478"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"completed integrator step not needed","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"479"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"480"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"482","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canBeInstantiatedOnlyOncePerProcess","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"483"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"can be instantiated only once per process","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"484"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"485"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"487","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canNotUseMemoryManagementFunctions","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"488"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"cannot use memory management functions","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"489"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"490"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"492","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canInterpolateInputs","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"493"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"can interpolate inputs","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"494"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"495"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"497","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canRunAsynchronuously","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"498"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"can run asynchronously","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"499"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"500"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMI 2.0 Co-Simulation capability flag (spelled canRunAsynchronuously in the FMI 2.0 schema).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"501"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"503","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesAdjointDerivatives","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"504"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"provides adjoint derivatives","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"505"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"506"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"508","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesPerElementDependencies","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"509"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"provides per-element dependencies","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"510"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"511"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"513","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:needsCompletedIntegratorStep","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"514"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"needs completed integrator step","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"515"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"516"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"518","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesEvaluateDiscreteStates","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"519"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"provides evaluate discrete states","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"520"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"521"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"523","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:fixedInternalStepSize","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"524"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"fixed internal step size","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"525"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"526"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"528","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:recommendedIntermediateInputSmoothness","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"529"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"recommended intermediate input smoothness","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"530"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"531"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"533","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesIntermediateUpdate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"534"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"provides intermediate update","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"535"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"536"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"538","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:mightReturnEarlyFromDoStep","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"539"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"might return early from doStep","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"540"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"541"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"543","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canReturnEarlyAfterIntermediateUpdate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"544"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"can return early after intermediate update","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"545"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"546"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"548","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasEventMode","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"549"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has event mode","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"550"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:boolean","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"551"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"555","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:startTime","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"556"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"start time","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"557"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"558"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"560","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:stopTime","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"561"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"stop time","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"562"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"563"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"565","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:tolerance","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"566"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"tolerance","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"567"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"568"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"570","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:stepSize","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"571"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"step size","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"572"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:double","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"573"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"577","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dependencyKind","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"578"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"dependency kind","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"579"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"580"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"dependent, constant, fixed, tunable or discrete.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"581"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"583","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:structureKind","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"584"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"model structure kind","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"585"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"586"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Which ModelStructure list the dependency was declared in (Output, Derivative, InitialUnknown, ...).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"587"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"589","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dependencyScope","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"590"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"dependency scope","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"591"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"592"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Single summary of how this variable declares its ModelStructure dependencies (precedence none > explicit > allKnowns): none = at least one role declares dependencies=\"\" (depends on nothing); explicit = it only declares non-empty dependency lists, captured as fmi:dependsOn relationships; allKnowns = no dependencies attribute, i.e. depends on all knowns by default.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"593"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"597","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:rank","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"598"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"rank","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"599"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"600"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Number of array dimensions of the variable (0 = scalar).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"601"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"603","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dimensionStart","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"604"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"dimension start (size)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"605"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:integer","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"606"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Fixed size of an array dimension (Dimension/@start).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"607"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-property-class","line":"609","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:startValue","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"610"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"start value","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"611"}]},{"N":"withParam","name":"Q{}datatype","slot":"0","sType":"1AS","C":[{"N":"str","val":"xs:string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"612"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"A start value declared via a Start child element (FMI 3.0 String / Binary variables, one per array element).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"613"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-ontology-classes","line":"617"},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-enumeration-classes","line":"619"}]}]}]},{"N":"co","binds":"","id":"2","uniform":"true","C":[{"N":"template","flags":"os","module":"FMI-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","name":"Q{}emit-entity-class","line":"625","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}id","slot":"0","sType":"* ","as":"* ","flags":"","line":"626","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}title","slot":"1","sType":"* ","as":"* ","flags":"","line":"627","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"param","name":"Q{}definition","slot":"2","sType":"* ","as":"* ","flags":"","line":"628","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"2","sType":"* "}]},{"N":"elem","name":"cas:Entity","sType":"1NE nQ{http://product-information-graph.org}Entity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"629","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:Class"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}id","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"629"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"630","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Entity"}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"631","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"632","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}title","slot":"1","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"632"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"skos:definition","sType":"1NE nQ{http://www.w3.org/2004/02/skos/core#}definition ","nsuri":"http://www.w3.org/2004/02/skos/core#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"634","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"635","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}definition","slot":"2","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"635"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"3","uniform":"true","C":[{"N":"template","flags":"os","module":"FMI-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","name":"Q{}emit-link-class","line":"640","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}id","slot":"0","sType":"* ","as":"* ","flags":"","line":"641","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}title","slot":"1","sType":"* ","as":"* ","flags":"","line":"642","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"param","name":"Q{}endpoints","slot":"2","sType":"* ","as":"* ","flags":"","line":"643","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"2","sType":"* "}]},{"N":"elem","name":"cas:Link","sType":"1NE nQ{http://product-information-graph.org}Link ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"644","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:ObjectProperty"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}id","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"644"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"645","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Link"}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"646","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"647","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}title","slot":"1","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"647"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}enumeratedEndpoint ","line":"649","C":[{"N":"fn","name":"tokenize","sType":"*AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"649","C":[{"N":"treat","as":"AS","diag":"0|0||tokenize","C":[{"N":"check","card":"?","diag":"0|0||tokenize","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||tokenize","C":[{"N":"check","card":"?","diag":"0|0||tokenize","C":[{"N":"data","diag":"0|0||tokenize","C":[{"N":"varRef","name":"Q{}endpoints","slot":"2"}]}]}]}]}]},{"N":"str","val":"\\s+"}]},{"N":"elem","name":"cas:enumeratedEndpoint","sType":"1NE nQ{http://product-information-graph.org}enumeratedEndpoint ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"650","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"651","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"dot","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"651"},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"co","id":"4","uniform":"true","binds":"2 3","C":[{"N":"template","flags":"os","module":"FMI-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","name":"Q{}emit-ontology-classes","line":"657","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"659","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:FMU","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"660"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"FMU","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"661"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"A Functional Mock-up Unit described by an FMI modelDescription.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"662"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"664","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Variable","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"665"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Variable","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"666"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"A model variable (FMI 2.0 ScalarVariable or FMI 3.0 typed variable).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"667"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"669","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"670"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"671"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"A unit definition with respect to the SI base units.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"672"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"674","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:DisplayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"675"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Display unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"676"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"A human-readable display variant of a Unit, related to it by factor, offset and (FMI 3.0) inverse.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"677"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"679","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:TypeDefinition","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"680"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Type definition","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"681"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"A reusable simple type providing default attributes for variables.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"682"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"684","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Interface","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"685"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Interface","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"686"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"A supported FMI interface type: ModelExchange, CoSimulation or ScheduledExecution.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"687"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"689","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:LogCategory","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"690"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Log category","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"691"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"A logging category supported by the FMU.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"692"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"694","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:DefaultExperiment","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"695"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Default experiment","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"696"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"Default simulation settings recommended by the FMU.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"697"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"699","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Dimension","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"700"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Dimension","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"701"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"One array dimension of a variable (FMI 3.0), sized either by a fixed value or by another variable.","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"702"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"704","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:VariableAlias","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"705"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Variable alias","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"706"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"An alternative name (and optional display unit) for a variable (FMI 3.0 Alias).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"707"}]}]},{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}emit-entity-class","line":"709","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:StartValue","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"710"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"Start value","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"711"}]},{"N":"withParam","name":"Q{}definition","slot":"0","sType":"1AS","C":[{"N":"str","val":"A start value carried by a Start child element (FMI 3.0 String / Binary variables, one per array element).","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"712"}]}]},{"N":"elem","name":"cas:Relationship","sType":"1NE nQ{http://product-information-graph.org}Relationship ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"716","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:Class"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:dependsOn"}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"717","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Relationship"}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"718","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"depends on"}]}]},{"N":"elem","name":"skos:definition","sType":"1NE nQ{http://www.w3.org/2004/02/skos/core#}definition ","nsuri":"http://www.w3.org/2004/02/skos/core#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"719","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"A functional dependency declared in ModelStructure: the source variable depends on the target variable."}]}]},{"N":"elem","name":"cas:enumeratedProperty","sType":"1NE nQ{http://product-information-graph.org}enumeratedProperty ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"720","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"fmi:dependencyKind"}]}]},{"N":"elem","name":"cas:enumeratedProperty","sType":"1NE nQ{http://product-information-graph.org}enumeratedProperty ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"721","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"fmi:structureKind"}]}]}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"725","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dependsOn-toSource","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"726"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"depends on (source)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"727"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Variable","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"728"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"730","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dependsOn-toTarget","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"731"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"depends on (target)","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"732"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Variable","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"733"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"735","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasVariable","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"736"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has variable","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"737"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Variable","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"738"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"740","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"741"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"742"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"743"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"745","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasTypeDefinition","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"746"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has type definition","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"747"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:TypeDefinition","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"748"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"750","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasInterface","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"751"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has interface","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"752"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Interface","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"753"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"755","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasLogCategory","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"756"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has log category","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"757"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:LogCategory","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"758"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"760","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasDefaultExperiment","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"761"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has default experiment","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"762"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:DefaultExperiment","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"763"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"765","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableHasUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"766"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"variable has unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"767"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"768"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"770","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableHasType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"771"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"variable has type definition","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"772"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:TypeDefinition","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"773"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"775","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasDisplayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"776"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has display unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"777"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:DisplayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"778"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"780","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableHasDisplayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"781"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"variable has display unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"782"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:DisplayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"783"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"785","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasDimension","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"786"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has dimension","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"787"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Dimension","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"788"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"790","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dimensionSizedBy","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"791"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"dimension sized by","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"792"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:Variable","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"793"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"795","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasAlias","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"796"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has alias","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"797"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:VariableAlias","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"798"}]}]},{"N":"callT","bSlot":"1","sType":"* ","name":"Q{}emit-link-class","line":"800","C":[{"N":"withParam","name":"Q{}id","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasStartValue","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"801"}]},{"N":"withParam","name":"Q{}title","slot":"0","sType":"1AS","C":[{"N":"str","val":"has start value","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"802"}]},{"N":"withParam","name":"Q{}endpoints","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:StartValue","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"803"}]}]}]}]}]},{"N":"co","id":"5","uniform":"true","binds":"15","C":[{"N":"template","flags":"os","module":"FMI-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","name":"Q{}emit-enumeration-classes","line":"814","expand-text":"false","sType":"*NE ","C":[{"N":"forEach","sType":"*NE ","role":"body","line":"815","C":[{"N":"gVarRef","name":"Q{}enumTypes","bSlot":"0","sType":"* ","role":"select","line":"815"},{"N":"let","var":"Q{}enumPos","slot":"0","sType":"*NE ","line":"816","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"816"},{"N":"let","var":"Q{}items","slot":"1","sType":"*NE ","line":"819","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"819","C":[{"N":"choose","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"compareToString","op":"eq","val":"EnumerationType","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"treat","as":"N","diag":"0|0||local-name","C":[{"N":"check","card":"?","diag":"0|0||local-name","C":[{"N":"dot"}]}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Item","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"true"},{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Enumeration","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Item","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]},{"N":"sequence","sType":"?NE ","C":[{"N":"elem","name":"cas:Enumeration","sType":"1NE nQ{http://product-information-graph.org}Enumeration ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"820","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"cas:hasClass","nsuri":"http://product-information-graph.org","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:Class"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"fmi:enum-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}enumPos","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"820"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"821","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"822","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}name","role":"select","line":"822","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}name","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name","sType":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"824","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"824","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}description"}]}]}]}]}]},{"N":"elem","name":"skos:definition","sType":"1NE nQ{http://www.w3.org/2004/02/skos/core#}definition ","nsuri":"http://www.w3.org/2004/02/skos/core#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"825","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"826","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}description","role":"select","line":"826","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}description","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description","sType":"*NA nQ{}description","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"829","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Enumeration"}]}]},{"N":"forEach","sType":"*NE ","line":"830","C":[{"N":"varRef","name":"Q{}items","slot":"1","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"830"},{"N":"let","var":"Q{}vid","slot":"2","sType":"*NE ","line":"831","C":[{"N":"choose","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"831","C":[{"N":"and","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}value"},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}value"}]}]}]}]}]},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}value"}]}]},{"N":"true"},{"N":"fn","name":"string","C":[{"N":"fn","name":"position"}]}]},{"N":"elem","name":"cas:enumeratedValue","sType":"1NE nQ{http://product-information-graph.org}enumeratedValue ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"832","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"fmi:enum-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}enumPos","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"832"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":"-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}vid","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"832"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"833","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"834","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}name","role":"select","line":"834","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}name","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name","sType":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"elem","name":"cas:Link","sType":"1NE nQ{http://product-information-graph.org}Link ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"839","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:ObjectProperty"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"fmi:hasEnumValue-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}enumPos","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"839"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"840","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Link"}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"841","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"has enumeration value ("}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"843","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}name","role":"select","line":"843","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}name","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name","sType":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]}]},{"N":"elem","name":"cas:enumeratedEndpoint","sType":"1NE nQ{http://product-information-graph.org}enumeratedEndpoint ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"846","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"847","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"847","C":[{"N":"str","val":"fmi:enum-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}enumPos","slot":"0"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"6","uniform":"true","C":[{"N":"template","flags":"os","module":"FMI-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","name":"Q{}emit-prop","line":"856","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}class","slot":"0","sType":"* ","as":"* ","flags":"","line":"857","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}value","slot":"1","sType":"* ","as":"* ","flags":"","line":"858","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"choose","sType":"? ","line":"859","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"859","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}value","slot":"1"}]}]}]}]},{"N":"elem","name":"cas:aProperty","sType":"1NE nQ{http://product-information-graph.org}aProperty ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"860","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}class","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"860"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"elem","name":"value","sType":"1NE nQ{}value ","nsuri":"","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"861","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"862","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}value","slot":"1","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"862"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"co","binds":"","id":"7","uniform":"true","C":[{"N":"template","flags":"os","module":"FMI-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","name":"Q{}emit-target-link","line":"868","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}class","slot":"0","sType":"* ","as":"* ","flags":"","line":"869","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}idRef","slot":"1","sType":"* ","as":"* ","flags":"","line":"870","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"elem","name":"cas:aTargetLink","sType":"1NE nQ{http://product-information-graph.org}aTargetLink ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"871","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}class","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"871"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"elem","name":"idRef","sType":"1NE nQ{}idRef ","nsuri":"","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"872","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"873","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}idRef","slot":"1","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"873"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]},{"N":"co","id":"8","uniform":"true","binds":"20 9 6 12 7 13 16 17 18 19 15","C":[{"N":"template","flags":"os","module":"FMI-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","name":"Q{}emit-instances","line":"881","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"884","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:FMU"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmu"}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"885","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"886","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"886"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"888","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"889","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}modelName","role":"select","line":"889","C":[{"N":"docOrder","sType":"*NA nQ{}modelName","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}modelName"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"891","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"891","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"}]}]},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"}]}]}]}]}]}]}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"892","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"893","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}description","role":"select","line":"893","C":[{"N":"docOrder","sType":"*NA nQ{}description","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"896","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:fmiVersion","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"897"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}fmiVersion","C":[{"N":"docOrder","sType":"*NA nQ{}fmiVersion","role":"select","line":"898","C":[{"N":"docOrder","sType":"*NA nQ{}fmiVersion","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}fmiVersion"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"900","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:guid","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"901"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA u[NA nQ{}guid,NA nQ{}instantiationToken]","C":[{"N":"docOrder","sType":"*NA u[NA nQ{}guid,NA nQ{}instantiationToken]","role":"select","line":"902","C":[{"N":"choose","sType":"*NA u[NA nQ{}guid,NA nQ{}instantiationToken]","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}guid"}]}]},{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}guid"}]}]},{"N":"true"},{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}instantiationToken"}]}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"904","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:modelName","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"905"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}modelName","C":[{"N":"docOrder","sType":"*NA nQ{}modelName","role":"select","line":"906","C":[{"N":"docOrder","sType":"*NA nQ{}modelName","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}modelName"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"908","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:author","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"909"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}author","C":[{"N":"docOrder","sType":"*NA nQ{}author","role":"select","line":"910","C":[{"N":"docOrder","sType":"*NA nQ{}author","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}author"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"912","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:version","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"913"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}version","C":[{"N":"docOrder","sType":"*NA nQ{}version","role":"select","line":"914","C":[{"N":"docOrder","sType":"*NA nQ{}version","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}version"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"916","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:copyright","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"917"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}copyright","C":[{"N":"docOrder","sType":"*NA nQ{}copyright","role":"select","line":"918","C":[{"N":"docOrder","sType":"*NA nQ{}copyright","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}copyright"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"920","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:license","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"921"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}license","C":[{"N":"docOrder","sType":"*NA nQ{}license","role":"select","line":"922","C":[{"N":"docOrder","sType":"*NA nQ{}license","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}license"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"924","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:generationTool","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"925"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}generationTool","C":[{"N":"docOrder","sType":"*NA nQ{}generationTool","role":"select","line":"926","C":[{"N":"docOrder","sType":"*NA nQ{}generationTool","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}generationTool"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"928","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:generationDateAndTime","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"929"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}generationDateAndTime","C":[{"N":"docOrder","sType":"*NA nQ{}generationDateAndTime","role":"select","line":"930","C":[{"N":"docOrder","sType":"*NA nQ{}generationDateAndTime","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}generationDateAndTime"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"932","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableNamingConvention","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"933"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}variableNamingConvention","C":[{"N":"docOrder","sType":"*NA nQ{}variableNamingConvention","role":"select","line":"934","C":[{"N":"docOrder","sType":"*NA nQ{}variableNamingConvention","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}variableNamingConvention"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"936","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:numberOfEventIndicators","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"937"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}numberOfEventIndicators","C":[{"N":"docOrder","sType":"*NA nQ{}numberOfEventIndicators","role":"select","line":"938","C":[{"N":"docOrder","sType":"*NA nQ{}numberOfEventIndicators","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}numberOfEventIndicators"}]}]}]}]}]},{"N":"forEach","sType":"* ","line":"941","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3","sType":"*NE","role":"select","line":"941"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"942","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasVariable","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"943"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"944","C":[{"N":"str","val":"var-"},{"N":"fn","name":"position"}]}]}]}]},{"N":"forEach","sType":"* ","line":"947","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5","sType":"*NE","role":"select","line":"947"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"948","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"949"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"950","C":[{"N":"str","val":"unit-"},{"N":"fn","name":"position"}]}]}]}]},{"N":"forEach","sType":"* ","line":"953","C":[{"N":"gVarRef","name":"Q{}plainTypes","bSlot":"6","sType":"* ","role":"select","line":"953"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"954","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasTypeDefinition","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"955"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"956","C":[{"N":"str","val":"type-"},{"N":"fn","name":"position"}]}]}]}]},{"N":"forEach","sType":"* ","line":"959","C":[{"N":"gVarRef","name":"Q{}interfaces","bSlot":"7","sType":"*NE","role":"select","line":"959"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"960","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasInterface","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"961"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"962","C":[{"N":"str","val":"if-"},{"N":"fn","name":"position"}]}]}]}]},{"N":"forEach","sType":"* ","line":"965","C":[{"N":"gVarRef","name":"Q{}logcats","bSlot":"8","sType":"*NE","role":"select","line":"965"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"966","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasLogCategory","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"967"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"968","C":[{"N":"str","val":"logcat-"},{"N":"fn","name":"position"}]}]}]}]},{"N":"choose","sType":"* ","line":"971","C":[{"N":"gVarRef","name":"Q{}experiment","bSlot":"9","sType":"*NE","line":"971"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"972","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasDefaultExperiment","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"973"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"str","val":"defaultExperiment","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"974"}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"forEach","sType":"*NE ","line":"980","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3","sType":"*NE","role":"select","line":"980"},{"N":"let","var":"Q{}isScalar","slot":"0","sType":"*NE ","line":"981","C":[{"N":"compareToString","op":"eq","val":"ScalarVariable","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"981","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]},{"N":"let","var":"Q{}typed","slot":"1","sType":"*NE ","line":"982","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"982","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"sequence","literal":"true","C":[{"N":"str","val":"Real"},{"N":"str","val":"Integer"},{"N":"str","val":"Boolean"},{"N":"str","val":"String"},{"N":"str","val":"Enumeration"}]}]}]},{"N":"let","var":"Q{}attrNode","slot":"2","sType":"*NE ","line":"983","C":[{"N":"choose","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"983","C":[{"N":"varRef","name":"Q{}isScalar","slot":"0"},{"N":"varRef","name":"Q{}typed","slot":"1"},{"N":"true"},{"N":"dot"}]},{"N":"let","var":"Q{}dataType","slot":"3","sType":"*NE ","line":"984","C":[{"N":"choose","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"984","C":[{"N":"varRef","name":"Q{}isScalar","slot":"0"},{"N":"fn","name":"local-name","C":[{"N":"treat","as":"N","diag":"0|0||local-name","C":[{"N":"check","card":"?","diag":"0|0||local-name","C":[{"N":"varRef","name":"Q{}typed","slot":"1"}]}]}]},{"N":"true"},{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]},{"N":"let","var":"Q{}unitName","slot":"4","sType":"*NE ","line":"985","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"985","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}unit"}]}]}]}]},{"N":"let","var":"Q{}unitPos","slot":"5","sType":"*NE ","line":"986","C":[{"N":"first","sType":"?ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"986","C":[{"N":"for","name":"Q{}i","slot":"17","C":[{"N":"to","C":[{"N":"int","val":"1"},{"N":"fn","name":"count","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5"}]}]},{"N":"choose","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"subscript","flags":"p","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5"},{"N":"varRef","name":"Q{}i","slot":"17"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name"}]}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}unitName","slot":"4"}]}]},{"N":"varRef","name":"Q{}i","slot":"17"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"let","var":"Q{}typeName","slot":"6","sType":"*NE ","line":"987","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"987","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}declaredType"}]}]}]}]},{"N":"let","var":"Q{}typePos","slot":"7","sType":"*NE ","line":"988","C":[{"N":"first","sType":"?ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"988","C":[{"N":"for","name":"Q{}i","slot":"19","C":[{"N":"to","C":[{"N":"int","val":"1"},{"N":"fn","name":"count","C":[{"N":"gVarRef","name":"Q{}plainTypes","bSlot":"6"}]}]},{"N":"choose","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"subscript","flags":"p","C":[{"N":"gVarRef","name":"Q{}plainTypes","bSlot":"6"},{"N":"varRef","name":"Q{}i","slot":"19"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name"}]}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}typeName","slot":"6"}]}]},{"N":"varRef","name":"Q{}i","slot":"19"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"let","var":"Q{}enumPos","slot":"8","sType":"*NE ","line":"989","C":[{"N":"first","sType":"?ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"989","C":[{"N":"for","name":"Q{}i","slot":"20","C":[{"N":"to","C":[{"N":"int","val":"1"},{"N":"fn","name":"count","C":[{"N":"gVarRef","name":"Q{}enumTypes","bSlot":"10"}]}]},{"N":"choose","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"subscript","flags":"p","C":[{"N":"gVarRef","name":"Q{}enumTypes","bSlot":"10"},{"N":"varRef","name":"Q{}i","slot":"20"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name"}]}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}typeName","slot":"6"}]}]},{"N":"varRef","name":"Q{}i","slot":"20"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"let","var":"Q{}startVal","slot":"9","sType":"*NE ","line":"990","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"990","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}start"}]}]}]}]},{"N":"let","var":"Q{}duName","slot":"10","sType":"*NE ","line":"991","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"991","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}displayUnit"}]}]}]}]},{"N":"let","var":"Q{}duPos","slot":"11","sType":"*NE ","line":"995","C":[{"N":"choose","sType":"?ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"995","C":[{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}unitPos","slot":"5"}]},{"N":"first","C":[{"N":"for","name":"Q{}j","slot":"23","C":[{"N":"to","C":[{"N":"int","val":"1"},{"N":"fn","name":"count","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"filter","flags":"i","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5"},{"N":"varRef","name":"Q{}unitPos","slot":"5"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"DisplayUnit","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]},{"N":"choose","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"filter","flags":"i","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5"},{"N":"varRef","name":"Q{}unitPos","slot":"5"}]},{"N":"subscript","flags":"p","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"DisplayUnit","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"varRef","name":"Q{}j","slot":"23"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name"}]}]}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}duName","slot":"10"}]}]},{"N":"varRef","name":"Q{}j","slot":"23"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"true"},{"N":"empty"}]},{"N":"let","var":"Q{}vp","slot":"12","sType":"*NE ","line":"997","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"997"},{"N":"let","var":"Q{}vVR","slot":"13","sType":"*NE ","line":"998","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"998","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]}]},{"N":"let","var":"Q{}dims","slot":"14","sType":"*NE ","line":"999","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"999","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Dimension","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}aliases","slot":"15","sType":"*NE ","line":"1000","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1000","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Alias","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}startEls","slot":"16","sType":"*NE ","line":"1001","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1001","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Start","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}msRefs","slot":"17","sType":"*NE ","line":"1009","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"1009","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"ModelStructure","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"or","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}index"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]}]},{"N":"or","C":[{"N":"and","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}index"},{"N":"vc","op":"eq","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}index"}]}]},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"varRef","name":"Q{}vp","slot":"12"}]}]}]}]},{"N":"and","C":[{"N":"and","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"},{"N":"fn","name":"not","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}index"}]}]},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}vVR","slot":"13"}]}]}]}]}]}]}]}]},{"N":"let","var":"Q{}depScope","slot":"18","sType":"*NE ","line":"1014","C":[{"N":"choose","sType":"?AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1014","C":[{"N":"filter","C":[{"N":"varRef","name":"Q{}msRefs","slot":"17"},{"N":"and","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}dependencies"},{"N":"compareToString","op":"eq","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}dependencies"}]}]}]}]}]}]},{"N":"str","val":"none"},{"N":"true"},{"N":"choose","C":[{"N":"filter","C":[{"N":"varRef","name":"Q{}msRefs","slot":"17"},{"N":"and","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}dependencies"},{"N":"compareToString","op":"ne","val":"","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}dependencies"}]}]}]}]}]}]},{"N":"str","val":"explicit"},{"N":"true"},{"N":"choose","C":[{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}msRefs","slot":"17"}]},{"N":"str","val":"allKnowns"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1016","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:Variable"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"var-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"1ADI","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1016"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1017","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1018","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1018"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1020","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1021","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}name","name":"attribute","nodeTest":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1021"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"1023","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1023","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}description"}]}]}]}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1024","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1025","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}description","name":"attribute","nodeTest":"*NA nQ{}description","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1025"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1028","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:valueReference","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1029"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}valueReference","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference","sType":"*NA nQ{}valueReference","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1030"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1032","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:causality","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1033"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}causality","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}causality","sType":"*NA nQ{}causality","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1034"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1036","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variability","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1037"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}variability","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}variability","sType":"*NA nQ{}variability","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1038"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1040","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:initial","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1041"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}initial","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}initial","sType":"*NA nQ{}initial","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1042"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1044","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dataType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1045"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}dataType","slot":"3","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1046"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1048","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:start","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1049"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}start","C":[{"N":"docOrder","sType":"*NA nQ{}start","role":"select","line":"1050","C":[{"N":"docOrder","sType":"*NA nQ{}start","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}start"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1052","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:declaredType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1053"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}declaredType","C":[{"N":"docOrder","sType":"*NA nQ{}declaredType","role":"select","line":"1054","C":[{"N":"docOrder","sType":"*NA nQ{}declaredType","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}declaredType"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1056","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1057"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}unit","C":[{"N":"docOrder","sType":"*NA nQ{}unit","role":"select","line":"1058","C":[{"N":"docOrder","sType":"*NA nQ{}unit","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}unit"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1060","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:displayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1061"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}displayUnit","C":[{"N":"docOrder","sType":"*NA nQ{}displayUnit","role":"select","line":"1062","C":[{"N":"docOrder","sType":"*NA nQ{}displayUnit","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}displayUnit"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1064","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:quantity","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1065"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}quantity","C":[{"N":"docOrder","sType":"*NA nQ{}quantity","role":"select","line":"1066","C":[{"N":"docOrder","sType":"*NA nQ{}quantity","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}quantity"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1068","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:min","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1069"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}min","C":[{"N":"docOrder","sType":"*NA nQ{}min","role":"select","line":"1070","C":[{"N":"docOrder","sType":"*NA nQ{}min","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}min"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1072","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:max","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1073"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}max","C":[{"N":"docOrder","sType":"*NA nQ{}max","role":"select","line":"1074","C":[{"N":"docOrder","sType":"*NA nQ{}max","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}max"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1076","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:nominal","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1077"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}nominal","C":[{"N":"docOrder","sType":"*NA nQ{}nominal","role":"select","line":"1078","C":[{"N":"docOrder","sType":"*NA nQ{}nominal","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}nominal"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1080","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:derivative","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1081"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}derivative","C":[{"N":"docOrder","sType":"*NA nQ{}derivative","role":"select","line":"1082","C":[{"N":"docOrder","sType":"*NA nQ{}derivative","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}derivative"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1084","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canHandleMultipleSetPerTimeInstant","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1085"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}canHandleMultipleSetPerTimeInstant","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canHandleMultipleSetPerTimeInstant","sType":"*NA nQ{}canHandleMultipleSetPerTimeInstant","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1086"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1088","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:clocks","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1089"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}clocks","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}clocks","sType":"*NA nQ{}clocks","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1090"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1092","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:intermediateUpdate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1093"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}intermediateUpdate","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}intermediateUpdate","sType":"*NA nQ{}intermediateUpdate","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1094"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1096","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:previous","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1097"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}previous","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}previous","sType":"*NA nQ{}previous","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1098"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1100","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:reinit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1101"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}reinit","C":[{"N":"docOrder","sType":"*NA nQ{}reinit","role":"select","line":"1102","C":[{"N":"docOrder","sType":"*NA nQ{}reinit","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}reinit"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1104","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:relativeQuantity","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1105"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}relativeQuantity","C":[{"N":"docOrder","sType":"*NA nQ{}relativeQuantity","role":"select","line":"1106","C":[{"N":"docOrder","sType":"*NA nQ{}relativeQuantity","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}relativeQuantity"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1108","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:unbounded","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1109"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}unbounded","C":[{"N":"docOrder","sType":"*NA nQ{}unbounded","role":"select","line":"1110","C":[{"N":"docOrder","sType":"*NA nQ{}unbounded","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}unbounded"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1112","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:mimeType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1113"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}mimeType","C":[{"N":"docOrder","sType":"*NA nQ{}mimeType","role":"select","line":"1114","C":[{"N":"docOrder","sType":"*NA nQ{}mimeType","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}mimeType"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1116","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:maxSize","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1117"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}maxSize","C":[{"N":"docOrder","sType":"*NA nQ{}maxSize","role":"select","line":"1118","C":[{"N":"docOrder","sType":"*NA nQ{}maxSize","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}maxSize"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1120","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canBeDeactivated","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1121"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}canBeDeactivated","C":[{"N":"docOrder","sType":"*NA nQ{}canBeDeactivated","role":"select","line":"1122","C":[{"N":"docOrder","sType":"*NA nQ{}canBeDeactivated","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canBeDeactivated"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1124","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:priority","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1125"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}priority","C":[{"N":"docOrder","sType":"*NA nQ{}priority","role":"select","line":"1126","C":[{"N":"docOrder","sType":"*NA nQ{}priority","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}priority"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1128","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:intervalVariability","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1129"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}intervalVariability","C":[{"N":"docOrder","sType":"*NA nQ{}intervalVariability","role":"select","line":"1130","C":[{"N":"docOrder","sType":"*NA nQ{}intervalVariability","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}intervalVariability"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1132","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:intervalDecimal","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1133"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}intervalDecimal","C":[{"N":"docOrder","sType":"*NA nQ{}intervalDecimal","role":"select","line":"1134","C":[{"N":"docOrder","sType":"*NA nQ{}intervalDecimal","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}intervalDecimal"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1136","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:shiftDecimal","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1137"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}shiftDecimal","C":[{"N":"docOrder","sType":"*NA nQ{}shiftDecimal","role":"select","line":"1138","C":[{"N":"docOrder","sType":"*NA nQ{}shiftDecimal","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}shiftDecimal"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1140","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:supportsFraction","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1141"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}supportsFraction","C":[{"N":"docOrder","sType":"*NA nQ{}supportsFraction","role":"select","line":"1142","C":[{"N":"docOrder","sType":"*NA nQ{}supportsFraction","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}supportsFraction"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1144","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:resolution","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1145"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}resolution","C":[{"N":"docOrder","sType":"*NA nQ{}resolution","role":"select","line":"1146","C":[{"N":"docOrder","sType":"*NA nQ{}resolution","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}resolution"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1148","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:intervalCounter","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1149"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}intervalCounter","C":[{"N":"docOrder","sType":"*NA nQ{}intervalCounter","role":"select","line":"1150","C":[{"N":"docOrder","sType":"*NA nQ{}intervalCounter","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}intervalCounter"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1152","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:shiftCounter","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1153"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}shiftCounter","C":[{"N":"docOrder","sType":"*NA nQ{}shiftCounter","role":"select","line":"1154","C":[{"N":"docOrder","sType":"*NA nQ{}shiftCounter","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}attrNode","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}shiftCounter"}]}]}]}]}]},{"N":"choose","sType":"* ","line":"1156","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1156","C":[{"N":"fn","name":"count","C":[{"N":"varRef","name":"Q{}dims","slot":"14"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1157","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:rank","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1158"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"1ADI","C":[{"N":"fn","name":"count","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1159","C":[{"N":"varRef","name":"Q{}dims","slot":"14"}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1162","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dependencyScope","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1163"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}depScope","slot":"18","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1164"}]}]},{"N":"choose","sType":"* ","line":"1166","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1166","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}unitName","slot":"4"}]}]}]}]}]}]}]},{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}unitPos","slot":"5"}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1167","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableHasUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1168"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1169","C":[{"N":"str","val":"unit-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}unitPos","slot":"5"}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"1172","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1172","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}typeName","slot":"6"}]}]}]}]}]}]}]},{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}typePos","slot":"7"}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1173","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableHasType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1174"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1175","C":[{"N":"str","val":"type-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}typePos","slot":"7"}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"1178","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1178","C":[{"N":"and","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}duName","slot":"10"}]}]}]}]}]}]}]},{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}unitPos","slot":"5"}]}]},{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}duPos","slot":"11"}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1179","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableHasDisplayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1180"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1181","C":[{"N":"str","val":"displayunit-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}unitPos","slot":"5"}]}]},{"N":"str","val":"-"},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"data","diag":"0|3||concat","C":[{"N":"varRef","name":"Q{}duPos","slot":"11"}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"1184","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1184","C":[{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}enumPos","slot":"8"}]},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}startVal","slot":"9"}]}]}]}]}]}]}]}]},{"N":"let","var":"Q{}enumNode","slot":"19","sType":"* ","line":"1185","C":[{"N":"filter","flags":"i","sType":"* ","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1185","C":[{"N":"gVarRef","name":"Q{}enumTypes","bSlot":"10"},{"N":"varRef","name":"Q{}enumPos","slot":"8"}]},{"N":"let","var":"Q{}enumItems","slot":"20","sType":"* ","line":"1188","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"1188","C":[{"N":"choose","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"compareToString","op":"eq","val":"EnumerationType","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"treat","as":"N","diag":"0|0||local-name","C":[{"N":"check","card":"?","diag":"0|0||local-name","C":[{"N":"varRef","name":"Q{}enumNode","slot":"19"}]}]}]}]},{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}enumNode","slot":"19"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Item","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]},{"N":"true"},{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}enumNode","slot":"19"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Enumeration","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Item","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]},{"N":"choose","sType":"* ","line":"1189","C":[{"N":"fn","name":"exists","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1189","C":[{"N":"filter","C":[{"N":"varRef","name":"Q{}enumItems","slot":"20"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}value"}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}startVal","slot":"9"}]}]}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1190","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1191","C":[{"N":"str","val":"fmi:hasEnumValue-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}enumPos","slot":"8"}]}]}]}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1192","C":[{"N":"str","val":"fmi:enum-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}enumPos","slot":"8"}]}]},{"N":"str","val":"-"},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"data","diag":"0|3||concat","C":[{"N":"varRef","name":"Q{}startVal","slot":"9"}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"forEach","sType":"* ","line":"1197","C":[{"N":"varRef","name":"Q{}dims","slot":"14","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1197"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1198","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasDimension","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1199"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1200","C":[{"N":"str","val":"dim-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}vp","slot":"12"}]}]},{"N":"str","val":"-"},{"N":"fn","name":"position"}]}]}]}]},{"N":"forEach","sType":"* ","line":"1203","C":[{"N":"varRef","name":"Q{}aliases","slot":"15","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1203"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1204","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasAlias","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1205"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1206","C":[{"N":"str","val":"alias-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}vp","slot":"12"}]}]},{"N":"str","val":"-"},{"N":"fn","name":"position"}]}]}]}]},{"N":"forEach","sType":"* ","line":"1209","C":[{"N":"varRef","name":"Q{}startEls","slot":"16","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1209"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1210","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasStartValue","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1211"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1212","C":[{"N":"str","val":"start-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}vp","slot":"12"}]}]},{"N":"str","val":"-"},{"N":"fn","name":"position"}]}]}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"1218","C":[{"N":"varRef","name":"Q{}dims","slot":"14","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1218"},{"N":"let","var":"Q{}dimSizeVR","slot":"19","sType":"*NE ","line":"1219","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1219","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]}]},{"N":"let","var":"Q{}dimVarPos","slot":"20","sType":"*NE ","line":"1222","C":[{"N":"choose","sType":"?ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1222","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}dimSizeVR","slot":"19"}]}]}]}]}]}]}]},{"N":"first","C":[{"N":"for","name":"Q{}i","slot":"32","C":[{"N":"to","C":[{"N":"int","val":"1"},{"N":"fn","name":"count","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3"}]}]},{"N":"choose","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"subscript","flags":"p","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3"},{"N":"varRef","name":"Q{}i","slot":"32"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}dimSizeVR","slot":"19"}]}]},{"N":"varRef","name":"Q{}i","slot":"32"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"true"},{"N":"empty"}]},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1223","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:Dimension"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"dim-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}vp","slot":"12","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1223"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":"-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"1ADI","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1223"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1224","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1225","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1225"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1227","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1228","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1228","C":[{"N":"str","val":"Dimension "},{"N":"fn","name":"position"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1230","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dimensionStart","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1231"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}start","C":[{"N":"docOrder","sType":"*NA nQ{}start","role":"select","line":"1232","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}start","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}start","sType":"*NA nQ{}start","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1234","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:valueReference","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1235"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}valueReference","C":[{"N":"docOrder","sType":"*NA nQ{}valueReference","role":"select","line":"1236","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}valueReference","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference","sType":"*NA nQ{}valueReference","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"choose","sType":"* ","line":"1238","C":[{"N":"fn","name":"exists","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1238","C":[{"N":"varRef","name":"Q{}dimVarPos","slot":"20"}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1239","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dimensionSizedBy","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1240"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1241","C":[{"N":"str","val":"var-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}dimVarPos","slot":"20"}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}anEntity ","line":"1248","C":[{"N":"varRef","name":"Q{}aliases","slot":"15","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1248"},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1249","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:VariableAlias"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"alias-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}vp","slot":"12","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1249"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":"-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"1ADI","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1249"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1250","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1251","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1251"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1253","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1254","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}name","role":"select","line":"1254","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}name","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name","sType":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"1256","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1256","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}description"}]}]}]}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1257","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1258","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}description","role":"select","line":"1258","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}description","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description","sType":"*NA nQ{}description","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1261","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:displayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1262"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}displayUnit","C":[{"N":"docOrder","sType":"*NA nQ{}displayUnit","role":"select","line":"1263","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}displayUnit","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}displayUnit","sType":"*NA nQ{}displayUnit","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]}]}]}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}anEntity ","line":"1269","C":[{"N":"varRef","name":"Q{}startEls","slot":"16","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1269"},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1270","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:StartValue"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"start-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}vp","slot":"12","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1270"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":"-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"1ADI","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1270"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1271","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1272","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1272"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1274","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1275","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1275","C":[{"N":"str","val":"Start "},{"N":"fn","name":"position"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1277","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:startValue","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1278"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}value","C":[{"N":"docOrder","sType":"*NA nQ{}value","role":"select","line":"1279","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}value","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}value","sType":"*NA nQ{}value","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"1286","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5","sType":"*NE","role":"select","line":"1286"},{"N":"let","var":"Q{}unitPos","slot":"0","sType":"*NE ","line":"1287","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1287"},{"N":"let","var":"Q{}bu","slot":"1","sType":"*NE ","line":"1288","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1288","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"BaseUnit","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}dus","slot":"2","sType":"*NE ","line":"1289","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1289","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"DisplayUnit","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1290","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:Unit"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"unit-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}unitPos","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1290"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1291","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1292","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1292"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1294","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1295","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}name","name":"attribute","nodeTest":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1295"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"forEach","sType":"* ","line":"1298","C":[{"N":"docOrder","sType":"*NA","role":"select","line":"1298","C":[{"N":"docOrder","sType":"*NA","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}bu","slot":"1"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"attribute","nodeTest":"*NA"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"sequence","literal":"true","C":[{"N":"str","val":"kg"},{"N":"str","val":"m"},{"N":"str","val":"s"},{"N":"str","val":"A"},{"N":"str","val":"K"},{"N":"str","val":"mol"},{"N":"str","val":"cd"},{"N":"str","val":"rad"}]}]}]},{"N":"gc","op":"!=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"atomSing","diag":"1|0||gc","card":"?","C":[{"N":"dot"}]},{"N":"str","val":"0"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1299","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1300","C":[{"N":"str","val":"fmi:exp_"},{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"1NA","C":[{"N":"dot","sType":"1NA","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1301"}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1304","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:factor","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1305"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}factor","C":[{"N":"docOrder","sType":"*NA nQ{}factor","role":"select","line":"1306","C":[{"N":"docOrder","sType":"*NA nQ{}factor","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}bu","slot":"1"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}factor"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1308","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:offset","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1309"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}offset","C":[{"N":"docOrder","sType":"*NA nQ{}offset","role":"select","line":"1310","C":[{"N":"docOrder","sType":"*NA nQ{}offset","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}bu","slot":"1"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}offset"}]}]}]}]}]},{"N":"forEach","sType":"* ","line":"1313","C":[{"N":"varRef","name":"Q{}dus","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1313"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1314","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasDisplayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1315"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1316","C":[{"N":"str","val":"displayunit-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}unitPos","slot":"0"}]}]},{"N":"str","val":"-"},{"N":"fn","name":"position"}]}]}]}]}]}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}anEntity ","line":"1321","C":[{"N":"varRef","name":"Q{}dus","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1321"},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1322","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:DisplayUnit"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"displayunit-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}unitPos","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1322"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":"-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"1ADI","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1322"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1323","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1324","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1324"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1326","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1327","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}name","role":"select","line":"1327","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}name","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name","sType":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1329","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:factor","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1330"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}factor","C":[{"N":"docOrder","sType":"*NA nQ{}factor","role":"select","line":"1331","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}factor","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}factor","sType":"*NA nQ{}factor","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1333","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:offset","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1334"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}offset","C":[{"N":"docOrder","sType":"*NA nQ{}offset","role":"select","line":"1335","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}offset","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}offset","sType":"*NA nQ{}offset","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1337","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:inverse","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1338"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}inverse","C":[{"N":"docOrder","sType":"*NA nQ{}inverse","role":"select","line":"1339","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}inverse","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}inverse","sType":"*NA nQ{}inverse","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"forEach","sType":"*NE ","line":"1346","C":[{"N":"gVarRef","name":"Q{}plainTypes","bSlot":"6","sType":"* ","role":"select","line":"1346"},{"N":"let","var":"Q{}isSimple","slot":"0","sType":"*NE ","line":"1347","C":[{"N":"compareToString","op":"eq","val":"SimpleType","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1347","C":[{"N":"fn","name":"local-name","C":[{"N":"treat","as":"N","diag":"0|0||local-name","C":[{"N":"check","card":"?","diag":"0|0||local-name","C":[{"N":"dot"}]}]}]}]},{"N":"let","var":"Q{}typedT","slot":"1","sType":"*NE ","line":"1348","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1348","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"sequence","literal":"true","C":[{"N":"str","val":"Real"},{"N":"str","val":"Integer"},{"N":"str","val":"Boolean"},{"N":"str","val":"String"},{"N":"str","val":"Enumeration"}]}]}]},{"N":"let","var":"Q{}tAttr","slot":"2","sType":"*NE ","line":"1349","C":[{"N":"choose","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1349","C":[{"N":"varRef","name":"Q{}isSimple","slot":"0"},{"N":"varRef","name":"Q{}typedT","slot":"1"},{"N":"true"},{"N":"dot"}]},{"N":"let","var":"Q{}baseType","slot":"3","sType":"*NE ","line":"1350","C":[{"N":"choose","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1350","C":[{"N":"varRef","name":"Q{}isSimple","slot":"0"},{"N":"fn","name":"local-name","C":[{"N":"treat","as":"N","diag":"0|0||local-name","C":[{"N":"check","card":"?","diag":"0|0||local-name","C":[{"N":"varRef","name":"Q{}typedT","slot":"1"}]}]}]},{"N":"true"},{"N":"fn","name":"local-name","C":[{"N":"treat","as":"N","diag":"0|0||local-name","C":[{"N":"check","card":"?","diag":"0|0||local-name","C":[{"N":"dot"}]}]}]}]},{"N":"let","var":"Q{}tUnitName","slot":"4","sType":"*NE ","line":"1351","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1351","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}unit"}]}]}]}]},{"N":"let","var":"Q{}tUnitPos","slot":"5","sType":"*NE ","line":"1352","C":[{"N":"first","sType":"?ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1352","C":[{"N":"for","name":"Q{}i","slot":"17","C":[{"N":"to","C":[{"N":"int","val":"1"},{"N":"fn","name":"count","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5"}]}]},{"N":"choose","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"subscript","flags":"p","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5"},{"N":"varRef","name":"Q{}i","slot":"17"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name"}]}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}tUnitName","slot":"4"}]}]},{"N":"varRef","name":"Q{}i","slot":"17"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"let","var":"Q{}tDuName","slot":"6","sType":"*NE ","line":"1353","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1353","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}displayUnit"}]}]}]}]},{"N":"let","var":"Q{}tDuPos","slot":"7","sType":"*NE ","line":"1357","C":[{"N":"choose","sType":"?ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1357","C":[{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}tUnitPos","slot":"5"}]},{"N":"first","C":[{"N":"for","name":"Q{}j","slot":"19","C":[{"N":"to","C":[{"N":"int","val":"1"},{"N":"fn","name":"count","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"filter","flags":"i","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5"},{"N":"varRef","name":"Q{}tUnitPos","slot":"5"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"DisplayUnit","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]},{"N":"choose","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"filter","flags":"i","C":[{"N":"gVarRef","name":"Q{}units","bSlot":"5"},{"N":"varRef","name":"Q{}tUnitPos","slot":"5"}]},{"N":"subscript","flags":"p","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"DisplayUnit","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"varRef","name":"Q{}j","slot":"19"}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name"}]}]}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}tDuName","slot":"6"}]}]},{"N":"varRef","name":"Q{}j","slot":"19"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"true"},{"N":"empty"}]},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1358","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:TypeDefinition"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"type-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"1ADI","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1358"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1359","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1360","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1360"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1362","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1363","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}name","role":"select","line":"1363","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}name","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name","sType":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"1365","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1365","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}description"}]}]}]}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1366","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1367","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}description","role":"select","line":"1367","C":[{"N":"slash","role":"select","simple":"1","sType":"*NA nQ{}description","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description","sType":"*NA nQ{}description","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1370","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:baseType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1371"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}baseType","slot":"3","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1372"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1374","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:quantity","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1375"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}quantity","C":[{"N":"docOrder","sType":"*NA nQ{}quantity","role":"select","line":"1376","C":[{"N":"docOrder","sType":"*NA nQ{}quantity","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}quantity"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1378","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:unit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1379"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}unit","C":[{"N":"docOrder","sType":"*NA nQ{}unit","role":"select","line":"1380","C":[{"N":"docOrder","sType":"*NA nQ{}unit","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}unit"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1382","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:displayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1383"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}displayUnit","C":[{"N":"docOrder","sType":"*NA nQ{}displayUnit","role":"select","line":"1384","C":[{"N":"docOrder","sType":"*NA nQ{}displayUnit","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}displayUnit"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1386","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:min","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1387"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}min","C":[{"N":"docOrder","sType":"*NA nQ{}min","role":"select","line":"1388","C":[{"N":"docOrder","sType":"*NA nQ{}min","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}min"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1390","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:max","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1391"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}max","C":[{"N":"docOrder","sType":"*NA nQ{}max","role":"select","line":"1392","C":[{"N":"docOrder","sType":"*NA nQ{}max","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}max"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1394","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:nominal","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1395"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}nominal","C":[{"N":"docOrder","sType":"*NA nQ{}nominal","role":"select","line":"1396","C":[{"N":"docOrder","sType":"*NA nQ{}nominal","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}nominal"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1398","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:relativeQuantity","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1399"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}relativeQuantity","C":[{"N":"docOrder","sType":"*NA nQ{}relativeQuantity","role":"select","line":"1400","C":[{"N":"docOrder","sType":"*NA nQ{}relativeQuantity","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}relativeQuantity"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1402","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:unbounded","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1403"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}unbounded","C":[{"N":"docOrder","sType":"*NA nQ{}unbounded","role":"select","line":"1404","C":[{"N":"docOrder","sType":"*NA nQ{}unbounded","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}unbounded"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1406","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:mimeType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1407"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}mimeType","C":[{"N":"docOrder","sType":"*NA nQ{}mimeType","role":"select","line":"1408","C":[{"N":"docOrder","sType":"*NA nQ{}mimeType","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}mimeType"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1410","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:maxSize","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1411"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}maxSize","C":[{"N":"docOrder","sType":"*NA nQ{}maxSize","role":"select","line":"1412","C":[{"N":"docOrder","sType":"*NA nQ{}maxSize","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}tAttr","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}maxSize"}]}]}]}]}]},{"N":"choose","sType":"* ","line":"1416","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1416","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}tUnitName","slot":"4"}]}]}]}]}]}]}]},{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}tUnitPos","slot":"5"}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1417","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableHasUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1418"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1419","C":[{"N":"str","val":"unit-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}tUnitPos","slot":"5"}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"* ","line":"1422","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1422","C":[{"N":"and","C":[{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}tDuName","slot":"6"}]}]}]}]}]}]}]},{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}tUnitPos","slot":"5"}]}]},{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}tDuPos","slot":"7"}]}]},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-target-link","line":"1423","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:variableHasDisplayUnit","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1424"}]},{"N":"withParam","name":"Q{}idRef","slot":"0","sType":"1AS","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1425","C":[{"N":"str","val":"displayunit-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}tUnitPos","slot":"5"}]}]},{"N":"str","val":"-"},{"N":"check","card":"?","diag":"0|3||concat","C":[{"N":"data","diag":"0|3||concat","C":[{"N":"varRef","name":"Q{}tDuPos","slot":"7"}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}anEntity ","line":"1432","C":[{"N":"gVarRef","name":"Q{}interfaces","bSlot":"7","sType":"*NE","role":"select","line":"1432"},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1433","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:Interface"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"if-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"1ADI","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1433"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1434","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1435","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1435"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1437","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1438","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"local-name","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1438","C":[{"N":"dot"}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1440","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:interfaceType","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1441"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"1AS","C":[{"N":"fn","name":"local-name","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1442","C":[{"N":"dot"}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1444","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:modelIdentifier","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1445"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}modelIdentifier","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}modelIdentifier","sType":"*NA nQ{}modelIdentifier","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1446"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1448","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:needsExecutionTool","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1449"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}needsExecutionTool","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}needsExecutionTool","sType":"*NA nQ{}needsExecutionTool","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1450"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1452","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canGetAndSetFMUstate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1453"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA u[NA nQ{}canGetAndSetFMUState,NA nQ{}canGetAndSetFMUstate]","C":[{"N":"docOrder","sType":"*NA u[NA nQ{}canGetAndSetFMUState,NA nQ{}canGetAndSetFMUstate]","role":"select","line":"1454","C":[{"N":"choose","sType":"*NA u[NA nQ{}canGetAndSetFMUState,NA nQ{}canGetAndSetFMUstate]","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canGetAndSetFMUState"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canGetAndSetFMUState"},{"N":"true"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canGetAndSetFMUstate"}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1456","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canSerializeFMUstate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1457"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA u[NA nQ{}canSerializeFMUState,NA nQ{}canSerializeFMUstate]","C":[{"N":"docOrder","sType":"*NA u[NA nQ{}canSerializeFMUState,NA nQ{}canSerializeFMUstate]","role":"select","line":"1458","C":[{"N":"choose","sType":"*NA u[NA nQ{}canSerializeFMUState,NA nQ{}canSerializeFMUstate]","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canSerializeFMUState"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canSerializeFMUState"},{"N":"true"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canSerializeFMUstate"}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1460","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesDirectionalDerivative","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1461"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA u[NA nQ{}providesDirectionalDerivative,NA nQ{}providesDirectionalDerivatives]","C":[{"N":"docOrder","sType":"*NA u[NA nQ{}providesDirectionalDerivative,NA nQ{}providesDirectionalDerivatives]","role":"select","line":"1462","C":[{"N":"choose","sType":"*NA u[NA nQ{}providesDirectionalDerivative,NA nQ{}providesDirectionalDerivatives]","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}providesDirectionalDerivative"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}providesDirectionalDerivative"},{"N":"true"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}providesDirectionalDerivatives"}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1464","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canHandleVariableCommunicationStepSize","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1465"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}canHandleVariableCommunicationStepSize","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canHandleVariableCommunicationStepSize","sType":"*NA nQ{}canHandleVariableCommunicationStepSize","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1466"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1468","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:maxOutputDerivativeOrder","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1469"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}maxOutputDerivativeOrder","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}maxOutputDerivativeOrder","sType":"*NA nQ{}maxOutputDerivativeOrder","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1470"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1472","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:completedIntegratorStepNotNeeded","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1473"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}completedIntegratorStepNotNeeded","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}completedIntegratorStepNotNeeded","sType":"*NA nQ{}completedIntegratorStepNotNeeded","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1474"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1476","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canBeInstantiatedOnlyOncePerProcess","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1477"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}canBeInstantiatedOnlyOncePerProcess","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canBeInstantiatedOnlyOncePerProcess","sType":"*NA nQ{}canBeInstantiatedOnlyOncePerProcess","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1478"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1480","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canNotUseMemoryManagementFunctions","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1481"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}canNotUseMemoryManagementFunctions","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canNotUseMemoryManagementFunctions","sType":"*NA nQ{}canNotUseMemoryManagementFunctions","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1482"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1484","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canInterpolateInputs","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1485"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}canInterpolateInputs","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canInterpolateInputs","sType":"*NA nQ{}canInterpolateInputs","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1486"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1488","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canRunAsynchronuously","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1489"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}canRunAsynchronuously","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canRunAsynchronuously","sType":"*NA nQ{}canRunAsynchronuously","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1490"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1492","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesAdjointDerivatives","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1493"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}providesAdjointDerivatives","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}providesAdjointDerivatives","sType":"*NA nQ{}providesAdjointDerivatives","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1494"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1496","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesPerElementDependencies","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1497"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}providesPerElementDependencies","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}providesPerElementDependencies","sType":"*NA nQ{}providesPerElementDependencies","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1498"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1500","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:needsCompletedIntegratorStep","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1501"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}needsCompletedIntegratorStep","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}needsCompletedIntegratorStep","sType":"*NA nQ{}needsCompletedIntegratorStep","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1502"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1504","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesEvaluateDiscreteStates","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1505"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}providesEvaluateDiscreteStates","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}providesEvaluateDiscreteStates","sType":"*NA nQ{}providesEvaluateDiscreteStates","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1506"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1508","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:fixedInternalStepSize","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1509"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}fixedInternalStepSize","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}fixedInternalStepSize","sType":"*NA nQ{}fixedInternalStepSize","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1510"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1512","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:recommendedIntermediateInputSmoothness","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1513"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}recommendedIntermediateInputSmoothness","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}recommendedIntermediateInputSmoothness","sType":"*NA nQ{}recommendedIntermediateInputSmoothness","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1514"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1516","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:providesIntermediateUpdate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1517"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}providesIntermediateUpdate","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}providesIntermediateUpdate","sType":"*NA nQ{}providesIntermediateUpdate","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1518"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1520","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:mightReturnEarlyFromDoStep","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1521"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}mightReturnEarlyFromDoStep","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}mightReturnEarlyFromDoStep","sType":"*NA nQ{}mightReturnEarlyFromDoStep","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1522"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1524","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:canReturnEarlyAfterIntermediateUpdate","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1525"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}canReturnEarlyAfterIntermediateUpdate","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}canReturnEarlyAfterIntermediateUpdate","sType":"*NA nQ{}canReturnEarlyAfterIntermediateUpdate","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1526"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1528","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:hasEventMode","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1529"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}hasEventMode","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}hasEventMode","sType":"*NA nQ{}hasEventMode","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1530"}]}]}]}]}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}anEntity ","line":"1536","C":[{"N":"gVarRef","name":"Q{}logcats","bSlot":"8","sType":"*NE","role":"select","line":"1536"},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1537","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:LogCategory"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"logcat-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"1ADI","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1537"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1538","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1539","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1539"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1541","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1542","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}name","name":"attribute","nodeTest":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1542"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"1544","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1544","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"attVal","name":"Q{}description"}]}]}]}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1545","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1546","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}description","name":"attribute","nodeTest":"*NA nQ{}description","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1546"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"choose","sType":"? ","line":"1553","C":[{"N":"gVarRef","name":"Q{}experiment","bSlot":"9","sType":"*NE","line":"1553"},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1554","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:DefaultExperiment"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"defaultExperiment"}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1555","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1556","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1556"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1558","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Default Experiment"}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1559","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:startTime","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1560"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}startTime","C":[{"N":"docOrder","sType":"*NA nQ{}startTime","role":"select","line":"1561","C":[{"N":"docOrder","sType":"*NA nQ{}startTime","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}experiment","bSlot":"9"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}startTime"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1563","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:stopTime","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1564"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}stopTime","C":[{"N":"docOrder","sType":"*NA nQ{}stopTime","role":"select","line":"1565","C":[{"N":"docOrder","sType":"*NA nQ{}stopTime","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}experiment","bSlot":"9"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}stopTime"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1567","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:tolerance","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1568"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}tolerance","C":[{"N":"docOrder","sType":"*NA nQ{}tolerance","role":"select","line":"1569","C":[{"N":"docOrder","sType":"*NA nQ{}tolerance","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}experiment","bSlot":"9"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}tolerance"}]}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1571","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:stepSize","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1572"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*NA nQ{}stepSize","C":[{"N":"docOrder","sType":"*NA nQ{}stepSize","role":"select","line":"1573","C":[{"N":"docOrder","sType":"*NA nQ{}stepSize","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}experiment","bSlot":"9"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}stepSize"}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"forEach","sType":"* ","line":"1579","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"1579","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"1"},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"ModelStructure","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"or","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}index"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]}]}]}]}]},{"N":"let","var":"Q{}uPos","slot":"0","sType":"* ","line":"1580","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1580"},{"N":"let","var":"Q{}ownerIsVR","slot":"1","sType":"* ","line":"1581","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1581","C":[{"N":"fn","name":"boolean","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]},{"N":"fn","name":"not","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}index"}]}]},{"N":"let","var":"Q{}ownerPos","slot":"2","sType":"* ","line":"1584","C":[{"N":"choose","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1584","C":[{"N":"varRef","name":"Q{}ownerIsVR","slot":"1"},{"N":"first","C":[{"N":"for","name":"Q{}i","slot":"14","C":[{"N":"to","C":[{"N":"int","val":"1"},{"N":"fn","name":"count","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3"}]}]},{"N":"choose","C":[{"N":"vc","op":"eq","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"subscript","flags":"p","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3"},{"N":"varRef","name":"Q{}i","slot":"14"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]}]}]},{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]}]}]},{"N":"varRef","name":"Q{}i","slot":"14"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"true"},{"N":"cast","flags":"ae","as":"ADI","C":[{"N":"check","card":"?","diag":"0|0||xs:integer","C":[{"N":"attVal","name":"Q{}index"}]}]}]},{"N":"let","var":"Q{}structureKind","slot":"3","sType":"* ","line":"1585","C":[{"N":"choose","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1585","C":[{"N":"compareToString","op":"eq","val":"Unknown","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]},{"N":"fn","name":"local-name","C":[{"N":"axis","name":"parent","nodeTest":"?N"}]},{"N":"true"},{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]},{"N":"let","var":"Q{}depTokens","slot":"4","sType":"* ","line":"1586","C":[{"N":"fn","name":"tokenize","sType":"*AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1586","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}dependencies"}]}]}]},{"N":"str","val":"\\s+"}]},{"N":"let","var":"Q{}kindTokens","slot":"5","sType":"* ","line":"1587","C":[{"N":"fn","name":"tokenize","sType":"*AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1587","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}dependenciesKind"}]}]}]},{"N":"str","val":"\\s+"}]},{"N":"choose","sType":"* ","line":"1588","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1588","C":[{"N":"and","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}dependencies"},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||normalize-space","C":[{"N":"check","card":"?","diag":"0|0||normalize-space","C":[{"N":"attVal","name":"Q{}dependencies"}]}]}]}]}]}]},{"N":"fn","name":"exists","C":[{"N":"varRef","name":"Q{}ownerPos","slot":"2"}]}]},{"N":"forEach","sType":"* ","line":"1589","C":[{"N":"varRef","name":"Q{}depTokens","slot":"4","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1589"},{"N":"let","var":"Q{}tok","slot":"6","sType":"* ","line":"1590","C":[{"N":"dot","sType":"1","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1590"},{"N":"let","var":"Q{}depIdx","slot":"7","sType":"* ","line":"1591","C":[{"N":"fn","name":"position","sType":"1ADI","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1591"},{"N":"choose","sType":"* ","line":"1592","C":[{"N":"compareToInt","op":"gt","val":"0","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1592","C":[{"N":"fn","name":"string-length","C":[{"N":"treat","as":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"varRef","name":"Q{}tok","slot":"6"}]}]}]}]}]}]}]},{"N":"let","var":"Q{}depPos","slot":"8","sType":"* ","line":"1595","C":[{"N":"choose","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1595","C":[{"N":"varRef","name":"Q{}ownerIsVR","slot":"1"},{"N":"first","C":[{"N":"for","name":"Q{}i","slot":"20","C":[{"N":"to","C":[{"N":"int","val":"1"},{"N":"fn","name":"count","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3"}]}]},{"N":"choose","C":[{"N":"gc","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"slash","op":"/","C":[{"N":"subscript","flags":"p","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3"},{"N":"varRef","name":"Q{}i","slot":"20"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}valueReference"}]}]}]},{"N":"data","diag":"1|1||gc","C":[{"N":"varRef","name":"Q{}tok","slot":"6"}]}]},{"N":"varRef","name":"Q{}i","slot":"20"},{"N":"true"},{"N":"empty"}]}]}]},{"N":"true"},{"N":"cast","flags":"ae","as":"ADI","C":[{"N":"check","card":"?","diag":"0|0||xs:integer","C":[{"N":"data","diag":"0|0||xs:integer","C":[{"N":"varRef","name":"Q{}tok","slot":"6"}]}]}]}]},{"N":"choose","sType":"? ","line":"1596","C":[{"N":"fn","name":"exists","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1596","C":[{"N":"varRef","name":"Q{}depPos","slot":"8"}]},{"N":"elem","name":"cas:aRelationship","sType":"1NE nQ{http://product-information-graph.org}aRelationship ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1597","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:dependsOn"}]},{"N":"att","name":"id","nsuri":"","sType":"1NA ","C":[{"N":"fn","name":"concat","sType":"1AS ","C":[{"N":"str","sType":"1AS ","val":"dep-u"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}uPos","slot":"0","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1597"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":"-"},{"N":"fn","name":"string-join","sType":"1AS ","C":[{"N":"convert","type":"AS*","from":"AZ","to":"AS","C":[{"N":"data","C":[{"N":"mergeAdj","sType":"*","C":[{"N":"varRef","name":"Q{}depIdx","slot":"7","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"1597"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1598","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1599","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"0","role":"select","line":"1599"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1601","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1602","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}name","role":"select","line":"1602","C":[{"N":"docOrder","sType":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"filter","flags":"i","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3"},{"N":"varRef","name":"Q{}ownerPos","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":" depends on "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"1604","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}name","role":"select","line":"1604","C":[{"N":"docOrder","sType":"*NA nQ{}name","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"filter","flags":"i","C":[{"N":"gVarRef","name":"Q{}vars","bSlot":"3"},{"N":"varRef","name":"Q{}depPos","slot":"8"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}name"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1606","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:dependencyKind","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1607"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*","C":[{"N":"filter","flags":"i","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1608","C":[{"N":"varRef","name":"Q{}kindTokens","slot":"5"},{"N":"varRef","name":"Q{}depIdx","slot":"7"}]}]}]},{"N":"callT","bSlot":"2","sType":"* ","name":"Q{}emit-prop","line":"1610","C":[{"N":"withParam","name":"Q{}class","slot":"0","sType":"1AS","C":[{"N":"str","val":"fmi:structureKind","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1611"}]},{"N":"withParam","name":"Q{}value","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}structureKind","slot":"3","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1612"}]}]},{"N":"elem","name":"cas:aSourceLink","sType":"1NE nQ{http://product-information-graph.org}aSourceLink ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1614","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:dependsOn-toSource"}]},{"N":"elem","name":"idRef","sType":"1NE nQ{}idRef ","nsuri":"","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1615","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1616","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1616","C":[{"N":"str","val":"var-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}ownerPos","slot":"2"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"elem","name":"cas:aTargetLink","sType":"1NE nQ{http://product-information-graph.org}aTargetLink ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1619","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"fmi:dependsOn-toTarget"}]},{"N":"elem","name":"idRef","sType":"1NE nQ{}idRef ","nsuri":"","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"1620","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"1621","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"1621","C":[{"N":"str","val":"var-"},{"N":"check","card":"?","diag":"0|1||concat","C":[{"N":"data","diag":"0|1||concat","C":[{"N":"varRef","name":"Q{}depPos","slot":"8"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"9","vis":"PUBLIC","ex:uniform":"true","C":[{"N":"globalVariable","name":"Q{}md","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"*NE","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"31","C":[{"N":"slash","role":"select","simple":"1","sType":"*NE","C":[{"N":"treat","as":"N","diag":"13|0|XTTE0510|","C":[{"N":"dot"}]},{"N":"slash","op":"/","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"root"},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"fmiModelDescription","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]}]},{"N":"co","id":"10","vis":"PUBLIC","ex:uniform":"true","binds":"9","C":[{"N":"globalVariable","name":"Q{}fmiVersion","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"1AS","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"fn","name":"string","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"32","C":[{"N":"check","card":"?","diag":"0|0||string","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}fmiVersion"}]}]}]}]}]}]},{"N":"co","id":"11","vis":"PUBLIC","ex:uniform":"true","binds":"10","C":[{"N":"globalVariable","name":"Q{}isFmi3","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"1AB","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"fn","name":"starts-with","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"33","C":[{"N":"gVarRef","name":"Q{}fmiVersion","bSlot":"0"},{"N":"str","val":"3"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]},{"N":"co","id":"12","vis":"PUBLIC","ex:uniform":"true","binds":"9","C":[{"N":"globalVariable","name":"Q{}vars","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"*NE","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"36","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"ModelVariables","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]},{"N":"axis","name":"child","nodeTest":"*NE"}]}]}]}]}]},{"N":"co","id":"13","vis":"PUBLIC","ex:uniform":"true","binds":"9","C":[{"N":"globalVariable","name":"Q{}units","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"*NE","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"38","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"UnitDefinitions","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Unit","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]}]},{"N":"co","id":"14","vis":"PUBLIC","ex:uniform":"true","binds":"9","C":[{"N":"globalVariable","name":"Q{}types","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"*NE","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"39","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"TypeDefinitions","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]},{"N":"axis","name":"child","nodeTest":"*NE"}]}]}]}]}]},{"N":"co","id":"15","vis":"PUBLIC","ex:uniform":"true","binds":"14","C":[{"N":"globalVariable","name":"Q{}enumTypes","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"*NE","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"43","C":[{"N":"gVarRef","name":"Q{}types","bSlot":"0"},{"N":"or","C":[{"N":"compareToString","op":"eq","val":"EnumerationType","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Enumeration","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]},{"N":"co","id":"16","vis":"PUBLIC","ex:uniform":"true","binds":"14","C":[{"N":"globalVariable","name":"Q{}plainTypes","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"*NE","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"44","C":[{"N":"gVarRef","name":"Q{}types","bSlot":"0"},{"N":"and","C":[{"N":"fn","name":"not","C":[{"N":"compareToString","op":"eq","val":"EnumerationType","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"fn","name":"not","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Enumeration","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]}]},{"N":"co","id":"17","vis":"PUBLIC","ex:uniform":"true","binds":"9","C":[{"N":"globalVariable","name":"Q{}interfaces","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"*NE","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"46","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"or","C":[{"N":"or","C":[{"N":"compareToString","op":"eq","val":"ModelExchange","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]},{"N":"compareToString","op":"eq","val":"CoSimulation","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"compareToString","op":"eq","val":"ScheduledExecution","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]}]}]},{"N":"co","id":"18","vis":"PUBLIC","ex:uniform":"true","binds":"9","C":[{"N":"globalVariable","name":"Q{}logcats","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"*NE","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"47","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"LogCategories","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"Category","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]}]},{"N":"co","id":"19","vis":"PUBLIC","ex:uniform":"true","binds":"9","C":[{"N":"globalVariable","name":"Q{}experiment","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"*NE","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"48","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"compareToString","op":"eq","val":"DefaultExperiment","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]}]}]}]}]}]},{"N":"co","id":"20","vis":"PUBLIC","ex:uniform":"true","binds":"9","C":[{"N":"globalVariable","name":"Q{}modified","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","module":"FMI-to-CAS.xsl","slots":"200","sType":"?ND ","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","role":"select","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"53","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"54","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}generationDateAndTime"}]}]},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}generationDateAndTime"}]}]}]}]}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"55","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}generationDateAndTime","role":"select","line":"55","C":[{"N":"docOrder","sType":"*NA nQ{}generationDateAndTime","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}generationDateAndTime"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"1970-01-01T00:00:00Z"}]}]}]}]}]},{"N":"co","id":"21","binds":"9 10 20 1 8","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"0","ns":"xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/FMI-to-CAS.xsl","line":"66","module":"FMI-to-CAS.xsl","expand-text":"false","match":"/","prio":"-0.5","matches":"ND","C":[{"N":"p.nodeTest","role":"match","test":"ND","sType":"1ND","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# "},{"N":"elem","name":"cas:aPackage","sType":"1NE nQ{http://product-information-graph.org}aPackage ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"67","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"cas:Package"}]},{"N":"att","name":"id","sType":"1NA ","line":"68","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"fmi-package"}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"71","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"72","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"73","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}modelName"}]}]},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}modelName"}]}]}]}]}]}]}]}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"FMU: "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"75","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}modelName","role":"select","line":"75","C":[{"N":"docOrder","sType":"*NA nQ{}modelName","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}modelName"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Imported FMU"}]}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"82","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"83","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","line":"84","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"}]}]},{"N":"compareToInt","op":"gt","val":"0","C":[{"N":"fn","name":"string-length","C":[{"N":"cvUntyped","to":"AS","diag":"0|0||string-length","C":[{"N":"check","card":"?","diag":"0|0||string-length","C":[{"N":"data","diag":"0|0||string-length","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"}]}]}]}]}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"85","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}description","role":"select","line":"85","C":[{"N":"docOrder","sType":"*NA nQ{}description","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# dcterms=http://purl.org/dc/terms/ skos=http://www.w3.org/2004/02/skos/core# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# sh=http://www.w3.org/ns/shacl# xs=~ owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"gVarRef","name":"Q{}md","bSlot":"0"},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}description"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Functional Mock-up Interface model (FMI "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"89","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"gVarRef","name":"Q{}fmiVersion","bSlot":"1","sType":"1AS","role":"select","line":"89"},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":")"}]}]}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"94","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"95","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"gVarRef","sType":"?ND ","name":"Q{}modified","bSlot":"2","role":"select","line":"95"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"graph","sType":"1NE nQ{}graph ","nsuri":"","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema cas=http://product-information-graph.org fmi=https://fmi-standard.org/ontology# skos=http://www.w3.org/2004/02/skos/core# sh=http://www.w3.org/ns/shacl# rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# owl=http://www.w3.org/2002/07/owl#","line":"97","C":[{"N":"sequence","sType":"* ","C":[{"N":"callT","bSlot":"3","sType":"* ","name":"Q{}emit-ontology","line":"98"},{"N":"callT","bSlot":"4","sType":"* ","name":"Q{}emit-instances","line":"99"}]}]}]}]}]}]}]},{"N":"overridden"},{"N":"output","C":[{"N":"property","name":"Q{http://saxon.sf.net/}stylesheet-version","value":"20"},{"N":"property","name":"method","value":"xml"},{"N":"property","name":"encoding","value":"UTF-8"},{"N":"property","name":"indent","value":"yes"},{"N":"property","name":"standalone","value":"yes"}]},{"N":"decimalFormat"}],"Σ":"426f9cfd"} \ No newline at end of file diff --git a/public/assets/xslt/FMI-to-CAS.xsl b/public/assets/xslt/FMI-to-CAS.xsl new file mode 100644 index 0000000..2c11d6e --- /dev/null +++ b/public/assets/xslt/FMI-to-CAS.xsl @@ -0,0 +1,1633 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1970-01-01T00:00:00Z + + + + + + + + + + + fmi-package + + + + + FMU: + + + + Imported FMU + + + + + + + + + + Functional Mock-up Interface model (FMI + + ) + + + + + + + + + + + + + + + + + + + + + + + cas:Property + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cas:Entity + + + + + + + + + + + + + + + cas:Link + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cas:Relationship + depends on + A functional dependency declared in ModelStructure: the source variable depends on the target variable. + fmi:dependencyKind + fmi:structureKind + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cas:Enumeration + + + + + + + + + + + cas:Link + + has enumeration value ( + + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default Experiment + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + depends on + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/xslt/ReqIF-RDF.xsl.orig b/public/assets/xslt/ReqIF-RDF.xsl.orig deleted file mode 100644 index c8db663..0000000 --- a/public/assets/xslt/ReqIF-RDF.xsl.orig +++ /dev/null @@ -1,39 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/public/assets/xslt/ReqIF-to-CAS.sef.json b/public/assets/xslt/ReqIF-to-CAS.sef.json new file mode 100644 index 0000000..104d9c7 --- /dev/null +++ b/public/assets/xslt/ReqIF-to-CAS.sef.json @@ -0,0 +1 @@ +{"N":"package","version":"10","packageVersion":"1","saxonVersion":"SaxonJS 2.7","target":"JS","targetVersion":"2","name":"TOP-LEVEL","relocatable":"false","buildDateTime":"2026-06-12T14:30:52.047+02:00","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","C":[{"N":"co","binds":"","id":"0","uniform":"true","C":[{"N":"template","flags":"os","module":"ReqIF-to-CAS.xsl","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","name":"Q{}getAttributeValue","line":"590","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}values","slot":"0","sType":"* ","as":"* ","flags":"","line":"591","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}attrDefId","slot":"1","sType":"* ","as":"* ","flags":"","line":"592","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"let","var":"Q{}stringValue","slot":"2","sType":"* ","line":"596","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"596","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}values","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"and","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-VALUE-STRING"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"DEFINITION"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-STRING-REF"}]}]}]},{"N":"varRef","name":"Q{}attrDefId","slot":"1"}]}]}]}]}]}]},{"N":"let","var":"Q{}xhtmlValue","slot":"3","sType":"* ","line":"600","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"600","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}values","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"and","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-VALUE-XHTML"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"DEFINITION"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-XHTML-REF"}]}]}]},{"N":"varRef","name":"Q{}attrDefId","slot":"1"}]}]}]}]}]}]},{"N":"choose","sType":"* ","type":"item()*","line":"601","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"602","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"603","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}THE-VALUE","role":"select","line":"603","C":[{"N":"docOrder","sType":"*NA nQ{}THE-VALUE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"605","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"606","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"606","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"docOrder","sType":"*NE","line":"608","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]}]}]},{"N":"copyOf","flags":"c","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ex=http://ns.saxonica.com/xslt/export","line":"609","sType":"*N","C":[{"N":"docOrder","sType":"*N","role":"select","line":"609","C":[{"N":"docOrder","sType":"*N","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]},{"N":"axis","name":"child","nodeTest":"*N u[NT,NP,NC,NE]"}]}]}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"611","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"612","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}THE-VALUE","role":"select","line":"612","C":[{"N":"docOrder","sType":"*NA nQ{}THE-VALUE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]},{"N":"co","id":"1","binds":"0 1 2 3","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"13","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"618","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='SPEC-RELATION']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"SPEC-RELATION","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}relationId","slot":"0","sType":"*NE ","line":"619","role":"action","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"619"},{"N":"let","var":"Q{}typeRef","slot":"1","sType":"*NE ","line":"620","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"620","C":[{"N":"slash","op":"/","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TYPE"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-RELATION-TYPE-REF"}]}]}]}]},{"N":"let","var":"Q{}values","slot":"2","sType":"*NE ","line":"621","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"621","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"VALUES"}]}]},{"N":"let","var":"Q{}sourceRef","slot":"3","sType":"*NE ","line":"622","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"622","C":[{"N":"slash","op":"/","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SOURCE"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-OBJECT-REF"}]}]}]}]},{"N":"let","var":"Q{}targetRef","slot":"4","sType":"*NE ","line":"623","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"623","C":[{"N":"slash","op":"/","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TARGET"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-OBJECT-REF"}]}]}]}]},{"N":"let","var":"Q{}nameAttrDefString","slot":"5","sType":"*NE ","line":"631","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"631","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-STRING"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Name"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.ChapterName"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Name"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Title"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}nameAttrDefXhtml","slot":"6","sType":"*NE ","line":"637","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"637","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-XHTML"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Name"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.ChapterName"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Name"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Title"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}textAttrDefXhtml","slot":"7","sType":"*NE ","line":"642","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"642","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-XHTML"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Text"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Description"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Text"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}textAttrDefString","slot":"8","sType":"*NE ","line":"647","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"647","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-STRING"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Text"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Description"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Text"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}titleValueString","slot":"9","sType":"*NE ","line":"650","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"651","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"652"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}nameAttrDefString","slot":"5","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"653"}]}]}]},{"N":"let","var":"Q{}titleValueXhtml","slot":"10","sType":"*NE ","line":"656","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"657","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"658"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}nameAttrDefXhtml","slot":"6","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"659"}]}]}]},{"N":"let","var":"Q{}titleValue","slot":"11","sType":"*NE ","line":"662","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"choose","sType":"? ","type":"item()*","line":"663","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"664","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValueString","slot":"9"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"665","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValueString","slot":"9","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"665"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"667","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValueXhtml","slot":"10"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"668","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValueXhtml","slot":"10","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"668"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"let","var":"Q{}descriptionValueXhtml","slot":"12","sType":"*NE ","line":"675","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"676","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"677"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}textAttrDefXhtml","slot":"7","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"678"}]}]}]},{"N":"let","var":"Q{}descriptionValueString","slot":"13","sType":"*NE ","line":"681","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"682","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"683"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}textAttrDefString","slot":"8","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"684"}]}]}]},{"N":"let","var":"Q{}descriptionValue","slot":"14","sType":"*NE ","line":"687","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"choose","sType":"? ","type":"item()*","line":"688","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"689","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValueXhtml","slot":"12"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"690","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValueXhtml","slot":"12","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"690"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"692","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValueString","slot":"13"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"693","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValueString","slot":"13","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"693"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"let","var":"Q{}hasTitle","slot":"15","sType":"*NE ","line":"699","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"699","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValue","slot":"11"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"let","var":"Q{}hasDescription","slot":"16","sType":"*NE ","line":"700","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"700","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValue","slot":"14"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"elem","name":"cas:aRelationship","sType":"1NE nQ{http://product-information-graph.org}aRelationship ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"702","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"id","sType":"1NA ","line":"703","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"704","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}relationId","slot":"0","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"704"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"cas:hasClass","sType":"1NE nQ{http://product-information-graph.org}hasClass ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"706","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"707","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}typeRef","slot":"1","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"707"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"710","C":[{"N":"varRef","name":"Q{}hasTitle","slot":"15","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"710"},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"711","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"712","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValue","slot":"11","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"712"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"716","C":[{"N":"varRef","name":"Q{}hasDescription","slot":"16","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"716"},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"717","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"718","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValue","slot":"14","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"718"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"721","C":[{"N":"choose","sType":"? ","line":"722","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"722","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"723","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"723"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"choose","sType":"? ","line":"727","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"727","C":[{"N":"varRef","name":"Q{}sourceRef","slot":"3"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}sourceRef","slot":"3"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"cas:aSourceLink","sType":"1NE nQ{http://product-information-graph.org}aSourceLink ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"728","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"cas:hasClass","sType":"1NE nQ{http://product-information-graph.org}hasClass ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"729","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"730","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"730","C":[{"N":"atomSing","diag":"0|0||concat","card":"?","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}typeRef","slot":"1"}]}]},{"N":"str","val":"-toSource"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"idRef","sType":"1NE nQ{}idRef ","nsuri":"","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"732","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"733","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}sourceRef","slot":"3","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"733"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"738","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"738","C":[{"N":"varRef","name":"Q{}targetRef","slot":"4"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}targetRef","slot":"4"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"cas:aTargetLink","sType":"1NE nQ{http://product-information-graph.org}aTargetLink ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"739","C":[{"N":"sequence","sType":"*NE ","C":[{"N":"elem","name":"cas:hasClass","sType":"1NE nQ{http://product-information-graph.org}hasClass ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"740","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"741","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"741","C":[{"N":"atomSing","diag":"0|0||concat","card":"?","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}typeRef","slot":"1"}]}]},{"N":"str","val":"-toTarget"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"idRef","sType":"1NE nQ{}idRef ","nsuri":"","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"743","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"744","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}targetRef","slot":"4","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"744"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"0","seq":"12","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"473","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='SPECIFICATION']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"SPECIFICATION","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}specId","slot":"0","sType":"*NE ","line":"474","role":"action","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"474"},{"N":"let","var":"Q{}typeRef","slot":"1","sType":"*NE ","line":"475","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"475","C":[{"N":"slash","op":"/","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TYPE"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPECIFICATION-TYPE-REF"}]}]}]}]},{"N":"let","var":"Q{}values","slot":"2","sType":"*NE ","line":"476","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"476","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"VALUES"}]}]},{"N":"let","var":"Q{}nameAttrDefString","slot":"3","sType":"*NE ","line":"483","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"483","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-STRING"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Name"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.ChapterName"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Name"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Title"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}nameAttrDefXhtml","slot":"4","sType":"*NE ","line":"489","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"489","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-XHTML"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Name"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.ChapterName"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Name"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Title"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}textAttrDefXhtml","slot":"5","sType":"*NE ","line":"494","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"494","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-XHTML"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Text"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Description"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Text"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}textAttrDefString","slot":"6","sType":"*NE ","line":"499","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"499","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-STRING"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Text"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Description"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Text"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}titleValueString","slot":"7","sType":"*NE ","line":"502","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"503","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"504"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}nameAttrDefString","slot":"3","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"505"}]}]}]},{"N":"let","var":"Q{}titleValueXhtml","slot":"8","sType":"*NE ","line":"508","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"509","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"510"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}nameAttrDefXhtml","slot":"4","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"511"}]}]}]},{"N":"let","var":"Q{}titleValue","slot":"9","sType":"*NE ","line":"514","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"choose","sType":"? ","type":"item()*","line":"515","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"516","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValueString","slot":"7"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"517","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValueString","slot":"7","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"517"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"519","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValueXhtml","slot":"8"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"520","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValueXhtml","slot":"8","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"520"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"let","var":"Q{}descriptionValueXhtml","slot":"10","sType":"*NE ","line":"527","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"528","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"529"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}textAttrDefXhtml","slot":"5","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"530"}]}]}]},{"N":"let","var":"Q{}descriptionValueString","slot":"11","sType":"*NE ","line":"533","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"534","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"535"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}textAttrDefString","slot":"6","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"536"}]}]}]},{"N":"let","var":"Q{}descriptionValue","slot":"12","sType":"*NE ","line":"539","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"choose","sType":"? ","type":"item()*","line":"540","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"541","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValueXhtml","slot":"10"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"542","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValueXhtml","slot":"10","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"542"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"544","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValueString","slot":"11"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"545","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValueString","slot":"11","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"545"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"let","var":"Q{}hasTitle","slot":"13","sType":"*NE ","line":"551","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"551","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValue","slot":"9"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"let","var":"Q{}hasDescription","slot":"14","sType":"*NE ","line":"552","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"552","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValue","slot":"12"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"554","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","sType":"1NA ","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","line":"555","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"556","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}typeRef","slot":"1","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"556"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"id","sType":"1NA ","line":"558","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"559","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}specId","slot":"0","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"559"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"562","C":[{"N":"varRef","name":"Q{}hasTitle","slot":"13","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"563"},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"564","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"565","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValue","slot":"9","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"565"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"fn","name":"not","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"568","C":[{"N":"varRef","name":"Q{}hasDescription","slot":"14"}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"569","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Specification with id "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"571","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}specId","slot":"0","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"571"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"576","C":[{"N":"varRef","name":"Q{}hasDescription","slot":"14","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"576"},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"577","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"578","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValue","slot":"12","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"578"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"581","C":[{"N":"choose","sType":"? ","line":"582","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"582","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"583","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"583"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"2","prec":"0","seq":"11","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"356","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='SPEC-OBJECT']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"SPEC-OBJECT","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}objectId","slot":"0","sType":"*NE ","line":"357","role":"action","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"357"},{"N":"let","var":"Q{}typeRef","slot":"1","sType":"*NE ","line":"358","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"358","C":[{"N":"slash","op":"/","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TYPE"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-OBJECT-TYPE-REF"}]}]}]}]},{"N":"let","var":"Q{}values","slot":"2","sType":"*NE ","line":"359","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"359","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"VALUES"}]}]},{"N":"let","var":"Q{}nameAttrDefString","slot":"3","sType":"*NE ","line":"366","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"366","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-STRING"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Name"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.ChapterName"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Name"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Title"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}nameAttrDefXhtml","slot":"4","sType":"*NE ","line":"372","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"372","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-XHTML"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Name"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.ChapterName"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Name"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Title"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}textAttrDefXhtml","slot":"5","sType":"*NE ","line":"377","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"377","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-XHTML"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Text"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Description"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Text"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}textAttrDefString","slot":"6","sType":"*NE ","line":"382","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"382","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-STRING"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Text"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Description"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Text"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}titleValueString","slot":"7","sType":"*NE ","line":"385","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"386","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"387"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}nameAttrDefString","slot":"3","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"388"}]}]}]},{"N":"let","var":"Q{}titleValueXhtml","slot":"8","sType":"*NE ","line":"391","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"392","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"393"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}nameAttrDefXhtml","slot":"4","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"394"}]}]}]},{"N":"let","var":"Q{}titleValue","slot":"9","sType":"*NE ","line":"397","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"choose","sType":"? ","type":"item()*","line":"398","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"399","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValueString","slot":"7"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"400","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValueString","slot":"7","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"400"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"402","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValueXhtml","slot":"8"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"403","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValueXhtml","slot":"8","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"403"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"let","var":"Q{}descriptionValueXhtml","slot":"10","sType":"*NE ","line":"410","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"411","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"412"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}textAttrDefXhtml","slot":"5","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"413"}]}]}]},{"N":"let","var":"Q{}descriptionValueString","slot":"11","sType":"*NE ","line":"416","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"417","C":[{"N":"withParam","name":"Q{}values","slot":"2","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"2","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"418"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}textAttrDefString","slot":"6","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"419"}]}]}]},{"N":"let","var":"Q{}descriptionValue","slot":"12","sType":"*NE ","line":"422","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","role":"select","C":[{"N":"choose","sType":"? ","type":"item()*","line":"423","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"424","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValueXhtml","slot":"10"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"425","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValueXhtml","slot":"10","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"425"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"427","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValueString","slot":"11"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"428","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValueString","slot":"11","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"428"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"let","var":"Q{}hasTitle","slot":"13","sType":"*NE ","line":"434","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"434","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValue","slot":"9"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"let","var":"Q{}hasDescription","slot":"14","sType":"*NE ","line":"435","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"435","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValue","slot":"12"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"elem","name":"cas:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"437","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","sType":"1NA ","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","line":"438","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"439","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}typeRef","slot":"1","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"439"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"att","name":"id","sType":"1NA ","line":"441","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"442","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}objectId","slot":"0","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"442"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"choose","sType":"? ","type":"item()*","line":"445","C":[{"N":"varRef","name":"Q{}hasTitle","slot":"13","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"446"},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"447","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"448","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValue","slot":"9","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"448"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"fn","name":"not","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"451","C":[{"N":"varRef","name":"Q{}hasDescription","slot":"14"}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"452","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Object with id "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"454","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}objectId","slot":"0","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"454"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"459","C":[{"N":"varRef","name":"Q{}hasDescription","slot":"14","sType":"*","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"459"},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"460","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"461","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValue","slot":"12","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"461"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"464","C":[{"N":"choose","sType":"? ","line":"465","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"465","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"466","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"466"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"3","prec":"0","seq":"7","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"209","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='ATTRIBUTE-DEFINITION-ENUMERATION']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"ATTRIBUTE-DEFINITION-ENUMERATION","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"cas:Property","sType":"1NE nQ{http://product-information-graph.org}Property ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"210","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:DatatypeProperty"}]},{"N":"att","name":"id","sType":"1NA ","line":"211","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"212","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"212"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"214","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"215","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"215"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"217","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"217","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"218","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"219","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"219"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"222","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"222","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"223","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"224","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"224"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"sh:datatype","sType":"1NE nQ{http://www.w3.org/ns/shacl#}datatype ","nsuri":"http://www.w3.org/ns/shacl#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"227","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"xs:string"}]}]}]}]}]},{"N":"templateRule","rank":"4","prec":"0","seq":"6","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"186","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='ATTRIBUTE-DEFINITION-DATE']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"ATTRIBUTE-DEFINITION-DATE","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"cas:Property","sType":"1NE nQ{http://product-information-graph.org}Property ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"187","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:DatatypeProperty"}]},{"N":"att","name":"id","sType":"1NA ","line":"188","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"189","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"189"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"191","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"192","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"192"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"194","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"194","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"195","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"196","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"196"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"199","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"199","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"200","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"201","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"201"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"sh:datatype","sType":"1NE nQ{http://www.w3.org/ns/shacl#}datatype ","nsuri":"http://www.w3.org/ns/shacl#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"204","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"xs:dateTime"}]}]}]}]}]},{"N":"templateRule","rank":"5","prec":"0","seq":"5","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"163","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='ATTRIBUTE-DEFINITION-BOOLEAN']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"ATTRIBUTE-DEFINITION-BOOLEAN","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"cas:Property","sType":"1NE nQ{http://product-information-graph.org}Property ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"164","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:DatatypeProperty"}]},{"N":"att","name":"id","sType":"1NA ","line":"165","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"166","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"166"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"168","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"169","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"169"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"171","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"171","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"172","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"173","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"173"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"176","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"176","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"177","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"178","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"178"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"sh:datatype","sType":"1NE nQ{http://www.w3.org/ns/shacl#}datatype ","nsuri":"http://www.w3.org/ns/shacl#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"181","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"xs:boolean"}]}]}]}]}]},{"N":"templateRule","rank":"6","prec":"0","seq":"4","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"140","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='ATTRIBUTE-DEFINITION-REAL']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"ATTRIBUTE-DEFINITION-REAL","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"cas:Property","sType":"1NE nQ{http://product-information-graph.org}Property ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"141","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:DatatypeProperty"}]},{"N":"att","name":"id","sType":"1NA ","line":"142","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"143","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"143"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"145","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"146","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"146"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"148","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"148","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"149","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"150","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"150"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"153","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"153","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"154","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"155","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"155"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"sh:datatype","sType":"1NE nQ{http://www.w3.org/ns/shacl#}datatype ","nsuri":"http://www.w3.org/ns/shacl#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"158","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"xs:double"}]}]}]}]}]},{"N":"templateRule","rank":"7","prec":"0","seq":"3","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"117","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='ATTRIBUTE-DEFINITION-INTEGER']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"ATTRIBUTE-DEFINITION-INTEGER","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"cas:Property","sType":"1NE nQ{http://product-information-graph.org}Property ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"118","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:DatatypeProperty"}]},{"N":"att","name":"id","sType":"1NA ","line":"119","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"120","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"120"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"122","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"123","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"123"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"125","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"125","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"126","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"127","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"127"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"130","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"130","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"131","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"132","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"132"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"sh:datatype","sType":"1NE nQ{http://www.w3.org/ns/shacl#}datatype ","nsuri":"http://www.w3.org/ns/shacl#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"135","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"xs:integer"}]}]}]}]}]},{"N":"templateRule","rank":"8","prec":"0","seq":"2","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"94","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='ATTRIBUTE-DEFINITION-XHTML']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"ATTRIBUTE-DEFINITION-XHTML","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"cas:Property","sType":"1NE nQ{http://product-information-graph.org}Property ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"95","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:DatatypeProperty"}]},{"N":"att","name":"id","sType":"1NA ","line":"96","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"97","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"97"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"99","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"100","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"100"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"102","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"102","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"103","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"104","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"104"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"107","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"107","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"108","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"109","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"109"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"sh:datatype","sType":"1NE nQ{http://www.w3.org/ns/shacl#}datatype ","nsuri":"http://www.w3.org/ns/shacl#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"112","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"xs:string"}]}]}]}]}]},{"N":"templateRule","rank":"9","prec":"0","seq":"1","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"71","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='ATTRIBUTE-DEFINITION-STRING']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"ATTRIBUTE-DEFINITION-STRING","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"cas:Property","sType":"1NE nQ{http://product-information-graph.org}Property ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"72","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:DatatypeProperty"}]},{"N":"att","name":"id","sType":"1NA ","line":"73","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"74","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"74"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"76","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"77","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"77"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"79","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"79","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"80","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"81","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"81"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"84","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"84","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"85","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"86","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"86"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"sh:datatype","sType":"1NE nQ{http://www.w3.org/ns/shacl#}datatype ","nsuri":"http://www.w3.org/ns/shacl#","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"89","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"xs:string"}]}]}]}]}]},{"N":"templateRule","rank":"10","prec":"0","seq":"0","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"5","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"/","prio":"-0.5","matches":"ND","C":[{"N":"p.nodeTest","role":"match","test":"ND","sType":"1ND","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# "},{"N":"let","var":"Q{}header","slot":"0","sType":"*NE ","line":"6","role":"action","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"6","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REQ-IF-HEADER"}]}]}]}]}]},{"N":"elem","name":"cas:aPackage","sType":"1NE nQ{http://product-information-graph.org}aPackage ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"7","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"cas:Package"}]},{"N":"att","name":"id","sType":"1NA ","line":"8","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"9","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","line":"10","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"11","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"11","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"reqif-package"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"18","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"19","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"20","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TITLE"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TITLE"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"21","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"21","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TITLE"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"23","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REPOSITORY-ID"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REPOSITORY-ID"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Requirements from "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"25","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"25","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REPOSITORY-ID"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Requirements from unknown project"}]}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"32","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"33","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"34","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"COMMENT"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"COMMENT"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"35","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"35","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"COMMENT"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"37","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REQ-IF-TOOL-ID"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REQ-IF-TOOL-ID"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Created with "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"39","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"39","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REQ-IF-TOOL-ID"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"ReqIF Document"}]}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"46","C":[{"N":"choose","sType":"? ","line":"47","C":[{"N":"docOrder","sType":"*NE","line":"47","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"CREATION-TIME"}]}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"48","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"48","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"CREATION-TIME"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"elem","name":"graph","sType":"1NE nQ{}graph ","nsuri":"","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"51","C":[{"N":"sequence","sType":"* ","C":[{"N":"applyT","sType":"* ","line":"53","mode":"#unnamed","bSlot":"1","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"53","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-OBJECT-TYPE"}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-ATTRIBUTES"}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"fn","name":"starts-with","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"54","mode":"#unnamed","bSlot":"1","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"54","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPECIFICATION-TYPE"}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-ATTRIBUTES"}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"fn","name":"starts-with","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"55","mode":"#unnamed","bSlot":"1","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"55","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-RELATION-TYPE"}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-ATTRIBUTES"}]}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"fn","name":"starts-with","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"57","mode":"Q{}entity","bSlot":"2","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"57","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-OBJECT-TYPE"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"58","mode":"Q{}entity","bSlot":"2","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"58","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPECIFICATION-TYPE"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"59","mode":"Q{}relationship","bSlot":"3","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"59","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-RELATION-TYPE"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"61","mode":"#unnamed","bSlot":"1","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"61","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPECIFICATION"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"63","mode":"#unnamed","bSlot":"1","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"63","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-OBJECT"}]}]}]}]}]}]},{"N":"applyT","sType":"* ","line":"65","mode":"#unnamed","bSlot":"1","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"65","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-RELATION"}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"2","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}entity","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"9","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"261","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='SPECIFICATION-TYPE']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"SPECIFICATION-TYPE","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"cas:Entity","sType":"1NE nQ{http://product-information-graph.org}Entity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"262","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:Class"}]},{"N":"att","name":"id","sType":"1NA ","line":"263","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"264","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"264"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"266","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Root"}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"267","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"268","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"268"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"270","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"270","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"271","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"272","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"272"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"275","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"275","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"276","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"277","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"277"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}enumeratedProperty ","line":"281","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"281","C":[{"N":"slash","op":"/","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-ATTRIBUTES"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"fn","name":"starts-with","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]}]},{"N":"elem","name":"cas:enumeratedProperty","sType":"1NE nQ{http://product-information-graph.org}enumeratedProperty ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"282","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"283","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"283"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"0","seq":"8","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"232","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='SPEC-OBJECT-TYPE']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"SPEC-OBJECT-TYPE","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"elem","name":"cas:Entity","sType":"1NE nQ{http://product-information-graph.org}Entity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","role":"action","line":"233","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:Class"}]},{"N":"att","name":"id","sType":"1NA ","line":"234","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"235","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"235"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"237","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Entity"}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"238","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"239","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"239"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"241","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"241","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"242","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"243","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"243"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"246","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"246","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"247","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"248","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"248"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}enumeratedProperty ","line":"252","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"252","C":[{"N":"slash","op":"/","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-ATTRIBUTES"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"fn","name":"starts-with","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]}]},{"N":"elem","name":"cas:enumeratedProperty","sType":"1NE nQ{http://product-information-graph.org}enumeratedProperty ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"253","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"254","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"254"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]},{"N":"co","binds":"","id":"3","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","name":"Q{}relationship","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"10","ns":"xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl#","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/od/source/repos/GfSE/CASCaDE-Reference-Implementation/public/assets/xslt/ReqIF-to-CAS.xsl","line":"290","module":"ReqIF-to-CAS.xsl","expand-text":"false","match":"*[local-name()='SPEC-RELATION-TYPE']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"SPEC-RELATION-TYPE","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}relationTypeId","slot":"0","sType":"*NE ","line":"291","role":"action","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"291"},{"N":"sequence","sType":"?NE ","C":[{"N":"elem","name":"cas:Relationship","sType":"1NE nQ{http://product-information-graph.org}Relationship ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"294","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:Class"}]},{"N":"att","name":"id","sType":"1NA ","line":"295","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"296","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}relationTypeId","slot":"0","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"296"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"298","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Relationship"}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"299","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"300","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LONG-NAME","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"300"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"choose","sType":"? ","line":"302","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"302","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}DESC"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"303","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"304","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}DESC","name":"attribute","nodeTest":"*NA nQ{}DESC","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"304"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"307","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","line":"307","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"308","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"309","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"309"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}enumeratedProperty ","line":"313","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"313","C":[{"N":"slash","op":"/","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-ATTRIBUTES"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"fn","name":"starts-with","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-"},{"N":"str","val":"http://www.w3.org/2005/xpath-functions/collation/codepoint"}]}]}]}]},{"N":"elem","name":"cas:enumeratedProperty","sType":"1NE nQ{http://product-information-graph.org}enumeratedProperty ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"314","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"315","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"315"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"elem","name":"cas:Link","sType":"1NE nQ{http://product-information-graph.org}Link ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"321","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:ObjectProperty"}]},{"N":"att","name":"id","sType":"1NA ","line":"322","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"323","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"323","C":[{"N":"atomSing","diag":"0|0||concat","card":"?","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}relationTypeId","slot":"0"}]}]},{"N":"str","val":"-toSource"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"325","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Link"}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"326","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"327","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"327","C":[{"N":"atomSing","diag":"0|0||concat","card":"?","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"}]}]},{"N":"str","val":" to Source"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}enumeratedEndpoint ","line":"330","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"330","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-OBJECT-TYPE"}]}]}]}]}]},{"N":"elem","name":"cas:enumeratedEndpoint","sType":"1NE nQ{http://product-information-graph.org}enumeratedEndpoint ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"331","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"332","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"332"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]},{"N":"elem","name":"cas:Link","sType":"1NE nQ{http://product-information-graph.org}Link ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"338","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"owl:ObjectProperty"}]},{"N":"att","name":"id","sType":"1NA ","line":"339","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"340","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"340","C":[{"N":"atomSing","diag":"0|0||concat","card":"?","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}relationTypeId","slot":"0"}]}]},{"N":"str","val":"-toTarget"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"342","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"343","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"fn","name":"concat","sType":"1AS","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"343","C":[{"N":"atomSing","diag":"0|0||concat","card":"?","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"}]}]},{"N":"str","val":" to Target"}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"elem","name":"cas:specializes","sType":"1NE nQ{http://product-information-graph.org}specializes ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"345","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"cas:Link"}]}]},{"N":"forEach","sType":"*NE nQ{http://product-information-graph.org}enumeratedEndpoint ","line":"347","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"347","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-OBJECT-TYPE"}]}]}]}]}]},{"N":"elem","name":"cas:enumeratedEndpoint","sType":"1NE nQ{http://product-information-graph.org}enumeratedEndpoint ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ xs=http://www.w3.org/2001/XMLSchema# cas=http://product-information-graph.org csc=http://omg.org/CASCaRA/cas/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# owl=http://www.w3.org/2002/07/owl#","line":"348","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"349","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}IDENTIFIER","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ cas=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd sh=http://www.w3.org/ns/shacl# xs=http://www.w3.org/2001/XMLSchema# owl=http://www.w3.org/2002/07/owl# ","role":"select","line":"349"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]}]}]}]}]}]}]}]},{"N":"overridden"},{"N":"output","C":[{"N":"property","name":"Q{http://saxon.sf.net/}stylesheet-version","value":"10"},{"N":"property","name":"method","value":"xml"},{"N":"property","name":"encoding","value":"UTF-8"},{"N":"property","name":"indent","value":"yes"},{"N":"property","name":"standalone","value":"yes"}]},{"N":"decimalFormat"}],"Σ":"ce4d04d1"} \ No newline at end of file diff --git a/public/assets/xslt/ReqIF-to-CAS.xsl b/public/assets/xslt/ReqIF-to-CAS.xsl new file mode 100644 index 0000000..ffa8af6 --- /dev/null +++ b/public/assets/xslt/ReqIF-to-CAS.xsl @@ -0,0 +1,750 @@ + + + + + + + + + + + + + + reqif-package + + + + + + + + + + Requirements from + + + + Requirements from unknown project + + + + + + + + + + Created with + + + + ReqIF Document + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + xs:string + + + + + + + + + + + + + + + + + + + + + + + xs:string + + + + + + + + + + + + + + + + + + + + + + + xs:integer + + + + + + + + + + + + + + + + + + + + + + + xs:double + + + + + + + + + + + + + + + + + + + + + + + xs:boolean + + + + + + + + + + + + + + + + + + + + + + + xs:dateTime + + + + + + + + + + + + + + + + + + + + + + + xs:string + + + + + + + + + + cas:Entity + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cas:Root + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + cas:Relationship + + + + + + + + + + + + + + + + + + + + + + + + + + + cas:Link + + + + + + + + + + + + + + + + + + + + cas:Link + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Object with id + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Specification with id + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/assets/xslt/ReqIF-to-PIG.sef.json b/public/assets/xslt/ReqIF-to-PIG.sef.json deleted file mode 100644 index d479612..0000000 --- a/public/assets/xslt/ReqIF-to-PIG.sef.json +++ /dev/null @@ -1 +0,0 @@ -{"N":"package","version":"10","packageVersion":"1","saxonVersion":"SaxonJS 2.7","target":"JS","targetVersion":"2","name":"TOP-LEVEL","relocatable":"false","buildDateTime":"2026-03-09T14:54:28.949+01:00","ns":"xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd","C":[{"N":"co","binds":"","id":"0","uniform":"true","C":[{"N":"template","flags":"os","module":"ReqIF-to-PIG.xsl","slots":"200","baseUri":"file://C:/Users/OD/Documents/GitHub/CASCaDE/Reference-Implementation/public/assets/xslt/ReqIF-to-PIG.xsl","name":"Q{}getAttributeValue","line":"137","expand-text":"false","sType":"* ","C":[{"N":"sequence","role":"body","sType":"* ","C":[{"N":"param","name":"Q{}values","slot":"0","sType":"* ","as":"* ","flags":"","line":"138","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"0","sType":"* "}]},{"N":"param","name":"Q{}attrDefId","slot":"1","sType":"* ","as":"* ","flags":"","line":"139","C":[{"N":"str","sType":"1AS ","val":"","role":"select"},{"N":"supplied","role":"conversion","slot":"1","sType":"* "}]},{"N":"let","var":"Q{}stringValue","slot":"2","sType":"* ","line":"144","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"144","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}values","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"and","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-VALUE-STRING"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"DEFINITION"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-STRING-REF"}]}]}]},{"N":"varRef","name":"Q{}attrDefId","slot":"1"}]}]}]}]}]}]},{"N":"let","var":"Q{}xhtmlValue","slot":"3","sType":"* ","line":"149","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"149","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}values","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"and","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-VALUE-XHTML"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"slash","op":"/","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"DEFINITION"}]}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-XHTML-REF"}]}]}]},{"N":"varRef","name":"Q{}attrDefId","slot":"1"}]}]}]}]}]}]},{"N":"choose","sType":"* ","type":"item()*","line":"150","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"152","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"153","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}THE-VALUE","role":"select","line":"153","C":[{"N":"docOrder","sType":"*NA nQ{}THE-VALUE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"156","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"157","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"157","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}stringValue","slot":"2"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"docOrder","sType":"*NE","line":"160","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]}]}]},{"N":"copyOf","flags":"c","ns":"xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ex=http://ns.saxonica.com/xslt/export","line":"161","sType":"*N","C":[{"N":"docOrder","sType":"*N","role":"select","line":"161","C":[{"N":"docOrder","sType":"*N","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"THE-VALUE"}]}]}]},{"N":"axis","name":"child","nodeTest":"*N u[NT,NP,NC,NE]"}]}]}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"164","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"165","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}THE-VALUE","role":"select","line":"165","C":[{"N":"docOrder","sType":"*NA nQ{}THE-VALUE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}xhtmlValue","slot":"3"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}THE-VALUE"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]},{"N":"co","id":"1","binds":"0 1","C":[{"N":"mode","onNo":"TC","flags":"","patternSlots":"0","prec":"","C":[{"N":"templateRule","rank":"0","prec":"0","seq":"1","ns":"xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/OD/Documents/GitHub/CASCaDE/Reference-Implementation/public/assets/xslt/ReqIF-to-PIG.xsl","line":"62","module":"ReqIF-to-PIG.xsl","expand-text":"false","match":"*[local-name()='SPEC-OBJECT']","prio":"0.5","matches":"NE","C":[{"N":"p.withPredicate","role":"match","sType":"1NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"p.nodeTest","test":"NE"},{"N":"compareToString","op":"eq","val":"SPEC-OBJECT","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]}]}]},{"N":"let","var":"Q{}objectId","slot":"0","sType":"*NE ","line":"63","role":"action","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"63"},{"N":"let","var":"Q{}values","slot":"1","sType":"*NE ","line":"64","C":[{"N":"filter","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"64","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"VALUES"}]}]},{"N":"let","var":"Q{}nameAttrDef","slot":"3","sType":"*NE ","line":"73","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"73","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-STRING"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Name"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.ChapterName"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Name"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Title"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"let","var":"Q{}textAttrDef","slot":"4","sType":"*NE ","line":"79","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"79","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"ATTRIBUTE-DEFINITION-XHTML"}]}]},{"N":"or","C":[{"N":"or","C":[{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"ReqIF.Text"}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Description"}]}]},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LONG-NAME"},{"N":"str","val":"Text"}]}]}]}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"elem","name":"pig:anEntity","sType":"1NE nQ{http://product-information-graph.org}anEntity ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"80","C":[{"N":"sequence","sType":"* ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"IREB:Requirement"}]},{"N":"att","name":"id","sType":"1NA ","line":"81","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"valueOf","sType":"1NT ","flags":"l","line":"82","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}objectId","slot":"0","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"82"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"let","var":"Q{}titleValue","slot":"5","sType":"* ","line":"85","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/OD/Documents/GitHub/CASCaDE/Reference-Implementation/public/assets/xslt/ReqIF-to-PIG.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"86","C":[{"N":"withParam","name":"Q{}values","slot":"1","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"1","sType":"*","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"87"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}nameAttrDef","slot":"3","sType":"*","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"88"}]}]}]},{"N":"let","var":"Q{}descriptionValue","slot":"6","sType":"* ","line":"93","C":[{"N":"doc","sType":"1ND ","base":"file://C:/Users/OD/Documents/GitHub/CASCaDE/Reference-Implementation/public/assets/xslt/ReqIF-to-PIG.xsl","role":"select","C":[{"N":"callT","bSlot":"0","sType":"* ","name":"Q{}getAttributeValue","line":"94","C":[{"N":"withParam","name":"Q{}values","slot":"1","sType":"*","C":[{"N":"varRef","name":"Q{}values","slot":"1","sType":"*","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"95"}]},{"N":"withParam","name":"Q{}attrDefId","slot":"0","sType":"*","C":[{"N":"varRef","name":"Q{}textAttrDef","slot":"4","sType":"*","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"96"}]}]}]},{"N":"let","var":"Q{}hasTitle","slot":"7","sType":"* ","line":"101","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"101","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}titleValue","slot":"5"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"let","var":"Q{}hasDescription","slot":"8","sType":"* ","line":"102","C":[{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"102","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"normalize-space","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"varRef","name":"Q{}descriptionValue","slot":"6"}]}]}]}]},{"N":"int","val":"0"}]},{"N":"sequence","sType":"? ","C":[{"N":"choose","sType":"? ","type":"item()*","line":"105","C":[{"N":"varRef","name":"Q{}hasTitle","slot":"7","sType":"*","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"106"},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"108","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"109","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}titleValue","slot":"5","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"109"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"fn","name":"not","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"112","C":[{"N":"varRef","name":"Q{}hasDescription","slot":"8"}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"114","C":[{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Object with id "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"116","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}objectId","slot":"0","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"116"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"choose","sType":"? ","line":"123","C":[{"N":"varRef","name":"Q{}hasDescription","slot":"8","sType":"*","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"123"},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"124","C":[{"N":"valueOf","flags":"l","sType":"1NT ","line":"125","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"varRef","sType":"*","name":"Q{}descriptionValue","slot":"6","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"125"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"129","C":[{"N":"choose","sType":"? ","line":"130","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"130","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE"}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"131","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"axis","sType":"*NA nQ{}LAST-CHANGE","name":"attribute","nodeTest":"*NA nQ{}LAST-CHANGE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","role":"select","line":"131"}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"templateRule","rank":"1","prec":"0","seq":"0","ns":"xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd","minImp":"0","flags":"s","slots":"200","baseUri":"file://C:/Users/OD/Documents/GitHub/CASCaDE/Reference-Implementation/public/assets/xslt/ReqIF-to-PIG.xsl","line":"5","module":"ReqIF-to-PIG.xsl","expand-text":"false","match":"/","prio":"-0.5","matches":"ND","C":[{"N":"p.nodeTest","role":"match","test":"ND","sType":"1ND","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd "},{"N":"let","var":"Q{}header","slot":"0","sType":"*NE ","line":"6","role":"action","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"6","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REQ-IF-HEADER"}]}]}]}]}]},{"N":"elem","name":"pig:aPackage","sType":"1NE nQ{http://product-information-graph.org}aPackage ","nsuri":"http://product-information-graph.org","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"7","C":[{"N":"sequence","sType":"*N ","C":[{"N":"att","name":"rdf:type","nsuri":"http://www.w3.org/1999/02/22-rdf-syntax-ns#","sType":"1NA ","C":[{"N":"str","sType":"1AS ","val":"pig:Package"}]},{"N":"att","name":"id","sType":"1NA ","line":"9","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"choose","sType":"?NT ","type":"item()*","line":"10","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","line":"11","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"12","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","role":"select","line":"12","C":[{"N":"docOrder","sType":"*NA nQ{}IDENTIFIER","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"axis","name":"attribute","nodeTest":"*NA nQ{}IDENTIFIER"}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"reqif-package"}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":""}]}]},{"N":"elem","name":"dcterms:title","sType":"1NE nQ{http://purl.org/dc/terms/}title ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"20","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"21","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"22","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TITLE"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TITLE"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"23","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"23","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"TITLE"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"25","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REPOSITORY-ID"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REPOSITORY-ID"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Requirements from "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"27","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"27","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REPOSITORY-ID"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Requirements from unknown project"}]}]}]},{"N":"elem","name":"dcterms:description","sType":"1NE nQ{http://purl.org/dc/terms/}description ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"35","C":[{"N":"choose","sType":"*NT ","type":"item()*","line":"36","C":[{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"37","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"COMMENT"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"COMMENT"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"38","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"38","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"COMMENT"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"and","sType":"1AB","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","line":"40","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REQ-IF-TOOL-ID"}]}]}]}]},{"N":"gc10","op":">","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"string-length","C":[{"N":"fn","name":"string","C":[{"N":"first","C":[{"N":"docOrder","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REQ-IF-TOOL-ID"}]}]}]}]}]}]}]},{"N":"int","val":"0"}]}]},{"N":"sequence","sType":"*NT ","C":[{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"Created with "}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"42","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"42","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"REQ-IF-TOOL-ID"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]}]},{"N":"true"},{"N":"valueOf","sType":"1NT ","C":[{"N":"str","sType":"1AS ","val":"ReqIF Document"}]}]}]},{"N":"elem","name":"dcterms:modified","sType":"1NE nQ{http://purl.org/dc/terms/}modified ","nsuri":"http://purl.org/dc/terms/","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"50","C":[{"N":"choose","sType":"? ","line":"51","C":[{"N":"docOrder","sType":"*NE","line":"51","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"CREATION-TIME"}]}]}]}]}]},{"N":"valueOf","flags":"l","sType":"1NT ","line":"52","C":[{"N":"fn","name":"string-join","role":"select","C":[{"N":"first","C":[{"N":"forEach","sType":"*AS ","C":[{"N":"data","sType":"*A ","C":[{"N":"mergeAdj","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"52","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"treat","as":"N","diag":"1|0|XPTY0019|slash","C":[{"N":"varRef","name":"Q{}header","slot":"0"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"CREATION-TIME"}]}]}]}]}]}]}]},{"N":"fn","name":"string","sType":"1AS ","C":[{"N":"dot"}]}]}]},{"N":"str","sType":"1AS ","val":" "}]}]},{"N":"true"},{"N":"empty","sType":"0 "}]}]},{"N":"elem","name":"graph","sType":"1NE nQ{}graph ","nsuri":"","namespaces":"dcterms=http://purl.org/dc/terms/ pig=http://product-information-graph.org rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd csc=http://omg.org/CASCaRA/cas/","line":"56","C":[{"N":"applyT","sType":"* ","line":"57","mode":"#unnamed","bSlot":"1","C":[{"N":"docOrder","sType":"*NE","role":"select","line":"57","C":[{"N":"docOrder","sType":"*NE","ns":"= xml=~ xsl=~ pig=http://product-information-graph.org dcterms=http://purl.org/dc/terms/ rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# csc=http://omg.org/CASCaRA/cas/ reqif=http://www.omg.org/spec/ReqIF/20110401/reqif.xsd ","C":[{"N":"slash","op":"/","C":[{"N":"slash","op":"/","C":[{"N":"root"},{"N":"axis","name":"descendant-or-self","nodeTest":"*N"}]},{"N":"filter","C":[{"N":"axis","name":"child","nodeTest":"*NE"},{"N":"gc10","op":"=","comp":"GAC|http://www.w3.org/2005/xpath-functions/collation/codepoint","card":"1:1","C":[{"N":"fn","name":"local-name","C":[{"N":"dot"}]},{"N":"str","val":"SPEC-OBJECT"}]}]}]}]}]}]}]}]}]}]}]}]}]},{"N":"overridden"},{"N":"output","C":[{"N":"property","name":"Q{http://saxon.sf.net/}stylesheet-version","value":"10"},{"N":"property","name":"method","value":"xml"},{"N":"property","name":"encoding","value":"UTF-8"},{"N":"property","name":"indent","value":"yes"},{"N":"property","name":"standalone","value":"yes"}]},{"N":"decimalFormat"}],"Σ":"4bd6006f"} \ No newline at end of file diff --git a/public/assets/xslt/ReqIF-to-PIG.xsl b/public/assets/xslt/ReqIF-to-PIG.xsl deleted file mode 100644 index 9cc6258..0000000 --- a/public/assets/xslt/ReqIF-to-PIG.xsl +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - reqif-package - - - - - - - - - - - Requirements from - - - - Requirements from unknown project - - - - - - - - - - - Created with - - - - ReqIF Document - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Object with id - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/public/assets/xslt/STEP-p28-RDF.xsl.orig b/public/assets/xslt/STEP-p28-RDF.xsl.orig new file mode 100644 index 0000000..392d5cf --- /dev/null +++ b/public/assets/xslt/STEP-p28-RDF.xsl.orig @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/public/assets/xslt/SysML-v1-RDF.xsl.orig b/public/assets/xslt/SysML-v1-RDF.xsl.orig new file mode 100644 index 0000000..e57b747 --- /dev/null +++ b/public/assets/xslt/SysML-v1-RDF.xsl.orig @@ -0,0 +1,955 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/App.vue b/src/App.vue index bafd836..6f8bcd2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -19,9 +19,9 @@

    Interfaces

    + +

    Document View

    +
    -->

    mdi-githubReport an Issue

    @@ -65,4 +65,8 @@ h3 { text-align: center; } + + .main-content { + height: 100%; + } diff --git a/src/build-info.ts b/src/build-info.ts index 0813737..6a3c448 100644 --- a/src/build-info.ts +++ b/src/build-info.ts @@ -1,13 +1,13 @@ // Auto-generated by scripts/generate-build-info.js - DO NOT EDIT -// Generated at: 2026-03-09T13:54:26.755Z +// Generated at: 2026-06-12T12:30:47.307Z export const BUILD_INFO = { // from package.json: - appName: 'CASCaRA-App', - appVersion: '0.1.0', + appName: 'CASCaRA-Validation-Tool', + appVersion: '0.2.6', // from Git: - buildTime: '2026-03-09T13:54:26.755Z', - gitCommit: 'b7704b2', - gitBranch: '55-transform-pig-to-html', + buildTime: '2026-06-12T12:30:47.307Z', + gitCommit: '1c95ca9', + gitBranch: '94-transform-fmi-to-cascara', gitDirty: false }; diff --git a/src/common/export/html/exportHTML.ts b/src/common/export/html/getHTML.ts similarity index 71% rename from src/common/export/html/exportHTML.ts rename to src/common/export/html/getHTML.ts index c734cee..f67de75 100644 --- a/src/common/export/html/exportHTML.ts +++ b/src/common/export/html/getHTML.ts @@ -7,10 +7,14 @@ /** * CASCaDE Reference Implementation – HTML Export Helpers * ------------------------------------------------------ + * Authors: oskar.dungern@gfse.org + * Copyright 2026 GfSE (https://gfse.org) + * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) + * * This module provides central HTML helpers for the PIG metamodel classes. * For each supported type (APackage, AnEntity, ARelationship), the static - * object `toHTML` offers a function that generates an HTML representation - * of the respective instance. + * class `GetHTML` offers methods that generate HTML representations + * of the respective instances. * * - Always returns valid HTML snippets (string or string[]). * - Error and status information is included in the HTML output. @@ -18,22 +22,20 @@ * - The logic is decoupled from the metamodel classes. * * Usage: - * import { toHTML } from './exportHTML'; - * const html = toHTML.anEntity(entity, options); - * or - * const html = anEntity.toHTML(options); - * - * Copyright 2026 GfSE (https://gfse.org) - * License: Apache 2.0 + * import { GetHTML } from './getHTML'; + * const html = GetHTML.anEntity(entity, options); * * Design Decisions: * - Combine all HTML export logic in a single module for better maintainability. - * - Prefer calls of helpers from genuine getHTML methods instead of additions to the metamodel prototypes - * and type merging - because the latter appears to be rather fragile. + * - Use a class with static methods for better organization and extensibility. + * - In earlier versions there were individual methods getHTML for each itemType in the metaclasses. + * These have been calling the static methods in this module. + * However, to avoid a dependency of pig-metaclasses to this module, the getHTML methods have been removed. + * Now, for creating an HTML representation call getHTML(item,options) instead of item.getHTML(options). */ -import { PigItemType, PigItemTypeValue, AnEntity, APackage, ARelationship, IAProperty, getLocalText, TPigAnElement } from '../../schema/pig/ts/pig-metaclasses'; +import { PigItemType, PigItemTypeValue, AnEntity, APackage, ARelationship, IAProperty, TPigAnElement } from '../../schema/pig/ts/pig-metaclasses'; import { tagIETF, LIB } from '../../lib/helpers'; export type stringHTML = string; // contains HTML code @@ -43,52 +45,76 @@ export interface IOptionsHTML { lang?: tagIETF; } -export const toHTML = { - aPackage(pkg: APackage, options?: IOptionsHTML): stringHTML[] { - const pkgSt = pkg.status(); - if (!pkgSt.ok) { - return [ - `
    - Invalid aPackage with id ${pkg.id} - status: (${pkgSt.status}) ${pkgSt.statusText ?? ''} -
    ` - ]; - } +/** + * Generic HTML export function that dispatches to the appropriate method based on itemType + * @param item - Any PIG item (APackage, AnEntity, ARelationship) + * @param options - HTML export options + * @returns HTML representation as array of HTML strings + * + * @example + * import { getHTML } from './getHTML'; + * const html = getHTML(item, options); + */ +export function getHTML(item: TPigAnElement, options?: IOptionsHTML): stringHTML[] { + switch (item.itemType) { + case PigItemType.aPackage: + return GetHTML.aPackage(item as APackage, options); + case PigItemType.anEntity: + return [GetHTML.anEntity(item as AnEntity, options)]; + case PigItemType.aRelationship: + return [GetHTML.aRelationship(item as ARelationship, options)]; + default: + return [`
    + ${item.id}: No HTML representation for itemType: ${item.itemType} +
    `]; + } +} +class GetHTML { + static aPackage(pkg: APackage, options?: IOptionsHTML): stringHTML[] { // Extract language preference from options, default to 'en-US' const lang = options?.lang ?? 'en-US'; const widthMain = options?.widthMain ?? '67%'; const includeItemTypes = options?.itemType ?? [PigItemType.anEntity]; + const pkgSt = pkg.status(); // 1. Package metadata as first element with localization - const titleText = passify(getLocalText(pkg.title, lang)); - const descText = passify(getLocalText(pkg.description, lang)); - - const pkgMetadata = `
    -
    -

    ${titleText || 'Untitled Package'}

    - ${descText ? `
    ${descText}
    ` : ''} -
    -
    -
    - ${metadataToHTML(pkg, lang)} -
    Items in Graph
    ${pkg.graph.length}
    -
    -
    + const errHTML: stringHTML = pkgSt.ok ? '' + : `
    + Invalid aPackage - status: (${pkgSt.status}) ${pkgSt.statusText ?? ''}
    `; - const result: stringHTML[] = [pkgMetadata]; - + const titleText = passify(LIB.stripHTML(LIB.getLocalText(pkg.title, lang))); + const descText = passify(LIB.getLocalText(pkg.description, lang)); + + const pkgHTML = `
    +
    +

    ${titleText || 'Untitled Package'}

    + ${descText ? `
    ${descText}
    ` : ''} + ${errHTML} +
    +
    +
    + ${metadataToHTML(pkg, lang)} +
    Items in Graph
    ${pkg.graph.length}
    +
    +
    +
    `; + + const result: stringHTML[] = [pkgHTML]; + + // 2. Graph items - filter by type for (const item of pkg.graph) { - if (includeItemTypes.includes(item.itemType) && typeof toHTML.anEntity === 'function') { + if (includeItemTypes.includes(item.itemType)) { // call directly the helper function instead of the getHTML method of the item: - result.push(toHTML.anEntity(item as AnEntity, options)); + result.push(GetHTML.anEntity(item as AnEntity, options)); } } return result; - }, + } - anEntity(entity: AnEntity, options?: IOptionsHTML): stringHTML { + static anEntity(entity: AnEntity, options?: IOptionsHTML): stringHTML { const enSt = entity.status(); if (!enSt.ok) { return `
    @@ -98,8 +124,8 @@ export const toHTML = { const lang = options?.lang || 'en-US'; const widthMain = options?.widthMain || '67%'; - const titleText = passify(getLocalText(entity.title, lang)); - const descText = passify(getLocalText(entity.description, lang)); + const titleText = passify(LIB.stripHTML(LIB.getLocalText(entity.title, lang))); + const descText = passify(LIB.getLocalText(entity.description, lang)); let propertiesHTML = ''; propertiesHTML = '
    '; @@ -126,9 +152,9 @@ export const toHTML = { ${propertiesHTML}
    `; - }, + } - aRelationship(rel: ARelationship, options?: IOptionsHTML): stringHTML { + static aRelationship(rel: ARelationship, options?: IOptionsHTML): stringHTML { // dummy operation to use options and avoid "unused variable" warning - to be removed when implementation is done if (options?.itemType) return ''; const relSt = rel.status(); @@ -137,10 +163,10 @@ export const toHTML = { Invalid aRelationship with id ${rel.id} - status: (${relSt.status}) ${relSt.statusText ?? ''}
    `; } - // ToDo: Implementiere eine HTML-Repräsentation für ARelationship + // @ToDo: Implementiere eine HTML-Repräsentation für ARelationship return '
    HTML export for Relationship not implemented
    '; } -}; +} /** * Sanitize HTML by removing dangerous elements and attributes that could execute code @@ -200,7 +226,8 @@ function passify(html: string): string { ]); // Match all tags with their attributes and content - const objectRegex = /]*)>(.*?)<\/object>/gis; + // const objectRegex = /]*)>(.*?)<\/object>/gis; ... did not work with es2020 even though it should, so we use [\s\S]*? instead of .*? + const objectRegex = /]*)>([\s\S]*?)<\/object>/gi; passified = passified.replace(objectRegex, (match, attributes, content) => { // Extract type attribute const typeMatch = attributes.match(/type\s*=\s*["']([^"']+)["']/i); @@ -312,10 +339,10 @@ function passify(html: string): string { * @returns HTML string representing the metadata */ function metadataToHTML(item: TPigAnElement, lang: tagIETF): string { - return `
    Item Type
    ${item.itemType}
    -
    ID
    ${item.id}
    -
    Class
    ${passify(item.hasClass || '—')}
    -
    Modified
    ${LIB.getLocalDate(item.modified, lang)}
    ` + return `
    Item Type
    ${item.itemType}
    ` + + `
    ID
    ${item.id}
    ` + + `
    Class
    ${passify(item.hasClass || '—')}
    ` + + (item.modified ? `
    Modified
    ${LIB.getLocalDate(item.modified, lang)}
    ` : '') + (item.creator ? `
    Creator
    ${passify(item.creator)}
    ` : '') + (item.revision && item.revision.length > 0 ? `
    Revision
    ${passify(item.revision)}
    ` : '') + (item.priorRevision && item.priorRevision.length > 0 ? `
    Prior Revisions
    ${item.priorRevision.map((r: string) => passify(r)).join(', ')}
    ` : ''); diff --git a/src/common/export/jsonld/getJSONLD.ts b/src/common/export/jsonld/getJSONLD.ts new file mode 100644 index 0000000..fb9e3f6 --- /dev/null +++ b/src/common/export/jsonld/getJSONLD.ts @@ -0,0 +1,493 @@ +/*! + * CASCaDE Reference Implementation – native to JSON-LD Transformation + * Copyright 2026 GfSE (https://gfse.org) + * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) + * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Reference-Implementation/issues) + */ +/** + * CASCaDE Reference Implementation – native to JSON-LD Transformation + * ------------------------------------------------------------------- + * Authors: oskar.dungern@gfse.org + * Copyright 2026 GfSE (https://gfse.org) + * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) + * + * This module provides central JSON-LD helpers for the PIG metamodel classes. + * For each supported type (APackage, AnEntity, ARelationship, and metamodel classes), + * the static class `GetJSONLD` offers methods that generate JSON-LD representations + * of the respective instances. + * + * - Always returns valid JSON-LD objects (JsonObject). + * - Error and status information is included in the output where appropriate. + * - The logic is decoupled from the metamodel classes. + * + * Usage: + * import { getJSONLD } from './getJSONLD'; + * const jsonld = getJSONLD(item, options); + * + * Design Decisions: + * - Combine all JSON-LD export logic in a single module for better maintainability. + * - Use a class with static methods for better organization and extensibility. + * - In earlier versions there were individual methods getJSONLD for each itemType in the metaclasses. + * These have been calling internal protected methods. + * This module provides a centralized way to access JSON-LD export functionality. + * - For creating a JSON-LD representation call getJSONLD(item, options) instead of item.getJSONLD(). + * + */ + +import { DEF } from '../../lib/definitions'; +import { JsonObject, JsonValue, JsonArray, LIB, LOG } from '../../lib/helpers'; +import { MVF } from '../../lib/mvf'; +import { + TPigId, TPigItem, PigItem, PigItemType, PigItemTypeValue, + AnEntity, APackage, ARelationship, + Entity, Relationship,Property, Link, Enumeration +} from '../../schema/pig/ts/pig-metaclasses'; + +export interface IOptionsJSONLD { + /** Stringify the output (default: false, returns JsonObject) */ + stringify?: boolean; + /** Indentation for stringified output (default: 2) */ + indent?: number; + /** Filter which item types to include in package graph (default: all) */ + itemType?: PigItemTypeValue[]; +} + +/** + * Generic JSON-LD export function that dispatches to the appropriate method based on itemType + * @param item - Any PIG item (APackage, AnEntity, ARelationship, or metamodel classes) + * @param options - JSON-LD export options + * @returns JSON-LD representation as JsonObject or string + * + * @example + * import { getJSONLD } from './getJSONLD'; + * const jsonld = getJSONLD(item, { stringify: true }); + */ +export function getJSONLD(item: TPigItem, options?: IOptionsJSONLD): JsonObject | string { + let result: JsonObject; + + switch (item.itemType) { + // Instances/Individuals + case PigItemType.aPackage: + result = GetJSONLD.aPackage(item as APackage, options); + break; + case PigItemType.anEntity: + result = GetJSONLD.anEntity(item as AnEntity, options); + break; + case PigItemType.aRelationship: + result = GetJSONLD.aRelationship(item as ARelationship, options); + break; + + // Metamodel Classes + case PigItemType.Enumeration: + result = GetJSONLD.enumeration(item as Enumeration, options); + break; + case PigItemType.Property: + result = GetJSONLD.property(item as Property, options); + break; + case PigItemType.Link: + result = GetJSONLD.link(item as Link, options); + break; + case PigItemType.Entity: + result = GetJSONLD.entity(item as Entity, options); + break; + case PigItemType.Relationship: + result = GetJSONLD.relationship(item as Relationship, options); + break; + + default: + result = { + '@id': (item as any).id || 'unknown', + 'cas:itemType': item.itemType, + 'error': `No JSON-LD representation implemented for itemType: ${item.itemType}` + }; + } + + // Stringify if requested + if (options?.stringify) { + return JSON.stringify(result, null, options?.indent ?? 2); + } + + return result; +} + +/** + * Static class containing JSON-LD export methods for all PIG types + */ +class GetJSONLD { + + /** + * Export APackage to JSON-LD format + * @param pkg - APackage instance + * @param options - Export options + * @returns JSON-LD representation with @context and @graph + */ + static aPackage(pkg: APackage, options?: IOptionsJSONLD): JsonObject { + const filterTypes = options?.itemType; + + const jld = this.getAsJSONLD(pkg, options); + + jld['@context'] = xContextToJSONLD(pkg); + jld['@graph'] = xGraphToJSONLD(pkg); + + /* ... coded by Copilot, but not yet tested: + // Filter graph items if itemType filter is specified + if (filterTypes && Array.isArray(jld['@graph'])) { + const graph = jld['@graph'] as JsonObject[]; + jld['@graph'] = graph.filter((item: JsonObject) => { + const itemTypeValue = item['cas:itemType'] || item['@type']; + const itemType = + typeof itemTypeValue === 'string' + ? itemTypeValue as PigItemTypeValue + : itemTypeValue && + typeof itemTypeValue === 'object' && + typeof (itemTypeValue as JsonObject)['@id'] === 'string' + ? ((itemTypeValue as JsonObject)['@id'] as PigItemTypeValue) + : undefined; + return itemType !== undefined && filterTypes.includes(itemType); + }); + } + */ + return this.sortJsonLdKeys(jld); + + /** + * Transform context from internal INamespace[] format to JSON-LD @context format + * @param pkg - APackage instance + * @returns JSON-LD object with '@context' property in JSON-LD format + * + * Internal format: @context = [{ tag: "cas:", uri: "https://..." }, ...] + * JSON-LD format: @context = { "cas": "https://...", ... } + */ + function xContextToJSONLD(pkg: APackage): JsonObject { + const ctx = pkg.context; + + if (!ctx || !Array.isArray(ctx)) { + // Context is already in JSON-LD format (object or string) or doesn't exist + LOG.warn(`APackage ${pkg.id} has no valid context`); + return {}; + } + + // Transform INamespace[] to JSON-LD @context object + const contextObj: Record = {}; + + for (const ns of ctx) { + // Skip if not a valid object + if (!ns || typeof ns !== 'object' || Array.isArray(ns)) { + continue; + } + if (!('tag' in ns) || !('uri' in ns)) { + continue; + } + + const tag = ns.tag; + const uri = ns.uri; + + // Ensure tag and uri are strings + if (typeof tag === 'string' && typeof uri === 'string') { + // Remove trailing colon from tag for JSON-LD format + const key = tag.endsWith(':') ? tag.slice(0, -1) : tag; + contextObj[key] = uri; + } + } + + return contextObj; + } + + /** + * Transform graph items to JSON-LD format + * @param pkg - APackage instance + * @returns Array of JSON-LD items + */ + function xGraphToJSONLD(pkg: APackage): JsonObject[] { + const graph = pkg.graph; + + if (!graph || !Array.isArray(graph) || graph.length === 0) + return []; + + // Transform each graph item to JSON-LD + // The graph items are already in native format (from get()), need to convert to JSON-LD + return graph.map(item => { + // LOG.debug('Transforming graph items to JSON-LD', item, typeof (item), (item as any).constructor.name); + return getJSONLD(item) as JsonObject; + }); + } + } + + /** + * Export AnEntity to JSON-LD format + * @param entity - AnEntity instance + * @param options - Export options + * @returns JSON-LD representation + */ + static anEntity(itm: AnEntity, options?: IOptionsJSONLD): JsonObject { + let jld = this.getAsJSONLD(itm, options); + + jld = this.xConfigurablesToJSONLD(jld, itm, 'hasProperty'); + jld = this.xConfigurablesToJSONLD(jld, itm, 'hasTargetLink'); + return this.sortJsonLdKeys(jld); + } + + /** + * Export ARelationship to JSON-LD format + * @param rel - ARelationship instance + * @param options - Export options + * @returns JSON-LD representation + */ + static aRelationship(rel: ARelationship, options?: IOptionsJSONLD): JsonObject { + let jld = this.getAsJSONLD(rel, options); + + jld = this.xConfigurablesToJSONLD(jld, rel, 'hasProperty'); + jld = this.xConfigurablesToJSONLD(jld, rel, 'hasTargetLink'); + jld = this.xConfigurablesToJSONLD(jld, rel, 'hasSourceLink'); + return this.sortJsonLdKeys(jld); + } + + /** + * Export Enumeration (metamodel class) to JSON-LD format + * @param enumeration - Enumeration instance + * @param options - Export options + * @returns JSON-LD representation + */ + static enumeration(enm: Enumeration, options?: IOptionsJSONLD): JsonObject { + const jld = this.getAsJSONLD(enm, options); + return this.sortJsonLdKeys(jld); + } + + /** + * Export Property (metamodel class) to JSON-LD format + * @param property - Property instance + * @param options - Export options + * @returns JSON-LD representation + */ + static property(prp: Property, options?: IOptionsJSONLD): JsonObject { + const jld = this.getAsJSONLD(prp, options); + return this.sortJsonLdKeys(jld); + } + + /** + * Export Link (metamodel class) to JSON-LD format + * @param link - Link instance + * @param options - Export options + * @returns JSON-LD representation + */ + static link(lnk: Link, options?: IOptionsJSONLD): JsonObject { + const jld = this.getAsJSONLD(lnk, options); + return this.sortJsonLdKeys(jld); + } + + /** + * Export Entity (metamodel class) to JSON-LD format + * @param entity - Entity instance + * @param options - Export options + * @returns JSON-LD representation + */ + static entity(itm: Entity, options?: IOptionsJSONLD): JsonObject { + const jld = this.getAsJSONLD(itm, options); + return this.sortJsonLdKeys(jld); + } + + /** + * Export Relationship (metamodel class) to JSON-LD format + * @param relationship - Relationship instance + * @param options - Export options + * @returns JSON-LD representation + */ + static relationship(rel: Relationship, options?: IOptionsJSONLD): JsonObject { + const jld = this.getAsJSONLD(rel, options); + return this.sortJsonLdKeys(jld); + } + /** + * Transform hasProperty, hasSourceLink or hasTargetLink arrays for JSON-LD output. + * It is assumed that the native property names have already been renamed with MVF.renameJsonTags( ..., MVF.toJSONLD). + */ + private static xConfigurablesToJSONLD( + jld: JsonObject, + itm: TPigItem, + hasX: 'hasProperty' | 'hasSourceLink' | 'hasTargetLink' + ): JsonObject { + const cfgs = (itm as any)[hasX]; + // LOG.debug('xConfigurablesToJSONLD:', jld, itm, hasX, cfgs); + if (!Array.isArray(cfgs)) { + return jld; + } + + const grouped = new Map(); + + for (const cfg of cfgs) { + const propValue: Record = { + [`${DEF.pfxNsMeta}itemType`]: { ['@id']: cfg.itemType } as JsonObject + }; + + // Add value if present (only for AProperty) + if ('value' in cfg && cfg.value !== undefined) { + propValue['@value'] = cfg.value; + } + + // Add idRef if present + if (cfg.idRef !== undefined) { + propValue['@id'] = cfg.idRef; + } + + const key = cfg.hasClass as TPigId; + if (!grouped.has(key)) { + grouped.set(key, []); + } + + const gr = grouped.get(key); + if (Array.isArray(gr)) + gr.push(propValue as JsonObject); + else + throw new Error(`Invalid group for key: ${key}`); + } + + // Add grouped cfgs to JSON-LD + for (const [key, values] of grouped) { + jld[key] = values as JsonValue; + } + + delete jld[hasX]; + return jld; + } + /** + * Sort JSON-LD object keys in canonical order: @context, @id, @type, @graph, @value, then all other keys alphabetically. + * This ensures consistent JSON-LD output regardless of object construction order. + * + * @param obj - JSON-LD object to sort + * @returns New object with keys in canonical order + * + * @example + * const jsonld = { '@type': 'Entity', '@id': 'ex:123', 'title': 'Example' }; + * const sorted = this.sortJsonLdKeys(jsonld); + * // Result: { '@id': 'ex:123', '@type': 'Entity', 'title': 'Example' } + */ + private static sortJsonLdKeys(obj: JsonObject): JsonObject { + if (!obj || typeof obj !== 'object' || Array.isArray(obj)) { + return obj; + } + + // Canonical order for JSON-LD special keys + const canonicalOrder = [ + '@context', '@id', '@type', '@graph', '@value', '@language', + `${DEF.pfxNsMeta}itemType`, `${DEF.pfxNsMeta}specializes`, + `${DEF.pfxNsDcmi}title`, 'skos:definition', `${DEF.pfxNsDcmi}description`, + `${DEF.pfxNsDcmi}modified`, `${DEF.pfxNsDcmi}creator`, + `${DEF.pfxNsMeta}revision`, `${DEF.pfxNsMeta}priorRevision`, + `${DEF.pfxNsMeta}enumeratedProperty`, `${DEF.pfxNsMeta}enumeratedSourceLink`, `${DEF.pfxNsMeta}enumeratedTargetLink`, `${DEF.pfxNsMeta}enumeratedEndpoint` + ]; + + // Separate JSON-LD special keys from other keys + const specialKeys: string[] = []; + const otherKeys: string[] = []; + + for (const key of Object.keys(obj)) { + if (canonicalOrder.includes(key)) { + specialKeys.push(key); + } else { + otherKeys.push(key); + } + } + + // Sort special keys by canonical order + specialKeys.sort((a, b) => canonicalOrder.indexOf(a) - canonicalOrder.indexOf(b)); + + // Sort other keys alphabetically + otherKeys.sort(); + + // Build new object with sorted keys + const sorted: JsonObject = {}; + + for (const key of [...specialKeys, ...otherKeys]) { + const value = obj[key]; + // Recursively sort nested objects, but preserve arrays + if (value && typeof value === 'object' && !Array.isArray(value)) { + sorted[key] = this.sortJsonLdKeys(value as JsonObject); + } else if (Array.isArray(value)) { + // Sort objects within arrays + sorted[key] = value.map(item => + item && typeof item === 'object' && !Array.isArray(item) + ? this.sortJsonLdKeys(item as JsonObject) + : item + ); + } else { + sorted[key] = value; + } + } + + return sorted; + } + /** + * Convert valid id-strings to id-objects. + * - Accepts any JsonValue (string/number/boolean/null/object/array). + * - Recursively processes arrays and objects (non-flat). + * - Skips converting the actual id property (default '@id'). + * - options.idKey: output id key (default '@id') + * - options.mutate: if true modify in-place, otherwise return a new structure + */ + private static makeIdObjects( + node: JsonValue, + options?: { idKey?: string; mutate?: boolean } + ): JsonValue { + const idKey = options?.idKey ?? '@id'; + const typeKey = '@type'; + const mutate = !!options?.mutate; + + // primitives + if (node === null || node === undefined) return node; + if (typeof node === 'string') { + return PigItem.isValidIdString(node) ? ({ [idKey]: node } as JsonObject) : node; + } + if (typeof node === 'number' || typeof node === 'boolean') return node; + + // array: map elements + if (Array.isArray(node)) { + if (mutate) { + for (let i = 0; i < node.length; i++) { + node[i] = this.makeIdObjects(node[i], options); + } + return node; + } + const outArr: JsonArray = []; + for (let i = 0; i < node.length; i++) { + outArr[i] = this.makeIdObjects(node[i], options); + } + return outArr; + } + + // object: handle the idKey specially (do not convert its string value) + const obj = node as JsonObject; + if (mutate) { + for (const k of Object.keys(obj)) { + const v = obj[k]; + if ([idKey, typeKey, '@context', '@graph', '@value', '@language'].includes(k)) { + // keep JSON-LD reserved keywords unchanged (@id, @type, @context, @graph, @value, @language) + // @value must preserve literal values and never be expanded to objects with @id + obj[k] = v; + } else if (typeof v === 'string' && PigItem.isValidIdString(v)) { + obj[k] = { [idKey]: v } as unknown as JsonValue; + } else { + obj[k] = this.makeIdObjects(v, options); + } + } + return obj; + } + + const out: JsonObject = {}; + for (const k of Object.keys(obj)) { + const v = obj[k]; + if (k === idKey || k === typeKey || k === '@context' || k === '@graph' || k === '@value' || k === '@language') { + // preserve JSON-LD reserved keywords raw values (@id, @type, @context, @graph, @value, @language) + // @value must preserve literal values and never be expanded to objects with @id + out[k] = v; + } else if (typeof v === 'string' && PigItem.isValidIdString(v)) { + out[k] = { [idKey]: v } as unknown as JsonValue; + } else { + out[k] = this.makeIdObjects(v, options); + } + } + return out; + } + private static getAsJSONLD(itm: TPigItem, options?: IOptionsJSONLD): JsonObject { + const jld = MVF.renameJsonTags(itm.get() as unknown as JsonObject, MVF.toJSONLD, { mutate: false }) as JsonObject; + return this.makeIdObjects(jld) as JsonObject; + } +} + diff --git a/src/common/import/fmi/import-fmi.ts b/src/common/import/fmi/import-fmi.ts new file mode 100644 index 0000000..ed56bf3 --- /dev/null +++ b/src/common/import/fmi/import-fmi.ts @@ -0,0 +1,259 @@ +/*! + * Imports an FMI model description (FMI 2.0 or FMI 3.0) and transforms it using the FMI-to-CAS stylesheet. + * Copyright 2025 GfSE (https://gfse.org) + * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) + * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Reference-Implementation/issues) + */ +/** + * FMI Importer - Static class for importing FMI models + * + * Accepts either: + * - a packaged FMU (.fmu, a ZIP archive containing modelDescription.xml at its root), or + * - a raw modelDescription.xml (.xml). + * + * The model description is transformed with the FMI-to-CAS stylesheet into a + * self-contained CAS package that embeds both a small 'fmi:' ontology layer and + * the instance data extracted from the model. + * + * Authors: rakshit.mittal@uantwerpen.be + */ + +import { unzipSync, strFromU8 } from 'fflate'; + +import { DEF } from '../../lib/definitions'; +import { LOG } from '../../lib/helpers'; +import { PLI } from '../../lib/platform-independence'; +import { IRsp, Msg, Rsp } from '../../lib/messages'; +import { APackage } from '../../schema/pig/ts/pig-metaclasses'; +import { XmlImporter } from '../xml/import-xml'; + +/** + * FMI Importer + * Static class for importing and transforming FMI model descriptions to CAS format. + */ +export class FmiImporter { + private static readonly maxSizeInput = DEF.maxSizeXML; + private static readonly modelDescriptionName = 'modelDescription.xml'; + + /** + * Import an FMI model and transform it to CAS items. + * + * @param source - File path (Node.js), URL, or File/Blob object (Browser) + * @returns IRsp containing array of TPigItem (first item is APackage, rest are graph items) + * + * @example + * // Node.js + * const result = await FmiImporter.import('./model.fmu'); + * + * @example + * // Browser + * const file = fileInput.files[0]; + * const result = await FmiImporter.import(file); + */ + static async import(source: string | File): Promise> { + // Extract filename for validation and logging + const filename = typeof source === 'string' ? source : source.name; + + // Normalize filename/URL for extension check (strip query/fragment, lower-case) + const normalized = filename.split(/[?#]/, 1)[0].toLowerCase(); + const isFmu = normalized.endsWith('.fmu'); + const isXml = normalized.endsWith('.xml'); + + if (!isFmu && !isXml) { + return Msg.create(660, filename, 'expected .fmu archive or .xml model description'); + } + + // Obtain the modelDescription.xml content (unzip .fmu, or read .xml directly) + let xmlToTransform: string; + if (isFmu) { + const rspXml = await this.extractModelDescription(source, filename); + if (!rspXml.ok) { + return rspXml; + } + xmlToTransform = rspXml.response as string; + } else { + const rspRead = await PLI.readFileAsText(source); + if (!rspRead.ok) { + return rspRead; + } + xmlToTransform = rspRead.response as string; + } + + // Security: size limit check + if (xmlToTransform.length > this.maxSizeInput) { + return Msg.create( + 660, + filename, + `model description too large (max ${this.maxSizeInput / 1024 / 1024}MB)` + ); + } + + // Parse and validate the FMI document structure + const parser = PLI.createDOMParser(); + const xmlDoc = parser.parseFromString(xmlToTransform, 'text/xml'); + + const sourceError = PLI.getXmlParseError(xmlDoc); + if (sourceError) { + return Msg.create( + 660, + filename, + sourceError.textContent ?? 'Unknown XML parsing error' + ); + } + + if (!this.isValid(xmlDoc)) { + return Msg.create( + 660, + filename, + 'missing fmiModelDescription root element' + ); + } + + // Get stylesheet path and transform document + const stylesheetPath = this.getStylesheetPath('FMI-to-CAS.sef.json'); + + const rspTransform = await PLI.transformXSL(xmlToTransform, stylesheetPath); + if (!rspTransform.ok) { + return rspTransform; + } + + const xmlString = rspTransform.response as string; + + // Check schema of the transformed CAS XML + const schemaResult = XmlImporter.checkXmlSchema(xmlString); + if (!schemaResult.ok) { + return schemaResult; + } + + // Instantiate APackage from transformed XML + const aPackage = new APackage().setXML(xmlString); + + if (!aPackage.status().ok) { + return aPackage.status(); + } + + // Get all items (package + graph items) + const allItems = aPackage.getItems(); + + const expectedCount = aPackage.graph?.length || 0; + const actualCount = allItems.length - 1; // -1 for package itself + + let result: IRsp; + if (actualCount === expectedCount) { + LOG.info( + `FmiImporter: successfully imported ${filename} with all ${actualCount} items` + ); + result = Rsp.create(0, allItems, 'json'); + } else { + const errorDetails = this.buildErrorReport(allItems); + LOG.warn( + `FmiImporter: imported ${actualCount} of ${expectedCount} items from ${filename}${errorDetails}` + ); + result = Rsp.create(604, allItems, 'json', 'FMI', actualCount, expectedCount); + } + + return result; + } + + /** + * Read a .fmu (ZIP) archive and return the text content of modelDescription.xml. + * + * @param source - File path (Node.js), URL, or File/Blob (Browser) + * @param filename - original filename for error messages + * @returns IRsp whose response is the modelDescription.xml string + * @private + */ + private static async extractModelDescription( + source: string | File, + filename: string + ): Promise> { + const rspBytes = await PLI.readFileAsBytes(source); + if (!rspBytes.ok) { + return rspBytes; + } + + const bytes = rspBytes.response as Uint8Array; + + let entries: Record; + try { + // Only the modelDescription.xml is needed from the archive. + entries = unzipSync(bytes, { + filter: (file) => file.name === this.modelDescriptionName + }); + } catch (e: unknown) { + const msg = e instanceof Error ? e.message : String(e); + return Msg.create(660, filename, `failed to read FMU archive: ${msg}`); + } + + const entry = entries[this.modelDescriptionName]; + if (!entry) { + return Msg.create( + 660, + filename, + `archive does not contain ${this.modelDescriptionName}` + ); + } + + try { + return Rsp.create(0, strFromU8(entry), 'text'); + } catch (e: unknown) { + const msg = e instanceof Error ? e.message : String(e); + return Msg.create(660, filename, `failed to decode ${this.modelDescriptionName}: ${msg}`); + } + } + + /** + * Get platform-specific path to the FMI-to-CAS stylesheet. + * + * @returns Path/URL to FMI-to-CAS.sef.json + * @private + */ + private static getStylesheetPath(filename: string): string { + if (PLI.isBrowserEnv()) { + const baseUrl = window.location.origin; + return `${baseUrl}/${DEF.xslPath}${filename}`; + } else { + return `./public/${DEF.xslPath}${filename}`; + } + } + + /** + * Build a detailed error report for failed items. + * + * @param allItems - All items including the package + * @returns Formatted error report string + * @private + */ + private static buildErrorReport(allItems: any[]): string { + let errorReport = '\nErroneous items:'; + + for (let i = 1; i < allItems.length; i++) { + const status = allItems[i].status(); + if (!status.ok) { + errorReport += `\n- graph[${i}]: (${status.status}) ${status.statusText}`; + } + } + + return errorReport; + } + + /** + * Validate that the XML document is an FMI model description. + * + * Checks for the fmiModelDescription root element (FMI 2.0 and FMI 3.0 both use it). + * + * @param xmlDoc - The XML document to validate + * @returns True if the document is a valid FMI model description + * @private + */ + private static isValid(xmlDoc: Document): boolean { + const rootElement = xmlDoc.documentElement; + if (!rootElement) { + return false; + } + return ( + rootElement.localName === 'fmiModelDescription' || + rootElement.tagName === 'fmiModelDescription' + ); + } +} diff --git a/src/common/import/jsonld/import-jsonld.ts b/src/common/import/jsonld/import-jsonld.ts index 62f2920..deaf558 100644 --- a/src/common/import/jsonld/import-jsonld.ts +++ b/src/common/import/jsonld/import-jsonld.ts @@ -26,7 +26,7 @@ import { IRsp, rspOK, Rsp, Msg } from '../../lib/messages'; import { LOG, JsonObject, JsonArray } from '../../lib/helpers'; -import { PIN } from '../../lib/platform-independence'; +import { PLI } from '../../lib/platform-independence'; import { APackage, TPigItem } from '../../schema/pig/ts/pig-metaclasses'; import { SCH_LD } from '../../schema/pig/jsonld/pig-schemata-jsonld'; @@ -56,17 +56,15 @@ export class JsonldImporter { */ static async import(source: string | File | Blob): Promise { // Read file content - const rsp = await PIN.readFileAsText(source); + const rsp = await PLI.readFileAsText(source); if (!rsp.ok) { return rsp; } - const text = rsp.response as string; - // Parse JSON document let doc: JsonObject; try { - doc = JSON.parse(text) as JsonObject; + doc = JSON.parse(rsp.response as string) as JsonObject; } catch (err: unknown) { const errorMessage = err instanceof Error ? err.message : String(err); return Msg.create(690, 'JSON-LD', errorMessage); @@ -75,8 +73,10 @@ export class JsonldImporter { // Check JSON-LD document structure const validationResult = await this.checkJsonLdDocument(doc); if (!validationResult.ok) { + // LOG.debug('JsonldImporter.import: JSON-LD document validation failed',validationResult); return validationResult; } + // LOG.debug('JsonldImporter.import: JSON-LD document validation succeeded', validationResult); // Instantiate APackage and load the document const aPackage = new APackage().setJSONLD(doc); @@ -107,7 +107,7 @@ export class JsonldImporter { `JsonldImporter: imported ${actualCount} of ${expectedCount} items${errorDetails}` ); - result = Rsp.create(691, allItems, 'json', 'JSON-LD', actualCount, expectedCount); + result = Rsp.create(604, allItems, 'json', 'JSON-LD', actualCount, expectedCount); } return result as IRsp; @@ -127,12 +127,12 @@ export class JsonldImporter { */ private static async checkJsonLdDocument(doc: JsonObject): Promise { // Validate entire JSON-LD document structure using schema - const isValidPackage = await SCH_LD.validatePackageLD(doc); + const isValidPackage = await SCH_LD.validateAPackageLD(doc); if (!isValidPackage) { - const errors = await SCH_LD.getValidatePackageLDErrors(); + const errors = await SCH_LD.getValidateAPackageLDErrors(); LOG.error('JSON-LD package validation failed:', errors); - return Msg.create(697, 'JSON-LD', errors); + return Msg.create(683, 'JSON-LD', errors); } return rspOK; diff --git a/src/common/import/reqif/import-reqif.ts b/src/common/import/reqif/import-reqif.ts index 0412c6c..6e087d6 100644 --- a/src/common/import/reqif/import-reqif.ts +++ b/src/common/import/reqif/import-reqif.ts @@ -23,24 +23,24 @@ * - Static class design for consistency with other importers * - Source file is loaded inside (like importXML and importJSONLD), for consistency. * - * ToDo: + * @ToDo: * - Extend the constraint checks - very limited now. */ import { DEF } from '../../lib/definitions'; import { LOG } from '../../lib/helpers'; -import { PIN } from '../../lib/platform-independence'; +import { PLI } from '../../lib/platform-independence'; import { IRsp, Msg, Rsp /*, rspOK*/ } from '../../lib/messages'; -import { APackage /*, TPigItem*/ } from '../../schema/pig/ts/pig-metaclasses'; +import { APackage } from '../../schema/pig/ts/pig-metaclasses'; import { XmlImporter } from '../xml/import-xml'; -import { ConstraintCheckType } from '../../schema/pig/ts/pig-package-constraints'; +// import { ConstraintCheckType } from '../../schema/pig/ts/pig-package-constraints'; /** * ReqIF Importer * Static class for importing and transforming ReqIF documents to PIG format */ export class ReqifImporter { - private static readonly MAX_XML_SIZE = 4 * 1024 * 1024; // 4MB + private static readonly maxSizeInput = DEF.maxSizeXML; /** * Import ReqIF document and transform to PIG items @@ -55,7 +55,7 @@ export class ReqifImporter { * @example * // Browser * const file = fileInput.files[0]; - * const result = await ReqIFImporter.import(file); + * const result = await ReqifImporter.import(file); */ static async import(source: string | File): Promise> { // Extract filename for validation and logging @@ -72,7 +72,7 @@ export class ReqifImporter { } // Read file content - const rspRead = await PIN.readFileAsText(source); + const rspRead = await PLI.readFileAsText(source); if (!rspRead.ok) { return rspRead; } @@ -80,26 +80,20 @@ export class ReqifImporter { const xmlToTransform = rspRead.response as string; // Security: Size limit check - if (xmlToTransform.length > this.MAX_XML_SIZE) { + if (xmlToTransform.length > this.maxSizeInput) { return Msg.create( 660, filename, - `file too large (max ${this.MAX_XML_SIZE / 1024 / 1024}MB)` + `file too large (max ${this.maxSizeInput / 1024 / 1024}MB)` ); } - // Security: Basic XML structure validation - const trimmed = xmlToTransform.trim(); - if (!trimmed.startsWith(' { + static async import(source: string | File | Blob, options?: any): Promise { + // LOG.debug(`XmlImporter: Source: ${typeof source === 'string' ? source : JSON.stringify(source)}`); + // LOG.debug(`XmlImporter: Options: ${JSON.stringify(options)}`); // Read file content - const rsp = await PIN.readFileAsText(source); + const rsp = await PLI.readFileAsText(source); if (!rsp.ok) { return rsp; } - const xmlString = rsp.response as string; + let xmlString = rsp.response as string; - // Validate XML syntax - const validationResult = this.checkXmlSyntax(xmlString); - if (!validationResult.ok) { - return validationResult; + // Security: Size limit check + if (xmlString.length > this.maxSizeInput) { + return Msg.create( + 660, + typeof(source) === 'string'? source : 'unknown', + `file too large (max ${this.maxSizeInput / 1024 / 1024}MB)` + ); + } + + // optionally transform the source with a user-supplied XSL stylesheet before parsing: + if (options?.sef) { + const transformed = await PLI.transformXSL(xmlString, options.sef); + if (!transformed.ok) + return transformed; + + xmlString = transformed.response as string; } // check schema const schemaResult = this.checkXmlSchema(xmlString); - if (!schemaResult.ok) { + if (!schemaResult.ok) return schemaResult; - } // Instantiate APackage directly from XML string // APackage.setXML() handles: @@ -94,7 +109,7 @@ export class XmlImporter { let result: IRsp; if (actualCount === expectedCount) { LOG.info( - `XmlImporter: successfully imported package with all ${actualCount} items` + `XmlImporter: successfully imported package with ${actualCount} item(s)` ); result = Rsp.create(0, allItems, 'json'); } else { @@ -104,47 +119,21 @@ export class XmlImporter { `XmlImporter: imported ${actualCount} of ${expectedCount} items${errorDetails}` ); - result = Rsp.create(691, allItems, 'json', 'XML', actualCount, expectedCount); + result = Rsp.create(604, allItems, 'json', 'XML', actualCount, expectedCount); } return result as IRsp; } - /** - * Check XML syntax before parsing - * - * @param xmlString - XML string to validate - * @returns IRsp indicating success or error - * @private - */ - static checkXmlSyntax(xmlString: string): IRsp { - try { - const parser = PIN.createDOMParser(); - const doc = parser.parseFromString(xmlString, 'text/xml'); - const parserError = PIN.getXmlParseError(doc); - - if (parserError) { - const errorMessage = - parserError.textContent || 'Unknown XML parsing error'; - return Msg.create(690, 'XML', errorMessage); - } - - return rspOK; - } catch (err: unknown) { - const errorMessage = err instanceof Error ? err.message : String(err); - return Msg.create(690, 'XML', errorMessage); - } - } - /** * Check schema * @param xmlString - XML-String * @returns IRsp */ static checkXmlSchema(xmlString: string): IRsp { - const parser = PIN.createDOMParser(); + const parser = PLI.createDOMParser(); const doc = parser.parseFromString(xmlString, 'text/xml'); - const parserError = PIN.getXmlParseError(doc); + const parserError = PLI.getXmlParseError(doc); if (parserError) { return Msg.create(690, 'XML', parserError.textContent || 'Unknown XML parsing error'); } @@ -167,7 +156,7 @@ export class XmlImporter { // At this stage we expect only a string like in JSON-LD schema ... the id is normalized later const pkgId = root.getAttribute('id'); // if (!pkgId || !PigItem.isValidIdString(pkgId)) { - if (typeof pkgId !== 'string' || pkgId.length export type tagIETF = string; // contains IETF language tag export type TISODateString = string; +export interface INamespace { + tag: string; // e.g. a namespace tag, e.g. "cas:" + uri: string; // e.g. a namespace value, e.g. "https://product-information-graph.org/" +} +export interface ILanguageText { + value: string; + lang?: tagIETF; +} +export interface IText { + value: string; +} + /** * Standard XML Namespaces used in PIG XML documents * Collected from tests/data/XML files @@ -62,6 +76,10 @@ export const LIB = { isLeaf(node: JsonValue): boolean { return (typeof node === 'string' || typeof node === 'number' || typeof node === 'boolean'); }, + isArrayWithContent(L: any): boolean { + return (Array.isArray(L) && L.length > 0); + }, + /** * Recursively iterates a JSON value and calls `cb` for each primitive (value). * - objects: iterates keys @@ -220,6 +238,16 @@ export const LIB = { /** * Recursively removes all undefined and null values from any JSON structure. + * + * IMPORTANT: Empty arrays are explicitly preserved because they have semantic meaning; + * in case of enumeratedProperty, enumeratedSourceLink and enumeratedTargetLink: + * - undefined (property absent) = "no restriction, all properties resp. links allowed" (wildcard) + * - [] (empty array) = "explicit restriction, no properties resp. links allowed" + * + * Example in PIG: + * - enumeratedProperty: undefined → all properties allowed + * - enumeratedProperty: [] → no properties allowed + * * Returns the exact same type as the input value. */ stripUndefinedAndNull(obj: T): T { @@ -230,6 +258,7 @@ export const LIB = { if (!Object.prototype.hasOwnProperty.call(obj, key)) continue; const value = (obj as any)[key]; if (value !== undefined && value !== null) { + // Empty arrays are preserved (they have semantic meaning) if (typeof value === 'object' && value !== null) { result[key] = this.stripUndefinedAndNull(value); } else { @@ -239,6 +268,41 @@ export const LIB = { } return result; }, + /** + * Strip HTML tags from a string, returning only the text content. + * Uses DOMParser to safely parse HTML without jQuery dependency. + * Prevents XSS attacks by not using regex. + * + * @param html - HTML string to strip tags from + * @returns Plain text content without HTML tags + * + * @example + * const html = '

    Hello World

    '; + * const text = LIB.stripHTML(html); + * // Returns: 'Hello World' + */ + stripHTML(html: string): string { + if (!html || typeof html !== 'string') return ''; + + // Use DOMParser to safely parse HTML + if (typeof DOMParser !== 'undefined') { + const parser = new DOMParser(); + const doc = parser.parseFromString(html, 'text/html'); + return doc.body.textContent?.trim() || ''; + } + + // Fallback for Node.js environment (if DOMParser not available) + // Use a simple but safe approach: remove tags + return html + .replace(/<[^>]*>/g, '') // Remove tags + /* .replace(/</g, '<') // Decode HTML entities + .replace(/>/g, '>') + .replace(/&/g, '&') + .replace(/"/g, '"') + .replace(/'/g, "'") */ + .trim(); + }, + /* stripUndefinedAndNull(obj: T): T { function strip(val: unknown): unknown { if (val === undefined) return undefined; @@ -292,13 +356,13 @@ export const LIB = { makeXMLDoc( xml: string, options?: { - rootTag?: string; // Custom root tag (default: 'pig:Package') + rootTag?: string; // Custom root tag (default: `${DEF.pfxNsMeta}Package`) includeXmlDeclaration?: boolean; // Include declaration (default: false) namespaces?: Record; // Explicit namespace prefix -> URI mappings warnOnMissing?: boolean; // Warn about prefixes without declarations (default: true) } ): string { - const rootTag = options?.rootTag ?? 'pig:Package'; + const rootTag = options?.rootTag ?? `${DEF.pfxNsMeta}Package`; const includeXmlDecl = options?.includeXmlDeclaration ?? false; const explicitNamespaces = options?.namespaces ?? {}; const warnOnMissing = options?.warnOnMissing ?? true; @@ -379,7 +443,24 @@ export const LIB = { return dateStr; } }, + // Helper function to get localized text from multi-language array + getLocalText(texts ?: ILanguageText[], lang ?: tagIETF): string { + if (!texts || texts.length === 0) return ''; + + lang = lang ?? 'en-US'; + + // Try to find exact language match + const exact = texts.find(t => t.lang === lang); + if (exact) return exact.value; + // Try to find language prefix match (e.g., 'en' for 'en-US') + const langPrefix = lang.split('-')[0]; + const prefixMatch = texts.find(t => t.lang?.startsWith(langPrefix)); + if (prefixMatch) return prefixMatch.value; + + // Fallback to first available text + return texts[0].value; + } }; type LogLevel = 'info' | 'warn' | 'error' | 'debug'; diff --git a/src/common/lib/messages.ts b/src/common/lib/messages.ts index e2ba1a6..7f5bf8c 100644 --- a/src/common/lib/messages.ts +++ b/src/common/lib/messages.ts @@ -4,8 +4,9 @@ * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Reference-Implementation/issues) */ -/** Product Information Graph (PIG) - Centralized error and status messages - * Dependencies: none (self-contained) +/** + * Product Information Graph (PIG) - Centralized error and status messages + * ----------------------------------------------------------------------- * Authors: oskar.dungern@gfse.org * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) * @@ -19,6 +20,8 @@ * - Multi-language support: en, de, fr, es */ +import { LOG } from "./helpers"; + /** IRsp interface * An xhr-like object to return the result of the import; * use it as follows (according to GitHub Copilot): @@ -32,9 +35,6 @@ * const doc = rsp.response as Document; * }; */ -import { LOG } from "./helpers"; - - // type XMLHttpRequestResponseType = "" | "arraybuffer" | "blob" | "document" | "json" | "text" export interface IRsp { status: number; @@ -95,29 +95,66 @@ const messages: Record> = { fr: (txt) => `Erreur: ${txt}`, es: (txt) => `Error: ${txt}` }, - 601: { - en: (fromType, toType) => - `Cannot change the itemType (tried to change from ${fromType} to ${toType})`, - de: (fromType, toType) => - `Der itemType kann nicht geändert werden (Versuch von ${fromType} nach ${toType})`, - fr: (fromType, toType) => - `Impossible de changer le itemType (tentative de ${fromType} vers ${toType})`, - es: (fromType, toType) => - `No se puede cambiar el itemType (intento de ${fromType} a ${toType})` +/* 601: { + en: (msg) => msg.toString(), + de: (msg) => msg.toString(), + fr: (msg) => msg.toString(), + es: (msg) => msg.toString() }, 602: { + en: (op, act, exp) => + `${op}: Delivered ${act} of ${exp} graph items`, + de: (op, act, exp) => + `${op}: ${act} von ${exp} Graph-Elementen geliefert`, + fr: (op, act, exp) => + `${op}: ${act} éléments de graphe sur ${exp} livrés`, + es: (op, act, exp) => + `${op}: Se entregaron ${act} de ${exp} elementos del grafo` + }, */ + 603: { + en: (op, act, exp, errors) => + `${op}: Created ${act} of ${exp} graph items` + (errors ? ` with errors: ${errors}` : ''), + de: (op, act, exp, errors) => + `${op}: ${act} von ${exp} Graph-Elementen erstellt` + (errors ? ` mit Fehlern: ${errors}` : ''), + fr: (op, act, exp, errors) => + `${op}: ${act} éléments de graphe créés sur ${exp}` + (errors ? ` avec des erreurs: ${errors}` : ''), + es: (op, act, exp, errors) => + `${op}: Se crearon ${act} de ${exp} elementos del grafo` + (errors ? ` con errores: ${errors}` : '') + }, + 604: { + en: (format, created, total) => + `Imported ${created} of ${total} items from ${format}`, + de: (format, created, total) => + `${created} von ${total} Elementen aus ${format} importiert`, + fr: (format, created, total) => + `${created} éléments sur ${total} importés depuis ${format}`, + es: (format, created, total) => + `${created} de ${total} elementos importados desde ${format}` + }, + + 612: { en: (itemType) => `'${itemType}' must have a hasClass reference`, de: (itemType) => - `'${itemType}' muss eine hasClass-Referenz haben`, + `'${itemType}' muss eine hasClass Referenz haben`, fr: (itemType) => `'${itemType}' doit avoir une référence hasClass`, es: (itemType) => `'${itemType}' debe tener una referencia hasClass` }, + 613: { + en: (fromType, toType) => + `Cannot change the itemType (tried to change from ${fromType} to ${toType})`, + de: (fromType, toType) => + `Der itemType kann nicht geändert werden (Versuch von ${fromType} nach ${toType})`, + fr: (fromType, toType) => + `Impossible de changer le itemType (tentative de ${fromType} vers ${toType})`, + es: (fromType, toType) => + `No se puede cambiar el itemType (intento de ${fromType} a ${toType})` + }, // Identifiable validation - 603: { + 614: { en: (fromId, toId) => `Cannot change the id of an item (tried to change from ${fromId} to ${toId})`, de: (fromId, toId) => @@ -127,7 +164,7 @@ const messages: Record> = { es: (fromId, toId) => `No se puede cambiar el id de un elemento (intento de ${fromId} a ${toId})` }, - 604: { + 615: { en: (fromSpec, toSpec) => `Cannot change the specialization (tried to change from ${fromSpec} to ${toSpec})`, de: (fromSpec, toSpec) => @@ -138,26 +175,6 @@ const messages: Record> = { `No se puede cambiar la especialización (intento de ${fromSpec} a ${toSpec})` }, - 610: { - en: (op, act, exp) => - `${op}: Delivered ${act} of ${exp} graph items`, - de: (op, act, exp) => - `${op}: ${act} von ${exp} Graph-Elementen geliefert`, - fr: (op, act, exp) => - `${op}: ${act} éléments de graphe sur ${exp} livrés`, - es: (op, act, exp) => - `${op}: Se entregaron ${act} de ${exp} elementos del grafo` - }, - 611: { - en: (op, act, exp) => - `${op}: Created ${act} of ${exp} graph items`, - de: (op, act, exp) => - `${op}: ${act} von ${exp} Graph-Elementen erstellt`, - fr: (op, act, exp) => - `${op}: ${act} éléments de graphe créés sur ${exp}`, - es: (op, act, exp) => - `${op}: Se crearon ${act} de ${exp} elementos del grafo` - }, /* currently not used: // ID validation (620-629) @@ -392,34 +409,34 @@ const messages: Record> = { `Error en la validación del paquete: elemento '${parentId}' hasProperty[${propIndex}] tiene ${msg}` }, 673: { - en: (parentId, propIndex, hasClass, msg) => - `Package validation failed: item '${parentId}' hasProperty[${propIndex}].hasClass='${hasClass}' - ${msg}`, - de: (parentId, propIndex, hasClass, msg) => - `Paket-Validierung fehlgeschlagen: Element '${parentId}' hasProperty[${propIndex}].hasClass='${hasClass}' - ${msg}`, - fr: (parentId, propIndex, hasClass, msg) => - `Échec de la validation du package: élément '${parentId}' hasProperty[${propIndex}].hasClass='${hasClass}' - ${msg}`, - es: (parentId, propIndex, hasClass, msg) => - `Error en la validación del paquete: elemento '${parentId}' hasProperty[${propIndex}].hasClass='${hasClass}' - ${msg}` + en: (parentId, prp, className, msg) => + `Package validation failed: item '${parentId}' ${prp}.hasClass='${className}' - ${msg}`, + de: (parentId, prp, className, msg) => + `Paket-Validierung fehlgeschlagen: Element '${parentId}' ${prp}.hasClass='${className}' - ${msg}`, + fr: (parentId, prp, className, msg) => + `Échec de la validation du package: élément '${parentId}' ${prp}.hasClass='${className}' - ${msg}`, + es: (parentId, prp, className, msg) => + `Error en la validación del paquete: elemento '${parentId}' ${prp}.hasClass='${className}' - ${msg}` }, 674: { en: (parentId, index, prpName, msg) => - `Package validation failed: item '${parentId}' graph[${index}] ${prpName} - ${msg}`, + `Package validation failed: graph[${index}] with item '${parentId}' ${prpName} - ${msg}`, de: (parentId, index, prpName, msg) => - `Paket-Validierung fehlgeschlagen: Element '${parentId}' graph[${index}] ${prpName} - ${msg}`, + `Paket-Validierung fehlgeschlagen: graph[${index}] mit Element '${parentId}' ${prpName} - ${msg}`, fr: (parentId, index, prpName, msg) => - `Échec de la validation du package: élément '${parentId}' graph[${index}] ${prpName} - ${msg}`, + `Échec de la validation du package: graph[${index}] avec l'élément '${parentId}' ${prpName} - ${msg}`, es: (parentId, index, prpName, msg) => - `Error en la validación del paquete: elemento '${parentId}' graph[${index}] ${prpName} - ${msg}` + `Error en la validación del paquete: graph[${index}] con el elemento '${parentId}' ${prpName} - ${msg}` }, 675: { en: (parentId, index, prpName, prpVal, msg) => - `Package validation failed: item '${parentId}' graph[${index}] ${prpName}: ${prpVal} - ${msg}`, + `Package validation failed: graph[${index}] with item '${parentId}' ${prpName}: ${prpVal} - ${msg}`, de: (parentId, index, prpName, prpVal, msg) => - `Paket-Validierung fehlgeschlagen: Element '${parentId}' graph[${index}] ${prpName}: ${prpVal} - ${msg}`, + `Paket-Validierung fehlgeschlagen: graph[${index}] mit Element '${parentId}' ${prpName}: ${prpVal} - ${msg}`, fr: (parentId, index, prpName, prpVal, msg) => - `Échec de la validation du package: élément '${parentId}' graph[${index}] ${prpName}: ${prpVal} - ${msg}`, + `Échec de la validation du package: graph[${index}] avec l'élément '${parentId}' ${prpName}: ${prpVal} - ${msg}`, es: (parentId, index, prpName, prpVal, msg) => - `Error en la validación del paquete: elemento '${parentId}' graph[${index}] ${prpName}: ${prpVal} - ${msg}` + `Error en la validación del paquete: graph[${index}] con el elemento '${parentId}' ${prpName}: ${prpVal} - ${msg}` }, 676: { en: (itemId, itemType, arrayName, linkIndex, linkClassId, classId) => @@ -431,6 +448,16 @@ const messages: Record> = { es: (itemId, itemType, arrayName, linkIndex, linkClassId, classId) => `${itemType} '${itemId}' ${arrayName}[${linkIndex}] usa '${linkClassId}' que no es elegible en la clase '${classId}'.` }, + 677: { + en: (instanceId, linkIndex, linkClassId, msg) => + `Enumerated value validation failed for item '${instanceId}' targetLink[${linkIndex}] of class '${linkClassId}': ${msg}`, + de: (instanceId, linkIndex, linkClassId, msg) => + `Enumeration-Validierung fehlgeschlagen für Element '${instanceId}' targetLink[${linkIndex}] der Klasse '${linkClassId}': ${msg}`, + fr: (instanceId, linkIndex, linkClassId, msg) => + `Échec de la validation de la valeur énumérée pour l'élément '${instanceId}' targetLink[${linkIndex}] de la classe '${linkClassId}': ${msg}`, + es: (instanceId, linkIndex, linkClassId, msg) => + `Falló la validación del valor enumerado para el elemento '${instanceId}' targetLink[${linkIndex}] de la clase '${linkClassId}': ${msg}` + }, 678: { en: (instanceId, propClassId, actualCount, expectedCount, issue) => `Instance '${instanceId}' has ${actualCount} occurrence(s) of property '${propClassId}' but ${issue}: expected ${expectedCount}`, @@ -483,6 +510,36 @@ const messages: Record> = { es: (tags) => `Elemento(s) no instanciable(s) encontrado(s): ${tags}` }, + 683: { + en: (format, errors) => + `${format} package validation failed: ${errors}`, + de: (format, errors) => + `${format} Paket-Validierung fehlgeschlagen: ${errors}`, + fr: (format, errors) => + `Échec de la validation du package ${format}: ${errors}`, + es: (format, errors) => + `Error en la validación del paquete ${format}: ${errors}` + }, + 684: { + en: (linkId, enumCount, nonEnumCount) => + `Link '${linkId}' has mixed enumeratedEndpoints: ${enumCount} point(s) to Enumeration(s) and ${nonEnumCount} point(s) to non-Enumeration(s). All endpoints must point exclusively to Enumerations or none of them should.`, + de: (linkId, enumCount, nonEnumCount) => + `Link '${linkId}' hat gemischte enumeratedEndpoints: ${enumCount} zeigt/zeigen auf Enumeration(en) und ${nonEnumCount} auf Nicht-Enumeration(en). Alle Endpunkte müssen ausschließlich auf Enumerations zeigen oder keiner von ihnen sollte es.`, + fr: (linkId, enumCount, nonEnumCount) => + `Le lien '${linkId}' a des enumeratedEndpoints mixtes: ${enumCount} pointe(nt) vers des Enumeration(s) et ${nonEnumCount} pointe(nt) vers des non-Enumeration(s). Tous les points de terminaison doivent pointer exclusivement vers des Enumerations ou aucun d'entre eux ne devrait le faire.`, + es: (linkId, enumCount, nonEnumCount) => + `El enlace '${linkId}' tiene enumeratedEndpoints mixtos: ${enumCount} apunta(n) a Enumeration(es) y ${nonEnumCount} apunta(n) a no-Enumeration(es). Todos los puntos finales deben apuntar exclusivamente a Enumerations o ninguno de ellos debería hacerlo.` + }, + 685: { + en: (classId, classType, arrayName, index, linkId, msg) => + `${classType} '${classId}' ${arrayName}[${index}] references '${linkId}' - ${msg}`, + de: (classId, classType, arrayName, index, linkId, msg) => + `${classType} '${classId}' ${arrayName}[${index}] referenziert '${linkId}' - ${msg}`, + fr: (classId, classType, arrayName, index, linkId, msg) => + `${classType} '${classId}' ${arrayName}[${index}] référence '${linkId}' - ${msg}`, + es: (classId, classType, arrayName, index, linkId, msg) => + `${classType} '${classId}' ${arrayName}[${index}] referencia '${linkId}' - ${msg}` + }, // General errors (690-699) 690: { @@ -491,16 +548,6 @@ const messages: Record> = { fr: (format, msg) => `Échec de l'analyse ${format}: ${msg}`, es: (format, msg) => `Error al analizar ${format}: ${msg}` }, - 691: { - en: (format, created, total) => - `Imported ${created} of ${total} items from ${format}`, - de: (format, created, total) => - `${created} von ${total} Elementen aus ${format} importiert`, - fr: (format, created, total) => - `${created} éléments sur ${total} importés depuis ${format}`, - es: (format, created, total) => - `${created} de ${total} elementos importados desde ${format}` - }, 692: { en: (url, statusText) => `Failed to fetch URL ${url}: ${statusText}`, @@ -529,7 +576,7 @@ const messages: Record> = { fr: (source, msg) => `Échec de la lecture du fichier` + (source ? ` '${source}'` : '') + `: ${msg}`, es: (source, msg) => - `Error al leer el archivo` + (source ? ` '${source}'` : ``) + `: ${msg}` + `Error al leer el archivo` + (source ? ` '${source}'` : '') + `: ${msg}` }, 695: { en: () => @@ -552,26 +599,30 @@ const messages: Record> = { `Tipo de fuente no compatible al leer un archivo como texto` }, 697: { - en: (format, errors) => - `${format} package validation failed: ${errors}`, - de: (format, errors) => - `${format} Paket-Validierung fehlgeschlagen: ${errors}`, - fr: (format, errors) => - `Échec de la validation du package ${format}: ${errors}`, - es: (format, errors) => - `Error en la validación del paquete ${format}: ${errors}` + en: (filename, msg) => + `Failed to write file` + (filename ? ` '${filename}'` : '') + `: ${msg}`, + de: (filename, msg) => + `Fehler beim Schreiben der Datei` + (filename ? ` '${filename}'` : '') + `: ${msg}`, + fr: (filename, msg) => + `Échec de l'écriture du fichier` + (filename ? ` '${filename}'` : '') + `: ${msg}`, + es: (filename, msg) => + `Error al escribir el archivo` + (filename ? ` '${filename}'` : '') + `: ${msg}` }, 698: { + en: (filename, msg) => + `File save cancelled` + (filename ? ` for '${filename}'` : '') + (msg ? `: ${msg}` : ''), + de: (filename, msg) => + `Dateispeichern abgebrochen` + (filename ? ` für '${filename}'` : '') + (msg ? `: ${msg}` : ''), + fr: (filename, msg) => + `Enregistrement du fichier annulé` + (filename ? ` pour '${filename}'` : '') + (msg ? `: ${msg}` : ''), + es: (filename, msg) => + `Guardado de archivo cancelado` + (filename ? ` para '${filename}'` : '') + (msg ? `: ${msg}` : '') + }, + 699: { en: (func) => `${func} not yet implemented`, de: (func) => `${func} ist noch nicht implementiert`, fr: (func) => `${func} pas encore implémenté`, es: (func) => `${func} aún no implementado` - }, - 699: { - en: (msg) => msg.toString(), - de: (msg) => msg.toString(), - fr: (msg) => msg.toString(), - es: (msg) => msg.toString() } }; diff --git a/src/common/lib/mvf.ts b/src/common/lib/mvf.ts index 0b43d5f..9fa1d2e 100644 --- a/src/common/lib/mvf.ts +++ b/src/common/lib/mvf.ts @@ -2,37 +2,45 @@ * Product Information Graph (PIG) - Multi-Vocabulary Facility (MVF) * Copyright 2025 GfSE (https://gfse.org) * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) - * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Reference-Implementation/issues) + * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Reference-Implementation/issues) */ /** Product Information Graph (PIG) - Multi-Vocabulary Facility - * Handles mapping between different vocabulary representations (JSON-LD, XML, internal format) - * Dependencies: helpers.ts (for JsonValue types and LOG) - * Authors: oskar.dungern@gfse.org, .. - * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) + * ------------------------------------------------------------ + * Authors: oskar.dungern@gfse.org + * Copyright 2026 GfSE (https://gfse.org) + * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) + * + * Handles mapping between different vocabulary representations (JSON-LD, XML, internal format) + * Dependencies: helpers.ts (for JsonValue types and LOG) */ +import { DEF } from './definitions'; import { LIB, JsonPrimitive, JsonValue, JsonObject, LOG } from './helpers'; // Map PIG metamodel attributes to/from JSON-LD keys; // all other keys are derived from the ontology and handled dynamically: const FROM_JSONLD = new Map([ ['@context', 'context'], + ['@graph', 'graph'], ['@id', 'id'], ['@type', 'hasClass'], ['@value', 'value'], ['@language', 'lang'], ['rdfs:subClassOf', 'specializes'], ['rdfs:subPropertyOf', 'specializes'], - ['pig:specializes', 'specializes'], - ['pig:itemType', 'itemType'], - ['pig:revision', 'revision'], - ['pig:priorRevision', 'priorRevision'], - ['pig:enumeratedProperty', 'enumeratedProperty'], - ['pig:enumeratedSourceLink', 'enumeratedSourceLink'], - ['pig:enumeratedTargetLink', 'enumeratedTargetLink'], - ['pig:enumeratedEndpoint', 'enumeratedEndpoint'], - ['pig:enumeratedValue', 'enumeratedValue'], - ['pig:Icon', 'icon'], + [`${DEF.pfxNsMeta}specializes`, 'specializes'], + [`${DEF.pfxNsMeta}itemType`, 'itemType'], + [`${DEF.pfxNsMeta}revision`, 'revision'], + [`${DEF.pfxNsMeta}priorRevision`, 'priorRevision'], + [`${DEF.pfxNsMeta}enumeratedProperty`, 'enumeratedProperty'], + [`${DEF.pfxNsMeta}enumeratedSourceLink`, 'enumeratedSourceLink'], + [`${DEF.pfxNsMeta}enumeratedTargetLink`, 'enumeratedTargetLink'], + [`${DEF.pfxNsMeta}enumeratedEndpoint`, 'enumeratedEndpoint'], + [`${DEF.pfxNsMeta}enumeratedValue`, 'enumeratedValue'], + [`${DEF.pfxNsMeta}Icon`, 'icon'], + [`${DEF.pfxNsMeta}icon`, 'icon'], + [`${DEF.pfxNsMeta}Unit`, 'unit'], + [`${DEF.pfxNsMeta}unit`, 'unit'], // ['xs:simpleType', 'datatype'], ... doesn't make sense as long as rejected by the schema ['sh:datatype', 'datatype'], // ['xs:minOccurs', 'minCount'], @@ -45,11 +53,11 @@ const FROM_JSONLD = new Map([ ['sh:defaultValue', 'defaultValue'], // ['xs:pattern', 'pattern'], ['sh:pattern', 'pattern'], - ['dcterms:title', 'title'], - ['dcterms:description', 'description'], - ['dcterms:created', 'created'], - ['dcterms:modified', 'modified'], - ['dcterms:creator', 'creator'], + [`${DEF.pfxNsDcmi}title`, 'title'], + [`${DEF.pfxNsDcmi}description`, 'description'], + [`${DEF.pfxNsDcmi}created`, 'created'], + [`${DEF.pfxNsDcmi}modified`, 'modified'], + [`${DEF.pfxNsDcmi}creator`, 'creator'], ['skos:definition', 'definition'] ]); @@ -62,15 +70,17 @@ const TO_JSONLD = new Map( const FROM_XML = new Map([ // ['@value', 'value'], // ['@language', 'lang'], - ['pig:revision', 'revision'], - ['pig:priorRevision', 'priorRevision'], + [`${DEF.pfxNsMeta}revision`, 'revision'], + [`${DEF.pfxNsMeta}priorRevision`, 'priorRevision'], ['rdf:type', 'hasClass'], - ['pig:hasClass', 'hasClass'], + [`${DEF.pfxNsMeta}hasClass`, 'hasClass'], ['rdfs:subClassOf', 'specializes'], ['rdfs:subPropertyOf', 'specializes'], - ['pig:specializes', 'specializes'], - ['pig:icon', 'icon'], // older files may use 'pig:icon' instead of 'pig:Icon' - ['pig:Icon', 'icon'], + [`${DEF.pfxNsMeta}specializes`, 'specializes'], + [`${DEF.pfxNsMeta}Icon`, 'icon'], + [`${DEF.pfxNsMeta}icon`, 'icon'], + [`${DEF.pfxNsMeta}Unit`, 'unit'], + [`${DEF.pfxNsMeta}unit`, 'unit'], ['sh:datatype', 'datatype'], ['xs:simpleType', 'datatype'], ['sh:minCount', 'minCount'], @@ -83,17 +93,17 @@ const FROM_XML = new Map([ ['xs:default', 'defaultValue'], ['sh:pattern', 'pattern'], ['xs:pattern', 'pattern'], - ['pig:itemType', 'itemType'], - ['pig:enumeratedProperty', 'enumeratedProperty'], - ['pig:enumeratedSourceLink', 'enumeratedSourceLink'], - ['pig:enumeratedTargetLink', 'enumeratedTargetLink'], - ['pig:enumeratedEndpoint', 'enumeratedEndpoint'], - ['pig:enumeratedValue', 'enumeratedValue'], - ['dcterms:title', 'title'], - ['dcterms:description', 'description'], - ['dcterms:created', 'created'], - ['dcterms:modified', 'modified'], - ['dcterms:creator', 'creator'], + [`${DEF.pfxNsMeta}itemType`, 'itemType'], + [`${DEF.pfxNsMeta}enumeratedProperty`, 'enumeratedProperty'], + [`${DEF.pfxNsMeta}enumeratedSourceLink`, 'enumeratedSourceLink'], + [`${DEF.pfxNsMeta}enumeratedTargetLink`, 'enumeratedTargetLink'], + [`${DEF.pfxNsMeta}enumeratedEndpoint`, 'enumeratedEndpoint'], + [`${DEF.pfxNsMeta}enumeratedValue`, 'enumeratedValue'], + [`${DEF.pfxNsDcmi}title`, 'title'], + [`${DEF.pfxNsDcmi}description`, 'description'], + [`${DEF.pfxNsDcmi}created`, 'created'], + [`${DEF.pfxNsDcmi}modified`, 'modified'], + [`${DEF.pfxNsDcmi}creator`, 'creator'], ['skos:definition', 'definition'] ]); const TO_XML = new Map( @@ -216,6 +226,6 @@ export const MVF = { if (typeof term !== 'string') { return term; } - return mapping.get(term) ?? term; // ✅ SUPER EINFACH! + return mapping.get(term) ?? term; } }; diff --git a/src/common/lib/platform-independence.ts b/src/common/lib/platform-independence.ts index d78b32f..9722725 100644 --- a/src/common/lib/platform-independence.ts +++ b/src/common/lib/platform-independence.ts @@ -16,7 +16,7 @@ * - saxon-js (for XSLT transformations, works in both environments) * * Design Decisions - * - Instead of shims, specific functions are implemented such as PIN.innerHTML(), + * - Instead of shims, specific functions are implemented such as PLI.innerHTML(), * because it is considered more robust than fiddling around with prototypes provided by 3rd parties * * Authors: oskar.dungern@gfse.org @@ -52,11 +52,28 @@ interface NodeProcess { }; } +// Type definitions for File System Access API +interface FilePickerAcceptType { + description?: string; + accept: Record; +} +interface SaveFilePickerOptions { + suggestedName?: string; + types?: FilePickerAcceptType[]; +} +/* interface FileSystemWritableFileStream extends WritableStream { + write(data: BufferSource | Blob | string): Promise; + close(): Promise; +} +interface FileSystemFileHandle { + createWritable(): Promise; +} */ + // Cache for loaded modules let cachedDOMParser: typeof DOMParser | null = null; let cachedXMLSerializer: typeof XMLSerializer | null = null; -export const PIN = { +export const PLI = { /** * Transform XML using XSLT with Saxon-JS * Works in both Node.js and browser environments @@ -69,13 +86,14 @@ export const PIN = { xmlContent: string, sefPath: string ): Promise> { + // LOG.debug('PLI.transformXSL 0',xmlContent,sefPath); try { // Load compiled XSLT stylesheet - const sefResult = await PIN.readFileAsText(sefPath); + const sefResult = await PLI.readFileAsText(sefPath); if (!sefResult.ok) return sefResult; + // LOG.debug(`PLI.transformXSL: loaded SEF stylesheet from ${sefPath}`,sefResult); - // LOG.debug(`PIN.transformXSL: loaded SEF stylesheet from ${sefPath}`); const output = await SaxonJS.transform( { stylesheetText: sefResult.response as string, @@ -85,7 +103,7 @@ export const PIN = { 'async' ); - // LOG.debug(`PIN.transformXSL: transformation completed successfully`, output); + // LOG.debug(`PLI.transformXSL 9: transformation completed successfully`, output); return Rsp.create(0, output.principalResult as string, 'text'); } catch (error) { const errorMessage = error instanceof Error ? error.message : String(error); @@ -226,7 +244,7 @@ export const PIN = { * * @example * const doc = parser.parseFromString(xml, 'text/xml'); - * const error = PIN.getXmlParseError(doc); + * const error = PLI.getXmlParseError(doc); * if (error) { * console.error('Parse error:', error.textContent); * } @@ -252,7 +270,7 @@ export const PIN = { */ async readFileAsText(source: string | File | Blob): Promise> { - if (typeof source === 'string') { + if (typeof(source) === 'string') { // string can be a URL or a Node filesystem path if (this.isHttpUrl(source)) { // browser or Node fetch @@ -299,6 +317,57 @@ export const PIN = { return Msg.create(696); // unsupported source type }, + /** + * Load binary content as a Uint8Array from a Node file path, HTTP(S) URL or browser File/Blob. + * Needed for binary formats such as ZIP archives (e.g. .fmu) that cannot be read as text. + * + * @param source - File path (Node.js), URL, or File/Blob object (Browser) + * @returns IRsp with the file content as a Uint8Array, or an error + */ + async readFileAsBytes(source: string | File | Blob): Promise> { + if (typeof (source) === 'string') { + // string can be a URL or a Node filesystem path + if (this.isHttpUrl(source)) { + try { + const resp = await fetch(source); + if (!resp.ok) { + return Msg.create(692, source, resp.statusText); + } + const buffer = await resp.arrayBuffer(); + return Rsp.create(0, new Uint8Array(buffer), 'arraybuffer'); + } catch (e: unknown) { + const msg = e instanceof Error ? e.message : String(e); + return Msg.create(693, source, msg); + } + } + // assume Node path: dynamic import to avoid bundling 'fs' into browser build + if (this.isNodeEnv()) { + try { + const { readFile } = await import('fs/promises'); + const data = await readFile(source); + return Rsp.create(0, new Uint8Array(data), 'arraybuffer'); + } catch (e: unknown) { + const msg = e instanceof Error ? e.message : String(e); + return Msg.create(694, source, msg); + } + } + + return Msg.create(695); // not an http(s) URL and not running in Node + } + + if (typeof (source as Blob).arrayBuffer === 'function') { + try { + const buffer = await (source as Blob).arrayBuffer(); + return Rsp.create(0, new Uint8Array(buffer), 'arraybuffer'); + } catch (e: unknown) { + const msg = e instanceof Error ? e.message : String(e); + return Msg.create(694, '', msg); + } + } + + return Msg.create(696); // unsupported source type + }, + /** * Get innerHTML of an element (platform-independent) * Polyfill for xmlElement.innerHTML which is not available in @xmldom/xmldom @@ -311,7 +380,7 @@ export const PIN = { * * @example * // Browser and Node.js compatible - * const html = PIN.innerHTML(element); + * const html = PLI.innerHTML(element); * console.log(html); // "

    Hello

    World" */ innerHTML(element: Element): string { @@ -333,7 +402,7 @@ export const PIN = { return parts.join('').trim(); } catch (e) { // Ultimate fallback: return text content - LOG.warn('PIN.innerHTML: XMLSerializer failed, falling back to textContent'); + LOG.warn('PLI.innerHTML: XMLSerializer failed, falling back to textContent'); return element.textContent || ''; } /* } catch(e) { @@ -362,6 +431,161 @@ export const PIN = { */ isBrowserEnv(): boolean { return typeof window !== 'undefined' && typeof document !== 'undefined'; + }, + + /** + * Write data to a file in both browser and Node.js environments + * + * Platform-specific behavior: + * - Node.js: Writes directly to filesystem using fs/promises + * - Browser with File System Access API: Opens save dialog and writes to selected location + * - Browser fallback: Triggers download using Blob URL + * + * @param data - Data to write (JsonObject, string, or Blob) + * @param filename - Target filename with extension (e.g., 'data.json', 'output.txt') + * @returns IRsp indicating success or error + * + * @example + * // Write JSON object + * await PLI.writeFile({ key: 'value' }, 'data.json'); + * + * // Write JSON array + * await PLI.writeFile([{ key: 'value1' }, { key: 'value2' }], 'data.json'); + * + * // Write string + * await PLI.writeFile('Hello World', 'output.txt'); + * + * // Write Blob + * const blob = new Blob(['content'], { type: 'text/plain' }); + * await PLI.writeFile(blob, 'file.txt'); + */ + async writeFile( + data: Record | Array | string | Blob, + filename: string + ): Promise> { + try { + // Convert data to Blob + let blob: Blob; + let mimeType: string; + + if (data instanceof Blob) { + blob = data; + mimeType = blob.type || this.getMimeTypeFromFilename(filename); + } else if (typeof data === 'string') { + mimeType = this.getMimeTypeFromFilename(filename); + blob = new Blob([data], { type: mimeType }); + } else { + // Assume JSON object or array + mimeType = 'application/json'; + const jsonString = JSON.stringify(data, null, 2); + blob = new Blob([jsonString], { type: mimeType }); + } + + // Node.js environment + if (this.isNodeEnv()) { + try { + const { writeFile } = await import('fs/promises'); + const buffer = Buffer.from(await blob.arrayBuffer()); + await writeFile(filename, buffer); + return Msg.create(0, filename, 'text'); + } catch (e: unknown) { + const msg = e instanceof Error ? e.message : String(e); + return Msg.create(697, filename, msg); + } + } + + // Browser environment + if (this.isBrowserEnv()) { + // Try File System Access API first (if available) + if ('showSaveFilePicker' in window) { + try { + const opts: SaveFilePickerOptions = { + suggestedName: filename, + types: [{ + description: 'File', + accept: { [mimeType]: [this.getExtension(filename)] } + }] + }; + + const handle = await (window as any).showSaveFilePicker(opts); + const writable = await handle.createWritable(); + await writable.write(blob); + await writable.close(); + return Msg.create(0, filename, 'text'); + } catch (e: unknown) { + // User cancelled or API failed - fall through to download trick + if (e instanceof Error && e.name === 'AbortError') { + return Msg.create(698, filename, 'User cancelled file save'); + } + LOG.warn('File System Access API failed, falling back to download trick', e); + } + } + + // Fallback: Download trick + try { + const url = URL.createObjectURL(blob); + const a = document.createElement('a'); + a.href = url; + a.download = filename; + a.style.display = 'none'; + document.body.appendChild(a); + a.click(); + + // Cleanup + setTimeout(() => { + document.body.removeChild(a); + URL.revokeObjectURL(url); + }, 100); + + return Msg.create(0, filename, 'text'); + } catch (e: unknown) { + const msg = e instanceof Error ? e.message : String(e); + return Msg.create(697, filename, msg); + } + } + + return Msg.create(695); // Not HTTP URL and not Node/Browser + } catch (e: unknown) { + const msg = e instanceof Error ? e.message : String(e); + return Msg.create(697, filename, msg); + } + }, + + /** + * Get MIME type from filename extension + * @param filename - Filename with extension + * @returns MIME type string + */ + getMimeTypeFromFilename(filename: string): string { + const ext = filename.split('.').pop()?.toLowerCase() || ''; + const mimeTypes: Record = { + 'json': 'application/json', + 'xml': 'application/xml', + 'txt': 'text/plain', + 'html': 'text/html', + 'htm': 'text/html', + 'css': 'text/css', + 'js': 'application/javascript', + 'ts': 'application/typescript', + 'csv': 'text/csv', + 'pdf': 'application/pdf', + 'png': 'image/png', + 'jpg': 'image/jpeg', + 'jpeg': 'image/jpeg', + 'gif': 'image/gif', + 'svg': 'image/svg+xml' + }; + return mimeTypes[ext] || 'application/octet-stream'; + }, + + /** + * Get file extension from filename + * @param filename - Filename with extension + * @returns Extension with dot (e.g., '.json') + */ + getExtension(filename: string): string { + const ext = filename.split('.').pop(); + return ext ? `.${ext}` : ''; } }; /** @@ -371,11 +595,11 @@ export const PIN = { * * @param element - XML DOM Element to serialize * @returns HTML content as string (unescaped) - * / -function serializeXmlContent(element: ElementXML): string { - // ✅ Use PIN.getXMLSerializer() for platform independence + */ +/* function serializeXmlContent(element: ElementXML): string { + // ✅ Use PLI.getXMLSerializer() for platform independence try { - const SerializerClass = PIN.getXMLSerializer(); + const SerializerClass = PLI.getXMLSerializer(); const serializer = new SerializerClass(); const children: string[] = []; @@ -396,8 +620,8 @@ function serializeXmlContent(element: ElementXML): string { * * @param element - Element containing HTML content * @returns HTML string with preserved structure - * / -function manualSerializeHtml(element: ElementXML): string { + */ +/* function manualSerializeHtml(element: ElementXML): string { const parts: string[] = []; for (const child of Array.from(element.childNodes)) { @@ -421,8 +645,8 @@ function manualSerializeHtml(element: ElementXML): string { * * @param elem - Element to serialize * @returns HTML string - * / -function serializeHtmlElement(elem: ElementXML): string { + */ +/* function serializeHtmlElement(elem: ElementXML): string { const tagName = elem.tagName.toLowerCase(); // Use lowercase for HTML const attributes: string[] = []; diff --git a/src/common/README.md b/src/common/schema/README.md similarity index 100% rename from src/common/README.md rename to src/common/schema/README.md diff --git a/src/common/schema/pig/json/pig-schemata.ts b/src/common/schema/pig/json/pig-schemata.ts index d98d6ec..dbb46dc 100644 --- a/src/common/schema/pig/json/pig-schemata.ts +++ b/src/common/schema/pig/json/pig-schemata.ts @@ -1,428 +1,69 @@ -/*! JSON SCHEMATA for PIG items: Property, Reference, Entity, Relationship - * Messages and Responses - * Copyright 2025 GfSE (https://gfse.org) +/*! + * CASCaRA Graph (cas:) Native Schemata and Validation + * Copyright 2026 GfSE (https://gfse.org) * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) + * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Reference-Implementation/issues) */ -/** JSON SCHEMATA for PIG items: Property, Reference, Entity, Relationship - * Dependencies: ajv (Another JSON Schema Validator) https://ajv.js.org/ - * Authors: oskar.dungern@gfse.org, .. - * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) - * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Reference-Implementation/issues) - * - * Design decisions: - * - use JSON Schema draft-07 (widely supported) - * - use ajv for validation (fast, popular) - * - schemata of all classes as well as relationship instances must have a title and may have a description - * - schema for entity may have either a title or a description or both. - * This allows entities (such as simple paragraphs) without a title but with a description only. +/** + * CASCaRA Graph (cas:) Native Schemata and Validation + * --------------------------------------------------- + * Authors: oskar.dungern@gfse.org + * Copyright 2026 GfSE (https://gfse.org) + * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) * - * Limitations: - * - xs:datatype values are only pattern-validated here; specific accepted values are validated in code - * - further constraints (e.g. maxCount >= minCount) are validated in code - * - enumerated values in Property only for string values; other datatypes to be implemented -*/ + */ +import { DEF } from '../../../lib/definitions'; import { ajv } from '../../../../plugins/ajv'; -const ID_NAME_PATTERN = '^(?:[A-Za-z0-9_\\-]+:[^:\\s]+|https?:\\/\\/[^\\s]+)$'; -//const PROP_NAME_PATTERN = '(^[A-Za-z0-9_\\-]+:[^:\\s]+$)|(^https?:\\/\\/\\S+$)'; - -/* Consider to allow date or date-time: - modified: { - oneOf: [ - { type: 'string', format: 'date' }, - { type: 'string', format: 'date-time' } - ] - } -*/ -/* PROPERTY_SCHEMA: describes IProperty (pig:Property) */ -const PROPERTY_SCHEMA = { - $schema: 'http://json-schema.org/draft-07/schema#', - $id: 'https://gfse.org/schema/pig/IProperty', - type: 'object', - properties: { - id: { $ref: '#/$defs/idString' }, - itemType: { - type: 'string', - enum: ['pig:Property'], - description: 'The PigItemType for pig:Property' - }, - hasClass: { $ref: '#/$defs/idString' }, - specializes: { $ref: '#/$defs/idString' }, - title: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - description: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - definition: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - // datatype: { $ref: '#/$defs/xsDataType' }, - datatype: { - type: 'string', - pattern: '^xs:[A-Za-z]+$' - }, - minCount: { type: 'integer', minimum: 0 }, - maxCount: { type: 'integer', minimum: 1 }, - maxLength: { type: 'integer', minimum: 1 }, - minInclusive: { type: 'number' }, - maxInclusive: { type: 'number' }, - pattern: { type: 'string' }, - unit: { type: 'string' }, - defaultValue: { type: 'string' }, - enumeratedValue: { - type: 'array', - items: { - oneOf: [ - { - // For string datatypes: enumeratedValue with multi-language title - type: 'object', - required: ['id', 'title'], - properties: { - id: { $ref: '#/$defs/idString' }, - title: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - } - }, - additionalProperties: false, - description: 'Enumeration value with multi-language title (for xs:string)' - }, - { - // For numeric/other datatypes: enumeratedValue with literal value - type: 'object', - required: ['id', 'value'], - properties: { - id: { $ref: '#/$defs/idString' }, - value: { - type: 'string', - minLength: 1, - description: 'Literal value for numeric and other datatypes (stored as string)' - } - }, - additionalProperties: false, - description: 'Enumeration value with literal value (for xs:integer, xs:double, etc.)' - } - ] - } - }, - composedProperty: { - type: 'array', - items: { $ref: '#/$defs/idString' } - } - }, - additionalProperties: false, - required: ['id', 'itemType', 'title', 'datatype'], - // One of 'hasClass' and 'specializes' must be there but not both: - oneOf: [ - { required: ['hasClass'] }, - { required: ['specializes'] } - ], - $defs: { - idString: { - type: 'string', - description: 'TPigId — term with namespace (prefix:local) or an URI', - pattern: ID_NAME_PATTERN - }, - LanguageText: { - type: 'object', - required: ['value'], - additionalProperties: false, - properties: { - value: { - type: 'string', - minLength: 1 - }, - lang: { type: 'string' } - } - /* }, - xsDataType: { - type: 'string', - description: 'XSD/XMLSchema datatype', - enum: [ - 'xs:boolean', - 'xs:integer', - 'xs:double', - 'xs:string', - 'xs:anyURI', - 'xs:dateTime', - 'xs:duration', - 'xs:complexType', - ] */ - } +class PigSchemaFactory { + static getIdNamePattern() { + return '^(?:[a-zA-Z_][A-Za-z0-9_-]*:[^:\\s]+|https?://[^\\s]+)$'; } -}; -const validatePropertySchema = ajv.compile(PROPERTY_SCHEMA); - -/* LINK_SCHEMA: describes IReference (pig:Link) */ -const LINK_SCHEMA = { - $schema: 'http://json-schema.org/draft-07/schema#', - $id: 'https://gfse.org/schema/pig/IReference', - type: 'object', - properties: { - id: { $ref: '#/$defs/idString' }, - itemType: { - type: 'string', - enum: ['pig:Link'], - description: 'The PigItemType for pig:Link' - }, - hasClass: { $ref: '#/$defs/idString' }, - specializes: { $ref: '#/$defs/idString' }, - title: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - description: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - definition: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - enumeratedEndpoint: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/idString' } - } - }, - additionalProperties: false, - required: ['id', 'itemType', 'title', 'enumeratedEndpoint'], - // One of 'hasClass' and 'specializes' must be there but not both: - oneOf: [ - { required: ['hasClass'] }, - { required: ['specializes'] } - ], - $defs: { - idString: { - type: 'string', - description: 'TPigId — term with namespace (prefix:local) or an URI', - pattern: ID_NAME_PATTERN - }, - LanguageText: { - type: 'object', - required: ['value'], - additionalProperties: false, - properties: { - value: { - type: 'string', - minLength: 1 - }, - lang: { type: 'string' } - } - } + static getSchemaSchema() { + return 'http://json-schema.org/draft-07/schema#'; } -}; -const validateLinkSchema = ajv.compile(LINK_SCHEMA); - -/* ENTITY_SCHEMA: describes IEntity (pig:Entity) */ -const ENTITY_SCHEMA = { - $schema: 'http://json-schema.org/draft-07/schema#', - $id: 'https://gfse.org/schema/pig/IEntity', - type: 'object', - properties: { - id: { $ref: '#/$defs/idString' }, - itemType: { - type: 'string', - enum: ['pig:Entity'], - description: 'The PigItemType for pig:Entity' - }, - hasClass: { $ref: '#/$defs/idString' }, - specializes: { $ref: '#/$defs/idString' }, - enumeratedProperty: { - type: 'array', - items: { $ref: '#/$defs/idString' } - }, - enumeratedTargetLink: { - type: 'array', - items: { $ref: '#/$defs/idString' } - }, - icon: { - type: 'object', - required: ['value'], - additionalProperties: false, - properties: { - value: { type: 'string' } - }, - description: 'string or data URI of an icon representing the entity' - }, - title: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - description: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - definition: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - } - }, - additionalProperties: false, - required: ['id', 'itemType', 'title'], - // One of 'hasClass' and 'specializes' must be there but not both: - oneOf: [ - { required: ['hasClass'] }, - { required: ['specializes'] } - ], - $defs: { - idString: { - type: 'string', - description: 'TPigId — term with namespace (prefix:local) or an URI', - pattern: ID_NAME_PATTERN - - }, - LanguageText: { - type: 'object', - required: ['value'], - additionalProperties: false, - properties: { - value: { - type: 'string', - minLength: 1 - }, - lang: { type: 'string' } - } - } + static getSchemaPath() { + return 'https://product-information-graph.org/schema/2026-05-08/cas/'; } -}; -const validateEntitySchema = ajv.compile(ENTITY_SCHEMA); - -/* RELATIONSHIP_SCHEMA: describes IRelationship (pig:Relationship) */ -const RELATIONSHIP_SCHEMA = { - $schema: 'http://json-schema.org/draft-07/schema#', - $id: 'https://gfse.org/schema/pig/IRelationship', - type: 'object', - properties: { - id: { $ref: '#/$defs/idString' }, - itemType: { - type: 'string', - enum: ['pig:Relationship'], - description: 'The PigItemType for pig:Relationship' - }, - hasClass: { $ref: '#/$defs/idString' }, - specializes: { $ref: '#/$defs/idString' }, - enumeratedProperty: { - type: 'array', - items: { $ref: '#/$defs/idString' } - }, - enumeratedSourceLink: { $ref: '#/$defs/idString' }, - enumeratedTargetLink: { $ref: '#/$defs/idString' }, - icon: { - type: 'object', - required: ['value'], - additionalProperties: false, - properties: { - value: { type: 'string' } + static getDefs() { + return { + idString: { + type: 'string', + description: 'TPigId — term with namespace (prefix:local) oder eine URI', + pattern: this.getIdNamePattern() }, - description: 'string or data URI of an icon representing the relationship' - }, - title: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - description: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - definition: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - } - }, - additionalProperties: false, - required: ['id', 'itemType', 'title'], - // One of 'hasClass' and 'specializes' must be there but not both: - oneOf: [ - { required: ['hasClass'] }, - { required: ['specializes'] } - ], - $defs: { - idString: { - type: 'string', - description: 'TPigId — term with namespace (prefix:local) or an URI', - pattern: ID_NAME_PATTERN - }, - LanguageText: { - type: 'object', - required: ['value'], - additionalProperties: false, - properties: { - value: { - type: 'string', - minLength: 1 - }, - lang: { type: 'string' } + LanguageText: { + type: 'object', + required: ['value'], + additionalProperties: false, + properties: { + value: { + type: 'string', + minLength: 1 + }, + lang: { type: 'string' } + } + }, + MultiLanguageText: { + type: 'array', + minItems: 1, + items: { $ref: '#/$defs/LanguageText' } } } } -}; -const validateRelationshipSchema = ajv.compile(RELATIONSHIP_SCHEMA); - -/** ANENTITY_SCHEMA: describes IAnEntity (pig:anEntity); - * The schema for anEntity differs from others, as anEntity instance may have no title, - * but only a description (e.g. for simple text paragraphs). - */ -const ANENTITY_SCHEMA = { - $schema: 'http://json-schema.org/draft-07/schema#', - $id: 'https://gfse.org/schema/pig/IAnEntity', - type: 'object', - properties: { - id: { $ref: '#/$defs/idString' }, - itemType: { - type: 'string', - enum: ['pig:anEntity'], - description: 'The PigItemType for pig:anEntity' - }, - hasClass: { $ref: '#/$defs/idString' }, - title: { - type: 'array', - items: { $ref: '#/$defs/LanguageText' } - }, - description: { - type: 'array', - items: { $ref: '#/$defs/LanguageText' } - }, - revision: { type: 'string' }, - priorRevision: { - type: 'array', - minItems: 1, - maxItems: 2, - items: { type: 'string' } - }, - modified: { - type: 'string', - format: 'date-time' - }, - creator: { type: 'string' }, - hasProperty: { + static getPropertyRef() { + return { type: 'array', items: { type: 'object', properties: { + hasClass: { $ref: '#/$defs/idString' }, itemType: { type: 'string', - enum: ['pig:aProperty'] + enum: [`${DEF.pfxNsMeta}aProperty`], + description: `The itemType for ${DEF.pfxNsMeta}aProperty` }, - hasClass: { $ref: '#/$defs/idString' }, value: { type: 'string', minLength: 1 @@ -434,306 +75,509 @@ const ANENTITY_SCHEMA = { } }, required: ['itemType', 'hasClass'], - // One of 'hasClass' and 'specializes' must be there but not both: oneOf: [ { required: ['value'] }, { required: ['idRef'] } ], additionalProperties: false } - }, - hasTargetLink: { + } + } + static getLinkRef(linkType:string, minI?:number, maxI?:number) { + return { type: 'array', + minItems: minI, + maxItems: maxI, items: { type: 'object', properties: { + hasClass: { $ref: '#/$defs/idString' }, itemType: { type: 'string', - enum: ['pig:aTargetLink'] + enum: [`${linkType}`], + description: `The itemType for ${linkType}` }, - hasClass: { $ref: '#/$defs/idString' }, idRef: { $ref: '#/$defs/idString' } }, required: ['itemType', 'hasClass', 'idRef'], additionalProperties: false } } - }, - additionalProperties: false, - required: ['id', 'itemType', 'hasClass', /*'revision',*/ 'modified'], - // One of 'title' and 'description' must be there with content, or both: - anyOf: [ - { - required: ['title'], - properties: { title: { type: 'array', minItems: 1 } } - }, - { - required: ['description'], - properties: { description: { type: 'array', minItems: 1 } } - } - ], - $defs: { - idString: { - type: 'string', - description: 'TPigId — term with namespace (prefix:local) or an URI', - pattern: ID_NAME_PATTERN - }, - LanguageText: { + } + + static getEnumerationSchema() { + return { + $schema: this.getSchemaSchema(), + $id: `${this.getSchemaPath()}IEnumeration`, type: 'object', - required: ['value'], + properties: { + id: { $ref: '#/$defs/idString' }, + hasClass: { + type: 'string', + enum: [`owl:Class`], + }, + specializes: { $ref: '#/$defs/idString' }, // perhaps not needed + itemType: { + type: 'string', + enum: [`${DEF.pfxNsMeta}Enumeration`], + description: `The itemType for ${DEF.pfxNsMeta}Enumeration` + }, + title: { $ref: '#/$defs/MultiLanguageText' }, + description: { $ref: '#/$defs/MultiLanguageText' }, + definition: { $ref: '#/$defs/MultiLanguageText' }, + datatype: { + type: 'string', + pattern: '^xsd?:[A-Za-z]+$' + }, + unit: { type: 'string' }, + enumeratedValue: { + type: 'array', + items: { + oneOf: [ + { + type: 'object', + required: ['id', 'title'], + properties: { + id: { $ref: '#/$defs/idString' }, + title: { $ref: '#/$defs/MultiLanguageText' } + }, + additionalProperties: false, + description: 'Enumerated value with multi-language title (for xs:string)' + }, + { + type: 'object', + required: ['id', 'value'], + properties: { + id: { $ref: '#/$defs/idString' }, + value: { + type: 'string', + minLength: 1, + description: 'Literal value for numeric and other datatypes (stored as string)' + } + }, + additionalProperties: false, + description: 'Enumerated value with literal value (for xs:integer, xs:double, etc.)' + } + ] + } + }, + revision: { type: 'string' }, + priorRevision: { + type: 'array', + maxItems: 2, + items: { type: 'string' } + }, + modified: { + type: 'string', + format: 'date-time' + }, + creator: { type: 'string' } + }, additionalProperties: false, + required: ['id', 'hasClass', 'itemType', 'title'], // change info is optional for classes; enumeratedValue and datatype may be omitted for upper levels in the generalization hierarchy. + $defs: this.getDefs() + }; + } + + static getPropertySchema() { + return { + $schema: this.getSchemaSchema(), + $id: `${this.getSchemaPath()}IProperty`, + type: 'object', properties: { - value: { + id: { $ref: '#/$defs/idString' }, + hasClass: { type: 'string', - minLength: 1 + enum: [`owl:DatatypeProperty`], }, - lang: { type: 'string' } - } - } + specializes: { $ref: '#/$defs/idString' }, + itemType: { + type: 'string', + enum: [`${DEF.pfxNsMeta}Property`], + description: `The itemType for ${DEF.pfxNsMeta}Property` + }, + title: { $ref: '#/$defs/MultiLanguageText' }, + description: { $ref: '#/$defs/MultiLanguageText' }, + definition: { $ref: '#/$defs/MultiLanguageText' }, + datatype: { + type: 'string', + pattern: '^xsd?:[A-Za-z]+$' + }, + minCount: { type: 'integer', minimum: 0 }, + maxCount: { type: 'integer', minimum: 1 }, + maxLength: { type: 'integer', minimum: 1 }, + minInclusive: { type: 'number' }, + maxInclusive: { type: 'number' }, + pattern: { type: 'string' }, + unit: { type: 'string' }, + defaultValue: { type: 'string' }, + composedProperty: { + type: 'array', + items: { $ref: '#/$defs/idString' } + }, + revision: { type: 'string' }, + priorRevision: { + type: 'array', + maxItems: 2, + items: { type: 'string' } + }, + modified: { + type: 'string', + format: 'date-time' + }, + creator: { type: 'string' } + }, + additionalProperties: false, + required: ['id', 'hasClass', 'itemType', 'title'], // change info is optional for classes + $defs: this.getDefs() + }; } -}; -const validateAnEntitySchema = ajv.compile(ANENTITY_SCHEMA); -/* ARELATIONSHIP_SCHEMA: describes IARelationship (pig:aRelationship) */ -const ARELATIONSHIP_SCHEMA = { - $schema: 'http://json-schema.org/draft-07/schema#', - $id: 'https://gfse.org/schema/pig/IARelationship', - type: 'object', - properties: { - id: { $ref: '#/$defs/idString' }, - itemType: { - type: 'string', - enum: ['pig:aRelationship'], - description: 'The PigItemType for pig:aRelationship' - }, - hasClass: { $ref: '#/$defs/idString' }, - title: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - description: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - revision: { type: 'string' }, - priorRevision: { - type: 'array', - minItems: 1, - maxItems: 2, - items: { type: 'string' } - }, - modified: { - type: 'string', - format: 'date-time' - }, - creator: { type: 'string' }, - hasProperty: { - type: 'array', - items: { - type: 'object', - properties: { - itemType: { - type: 'string', - enum: ['pig:aProperty'] - }, - hasClass: { $ref: '#/$defs/idString' }, - value: { - type: 'string', - minLength: 1 - }, - idRef: { $ref: '#/$defs/idString' }, - aComposedProperty: { - type: 'array', - items: { $ref: '#/$defs/idString' } - } + static getLinkSchema() { + return { + $schema: this.getSchemaSchema(), + $id: `${this.getSchemaPath()}IReference`, + type: 'object', + properties: { + id: { $ref: '#/$defs/idString' }, + hasClass: { + type: 'string', + enum: [`owl:ObjectProperty`], }, - required: ['itemType', 'hasClass'], - oneOf: [ - { required: ['value'] }, - { required: ['idRef'] } - ], - additionalProperties: false - } - }, - hasSourceLink: { - type: 'array', - minItems: 1, - maxItems: 1, - items: { - type: 'object', - properties: { - itemType: { - type: 'string', - enum: ['pig:aSourceLink'] - }, - hasClass: { $ref: '#/$defs/idString' }, - idRef: { $ref: '#/$defs/idString' } + specializes: { $ref: '#/$defs/idString' }, + itemType: { + type: 'string', + enum: [`${DEF.pfxNsMeta}Link`], + description: `The itemType for ${DEF.pfxNsMeta}Link` }, - required: ['itemType', 'hasClass', 'idRef'], - additionalProperties: false - } - }, - hasTargetLink: { - type: 'array', - minItems: 1, - maxItems: 1, - items: { - type: 'object', - properties: { - itemType: { - type: 'string', - enum: ['pig:aTargetLink'] - }, - hasClass: { $ref: '#/$defs/idString' }, - idRef: { $ref: '#/$defs/idString' } + title: { $ref: '#/$defs/MultiLanguageText' }, + description: { $ref: '#/$defs/MultiLanguageText' }, + definition: { $ref: '#/$defs/MultiLanguageText' }, + enumeratedEndpoint: { + type: 'array', + minItems: 1, + items: { $ref: '#/$defs/idString' } }, - required: ['itemType', 'hasClass', 'idRef'], - additionalProperties: false - } - } - }, - additionalProperties: false, - // aRelationship does not need title nor description; the indications of its class suffice: - required: ['id', 'itemType', 'hasClass', 'modified', 'hasSourceLink', 'hasTargetLink'], - $defs: { - idString: { - type: 'string', - description: 'TPigId — term with namespace (prefix:local) or an URI', - pattern: ID_NAME_PATTERN - }, - LanguageText: { + minCount: { type: 'integer', minimum: 0 }, + maxCount: { type: 'integer', minimum: 1 }, + revision: { type: 'string' }, + priorRevision: { + type: 'array', + maxItems: 2, + items: { type: 'string' } + }, + modified: { + type: 'string', + format: 'date-time' + }, + creator: { type: 'string' } + }, + additionalProperties: false, + required: ['id', 'hasClass', 'itemType', 'title', 'enumeratedEndpoint'], // change info is optional for classes + $defs: this.getDefs() + }; + } + + static getEntitySchema() { + return { + $schema: this.getSchemaSchema(), + $id: `${this.getSchemaPath()}IEntity`, type: 'object', - required: ['value'], + properties: { + id: { $ref: '#/$defs/idString' }, + hasClass: { + type: 'string', + enum: [`owl:Class`], + }, + specializes: { $ref: '#/$defs/idString' }, + itemType: { + type: 'string', + enum: [`${DEF.pfxNsMeta}Entity`], + description: `The itemType for ${DEF.pfxNsMeta}Entity` + }, + title: { $ref: '#/$defs/MultiLanguageText' }, + description: { $ref: '#/$defs/MultiLanguageText' }, + definition: { $ref: '#/$defs/MultiLanguageText' }, + enumeratedProperty: { + type: 'array', + items: { $ref: '#/$defs/idString' } + }, + enumeratedTargetLink: { + type: 'array', + items: { $ref: '#/$defs/idString' } + }, + icon: { + type: 'object', + required: ['value'], + additionalProperties: false, + properties: { + value: { type: 'string' } + }, + description: 'string oder data URI für das Entity-Icon' + }, + revision: { type: 'string' }, + priorRevision: { + type: 'array', + maxItems: 2, + items: { type: 'string' } + }, + modified: { + type: 'string', + format: 'date-time' + }, + creator: { type: 'string' } + }, additionalProperties: false, + required: ['id', 'hasClass', 'itemType', 'title'], // change info is optional for classes + $defs: this.getDefs() + }; + } + + static getRelationshipSchema() { + return { + $schema: this.getSchemaSchema(), + $id: `${this.getSchemaPath()}IRelationship`, + type: 'object', properties: { - value: { + id: { $ref: '#/$defs/idString' }, + hasClass: { type: 'string', - minLength: 1 + enum: [`owl:Class`], }, - lang: { type: 'string' } - } - } + specializes: { $ref: '#/$defs/idString' }, + itemType: { + type: 'string', + enum: [`${DEF.pfxNsMeta}Relationship`], + description: `The itemType for ${DEF.pfxNsMeta}Relationship` + }, + title: { $ref: '#/$defs/MultiLanguageText' }, + description: { $ref: '#/$defs/MultiLanguageText' }, + definition: { $ref: '#/$defs/MultiLanguageText' }, + enumeratedProperty: { + type: 'array', + items: { $ref: '#/$defs/idString' } + }, + enumeratedSourceLink: { + type: 'array', + minItems: 1, // exactly 1 which is not pointing to an enumeration + maxItems: 1, + items: { $ref: '#/$defs/idString' } + }, + enumeratedTargetLink: { + type: 'array', + minItems: 1, // exactly 1 which is not pointing to an enumeration plus 0..n which are pointing to enumerations + items: { $ref: '#/$defs/idString' } + }, + icon: { + type: 'object', + required: ['value'], + additionalProperties: false, + properties: { + value: { type: 'string' } + }, + description: 'string oder data URI für das Relationship-Icon' + }, + revision: { type: 'string' }, + priorRevision: { + type: 'array', + maxItems: 2, + items: { type: 'string' } + }, + modified: { + type: 'string', + format: 'date-time' + }, + creator: { type: 'string' } + }, + additionalProperties: false, + required: ['id', 'hasClass', 'itemType', 'title'], // change info is optional for classes + $defs: this.getDefs() + }; } -}; -const validateARelationshipSchema = ajv.compile(ARELATIONSHIP_SCHEMA); -/* APACKAGE_SCHEMA: describes IAPackage (pig:aPackage) */ -const APACKAGE_SCHEMA = { - $schema: 'http://json-schema.org/draft-07/schema#', - $id: 'https://gfse.org/schema/pig/IAPackage', - type: 'object', - properties: { - context: { - type: 'array', - // minItems: 1, - items: { - type: 'object', - description: 'Namespace definitions with tag and URI mappings', - properties: { - tag: { type: 'string' }, - uri: { type: 'string', format: 'uri' } + static getAnEntitySchema() { + return { + $schema: this.getSchemaSchema(), + $id: `${this.getSchemaPath()}IAnEntity`, + type: 'object', + properties: { + id: { $ref: '#/$defs/idString' }, + hasClass: { $ref: '#/$defs/idString' }, + itemType: { + type: 'string', + enum: [`${DEF.pfxNsMeta}anEntity`], + description: `The itemType for ${DEF.pfxNsMeta}anEntity` }, - additionalProperties: false - } - }, - id: { $ref: '#/$defs/idString' }, - itemType: { - type: 'string', - enum: ['pig:aPackage'], - description: 'The PigItemType for pig:aPackage' - }, - title: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - description: { - type: 'array', - minItems: 1, - items: { $ref: '#/$defs/LanguageText' } - }, - revision: { type: 'string' }, - priorRevision: { - type: 'array', - minItems: 1, - maxItems: 2, - items: { type: 'string' } - }, - modified: { - type: 'string', - format: 'date-time' - }, - creator: { type: 'string' }, - graph: { - type: 'array', - items: { - type: 'object', - description: 'Any PIG item in the package graph; items are checked individually before instantiation' - } - } - }, - additionalProperties: false, - required: ['id', 'itemType', 'modified', 'graph'], - $defs: { - idString: { - type: 'string', - description: 'TPigId — term with namespace (prefix:local) or an URI', - pattern: ID_NAME_PATTERN - }, - LanguageText: { + title: { $ref: '#/$defs/MultiLanguageText' }, + description: { $ref: '#/$defs/MultiLanguageText' }, + hasProperty: this.getPropertyRef(), + hasTargetLink: this.getLinkRef(`${DEF.pfxNsMeta}aTargetLink`), + revision: { type: 'string' }, + priorRevision: { + type: 'array', + maxItems: 2, + items: { type: 'string' } + }, + modified: { + type: 'string', + format: 'date-time' + }, + creator: { type: 'string' } + }, + additionalProperties: false, + required: ['id', 'hasClass', 'itemType', 'modified'], + anyOf: [ + { required: ['title'] }, + { required: ['description'] } + ], + $defs: this.getDefs() + }; + } + + static getARelationshipSchema() { + return { + $schema: this.getSchemaSchema(), + $id: `${this.getSchemaPath()}IARelationship`, type: 'object', - required: ['value'], + properties: { + id: { $ref: '#/$defs/idString' }, + hasClass: { $ref: '#/$defs/idString' }, + itemType: { + type: 'string', + enum: [`${DEF.pfxNsMeta}aRelationship`], + description: `The itemType for ${DEF.pfxNsMeta}aRelationship` + }, + title: { $ref: '#/$defs/MultiLanguageText' }, + description: { $ref: '#/$defs/MultiLanguageText' }, + hasProperty: this.getPropertyRef(), + hasSourceLink: this.getLinkRef(`${DEF.pfxNsMeta}aSourceLink`, 1, 1), + hasTargetLink: this.getLinkRef(`${DEF.pfxNsMeta}aTargetLink`, 1), // exactly 1 which is not pointing to an enumeration plus 0..n which are pointing to enumerations + revision: { type: 'string' }, + priorRevision: { + type: 'array', + maxItems: 2, + items: { type: 'string' } + }, + modified: { + type: 'string', + format: 'date-time' + }, + creator: { type: 'string' } + }, additionalProperties: false, + required: ['id', 'hasClass', 'itemType', 'modified', 'hasSourceLink', 'hasTargetLink'], // but neither title nor description is required + $defs: this.getDefs() + }; + } + + static getAPackageSchema() { + return { + $schema: this.getSchemaSchema(), + $id: `${this.getSchemaPath()}IAPackage`, + type: 'object', properties: { - value: { + context: { + type: 'array', + items: { + type: 'object', + description: 'Namespace definitions with tag and URI mappings', + properties: { + tag: { type: 'string' }, + uri: { type: 'string', format: 'uri' } + }, + additionalProperties: false + } + }, + id: { $ref: '#/$defs/idString' }, + hasClass: { type: 'string', - minLength: 1 + enum: [`${DEF.pfxNsMeta}Package`], }, - lang: { type: 'string' } - } - } + itemType: { + type: 'string', + enum: [`${DEF.pfxNsMeta}aPackage`], + description: `The itemType for ${DEF.pfxNsMeta}aPackage` + }, + title: { $ref: '#/$defs/MultiLanguageText' }, + description: { $ref: '#/$defs/MultiLanguageText' }, + hasProperty: this.getPropertyRef(), + hasTargetLink: this.getLinkRef(`${DEF.pfxNsMeta}aTargetLink`), + revision: { type: 'string' }, + priorRevision: { + type: 'array', + maxItems: 2, + items: { type: 'string' } + }, + modified: { + type: 'string', + format: 'date-time' + }, + creator: { type: 'string' }, + graph: { + type: 'array', + items: { + type: 'object', + description: 'Any metamodel item in the package graph; items are checked individually before instantiation' + } + } + }, + additionalProperties: false, + required: ['context', 'id', 'hasClass', 'itemType', 'modified', 'graph'], + $defs: this.getDefs() + }; } -}; -const validateAPackageSchema = ajv.compile(APACKAGE_SCHEMA); +} -/** SCH: Exported schemata and validation functions for PIG items: -*/ +// Validierungsfunktionen +const validateEnumerationSchema = ajv.compile(PigSchemaFactory.getEnumerationSchema()) +const validatePropertySchema = ajv.compile(PigSchemaFactory.getPropertySchema()); +const validateLinkSchema = ajv.compile(PigSchemaFactory.getLinkSchema()); +const validateEntitySchema = ajv.compile(PigSchemaFactory.getEntitySchema()); +const validateRelationshipSchema = ajv.compile(PigSchemaFactory.getRelationshipSchema()); +const validateAnEntitySchema = ajv.compile(PigSchemaFactory.getAnEntitySchema()); +const validateARelationshipSchema = ajv.compile(PigSchemaFactory.getARelationshipSchema()); +const validateAPackageSchema = ajv.compile(PigSchemaFactory.getAPackageSchema()); + +// Exportstruktur export const SCH = { - PROPERTY_SCHEMA, + ENUMERATION_SCHEMA: PigSchemaFactory.getEnumerationSchema(), + validateEnumerationSchema, + getValidateEnumerationErrors() { + return ajv.errorsText(validateEnumerationSchema.errors, { separator: '; ' }); + }, + PROPERTY_SCHEMA: PigSchemaFactory.getPropertySchema(), validatePropertySchema, getValidatePropertyErrors() { return ajv.errorsText(validatePropertySchema.errors, { separator: '; ' }); }, - LINK_SCHEMA, + LINK_SCHEMA: PigSchemaFactory.getLinkSchema(), validateLinkSchema, getValidateLinkErrors() { - return ajv.errorsText(validateLinkSchema.errors, { separator: '; ' }) + return ajv.errorsText(validateLinkSchema.errors, { separator: '; ' }); }, - ENTITY_SCHEMA, + ENTITY_SCHEMA: PigSchemaFactory.getEntitySchema(), validateEntitySchema, getValidateEntityErrors() { - return ajv.errorsText(validateEntitySchema.errors, { separator: '; ' }) + return ajv.errorsText(validateEntitySchema.errors, { separator: '; ' }); }, - RELATIONSHIP_SCHEMA, + RELATIONSHIP_SCHEMA: PigSchemaFactory.getRelationshipSchema(), validateRelationshipSchema, getValidateRelationshipErrors() { - return ajv.errorsText(validateRelationshipSchema.errors, { separator: '; ' }) + return ajv.errorsText(validateRelationshipSchema.errors, { separator: '; ' }); }, - ANENTITY_SCHEMA, + ANENTITY_SCHEMA: PigSchemaFactory.getAnEntitySchema(), validateAnEntitySchema, getValidateAnEntityErrors() { - return ajv.errorsText(validateAnEntitySchema.errors, { separator: '; ' }) + return ajv.errorsText(validateAnEntitySchema.errors, { separator: '; ' }); }, - ARELATIONSHIP_SCHEMA, + ARELATIONSHIP_SCHEMA: PigSchemaFactory.getARelationshipSchema(), validateARelationshipSchema, getValidateARelationshipErrors() { - return ajv.errorsText(validateARelationshipSchema.errors, { separator: '; ' }) + return ajv.errorsText(validateARelationshipSchema.errors, { separator: '; ' }); }, - APACKAGE_SCHEMA, + APACKAGE_SCHEMA: PigSchemaFactory.getAPackageSchema(), validateAPackageSchema, getValidateAPackageErrors() { - return ajv.errorsText(validateAPackageSchema.errors, { separator: '; ' }) + return ajv.errorsText(validateAPackageSchema.errors, { separator: '; ' }); } }; diff --git a/src/common/schema/pig/jsonld/pig-schemata-jsonld.ts b/src/common/schema/pig/jsonld/pig-schemata-jsonld.ts index aeedc04..3967f21 100644 --- a/src/common/schema/pig/jsonld/pig-schemata-jsonld.ts +++ b/src/common/schema/pig/jsonld/pig-schemata-jsonld.ts @@ -32,6 +32,7 @@ * - Link.json * - Entity.json * - Relationship.json + * - Enumeration.json * - anEntity.json * - aRelationship.json * - aPackage.json @@ -40,7 +41,7 @@ import type { JsonObject } from '../../../lib/helpers'; import type { ValidateFunction } from 'ajv'; import { ajv } from '../../../../plugins/ajv'; -import { PIN } from '../../../lib/platform-independence'; +import { PLI } from '../../../lib/platform-independence'; /** * Get platform-appropriate base path for schema files @@ -50,7 +51,7 @@ import { PIN } from '../../../lib/platform-independence'; * @returns Base path for schema files */ function getSchemaBasePath(): string { - if (PIN.isBrowserEnv()) { + if (PLI.isBrowserEnv()) { // Browser: fetch from public directory via HTTP const baseUrl = window.location.origin; return `${baseUrl}/assets/jsonld/`; @@ -66,6 +67,7 @@ const SCHEMA_FILE_NAMES = { Link: 'Link.json', Entity: 'Entity.json', Relationship: 'Relationship.json', + Enumeration: 'Enumeration.json', AnEntity: 'anEntity.json', ARelationship: 'aRelationship.json', APackage: 'aPackage.json' @@ -98,8 +100,8 @@ async function loadSchema(schemaKey: SchemaKey): Promise const schemaPath = SCHEMA_FILES[schemaKey]; try { - // Use PIN.readFileAsText to support both Node and browser - const rsp = await PIN.readFileAsText(schemaPath); + // Use PLI.readFileAsText to support both Node and browser + const rsp = await PLI.readFileAsText(schemaPath); if (!rsp.ok) { throw new Error(`Failed to load schema ${schemaPath}: ${rsp.statusText}`); @@ -141,6 +143,7 @@ async function initializeSchemata(): Promise { ajv.addSchema(schemata.Link); ajv.addSchema(schemata.Entity); ajv.addSchema(schemata.Relationship); + ajv.addSchema(schemata.Enumeration); ajv.addSchema(schemata.AnEntity); ajv.addSchema(schemata.ARelationship); ajv.addSchema(schemata.APackage); @@ -163,6 +166,7 @@ let validatePropertyLD: ValidateFunction | null = null; let validateLinkLD: ValidateFunction | null = null; let validateEntityLD: ValidateFunction | null = null; let validateRelationshipLD: ValidateFunction | null = null; +let validateEnumerationLD: ValidateFunction | null = null; let validateAnEntityLD: ValidateFunction | null = null; let validateARelationshipLD: ValidateFunction | null = null; let validatePackageLD: ValidateFunction | null = null; @@ -189,6 +193,9 @@ async function getValidator(schemaKey: SchemaKey): Promise { case 'Relationship': if (!validateRelationshipLD) validateRelationshipLD = ajv.compile(schema); return validateRelationshipLD; + case 'Enumeration': + if (!validateEnumerationLD) validateEnumerationLD = ajv.compile(schema); + return validateEnumerationLD; case 'AnEntity': if (!validateAnEntityLD) validateAnEntityLD = ajv.compile(schema); return validateAnEntityLD; @@ -220,13 +227,16 @@ export const SCH_LD = { async getRelationshipValidator() { return await getValidator('Relationship'); }, + async getEnumerationValidator() { + return await getValidator('Enumeration'); + }, async getAnEntityValidator() { return await getValidator('AnEntity'); }, async getARelationshipValidator() { return await getValidator('ARelationship'); }, - async getPackageValidator() { + async getAPackageValidator() { return await getValidator('APackage'); }, @@ -243,13 +253,16 @@ export const SCH_LD = { async getRelationshipSchema() { return await loadSchema('Relationship'); }, + async getEnumerationSchema() { + return await loadSchema('Enumeration'); + }, async getAnEntitySchema() { return await loadSchema('AnEntity'); }, async getARelationshipSchema() { return await loadSchema('ARelationship'); }, - async getPackageSchema() { + async getAPackageSchema() { return await loadSchema('APackage'); }, @@ -278,7 +291,7 @@ export const SCH_LD = { const validator = await getValidator('ARelationship'); return validator(data); }, - async validatePackageLD(data: JsonObject): Promise { + async validateAPackageLD(data: JsonObject): Promise { const validator = await getValidator('APackage'); return validator(data); }, @@ -302,13 +315,17 @@ export const SCH_LD = { }, async getValidateAnEntityLDErrors(): Promise { const validator = await getValidator('AnEntity'); + /* Add detailed error logging + if (validator.errors) { + console.log('AJV Validation Errors:', JSON.stringify(validator.errors, null, 2)); + } */ return ajv.errorsText(validator.errors, { separator: '; ' }); }, async getValidateARelationshipLDErrors(): Promise { const validator = await getValidator('ARelationship'); return ajv.errorsText(validator.errors, { separator: '; ' }); }, - async getValidatePackageLDErrors(): Promise { + async getValidateAPackageLDErrors(): Promise { const validator = await getValidator('APackage'); return ajv.errorsText(validator.errors, { separator: '; ' }); }, diff --git a/src/common/schema/pig/ts/pig-metaclasses.ts b/src/common/schema/pig/ts/pig-metaclasses.ts index 72362f9..637c933 100644 --- a/src/common/schema/pig/ts/pig-metaclasses.ts +++ b/src/common/schema/pig/ts/pig-metaclasses.ts @@ -1,83 +1,105 @@ /*! - * Product Information Graph (PIG) Metaclasses - * Copyright 2025 GfSE (https://gfse.org) + * CASCaRA Graph (cas:) Metaclasses - the basic object structure + * Copyright 2026 GfSE (https://gfse.org) * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Reference-Implementation/issues) */ -/** Product Information Graph (PIG) Metaclasses - the basic object structure representing the PIG - * Dependencies: none - * Authors: oskar.dungern@gfse.org +/** + * CASCaRA Graph (cas:) Metaclasses - the basic object structure + * ------------------------------------------------------------- + * Authors: oskar.dungern@gfse.org + * Copyright 2026 GfSE (https://gfse.org) + * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) * - * Design Decisions: - * - The PIG classes contain *only *the elements in the metamodel; it could be generated from the metamodel. - * - Abstract classes are not exported, only the concrete classes. - * - All names are always in singular form, even if they have multiple values. - * - The itemType is explicitly stored with each item to support searching (in the cache or database) ... and for runtime checking. - * - The 'AProperty' instances are instantiated as part their parent objects 'AnEntity' or 'ARelationship'. - * - Similarly, the 'ALink' instances are instantiated as part their parent objects 'AnEntity' or 'ARelationship'. - * - Both 'AProperty' and 'ALink' have no identifier and no revision history of their own. - * - Other objects are referenced by URIs (TPigId) to avoid inadvertant duplication of objects ... at the cost of repeated cache access. - * This means the code must resolve any reference by reading the referenced object explicitly from cache, when needed. - * - aRelationship.hasSourceLink is an array with maxCount=1 to have the same structure as anEntity.hasSourceLink. - * - same for enumeratedTargetLink - * - To avoid access to the cache in the validation methods, the validation of references to classes shall be done in an overall consistency check - * before the items are instantiated here. - * - Links to other items are stored as simple strings (the URIs) to avoid deep object graphs; - * those references are expanded to id objects only when serializing to JSON-LD. - * - The 'get' methods return plain JSON objects matching the interfaces, suitable for serialization and persistence. - * - The 'getJSONLD' and 'setJSONLD' methods handle conversion to/from JSON-LD representation. - * - The 'set' methods are chainable to allow concise code when creating new instances. - * - Programming errors result in exceptions, data errors in IMsg return values. + * Notice: + * - Initially the metamodel had been called "Product Information Graph" (PIG) with namespace prefix 'pig:'. + * - Now it is called CASCaRA with namespace prefix 'cas:'. + * - The codebase still uses the abbreviation PIG or pig in many places for historical reasons, + * - but the namespace prefix for the metamodel and for the semantic infrastructure has been set to 'cas:', see definitions.ts. + * + * Design Decisions: + * - The CASCaRA (PIG) classes in this module contain *only* the elements in the metamodel; it could be generated from the metamodel. + * - Abstract classes are not exported to other modules, only the concrete classes. + * - All names are always in singular form, even if they have multiple values. + * - The itemType is explicitly stored with each item to support searching (in the cache or database) ... and for runtime checking. + * - The 'aProperty' instances are instantiated as part their parent objects 'anEntity', 'aRelationship' or 'aPackage'. + * - Similarly, the 'aLink' instances are instantiated as part their parent objects 'anEntity', 'aRelationship' or 'aPackage'. + * - Both 'aProperty' and 'aLink' have no identifier and no revision history of their own. + * - Other objects are referenced by URIs (TPigId) to avoid inadvertant duplication of objects ... at the cost of repeated cache access. + * This means the code must resolve any reference by reading the referenced object explicitly from cache, when needed. + * - aRelationship.hasTargetLink is an array with maxCount=1 to have the same structure as anEntity.hasTargetLink. + * - same for hasSourceLink + * - To avoid access to the cache in the validation methods, the validation of references to classes shall be done in an overall consistency check; + * - Links to other items are stored as simple strings (the URIs) to avoid deep object graphs; + * those references are expanded to id objects only when serializing to JSON-LD. + * - The 'set' methods are chainable to allow concise code when creating new instances. + * - The 'get' methods return plain JSON objects matching the interfaces, suitable for serialization and persistence. + * - The 'setJSONLD' methods handles conversion from JSON-LD representation. + * - There are no 'getJSONLD' methods for the core classes. Instead, the data is transformed to JSON-LD in a separate module + * providing a getJSONLD() function for all itemTypes. The reason is to avoid that this module is getting huge. + * - Similar for getHTML() and others. + * - Programming errors result in exceptions, data errors in IMsg return values. + * - The namespace prefixes are defined in definitions.ts and used consistently in the code; it was initially 'pig:' + * and is now pfxNsMeta: 'cas:' for the metamodel and pfxNsSemi: 'cas:' for the semantic infrastructure. + * - CASCaRA (PIG) classes (as derived from the ontology) get version information it their URL path. + * - All others must at least specify the 'modified' attribute to capture the version history of the item; + * it is recommended to maintain revision and priorRevision as well for better configuration management and traceability. * - * ToDo: - * - Must a Link specify minCount and maxCount for hasEndpoint of its instances? How to handle cardinality of links in the overall consistency check? - * - implement 'composes' (formerly composedProperty) for Property and AProperty - * - Check use of PigItem.normalizeId() in the setJSONLD() thread - * - PigItem.normalizeId() shortly before validate() in set() ? - * - Check the result of PigItem.normalizeId in the setXML() thread in case of enumerated values: must be 'o:' - * - Reconsider aSourceLink and aTargetLink use: empty list means none allowed and no list means all allowed? - * - Add dummy namespaces for 'o:' and 'd:' in case they have been added to a package with local names - * - allow packages to be nested - * - Consider the storage of numeric and boolean values: should be string? - * - Consider the storage of namespaces: now object with properties tag and uri: should be objects with {tag: uri}? - * - Consider: In the schemata, additionalProperties=false is widely used. This prevents upward compatibility. - * This code could just *ignore* additional properties. - * - Consider the schema of pig.xml: In RDF and JSON-LD the class names of aLink and aProperty are used as predicate. - * - Consolidate XsDataType and PigItem.isSupportedDataType() to avoid duplication and inconsistencies. + * @ToDo: + * ✅ Must a Link specify minCount and maxCount for hasEndpoint of its instances? How to handle cardinality of links in the overall consistency check? + * ✅ This does also concern enumerations, which have minCount and maxCount at present --> (perhaps) move it to the link class! + * - implement 'composes' (formerly composedProperty) for Property and aProperty + * - Check use of PigItem.normalizeId() in the setJSONLD() thread + * PigItem.normalizeId() shortly before validate() in set() ? + * ✅ Check the result of PigItem.normalizeId in the setXML() thread in case of enumerated values + * ✅ Reconsider aSourceLink and aTargetLink use: empty list means none allowed and no list means all allowed? --> YES. + * - Add dummy namespaces for 'o:' and 'd:' in case they have been added to a package with local names using normalizeId() + * - allow packages to be nested + * - implement the import of configurable properties and links for aPackage. + * - Consider the storage of numeric and boolean values: should be string? + * ✅ Consider the storage of namespaces: now object with properties tag and uri: should be objects with {tag: uri}? --> keep as is + * - Consider: In the schemata, additionalProperties=false is widely used. This prevents upward compatibility. + * This code could just *ignore* additional properties. + * - Consider the schema of pig.xml: In RDF and JSON-LD the class names of aLink and aProperty are used as predicate. + * - Consolidate XsDataType and PigItem.isSupportedDataType() to avoid duplication and inconsistencies. + * - There are redundant transformations from JSON-LD to internal format for individual items and a whole package. */ import { IRsp, rspOK, Msg, Rsp } from "../../../lib/messages"; import { DEF, RE } from "../../../lib/definitions"; -import { LIB, LOG } from "../../../lib/helpers"; +import { LIB, LOG, INamespace, ILanguageText, IText } from "../../../lib/helpers"; import { MVF } from "../../../lib/mvf"; -import { PIN, NodeType } from "../../../lib/platform-independence"; -import { JsonPrimitive, JsonValue, JsonArray, JsonObject, tagIETF, TISODateString } from "../../../lib/helpers"; +import { PLI, NodeType } from "../../../lib/platform-independence"; +import { JsonPrimitive, JsonValue, JsonObject, tagIETF, TISODateString } from "../../../lib/helpers"; import { SCH } from '../json/pig-schemata'; import { checkConstraintsForPackage } from './pig-package-constraints'; -import { IOptionsHTML, stringHTML, toHTML } from '../../../export/html/exportHTML'; export type TPigId = string; // an URI, typically a UUID with namespace (e.g. 'ns:123e4567-e89b-12d3-a456-426614174000') or a URL -export type TRevision = string; // ToDo: should be better described using a pattern (RegExp) -export type TPigClass = Property | Link | Entity | Relationship; +export type TRevision = string; // @ToDo: should be better described using a pattern (RegExp) +export type TPigClass = Enumeration | Property | Link | Entity | Relationship; export type TPigElement = Entity | Relationship; export type TPigAnElement = APackage | AnEntity | ARelationship; export type TPigItem = TPigClass | TPigAnElement; export type stringXML = string; // contains XML code -export type ElementXML = globalThis.Element; // DOM Element typ +export type ElementXML = globalThis.Element; // DOM Element type export const PigItemType = { - aPackage: 'pig:aPackage', // PIG classes: - Property: 'pig:Property', - Link: 'pig:Link', - Entity: 'pig:Entity', - Relationship: 'pig:Relationship', + Package: `${DEF.pfxNsMeta}Package`, +// Ontology: `${DEF.pfxNsMeta}Ontology`, + Enumeration: `${DEF.pfxNsMeta}Enumeration`, + Property: `${DEF.pfxNsMeta}Property`, + Link: `${DEF.pfxNsMeta}Link`, + Entity: `${DEF.pfxNsMeta}Entity`, + Relationship: `${DEF.pfxNsMeta}Relationship`, // PIG instances/individuals: - aProperty: 'pig:aProperty', - aSourceLink: 'pig:aSourceLink', - aTargetLink: 'pig:aTargetLink', - anEntity: 'pig:anEntity', - aRelationship: 'pig:aRelationship' + aPackage: `${DEF.pfxNsMeta}aPackage`, + anOntology: `${DEF.pfxNsMeta}anOntology`, + aProperty: `${DEF.pfxNsMeta}aProperty`, + aSourceLink: `${DEF.pfxNsMeta}aSourceLink`, + aTargetLink: `${DEF.pfxNsMeta}aTargetLink`, + anEntity: `${DEF.pfxNsMeta}anEntity`, + aRelationship: `${DEF.pfxNsMeta}aRelationship` } as const; export type PigItemTypeValue = typeof PigItemType[keyof typeof PigItemType]; export enum XsDataType { @@ -94,6 +116,7 @@ export enum XsDataType { } const PIG_CLASSES = new Set([ + PigItemType.Enumeration, PigItemType.Property, PigItemType.Link, PigItemType.Entity, @@ -131,6 +154,8 @@ export class PigItem { static create(itemType: PigItemTypeValue): TPigItem | null { switch (itemType) { // PIG Classes + case PigItemType.Enumeration: + return new Enumeration(); case PigItemType.Property: return new Property(); case PigItemType.Link: @@ -192,6 +217,7 @@ export class PigItem { */ static isInstantiable(itype: PigItemTypeValue): boolean { return ([ + PigItemType.Enumeration, PigItemType.Property, PigItemType.Link, PigItemType.Entity, @@ -261,10 +287,12 @@ export class PigItem { /** * Type guard: checks whether a value is one of the XsDataType values */ - static isSupportedDataType(value: unknown): value is XsDataType { + static isSupportedDatatype(value: unknown): boolean { if (typeof value !== 'string') return false; const norm = value.replace(/^xsd:/, 'xs:'); - return (Object.values(XsDataType) as string[]).includes(norm); + return PigItem.isSupportedStringDatatype(norm) + || PigItem.isSupportedNumericDatatype(norm) + || (Object.values(XsDataType) as string[]).includes(norm); } /** @@ -279,7 +307,7 @@ export class PigItem { * - AnEntity: title, description * - ARelationship: title, description * - * ToDo: multiLanguageText also occurs in instances aProperty of configurable Property with datatype = 'string' + * @ToDo: multiLanguageText also occurs in instances aProperty of configurable Property with datatype = 'string' */ static isMultiLanguageText(propertyName: string, value?: unknown): boolean { @@ -315,9 +343,14 @@ export class PigItem { } /** * Normalize ID by adding namespace prefix if missing + * + * @param id - Raw ID from import (may lack namespace) + * @param itemType - PIG item type to determine correct prefix + * - is undefined in case of references, which are always classes + * @returns Normalized ID with namespace prefix */ - static normalizeId(id: string, itemType: PigItemTypeValue): string { - if (!id || typeof id !== 'string') { + static normalizeId(id: string, itemType?: PigItemTypeValue): string { + if (!id || typeof(id) !== 'string') { return id; } @@ -327,15 +360,15 @@ export class PigItem { } // Determine prefix using optimized type guards - // ToDo: Check whether the namespaces for enumerated value types are correctly normalized with 'o:' + // @ToDo: Check whether the namespaces for enumerated value types are correctly normalized with 'o:' // and also their references in properties let prefix: string; - if (PigItem.isClass(itemType)) { - prefix = 'o:'; - // else if (PigItem.isInstance(itemType)) { - // prefix = 'd:'; + if (!itemType || PigItem.isClass(itemType)) { + prefix = DEF.defaultOntologyNamespace; // add a default namespace prefix for classes if missing + // else if (PigItem.isInstance(itemType)) { } else { - prefix = 'd:'; // Default for unknown + // includes all references within instances where itemType is undefined + prefix = DEF.defaultDataNamespace; // add a default namespace prefix for instances if missing } const normalized = `${prefix}${id}`; @@ -344,17 +377,7 @@ export class PigItem { return normalized; } } -export interface INamespace { - tag: string; // e.g. a namespace tag, e.g. "pig:" - uri: string; // e.g. a namespace value, e.g. "https://product-information-graph.org/" -} -export interface ILanguageText { - value: string; - lang?: tagIETF; -} -export interface IText { - value: string; -} + ////////////////////////////////////// // The abstract classes: @@ -387,7 +410,7 @@ abstract class Item implements IItem { } protected validate(itm: IItem) { if (itm.itemType !== this.itemType) - return Msg.create(601, this.itemType, itm.itemType); + return Msg.create(613, this.itemType, itm.itemType); return rspOK; } protected set(itm: IItem): this { @@ -404,11 +427,15 @@ abstract class Item implements IItem { } interface IIdentifiable extends IItem { id: TPigId; // translates to @id in JSON-LD - specializes?: TPigId; // must be URI of a pig:item with equal itemType, no cyclic references, translates to rdfs:subClassOf + specializes?: TPigId; // must be URI of a cas:item with equal itemType, no cyclic references, translates to rdfs:subClassOf // Any one or both of the following must be present and have at least one item; see schemata: title?: ILanguageText[]; description?: ILanguageText[]; definition?: ILanguageText[]; // mandatory for classes, not allowed for instances as controlled be the schemata + revision?: TRevision; + priorRevision?: TRevision[]; + modified?: TISODateString; // mandatory for instances, see schemata + creator?: string; } abstract class Identifiable extends Item implements IIdentifiable { id!: TPigId; @@ -416,17 +443,21 @@ abstract class Identifiable extends Item implements IIdentifiable { title?: ILanguageText[]; description?: ILanguageText[]; definition?: ILanguageText[]; + revision?: TRevision; + priorRevision?: TRevision[]; + modified?: TISODateString; + creator?: string; protected constructor(itm: IItem) { super(itm); // actual itemType set in concrete class } protected validate(itm: IIdentifiable) { if (this.id && itm.id !== this.id) - return Msg.create(603, this.id, itm.id); + return Msg.create(614, this.id, itm.id); this.id = itm.id; // to complement status messages if (this.specializes && this.specializes !== itm.specializes) - return Msg.create(604, this.specializes, itm.specializes ?? ''); + return Msg.create(615, this.specializes, itm.specializes ?? ''); // Runtime guards: // This is more constraining than the schema, @@ -449,7 +480,7 @@ abstract class Identifiable extends Item implements IIdentifiable { if (!dRes.ok) return dRes; } - // ToDo: implement further validation logic + // @ToDo: implement further validation logic return super.validate(itm); } protected set(itm: IIdentifiable): this { @@ -462,6 +493,10 @@ abstract class Identifiable extends Item implements IIdentifiable { this.title = itm.title; this.description = itm.description; this.definition = itm.definition; + this.revision = itm.revision; + this.priorRevision = itm.priorRevision; + this.modified = itm.modified; + this.creator = itm.creator; // LOG.debug('Identifiable.set o: ', this); // made chainable in concrete subclass return this; @@ -473,7 +508,11 @@ abstract class Identifiable extends Item implements IIdentifiable { specializes: this.specializes, title: this.title, description: this.description, - definition: this.definition + definition: this.definition, + revision: this.revision, + priorRevision: this.priorRevision, + modified: this.modified, + creator: this.creator } as IIdentifiable); } protected fromJSONLD(itm: any) { @@ -497,11 +536,6 @@ abstract class Identifiable extends Item implements IIdentifiable { // Set the normalized object in the concrete subclass return ld; } - protected getJSONLD() { - const jld = MVF.renameJsonTags(this.get() as unknown as JsonObject, MVF.toJSONLD, { mutate: false }) as JsonObject; - // LOG.debug('Identifiable.getJSONLD: ', jld); - return makeIdObjects(jld) as JsonObject; - } /** * Generic XML parsing for all Identifiable subclasses * Parses XML to JSON and delegates to set() @@ -527,8 +561,8 @@ abstract class ALink extends Item implements IALink { protected validate(itm: IALink) { // id and itemType checked in superclass if (!itm.hasClass) - return Msg.create(602, itm.itemType); - // ToDo: implement further validation logic + return Msg.create(612, itm.itemType); + // @ToDo: implement further validation logic // - Check class reference; must be an existing Link URI (requires access to the cache to resolve the class -> do it through overall consistency check): return super.validate(itm); } @@ -548,10 +582,6 @@ abstract class ALink extends Item implements IALink { _itm = replaceIdObjects(_itm) as any; return this.set(_itm); } - protected getJSONLD() { - const jld = MVF.renameJsonTags(this.get() as unknown as JsonObject, MVF.toJSONLD, { mutate: false }) as JsonObject; - return makeIdObjects(jld) as JsonObject; - } } interface IElement extends IIdentifiable { enumeratedProperty?: TPigId[]; @@ -574,32 +604,24 @@ abstract class Element extends Identifiable implements IElement { protected get() { return { ...super.get(), - enumeratedProperty: Array.isArray(this.enumeratedProperty) ? this.enumeratedProperty : undefined, + enumeratedProperty: this.enumeratedProperty, // undefined: all allowed, empty array: none allowed, array with items: only those allowed icon: this.icon } as IElement; } } interface IAnElement extends IIdentifiable { - revision?: TRevision; - priorRevision?: TRevision[]; // optional - modified: TISODateString; - creator?: string; hasProperty?: IAProperty[]; hasTargetLink?: IALink[]; // array must have exactly one element as checked by the JSON schema } abstract class AnElement extends Identifiable implements IAnElement { - revision?: TRevision; - priorRevision?: TRevision[]; - modified!: TISODateString; - creator?: string; hasProperty!: AProperty[]; // instantiated AProperty items hasTargetLink!: ATargetLink[]; // array must have exactly one element as checked by the JSON schema protected constructor(itm: IItem) { super(itm); } /* protected validate(itm: IAnElement) { - // ToDo: implement further validation logic + // @ToDo: implement further validation logic return super.validate(itm); } */ protected set(itm: IAnElement): this { @@ -607,11 +629,6 @@ abstract class AnElement extends Identifiable implements IAnElement { // validated in concrete subclass before calling this; // also lastStatus set in concrete subclass. super.set(itm); - this.revision = itm.revision; - this.priorRevision = itm.priorRevision; - this.modified = itm.modified; - this.creator = itm.creator; - this.hasProperty = itm.hasProperty ? itm.hasProperty.map(p => new AProperty().set(p)) : []; this.hasTargetLink = itm.hasTargetLink ? itm.hasTargetLink.map(t => new ATargetLink().set(t)) : []; // LOG.debug('anEl.set 9',itm.hasProperty, this.hasProperty); @@ -621,10 +638,6 @@ abstract class AnElement extends Identifiable implements IAnElement { protected get() { return { ...super.get(), - revision: this.revision, - priorRevision: this.priorRevision, - modified: this.modified, - creator: this.creator, hasProperty: this.hasProperty.length>0? this.hasProperty.map(p => p.get()) : undefined, hasTargetLink: this.hasTargetLink.length > 0 ? this.hasTargetLink.map(t => t.get()) : undefined } as IAnElement; @@ -632,7 +645,7 @@ abstract class AnElement extends Identifiable implements IAnElement { protected fromJSONLD(itm: any) { const _itm = super.fromJSONLD(itm) as any; - // In JSON-LD all configurable properties have an ID-string as tag and an itemType pig:aProperty; + // In JSON-LD all configurable properties have an ID-string as tag and an itemType cas:aProperty; // collect them here in a hasProperty array, where the tag becomes hasClass; // they will be instantiated as AProperty items in set(): @@ -648,16 +661,10 @@ abstract class AnElement extends Identifiable implements IAnElement { const _itm = this.fromJSONLD(itm) as any; return this.set(_itm); } - protected getJSONLD() { - let jld = super.getJSONLD(); - - jld = this.addConfigurablesToJSONLD(jld, 'hasProperty'); - return this.addConfigurablesToJSONLD(jld, 'hasTargetLink'); - } /** * Collect configurable properties and references from a JSON-LD object. * In JSON-LD, configurable properties have an ID-string as key (namespace:name or URI) - * and their value is an array of objects with itemType 'pig:aProperty'. + * and their value is an array of objects with itemType 'cas:aProperty'. * This function extracts those properties and transforms them into a hasProperty array, * where the original key becomes the 'hasClass' field of each property. * @@ -679,7 +686,9 @@ abstract class AnElement extends Identifiable implements IAnElement { if (skipKeys.has(key)) continue; // Check if key is a valid ID string (namespace:name or URI) - if (!PigItem.isValidIdString(key)) continue; + const isValid = PigItem.isValidIdString(key); + // LOG.info(`collectConfigurablesFromJSONLD: checking key="${key}", isValid=${isValid}, itype=${itype}`); + if (!isValid) continue; const val = obj[key]; //LOG.debug('collect 2', key,val); @@ -688,9 +697,9 @@ abstract class AnElement extends Identifiable implements IAnElement { if (Array.isArray(val)) { for (const item of val) { if (item && typeof item === 'object') { - // Check if it has itemType 'pig:aProperty' (may be an id-object) + // Check if it has itemType 'cas:aProperty' (may be an id-object) // the tags have already been renamed: - const itemTypeValue = item.itemType /* || (item['pig:itemType'] && extractId(item['pig:itemType'])) */; + const itemTypeValue = item.itemType /* || (item['cas:itemType'] && extractId(item['cas:itemType'])) */; if (itemTypeValue === itype /* || !itemTypeValue*/) { // Add the property with the key as its hasClass reference @@ -699,7 +708,6 @@ abstract class AnElement extends Identifiable implements IAnElement { hasClass: key, // itype == PigItemType.Property: value in case of a plain value value: item.value /*|| item['@value'] */, - // itype == PigItemType.Property: idRef in case of an enumeration value(from enumeratedValue), // itype == PigItemType.Link: idRef is mandatory idRef: item.id, composes: item.composes @@ -711,7 +719,8 @@ abstract class AnElement extends Identifiable implements IAnElement { } // Handle single property value (non-array) else if (val && typeof val === 'object') { - const itemTypeValue = val.itemType || (val['pig:itemType'] && extractId(val['pig:itemType'])); + const nameItemType = `${DEF.pfxNsMeta}itemType`; + const itemTypeValue = val.itemType || (val[nameItemType] && extractId(val[nameItemType])); if (itemTypeValue === itype /* || !itemTypeValue */) { properties.push({ @@ -740,56 +749,6 @@ abstract class AnElement extends Identifiable implements IAnElement { return properties; } - /** - * Add hasProperty, hasSourceLink or hasTargetLink arrays to JSON-LD output - */ - protected addConfigurablesToJSONLD( - jld: JsonObject, - hasX: 'hasProperty' | 'hasSourceLink' | 'hasTargetLink' - ): JsonObject { - const items = (this as any)[hasX]; - // LOG.debug('addConfigurablesToJSONLD:', jld, this, hasX, items); - if (!Array.isArray(items)) { - return jld; - } - - const grouped = new Map(); - - for (const item of items) { - const propValue: Record = { - ['pig:itemType']: { ['@id']: item.itemType } as JsonObject - }; - - // Add value if present (only for AProperty) - if ('value' in item && item.value !== undefined) { - propValue['@value'] = item.value; - } - - // Add idRef if present - if (item.idRef !== undefined) { - propValue['@id'] = item.idRef; - } - - const key = item.hasClass as TPigId; - if (!grouped.has(key)) { - grouped.set(key, []); - } - - const gr = grouped.get(key); - if (Array.isArray(gr)) - gr.push(propValue as JsonObject); - else - throw new Error(`Invalid group for key: ${key}`); - } - - // Add grouped items to JSON-LD - for (const [key, values] of grouped) { - jld[key] = values as JsonValue; - } - - delete jld[hasX]; - return jld; - } } ////////////////////////////////////// @@ -802,6 +761,86 @@ export interface IEnumeratedValue { // in PIG, values of all datatypes are strings; the datatype is defined in the respective Property value?: string; } +export interface IEnumeration extends IIdentifiable { + datatype: string; // must be of XsDataType + enumeratedValue: IEnumeratedValue[]; // array of allowed values, datatype-dependent + unit?: string; // according to SI units +} +export class Enumeration extends Identifiable implements IEnumeration { + datatype!: string; + enumeratedValue!: IEnumeratedValue[]; + unit?: string; + constructor() { + super({itemType:PigItemType.Enumeration}); + } + validate(itm: IEnumeration) { + // Schema validation (AJV) - provides structural checks and reuses the idString definition + // LOG.debug('Enumeration.validate: ', itm); + try { + const ok = SCH.validateEnumerationSchema(itm); + if (!ok) { + const msg = SCH.getValidateEnumerationErrors(); + return Msg.create(681, 'Enumeration', itm.id, msg); + } + } catch (err: any) { + return Msg.create(681, 'Enumeration', itm.id, err?.message ?? String(err)); + } + + // Runtime guards: + // - id and itemType checked in superclass + // const rsp = validateIdString(itm.datatype); + // if (!rsp.ok) return rsp; + // - all datatypes beginning with 'xs:' are allowed, however only those defined in XsDatatypes are specifically supported, + // - undefined datatype is allowed for all enumerations that are not referenced (which is checked in the overall consistency check) + // - others shall be treated as strings (with a warning in the log): + if (itm.datatype && !PigItem.isSupportedDatatype(itm.datatype)) { + const msg = Msg.create(680, itm.id, itm.datatype); + LOG.warn(msg.statusText); + // return msg */ + } + + // @ToDo: implement further validation logic + return super.validate(itm); + } + set(itm: IEnumeration): this { + const _itm = LIB.stripUndefinedAndNull(itm) as IEnumeration; + // id is normalized in the caller (setXML or setJSONLD) on multiple levels + // For classes, the change information is optional and shall be used only for self-defined classes (as delivered in the package): + if (_itm.modified) + _itm.modified = normalizeDateTime(_itm.modified); + + // LOG.debug('Enumeration.set: '+ JSON.stringify(itm,null,2)); + this.lastStatus = this.validate(_itm); + if (this.lastStatus.ok) { + super.set(_itm); + this.datatype = _itm.datatype; + this.enumeratedValue = _itm.enumeratedValue; + this.unit = _itm.unit; + } + return this; // make chainable + } + get() { + return LIB.stripUndefinedAndNull({ + ...super.get(), + datatype: this.datatype, + enumeratedValue: this.enumeratedValue, + unit: this.unit + }) as IEnumeration; + } + fromJSONLD(itm: any) { + return super.fromJSONLD(itm) as any; + } + setJSONLD(itm: any) { + const _itm = this.fromJSONLD(itm) as any; + + // Normalize datatype (Property-specific) + if (_itm.datatype) { + _itm.datatype = _itm.datatype.replace(/^xsd:/, 'xs:'); + } + + return this.set(_itm); + } +} export interface IProperty extends IIdentifiable { datatype: string; // must be of XsDataType minCount?: number; @@ -810,7 +849,6 @@ export interface IProperty extends IIdentifiable { pattern?: string; // a RegExp pattern, only used for string datatype minInclusive?: number; // only used for numeric datatypes maxInclusive?: number; // only used for numeric datatypes - enumeratedValue?: IEnumeratedValue[]; // array of allowed values, datatype-dependent defaultValue?: string; // in PIG, values of all datatypes are strings unit?: string; // according to SI units composes?: TPigId[]; // must be URI of another Property, no cyclic references @@ -823,7 +861,6 @@ export class Property extends Identifiable implements IProperty { pattern?: string; minInclusive?: number; maxInclusive?: number; - enumeratedValue?: IEnumeratedValue[]; defaultValue?: string; unit?: string; composes?: TPigId[]; @@ -843,36 +880,42 @@ export class Property extends Identifiable implements IProperty { } // Runtime guards: - // id and itemType checked in superclass + // - id and itemType checked in superclass // const rsp = validateIdString(itm.datatype); // if (!rsp.ok) return rsp; - // all datatypes beginning with 'xs:' are allowed, however only those defined in XsDatatypes are specifically supported, - // others shall be treated as strings (with a warning in the log): - if (!PigItem.isSupportedDataType(itm.datatype)) { + // - all datatypes beginning with 'xs:' are allowed, however only those defined in XsDatatypes are specifically supported, + // - undefined datatype is allowed for all properties that are not referenced (which is checked in the overall consistency check) + // - others shall be treated as strings (with a warning in the log): + if (itm.datatype && !PigItem.isSupportedDatatype(itm.datatype)) { const msg = Msg.create(680, itm.id, itm.datatype); LOG.warn(msg.statusText); // return msg */ } - // ToDo: implement further validation logic + // @ToDo: implement further validation logic return super.validate(itm); } set(itm: IProperty): this { + const _itm = LIB.stripUndefinedAndNull(itm) as IProperty; + // id is normalized in the caller (setXML or setJSONLD) on multiple levels + // For classes, the change information is optional and shall be used only for self-defined classes (as delivered in the package): + if (_itm.modified) + _itm.modified = normalizeDateTime(_itm.modified); + // LOG.debug('Property.set: '+ JSON.stringify(itm,null,2)); - this.lastStatus = this.validate(itm); + this.lastStatus = this.validate(_itm); if (this.lastStatus.ok) { - super.set(itm); - this.datatype = itm.datatype; - this.minCount = itm.minCount || 0; - this.maxCount = itm.maxCount || 1; - this.maxLength = itm.maxLength; - this.pattern = itm.pattern; - this.minInclusive = itm.minInclusive; - this.maxInclusive = itm.maxInclusive; - this.enumeratedValue = itm.enumeratedValue; - this.defaultValue = itm.defaultValue; - this.unit = itm.unit; - this.composes = itm.composes; + super.set(_itm); + this.datatype = _itm.datatype; + this.minCount = _itm.minCount; + this.maxCount = _itm.maxCount; + this.maxLength = _itm.maxLength; + this.pattern = _itm.pattern; + this.minInclusive = _itm.minInclusive; + this.maxInclusive = _itm.maxInclusive; + this.defaultValue = _itm.defaultValue; + this.unit = _itm.unit; + this.composes = _itm.composes; } return this; // make chainable } @@ -886,7 +929,6 @@ export class Property extends Identifiable implements IProperty { pattern: this.pattern, minInclusive: this.minInclusive, maxInclusive: this.maxInclusive, - enumeratedValue: this.enumeratedValue, defaultValue: this.defaultValue, unit: this.unit, composes: this.composes @@ -905,15 +947,16 @@ export class Property extends Identifiable implements IProperty { return this.set(_itm); } - getJSONLD() { - return super.getJSONLD(); - } } export interface ILink extends IIdentifiable { enumeratedEndpoint: TPigId[]; // must be URI of an Entity or Relationship (class) + minCount?: number; + maxCount?: number; } export class Link extends Identifiable implements ILink { enumeratedEndpoint!: TPigId[]; + minCount?: number; + maxCount?: number; constructor() { super({ itemType: PigItemType.Link }); } @@ -936,17 +979,27 @@ export class Link extends Identifiable implements ILink { return super.validate(itm); } set(itm: ILink) { - this.lastStatus = this.validate(itm); + const _itm = LIB.stripUndefinedAndNull(itm) as ILink; + // id is normalized in the caller (setXML or setJSONLD) on multiple levels + // For classes, the change information is optional and shall be used only for self-defined classes (as delivered in the package): + if (_itm.modified) + _itm.modified = normalizeDateTime(_itm.modified); + + this.lastStatus = this.validate(_itm); if (this.lastStatus.ok) { - super.set(itm); - this.enumeratedEndpoint = itm.enumeratedEndpoint; + super.set(_itm); + this.enumeratedEndpoint = _itm.enumeratedEndpoint; + this.minCount = _itm.minCount; + this.maxCount = _itm.maxCount; } return this; } get() { return LIB.stripUndefinedAndNull({ ...super.get(), - enumeratedEndpoint: this.enumeratedEndpoint + enumeratedEndpoint: this.enumeratedEndpoint, + minCount: this.minCount, + maxCount: this.maxCount }) as ILink; } fromJSONLD(itm: any) { @@ -956,9 +1009,6 @@ export class Link extends Identifiable implements ILink { const _itm = this.fromJSONLD(itm) as any; return this.set(_itm); } - getJSONLD() { - return super.getJSONLD(); - } } export interface IEntity extends IElement { @@ -991,21 +1041,27 @@ export class Entity extends Element implements IEntity { // if present and empty, no references are allowed: const rsp = validateIdStringArray(itm.enumeratedTargetLink, 'enumeratedTargetLink', { canBeUndefined: true, minCount: 0 }); if (!rsp.ok) return rsp; */ - // ToDo: implement further validation logic + // @ToDo: implement further validation logic return super.validate(itm); } set(itm: IEntity) { - this.lastStatus = this.validate(itm); + const _itm = LIB.stripUndefinedAndNull(itm) as IEntity; + // id is normalized in the caller (setXML or setJSONLD) on multiple levels + // For classes, the change information is optional and shall be used only for self-defined classes (as delivered in the package): + if (_itm.modified) + _itm.modified = normalizeDateTime(_itm.modified); + + this.lastStatus = this.validate(_itm); if (this.lastStatus.ok) { - super.set(itm); - this.enumeratedTargetLink = itm.enumeratedTargetLink; + super.set(_itm); + this.enumeratedTargetLink = _itm.enumeratedTargetLink; } return this; // make chainable } get() { return LIB.stripUndefinedAndNull({ ...super.get(), - enumeratedTargetLink: Array.isArray(this.enumeratedTargetLink) ? this.enumeratedTargetLink : undefined + enumeratedTargetLink: this.enumeratedTargetLink // undefined: all allowed, empty array: none allowed, array with items: only those allowed }) as IEntity; } fromJSONLD(itm: any) { @@ -1015,18 +1071,15 @@ export class Entity extends Element implements IEntity { const _itm = this.fromJSONLD(itm) as any; return this.set(_itm); } - getJSONLD() { - return super.getJSONLD(); - } } export interface IRelationship extends IElement { - enumeratedSourceLink?: TPigId; // must hold Link URI - enumeratedTargetLink?: TPigId; // must hold Link URI + enumeratedSourceLink?: TPigId[]; // must hold Link URI, exactly 1 as checked by the JSON schema + enumeratedTargetLink?: TPigId[]; // must hold Link URI, exactly 1 not pointing to an enumeration } export class Relationship extends Element implements IRelationship { - enumeratedSourceLink?: TPigId; - enumeratedTargetLink?: TPigId; + enumeratedSourceLink?: TPigId[]; + enumeratedTargetLink?: TPigId[]; constructor() { super({ itemType: PigItemType.Relationship }); } @@ -1053,23 +1106,30 @@ export class Relationship extends Element implements IRelationship { if (!rsp.ok) return rsp; rsp = validateIdStringArray(itm.enumeratedTargetLink, 'enumeratedTargetLink', { canBeUndefined: true, minCount: 1 }); if (!rsp.ok) return rsp; */ - // ToDo: implement further validation logic + // @ToDo: implement further validation logic return super.validate(itm); } set(itm: IRelationship) { - this.lastStatus = this.validate(itm); + const _itm = LIB.stripUndefinedAndNull(itm) as IRelationship; + // id is normalized in the caller (setXML or setJSONLD) on multiple levels + // For classes, the change information is optional and shall be used only for self-defined classes (as delivered in the package): + if ( _itm.modified ) + _itm.modified = normalizeDateTime(_itm.modified); + + this.lastStatus = this.validate(_itm); if (this.lastStatus.ok) { - super.set(itm); - this.enumeratedSourceLink = itm.enumeratedSourceLink; - this.enumeratedTargetLink = itm.enumeratedTargetLink; + super.set(_itm); + // each of the following have at least one entry if present, as checked by the JSON schema; if not present, all references are allowed: + this.enumeratedSourceLink = _itm.enumeratedSourceLink; + this.enumeratedTargetLink = _itm.enumeratedTargetLink; } return this; } get() { return LIB.stripUndefinedAndNull({ ...super.get(), - enumeratedSourceLink: this.enumeratedSourceLink, - enumeratedTargetLink: this.enumeratedTargetLink + enumeratedSourceLink: this.enumeratedSourceLink, // undefined: all allowed, empty array: none allowed, array with items: only those allowed + enumeratedTargetLink: this.enumeratedTargetLink // as above }) as IRelationship; } fromJSONLD(itm: any) { @@ -1079,9 +1139,6 @@ export class Relationship extends Element implements IRelationship { const _itm = this.fromJSONLD(itm) as any; return this.set(_itm); } - getJSONLD() { - return super.getJSONLD(); - } } // For the instances/individuals, the 'payload': @@ -1100,7 +1157,7 @@ export class AProperty extends Item implements IAProperty { validate(itm: IAProperty) { // itemType checked in superclass if (!itm.hasClass) - return Msg.create(602, PigItemType.aProperty); + return Msg.create(612, PigItemType.aProperty); return super.validate(itm); } set(itm: IAProperty) { @@ -1129,8 +1186,8 @@ export class ASourceLink extends ALink implements IALink { validate(itm: IALink) { // itemType checked in superclass if (!itm.hasClass) - return Msg.create(602, PigItemType.aSourceLink); - // ToDo: implement further validation logic + return Msg.create(612, PigItemType.aSourceLink); + // @ToDo: implement further validation logic // - Check class reference; must be an existing Property URI (requires access to the cache to resolve the class -> do it through overall consistency check): return super.validate(itm); } @@ -1142,7 +1199,9 @@ export class ASourceLink extends ALink implements IALink { return this; } get() { - return super.get(); + return LIB.stripUndefinedAndNull({ + ... super.get(), + }); } } export class ATargetLink extends ALink implements IALink { @@ -1152,8 +1211,8 @@ export class ATargetLink extends ALink implements IALink { validate(itm: IALink) { // itemType checked in superclass if (!itm.hasClass) - return Msg.create(602, PigItemType.aTargetLink); - // ToDo: implement further validation logic + return Msg.create(612, PigItemType.aTargetLink); + // @ToDo: implement further validation logic // - Check class reference; must be an existing Property URI (requires access to the cache to resolve the class -> do it through overall consistency check): return super.validate(itm); } @@ -1165,7 +1224,9 @@ export class ATargetLink extends ALink implements IALink { return this; } get() { - return super.get(); + return LIB.stripUndefinedAndNull({ + ... super.get(), + }); } } @@ -1179,9 +1240,12 @@ export class AnEntity extends AnElement implements IAnElement { // Schema validation (AJV) - provides structural checks and reuses the idString definition // ... only at the lowest subclass level: try { + // LOG.info('AnEntity.validate: validating object keys:', Object.keys(itm)); + // LOG.info('AnEntity.validate: full object:', JSON.stringify(itm, null, 2)); const ok = SCH.validateAnEntitySchema(itm); if (!ok) { const msg = SCH.getValidateAnEntityErrors(); + // LOG.info('AnEntity.validate: FAILED with errors:', msg); return Msg.create(681, 'anEntity', itm.id, msg); } } catch (err: any) { @@ -1191,13 +1255,13 @@ export class AnEntity extends AnElement implements IAnElement { // Runtime guards: // id and itemType checked in superclass if (!itm.hasClass) - return Msg.create(602, PigItemType.anEntity); + return Msg.create(612, PigItemType.anEntity); return super.validate(itm); } set(itm: IAnEntity) { const _itm = LIB.stripUndefinedAndNull(itm) as IAnEntity; - + // id is normalized in the caller (setXML or setJSONLD) on multiple levels _itm.modified = normalizeDateTime(_itm.modified) || new Date().toISOString(); this.lastStatus = this.validate(_itm); @@ -1213,17 +1277,6 @@ export class AnEntity extends AnElement implements IAnElement { ... super.get(), }); } - getJSONLD() { - const jld = super.getJSONLD(); - // LOG.debug('AnEntity.getJSONLD: ', out); - return jld; - } - getHTML(options?: IOptionsHTML): stringHTML { - if (toHTML?.anEntity) { - return toHTML.anEntity(this, options); - } - return '
    HTML export for anEntity not implemented
    '; - } } export interface IARelationship extends IAnElement { @@ -1250,15 +1303,15 @@ export class ARelationship extends AnElement implements IARelationship { // Runtime guards: // id and itemType checked in superclass if (!itm.hasClass) - return Msg.create(602, PigItemType.aRelationship); - // ToDo: implement further validation logic + return Msg.create(612, PigItemType.aRelationship); + // @ToDo: implement further validation logic // - Check class reference; must be an existing Relationship URI (requires access to the cache to resolve the class -> do it through overall consistency check): return super.validate(itm); } set(itm: IARelationship) { const _itm = LIB.stripUndefinedAndNull(itm) as IARelationship; //LOG.debug('ARelationship.set():', _itm); - // id is normalized in the caller (setXML or setJSONLD) + // id is normalized in the caller (setXML or setJSONLD) on multiple levels _itm.modified = normalizeDateTime(_itm.modified) || new Date().toISOString(); this.lastStatus = this.validate(_itm); @@ -1279,18 +1332,6 @@ export class ARelationship extends AnElement implements IARelationship { _itm.hasSourceLink = this.collectConfigurablesFromJSONLD(_itm, PigItemType.aSourceLink) as IALink[]; return _itm; } - getJSONLD() { - let jld = super.getJSONLD(); - jld = this.addConfigurablesToJSONLD(jld, 'hasSourceLink'); - // LOG.debug('AnEntity.getJSONLD: ', out); - return jld; - } - getHTML(options?: IOptionsHTML): stringHTML { - if (toHTML?.aRelationship) { - return toHTML.aRelationship(this, options); - } - return '
    HTML export for aRelationship not implemented
    '; - } } // For packages: export interface IAPackage extends IAnElement { @@ -1328,8 +1369,8 @@ export class APackage extends AnElement implements IAPackage { rsp = checkConstraintsForPackage(pkg, options); // if (pkg.id == 'd:test-invalid-prop') // LOG.debug(`APackage.validate: validating package `, pkg, rsp); - if (!rsp.ok) { + // LOG.debug(`APackage.validate: package validation failed`, rsp); return rsp; } @@ -1337,9 +1378,11 @@ export class APackage extends AnElement implements IAPackage { } set(pkg: IAPackage, options?:any): this { - const _pkg = { ...pkg }; - // ToDo: strip? + // const _pkg = { ...pkg }; + const _pkg = LIB.stripUndefinedAndNull(pkg) as IAPackage; + // id is normalized in the caller (setXML or setJSONLD) on multiple layers _pkg.modified = normalizeDateTime(_pkg.modified) || new Date().toISOString(); + // Instantiate each graph item: const instantiatedGraph: TPigItem[] = []; const errors: string[] = []; @@ -1351,28 +1394,30 @@ export class APackage extends AnElement implements IAPackage { instantiatedGraph.push(result.response as TPigItem); if (!result.ok) { - const errorMsg = result.statusText || 'Unknown instantiation error'; - errors.push(errorMsg); + errors.push(`${result.statusText} (${result.status})` || 'Unknown instantiation error'); // LOG.debug(`APackage.set: failed to instantiate item: `, JSON.stringify(item, null, 2)); - LOG.warn(`APackage ${pkg.id}: ${errorMsg}`); } } + // LOG.debug('APackage.set: ',JSON.stringify(_pkg, null, 2)); + + const pkgValidation = this.validate(_pkg, options); + if (!pkgValidation.ok) + errors.push(`${pkgValidation.statusText} (${pkgValidation.status})` || 'Unknown constraint error'); + + // Set the package properties and the instantiated graph, even if some errors have occurred: + super.set(_pkg); + this.context = _pkg.context; + this.graph = instantiatedGraph; - // ToDo: Rework the logic: Instantiate the package even with faulty items if (errors.length > 0) { - LOG.warn(`APackage ${pkg.id}: ${errors.length} item(s) failed instantiation`); - this.lastStatus = Msg.create(611, 'Package Import', instantiatedGraph.length, _pkg.graph.length); - this.id = _pkg.id; - } else { - // id is normalized in the caller (setXML or setJSONLD) - this.lastStatus = this.validate(_pkg, options); - if (this.lastStatus.ok) { - super.set(_pkg); - this.context = _pkg.context; - this.graph = instantiatedGraph; - } + this.lastStatus = Msg.create(603, 'Package Import', instantiatedGraph.length, _pkg.graph.length, errors.join(', ')); + LOG.warn(this.lastStatus.statusText); + } + else { + this.lastStatus = pkgValidation; } + // LOG.debug(`APackage.set: package ${_pkg.id} set with ${instantiatedGraph.length} of ${_pkg.graph.length} items, status:`, this.lastStatus); return this; } @@ -1389,7 +1434,9 @@ export class APackage extends AnElement implements IAPackage { } setJSONLD(doc: any, options?:any) { - // ToDo: Perhaps we must normalize the ids like in XML import to assure they have a namespace or are an URI + // @ToDo: Perhaps we must normalize the ids like in XML import to assure they have a namespace or are an URI + // LOG.debug(`APackage.setJSONLD: ${JSON.stringify(doc, null, 2)}`); + // Extract @context const ctx = this.extractContextLD(doc); @@ -1409,51 +1456,18 @@ export class APackage extends AnElement implements IAPackage { const graphJson = graph.map(itm => this.ldToJson(itm)); // Call set to validate and set all items including package + // LOG.debug('aPackage.setJSONLD',doc,graphJson); this.set({ ...meta, - itemType: PigItemType.aPackage, context: ctx, graph: graphJson - } as IAPackage, options); + } as unknown as IAPackage, options); // LOG.debug(`APackage.setJSONLD: package ${JSON.stringify(this, null, 2)} set with status`, this.lastStatus); // return the instantiated graph with instantiated graph items: return this; } -/* getJSONLD(): string { - if (!this.lastStatus.ok) - return JSON.stringify({ error: this.lastStatus.statusText }); - - // Start with parent's JSON-LD representation - const jld = super.getJSONLD() as JsonObject; - - // Add @context - if (this.context) { - jld['@context'] = buildContextForJSONLD(this.context); - } - - // Add @graph with full items (using their getJSONLD methods) - jld['@graph'] = this.items.map(item => { - if ('getJSONLD' in item && typeof item.getJSONLD === 'function') { - const itemJLD = item.getJSONLD(); - // If getJSONLD returns a string, parse it back to object - return typeof itemJLD === 'string' ? JSON.parse(itemJLD) : itemJLD; - } - return { '@id': (item as any).id }; - }); - - // Add metadata - if (this.modified) { - jld['dcterms:modified'] = this.modified; - } - if (this.creator) { - jld['dcterms:creator'] = this.creator; - } - - // Return stringified JSON-LD - return JSON.stringify(jld, null, 4); - } */ setXML(xmlString: stringXML, options?:any) { // 1. Parse XML string to JSON // The context is skipped here, as it is extracted separately below. @@ -1473,7 +1487,7 @@ export class APackage extends AnElement implements IAPackage { const ctx = this.extractContextXML(xmlString, doc.id as string); // 3. Extract package metadata - // ... can be obtained directly from parsed JSON. + // ... can be obtained directly from doc (result from parsing) // 4. Extract and process graph items const graph: any[] = Array.isArray(doc.graph) ? doc.graph : []; @@ -1482,12 +1496,11 @@ export class APackage extends AnElement implements IAPackage { LOG.warn(`APackage ${doc.id}: @graph is empty`); } - // LOG.debug(`APackage.setXML: successfully instantiated ${instantiatedGraph.length} of ${graph.length} items`); - - // 6. Build and validate package + // 5. Build and validate package this.set({ - itemType: PigItemType.aPackage, id: doc.id, + hasClass: doc.hasClass, + itemType: PigItemType.aPackage, // ToDo: obtain from doc - want to check whether the input is correct title: doc.title, description: doc.description, context: ctx, @@ -1523,7 +1536,7 @@ export class APackage extends AnElement implements IAPackage { // Check package status const pkgStatus = this.status(); if (!pkgStatus) { - // ToDo: throw instead? + // @ToDo: throw instead? LOG.error( `APackage '${this.id || 'unknown'}' is corrupt` ); @@ -1533,7 +1546,6 @@ export class APackage extends AnElement implements IAPackage { LOG.warn( `APackage '${this.id || 'unknown'}' caused an error: ${pkgStatus?.statusText || 'unknown error'}` ); - return [(this as TPigItem)]; } else if (!Array.isArray(this.graph)) { LOG.warn( @@ -1541,40 +1553,40 @@ export class APackage extends AnElement implements IAPackage { ); return [(this as TPigItem)]; } - else { - // Package is valid, add it as first element - result.push(this as TPigItem); - } + // Package may be valid or invalid but has a graph array, so we proceed to check the items: + + // Add package as first element + result.push(this as TPigItem); // Filter and validate graph items - let validCount = 0; - let invalidCount = 0; + // let validCount = 0; + // let invalidCount = 0; for (const item of this.graph) { // LOG.debug(`LIB.allItems: processing graph item `, item); if (!item || typeof item !== 'object') { LOG.error(`APackage ${ this.id || 'unknown' }: encountered invalid graph item (not an object)`); - invalidCount++; + // invalidCount++; continue; } // Check if item has status() method if (typeof (item as any).status !== 'function') { LOG.error(`APackage ${this.id || 'unknown' }: graph item '${(item as any).id || 'unknown'}' has no status() method`); - invalidCount++; + // invalidCount++; continue; } // Check item status const itemStatus = (item as any).status(); if (itemStatus.ok) { - validCount++; + // validCount++; } else { LOG.warn( `APackage ${this.id || 'unknown' }: graph item '${(item as any).id || 'unknown'}' (${(item as any).itemType || 'unknown type'}) has invalid status: ${itemStatus?.statusText || 'unknown error'}` ); - invalidCount++; + // invalidCount++; if (validItemsOnly) continue; } @@ -1592,12 +1604,6 @@ export class APackage extends AnElement implements IAPackage { return result; } - getHTML(options?: IOptionsHTML): stringHTML[] { - if (toHTML?.aPackage) { - return toHTML.aPackage(this, options); - } - return ['
    HTML export for aPackage not implemented
    ']; - } /** * Transform an item in JSON-LD item to plain JSON format @@ -1606,7 +1612,7 @@ export class APackage extends AnElement implements IAPackage { * @param itemLD - JSON-LD representation of item * @returns Plain JSON object ready for instantiation * - * ToDo: Rework the types JsonObject --> JsonObject + * @ToDo: Rework the types JsonObject --> JsonObject */ ldToJson(itemLD: any): any { let json = { ...itemLD }; @@ -1697,17 +1703,19 @@ export class APackage extends AnElement implements IAPackage { * Compatible with JSON-LD @context format * * @param xmlString - XML string containing namespace declarations + * @param docId - Document ID for logging purposes + * * @returns Context as INamespace[], string, Record, or undefined * * @example * Input XML: - * * * Output: * [ - * { tag: "pig:", uri: "https://pig.gfse.org/" }, + * { tag: "cas:", uri: "https://pig.gfse.org/" }, * { tag: "dcterms:", uri: "http://purl.org/dc/terms/" }, * { tag: "@vocab", uri: "http://default.org/" } * ] @@ -1755,34 +1763,42 @@ export class APackage extends AnElement implements IAPackage { */ private extractMetadataLD(doc: any): { id: TPigId; + hasClass: string; + itemType?: PigItemTypeValue; + revision?: string; + priorRevision?: string; modified?: TISODateString; creator?: string; title?: ILanguageText[]; description?: ILanguageText[]; } { + // LOG.debug('APackage.extractMetadataLD', JSON.stringify(doc, null, 2)); const metadata = { id: PigItem.normalizeId(doc['@id'] || doc.id, PigItemType.aPackage), + hasClass: doc['@type'], + itemType: extractId(doc[`${DEF.pfxNsMeta}itemType`]) as PigItemTypeValue, revision: doc.revision, priorRevision: doc.priorRevision, - modified: normalizeDateTime(doc['dcterms:modified'] || doc.modified) || new Date().toISOString(), // TISODateString - creator: doc['dcterms:creator'] || doc.creator, // string + modified: normalizeDateTime(doc[`${DEF.pfxNsDcmi}modified`] || doc.modified) || new Date().toISOString(), // TISODateString + creator: doc[`${DEF.pfxNsDcmi}creator`] || doc.creator, // string title: undefined as ILanguageText[] | undefined, // to be extracted description: undefined as ILanguageText[] | undefined // to be extracted }; + // LOG.debug(`APackage.extractMetadataLD: package ${metadata.id}:`, metadata); // Extract dcterms:title (first language value) - const titleArray = doc['dcterms:title'] || doc.title; + const titleArray = doc[`${DEF.pfxNsDcmi}title`] || doc.title; if (Array.isArray(titleArray) && titleArray.length > 0) { metadata.title = [{ value: titleArray[0]['@value'] || titleArray[0].value || titleArray[0], - lang: titleArray[0]['@language'] || titleArray[0].language || 'en' + lang: titleArray[0]['@language'] || titleArray[0].language }]; } else if (typeof titleArray === 'string') { - metadata.title = [{ value: titleArray, lang: 'en' }]; + metadata.title = [{ value: titleArray }]; } // Extract dcterms:description (first language value) - const descArray = doc['dcterms:description'] || doc.description; + const descArray = doc[`${DEF.pfxNsDcmi}description`] || doc.description; if (Array.isArray(descArray) && descArray.length > 0) { metadata.description = [{ value: descArray[0]['@value'] || descArray[0].value || descArray[0], @@ -1798,7 +1814,7 @@ export class APackage extends AnElement implements IAPackage { } /** - * Instantiate a single PIG item from XML (already converted to JSON) + * Instantiate a single PIG item (already converted to JSON) * @param item - JSON object from xmlToJson conversion * @returns IRsp with instantiated TPigItem in response, or error status */ @@ -1865,8 +1881,11 @@ function extractId(obj: unknown): string | undefined { // if (typeof obj === 'string') return obj; if (typeof obj === 'object') { const o = obj as Record; - if (typeof o.id === 'string' && o.id.trim().length>0) - return o.id; + const id = Object.prototype.hasOwnProperty.call(o, '@id') ? o['@id'] : o['id']; + // LOG.debug('extractId', obj, id); + if (typeof(id) === 'string' && id.trim().length > 0) { + return id; + } } return undefined; } @@ -1887,8 +1906,8 @@ function extractId(obj: unknown): string | undefined { * @param input value to check * @param fieldName name used in error messages * @returns IRsp (rspOK on success, error IRsp on failure) - * / -export function validateIdStringArray( + */ +/* export function validateIdStringArray( input: unknown, fieldName = 'ids', options?: { canBeUndefined?: boolean, minCount?: number } @@ -1943,8 +1962,8 @@ export function validateIdStringArray( * @param input value to check * @param fieldName name used in error messages * @returns IRsp (rspOK on success, error IRsp on failure) - * / -function validateIdObjectArray(input: unknown, fieldName = 'ids'): IRsp { + */ +/* function validateIdObjectArray(input: unknown, fieldName = 'ids'): IRsp { if (!Array.isArray(input)) { return Msg.create(630, fieldName); } @@ -1971,74 +1990,6 @@ function validateIdObjectArray(input: unknown, fieldName = 'ids'): IRsp { return rspOK; } */ -/** - * Convert valid id-strings to id-objects. - * - Accepts any JsonValue (string/number/boolean/null/object/array). - * - Recursively processes arrays and objects (non-flat). - * - Skips converting the actual id property (default '@id'). - * - options.idKey: output id key (default '@id') - * - options.mutate: if true modify in-place, otherwise return a new structure - */ -function makeIdObjects( - node: JsonValue, - options?: { idKey?: string; mutate?: boolean } -): JsonValue { - const idKey = options?.idKey ?? '@id'; - const mutate = !!options?.mutate; - - // primitives - if (node === null || node === undefined) return node; - if (typeof node === 'string') { - return PigItem.isValidIdString(node) ? ({ [idKey]: node } as JsonObject) : node; - } - if (typeof node === 'number' || typeof node === 'boolean') return node; - - // array: map elements - if (Array.isArray(node)) { - if (mutate) { - for (let i = 0; i < node.length; i++) { - node[i] = makeIdObjects(node[i], options); - } - return node; - } - const outArr: JsonArray = []; - for (let i = 0; i < node.length; i++) { - outArr[i] = makeIdObjects(node[i], options); - } - return outArr; - } - - // object: handle the idKey specially (do not convert its string value) - const obj = node as JsonObject; - if (mutate) { - for (const k of Object.keys(obj)) { - const v = obj[k]; - if (k === idKey) { - // keep the actual id property unchanged - obj[k] = v; - } else if (typeof v === 'string' && PigItem.isValidIdString(v)) { - obj[k] = { [idKey]: v } as unknown as JsonValue; - } else { - obj[k] = makeIdObjects(v, options); - } - } - return obj; - } - - const out: JsonObject = {}; - for (const k of Object.keys(obj)) { - const v = obj[k]; - if (k === idKey) { - // preserve '@id' raw value - out[k] = v; - } else if (typeof v === 'string' && PigItem.isValidIdString(v)) { - out[k] = { [idKey]: v } as unknown as JsonValue; - } else { - out[k] = makeIdObjects(v, options); - } - } - return out; -} /** * Replace id-objects (e.g. { id: "xyz" } or { "@id": "xyz" }) by the id string. * - options.idKeys: array of keys to treat as id keys (default ['id','@id']) @@ -2086,14 +2037,6 @@ function replaceIdObjects( return walk(root); } -/** - * Normalize ID by adding namespace prefix if missing - * Logs transformations for debugging ReqIF imports - * - * @param id - Raw ID from import (may lack namespace) - * @param itemType - PIG item type to determine correct prefix - * @returns Normalized ID with namespace prefix - */ // Normalize dateTime strings by ensuring they are in ISO format (e.g. '2024-06-01T12:00:00Z') function normalizeDateTime(dateStr: any): string | undefined { @@ -2191,11 +2134,11 @@ function validateMultiLanguageText(arr: any, fieldName: string): IRsp { */ function xmlToJson(xml: stringXML): IRsp { try { - const parser = PIN.createDOMParser(); + const parser = PLI.createDOMParser(); // Try 1: Parse without wrapper const doc = parser.parseFromString(xml, 'text/xml'); - const parserError = PIN.getXmlParseError(doc); + const parserError = PLI.getXmlParseError(doc); if (!parserError && doc.documentElement) { // Success without wrapper @@ -2214,7 +2157,7 @@ function xmlToJson(xml: stringXML): IRsp { const wrapped = LIB.makeXMLDoc(xml); const wrappedDoc = parser.parseFromString(wrapped, 'text/xml'); - const wrappedError = PIN.getXmlParseError(wrappedDoc); + const wrappedError = PLI.getXmlParseError(wrappedDoc); if (wrappedError) { const errorMessage = wrappedError.textContent || 'Unknown XML parsing error'; LOG.error('xmlToJson: XML parsing failed even with wrapper:', errorMessage); @@ -2246,15 +2189,16 @@ function xmlToJson(xml: stringXML): IRsp { /** * Convert an XML DOM Element to a JSON object recursively * Handles: - * - PIG classes (Property, Link, Entity, Relationship) + * - PIG classes (Property, Link, Entity, Relationship, Enumeration) * - PIG instances (anEntity, aRelationship) - * - Configurable properties (pig:aProperty) - * - Configurable links (pig:aSourceLink, pig:aTargetLink) + * - Configurable properties (cas:aProperty) + * - Configurable links (cas:aSourceLink, cas:aTargetLink) * * @param xmlElement - XML DOM Element to convert * @returns JSON representation of the element */ function xmlElementToJson(xmlElement: ElementXML): JsonObject { + const result: JsonObject = {}; // 1. Extract itemType from element tag name (only for valid PIG types) @@ -2265,25 +2209,33 @@ function xmlElementToJson(xmlElement: ElementXML): JsonObject { result.itemType = tagName; } - // 2. Extract all attributes as properties + // 2. Extract all attributes (within tag) as properties for (const attr of Array.from(xmlElement.attributes)) { const attrName = attr.name; const attrValue = attr.value; + // ToDo: Reconsider the following structure. It may assume cases that don't exist. if (attrName.startsWith('xmlns')) { continue; - } else if (attrName === 'id') { - // normalize always, including enumerated values - result.id = PigItem.normalizeId(attrValue, tagName); + } else if (attrName.endsWith('id')) { + // Special handling for enumeratedValue IDs - they should use ontology namespace + const localTagName = tagName.includes(':') ? tagName.split(':')[1] : tagName; + if (localTagName === 'enumeratedValue') { + // enumeratedValue IDs are part of ontology definitions, not data instances + result.id = PigItem.normalizeId(attrValue, PigItemType.Enumeration); + } else { + // normalize always, including enumerated values + result.id = PigItem.normalizeId(attrValue, tagName); + } } else if (attrName.endsWith('type') || attrName.endsWith('hasClass')) { // normalize if we have a valid PIG type result.hasClass = isValidPigElement - ? PigItem.normalizeId(attrValue, tagName) + ? PigItem.normalizeId(attrValue) // references always point to a class : attrValue; } else if (attrName.endsWith('specializes')) { // normalize if we have a valid PIG type result.specializes = isValidPigElement - ? PigItem.normalizeId(attrValue, tagName) + ? PigItem.normalizeId(attrValue) // references always point to a class : attrValue; } else { result[attrName] = attrValue; @@ -2306,24 +2258,26 @@ function xmlElementToJson(xmlElement: ElementXML): JsonObject { const childTagName = childElement.tagName; // Special handling for configurable properties and links - if (childTagName === 'pig:aProperty') { - configurableProperties.push(processConfigurableProperty(childElement)); + if (childTagName === PigItemType.aProperty) { + configurableProperties.push(configurablePropertyToJson(childElement)); continue; } - if (childTagName === 'pig:aSourceLink') { - configurableSourceLinks.push(processConfigurableLink(childElement, PigItemType.aSourceLink)); + if (childTagName === PigItemType.aSourceLink) { + configurableSourceLinks.push(configurableLinkToJson(childElement, PigItemType.aSourceLink)); continue; } - if (childTagName === 'pig:aTargetLink') { - configurableTargetLinks.push(processConfigurableLink(childElement, PigItemType.aTargetLink)); + if (childTagName === PigItemType.aTargetLink) { + configurableTargetLinks.push(configurableLinkToJson(childElement, PigItemType.aTargetLink)); continue; } // Group regular child elements by tag name const elements = childElementsByTag.get(childTagName); if (elements) { + // push to respective group childElementsByTag, if it already exists elements.push(childElement); } else { + // otherwise, create new group with this child as first element childElementsByTag.set(childTagName, [childElement]); } @@ -2339,7 +2293,7 @@ function xmlElementToJson(xmlElement: ElementXML): JsonObject { for (const [tagName, elements] of childElementsByTag) { // Special handling for 'graph' - always array of heterogeneous items - if (tagName === 'graph' || tagName === 'pig:graph') { + if (tagName === 'graph' || tagName === `${DEF.pfxNsMeta}graph`) { result.graph = elements.flatMap(graphContainer => { // Get all direct children of container // ✅ Use childNodes instead of children for @xmldom compatibility @@ -2372,7 +2326,10 @@ function xmlElementToJson(xmlElement: ElementXML): JsonObject { const needsTextWrapper = requiresIText(propertyName); // Pass parent itemType for context-aware array detection - const mustBeArray = requiresArray(propertyName, result.itemType as PigItemTypeValue ); + const mustBeArray = requiresArray(propertyName /*, result.itemType as PigItemTypeValue */); + + // Check if this property contains IDs that need normalization + const needsIdNormalization = requiresIdNormalization(propertyName); if (elements.length === 1 && !mustBeArray) { // Single element (and not forced to be array) @@ -2410,7 +2367,8 @@ function xmlElementToJson(xmlElement: ElementXML): JsonObject { } else if (propertyName.endsWith('maxInclusive')) { result.maxInclusive = parseFloat(childText); } else { - result[propertyName] = childText; + // Apply ID normalization if needed + result[propertyName] = needsIdNormalization ? PigItem.normalizeId(childText) : childText; } } else { result[propertyName] = xmlElementToJson(elem); @@ -2433,7 +2391,8 @@ function xmlElementToJson(xmlElement: ElementXML): JsonObject { ); if (!hasChildElements && childText) { - return childText; + // Apply ID normalization if needed + return needsIdNormalization ? PigItem.normalizeId(childText) : childText; } else { return xmlElementToJson(elem); } @@ -2465,60 +2424,58 @@ function xmlElementToJson(xmlElement: ElementXML): JsonObject { * Check if a property must always be represented as an array * Even when only a single element is present in XML * - * Note: Some properties are context-dependent: - * - enumeratedTargetLink: array for Entity, string for Relationship - * - enumeratedSourceLink: always string (Relationship only) - * * Context detection is done via the parent element's itemType */ -function requiresArray(propertyName: string, parentItemType?: PigItemTypeValue): boolean { +function requiresArray(propertyName: string /*, parentItemType?: PigItemTypeValue */): boolean { // Remove namespace prefix for checking const localName = RE.termWithNamespace.test(propertyName) ? propertyName.split(':')[1] : propertyName; // Properties that ALWAYS require arrays - const alwaysArrayProps = new Set([ + return [ 'enumeratedValue', // Property.enumeratedValue: IEnumeratedValue[] 'enumeratedEndpoint', // Link.enumeratedEndpoint: TPigId[] 'enumeratedProperty', // Entity/Relationship.enumeratedProperty?: TPigId[] + 'enumeratedSourceLink', // Relationship.enumeratedSourceLink?: TPigId[]' + 'enumeratedTargetLink', // Entity/Relationship.enumeratedTargetLink?: TPigId[] 'composedProperty', // Property.composedProperty?: TPigId[] 'priorRevision' // AnElement.priorRevision?: TRevision[] - ]); - - if (alwaysArrayProps.has(localName)) { - return true; - } - - // Context-dependent: enumeratedTargetLink - if (localName === 'enumeratedTargetLink') { - // Entity: enumeratedTargetLink?: TPigId[] (array) - // Relationship: enumeratedTargetLink?: TPigId (string) - return parentItemType === PigItemType.Entity; - } - - // Context-dependent: enumeratedSourceLink - if (localName === 'enumeratedSourceLink') { - // Relationship: enumeratedSourceLink?: TPigId (string) - return false; // Never an array - } + ].includes(localName); +} +/** + * Check if a property contains IDs that should be normalized + * These properties reference other PIG items and need namespace prefixes + */ +function requiresIdNormalization(propertyName: string): boolean { + // Remove namespace prefix for checking + const localName = RE.termWithNamespace.test(propertyName) ? propertyName.split(':')[1] : propertyName; - return false; + // Properties that contain TPigId references to other items + return [ + 'enumeratedEndpoint', // Link.enumeratedEndpoint: TPigId[] + 'enumeratedProperty', // Entity/Relationship.enumeratedProperty?: TPigId[] + 'enumeratedSourceLink', // Relationship.enumeratedSourceLink?: TPigId[] + 'enumeratedTargetLink', // Entity/Relationship.enumeratedTargetLink?: TPigId[] + 'composedProperty', // Property.composedProperty?: TPigId[] + 'specializes', // Class.specializes?: TPigId + 'hasClass' // Instance hasClass references a class + ].includes(localName); } /** - * Process pig:aProperty element + * Process cas:aProperty element * Extracts: * - rdf:type → hasClass * - → value - * - itemType → pig:aProperty + * - itemType → cas:aProperty */ -function processConfigurableProperty(elem: ElementXML): JsonObject { +function configurablePropertyToJson(elem: ElementXML): JsonObject { const prop: JsonObject = { itemType: PigItemType.aProperty }; - // Extract rdf:type and pig:hasClass as hasClass - const rdfType = elem.getAttribute('rdf:type') || elem.getAttribute('type') || elem.getAttribute('pig:hasClass') || elem.getAttribute('hasClass'); + // Extract rdf:type and cas:hasClass as hasClass + const rdfType = elem.getAttribute('rdf:type') || elem.getAttribute('type') || elem.getAttribute(`${DEF.pfxNsMeta}hasClass`) || elem.getAttribute('hasClass'); if (rdfType) { - prop.hasClass = rdfType; + prop.hasClass = PigItem.normalizeId(rdfType); // references always point to a class } // Extract child elements @@ -2530,14 +2487,14 @@ function processConfigurableProperty(elem: ElementXML): JsonObject { if (childTagName === 'value') { prop.value = getXmlElementText(childElement); } else if (childTagName === 'idRef') { - prop.idRef = childElement.textContent?.trim() as JsonValue; + prop.idRef = PigItem.normalizeId(childElement.textContent?.trim() as string); } else if (childTagName.endsWith('type') || childTagName.endsWith('hasClass')) { - prop.hasClass = childElement.textContent?.trim() as JsonValue; + prop.hasClass = PigItem.normalizeId(childElement.textContent?.trim() as string); } else if (childTagName === 'composes') { if (!prop.composes) { prop.composes = []; } - (prop.composes as string[]).push(childElement.textContent?.trim() || ''); + (prop.composes as string[]).push(PigItem.normalizeId(childElement.textContent?.trim() as string)); } } } @@ -2546,21 +2503,23 @@ function processConfigurableProperty(elem: ElementXML): JsonObject { } /** - * Process pig:aSourceLink or pig:aTargetLink element + * Import cas:aSourceLink or cas:aTargetLink element * Extracts: * - rdf:type → hasClass + * - cas:hasClass → hasClass (accepted alternative to rdf:type) * - → idRef - * - itemType → pig:aSourceLink or pig:aTargetLink + * - itemType → cas:aSourceLink or cas:aTargetLink */ -function processConfigurableLink(elem: ElementXML, itemType: PigItemTypeValue): JsonObject { +function configurableLinkToJson(elem: ElementXML, itemType: PigItemTypeValue): JsonObject { const link: JsonObject = { itemType: itemType }; - // Extract rdf:type and pig:hasClass as hasClass - const rdfType = elem.getAttribute('rdf:type') || elem.getAttribute('type') || elem.getAttribute('pig:hasClass') || elem.getAttribute('hasClass'); + // Extract rdf:type and cas:hasClass as hasClass + const rdfType = elem.getAttribute('rdf:type') || elem.getAttribute('type') + || elem.getAttribute(`${DEF.pfxNsMeta}hasClass`) || elem.getAttribute('hasClass'); if (rdfType) { - link.hasClass = rdfType; + link.hasClass = PigItem.normalizeId(rdfType); // references always point to a class } // Extract child elements @@ -2570,7 +2529,26 @@ function processConfigurableLink(elem: ElementXML, itemType: PigItemTypeValue): const childTagName = childElement.tagName; if (childTagName === 'idRef') { - link.idRef = childElement.textContent?.trim() as JsonValue; + const idRefValue = childElement.textContent?.trim() as string; + + // Determine namespace based on link class definition + // If the link class's enumeratedEndpoint points to an Enumeration, idRef uses ontology namespace (o:) + // Otherwise, idRef points to an instance and uses data namespace (d:) + let targetItemType: PigItemTypeValue = PigItemType.anEntity; // default: data namespace + + if (link.hasClass) { + // Try to find the link class definition in the graph + const linkClassId = link.hasClass as string; + const linkClassElem = findLinkClassInGraph(elem, linkClassId); + if (linkClassElem && enumeratedEndpointPointsToEnumeration(linkClassElem)) { + // Link's enumeratedEndpoint points to an Enumeration, so idRef should use ontology namespace + targetItemType = PigItemType.Enumeration; + } + } + + link.idRef = PigItem.normalizeId(idRefValue, targetItemType); + } else if (childTagName.endsWith('hasClass')) { + link.hasClass = PigItem.normalizeId(childElement.textContent?.trim() as string); // references always point to a class } } } @@ -2578,6 +2556,129 @@ function processConfigurableLink(elem: ElementXML, itemType: PigItemTypeValue): return link; } +/** + * Find a Link class definition in the graph by traversing up the DOM tree + * @param linkElement - The aSourceLink or aTargetLink element + * @param linkClassId - The ID of the Link class to find (may have namespace prefix) + * @returns The Link element if found, null otherwise + */ +function findLinkClassInGraph(linkElement: ElementXML, linkClassId: string): ElementXML | null { + // Remove namespace prefix from search ID for comparison + const searchId = linkClassId.includes(':') ? linkClassId.split(':')[1] : linkClassId; + + // Traverse up to find the graph element + let current = linkElement.parentNode; + while (current && current.nodeType === NodeType.ELEMENT_NODE) { + const elem = current as ElementXML; + const tagName = elem.tagName; + const localName = tagName.includes(':') ? tagName.split(':')[1] : tagName; + + if (localName === 'graph') { + // Found the graph, now search for the Link class + for (const child of Array.from(elem.childNodes)) { + if (child.nodeType === NodeType.ELEMENT_NODE) { + const childElem = child as ElementXML; + const childTagName = childElem.tagName; + const childLocalName = childTagName.includes(':') ? childTagName.split(':')[1] : childTagName; + + // Check if this is a Link or Relationship (both can have enumeratedEndpoint) + if (childLocalName === 'Link' || childLocalName === 'Relationship') { + const id = childElem.getAttribute('id'); + if (id) { + // Compare without namespace prefix + const idWithoutPrefix = id.includes(':') ? id.split(':')[1] : id; + if (idWithoutPrefix === searchId) { + return childElem; + } + } + } + } + } + break; + } + current = current.parentNode; + } + return null; +} + +/** + * Check if a Link or Relationship element's first enumeratedEndpoint points to an Enumeration + * @param linkElement - The Link or Relationship element + * @returns true if the first enumeratedEndpoint points to an Enumeration + */ +function enumeratedEndpointPointsToEnumeration(linkElement: ElementXML): boolean { + // Find the first enumeratedEndpoint child + for (const child of Array.from(linkElement.childNodes)) { + if (child.nodeType === NodeType.ELEMENT_NODE) { + const childElem = child as ElementXML; + const tagName = childElem.tagName; + const localName = tagName.includes(':') ? tagName.split(':')[1] : tagName; + if (localName === 'enumeratedEndpoint') { + // Found enumeratedEndpoint, now check what it points to + // It should reference an Entity or Enumeration via text content + const endpointRefId = childElem.textContent?.trim(); + if (endpointRefId) { + // Look up the referenced element in the graph + const referencedElement = findEntityOrEnumerationInGraph(linkElement, endpointRefId); + if (referencedElement) { + const refTagName = referencedElement.tagName; + const refLocalName = refTagName.includes(':') ? refTagName.split(':')[1] : refTagName; + return refLocalName === 'Enumeration'; + } + } + // Only check the first enumeratedEndpoint + return false; + } + } + } + return false; +} + +/** + * Find an Entity or Enumeration definition in the graph by ID + * @param element - Any element within the graph + * @param targetId - The ID to search for (may have namespace prefix) + * @returns The Entity or Enumeration element if found, null otherwise + */ +function findEntityOrEnumerationInGraph(element: ElementXML, targetId: string): ElementXML | null { + // Remove namespace prefix from search ID for comparison + const searchId = targetId.includes(':') ? targetId.split(':')[1] : targetId; + + // Traverse up to find the graph element + let current = element.parentNode; + while (current && current.nodeType === NodeType.ELEMENT_NODE) { + const elem = current as ElementXML; + const tagName = elem.tagName; + const localName = tagName.includes(':') ? tagName.split(':')[1] : tagName; + + if (localName === 'graph') { + // Found the graph, now search for the Entity or Enumeration + for (const child of Array.from(elem.childNodes)) { + if (child.nodeType === NodeType.ELEMENT_NODE) { + const childElem = child as ElementXML; + const childTagName = childElem.tagName; + const childLocalName = childTagName.includes(':') ? childTagName.split(':')[1] : childTagName; + + // Check if this is an Entity or Enumeration + if (childLocalName === 'Entity' || childLocalName === 'Enumeration') { + const id = childElem.getAttribute('id'); + if (id) { + // Compare without namespace prefix + const idWithoutPrefix = id.includes(':') ? id.split(':')[1] : id; + if (idWithoutPrefix === searchId) { + return childElem; + } + } + } + } + } + break; + } + current = current.parentNode; + } + return null; +} + /** * Check if a property needs IText wrapper ({ value: "..." }) * Currently only 'icon' according to IElement interface @@ -2587,7 +2688,7 @@ function requiresIText(propertyName: string): boolean { // Fields that need IText wrapper: { value: string } const textWrapperFields = new Set([ - 'icon' // 'pig:Icon' after mvf + 'icon' ]); return textWrapperFields.has(localName); @@ -2691,7 +2792,7 @@ function getXmlElementText(xmlElement: ElementXML): string { // Check if element contains HTML elements (p, div, span, etc.) const hasHtmlContent = Array.from(xmlElement.childNodes).some(node => node.nodeType === NodeType.ELEMENT_NODE && - ['p', 'div', 'span', 'small', 'i', 'a', 'object'].includes((node as ElementXML).tagName.toLowerCase()) + ['div', 'span', 'small', 'i', 'b', 'p', 'a', 'object'].includes((node as ElementXML).tagName.toLowerCase()) ); if (hasHtmlContent) { @@ -2699,70 +2800,9 @@ function getXmlElementText(xmlElement: ElementXML): string { /* In the browser, we could use: return xmlElement.innerHTML?.trim() || ''; */ // return serializeXmlContent(xmlElement); - return PIN.innerHTML(xmlElement) || ''; + return PLI.innerHTML(xmlElement) || ''; } else { // Return plain text content return xmlElement.textContent?.trim() || ''; } } - -// Helper function to get localized text from multi-language array -export function getLocalText(texts?: ILanguageText[], lang?: tagIETF): string { - if (!texts || texts.length === 0) return ''; - - lang = lang ?? 'en-US'; - - // Try to find exact language match - const exact = texts.find(t => t.lang === lang); - if (exact) return exact.value; - - // Try to find language prefix match (e.g., 'en' for 'en-US') - const langPrefix = lang.split('-')[0]; - const prefixMatch = texts.find(t => t.lang?.startsWith(langPrefix)); - if (prefixMatch) return prefixMatch.value; - - // Fallback to first available text - return texts[0].value; -} - -/** - * Replace top-level string values that are valid id-strings with id-objects. - * - Non-recursive (flat): only replaces direct properties of the provided object. - * - Uses existing `PigItem.isValidIdString` to decide whether a string is an ID. - * - options.idKey: property name for the id-object (default '@id') - * - options.mutate: if true, modify the input object in-place; otherwise return a shallow copy - * -function makeIdObjects( - obj: JsonObject, - options?: { idKey?: string; mutate?: boolean } -): JsonObject { - const idKey = options?.idKey ?? '@id'; - const mutate = !!options?.mutate; - const target: JsonObject = mutate ? obj : { ...obj }; - - for (const k of Object.keys(obj)) { - const v = obj[k]; - // replace all id-strings except for the '@id' property itself: - if (k !== idKey && typeof v === 'string' && PigItem.isValidIdString(v)) { - // replace string by an id-object, using the configured idKey - target[k] = { [idKey]: v } as unknown as JsonValue; - } else if (!mutate) { - // ensure non-mutating mode copies non-id values - target[k] = v; - } - } - - return target; -} */ -/** - * Build a simple id-object. - * - useJsonLd=false => { id: 'xyz' } - * - useJsonLd=true => { '@id': 'xyz' } - * -function buildIdObject(id: string, useJsonLd = false): JsonObject { - return useJsonLd ? { ['@id']: id } : { id }; -} -makeIdObject(str: string): JsonObject { - return { id: str }; -} -*/ diff --git a/src/common/schema/pig/ts/pig-package-constraints.ts b/src/common/schema/pig/ts/pig-package-constraints.ts index 24441cf..3086368 100644 --- a/src/common/schema/pig/ts/pig-package-constraints.ts +++ b/src/common/schema/pig/ts/pig-package-constraints.ts @@ -1,11 +1,15 @@ /*! - * Package-level constraint validation for Product Information Graph (PIG) + * Package-level constraint validation for CASCaRA Graph (cas:) * Copyright 2025 GfSE (https://gfse.org) * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) - * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Link-Implementation/issues) + * We appreciate any correction, comment or contribution as Github issue (https://github.com/GfSE/CASCaDE-Reference-Implementation/issues) */ /** - * Package-level constraint validation for Product Information Graph (PIG) + * Package-level constraint validation for CASCaRA Graph (cas:) + * ------------------------------------------------------------ + * Authors: oskar.dungern@gfse.org + * Copyright 2026 GfSE (https://gfse.org) + * License and terms of use: Apache 2.0 (http://www.apache.org/licenses/LICENSE-2.0) * * This module validates cross-item constraints that cannot be checked at the individual item level: * - Uniqueness of primary IDs across all items in a package @@ -13,6 +17,8 @@ * - Validity of hasClass references in aLink instances (aSourceLink, aTargetLink) * - Property occurrence validation (minCount, maxCount) * - enumerated properties and links validation + * - enumeratedEndpoint consistency (Link classes) + * - enumeratedTargetLink and enumeratedSourceLink reference validation * * List of constraint checks: * Phase 1 (critical): @@ -26,18 +32,24 @@ * ✅ - occurrence (minCount, maxCount) with language-aware validation for xs:string * ✅ - value range * ✅ - reference to enumerated values (enumerations) + * ✅ - enumeratedEndpoint in Link classes (all or none point to Enumerations) + * ✅ - enumeratedTargetLink and enumeratedSourceLink → Link * Phase 2 (important): + * check aPackage.hasClass, class and specializes references and consistency with classes (similarly to anEntity) * namespace prefixes are defined in the context * subProperty is consistent with specialization hierarchy (following the restrictions of OWL2) * subClass is consistent with specialization hierarchy (following the restrictions of OWL2) - * enumerated values as defined comply with the restrictions of their own Property class * enumeratedProperty references - * enumeratedEndpoint references * Link endpoint compliance * Phase 3 (useful): * No cyclic specialization * No cyclic composition of properties * Relationship structure + * Referenced Enumerations have a datatype + * enumerations at the lowest specialization level must have datatype and enumerated values + * enumerated values as defined comply with the datatype of the enumeration class + * Entity and Relationship classes should not have configurable properties + * with the same name as a native property (e.g. cas:unit, dcterms:modified, ..) * Phase 4 (optional): * Orphaned items * - nodes without reference by an organizer AND @@ -52,13 +64,12 @@ * - New thinking --> 'Permissive Computing': Report all issues but return the package with a valid subgraph; * sometimes there may be 2 or more choices of valid subgraphs when constraints fail. * Partial data is better than no data. - * - * Authors: oskar.dungern@gfse.org */ +import { DEF, RE } from '../../../lib/definitions'; import { IRsp, rspOK, Msg } from '../../../lib/messages'; -import { LOG } from "../../../lib/helpers"; -import { IAPackage, PigItem, PigItemType, PigItemTypeValue, TPigAnElement, TPigId } from './pig-metaclasses'; +import { LIB, LOG } from "../../../lib/helpers"; +import { IAPackage, PigItem, PigItemType, PigItemTypeValue, TPigAnElement, TPigId, Enumeration, XsDataType } from './pig-metaclasses'; /** * Available constraint check types @@ -75,11 +86,14 @@ export enum ConstraintCheckType { LinkSpecializes = 'linkSpecializes', enumeratedProperties = 'enumeratedProperties', enumeratedLinks = 'enumeratedLinks', - ValueRanges = 'valueRanges' + enumeratedEndpoints = 'enumeratedEndpoints', + enumeratedLinkClasses = 'enumeratedLinkClasses', + ValueRanges = 'valueRanges', + enumeratedValues = 'enumeratedValues' } /** - * All available constraint checks + * All available constraint checks as a list */ const allConstraintChecks: ConstraintCheckType[] = [ ConstraintCheckType.UniqueIds, @@ -93,9 +107,43 @@ const allConstraintChecks: ConstraintCheckType[] = [ ConstraintCheckType.LinkSpecializes, ConstraintCheckType.enumeratedProperties, ConstraintCheckType.enumeratedLinks, - ConstraintCheckType.ValueRanges + ConstraintCheckType.enumeratedEndpoints, + ConstraintCheckType.enumeratedLinkClasses, + ConstraintCheckType.ValueRanges, + ConstraintCheckType.enumeratedValues +]; + +/** + * Ontologies that are available online; + * those don't need to be supplied by imported data. + * Note: This is a little more complicated than above, as DEF.pfxNsMeta is not known at compile time. + */ +export const KnownOntology = { + casMeta: DEF.pfxNsMeta, + casSemi: DEF.pfxNsSemi, + dcterms: DEF.pfxNsDcmi +} as const; + +export type KnownOntology = typeof KnownOntology[keyof typeof KnownOntology]; +/** + * All known ontologies as a list + */ +const allKnownOntologies: KnownOntology[] = [ + KnownOntology.casMeta, + KnownOntology.casSemi, + KnownOntology.dcterms ]; +/** + * Check if a reference ID belongs to a known ontology namespace + * @param refId - Reference ID to check (e.g., 'cas:Entity', 'dcterms:modified') + * @returns true if the reference starts with a known ontology prefix + */ +function isKnownOntologyReference(refId: TPigId | undefined): boolean { + if (!refId) return false; + return allKnownOntologies.some(prefix => refId.startsWith(prefix)); +} + /** * Check cross-item constraints for a package * @param pkg - Package to validate @@ -171,23 +219,45 @@ export function checkConstraintsForPackage( // 6a. Check enumerated properties in anEntity and aRelationship instances if (checksSet.has(ConstraintCheckType.enumeratedProperties)) { - const rsp = checkenumeratedProperties(pkg, classMap); + const rsp = checkEnumeratedProperties(pkg, classMap); if (!rsp.ok) return rsp; } // 6b. Check enumerated links in anEntity and aRelationship instances if (checksSet.has(ConstraintCheckType.enumeratedLinks)) { - const rsp = checkenumeratedLinks(pkg, classMap); + const rsp = checkEnumeratedLinks(pkg, classMap); + if (!rsp.ok) return rsp; + } + + // 6c. Check enumerated endpoints in Link classes + if (checksSet.has(ConstraintCheckType.enumeratedEndpoints)) { + const rsp = checkLinkEnumeratedEndpoints(pkg, itemTypeMap); + if (!rsp.ok) return rsp; + } + + // 6d. Check that enumeratedTargetLink and enumeratedSourceLink references point to Link classes + if (checksSet.has(ConstraintCheckType.enumeratedLinkClasses)) { + const rsp = checkEnumeratedLinkClassReferences(pkg, itemTypeMap); if (!rsp.ok) return rsp; } - // 7. Check value ranges for property values + // 7a. Check value ranges for property values if (checksSet.has(ConstraintCheckType.ValueRanges)) { const propertyMap = buildPropertyMap(pkg); const rsp = checkValueRanges(pkg, propertyMap); if (!rsp.ok) return rsp; } + // 7b. Check enumerated values + if (checksSet.has(ConstraintCheckType.enumeratedValues)) { + const enumerationMap = buildEnumerationMap(pkg); + const targetLinkMap = buildTargetLinkMap(pkg, enumerationMap); + // LOG.debug(`Built enumeration map: `, enumerationMap); + // LOG.debug(`Built target link map: `, targetLinkMap); + const rsp = checkEnumeratedValues(pkg, enumerationMap, targetLinkMap); + if (!rsp.ok) return rsp; + } + // LOG.debug(`Package ${pkg.id || 'unnamed'}: all constraints validated successfully`); return rspOK; } @@ -264,6 +334,72 @@ function buildPropertyMap(pkg: IAPackage): Map { return propertyMap; } +/** + * Build a map of enumeration Entity class definitions (Entity classes with datatype) + * Enumerations are now Entity classes (PigItemType.Entity) that have a datatype property + * @param pkg - Package to process + * @returns Map from enumeration class ID to class definition + */ +function buildEnumerationMap(pkg: IAPackage): Map { + // LOG.debug('buildEnumerationMap', pkg); + const enumerationMap = new Map(); + + for (const item of pkg.graph) { + const itemId = (item as any)['@id'] ?? (item as any).id; + const itemType = (item as any).itemType; + + // Store enumerated values per enumeration class definition; + // Enumerations at higher generalization levels without enumerated values will be omitted from the map + if (itemType === PigItemType.Enumeration) { + // LOG.debug(`buildEnumerationMap: Found enumeration: `,item); + if (LIB.isArrayWithContent((item as Enumeration).enumeratedValue)) { + // Simplify the enumerated values so that only the ids are listed: + enumerationMap.set(itemId, (item as Enumeration).enumeratedValue.map(el => el.id)); + } + } + } + + return enumerationMap; +} + +/** + * Build a map of Link class definitions to their enumeration endpoints + * Maps Link class ID to Enumeration class ID if the Link's enumeratedEndpoint contains an enumeration + * @param pkg - Package to process + * @param enumerationMap - Map of enumeration class definitions + * @returns Map from Link class ID to Enumeration class ID + */ +function buildTargetLinkMap(pkg: IAPackage, enumerationMap: Map): Map { + const targetLinkMap = new Map(); + + for (const item of pkg.graph) { + const itemId = (item as any)['@id'] ?? (item as any).id; + const itemType = (item as any).itemType; + // LOG.debug(`buildTargetLinkMap: processing item ${itemId} of type ${itemType}`); + + // Process Link class definitions + if (itemType === PigItemType.Link) { + const link = item as any; + const enumeratedEndpoints = link.enumeratedEndpoint; + // LOG.debug(`buildTargetLinkMap: Link ${itemId} has enumeratedEndpoint = ${JSON.stringify(enumeratedEndpoints)}`); + + if (Array.isArray(enumeratedEndpoints)) { + // Check if any endpoint is an enumeration + for (const endpointId of enumeratedEndpoints) { + // LOG.debug(`buildTargetLinkMap: Link ${itemId} endpoint ${endpointId}`, enumerationMap.has(endpointId)); + if (enumerationMap.has(endpointId)) { + // This Link class points to an enumeration + targetLinkMap.set(itemId, endpointId); + break; // One enumeration per link is enough + } + } + } + } + } + + return targetLinkMap; +} + /** * Build a map of class definitions with their enumeratedProperty and enumeratedTargetLink arrays * @param pkg - Package to process @@ -292,7 +428,7 @@ function buildClassMap(pkg: IAPackage): Map { * @param visited - Set to track visited classes (prevents infinite loops) * @returns Array of enumerated property IDs (empty array if enumeratedProperty is undefined) */ -function resolveenumeratedProperties( +function resolveEnumeratedProperties( classId: TPigId, classMap: Map, visited: Set = new Set() @@ -321,7 +457,7 @@ function resolveenumeratedProperties( // Resolve parent class if specializes is present if (classDef.specializes) { - const parentenumerated = resolveenumeratedProperties(classDef.specializes, classMap, visited); + const parentenumerated = resolveEnumeratedProperties(classDef.specializes, classMap, visited); // If parent allows all properties, keep current restrictions if (parentenumerated.includes('*')) { @@ -342,7 +478,7 @@ function resolveenumeratedProperties( * @param visited - Set to track visited classes (prevents infinite loops) * @returns Array of enumerated link IDs (empty array if enumeratedTargetLink is undefined) */ -function resolveenumeratedTargetLinks( +function resolveEnumeratedTargetLinks( classId: TPigId, classMap: Map, visited: Set = new Set() @@ -360,7 +496,7 @@ function resolveenumeratedTargetLinks( // Get direct enumerated target links (undefined means all links allowed) const directenumerated = classDef.enumeratedTargetLink; - // LOG.debug(`resolveenumeratedTargetLinks: class ${classId} has direct enumeratedTargetLink = ${JSON.stringify(directenumerated)}`); + // LOG.debug(`resolveEnumeratedTargetLinks: class ${classId} has direct enumeratedTargetLink = ${JSON.stringify(directenumerated)}`); // If enumeratedTargetLink is undefined, all links are allowed if (directenumerated === undefined) { @@ -375,7 +511,7 @@ function resolveenumeratedTargetLinks( // Resolve parent class if specializes is present if (classDef.specializes) { - const parentenumerated = resolveenumeratedTargetLinks(classDef.specializes, classMap, visited); + const parentenumerated = resolveEnumeratedTargetLinks(classDef.specializes, classMap, visited); if (parentenumerated.includes('*')) { // Parent allows all links, keep current restrictions @@ -391,7 +527,7 @@ function resolveenumeratedTargetLinks( /** * Resolve enumerated source links for Relationship classes */ -function resolveenumeratedSourceLinks( +function resolveEnumeratedSourceLinks( classId: TPigId, classMap: Map, visited: Set = new Set() @@ -410,14 +546,14 @@ function resolveenumeratedSourceLinks( if (directenumerated === undefined) { return ['*']; } - // LOG.debug(`resolveenumeratedSourceLinks: class ${classId} has direct enumeratedSourceLink = ${JSON.stringify(directenumerated)}`); + // LOG.debug(`resolveEnumeratedSourceLinks: class ${classId} has direct enumeratedSourceLink = ${JSON.stringify(directenumerated)}`); // Initialize with direct enumerated links // .. exists only for aRelationship and is a single value, normalize to array: let allenumerated: TPigId[] = Array.isArray(directenumerated) ? [...directenumerated] : [directenumerated]; if (classDef.specializes) { - const parentenumerated = resolveenumeratedSourceLinks(classDef.specializes, classMap, visited); + const parentenumerated = resolveEnumeratedSourceLinks(classDef.specializes, classMap, visited); if (parentenumerated.includes('*')) { // Keep current restrictions } else { @@ -434,7 +570,7 @@ function resolveenumeratedSourceLinks( * @param classMap - Map of class definitions * @returns IRsp (rspOK on success, error on invalid property) */ -function checkenumeratedProperties(pkg: IAPackage, classMap: Map): IRsp { +function checkEnumeratedProperties(pkg: IAPackage, classMap: Map): IRsp { for (let i = 0; i < pkg.graph.length; i++) { const item = pkg.graph[i]; const itemType = (item as any).itemType; @@ -450,7 +586,7 @@ function checkenumeratedProperties(pkg: IAPackage, classMap: Map): } // Resolve enumerated properties for this class - const enumeratedProperties = resolveenumeratedProperties(classId, classMap); + const enumeratedProperties = resolveEnumeratedProperties(classId, classMap); // If no properties are defined, check if class allows properties if (!instance.hasProperty || !Array.isArray(instance.hasProperty)) { @@ -488,7 +624,7 @@ function checkenumeratedProperties(pkg: IAPackage, classMap: Map): * @param classMap - Map of class definitions * @returns IRsp (rspOK on success, error on invalid link) */ -function checkenumeratedLinks(pkg: IAPackage, classMap: Map): IRsp { +function checkEnumeratedLinks(pkg: IAPackage, classMap: Map): IRsp { for (let i = 0; i < pkg.graph.length; i++) { const item = pkg.graph[i]; const itemType = (item as any).itemType; @@ -502,10 +638,10 @@ function checkenumeratedLinks(pkg: IAPackage, classMap: Map): IRsp continue; } - const enumeratedLinks = resolveenumeratedTargetLinks(classId, classMap); + const enumeratedLinks = resolveEnumeratedTargetLinks(classId, classMap); // LOG.debug(`Checking enumerated links for ${itemType} ${itemId}: enumeratedTargetLinks = ${JSON.stringify(enumeratedTargetLinks)}`); - if ((item as TPigAnElement).hasTargetLink && Array.isArray((item as TPigAnElement).hasTargetLink)) { + if (Array.isArray((item as TPigAnElement).hasTargetLink)) { for (let j = 0; j < (item as TPigAnElement).hasTargetLink.length; j++) { const link = (item as TPigAnElement).hasTargetLink[j]; const linkClassId = link.hasClass as string; @@ -514,7 +650,7 @@ function checkenumeratedLinks(pkg: IAPackage, classMap: Map): IRsp continue; } */ - if (enumeratedLinks.includes('*')) // set by resolveenumeratedLinks() for "all links allowed" + if (enumeratedLinks.includes('*')) // set by resolveEnumeratedLinks() for "all links allowed" continue; if (!enumeratedLinks.includes(linkClassId)) { @@ -533,13 +669,13 @@ function checkenumeratedLinks(pkg: IAPackage, classMap: Map): IRsp continue; } - const enumeratedSourceLinks = resolveenumeratedSourceLinks(classId, classMap); + const enumeratedSourceLinks = resolveEnumeratedSourceLinks(classId, classMap); // LOG.debug(`Checking enumerated links for aRelationship`,JSON.stringify(rel,null,2)); // LOG.debug(`Checking enumerated links for aRelationship ${itemId}: enumeratedSourceLinks = ${JSON.stringify(enumeratedSourceLinks)}}`); // Check source links - if (rel.hasSourceLink && Array.isArray(rel.hasSourceLink)) { + if (Array.isArray(rel.hasSourceLink)) { for (let j = 0; j < rel.hasSourceLink.length; j++) { const link = rel.hasSourceLink[j]; const linkClassId = link.hasClass; @@ -548,7 +684,7 @@ function checkenumeratedLinks(pkg: IAPackage, classMap: Map): IRsp continue; } */ - if (enumeratedSourceLinks.includes('*')) // set by resolveenumeratedLinks() for "all links allowed" + if (enumeratedSourceLinks.includes('*')) // set by resolveEnumeratedLinks() for "all links allowed" continue; if (!enumeratedSourceLinks.includes(linkClassId)) { @@ -562,6 +698,136 @@ function checkenumeratedLinks(pkg: IAPackage, classMap: Map): IRsp return rspOK; } +/** + * Check that enumeratedEndpoints of Link classes point exclusively to Enumerations or none of them points to an Enumeration + * @param pkg - Package to validate + * @param itemTypeMap - Map from ID to itemType for reference lookup + * @returns IRsp (rspOK on success, error on mixed endpoint types) + */ +function checkLinkEnumeratedEndpoints( + pkg: IAPackage, + itemTypeMap: Map +): IRsp { + for (let i = 0; i < pkg.graph.length; i++) { + const item = pkg.graph[i]; + const itemType = (item as any).itemType; + const itemId = (item as any)['@id'] ?? (item as any).id; + + // Check only Link class definitions + if (itemType !== PigItemType.Link) { + continue; + } + + const link = item as any; + const enumeratedEndpoints = link.enumeratedEndpoint; + + // Skip if no enumeratedEndpoint is defined + if (!Array.isArray(enumeratedEndpoints) || enumeratedEndpoints.length === 0) { + continue; + } + + // Count how many endpoints point to Enumerations + let enumerationCount = 0; + let nonEnumerationCount = 0; + + for (const endpointId of enumeratedEndpoints) { + /* // Skip validation for known ontology references + if (isKnownOntologyReference(endpointId)) { + nonEnumerationCount++; + continue; + } */ + + const endpointType = itemTypeMap.get(endpointId); + + // If endpoint not found, skip (this will be caught by other checks) + if (!endpointType) { + continue; + } + + if (endpointType === PigItemType.Enumeration) { + enumerationCount++; + } else { + nonEnumerationCount++; + } + } + + // Check: either all endpoints point to Enumerations or none of them does + if (enumerationCount > 0 && nonEnumerationCount > 0) { + return Msg.create(684, itemId, enumerationCount, nonEnumerationCount); + } + } + + return rspOK; +} + +/** + * Check that enumeratedTargetLink and enumeratedSourceLink in Entity and Relationship classes point to Link items + * @param pkg - Package to validate + * @param itemTypeMap - Map from ID to itemType for reference lookup + * @returns IRsp (rspOK on success, error on invalid reference) + */ +function checkEnumeratedLinkClassReferences( + pkg: IAPackage, + itemTypeMap: Map +): IRsp { + for (let i = 0; i < pkg.graph.length; i++) { + const item = pkg.graph[i]; + const itemType = (item as any).itemType; + const itemId = (item as any)['@id'] ?? (item as any).id; + + // Check Entity and Relationship class definitions + if (itemType !== PigItemType.Entity && itemType !== PigItemType.Relationship) { + continue; + } + + const classDef = item as any; + + // Check enumeratedTargetLink + if (Array.isArray(classDef.enumeratedTargetLink)) { + for (let j = 0; j < classDef.enumeratedTargetLink.length; j++) { + const linkId = classDef.enumeratedTargetLink[j]; + + /* // Skip validation for known ontology references + if (isKnownOntologyReference(linkId)) { + continue; + } */ + + const targetType = itemTypeMap.get(linkId); + if (!targetType) { + return Msg.create(685, itemId, itemType, 'enumeratedTargetLink', j, linkId, 'not found in package'); + } + + if (targetType !== PigItemType.Link) { + return Msg.create(685, itemId, itemType, 'enumeratedTargetLink', j, linkId, `expected ${PigItemType.Link}, found ${targetType}`); + } + } + } + + // Check enumeratedSourceLink (only for Relationship) + if (Array.isArray(classDef.enumeratedSourceLink)) { + for (let j = 0; j < classDef.enumeratedSourceLink.length; j++) { + const linkId = classDef.enumeratedSourceLink[j]; + + /* // Skip validation for known ontology references + if (isKnownOntologyReference(linkId)) { + continue; + } */ + + const targetType = itemTypeMap.get(linkId); + if (!targetType) { + return Msg.create(685, itemId, itemType, 'enumeratedSourceLink', j, linkId, 'not found in package'); + } + + if (targetType !== PigItemType.Link) { + return Msg.create(685, itemId, itemType, 'enumeratedSourceLink', j, linkId, `expected ${PigItemType.Link}, found ${targetType}`); + } + } + } + } + + return rspOK; +} + /** * Check that all aProperty.hasClass references point to pig:Property items * AND validate minCount/maxCount constraints @@ -586,7 +852,7 @@ function checkPropertyReferences( // Check AnEntity and aRelationship items if ([PigItemType.anEntity, PigItemType.aRelationship].includes(itemType)) { // LOG.debug(`Checking properties for AnEntity `, item); - if ((item as TPigAnElement).hasProperty && Array.isArray((item as TPigAnElement).hasProperty)) { + if (Array.isArray((item as TPigAnElement).hasProperty)) { // 1. Check hasClass references for (let j = 0; j < (item as TPigAnElement).hasProperty.length; j++) { const prop = (item as TPigAnElement).hasProperty[j]; @@ -772,16 +1038,21 @@ function checkPropertyHasClass( return Msg.create(672, parentId, propIndex, 'missing hasClass'); } + // Skip validation for known ontology references (e.g., cas:, dcterms:) + if (isKnownOntologyReference(prop.hasClass)) { + return rspOK; + } + // LOG.debug(`checkPropertyHasClass: checking hasClass ${JSON.stringify(prop, null, 2)} for property at index ${propIndex} of parent ${parentId}`); // LOG.debug(`checkPropertyHasClass: itemTypeMap = ${JSON.stringify(Array.from(itemTypeMap.entries()), null, 2)}`); const targetType = itemTypeMap.get(prop.hasClass); if (!targetType) { - return Msg.create(673, parentId, propIndex, prop.hasClass, 'not found in package'); + return Msg.create(673, parentId, `hasProperty[${propIndex}]`, prop.hasClass, 'not found in package'); } if (targetType !== PigItemType.Property) { - return Msg.create(673, parentId, propIndex, prop.hasClass, `expected pig:Property, found ${targetType}`); + return Msg.create(673, parentId, `hasProperty[${propIndex}]`, `expected ${DEF.pfxNsMeta}Property, found ${targetType}`); } return rspOK; @@ -804,7 +1075,7 @@ function checkLinkReferences( // Check AnEntity and aRelationship items (hasTargetLink) if ([PigItemType.anEntity, PigItemType.aRelationship].includes(itemType)) { - if ((item as TPigAnElement).hasTargetLink && Array.isArray((item as TPigAnElement).hasTargetLink)) { + if (Array.isArray((item as TPigAnElement).hasTargetLink)) { for (let j = 0; j < (item as TPigAnElement).hasTargetLink.length; j++) { const link = (item as TPigAnElement).hasTargetLink[j]; const checkResult = checkLinkHasClass(link, itemId, j, 'hasTargetLink', itemTypeMap); @@ -820,7 +1091,7 @@ function checkLinkReferences( const rel = item as any; // Check source links - if (rel.hasSourceLink && Array.isArray(rel.hasSourceLink)) { + if (Array.isArray(rel.hasSourceLink)) { for (let j = 0; j < rel.hasSourceLink.length; j++) { const link = rel.hasSourceLink[j]; const checkResult = checkLinkHasClass(link, itemId, j, 'hasSourceLink', itemTypeMap); @@ -855,13 +1126,18 @@ function checkLinkHasClass( return Msg.create(674, parentId, linkIndex, linkArrayName, 'missing hasClass'); } + // Skip validation for known ontology references (e.g., cas:, dcterms:) + if (isKnownOntologyReference(link.hasClass)) { + return rspOK; + } + const targetType = itemTypeMap.get(link.hasClass); if (!targetType) { - return Msg.create(675, parentId, linkIndex, linkArrayName, link.hasClass, 'not found in package'); + return Msg.create(673, parentId, `hasLink[${linkIndex}]`, link.hasClass, 'not found in package'); } if (targetType !== PigItemType.Link) { - return Msg.create(675, parentId, linkIndex, linkArrayName, link.hasClass, `expected pig:Link, found ${targetType}`); + return Msg.create(673, parentId, `hasLink[${linkIndex}]`, link.hasClass, `expected ${DEF.pfxNsMeta}Link, found ${targetType}`); } return rspOK; @@ -905,6 +1181,11 @@ function checkEntityOrRelationshipReferences( return Msg.create(674, iId, i, referenceType, `missing ${referenceType}`); } + // Skip validation for known ontology references (e.g., cas:, dcterms:) + if (isKnownOntologyReference(referenceValue)) { + continue; + } + // Expected type depends on whether we're checking hasClass or specializes: // - hasClass: anEntity -> Entity, aRelationship -> Relationship // - specializes: Entity -> Entity, Relationship -> Relationship @@ -950,6 +1231,11 @@ function checkPropertyOrLinkReferences( continue; } + // Skip validation for known ontology references (e.g., cas:, dcterms:) + if (isKnownOntologyReference(referenceValue)) { + continue; + } + // Expected type depends on whether we're checking Property or Link: // - Property.specializes -> Property // - Link.specializes -> Link @@ -980,7 +1266,7 @@ function checkValueRanges(pkg: IAPackage, propertyMap: Map): IRsp { for (let i = 0; i < pkg.graph.length; i++) { const item = pkg.graph[i]; const itemType = (item as any).itemType; - // ToDo: Should always be id + // @ToDo: Should always be id const itemId = (item as any)['@id'] ?? (item as any).id; // Check anEntity and aRelationship instances @@ -1022,129 +1308,111 @@ function checkValueRanges(pkg: IAPackage, propertyMap: Map): IRsp { // Get the value resp. idRef to validate let pVal = prop.value as string | undefined; - const idRef = prop.idRef as TPigId | undefined; - if ((pVal === undefined || pVal === null) && (idRef === undefined || idRef === null)) { - LOG.warn(`checkValueRanges: Property[${j}] of item ${instance.id} has neither value nor reference to enumerated value`); + if ((pVal === undefined || pVal === null)) { + LOG.warn(`checkValueRanges: Property[${j}] of item ${instance.id} has no value`); continue; // neither value nor id - validated by schema } - // Check enumerated values (enumerations) - applies to all datatypes - if (propDef.enumeratedValue !== undefined) { - // A: aProperty instances must have references to enumerated values ... + // aProperty instances must have a literal value potentially with restrictions: + pVal = pVal ?? ''; // satisfy the TypeScript compiler - actually the schema-check assures there is a value. - // ToDo: enumeratedValues is schema-checked and always a list - const enumeratedValues = Array.isArray(propDef.enumeratedValue) - ? propDef.enumeratedValue - : [propDef.enumeratedValue]; - - // Check if value is in enumerated list - const isenumerated = enumeratedValues.some((eV: any) => { - // Handle both string values and object values with id - // ToDo: should always have an id. - const enumeratedStr = typeof eV === 'object' && eV !== null && 'id' in eV - ? eV['id'] - : String(eV); - return enumeratedStr === idRef; - }); - - // LOG.debug(`checkValueRanges - enum list: ${JSON.stringify(enumeratedValues, null, 2)}`, idRef, isenumerated); - - if (!isenumerated) { + // String validation + // Here (native item.hasProperty), all elements of a multi-language text are listed flat with all other properties. + if (PigItem.isSupportedStringDatatype(datatype)) { + // Perform validation for each language-tagged value + // Check maxLength + if (propDef.maxLength !== undefined && pVal.length > propDef.maxLength) { return Msg.create( 679, itemId, j, propClassId, - `value '${idRef}' is not in enumeratedValue list: [${enumeratedValues.map((v: any) => - typeof v === 'object' && v !== null && 'id' in v ? v['id'] : String(v) - ).join(', ')}]` + `string length ${pVal.length} exceeds maxLength ${propDef.maxLength}` ); } - } - else { - // B: aProperty instances must have a literal value potentially with restrictions: - pVal = pVal ?? ''; // satisfy the TypeScript compiler - actually the schema-check assures there is a value. - - // String validation - // Here (native item.hasProperty), all elements of a multi-language text are listed flat with all other properties. - if (PigItem.isSupportedStringDatatype(datatype)) { - // Perform validation for each language-tagged value - // Check maxLength - if (propDef.maxLength !== undefined && pVal.length > propDef.maxLength) { - return Msg.create( - 679, - itemId, - j, - propClassId, - `string length ${pVal.length} exceeds maxLength ${propDef.maxLength}` - ); - } - // Check pattern - if (propDef.pattern) { - try { - const regex = new RegExp(propDef.pattern); - if (!regex.test(pVal)) { - return Msg.create( - 679, - itemId, - j, - propClassId, - `value '${pVal}' does not match pattern '${propDef.pattern}'` - ); - } - } catch (e) { - LOG.warn(`Invalid regex pattern in property ${propClassId}: ${propDef.pattern}`); + // Check pattern + if (propDef.pattern) { + try { + const regex = new RegExp(propDef.pattern); + if (!regex.test(pVal)) { + return Msg.create( + 679, + itemId, + j, + propClassId, + `value '${pVal}' does not match pattern '${propDef.pattern}'` + ); } + } catch (e) { + LOG.warn(`Invalid regex pattern in property ${propClassId}: ${propDef.pattern}`); } } + } - // Numeric validation - else if (PigItem.isSupportedNumericDatatype(datatype)) { - const numValue = Number(pVal); - - if (isNaN(numValue)) { - return Msg.create( - 679, - itemId, - j, - propClassId, - `value '${pVal}' is not a valid number for datatype ${datatype}` - ); - } + // Number validation + else if (PigItem.isSupportedNumericDatatype(datatype)) { + const numValue = Number(pVal); - // Check minInclusive - if (propDef.minInclusive !== undefined && numValue < propDef.minInclusive) { - return Msg.create( - 679, - itemId, - j, - propClassId, - `value ${numValue} is less than minInclusive ${propDef.minInclusive}` - ); - } + if (isNaN(numValue)) { + return Msg.create( + 679, + itemId, + j, + propClassId, + `value '${pVal}' is not a valid number for datatype ${datatype}` + ); + } - // Check maxInclusive - if (propDef.maxInclusive !== undefined && numValue > propDef.maxInclusive) { - return Msg.create( - 679, - itemId, - j, - propClassId, - `value ${numValue} exceeds maxInclusive ${propDef.maxInclusive}` - ); - } + // Check minInclusive + if (propDef.minInclusive !== undefined && numValue < propDef.minInclusive) { + return Msg.create( + 679, + itemId, + j, + propClassId, + `value ${numValue} is less than minInclusive ${propDef.minInclusive}` + ); } - else { + + // Check maxInclusive + if (propDef.maxInclusive !== undefined && numValue > propDef.maxInclusive) { return Msg.create( 679, itemId, j, propClassId, - `Unsupported datatype ${datatype}` + `value ${numValue} exceeds maxInclusive ${propDef.maxInclusive}` ); } } + + // Other datatypes: + else if (PigItem.isSupportedDatatype(datatype)) { + switch (datatype) { + case XsDataType.AnyURI: + break; + case XsDataType.Date: + case XsDataType.DateTime: + if (pVal && !RE.isoDateTime.test(pVal)) + return Msg.create( + 679, + itemId, + j, + propClassId, + `value '${pVal}' is not a valid ISO-8601 date/time for datatype ${datatype}` + ); + } + } + else { + return Msg.create( + 679, + itemId, + j, + propClassId, + `Unsupported datatype ${datatype}` + ); + } } } } @@ -1152,3 +1420,100 @@ function checkValueRanges(pkg: IAPackage, propertyMap: Map): IRsp { return rspOK; } +/** + * Check that all targetLinks pointing to enumeration entities can be resolved + * - Validates that when a Link class points to an Enumeration, + * all instances using that Link class reference valid enumeration values + * - Enumerations are Entity classes with a datatype property + * - targetLinks must reference anEntity instances whose hasClass matches the enumeration + * + * @param pkg - Package to validate + * @param enumerationMap - Map of enumeration Entity class definitions (Entity classes with datatype) + * @param targetLinkMap - Map from Link class ID to Enumeration class ID + * @returns IRsp (rspOK on success, error on unresolvable reference) + */ +function checkEnumeratedValues( + pkg: IAPackage, + enumerationMap: Map, + targetLinkMap: Map +): IRsp { + + // Helper function to check targetLinks for a given element + function checkTargetLinks( + hasTargetLink: any, + elementId: TPigId, + elementLabel: string + ): IRsp { + if (Array.isArray(hasTargetLink)) { + for (let j = 0; j < hasTargetLink.length; j++) { + const link = hasTargetLink[j]; + const linkClassId = link.hasClass as TPigId; + const targetId = link.idRef as TPigId; + + if (!linkClassId || !targetId) { + continue; // Validated elsewhere + } + + // Check if this Link class points to an enumeration + const enumerationClassId = targetLinkMap.get(linkClassId); + if (!enumerationClassId) { + continue; // This link doesn't point to an enumeration + } + + // Validate that the targetId references a valid enumeration value + const targetEnumList = enumerationMap.get(enumerationClassId); + if (!targetEnumList) { + return Msg.create( + 677, + elementId, + j, + linkClassId, + `target enumeration not found in package` + ); + } + + // Check whether the targetId is listed in targetEnumList + if (!targetEnumList.includes(targetId)) { + return Msg.create( + 677, + elementId, + j, + linkClassId, + `target enumeration has no enumerated value '${targetId}'` + ); + } + } + } + return rspOK; + } + + // Check the aPackage itself + if (pkg.hasTargetLink) { + const rsp = checkTargetLinks(pkg.hasTargetLink, pkg.id ?? 'aPackage', 'aPackage'); + if (!rsp.ok) { + return rsp; + } + } + + // Check all anEntity and aRelationship instances in the graph + for (let i = 0; i < pkg.graph.length; i++) { + const item = pkg.graph[i]; + const itemType = (item as any).itemType; + const itemId = (item as any)['@id'] ?? (item as any).id; + + // Process anEntity and aRelationship instances + if ([PigItemType.anEntity, PigItemType.aRelationship].includes(itemType)) { + const instance = item as TPigAnElement; + + // Check hasTargetLink array + if (instance.hasTargetLink) { + const rsp = checkTargetLinks(instance.hasTargetLink, itemId, itemType); + if (!rsp.ok) { + return rsp; + } + } + } + } + + return rspOK; +} diff --git a/src/common/schema/pig/ts/platform-independence.ts b/src/common/schema/pig/ts/platform-independence.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/components/PageDashboards.vue b/src/components/PageDashboards.vue index 90a01d8..f5fcb31 100644 --- a/src/components/PageDashboards.vue +++ b/src/components/PageDashboards.vue @@ -138,7 +138,7 @@ diff --git a/src/components/PageDocument.vue b/src/components/PageDocument.vue index 59d405e..8cad2e7 100644 --- a/src/components/PageDocument.vue +++ b/src/components/PageDocument.vue @@ -1,15 +1,16 @@