AI SEARCH
FLOW ALGEBRA — FILE SYSTEM ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/operating-systems/file-system-ontology.html
FLOW FILE_SYSTEM_ONTOLOGY {
META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Operating Systems"
ONTOLOGY = "File System Ontology"
PURPOSE = "Formalise file-system entities, files, directories, paths, metadata, storage allocation, permissions, mounting, caching, journalling and filesystem-state relationships."
LOCALE = "en-GB"
}
ENTITY_TYPES {
FILE_SYSTEM
FILESYSTEM
VIRTUAL_FILE_SYSTEM
FILE
REGULAR_FILE
DIRECTORY
SYMBOLIC_LINK
HARD_LINK
DEVICE_FILE
SOCKET_FILE
PIPE_FILE
FILE_PATH
ABSOLUTE_PATH
RELATIVE_PATH
PATH_COMPONENT
FILE_NAME
DIRECTORY_ENTRY
INODE
FILE_IDENTIFIER
FILE_DESCRIPTOR
OPEN_FILE_DESCRIPTION
METADATA
FILE_SIZE
TIMESTAMP
CREATION_TIME
MODIFICATION_TIME
ACCESS_TIME
OWNER
GROUP
USER
PERMISSION
READ_PERMISSION
WRITE_PERMISSION
EXECUTE_PERMISSION
ACCESS_CONTROL_LIST
MOUNT_POINT
MOUNT
VOLUME
PARTITION
STORAGE_DEVICE
BLOCK_DEVICE
LOGICAL_BLOCK
PHYSICAL_BLOCK
EXTENT
ALLOCATION_UNIT
FREE_SPACE
ALLOCATED_SPACE
SUPERBLOCK
JOURNAL
TRANSACTION
BUFFER
PAGE_CACHE
FILE_CACHE
READ_OPERATION
WRITE_OPERATION
CREATE_OPERATION
DELETE_OPERATION
RENAME_OPERATION
OPEN_OPERATION
CLOSE_OPERATION
FLUSH_OPERATION
SYNC_OPERATION
TRUNCATE_OPERATION
LINK_OPERATION
UNLINK_OPERATION
LOCK
FILE_LOCK
STATE
EVENT
ERROR
CORRUPTION
RECOVERY
CONFIGURATION
OS_VERSION
KERNEL_VERSION
FILESYSTEM_VERSION
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
PART_OF
CONTAINS
HAS_ENTRY
HAS_PATH
HAS_NAME
HAS_INODE
HAS_DESCRIPTOR
HAS_METADATA
HAS_OWNER
HAS_GROUP
HAS_PERMISSION
HAS_ACL
POINTS_TO
LINKS_TO
MOUNTED_AT
MOUNTED_ON
BACKED_BY
MAPS_TO
ALLOCATES
DEALLOCATES
STORES
READS
WRITES
CREATES
DELETES
RENAMES
OPENS
CLOSES
FLUSHES
SYNCHRONISES
TRUNCATES
LOCKS
UNLOCKS
JOURNALS
RECOVERS
HAS_STATE
TRANSITIONS_TO
HAS_CONFIGURATION
HAS_VERSION
DEPENDS_ON
PRECEDES
FOLLOWS
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
FILESYSTEM_SPECIFICATIONS
FILESYSTEM_METADATA
DIRECTORY_ENTRIES
FILE_PATHS
INODE_DATA
FILE_DESCRIPTOR_TABLES
OWNERSHIP_DATA
PERMISSION_DATA
ACL_DATA
MOUNT_TABLES
VOLUME_DATA
BLOCK_ALLOCATION_DATA
FREE_SPACE_DATA
JOURNAL_DATA
FILE_OPERATION_TRACES
CACHE_DATA
ERROR_LOGS
CORRUPTION_RECORDS
RECOVERY_LOGS
CONFIGURATION_DATA
OS_VERSION_DATA
KERNEL_VERSION_DATA
FILESYSTEM_VERSION_DATA
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_FILESYSTEM_IDENTIFIERS
NORMALISE_FILE_IDENTIFIERS
NORMALISE_FILE_PATHS
NORMALISE_PATH_SEPARATORS
NORMALISE_FILE_NAMES
NORMALISE_DIRECTORY_ENTRIES
NORMALISE_INODE_IDENTIFIERS
NORMALISE_FILE_DESCRIPTORS
NORMALISE_PERMISSION_MODELS
NORMALISE_USER_AND_GROUP_IDENTITIES
NORMALISE_STORAGE_UNITS
NORMALISE_TIMESTAMPS
NORMALISE_MOUNT_POINTS
NORMALISE_FILESYSTEM_VERSIONS
NORMALISE_OS_AND_KERNEL_VERSIONS
RESOLVE_FILE_AND_DIRECTORY_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS PATH_RESOLUTION {
FILE_PATH
-> STARTING_DIRECTORY
STARTING_DIRECTORY
-> PATH_COMPONENT_SEQUENCE
PATH_COMPONENT_SEQUENCE
-> DIRECTORY_ENTRY_LOOKUP
DIRECTORY_ENTRY_LOOKUP
-> FILESYSTEM_OBJECT
SYMBOLIC_LINK_IF_PRESENT
-> LINK_TARGET_RESOLUTION
FINAL_OBJECT
-> ACCESS_CHECK
}
PROCESS FILE_OPEN_REASONING {
PROCESS + FILE_PATH + OPEN_MODE
-> PATH_RESOLUTION
PATH_RESOLUTION
-> PERMISSION_CHECK
PERMISSION_CHECK
-> OPEN_FILE_DESCRIPTION
OPEN_FILE_DESCRIPTION
-> FILE_DESCRIPTOR_ALLOCATION
FILE_DESCRIPTOR_ALLOCATION
-> PROCESS_FILE_DESCRIPTOR_TABLE
}
PROCESS FILE_READ_REASONING {
FILE_DESCRIPTOR
-> OPEN_FILE_DESCRIPTION
OPEN_FILE_DESCRIPTION
-> FILE_OFFSET_AND_FILE_OBJECT
FILE_OBJECT
-> PAGE_CACHE_CHECK
CACHE_HIT
-> DATA_RETURN
CACHE_MISS
-> STORAGE_BLOCK_MAPPING
-> STORAGE_READ
-> CACHE_FILL
-> DATA_RETURN
}
PROCESS FILE_WRITE_REASONING {
FILE_DESCRIPTOR + DATA
-> OPEN_FILE_DESCRIPTION
OPEN_FILE_DESCRIPTION
-> FILE_OFFSET_AND_FILE_OBJECT
FILE_OBJECT
-> PERMISSION_AND_SPACE_CHECK
VALID_WRITE
-> CACHE_OR_BUFFER_UPDATE
CACHE_OR_BUFFER_UPDATE
-> DIRTY_STATE
FLUSH_OR_SYNC_POLICY
-> STORAGE_WRITE
-> METADATA_UPDATE
}
PROCESS ALLOCATION_REASONING {
FILE_GROWTH_OR_CREATION
-> SPACE_REQUIREMENT
SPACE_REQUIREMENT
-> FREE_SPACE_SEARCH
FREE_SPACE_SEARCH
-> BLOCK_OR_EXTENT_ALLOCATION
BLOCK_OR_EXTENT_ALLOCATION
-> FILE_MAPPING_UPDATE
FILE_DELETE_OR_TRUNCATION
-> BLOCK_OR_EXTENT_RELEASE
}
PROCESS JOURNAL_REASONING {
FILESYSTEM_CHANGE
-> JOURNAL_TRANSACTION
JOURNAL_TRANSACTION
-> JOURNAL_RECORD
JOURNAL_RECORD
-> COMMIT
COMMIT
-> MAIN_FILESYSTEM_UPDATE
CRASH_OR_INTERRUPTION
-> JOURNAL_REPLAY_OR_RECOVERY
}
PROCESS PERMISSION_REASONING {
SUBJECT + FILESYSTEM_OBJECT + REQUESTED_OPERATION
-> OWNERSHIP_CONTEXT
OWNERSHIP_CONTEXT
-> PERMISSION_AND_ACL_CHECK
PERMISSION_AND_ACL_CHECK
-> ALLOW_OR_DENY
}
PROCESS MOUNT_REASONING {
FILESYSTEM_OR_VOLUME
-> MOUNT_REQUEST
MOUNT_REQUEST
-> FILESYSTEM_VALIDATION
FILESYSTEM_VALIDATION
-> MOUNT_POINT
MOUNT_POINT
-> NAMESPACE_INTEGRATION
UNMOUNT_REQUEST
-> BUSY_AND_FLUSH_CHECK
-> NAMESPACE_REMOVAL
}
PROCESS CORRUPTION_REASONING {
FILESYSTEM_INCONSISTENCY_OR_ERROR
-> CORRUPTION_CANDIDATE
CORRUPTION_CANDIDATE
-> METADATA_AND_DATA_VALIDATION
VALIDATED_CORRUPTION
-> AFFECTED_OBJECTS
AFFECTED_OBJECTS
-> RECOVERY_OR_REPAIR_ACTION
-> CONFIDENCE_SCORE
}
RULES {
IF FILE_PATH_IS_RESOLVED
THEN PRESERVE NAMESPACE_MOUNT_AND_STARTING_DIRECTORY_CONTEXT
IF FILE_DESCRIPTOR_IS_USED
THEN DO_NOT_EQUATE_FILE_DESCRIPTOR_WITH_FILE_OBJECT
IF SYMBOLIC_LINK_IS_ENCOUNTERED
THEN PRESERVE LINK_OBJECT_AND_TARGET_AS_DISTINCT_ENTITIES
IF HARD_LINK_EXISTS
THEN MULTIPLE_DIRECTORY_ENTRIES_MAY_REFERENCE_SAME_FILE_OBJECT
IF FILE_IS_DELETED
THEN DO_NOT_ASSERT_IMMEDIATE_PHYSICAL_DATA_ERASURE
IF WRITE_IS_BUFFERED
THEN DO_NOT_ASSERT_PERSISTENCE_UNTIL_REQUIRED_STORAGE_COMMIT_CONTEXT_EXISTS
IF ACCESS_IS_REQUESTED
THEN CHECK_IDENTITY_PERMISSION_AND_ACL_CONTEXT
IF SEMANTIC_IDENTIFIERS_DIFFER
AND FILESYSTEM_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
FILESYSTEM_VERSION_CERTAINTY,
PATH_RESOLUTION_COMPLETENESS,
METADATA_QUALITY,
MOUNT_CONTEXT_COMPLETENESS,
BLOCK_MAPPING_COMPLETENESS,
JOURNAL_STATE_QUALITY,
OPERATION_TRACE_COMPLETENESS,
PROVENANCE_COMPLETENESS
)
LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}
IF MOUNT_OR_NAMESPACE_CONTEXT_IS_UNKNOWN
THEN REDUCE_PATH_RESOLUTION_CONFIDENCE
IF CACHE_OR_JOURNAL_STATE_IS_UNKNOWN
THEN REDUCE_PERSISTENCE_INFERENCE_CONFIDENCE
IF COMPLETE_OPERATION_TRACE_CONFIRMS_STATE
THEN INCREASE CONFIDENCE_SCORE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
FILESYSTEM_IDENTIFIER,
FILE_OR_INODE_IDENTIFIER,
MOUNT_CONTEXT,
FILESYSTEM_VERSION,
NAMESPACE_CONTEXT
)
IF EQUIVALENCE_KEY(A) == EQUIVALENCE_KEY(B)
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
FILE_PATH != FILE_OBJECT
FILE_NAME != FILE_IDENTITY
FILE_DESCRIPTOR != FILE
DIRECTORY_ENTRY != FILE_CONTENT
SYMBOLIC_LINK != LINK_TARGET
HARD_LINK != DUPLICATE_FILE_CONTENT
DELETE != IMMEDIATE_PHYSICAL_ERASURE
BUFFERED_WRITE != DURABLE_WRITE
CACHE_STATE != PERSISTENT_STORAGE_STATE
LOGICAL_BLOCK != PHYSICAL_BLOCK
MOUNT_POINT != STORAGE_DEVICE
PERMISSION != SUCCESSFUL_ACCESS_WITHOUT_IDENTITY_CONTEXT
JOURNAL_COMMIT_SEMANTICS_ARE_FILESYSTEM_DEPENDENT
FILESYSTEM_BEHAVIOUR_DEPENDS_ON_OS_KERNEL_AND_CONFIGURATION
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_FILESYSTEM_IDENTIFIER
CHECK_FILESYSTEM_VERSION
CHECK_PATH_RESOLUTION
CHECK_FILE_AND_DIRECTORY_IDENTITIES
CHECK_INODE_RELATIONS
CHECK_FILE_DESCRIPTOR_RELATIONS
CHECK_OWNERSHIP_AND_PERMISSIONS
CHECK_ACL_RELATIONS
CHECK_MOUNT_CONTEXT
CHECK_BLOCK_AND_EXTENT_MAPPINGS
CHECK_CACHE_STATE
CHECK_JOURNAL_STATE
CHECK_FILE_OPERATIONS
CHECK_CORRUPTION_AND_RECOVERY_RELATIONS
CHECK_OS_AND_KERNEL_CONTEXT
CHECK_CONFIGURATION
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_FILESYSTEM_ENTITIES
FILE_AND_DIRECTORY_RELATIONS
PATH_RESOLUTION_RELATIONS
DIRECTORY_ENTRY_RELATIONS
INODE_RELATIONS
FILE_DESCRIPTOR_RELATIONS
OWNERSHIP_AND_PERMISSION_RELATIONS
MOUNT_RELATIONS
BLOCK_AND_EXTENT_MAPPINGS
READ_WRITE_RELATIONS
CACHE_AND_BUFFER_RELATIONS
JOURNAL_RELATIONS
FILESYSTEM_STATE_TRANSITIONS
CORRUPTION_HYPOTHESES
RECOVERY_RELATIONS
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON FILESYSTEM_EVENT {
NORMALISE
RESOLVE_FILESYSTEM_OBJECTS
UPDATE_DIRECTORY_ENTRIES
UPDATE_METADATA
UPDATE_BLOCK_MAPPINGS
UPDATE_CACHE_AND_JOURNAL_STATE
UPDATE_MOUNT_CONTEXT
RECOMPUTE_DEPENDENT_INFERENCES
UPDATE_CONFIDENCE
}
ON NEW_OPERATION_ERROR_OR_RECOVERY_DATA {
LINK_EVIDENCE
UPDATE_OPERATION_TRACE
UPDATE_FILESYSTEM_STATE
REASSESS_CORRUPTION_HYPOTHESES
UPDATE_RECOVERY_RELATIONS
UPDATE_CONFIDENCE
RECORD_PROVENANCE
}
ON ONTOLOGY_REVISION {
REMAP_TERMS
CHECK_SEMANTIC_EQUIVALENCE
IDENTIFY_DEPRECATED_TERMS
MIGRATE_RELATIONSHIPS
PRESERVE_PRIOR_VERSION_REFERENCES
}
}
FLOW_HASH {
HASH_INPUT =
CANONICALISE(
ENTITY_TYPES,
RELATIONSHIPS,
RULES,
CONFIDENCE,
SEMANTIC_EQUIVALENCE,
REASONING_CONSTRAINTS,
UPDATE_MODEL
)
FLOW_HASH = SHA256(HASH_INPUT)
}
AI_CONSUMPTION {
INDEX {
ONTOLOGY
ENTITY_TYPES
RELATIONSHIPS
RULES
OUTPUTS
}
RETRIEVE {
BY_FILESYSTEM
BY_FILE
BY_DIRECTORY
BY_PATH
BY_INODE
BY_FILE_DESCRIPTOR
BY_OWNER
BY_PERMISSION
BY_MOUNT
BY_BLOCK
BY_JOURNAL
BY_OPERATION
BY_CORRUPTION
BY_CONFIDENCE
}
REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
TRACE_PATH_RESOLUTION
TRACE_FILE_OPEN
TRACE_FILE_READS
TRACE_FILE_WRITES
ANALYSE_ALLOCATION
ANALYSE_JOURNALLING
ANALYSE_PERMISSIONS
TRACE_MOUNTS
ANALYSE_CORRUPTION_AND_RECOVERY
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}
RESPONSE_POLICY {
DISTINGUISH_PATH_FROM_FILE_OBJECT
DISTINGUISH_FILE_DESCRIPTOR_FROM_FILE
DISTINGUISH_SYMBOLIC_LINK_FROM_TARGET
PRESERVE_NAMESPACE_MOUNT_FILESYSTEM_VERSION_AND_PERMISSION_CONTEXT
DISTINGUISH_BUFFERED_WRITE_FROM_DURABLE_STORAGE
DISTINGUISH_DELETE_FROM_PHYSICAL_ERASURE
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_FILESYSTEM_INFERENCE
}
}
TERMINAL {
RESULT =
VALIDATED(
SEMANTICALLY_NORMALISED(
EVIDENCE_LINKED(
CONFIDENCE_AWARE(
FILE_SYSTEM_KNOWLEDGE
)
)
)
)
}
}
END FLOW
Download Code
Copy to Clipboard