Repository navigation
Multipart MIME #5
AdamSobieski
started this conversation in
Ideas
Replies: 1 comment
|
This bit of history is worth a look: https://www.w3.org/TR/2015/WD-web-packaging-20150115/ It's very similar to what you describe here with clearly similar use cases in mind. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Introduction
Multipart MIME messages could be used for representing knowledge, argumentation, and other kinds of data intended for interchange between software applications and systems.
Towards these objectives, two new header fields are considered:
Content-ContextandContent-Relation. The first,Content-Context, is for referencing resources with which to describe and validate multipart MIME messages. The second,Content-Relation, is for labeling and distinguishing parts of messages.A new multipart-MIME-based resource type is also indicated for describing and validating multipart MIME messages and their parts' contents.
Use Cases
Some use cases for multipart MIME messages and (compressed) archive resources are listed below.
A first use case involves using multipart MIME messages with metadata parts for clipboarding, dragging-and-dropping, and other interprocess communication scenarios.
A second use case involves data provenance. One could provide bibliographic references (e.g.,
text/x-bibtex) alongside data, e.g., content, selections, excerpts, or quotations.A third use case involves bundling data-table schemas with one or more more data tables (e.g.,
text/csv,text/tab-separated-values). As envisioned, metadata schema resources, e.g., CSVW metadata (application/csvm+json), describing the tables' schemas could accompany one or more data tables. See also: SQLite3 database files (application/x-sqlite3).A fourth use case involves including rules, grammars, schemas, or ontologies with which to validate one or more resources. For XML-based resources, there is an
xsi:schemaLocationattribute for referring to XML schema resources which could be stored elsewhere in a multipart MIME message or archive file. For RDF-based resources, there aredct:conformsToanddash:shapeproperties for referring to other resources, i.e., SHACL resources.A fifth use case involves 3D models (e.g.,
model/gltf+json,model/xsd+xml,model/vnd.usda) which could be accompanied by additional graphics, audio, animation, metadata, semantics, and/or accessibility-related resources. See also: Universal Scene Description packages (model/vnd.usdz+zip).A sixth use case involves enabling resources, e.g., source-code resources (e.g.,
text/x-python) or software projects, to be accompanied by discussion transcripts (e.g.,application/vnd.vcon+json) about them.A seventh use case involves artificial-intelligence systems, e.g., agentic systems, which could produce, store, load, transmit, and consume multiple resources bundled together as multipart MIME messages or (compressed) archive files.
Examples
The following examples showcase
Content-ContextandContent-Relationheader fields for multipart MIME messages.Example 1
The following example shows a multipart MIME message with metadata indicating that its main part references a bibliographic resource.
Click here to toggle view of more examples.
Example 2
The following example, drawing inspiration from the Web Annotation Data Model, shows a multipart MIME message with metadata expressing that its main part is a selection of another of its parts referenced by URL.
Example 3
The following example shows a multipart MIME message with metadata indicating that its main part offers alternative formats for an argument claim while referencing an attached spreadsheet as evidence.
Example 4
How might multipart MIME messages be of use for storing and transmitting knowledge graphs with accompanying embedding vectors? Some possibilities are presented below.
Firstly, embedding vectors can be represented as RDF literals per the RDF Tensor project.
Secondly, noticing that JSON content is in the literals, above, one could extract those parts into resources which could then be referenced by URLs. In this case,
cid:URLs.Thirdly, one could use CBOR instead of JSON to represent tensors.
Fourthly, one could use the Safetensors format. Note that
cid:URLs can make use of fragment identifiers to refer to parts of resources.Fifthly, one could use the HDF5 format.
Towards a Format for the Description and Validation of Multipart MIME Messages
In the above examples, a
.mimeldresource is referenced viaContent-Contextheader fields. What might such resources resemble? Such resources could be multipart MIME messages utilizing JSON-LD, in a message part, to describe valid multipart MIME messages and their parts. Using JSON-LD, one could describe messages' parts' text labels, semantic IRIs, cardinalities, MIME types, and means of content validation.At the URL:
https://www.example.org/structure.mimeld, a.mimeldresource might resemble something along the lines of:Note that the
contentarrays are disjunctive collections.At the URL:
https://www.example.org/context.mimeld, envisioned as being self-referential and self-describing, a.mimeldresource might resemble something along the lines of:As the resources under discussion are multipart MIME messages, instead of having to use external URLs to reference any
.mimeldresources, the.mimeldresources could be placed inline in messages' parts and referenced using thecid:URL scheme in theContent-Contextheader field. Similarly, any referenced resources for validating messages' parts (e.g., grammars, schemas, ontologies, and shapes) could be, instead, inline in messages' parts.Conclusion
What do you think about these ideas? Thank you.
All reactions