semanticdesk.top file-ingestion and access ontology
type: Ontology
license: https://creativecommons.org/licenses/by/4.0/
version: 0.2.0
label: schema
definition: Canonical data model for the semanticdesk.top personal semantic data fabric: stable Artifacts, per-realm Manifestations, multi-hash similarity, and process-level AccessEvent / Context. See `src/core.yaml` for URI-minting conventions and the project README for the overall ingestion vision.

absoluteParentScanDirectory
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

absoluteScanDirectory
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

accessTime
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
in scheme: core

accessTimestamp
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
in scheme: access

accessType
type: ObjectProperty
range: AccessType
type: NamedIndividual
type: SlotDefinition
in scheme: access

altitude
type: ObjectProperty
range: Float
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

artifact
type: ObjectProperty
range: Artifact
type: NamedIndividual
type: SlotDefinition
definition: The Artifact whose content was identified during this extraction.
in scheme: core

audioAlbum
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioAlbumArtist
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioArtist
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioComment
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioComposer
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioDiscNumber
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioDuration
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioGenre
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioTitle
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioTotalDiscs
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioTotalTracks
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioTrackNumber
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

audioYear
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

byProcess
type: ObjectProperty
range: Process
type: NamedIndividual
type: SlotDefinition
in scheme: access

cameraModel
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

capacity
type: ObjectProperty
range: Integer
type: NamedIndividual
type: SlotDefinition
in scheme: core

contextEndTime
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
in scheme: access

contextName
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: access

contextSignals
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
definition: Opaque or semi-typed hints (e.g. calendar UIDs, WiFi SSID) — refine in a later version.
in scheme: access

contextStartTime
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
in scheme: access

creationTime
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
in scheme: core

documentAuthor
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

documentTitle
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

duringContext
type: ObjectProperty
range: Context
type: NamedIndividual
type: SlotDefinition
in scheme: access

extractedBy
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
broad match: used
definition: Name of the plugin or extractor that produced this record (e.g. exif, id3).
in scheme: core

extractionTime
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
definition: When this extraction record was produced.
in scheme: core

filePath
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

filesystemType
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

gpsCoordinates
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
definition: Raw GPS coordinate string as extracted from EXIF (companion to decimal lat/long slots).
in scheme: metadata

hasHash
type: ObjectProperty
range: Hash
type: NamedIndividual
type: SlotDefinition
in scheme: core

hasManifestation
type: ObjectProperty
range: Manifestation
type: NamedIndividual
type: SlotDefinition
in scheme: core

hasMountPoint
type: ObjectProperty
range: MountPoint
type: NamedIndividual
type: SlotDefinition
in scheme: core

hashAlgorithm
type: ObjectProperty
range: HashAlgorithm
type: NamedIndividual
type: SlotDefinition
in scheme: core

hashRegion
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
definition: Optional region descriptor for partial hashes (e.g. byte range or named section).
in scheme: core

hashScope
type: ObjectProperty
range: HashScope
type: NamedIndividual
type: SlotDefinition
in scheme: core

hashValue
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

id
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
definition: IRI of the resource (entities under sdtopent, schema terms under sdtop).
in scheme: core

inRealm
type: ObjectProperty
range: Realm
type: NamedIndividual
type: SlotDefinition
in scheme: core

latitude
type: ObjectProperty
range: Decimal
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

longitude
type: ObjectProperty
range: Decimal
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

manifestation
type: ObjectProperty
range: Manifestation
type: NamedIndividual
type: SlotDefinition
definition: The Manifestation observed during this extraction.
in scheme: core

manifestationOf
type: ObjectProperty
range: Artifact
type: NamedIndividual
type: SlotDefinition
in scheme: core

modificationTime
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
in scheme: core

mostRecentExtraction
type: ObjectProperty
range: ExtractionEvent
type: NamedIndividual
type: SlotDefinition
in scheme: core

options
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

pageCount
type: ObjectProperty
type: DatatypeProperty
range: Datatype
  intersection of: Error2
  intersection of: Datatype
    with restrictions:
      min inclusive: 0
    on datatype: integer
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

photoDate
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
in scheme: metadata

processCommandLine
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: access

processExecutable
type: ObjectProperty
range: Artifact
type: NamedIndividual
type: SlotDefinition
in scheme: access

processName
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: access

