← Documentation home

Canonical Markdown source · Oct 20, 2018

LinkedArtWidgets.md

linked-art/LinkedArtWidgets.md · 160 lines · SHA-256 b39911c7d97d

This list breaks down the essential UI widgets needed to render Linked Art JSON-LD effectively. These are categorized by complexity, ranging from "Atomic" (small text formatting helpers) to "Macro" (full interactive visualizations).

  1. Atomic Components (Text & Formatting)

These are the building blocks used to parse specific, deeply nested Linked Art fields into human-readable strings.

LinkedDate

• Purpose: Converting complex TimeSpan objects into readable dates.

• Functionality: Handles begin_of_the_begin, end_of_the_end, and display_label. It should gracefully degrade from specific dates ("May 12, 1890") to ranges ("1890–1900") to uncertainties ("Circa 19th Century").

LinkedDimensions

• Purpose: flattening the Dimension array into a standard physical description string.

• Functionality: Concatenates height, width, and depth values with their units. Example output: "24.5 x 30 cm".

LinkedAttribution

• Purpose: Generating the standard "Artist line."

• Functionality: Traverses the produced_by path to find carried_out_by (the actor). It should combine the Actor's _label with their role (e.g., "Painter") to display: "Vincent van Gogh (Painter)".

MaterialTechniqueList

• Purpose: Displaying the "Medium."

• Functionality: Aggregates made_of (materials) and technique fields. Example output: "Oil on Canvas".

  1. Entity Cards (Summaries)

These are standard "preview" components used in search results, lists, or "related items" sidebars.

ObjectCard

• Purpose: The standard grid item for a search result.

• Elements: * Thumbnail image (from digitally_shown_by).

• Truncated Title (_label).

• Creation Date (using LinkedDate).

• Artist Name.

• Status Badge (e.g., "On Display").

ActorCard

• Purpose: A summary of a person or group (Artist, Donor, Manufacturer).

• Elements:

• Portrait/Image.

• Name.

• Birth/Death Dates.

• Nationality (from residence).

• Role summary (e.g., "Sculptor", "Collector").

PlaceCard

• Purpose: A summary for a geographical location found in the data.

• Elements:

• Map thumbnail.

• Place Name.

• Relationship (e.g., "Place of Production").

  1. Visualization Widgets (Interactive)

These components handle the complex graph relationships in a visual way.

ProvenanceTimeline

• Purpose: Visualizing the history of ownership (the provenance activity).

• Functionality: A vertical or horizontal stepper showing the sequence of Acquisition or Transfer of Custody events.

• Interactivity: Clicking a node shows the Buyer, Seller, Price, and Date of that transaction.

ExhibitionHistoryList

• Purpose: Showing where the object has been displayed.

• Functionality: A chronological list of used_specifically_in (Exhibition) events. Should group exhibitions by venue or date.

GeoMapViewer

• Purpose: Placing the object in physical space.

• Functionality: A map (Leaflet/Mapbox) rendering pins for distinct spatial data points: produced_at (creation), current_location (storage), and moved_to (tours).

DeepZoomViewer (IIIF Wrapper)

• Purpose: High-resolution image exploration.

• Functionality: Consumes the digitally_shown_by IIIF manifest. Includes controls for zooming, panning, and toggling between multiple views (recto/verso).

HeirarchyTree

• Purpose: Navigating sets and collections.

• Functionality: Visualizing members_of relationships. Useful for albums, portfolios, or archival boxes to show the "Parent" object and "Sibling" objects.

  1. Metadata & Context Widgets

Detailed blocks usually placed below the main image on an object page.

ClassificationsBlock

• Purpose: Displaying taxonomies and types.

• Functionality: Renders classified_as fields (e.g., AAT terms) as clickable tags or pills that link to search results for that term.

ReferenceList

• Purpose: Showing bibliography and academic sources.

• Functionality: Lists items in referred_to_by (Citation). Displays the text snippet and the publication source.

IdentifierBlock

• Purpose: Managing various ID numbers.

• Functionality: Lists the Accession Number, ULAN IDs, Wikidata IDs, and internal system IDs found in identified_by.

  1. Participatory & PHR Specific Widgets

Tools specifically for the "Participatory" aspect of your team's mission, allowing user interaction with the data.

AnnotationOverlay

• Purpose: Allowing users to comment on specific regions of an image.

• Functionality: Draws standard W3C Web Annotations on top of the IIIF canvas.

CrowdCorrector

• Purpose: Letting users suggest edits to data.

• Functionality: A "Suggest an Edit" button next to specific fields (like Date or Author). It opens a modal pre-filled with the current value, allowing the user to submit a proposed change.

StoryBuilder

• Purpose: Creating narratives around objects.

• Functionality: A drag-and-drop container where researchers can pull in ObjectCards and TextBlocks to create a linear "Exhibition" or "Story" page.

Suggested Next Step

Would you like me to generate the React/Javascript code for one of the "Atomic" components (like LinkedDate or LinkedAttribution) to demonstrate how to parse the JSON-LD structure?