-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SME File/value for relative Path to files in .aasx #12
Comments
Today we started a discussion in "02-1 TF Interoperability...", where we raised the issue, that a relation between file.value and the binary content held by the system, may lead to unexpected behavior. Please understand this comment as a request for discussion! Please download and review the two attached aasx files, where I added the README.md from our two specification repositories as a File SubmodelElement. In the example, there are two shells (id="admin-shell.io/aas-specs" and id="admin-shell.io/aas-specs-api") with one submodel each. This example may simulate many use cases, where a business process defines folder structures and file names, while the file identity is defined by the whole path (folder structure + filename). When uploading such a file in e.g. AASX Package Explorer (which I did here), everything seems to be fine, since a AAS in its own package doesn't care about other packages. The same applies to package less systems, where AAS are stored in databases or similar systems. Challenge: The structure inside the AASX is as follows: /[Content_Types].xml Here is the "aasx/_rels/aas_specs.aas.xml.rels" content: <?xml version="1.0" encoding="utf-8"?>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships">
<Relationship Type="http://www.admin-shell.io/aasx/relationships/aas-suppl" Target="/aasx/files/README.md" Id="R20b9932757ae4357" />
</Relationships> -> The Id is the logical key and Target is path inside aasx, where the payload is stored. From my understanding it gets really tricky, if the Target is aligned with file.value - because we then have overlapping paths for two binary distinct file-payloads. The "readme"s of our two specifications are not the same! From my understanding, there is a misconception in the specification or implementation, when we try to align File.value and Relationship.Target -> because that way we make the indirection between the logical Relationship and the Target-Payload bloody useless. We could use as Relationship.ID something, that is based on the qualified path like <submodel_id>/ and as Relationship.Target something like "/assx/files/<base64url_encoded_sm_id>/<id_short_path>". If a file is shared between two submodels, then the Target could be something like "/aasx/files/shared/". Relationship.ID could be "<base64url_encoded_sm_id>/<id_short_path>" or a hash of that or something else - I actually don't know the constraints that apply to this ID, yet. |
Is your feature request related to a problem? Please describe.
Discussion and request from TF Part1 of Work Stream "Specification of the AAS":
compare also to discussion in admin-shell-io/aas-specs#299, comment admin-shell-io/aas-specs#299 (comment)
Note: This issue is different to #3: In #3 it is about relative path within predefined files of OPC format itself (i.e. in rels-files). This issue is about the AAS data file and its File Submodel element. It is stated in Part 5, V3.0 that File/value may contain a relative path that is referencing a file (aas-suppl) the .aasx file
The text was updated successfully, but these errors were encountered: