| @@ -4,12 +4,14 @@ The idea for medashare is both a standard, but also an implementation | |||||
| of defining and sharing meta data about files. Some media contains the | of defining and sharing meta data about files. Some media contains the | ||||
| ability to embed meta data, e.g. mp3, some documents, video files, but | ability to embed meta data, e.g. mp3, some documents, video files, but | ||||
| not all files are able to convey the complete and rich information that | not all files are able to convey the complete and rich information that | ||||
| may be desired. This will allow you to identify files, and have | |||||
| external associated meta data with various files. | |||||
| The idea is also to be able to classify parts of the meta data as | |||||
| private (aka TLP:Red), such that the information will not be shared, so | |||||
| that you can mark files w/ your own tags and/or ratings, which will not | |||||
| may be desired. Even if the file format has embedded data, it may not | |||||
| be modifiable, or even be desirable to modify the file to include the | |||||
| metadata. This will allow you to identify files, and have external | |||||
| associated meta data with various files. | |||||
| It should be possible to classify parts of the meta data as private | |||||
| (aka TLP:Red), such that the information will not be shared, so that | |||||
| a person can mark files w/ your own tags and/or ratings, which will not | |||||
| be automatically shared. | be automatically shared. | ||||
| There will also be able to define derivative works by the standard. | There will also be able to define derivative works by the standard. | ||||
| @@ -29,7 +31,7 @@ associate general picture information w/ the raw image data (but none | |||||
| of the associated processing data that files like CR2 contains) so that | of the associated processing data that files like CR2 contains) so that | ||||
| the meta data is not lost. | the meta data is not lost. | ||||
| This work is inspired by my work on STIX, a Cyber Threat Intelligence | |||||
| This work is inspired by my work on [STIX], a Cyber Threat Intelligence | |||||
| standard, that has many similar requirements as meta data sharing. | standard, that has many similar requirements as meta data sharing. | ||||
| ## Goals / Use Cases | ## Goals / Use Cases | ||||
| @@ -74,6 +76,16 @@ standard, that has many similar requirements as meta data sharing. | |||||
| Each object has a URN which uniquely describes it. XXX copy from STIX | Each object has a URN which uniquely describes it. XXX copy from STIX | ||||
| URN proposal, which is simlar to the magnet proposal. | URN proposal, which is simlar to the magnet proposal. | ||||
| Something similar to: | |||||
| ``` | |||||
| urn:medashare:uuid[--modifieddate] | |||||
| ``` | |||||
| And the URI version: | |||||
| ``` | |||||
| medashare:?xt=<urn> | |||||
| ``` | |||||
| ## Types | ## Types | ||||
| Everything must have a type. Not having well defined types can lead to | Everything must have a type. Not having well defined types can lead to | ||||
| @@ -139,9 +151,10 @@ parent_refs List of UUIDv4s of MetaData Object that overlay. Any | |||||
| passed through to the parent for resolution. The | passed through to the parent for resolution. The | ||||
| first/earliest object that has a property is used in | first/earliest object that has a property is used in | ||||
| that objects later in the list are "hidden" by the | that objects later in the list are "hidden" by the | ||||
| earlier objects. | |||||
| earlier objects. The modified date must be included | |||||
| in this property. | |||||
| mimetype The mime-type. If the set of bytes is polymorphic, | mimetype The mime-type. If the set of bytes is polymorphic, | ||||
| there should be one for each "type". | |||||
| there should be an object for each "type". | |||||
| uri List of URI's where the file may be located. | uri List of URI's where the file may be located. | ||||
| child_files A dictionary where the keys are the file names and the | child_files A dictionary where the keys are the file names and the | ||||
| values are hash strings. (One issue w/ using hashes is | values are hash strings. (One issue w/ using hashes is | ||||
| @@ -160,25 +173,27 @@ specification, as it provides a nice starting point, and will provide a | |||||
| good mapping to other systems out there. | good mapping to other systems out there. | ||||
| There may be a link to another MetaData object from which this one is | There may be a link to another MetaData object from which this one is | ||||
| derived. If there is, all the meta data from the derived object (and | |||||
| the ones it derives from) must be included, except for the ones that | |||||
| have been marked deleted, or were overridden. When a property is | |||||
| marked as opinion, it should not be inherited. If the new author | |||||
| agrees with the opinion, then they have to restate the opinion in their | |||||
| object. | |||||
| derived (via parent_refs). If there is, all the meta data from the | |||||
| derived object (and the ones it derives from) must be included, except | |||||
| for the ones that have been marked deleted, or were overridden. When | |||||
| a property is marked as opinion, it should not be inherited. If the | |||||
| new author agrees with the opinion, then they have to restate the | |||||
| opinion in their object. | |||||
| Custom properties must be preceded w/ a namespace. The name space is | Custom properties must be preceded w/ a namespace. The name space is | ||||
| name followed by colon, as is demonstrated above w/ dc for [Dublin | name followed by colon, as is demonstrated above w/ dc for [Dublin | ||||
| Core]. | |||||
| Core]. For existing standards, please submit them for inclusion, | |||||
| otherwise a reverse dns name should be used, e.g. | |||||
| com.funkthat:property. | |||||
| The link to the meta data object must include the version referenced, | The link to the meta data object must include the version referenced, | ||||
| as the referenced object may change. A three way merge may be needed | as the referenced object may change. A three way merge may be needed | ||||
| when updating an object where the derived object has also been updated | when updating an object where the derived object has also been updated | ||||
| if the new information is wished to be used. | if the new information is wished to be used. | ||||
| If a property is imported from the blog itself, it is recommended to | |||||
| mark it as such via the granular marking, see X for more info on how to | |||||
| do this. | |||||
| If a property is imported from the file/object itself, it is | |||||
| recommended to mark it as such via the granular marking, see X for more | |||||
| info on how to do this. | |||||
| Open Questions: When meta data is "declassified", how do you maintain | Open Questions: When meta data is "declassified", how do you maintain | ||||
| a link to the classified version? | a link to the classified version? | ||||
| @@ -266,6 +281,7 @@ local only (unless on a shared, e.g. work, system). | |||||
| The [Dublin Core] standard is also noted by [RFC5013]. | The [Dublin Core] standard is also noted by [RFC5013]. | ||||
| [STIX] https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=cti | |||||
| [Dublin Core]: http://dublincore.org/documents/dces/ | [Dublin Core]: http://dublincore.org/documents/dces/ | ||||
| [RFC5013]: https://tools.ietf.org/html/rfc5013 | [RFC5013]: https://tools.ietf.org/html/rfc5013 | ||||
| [STIX v2.0 Part 1]: http://docs.oasis-open.org/cti/stix/v2.0/cs01/part1-stix-core/stix-v2.0-cs01-part1-stix-core.html | [STIX v2.0 Part 1]: http://docs.oasis-open.org/cti/stix/v2.0/cs01/part1-stix-core/stix-v2.0-cs01-part1-stix-core.html | ||||