processPid
type: ObjectProperty
range: Integer
type: NamedIndividual
type: SlotDefinition
in scheme: access

realmIdentifier
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
definition: Stable identifier for this Realm (UUID for local devices, hostname for Nextcloud, etc.).
in scheme: core

realmName
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

realmType
type: ObjectProperty
range: RealmType
type: NamedIndividual
type: SlotDefinition
in scheme: core

scanDirectory
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

scanEndTime
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
in scheme: core

scanMode
type: ObjectProperty
range: ScanMode
type: NamedIndividual
type: SlotDefinition
in scheme: core

scanRoot
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

scanRun
type: ObjectProperty
range: ScanRun
type: NamedIndividual
type: SlotDefinition
in scheme: core

scanStartTime
type: ObjectProperty
range: Datetime
type: NamedIndividual
type: SlotDefinition
in scheme: core

scannerHost
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

scannerVersion
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

sizeBytes
type: ObjectProperty
type: DatatypeProperty
range: Datatype
  intersection of: Error1
  intersection of: Datatype
    with restrictions:
      min inclusive: 0
    on datatype: integer
type: NamedIndividual
type: SlotDefinition
in scheme: core

source
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

target
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

touched
type: ObjectProperty
range: Manifestation
type: NamedIndividual
type: SlotDefinition
definition: The Manifestation (path + realm) the kernel event refers to.
in scheme: access

vendorModel
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
in scheme: core

wktGeometry
type: ObjectProperty
range: String
type: NamedIndividual
type: SlotDefinition
definition: GeoSPARQL WKT literal; typed geo:wktLiteral in RDF.
in scheme: metadata

AccessEvent
type: Class
subclass of: Restriction
  all values from: Datetime
  on property: accessTimestamp
subclass of: Restriction
  all values from: AccessType
  on property: accessType
subclass of: Restriction
  all values from: Process
  on property: byProcess
subclass of: Restriction
  all values from: Context
  on property: duringContext
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  all values from: Manifestation
  on property: touched
subclass of: Restriction
  min cardinality: 0
  on property: accessTimestamp
subclass of: Restriction
  min cardinality: 0
  on property: accessType
subclass of: Restriction
  min cardinality: 0
  on property: byProcess
subclass of: Restriction
  min cardinality: 0
  on property: duringContext
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: touched
subclass of: Restriction
  max cardinality: 1
  on property: accessTimestamp
subclass of: Restriction
  max cardinality: 1
  on property: accessType
subclass of: Restriction
  max cardinality: 1
  on property: byProcess
subclass of: Restriction
  max cardinality: 1
  on property: duringContext
subclass of: Restriction
  max cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: touched
type: NamedIndividual
type: ClassDefinition
definition: A single kernel-observed (or similar) access to a Manifestation.
in scheme: access

Artifact
type: Class
subclass of: AudioMetadata
subclass of: DocumentMetadata
subclass of: ImageMetadata
subclass of: Restriction
  all values from: Hash
  on property: hasHash
subclass of: Restriction
  all values from: Manifestation
  on property: hasManifestation
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  all values from: ExtractionEvent
  on property: mostRecentExtraction
subclass of: Restriction
  min cardinality: 0
  on property: hasHash
subclass of: Restriction
  min cardinality: 0
  on property: hasManifestation
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: mostRecentExtraction
subclass of: Restriction
  max cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: mostRecentExtraction
type: NamedIndividual
type: ClassDefinition
definition: Stable identity of a content payload, independent of any specific storage location or realm. An Artifact is identified primarily by its content hash; all paths it appears at are Manifestations. Media metadata (EXIF, ID3, etc.) is carried as mixin slots on the Artifact.
in scheme: core

AudioMetadata
type: Class
subclass of: Restriction
  all values from: String
  on property: audioAlbum
subclass of: Restriction
  all values from: String
  on property: audioAlbumArtist
subclass of: Restriction
  all values from: String
  on property: audioArtist
subclass of: Restriction
  all values from: String
  on property: audioComment
subclass of: Restriction
  all values from: String
  on property: audioComposer
subclass of: Restriction
  all values from: String
  on property: audioDiscNumber
subclass of: Restriction
  all values from: String
  on property: audioDuration
subclass of: Restriction
  all values from: String
  on property: audioGenre
subclass of: Restriction
  all values from: String
  on property: audioTitle
subclass of: Restriction
  all values from: String
  on property: audioTotalDiscs
subclass of: Restriction
  all values from: String
  on property: audioTotalTracks
subclass of: Restriction
  all values from: String
  on property: audioTrackNumber
subclass of: Restriction
  all values from: String
  on property: audioYear
subclass of: Restriction
  min cardinality: 0
  on property: audioAlbum
subclass of: Restriction
  min cardinality: 0
  on property: audioAlbumArtist
subclass of: Restriction
  min cardinality: 0
  on property: audioArtist
subclass of: Restriction
  min cardinality: 0
  on property: audioComment
subclass of: Restriction
  min cardinality: 0
  on property: audioComposer
subclass of: Restriction
  min cardinality: 0
  on property: audioDiscNumber
subclass of: Restriction
  min cardinality: 0
  on property: audioDuration
subclass of: Restriction
  min cardinality: 0
  on property: audioGenre
subclass of: Restriction
  min cardinality: 0
  on property: audioTitle
subclass of: Restriction
  min cardinality: 0
  on property: audioTotalDiscs
subclass of: Restriction
  min cardinality: 0
  on property: audioTotalTracks
subclass of: Restriction
  min cardinality: 0
  on property: audioTrackNumber
subclass of: Restriction
  min cardinality: 0
  on property: audioYear
subclass of: Restriction
  max cardinality: 1
  on property: audioAlbum
subclass of: Restriction
  max cardinality: 1
  on property: audioAlbumArtist
subclass of: Restriction
  max cardinality: 1
  on property: audioArtist
subclass of: Restriction
  max cardinality: 1
  on property: audioComment
subclass of: Restriction
  max cardinality: 1
  on property: audioComposer
subclass of: Restriction
  max cardinality: 1
  on property: audioDiscNumber
subclass of: Restriction
  max cardinality: 1
  on property: audioDuration
subclass of: Restriction
  max cardinality: 1
  on property: audioGenre
subclass of: Restriction
  max cardinality: 1
  on property: audioTitle
subclass of: Restriction
  max cardinality: 1
  on property: audioTotalDiscs
subclass of: Restriction
  max cardinality: 1
  on property: audioTotalTracks
subclass of: Restriction
  max cardinality: 1
  on property: audioTrackNumber
subclass of: Restriction
  max cardinality: 1
  on property: audioYear
type: NamedIndividual
type: ClassDefinition
definition: ID3 and related audio tag fields. Applied as a mixin on Artifact.
in scheme: metadata
narrow match: MusicPiece

Context
type: Class
subclass of: GeoLocated
subclass of: Restriction
  all values from: Datetime
  on property: contextEndTime
subclass of: Restriction
  all values from: String
  on property: contextName
subclass of: Restriction
  all values from: String
  on property: contextSignals
subclass of: Restriction
  all values from: Datetime
  on property: contextStartTime
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: contextEndTime
subclass of: Restriction
  min cardinality: 0
  on property: contextName
subclass of: Restriction
  min cardinality: 0
  on property: contextSignals
subclass of: Restriction
  min cardinality: 0
  on property: contextStartTime
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: contextEndTime
subclass of: Restriction
  max cardinality: 1
  on property: contextName
subclass of: Restriction
  max cardinality: 1
  on property: contextStartTime
subclass of: Restriction
  max cardinality: 1
  on property: id
type: NamedIndividual
type: ClassDefinition
definition: Inferred or calendar-bound context (rehearsal, travel, etc.) — time + optional geo.
in scheme: access

DocumentMetadata
type: Class
subclass of: Restriction
  all values from: String
  on property: documentAuthor
subclass of: Restriction
  all values from: String
  on property: documentTitle
subclass of: Restriction
  min cardinality: 0
  on property: documentAuthor
subclass of: Restriction
  min cardinality: 0
  on property: documentTitle
subclass of: Restriction
  min cardinality: 0
  on property: pageCount
subclass of: Restriction
  max cardinality: 1
  on property: documentAuthor
subclass of: Restriction
  max cardinality: 1
  on property: documentTitle
subclass of: Restriction
  max cardinality: 1
  on property: pageCount
subclass of: Restriction
  all values from: Datatype
    intersection of: Error3
    intersection of: Datatype
      with restrictions:
        min inclusive: 0
      on datatype: integer
  on property: pageCount
type: NamedIndividual
type: ClassDefinition
definition: Document metadata for PDF and office formats (Grobid, pdfminer, etc.). Minimal set; extended by dedicated extraction plugins.
in scheme: metadata

ExtractionEvent
type: Class
subclass of: Restriction
  all values from: Artifact
  on property: artifact
subclass of: Restriction
  all values from: String
  on property: extractedBy
subclass of: Restriction
  all values from: Datetime
  on property: extractionTime
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  all values from: Manifestation
  on property: manifestation
subclass of: Restriction
  all values from: ScanRun
  on property: scanRun
subclass of: Restriction
  min cardinality: 0
  on property: artifact
subclass of: Restriction
  min cardinality: 0
  on property: extractedBy
subclass of: Restriction
  min cardinality: 0
  on property: extractionTime
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: manifestation
subclass of: Restriction
  min cardinality: 0
  on property: scanRun
subclass of: Restriction
  max cardinality: 1
  on property: artifact
subclass of: Restriction
  max cardinality: 1
  on property: extractedBy
subclass of: Restriction
  max cardinality: 1
  on property: extractionTime
subclass of: Restriction
  max cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: manifestation
subclass of: Restriction
  max cardinality: 1
  on property: scanRun
type: NamedIndividual
type: ClassDefinition
definition: Join record capturing which Manifestation was observed, which Artifact content was identified, and which ScanRun produced the record. One ExtractionEvent is created per Manifestation per ScanRun; the most recent is linked from the Artifact via `mostRecentExtraction`.
in scheme: core

GeoLocated
type: Class
subclass of: Restriction
  all values from: Float
  on property: altitude
subclass of: Restriction
  all values from: Decimal
  on property: latitude
subclass of: Restriction
  all values from: Decimal
  on property: longitude
subclass of: Restriction
  all values from: String
  on property: wktGeometry
subclass of: Restriction
  min cardinality: 0
  on property: altitude
subclass of: Restriction
  min cardinality: 0
  on property: latitude
subclass of: Restriction
  min cardinality: 0
  on property: longitude
subclass of: Restriction
  min cardinality: 0
  on property: wktGeometry
subclass of: Restriction
  max cardinality: 1
  on property: altitude
subclass of: Restriction
  max cardinality: 1
  on property: latitude
subclass of: Restriction
  max cardinality: 1
  on property: longitude
subclass of: Restriction
  max cardinality: 1
  on property: wktGeometry
type: NamedIndividual
type: ClassDefinition
definition: WGS84 decimal coordinates with optional GeoSPARQL WKT geometry.
in scheme: metadata
narrow match: SpatialThing

Hash
type: Class
subclass of: Restriction
  all values from: HashAlgorithm
  on property: hashAlgorithm
subclass of: Restriction
  all values from: String
  on property: hashRegion
subclass of: Restriction
  all values from: HashScope
  on property: hashScope
subclass of: Restriction
  all values from: String
  on property: hashValue
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: hashAlgorithm
subclass of: Restriction
  min cardinality: 0
  on property: hashRegion
subclass of: Restriction
  min cardinality: 0
  on property: hashScope
subclass of: Restriction
  min cardinality: 0
  on property: hashValue
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: hashAlgorithm
subclass of: Restriction
  max cardinality: 1
  on property: hashRegion
subclass of: Restriction
  max cardinality: 1
  on property: hashScope
subclass of: Restriction
  max cardinality: 1
  on property: hashValue
subclass of: Restriction
  max cardinality: 1
  on property: id
type: NamedIndividual
type: ClassDefinition
definition: A single content fingerprint or similarity vector produced by one algorithm over one scope of a file's bytestream. An Artifact may carry multiple Hash nodes (e.g. SHA-256 for exact identity, pHash for perceptual similarity, BLAKE3 for content-only comparison).
in scheme: core

ImageMetadata
type: Class
subclass of: GeoLocated
subclass of: Restriction
  all values from: String
  on property: cameraModel
subclass of: Restriction
  all values from: String
  on property: gpsCoordinates
subclass of: Restriction
  all values from: Datetime
  on property: photoDate
subclass of: Restriction
  min cardinality: 0
  on property: cameraModel
subclass of: Restriction
  min cardinality: 0
  on property: gpsCoordinates
subclass of: Restriction
  min cardinality: 0
  on property: photoDate
subclass of: Restriction
  max cardinality: 1
  on property: cameraModel
