Commit 399cf26f authored by Mark Jordan's avatar Mark Jordan
Browse files

Initial commit.

parents
# BagItLD
A method for expressing Linked Data in BagIt bag-info.txt tags.
## Overview
The [BagIt specification](https://tools.ietf.org/html/draft-kunze-bagit-14) states in section 2.2.2 ("Bag Metadata: bag-info.txt") that:
> A metadata element MUST consist of a label, a colon, and a value, each separated by optional whitespace. The label MUST start in column 1.
Essentially, this describes a two-part key/value structure. A conforming example of the contents of a bag-info.txt file are:
```
Internal-Sender-Identifier: bag_03
Source-Organization: Simon Fraser University Library
Contact-Email: mjordan@sfu.ca
```
Theh BagIt spec reserves the following tags:
* Source-Organization
* Organization-Address
* Contact-Name
* Contact-Phone
* Contact-Email
* External-Description
* Bagging-Date
* External-Identifier
* Bag-Size
* Payload-Oxum
* Bag-Group-Identifier
* Bag-Count
* Internal-Sender-Identifier
* Internal-Sender-Description
but allows other arbitrary tags to exist within bag-info.txt provided they conform to the two-part structure described above.
Linked Data structures share a three-part "subject", "predicate", "object" pattern. The contents of bag-info.txt are "are intended primarily for human readability".
```
bagitldprefix@dc: http://purl.org/dc/elements/1.1/
Title@dc: I am a title
Date@dc: 2017-06-20
Subject@dc: [Testing stuff, Linked Data]
Internal-Sender-Identifier: bag_03
Source-Organization: Simon Fraser University Library
Contact-Email: mjordan@sfu.ca
```
## Alternatives
Why not put Turtle data (for example) in an optional tag file as described in section 2.2.4 of the spec?
```
<base directory>/
| bagit.txt
| manifest-<algorithm>.txt
| [optional additional tag files]
\--- data/
| [payload files]
\--- [optional tag directories]/
| [optional tag files]
```
Possible answers: bag-info.txt is optional, but it is widely used and most implementations probably assume it to be present. While it is possible to specify the requirement for additional tagfiles using a [BagIt Profile](https://github.com/ruebot/bagit-profiles), the presence of an additional tagfile conforming to a specific Linked Data structure would be purely optional. Which is fine.
BagItLD is quite human readable, despite its use of namespaces/prefixes. At least as humanly readable as other Linked Data structures.
## License
![This work is in the Public Domain](http://i.creativecommons.org/p/mark/1.0/88x31.png)
To the extent possible under law, Mark Jordan has waived all copyright and related or neighboring rights to this work. This work is published from: Canada.
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment