Status
Draft v0.1 (Open SGI MVM)
Purpose
EdgePERSignal defines the minimal OAII‑conformant Signal subclass required to carry edge‑primary sensor observations into the Personal Event Recognition (PER) pipeline.
An EdgePERSignal is:
- produced by an EdgePERSensor
- hosted and governed by an EdgePERDevice
- interpreted by Events, Policies, and Agents across Worlds
The signal itself makes no claims about user identity, intent, or benefit. It is a fact‑bearing, policy‑governed observation.
Scope and Non‑Goals
In Scope
- Signal identity and provenance
- Temporal extent and capture metadata
- Sensor binding and modality
- Privacy, access, and retention attributes
- Confidence and quality indicators
Out of Scope
- Event semantics (handled by Event subclasses)
- User or benefit interpretation
- Cloud transport
- Vendor‑specific payload schemas
Role in the Open SGI MVM Pipeline
EdgePERSignal is the bridge between physical sensing and contextual interpretation.
Pipeline position:
- EdgePERSensor captures a reading
- EdgePERSignal packages the observation
- Subject–Object Event interprets the signal
- PrimaryUser Event personalizes it
- PERPolicy evaluates its impact
EdgePERSignal preserves what was sensed, when, and how reliable it was, without embedding higher‑level meaning.
Required Attributes
Identity and Binding
signal_idworld_refdevice_refsensor_ref
Temporal
capture_start_time(EpochMillis)capture_end_time(EpochMillis)ingest_time(EpochMillis)
Modality and Domain
sensor_typeobserved_domainvalue_domain
Governance
privacy_classaccess_classretention_policy_refredaction_policy_ref
Quality
confidence(0–1)quality_flags(enumerated)
Payload
raw_payload(optional, may be redacted)summary_payload(preferred for PER)
Notifications
EdgePERSignal MAY emit notifications when:
- a signal is created
- a signal is redacted
- a signal is retained or expired
All notifications are policy‑mediated.
Methods
CreateSignal(params) -> resultSummarizeSignal(params) -> resultRedactSignal(params) -> resultGetSignal(params) -> resultExpireSignal(params) -> result
ASN.1 Specification
OpenSGI-PER-Signal-MVM DEFINITIONS AUTOMATIC TAGS ::= BEGINUUID ::= OCTET STRING (SIZE(16))IA5Text ::= IA5StringEpochMillis ::= INTEGER (0..MAX)VersionString ::= IA5String (SIZE(1..64))PrivacyClass ::= ENUMERATED { public(0), local(1), sensitive(2), restricted(3) }AccessClass ::= ENUMERATED { readOnly(0), readWrite(1), writeOnce(2) }StatusCode ::= ENUMERATED { success(0), partial(1), fail(2) }ResultSet ::= SEQUENCE { status StatusCode, resultVersion VersionString, errorCode IA5Text OPTIONAL, errorDetail IA5Text OPTIONAL, result OCTET STRING OPTIONAL}ParameterSet ::= SEQUENCE { paramsVersion VersionString, params OCTET STRING}WorldRef ::= SEQUENCE { worldId UUID, worldRole IA5Text OPTIONAL }PolicyRef ::= SEQUENCE { policyId UUID, policyType IA5Text OPTIONAL }SensorType ::= ENUMERATED { motion(0), contact(1), deviceHealth(2), audio(3), video(4), other(255) }QualityFlag ::= ENUMERATED { ok(0), noisy(1), partial(2), truncated(3), stale(4) }QualityFlagSet ::= SEQUENCE (SIZE(0..MAX)) OF QualityFlagObservedDomain ::= SEQUENCE { domainName IA5Text, domainSpec OCTET STRING OPTIONAL }ValueDomain ::= SEQUENCE { domainSpec OCTET STRING }PERSignal ::= SEQUENCE { signalId UUID, worldRef WorldRef, deviceId UUID, sensorId UUID, sensorType SensorType, observedDomain ObservedDomain, valueDomain ValueDomain, captureStartTime EpochMillis, captureEndTime EpochMillis, ingestTime EpochMillis, privacyClass PrivacyClass, accessClass AccessClass, retentionPolicyRef PolicyRef OPTIONAL, redactionPolicyRef PolicyRef OPTIONAL, confidence REAL (0.0..1.0), qualityFlags QualityFlagSet OPTIONAL, rawPayload OCTET STRING OPTIONAL, summaryPayload OCTET STRING OPTIONAL}-- OperationsCreateSignalRequest ::= SEQUENCE { signal PERSignal, params ParameterSet OPTIONAL }CreateSignalResponse ::= SEQUENCE { result ResultSet, signalId UUID OPTIONAL }GetSignalRequest ::= SEQUENCE { signalId UUID, params ParameterSet OPTIONAL }GetSignalResponse ::= SEQUENCE { result ResultSet, signal PERSignal OPTIONAL }RedactSignalRequest ::= SEQUENCE { signalId UUID, params ParameterSet OPTIONAL }RedactSignalResponse ::= SEQUENCE { result ResultSet }ExpireSignalRequest ::= SEQUENCE { signalId UUID, params ParameterSet OPTIONAL }ExpireSignalResponse ::= SEQUENCE { result ResultSet }END
Implementation Notes
- The MVM SHOULD prefer
summaryPayloadfor all event recognition and logging. rawPayloadmay be retained only if permitted by retention and redaction policies.- Signals SHOULD be immutable after creation except for policy‑driven redaction or expiration.
Next Specification
Spec 4: SubjectObjectEvent (Event Subclass)
- defines how PERSignals become world‑specific events
- introduces T / ~T interpretation in the Subject–Object World

Leave a comment