<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.biocomputeobject.org/index.php?action=history&amp;feed=atom&amp;title=Top_Level_Fields</id>
	<title>Top Level Fields - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.biocomputeobject.org/index.php?action=history&amp;feed=atom&amp;title=Top_Level_Fields"/>
	<link rel="alternate" type="text/html" href="https://wiki.biocomputeobject.org/index.php?title=Top_Level_Fields&amp;action=history"/>
	<updated>2026-04-15T03:19:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wiki.biocomputeobject.org/index.php?title=Top_Level_Fields&amp;diff=1291&amp;oldid=prev</id>
		<title>Lorikrammer: Created page with &quot;'''Go back to BCO Domains.'''  == Top Level Fields == These header fields uniquely define this BCO. These fields are required for every BCO and are represented at the top level object.  Condensed example:          {             &quot;object_id&quot;: &quot;https://example.com/BCO_948701/1.0&quot;,             &quot;spec_version&quot; : &quot;https://w3id.org/ieee/ieee-2791-schema/2791object.json&quot;,             &quot;etag&quot;: &quot;d41d8cd98f00b204e9800998ecf8427e&quot;,                 &quot;provenance_domain&quot;: {...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.biocomputeobject.org/index.php?title=Top_Level_Fields&amp;diff=1291&amp;oldid=prev"/>
		<updated>2026-04-14T21:26:07Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Go back to &lt;a href=&quot;/BCO_Domains&quot; title=&quot;BCO Domains&quot;&gt;BCO Domains&lt;/a&gt;.&amp;#039;&amp;#039;&amp;#039;  == Top Level Fields == These header fields uniquely define this BCO. These fields are required for every BCO and are represented at the top level object.  Condensed example:          {             &amp;quot;object_id&amp;quot;: &amp;quot;https://example.com/BCO_948701/1.0&amp;quot;,             &amp;quot;spec_version&amp;quot; : &amp;quot;https://w3id.org/ieee/ieee-2791-schema/2791object.json&amp;quot;,             &amp;quot;etag&amp;quot;: &amp;quot;d41d8cd98f00b204e9800998ecf8427e&amp;quot;,                 &amp;quot;provenance_domain&amp;quot;: {...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Go back to [[BCO Domains]].'''&lt;br /&gt;
&lt;br /&gt;
== Top Level Fields ==&lt;br /&gt;
These header fields uniquely define this BCO. These fields are required for every BCO and are represented at the top level object.&lt;br /&gt;
&lt;br /&gt;
Condensed example:&lt;br /&gt;
&lt;br /&gt;
        {&lt;br /&gt;
            &amp;quot;object_id&amp;quot;: &amp;quot;https://example.com/BCO_948701/1.0&amp;quot;,&lt;br /&gt;
            &amp;quot;spec_version&amp;quot; : &amp;quot;https://w3id.org/ieee/ieee-2791-schema/2791object.json&amp;quot;,&lt;br /&gt;
            &amp;quot;etag&amp;quot;: &amp;quot;d41d8cd98f00b204e9800998ecf8427e&amp;quot;,    &lt;br /&gt;
            &amp;quot;provenance_domain&amp;quot;: {&lt;br /&gt;
            },&lt;br /&gt;
            &amp;quot;...&amp;quot;: { }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
=== BCO version “spec_version” ===&lt;br /&gt;
&lt;br /&gt;
The version of the BCO specification is used to define the BCO. It is recommended that this value is a permalink as defined in the [https://github.com/perma-id/w3id.org/tree/master/biocompute w3id.org/biocompute] repository.&lt;br /&gt;
&lt;br /&gt;
        &amp;quot;spec_version&amp;quot;: &amp;quot;https://w3id.org/ieee/ieee-2791-schema/2791object.json&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== BioCompute Object Identifier “object_id” ===&lt;br /&gt;
&lt;br /&gt;
A unique identifier that should be applied to each BCO instance. These can be assigned by a BCO database engine or manually generated. IDs should never be reused. It is recommended that the BCO identifier is based on a [https://datatracker.ietf.org/doc/html/rfc4122 UUID]s (sometimes called GUIDs) to ensure uniqueness, either as a location-independent URN (e.g. urn:uuid:2bf8397b-9aa8-47f2-80a7-235653e8e824) or as part of an identifier permalink, (e.g. http://repo.example.com/bco/2bf8397b-9aa8-47f2-80a7-235653e8e824). While the UUID is the preferred method, IDs expressed as a URN or URL will satisfy the standard.&lt;br /&gt;
&lt;br /&gt;
The following is the recommended format for a BCO object_id, and what has been implemented by the [https://github.com/biocompute-objects/bco%20api/releases BCODB]:&lt;br /&gt;
&lt;br /&gt;
The &amp;quot;object_id&amp;quot; consists of four different parts:&lt;br /&gt;
&lt;br /&gt;
    |  &amp;lt;protocol&amp;gt;  |      &amp;lt;hostname&amp;gt;        | &amp;lt;BCO accession&amp;gt;  | &amp;lt;BCO version&amp;gt;  |&lt;br /&gt;
    | ------------ | ---------------------- | ---------------- | -------------- |&lt;br /&gt;
    |   https://   | biocomputeobject.org/  |   /BCO_000001    |     /1.5       |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
#Protocol: It is recommended that this be HTTPS or at least HTTP [https://datatracker.ietf.org/doc/html/rfc3986 see Scheme in RFC 3986] for more detail on protocols.&lt;br /&gt;
#Hostname: [https://datatracker.ietf.org/doc/html/rfc3986 see Host in RFC_3986]&lt;br /&gt;
#BCO Accession: composed of 2 parts separated by an underscore( _):&lt;br /&gt;
#*The BCO Prefix: A 3-5 alphanumeric characters. Preferably one registered via the [[Best Practices|BioCompute Registry]]&lt;br /&gt;
#*BCO identifier: a numeric identifier appended to the prefix&lt;br /&gt;
#BCO version: This is the version of the BCO, as recorded on the [[Provenance Domain]]&lt;br /&gt;
    &amp;quot;object_id&amp;quot;: &amp;quot;https://biocomputeobject.org/BCO_000001/1.5&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== ETag “etag” ===&lt;br /&gt;
&lt;br /&gt;
A string-type, read-only value, protects the object from internal or external alterations without proper validation. The string should be generated through the use of an SHA-256 hash function. Everything EXCEPT for the etag, object_id, and spec_version should be included in the generation of the hash. For example:&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;provenance_domain&amp;quot;: {},&lt;br /&gt;
    &amp;quot;usability_domain&amp;quot;: [],&lt;br /&gt;
    &amp;quot;extension_domain&amp;quot;:{},&lt;br /&gt;
    &amp;quot;description_domain&amp;quot;: {},&lt;br /&gt;
    &amp;quot;execution_domain&amp;quot;: {}, &lt;br /&gt;
    &amp;quot;parametric_domain&amp;quot;: [], &lt;br /&gt;
    &amp;quot;io_domain&amp;quot;: {},&lt;br /&gt;
    &amp;quot;error_domain&amp;quot;: {}&lt;br /&gt;
&lt;br /&gt;
will generate the following:&lt;br /&gt;
&lt;br /&gt;
    &amp;quot;etag&amp;quot;: &amp;quot;584C7FE128717E1712426AB19CAAEA8BC1E27365B54285BBEA1221284C7D3A48&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Additional domains ==&lt;br /&gt;
Additional description about the BCO itself is also provided in the [[Provenance Domain]], [[Description Domain]] and [[Usability Domain]]. Other domains detail areas like execution and error ranges.&lt;/div&gt;</summary>
		<author><name>Lorikrammer</name></author>
	</entry>
</feed>