subclass of: Restriction
  max cardinality: 1
  on property: gpsCoordinates
subclass of: Restriction
  max cardinality: 1
  on property: photoDate
type: NamedIndividual
type: ClassDefinition
definition: EXIF/XMP image metadata fields. Applied as a mixin on Artifact.
in scheme: metadata
narrow match: Image
narrow match: Photo

Manifestation
type: Class
subclass of: Restriction
  all values from: Datetime
  on property: accessTime
subclass of: Restriction
  all values from: Datetime
  on property: creationTime
subclass of: Restriction
  all values from: String
  on property: filePath
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  all values from: Realm
  on property: inRealm
subclass of: Restriction
  all values from: Artifact
  on property: manifestationOf
subclass of: Restriction
  all values from: Datetime
  on property: modificationTime
subclass of: Restriction
  min cardinality: 0
  on property: accessTime
subclass of: Restriction
  min cardinality: 0
  on property: creationTime
subclass of: Restriction
  min cardinality: 0
  on property: filePath
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: inRealm
subclass of: Restriction
  min cardinality: 0
  on property: manifestationOf
subclass of: Restriction
  min cardinality: 0
  on property: modificationTime
subclass of: Restriction
  min cardinality: 0
  on property: sizeBytes
subclass of: Restriction
  max cardinality: 1
  on property: accessTime
subclass of: Restriction
  max cardinality: 1
  on property: creationTime
subclass of: Restriction
  max cardinality: 1
  on property: filePath
subclass of: Restriction
  max cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: inRealm
subclass of: Restriction
  max cardinality: 1
  on property: manifestationOf
subclass of: Restriction
  max cardinality: 1
  on property: modificationTime
subclass of: Restriction
  max cardinality: 1
  on property: sizeBytes
subclass of: Restriction
  all values from: Datatype
    intersection of: Error4
    intersection of: Datatype
      with restrictions:
        min inclusive: 0
      on datatype: integer
  on property: sizeBytes
type: NamedIndividual
type: ClassDefinition
definition: One occurrence of an Artifact at a specific path within a specific Realm. A single Artifact may have Manifestations on a local device, a NAS, and a cloud volume simultaneously.
in scheme: core

MountPoint
type: Class
subclass of: Restriction
  all values from: Integer
  on property: capacity
subclass of: Restriction
  all values from: String
  on property: filesystemType
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  all values from: String
  on property: options
subclass of: Restriction
  all values from: String
  on property: source
subclass of: Restriction
  all values from: String
  on property: target
subclass of: Restriction
  all values from: String
  on property: vendorModel
subclass of: Restriction
  min cardinality: 0
  on property: capacity
subclass of: Restriction
  min cardinality: 0
  on property: filesystemType
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: options
subclass of: Restriction
  min cardinality: 0
  on property: source
subclass of: Restriction
  min cardinality: 0
  on property: target
subclass of: Restriction
  min cardinality: 0
  on property: vendorModel
subclass of: Restriction
  max cardinality: 1
  on property: capacity
subclass of: Restriction
  max cardinality: 1
  on property: filesystemType
subclass of: Restriction
  max cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: options
subclass of: Restriction
  max cardinality: 1
  on property: source
subclass of: Restriction
  max cardinality: 1
  on property: target
subclass of: Restriction
  max cardinality: 1
  on property: vendorModel
type: NamedIndividual
type: ClassDefinition
definition: OS-level mount point belonging to a Realm.
in scheme: core

Process
type: Class
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  all values from: String
  on property: processCommandLine
subclass of: Restriction
  all values from: Artifact
  on property: processExecutable
subclass of: Restriction
  all values from: String
  on property: processName
subclass of: Restriction
  all values from: Integer
  on property: processPid
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: processCommandLine
subclass of: Restriction
  min cardinality: 0
  on property: processExecutable
subclass of: Restriction
  min cardinality: 0
  on property: processName
subclass of: Restriction
  min cardinality: 0
  on property: processPid
subclass of: Restriction
  max cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: processCommandLine
subclass of: Restriction
  max cardinality: 1
  on property: processExecutable
subclass of: Restriction
  max cardinality: 1
  on property: processName
subclass of: Restriction
  max cardinality: 1
  on property: processPid
type: NamedIndividual
type: ClassDefinition
definition: OS process that performed an access. `processExecutable` may point at an `Artifact` for the on-disk binary.
in scheme: access

