Skip to content

Use of non-existent dct:partOf — should be dct:isPartOf #511

Description

@tkuhn

Problem

We use <http://purl.org/dc/terms/partOf> in several places, but that term does not exist. The DCMI Terms vocabulary (namespace http://purl.org/dc/terms/) defines:

  • dct:isPartOf — "A related resource in which the described resource is physically or logically included." (X dct:isPartOf Y = X is part of Y) — this is the correct property for a part→whole / "belongs to" link.
  • dct:hasPart — the inverse.
  • dct:partOfnot defined. <http://purl.org/dc/terms/partOf> is undefined/non-dereferenceable.

(A bare part_of exists in other vocabularies — e.g. OBO/RO BFO_0000050 — but not in dc/terms/.) So any triple using dct:partOf is effectively malformed and won't be recognized by DC-aware tooling or reasoners. It should be dct:isPartOf.

Filing here as the most convenient place to track it, though it's not Nanodash-code-specific — there are no occurrences in the Nanodash repo source (the only DC part-relation in code is dct:isPartOf, used correctly in ExplorePage.java). The actual usages are in published nanopub artifacts:

  • Query / view / template nanopubs (e.g. the part-About "Belongs-to" info query).
  • Possibly the gen / spaces vocabulary and other repos.
  • Possibly already-published data nanopubs that assert dct:partOf.

Proposed work

  1. Enumerate all usages — sweep published query/view/template nanopubs (and vocab + related repos) for http://purl.org/dc/terms/partOf to establish the blast radius.
  2. Correct the editable artifacts — supersede the affected query/template/view nanopubs to use dct:isPartOf, and update any consuming code that reads partOf.
  3. Note the irreducible part — already-published immutable data nanopubs that assert dct:partOf cannot be edited, only superseded; existing ones remain wrong in the record. Decide whether/how to migrate.

Direction check

dct:isPartOf points part → whole (resource dct:isPartOf owningResource). Confirm each call site intends that direction (vs. dct:hasPart) when correcting.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Bug.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions