ReviewsSignal reviews.signal@1

Generated at from openvibe-contracts v0.53.0 and openvibe-sdk v0.11.0.

Version
1.0.0
Owner
reviews
Visibility
first-party
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/reviews/signal.v1.json

reviews.signal@1: one review signal as OpenVibe.Reviews shows it (server/reviews/service.js signalView): a typed observation (recommendation, tally or rating as the source states it — never review text) extracted from one OpenVibe.Sources item revision and attributed to one entity, with its status (superseded by a newer item revision, withdrawn when the item is removed or reattributed), trust facts and full provenance.

Fields

FieldTypeRequiredDescriptionConstraints
signal_idstringyes
  • pattern ^sig_[0-9A-HJKMNP-TV-Z]{26}$
entity_idstringyes
  • pattern ^ent_[0-9A-HJKMNP-TV-Z]{26}$
canonical_entity_idone ofyes
typeenumyes
  • one of "recommendation", "recommendation_tally", "rating", "rating_aggregate"
source_keystringyes
source_item_idstringyes
  • pattern ^itm_[0-9A-HJKMNP-TV-Z]{26}$
item_revisionintegeryes
  • minimum 1
observed_atstringyesWhen Reviews retrieved the item revision the signal came from.
source_published_atstring | nullyes
canonical_urlstring | nullyes
license_notestring | nullyes
recommendedbooleanrecommendation signals.
positive_countintegerrecommendation_tally signals.
  • minimum 0
total_countinteger
  • minimum 0
rating_valuenumberrating and rating_aggregate signals, on the scale the source states.
rating_bestnumber | null
rating_worstnumber | null
rating_countinteger | null
statusenumyes
  • one of "active", "superseded", "withdrawn"
status_reasonstring | nullyes
status_atstring | nullyes
  • format date-time
superseded_bystring | nullyes
trustobjectyesTrust facts extracted with the signal.
editor_trustobjectyesThe current editor trust facts by key.
editor_trust.aggregateobject
editor_trust.aggregate.valuestringyes
editor_trust.aggregate.notestring | nullyes
editor_trust.aggregate.set_atstring | nullyes
  • format date-time
editor_trust.limitationobject
editor_trust.limitation.valuestringyes
editor_trust.limitation.notestring | nullyes
editor_trust.limitation.set_atstring | nullyes
  • format date-time
editor_trust.verificationobject
editor_trust.verification.valuestringyes
editor_trust.verification.notestring | nullyes
editor_trust.verification.set_atstring | nullyes
  • format date-time
created_atstringyes
  • format date-time
provenanceobjectyes
provenance.source_keystringyes
provenance.source_namestring | nullyes
provenance.source_homepagestring | nullyes
provenance.source_item_idstringyes
provenance.item_revisionintegeryes
provenance.item_kindstring | nullyes
provenance.retrieved_atstringyes
provenance.last_seen_atstring | nullyes
provenance.canonical_urlstring | nullyes
provenance.license_notestring | nullyes
provenance.terms_notestring | nullyes
provenance.item_statestring | nullyes
provenance.item_removed_reasonstring | nullyes

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: rating
{
  "signal_id": "sig_01JAC2S3G4H5J6K7M8N9P0Q1R2",
  "entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
  "canonical_entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
  "type": "rating_aggregate",
  "source_key": "sound-lab",
  "source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
  "item_revision": 2,
  "observed_at": "2026-09-24T08:15:00.000Z",
  "source_published_at": "2026-09-20",
  "canonical_url": "https://soundlab.example/lumen-x2",
  "license_note": null,
  "rating_value": 4.2,
  "rating_best": 5,
  "rating_worst": 1,
  "rating_count": 318,
  "status": "active",
  "status_reason": null,
  "status_at": null,
  "superseded_by": null,
  "trust": {},
  "editor_trust": {},
  "created_at": "2026-09-24T08:15:00.000Z",
  "provenance": {
    "source_key": "sound-lab",
    "source_name": "Sound Lab",
    "source_homepage": "https://soundlab.example",
    "source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
    "item_revision": 2,
    "item_kind": "review_signal",
    "retrieved_at": "2026-09-24T08:15:00.000Z",
    "last_seen_at": "2026-09-24T09:40:12.000Z",
    "canonical_url": "https://soundlab.example/lumen-x2",
    "license_note": null,
    "terms_note": "Ratings may be shown with a link",
    "item_state": "active",
    "item_removed_reason": null
  }
}
Valid: recommendation
{
  "signal_id": "sig_01JAC2S4G4H5J6K7M8N9P0Q1R2",
  "entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
  "canonical_entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
  "type": "recommendation",
  "source_key": "sound-lab",
  "source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
  "item_revision": 2,
  "observed_at": "2026-09-24T08:15:00.000Z",
  "source_published_at": "2026-09-20",
  "canonical_url": "https://soundlab.example/lumen-x2",
  "license_note": null,
  "status": "active",
  "status_reason": null,
  "status_at": null,
  "superseded_by": null,
  "trust": {},
  "editor_trust": {},
  "created_at": "2026-09-24T08:15:00.000Z",
  "provenance": {
    "source_key": "sound-lab",
    "source_name": "Sound Lab",
    "source_homepage": "https://soundlab.example",
    "source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
    "item_revision": 2,
    "item_kind": "review_signal",
    "retrieved_at": "2026-09-24T08:15:00.000Z",
    "last_seen_at": "2026-09-24T09:40:12.000Z",
    "canonical_url": "https://soundlab.example/lumen-x2",
    "license_note": null,
    "terms_note": "Ratings may be shown with a link",
    "item_state": "active",
    "item_removed_reason": null
  },
  "recommended": true
}
Rejected: bad-status
{
  "signal_id": "sig_01JAC2S3G4H5J6K7M8N9P0Q1R2",
  "entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
  "canonical_entity_id": "ent_01JAC1E2N3T4V5W6X7Y8Z9A0B1",
  "type": "rating_aggregate",
  "source_key": "sound-lab",
  "source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
  "item_revision": 2,
  "observed_at": "2026-09-24T08:15:00.000Z",
  "source_published_at": "2026-09-20",
  "canonical_url": "https://soundlab.example/lumen-x2",
  "license_note": null,
  "rating_value": 4.2,
  "rating_best": 5,
  "rating_worst": 1,
  "rating_count": 318,
  "status": "deleted",
  "status_reason": null,
  "status_at": null,
  "superseded_by": null,
  "trust": {},
  "editor_trust": {},
  "created_at": "2026-09-24T08:15:00.000Z",
  "provenance": {
    "source_key": "sound-lab",
    "source_name": "Sound Lab",
    "source_homepage": "https://soundlab.example",
    "source_item_id": "itm_01JAC3T4V5W6X7Y8Z9A0B1C2D3",
    "item_revision": 2,
    "item_kind": "review_signal",
    "retrieved_at": "2026-09-24T08:15:00.000Z",
    "last_seen_at": "2026-09-24T09:40:12.000Z",
    "canonical_url": "https://soundlab.example/lumen-x2",
    "license_note": null,
    "terms_note": "Ratings may be shown with a link",
    "item_state": "active",
    "item_removed_reason": null
  }
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('reviews.signal@1', value);   // { valid, errors: [{ path, message }] }