Realm
type: Class
subclass of: Restriction
  all values from: MountPoint
  on property: hasMountPoint
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  all values from: String
  on property: realmIdentifier
subclass of: Restriction
  all values from: String
  on property: realmName
subclass of: Restriction
  all values from: RealmType
  on property: realmType
subclass of: Restriction
  min cardinality: 0
  on property: hasMountPoint
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: realmIdentifier
subclass of: Restriction
  min cardinality: 0
  on property: realmName
subclass of: Restriction
  min cardinality: 0
  on property: realmType
subclass of: Restriction
  max cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: realmIdentifier
subclass of: Restriction
  max cardinality: 1
  on property: realmName
subclass of: Restriction
  max cardinality: 1
  on property: realmType
type: NamedIndividual
type: ClassDefinition
definition: Logical access or deployment boundary that groups one or more mount points under a single administrative identity (e.g. a local workstation, a NAS, a Nextcloud instance).
in scheme: core

ScanRun
type: Class
subclass of: Restriction
  all values from: String
  on property: absoluteParentScanDirectory
subclass of: Restriction
  all values from: String
  on property: absoluteScanDirectory
subclass of: Restriction
  all values from: String
  on property: id
subclass of: Restriction
  all values from: String
  on property: scanDirectory
subclass of: Restriction
  all values from: Datetime
  on property: scanEndTime
subclass of: Restriction
  all values from: ScanMode
  on property: scanMode
subclass of: Restriction
  all values from: String
  on property: scanRoot
subclass of: Restriction
  all values from: Datetime
  on property: scanStartTime
subclass of: Restriction
  all values from: String
  on property: scannerHost
subclass of: Restriction
  all values from: String
  on property: scannerVersion
subclass of: Restriction
  min cardinality: 0
  on property: absoluteParentScanDirectory
subclass of: Restriction
  min cardinality: 0
  on property: absoluteScanDirectory
subclass of: Restriction
  min cardinality: 1
  on property: id
subclass of: Restriction
  min cardinality: 0
  on property: scanDirectory
subclass of: Restriction
  min cardinality: 0
  on property: scanEndTime
subclass of: Restriction
  min cardinality: 0
  on property: scanMode
subclass of: Restriction
  min cardinality: 0
  on property: scanRoot
subclass of: Restriction
  min cardinality: 0
  on property: scanStartTime
subclass of: Restriction
  min cardinality: 0
  on property: scannerHost
subclass of: Restriction
  min cardinality: 0
  on property: scannerVersion
subclass of: Restriction
  max cardinality: 1
  on property: absoluteParentScanDirectory
subclass of: Restriction
  max cardinality: 1
  on property: absoluteScanDirectory
subclass of: Restriction
  max cardinality: 1
  on property: id
subclass of: Restriction
  max cardinality: 1
  on property: scanEndTime
subclass of: Restriction
  max cardinality: 1
  on property: scanMode
subclass of: Restriction
  max cardinality: 1
  on property: scanRoot
subclass of: Restriction
  max cardinality: 1
  on property: scanStartTime
subclass of: Restriction
  max cardinality: 1
  on property: scannerHost
subclass of: Restriction
  max cardinality: 1
  on property: scannerVersion
type: NamedIndividual
type: ClassDefinition
definition: A single invocation of the ingestion engine over a root set of paths. Carries timing, mode (oneshot / daemon-scheduled / daemon-signaled), and scope information.
in scheme: core

AccessType
type: Class
equivalent class: Class
  union of: Delete
  union of: Map
  union of: Move
  union of: Open
  union of: Other
  union of: Read
  union of: Write
type: NamedIndividual
type: EnumDefinition
definition: eBPF or audit rough classification of a process touching a file.
in scheme: types
permissible values: Delete
permissible values: Map
permissible values: Move
permissible values: Open
permissible values: Other
permissible values: Read
permissible values: Write

Delete
type: Class
subclass of: AccessType
type: NamedIndividual
type: AccessType

Map
type: Class
subclass of: AccessType
type: NamedIndividual
type: AccessType

Move
type: Class
subclass of: AccessType
type: NamedIndividual
type: AccessType

Open
type: Class
subclass of: AccessType
type: NamedIndividual
type: AccessType

Other
type: Class
subclass of: AccessType
type: NamedIndividual
type: AccessType

