Skip to content

Should annotations be able to have id attributes? #335

Description

@amoeba

@mpsaloha brought up an interesting point last week on our DataONE semprov call: Should <annotation> elements be able to have ids? This'd allow at least two cool things:

  1. Annotations can be turned into quads and referenced in other contexts. Coolness level: Gentle ocean breeze.
  2. Annotations can annotate other annotations. Coolness level: Gale force winds.

For example, (2) allows us to insert provenance about annotations. Take this annotation:

<!-- snip -->
<attribute id="my_attribute">
  <!-- snip -->
  <annotation>
    <propertyURI label="contains measurements about">
      http://ecoinformatics.org/oboe/oboe.1.2/oboe-core.owl#ofEntity
    </propertyURI>
    <valueURI label="air">
      http://purl.obolibrary.org/obo/ENVO_00002005
    </valueURI>
  </annotation>
  <!-- snip -->
</attribute>
<!-- snip -->

Add in the option of an id attribute:

<!-- snip -->
<attribute id="my_attribute">
  <!-- snip -->
  <annotation id="my_annotation">
    <propertyURI label="contains measurements about">
      http://ecoinformatics.org/oboe/oboe.1.2/oboe-core.owl#ofEntity
    </propertyURI>
    <valueURI label="air">
      http://purl.obolibrary.org/obo/ENVO_00002005
    </valueURI>
  </annotation>
  <!-- snip -->
</attribute>
<!-- snip -->
<annotations>
  <annotation references="my_annotation">
    <propertyURI label="was created by">
      https://schema.org/creator
    </propertyURI>
    <valueURI label="Bryce Mecum">
      https://dataone.org/person/BryceMecum
    </valueURI>
  </annotation>
</annotations>

I think this is potentially useful, and I also think it's not a problem to add to the schema and it's probably better to add now, before 2.2 is released. @mobb mentioned our usual pattern with id attributes is that they also come with system and scope attributes, like:

<xs:attribute name="id" type="res:IDType" use="optional"/>
<xs:attribute name="system" type="res:SystemType" use="optional"/>
<xs:attribute name="scope" type="res:ScopeType" use="optional" default="document"/>

Is this interesting to others and does this fit within the spirit of the semantics module?

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions