Sinopia Tech

Logo

This is a page for technical information on the Sinopia project, a RDF-native cataloging environment for LD4P.

Site Menu

View the Project on GitHub LD4P/sinopia

Sinopia <=> External Data Expectations

External Data API Expectations

Configuration & Context

GET => Fetch:

GET => Lookup (Single field Query):

GET => Multi-field Lookup (Multi-field Query):

Error responses

To be written up.

Sinopia Search Lookup Interactions (Proposed)

Search for available data => Search Query / Browse

Sinopia Search Client:

  1. If needed, break apart API calls by source.
  2. Call API(s) for Lookup with search string. (or Multi-field Lookup if spaces in search string.)
  3. Use Lookup default data to break apart API(s) responses for display of responses.
  4. Follow Selection responses below

Select to View

  1. User selects “see more” for a given result.
  2. Call API(s) for Fetch or to dereference for the selected value’s URI from Lookup results.
  3. Display RDF in module.

Select to Edit Single Resource

  1. User selects Edit for a given result.
  2. Ask User to select a Profile to edit the resource with.
  3. Check Permissions to Edit a resource (if a Sinopia resource in their group). i. If true: Ask user to Select Profile & following steps. ii. If false: say they cannot edit, ask if they want to clone.
  4. Call API(s) for Fetch or to dereference for the selected value’s URI from Lookup results.
  5. Map RDF to selected Profile.
  6. Present User the Editor with mapped data pre-populated for the existing resource in the selected Profile.

Select to Edit Shape based on Profile

  1. User selects Edit for a given result.
  2. Ask User to select a Profile to edit the profile-mapped shape with.
  3. Query API(s) for Profile-mapped other resources (through their linking predicates) based on selected value’s URI from Lookup results.
  4. Call API(s) for Fetch or to dereference for all URIs to map to the Profile (or this might be part of 3).
  5. Map RDF to selected Profile.
  6. Check Permissions to Edit resources (if all Sinopia resources in their group). i. If true: Ask user to Select Profile & following steps. ii. If false: say they cannot edit, ask if they want to clone the resources they cannot edit.
  7. Present User the Editor with mapped data pre-populated for the existing resource in the selected Profile.

Select to Clone Single Resource

  1. User selects “clone” for a given result.
  2. Ask User to select a Profile to edit the resource or the profile-mapped shape with.
  3. Check Permissions to Clone a resource (if they have a graph that can work within). i. If true: Ask user to select Profile & following steps. ii. If false: say they need a graph to work within.
  4. Call API(s) for Fetch or to dereference for the selected value’s URI from Lookup results.
  5. Map RDF to selected Profile (or profile subset / resource map hash).
  6. Present User the Editor with mapped data pre-populated for a new resource(s), with sameAs links to Fetch URI.

Sinopia Editor Lookup Interactions (Proposed)

Sinopia Lookup Client:

  1. Configuration management (auth, API settings).
  2. Call API for Lookup with form field type-ahead string.
  3. Use Lookup default response data for URI, label, type?
  4. Save selected & mapped data in client.

Sinopia Lookup Client:

  1. Configuration management (auth, API settings).
  2. Call API for Lookup with form field type-ahead string.
  3. Use Lookup default response data for URI, label, type for type-ahead starter field.
  4. Call API for Fetch above to retrieve RDF.

Sinopia Mapper Client:

  1. Map RDF from Fetch to determined other form fields
  2. Save selected & mapped data in client.

Sinopia Lookup Client:

  1. Configuration management (auth, API settings).
  2. Call API for Lookup with form field string.

Sinopia Lookup Browse Module:

  1. Use Lookup default response data (paginated for all results) for URI, label, type, context to display to user.
  2. If User selects “see more”, display context data. (Fetch for full RDF?)
  3. When User selects value, respond with Lookup default response data for selected value’s URI, label, type.

Sinopia Lookup Client:

  1. Save selected & mapped data in client.

Sinopia Lookup Client:

  1. Configuration management (auth, API settings).
  2. Call API for Lookup with form field string.

Sinopia Lookup Browse Module:

  1. Use Lookup default response data for URI, label, type, context to display to user.
  2. If User selects “see more”, display context data. (Fetch for full RDF?)
  3. When User selects value, respond with Lookup default response data for selected value’s URI, label, type.
  4. Call API for Fetch above to retrieve RDF for selected value’s URI.

Sinopia Mapper Client:

  1. Map RDF from Fetch to determined other form fields.
  2. Save selected & mapped data in client.

Sinopia Lookup Client:

  1. Save selected & mapped data in client.

Sinopia Lookup Client:

  1. Configuration management (auth, API settings).
  2. Call API for Lookup with all strings from indicated fields.

Sinopia Lookup Browse Module:

  1. Use Lookup default response data for URI, label, type, context to display to user.
  2. If User selects “see more”, display context data. (Fetch for full RDF?)
  3. When User selects value, respond with Lookup default response data for selected value’s URI, label, type.

Sinopia Lookup Client:

  1. Save selected & mapped data in client.

Sinopia Lookup Client:

  1. Configuration management (auth, API settings).
  2. Call API for Lookup with all strings from indicated fields.

Sinopia Lookup Browse Module:

  1. Use Lookup default response data for URI, label, type, context to display to user.
  2. If User selects “see more”, display context data. (Fetch for full RDF?)
  3. When User selects value, respond with Lookup default response data for selected value’s URI, label, type.
  4. Call API for Fetch above to retrieve RDF for selected value’s URI.

Sinopia Mapper Client:

  1. Map RDF from Fetch to determined other form fields
  2. Save selected & mapped data in client.

Sinopia Lookup Client:

  1. Save selected & mapped data in client.