Read
type: Class
subclass of: AccessType
type: NamedIndividual
type: AccessType

Write
type: Class
subclass of: AccessType
type: NamedIndividual
type: AccessType

HashAlgorithm
type: Class
equivalent class: Class
  union of: BLAKE3
  union of: CRC32
  union of: MD5
  union of: SHA256
  union of: XXH3
  union of: dHash
  union of: pHash
type: NamedIndividual
type: EnumDefinition
definition: Content identity or similarity function used for a Hash node.
in scheme: types
permissible values: BLAKE3
permissible values: CRC32
permissible values: MD5
permissible values: SHA256
permissible values: XXH3
permissible values: dHash
permissible values: pHash

BLAKE3
type: Class
subclass of: HashAlgorithm
type: NamedIndividual
type: HashAlgorithm

CRC32
type: Class
subclass of: HashAlgorithm
type: NamedIndividual
type: HashAlgorithm

MD5
type: Class
subclass of: HashAlgorithm
type: NamedIndividual
type: HashAlgorithm

SHA256
type: Class
subclass of: HashAlgorithm
type: NamedIndividual
type: HashAlgorithm

XXH3
type: Class
subclass of: HashAlgorithm
type: NamedIndividual
type: HashAlgorithm

dHash
type: Class
subclass of: HashAlgorithm
type: NamedIndividual
type: HashAlgorithm

pHash
type: Class
subclass of: HashAlgorithm
type: NamedIndividual
type: HashAlgorithm

HashScope
type: Class
equivalent class: Class
  union of: ContentOnly
  union of: Full
  union of: Partial
  union of: Perceptual
type: NamedIndividual
type: EnumDefinition
definition: What part of a file a hash is computed over; enables multi-hash per Artifact.
in scheme: types
permissible values: ContentOnly
permissible values: Full
permissible values: Partial
permissible values: Perceptual

ContentOnly
type: Class
subclass of: HashScope
type: NamedIndividual
type: HashScope
definition: e.g. pixel buffer without EXIF; PDF text/structure without embedded annotations.

Full
type: Class
subclass of: HashScope
type: NamedIndividual
type: HashScope
definition: Entire bytestream.

Partial
type: Class
subclass of: HashScope
type: NamedIndividual
type: HashScope
definition: e.g. representative region; requires hashRegion for disambiguation.

Perceptual
type: Class
subclass of: HashScope
type: NamedIndividual
type: HashScope
definition: pHash/dHash style near-duplicate (non-cryptographic).

RealmType
type: Class
equivalent class: Class
  union of: LocalDevice
  union of: NAS
  union of: NextcloudInstance
  union of: Other
  union of: RemovableMedia
  union of: TeamFolder
type: NamedIndividual
type: EnumDefinition
definition: Logical sharing or deployment boundary; drives federation and backup rules.
in scheme: types
permissible values: LocalDevice
permissible values: NAS
permissible values: NextcloudInstance
permissible values: Other
permissible values: RemovableMedia
permissible values: TeamFolder

LocalDevice
type: Class
subclass of: RealmType
type: NamedIndividual
type: RealmType

NAS
type: Class
subclass of: RealmType
type: NamedIndividual
type: RealmType

NextcloudInstance
type: Class
subclass of: RealmType
type: NamedIndividual
type: RealmType

Other
type: Class
subclass of: RealmType
type: NamedIndividual
type: RealmType

RemovableMedia
type: Class
subclass of: RealmType
type: NamedIndividual
type: RealmType

TeamFolder
type: Class
subclass of: RealmType
type: NamedIndividual
type: RealmType

ScanMode
type: Class
equivalent class: Class
  union of: DaemonScheduled
  union of: DaemonSignaled
  union of: Manual
  union of: Oneshot
type: NamedIndividual
type: EnumDefinition
definition: How a ScanRun was produced (ingestion engine mode).
in scheme: types
permissible values: DaemonScheduled
permissible values: DaemonSignaled
permissible values: Manual
permissible values: Oneshot

DaemonScheduled
type: Class
subclass of: ScanMode
type: NamedIndividual
type: ScanMode

DaemonSignaled
type: Class
subclass of: ScanMode
type: NamedIndividual
type: ScanMode

Manual
type: Class
subclass of: ScanMode
type: NamedIndividual
type: ScanMode

Oneshot
type: Class
subclass of: ScanMode
type: NamedIndividual
type: ScanMode