3 | | Variants will in principle be described using RDF. |
4 | | |
5 | | Minimum attributes are |
6 | | - `dc:publisher` as a DNS domain |
7 | | - [[https://www.iana.org/assignments/media-types/media-types.xhtml|MIME-Type]] |
8 | | - `dc:language` with a minimised CLDR language |
9 | | |
10 | | From the attributes, a dot-delimited string is constructed by the above methods. The string serves as the format identifier. It must be suitable for a Python `import` statement, i.e. obey the rules for [[https://peps.python.org/pep-0008/#package-and-module-names|Python package and module names]]. |
11 | | |
12 | | Variants may not be accessible by a dereferencable URI, so they will be referenced by their ID in a URN, such as `urn:luna:variant:contentID:variantID` |
13 | | |
14 | | As on how to represent MIME in RDF, see the [[https://stackoverflow.com/a/75543855/1132250|answer to "How to use MIME types for RDF typed literals"]] |
| 3 | - Variants will in principle be '''described using RDF'''. |
| 4 | - Minimum attributes are |
| 5 | - `dc:publisher` as a DNS domain |
| 6 | - [[https://www.iana.org/assignments/media-types/media-types.xhtml|MIME-Type]] |
| 7 | - As on how to represent MIME in RDF, see the [[https://stackoverflow.com/a/75543855/1132250|answer to "How to use MIME types for RDF typed literals"]] |
| 8 | - `dc:language` with a minimised CLDR language |
| 9 | - Variants may not be accessible by a dereferencable URI, so they will be referenced by their ID in a URN, such as `urn:luna:variant:contentID:variantID` |
| 10 | - From the attributes, a '''dot-delimited string''' is constructed by the above methods. The string serves as the '''format identifier'''. |
| 11 | - It must be suitable for a Python `import` statement, i.e. obey the rules for [[https://peps.python.org/pep-0008/#package-and-module-names|Python package and module names]]. |
| 12 | - The string may be used when '''requesting a mode''' from Luna, such as `http://host/courses/view/courseID/contentID?mode=formatID` |
| 13 | - Since the mode string may be very long, verbose, and confusing to outsiders, a '''hash''' may be used instead. Currently the hash algorithm is SHA256. A '''prefix''' of the hash may be used as long as it is unique regarding the variants in the course. |
| 14 | |