@base . @prefix owl: . @prefix rdfs: . @prefix xsd: . @prefix dcterms: . @prefix dcat: . @prefix schema: . @prefix vann: . @prefix sflo: . a owl:Ontology ; dcterms:title "Semantic Flow Config Ontology" ; dcterms:description "Vocabulary for Semantic Flow configuration resources, authored config attachment, resolver policy, derived resolved-config records, and resource-page presentation policy. Content composition terms such as page regions, page sources, and direct target/current-byte locators remain in the core ontology." ; dcterms:creator ; dcat:hasVersion ; dcterms:modified "2026-05-27"^^xsd:date ; owl:versionIRI ; vann:preferredNamespacePrefix "sfcfg" ; vann:preferredNamespaceUri "https://semantic-flow.github.io/sflo/config/" . a owl:Ontology, sflo:HistoricalState ; dcat:isVersionOf ; dcterms:issued "2026-08-23"^^xsd:date ; owl:versionInfo "0.5.0" ; schema:contentUrl ; sflo:hasManifestation . a sflo:ArtifactManifestation ; dcat:downloadURL ; sflo:locatedFileForManifestation . a sflo:LocatedFile . ################################################################# ################################################################# # Generic configuration model ################################################################# ################################################################# a rdfs:Class ; rdfs:label "Config" ; rdfs:comment "An RDF configuration description used to control or parameterize Semantic Flow behavior. A Config may be attached directly to a resource or realized as a separately managed ConfigArtifact. This ontology intentionally does not define a single global merge order, regex-based bulk template matching, or boolean policy switches for history and page generation." . a rdfs:Class ; rdfs:subClassOf , sflo:DigitalArtifact, sflo:RdfDocument ; rdfs:label "Config artifact" ; rdfs:comment "A named reusable Config that is also a mesh-manageable DigitalArtifact RdfDocument. Use when a config needs stable identity, revision history, working files, dereferenceability, or reuse across multiple configured resources. Reuse does not create a separate precedence layer; authority comes from the attachment point that uses the artifact." . a rdfs:Class ; rdfs:subClassOf sflo:ArtifactResolutionSpec ; rdfs:label "Config source" ; rdfs:comment "An artifact-resolution spec for config bytes or a ConfigArtifact that should be resolved and parsed as authored Semantic Flow config. Attachment properties carry the config role and scope; a ConfigSource is provenance/resolution input and must not by itself promote config to a broader scope or a distinct reusable-config precedence layer." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "Application config" ; rdfs:comment "A Config describing application-level behavior defaults. Concrete implementation defaults, such as Weave's default profile, should be named config artifacts or bundles that use this class rather than implementation-specific default-config classes." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has config resolution config" ; rdfs:comment "Links a Config to the ConfigResolutionConfig it includes, requests, or exposes. Portable uses remain subject to trusted bootstrap resolver policy and cannot expand their own trust boundary." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "Mesh config" ; rdfs:comment "A portable Config intended to travel with a Semantic Mesh, conventionally under mesh-owned config support such as _mesh/_config. MeshConfig may describe expected mesh behavior, config attachments, and local project layout, but it is not by itself host trust policy and must not grant arbitrary host access outside the active runtime trust boundary." . a rdfs:Class ; rdfs:label "Publication profile" ; rdfs:comment "A controlled vocabulary of static-publication host profiles that can affect portable publication-surface files and validation expectations. Request-time values such as auto are resolution modes, not persisted PublicationProfile values; MeshConfig should record the resolved concrete profile such as none or GitHub Pages." . a ; rdfs:label "none" ; rdfs:comment "No static-publication host profile is selected for the mesh." . a ; rdfs:label "GitHub Pages" ; rdfs:comment "The mesh publication surface targets GitHub Pages behavior, including host controls such as .nojekyll." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has publication profile" ; rdfs:comment "Associates a Config, especially MeshConfig, with the resolved static-publication host profile for the mesh. Persist the concrete resolved profile rather than a request-time auto value so later operations do not need to re-infer host behavior from meshBase." . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; owl:inverseOf ; rdfs:label "has config" ; rdfs:comment "Associates a recognized config-bearing scope, such as a SemanticMesh or Knop, with local authored config for that subject's scope. Mesh versus Knop participation comes from the attachment subject; subtree-default inheritance uses hasInheritableConfig rather than this local attachment property." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range rdfs:Resource ; owl:inverseOf ; rdfs:label "config for" ; rdfs:comment "Inverse of hasConfig: identifies a resource that a Config is intended to configure." . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has effective config" ; rdfs:comment "Associates a resource with a computed effective Config. Treat this as a runtime, view, or debugging convenience rather than as authoritative portable source data." . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; owl:inverseOf ; rdfs:label "has resolved config" ; rdfs:comment "Associates a scope with derived resolver output. ResolvedConfig is inspectable runtime/application state and must not be treated as an authored config source that can authorize itself." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range rdfs:Resource ; owl:inverseOf ; rdfs:label "has resolved config for" ; rdfs:comment "Identifies the scope for which a ResolvedConfig was produced." . ################################################################# ################################################################# # Authored config attachment and reusable config sources ################################################################# ################################################################# a owl:ObjectProperty ; rdfs:domain sflo:Knop ; rdfs:range ; rdfs:label "has inheritable config" ; rdfs:comment "Associates a Knop with authored config offered to descendant Knops and subtrees. This is a descendant offer, not an implicit local attachment for the declaring Knop; attach the same config through hasConfig when it should also apply locally." . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has config source" ; rdfs:comment "Associates a recognized config-bearing scope, such as a SemanticMesh or Knop, with a ConfigSource whose resolved config participates as local config for that subject's scope. Reuse core artifact-resolution spec properties for working, latest-state, exact target, fallback spec, and expected content digest behavior. The source is not its own precedence layer; authority comes from this local attachment point." . a owl:ObjectProperty ; rdfs:domain sflo:Knop ; rdfs:range ; rdfs:label "has inheritable config source" ; rdfs:comment "Associates a Knop with a ConfigSource whose resolved config is offered to descendant Knops and subtrees. The resolved config does not apply locally at the declaring Knop unless also attached through hasConfigSource." . ################################################################# ################################################################# # Policy vocabulary ################################################################# ################################################################# a rdfs:Class ; rdfs:label "Policy definition" ; rdfs:comment "A reusable node that carries one or more supported policy-slot values, such as history tracking, ResourcePage generation, or ResourcePage presentation. Reuse does not define precedence; bindings attach definitions to explicit targets from a particular config layer and scope." . a rdfs:Class ; rdfs:label "Policy binding" ; rdfs:comment "A config-layer assertion that binds a PolicyDefinition to an explicit PolicyTarget. Binding metadata such as priority belongs here rather than inside the reusable policy definition." . a rdfs:Class ; rdfs:label "Policy target" ; rdfs:comment "An explicit selector for resources a policy binding covers. Missing selector fields do not imply wildcard behavior; broad matching must be represented by an explicit broad target class or value." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "Artifact policy target" ; rdfs:comment "A PolicyTarget for governed Semantic Flow DigitalArtifacts." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "any governed artifact policy target" ; rdfs:comment "A broad artifact target that covers any Semantic Flow-managed DigitalArtifact governed by the config scope in which the binding participates." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "artifact role policy target" ; rdfs:comment "An artifact target that covers governed DigitalArtifacts with a specific ArtifactRole." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "exact artifact policy target" ; rdfs:comment "An artifact target that covers one exact governed sflo:DigitalArtifact in the config scope. It must not be used for merely referenced external artifacts or generated ResourcePage files." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has policy binding" ; rdfs:comment "Associates a Config with a policy binding declared by that config source." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "binds policy" ; rdfs:comment "Identifies the reusable policy definition selected by a PolicyBinding." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "applies to policy target" ; rdfs:comment "Identifies the explicit target selector covered by a PolicyBinding." . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:integer ; rdfs:label "policy priority" ; rdfs:comment "Optional tie-breaker for policy bindings at the same layer, policy slot, and effective selector specificity. Omitted priority is interpreted as zero by the default resolver." . a rdfs:Class ; rdfs:label "Artifact role" ; rdfs:comment "A controlled vocabulary of Semantic Flow artifact roles used when applying config defaults by role rather than by one exact artifact." . a ; rdfs:label "payload" . a ; rdfs:label "mesh inventory" . a ; rdfs:label "Knop inventory" . a ; rdfs:label "mesh metadata" . a ; rdfs:label "Knop metadata" . a ; rdfs:label "config" . a ; rdfs:label "reference catalog" . a ; rdfs:label "resource page definition" . a ; rdfs:label "resource page template" . a ; rdfs:label "resource page stylesheet" . a ; rdfs:label "runtime metadata" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has artifact role" ; rdfs:comment "Identifies the ArtifactRole to which an ArtifactRolePolicyTarget applies." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range sflo:DigitalArtifact ; rdfs:label "targets artifact" ; rdfs:comment "Identifies the exact governed sflo:DigitalArtifact selected by an ExactArtifactPolicyTarget." . a rdfs:Class ; rdfs:label "History tracking policy" ; rdfs:comment "A controlled vocabulary describing whether and how a DigitalArtifact should materialize history." . a ; rdfs:label "versioned" ; rdfs:comment "Materialize ordinary artifact history when the artifact changes." . a ; rdfs:label "current only" ; rdfs:comment "Keep only current working-surface facts unless another invariant requires history." . a ; rdfs:label "required" ; rdfs:comment "History is required for this artifact role or scope and cannot be disabled by ordinary portable config or request overrides." . a ; rdfs:label "slim history" ; rdfs:comment "Keep history with slimmed support surfaces, reduced generated pages, or metadata-focused representations as defined by the active application profile." . a ; rdfs:label "checkpoint only" ; rdfs:comment "Record history only at explicit checkpoints or according to an application-defined checkpoint policy." . a ; rdfs:label "metadata only" ; rdfs:comment "Record metadata or fingerprints for state transitions without necessarily preserving full public byte snapshots." . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has history tracking policy" ; rdfs:comment "Assigns a HistoryTrackingPolicy to a config or role policy." . a rdfs:Class ; rdfs:label "ResourcePage generation policy" ; rdfs:comment "A controlled vocabulary describing whether ResourcePage files should be generated independently of whether artifact history is tracked." . a ; rdfs:label "generate" . a ; rdfs:label "suppress" . a ; rdfs:label "defer" . a ; rdfs:label "on request" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has ResourcePage generation policy" ; rdfs:comment "Assigns a ResourcePageGenerationPolicy to a config or role policy. Suppressed pages should omit sflo:hasResourcePage rather than promising a page that policy says should not exist." . a rdfs:Class ; rdfs:label "ResourcePage regeneration config policy" ; rdfs:comment "A controlled vocabulary describing which configuration generation should use when regenerating historical ResourcePages." . a ; rdfs:label "config at the time" . a ; rdfs:label "current presentation" . a ; rdfs:label "current full config" . a ; rdfs:label "historical semantics, current presentation" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has ResourcePage regeneration config policy" ; rdfs:comment "Assigns the config-time mode for historical ResourcePage regeneration." . a rdfs:Class ; rdfs:label "History naming policy" ; rdfs:comment "A controlled vocabulary describing default history-segment naming policy. This is config and hint vocabulary; allocator state such as sflo:nextHistoryOrdinal remains in core artifact/history RDF." . a ; rdfs:label "ordinal" . a ; rdfs:label "named" . a rdfs:Class ; rdfs:label "State naming policy" ; rdfs:comment "A controlled vocabulary describing default state-segment naming policy. This is config and hint vocabulary; allocator state such as sflo:nextStateOrdinal remains in core artifact/history RDF." . a ; rdfs:label "ordinal" . a ; rdfs:label "semantic version" . a ; rdfs:label "date" . a rdfs:Class ; rdfs:label "Manifestation naming policy" ; rdfs:comment "A controlled vocabulary describing default manifestation-segment naming policy." . a ; rdfs:label "filename derived" . a ; rdfs:label "content-kind derived" . a ; rdfs:label "ordinal" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has history naming policy" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has state naming policy" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has manifestation naming policy" . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:string ; rdfs:label "has default history segment hint" ; rdfs:comment "Optional default or hint for a requested history segment. The current artifact/history RDF remains authoritative for validation and ordinal allocation." . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:string ; rdfs:label "has default state segment hint" ; rdfs:comment "Optional default or hint for a requested state segment. The current artifact/history RDF remains authoritative for validation and ordinal allocation." . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:string ; rdfs:label "has default manifestation segment hint" . a owl:DatatypeProperty ; rdfs:domain sflo:DigitalArtifact ; rdfs:range xsd:string ; rdfs:label "has next history segment hint" ; rdfs:comment "Optional runtime hint for the next history segment to use when explicitly versioning a DigitalArtifact. This is current/progression metadata and must not be treated as the authoritative sflo:nextHistoryOrdinal counter." . a owl:DatatypeProperty ; rdfs:domain sflo:ArtifactHistory ; rdfs:range xsd:string ; rdfs:label "has next state segment hint" ; rdfs:comment "Optional runtime hint for the next state segment to use when explicitly versioning an ArtifactHistory. This is current/progression metadata and must not be asserted into immutable historical snapshots/distributions or treated as the authoritative sflo:nextStateOrdinal counter." . ################################################################# ################################################################# # Config resolution and derived resolved config ################################################################# ################################################################# a rdfs:Class ; rdfs:subClassOf ; rdfs:label "Config resolution config" ; rdfs:comment "Config for the resolver itself: discovery, trust caps, layer ordering, merge behavior, config-source references, cycle handling, unknown-term behavior, and cache policy. Trusted bootstrap resolver policy must come from application defaults, explicit runtime input, or implementation/service-specific authority; portable mesh config may only request or narrow behavior within the existing trust boundary." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "Resolved config" ; rdfs:comment "Derived resolver output for a scope after application defaults, runtime gates, config-resolution policy, authored mesh/Knop config, inherited projections, referenced config sources, and validated request-level inputs have been applied. ResolvedConfig is output state, not trusted input and not authoritative authored mesh config." . a rdfs:Class ; rdfs:label "Config resolution record" ; rdfs:comment "Derived provenance describing config-source decisions, fingerprints, resolver/profile identity, trust decisions, warnings, and resolved-config digest without logging full config contents by default." . a rdfs:Class ; rdfs:label "Config layer" ; rdfs:comment "A configured participation layer considered by a config resolver for one resolution scope. Concrete ordering belongs in ConfigPrecedenceProfile or an implementation/default profile. Referenced config sources inherit the layer of their attachment point rather than introducing a separate reusable-config layer." . a rdfs:Class ; rdfs:label "Config layer role" ; rdfs:comment "A controlled vocabulary naming the role a config layer plays during resolution for a particular scope. Some roles, such as Knop inheritable, describe authored outbound offers that must be projected before they become consumed layers in descendant scopes." . a ; rdfs:label "built-in defaults" ; rdfs:comment "Implementation-internal conservative defaults that participate before application-authored defaults." . a ; rdfs:label "Weave defaults" ; rdfs:comment "Weave's application default config layer." . a ; rdfs:label "command override" ; rdfs:comment "Volatile operation-request or command-line overrides for a single resolution. These values are ordinary high-precedence inputs and should not be silently persisted into authored config." . a ; rdfs:label "mesh local" ; rdfs:comment "Mesh-attached config consumed at mesh scope." . a ; rdfs:label "Knop inherited" ; rdfs:comment "Config projected into a Knop scope from ancestor Knop inheritable attachments." . a ; rdfs:label "Knop local" ; rdfs:comment "Config attached to and consumed at the current Knop scope." . a ; rdfs:label "Knop inheritable" ; rdfs:comment "Config authored at a Knop as an outbound offer to descendants. It is not an implicit local layer for the declaring Knop; if local behavior is desired, attach the config as Knop-local too." . a ; rdfs:label "resolved runtime" ; rdfs:comment "Derived runtime output, diagnostics, or cached resolved config. This role is not authoritative portable source input." . a rdfs:Class ; rdfs:label "Config precedence profile" ; rdfs:comment "A profile describing layer order candidates. A single global order is not sufficient for all property families; merge profiles and required invariants still control how values combine." . a rdfs:Class ; rdfs:label "Config merge profile" ; rdfs:comment "A profile describing property-slot merge behavior such as stricter-wins safety caps, nearest-scope defaults, additive values, required invariants, and operation-request overrides." . a rdfs:Class ; rdfs:label "Config reference policy" ; rdfs:comment "A controlled vocabulary describing which reusable or external config references may be followed." . a ; rdfs:label "no external references" . a ; rdfs:label "pinned only" . a ; rdfs:label "current allowed within trusted boundary" . a rdfs:Class ; rdfs:label "Config inheritance policy" ; rdfs:comment "A controlled vocabulary describing how inherited config is accepted and propagated." . a ; rdfs:label "accept and propagate" . a ; rdfs:label "accept, do not propagate" . a ; rdfs:label "block inherited" . a ; rdfs:label "offer descendants only" . a ; rdfs:label "offer self and descendants" . a rdfs:Class ; rdfs:label "Operation request override policy" ; rdfs:comment "A controlled vocabulary describing how explicit operation request fields interact with resolved defaults, hints, strict policies, and invariants." . a ; rdfs:label "warn and apply" . a ; rdfs:label "reject conflict" . a ; rdfs:label "require explicit acknowledgement" . a rdfs:Class ; rdfs:label "Config cycle policy" . a ; rdfs:label "reject" . a ; rdfs:label "use first seen" . a rdfs:Class ; rdfs:label "Unknown config term policy" . a ; rdfs:label "reject" . a ; rdfs:label "ignore" . a ; rdfs:label "warn" . a rdfs:Class ; rdfs:label "ResolvedConfig cache policy" . a ; rdfs:label "no cache" . a ; rdfs:label "cache for process" . a ; rdfs:label "persist diagnostic cache" . a rdfs:Class ; rdfs:label "Portable resolver hint policy" ; rdfs:comment "A controlled vocabulary describing whether portable resolver hints are ignored or honored within trusted runtime caps." . a ; rdfs:label "ignore" . a ; rdfs:label "honor within trusted boundary" . a rdfs:Class ; rdfs:label "Config resolution status" . a ; rdfs:label "accepted" . a ; rdfs:label "ignored" . a ; rdfs:label "rejected" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has config layer" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has config layer role" ; rdfs:comment "Identifies the role a ConfigLayer or resolved source played in a particular resolution profile. Layer role alone does not authorize a referenced config artifact; the attachment point and resolver policy determine its scope and authority." . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:nonNegativeInteger ; rdfs:label "layer order" ; rdfs:comment "Numeric order within a configured precedence profile. Values are profile data, not universal ontology law." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has config precedence profile" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has config merge profile" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has config reference policy" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has config inheritance policy" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has operation request override policy" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has config cycle policy" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has unknown config term policy" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has ResolvedConfig cache policy" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has portable resolver hint policy" . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:nonNegativeInteger ; rdfs:label "maximum config reference depth" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range rdfs:Resource ; rdfs:label "has config root" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range rdfs:Resource ; rdfs:label "has config scope" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "resolved from config" . a owl:DatatypeProperty ; rdfs:domain rdfs:Resource ; rdfs:range xsd:dateTimeStamp ; rdfs:label "resolved at" . a owl:DatatypeProperty ; rdfs:domain rdfs:Resource ; rdfs:range xsd:string ; rdfs:label "has config source fingerprint" . a owl:DatatypeProperty ; rdfs:domain rdfs:Resource ; rdfs:range xsd:string ; rdfs:label "has resolver profile digest" . a owl:DatatypeProperty ; rdfs:domain rdfs:Resource ; rdfs:range xsd:string ; rdfs:label "has trust policy digest" . a owl:DatatypeProperty ; rdfs:domain rdfs:Resource ; rdfs:range xsd:string ; rdfs:label "has ResolvedConfig digest" . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has config resolution record" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has config resolution status" . ################################################################# ################################################################# # Portable mesh layout configuration ################################################################# ################################################################# a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:string ; rdfs:label "workspace root relative to mesh root" ; rdfs:comment "A normalized relative path from the mesh root to the containing local workspace root, used by mesh-carried config to describe how the mesh is situated inside a larger project. This should not be interpreted as an absolute host path or as a broad access grant; host-local path and remote-access trust policy belongs to implementation- or service-specific runtime configuration." . a rdfs:Class ; rdfs:label "Mesh workspace path rule" ; rdfs:comment "A portable mesh-carried rule that allows a specific local path prefix, interpreted relative to the mesh root, for selected local relative path locator kinds. The resolved prefix must stay inside the workspace described by the active mesh configuration and runtime context; this class is not host-local trust policy." . a rdfs:Class ; rdfs:label "Local path locator kind" ; rdfs:comment "A controlled vocabulary for local relative path locator slots whose resolution may be constrained by mesh workspace path rules." . a ; rdfs:label "working local relative path" ; rdfs:comment "The rule applies to local working-source paths, such as authored source files adjacent to a sidecar mesh." . a ; rdfs:label "target local relative path" ; rdfs:comment "The rule applies to target mesh-local relative paths, such as direct unmanaged file references that are resolved from local mesh data." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has mesh workspace path rule" ; rdfs:comment "Associates a MeshConfig with a constrained portable path rule for local paths inside the active workspace boundary." . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:string ; rdfs:label "workspace path prefix" ; rdfs:comment "A POSIX-style relative path prefix interpreted from the mesh root. It may name mesh-adjacent workspace directories such as ../ontology/ for sidecar meshes, but it must not be absolute or broaden to arbitrary host traversal." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "applies to local path locator kind" ; rdfs:comment "Identifies the local relative path locator kind or kinds governed by a mesh workspace path rule." . ################################################################# ################################################################# # Resource-page presentation policy ################################################################# ################################################################# a rdfs:Class ; rdfs:label "ResourcePage presentation policy" ; rdfs:comment "A policy value describing ResourcePage presentation and chrome choices. It names templates, stylesheets, generated panel selections, and similar presentation artifacts, but does not encode authored content regions, source bindings, or source-resolution policy; those belong in the core ontology." . a rdfs:Class ; rdfs:subClassOf sflo:DigitalArtifact ; rdfs:label "ResourcePage template" ; rdfs:comment "A DigitalArtifact used as a template input for generated ResourcePages. Template selection should remain explicit or narrowly scoped; this ontology does not define regex-driven template mapping sets." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "inner ResourcePage template" ; rdfs:comment "A ResourcePageTemplate used for the inner or body portion of a generated ResourcePage." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "outer ResourcePage template" ; rdfs:comment "A ResourcePageTemplate used for the outer shell, chrome, or frame of a generated ResourcePage." . a rdfs:Class ; rdfs:subClassOf sflo:DigitalArtifact ; rdfs:label "ResourcePage stylesheet" ; rdfs:comment "A stylesheet DigitalArtifact referenced by generated ResourcePages." . a rdfs:Class ; rdfs:label "ResourcePage render record" ; rdfs:comment "Derived provenance for a ResourcePage generation or regeneration event, including source state, presentation policy, renderer version, and relevant ResolvedConfig digest. These records are runtime/provenance artifacts only when deliberately materialized." . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; rdfs:label "has ResourcePage presentation policy" ; rdfs:comment "Associates a policy definition, Config, or other applicable config-side resource with a ResourcePage presentation policy. Whether the policy is local, inherited, or default behavior comes from config attachment and policy resolution rather than this property name." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has inner ResourcePage template" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has outer ResourcePage template" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has ResourcePage stylesheet" . a rdfs:Class ; rdfs:label "ResourcePage panel" ; rdfs:comment "A reusable structured ResourcePage component, such as children, references, history, raw source, or Semantic Flow metadata. Panel identities select code-backed structured components; arbitrary external panel renderers are out of scope for the first presentation-config model." . a rdfs:Class ; rdfs:label "ResourcePage panel selection" ; rdfs:comment "A named presentation-policy component that selects a ResourcePagePanel together with ordering, inclusion policy, targeting, and data-availability constraints." . a rdfs:Class ; rdfs:label "ResourcePage panel inclusion policy" . a ; rdfs:label "auto" ; rdfs:comment "Include the panel when it is selected, targeted to the page, and the runtime has the required panel data." . a rdfs:Class ; rdfs:label "ResourcePage kind" ; rdfs:comment "A controlled vocabulary for targeting presentation rules to runtime ResourcePage document kinds." . a ; rdfs:label "identifier ResourcePage" . a ; rdfs:label "Knop ResourcePage" . a ; rdfs:label "simple ResourcePage" . a ; rdfs:label "ReferenceCatalog ResourcePage" . a rdfs:Class ; rdfs:label "ResourcePage panel data requirement" ; rdfs:comment "A controlled vocabulary describing the structured runtime data a selected code-backed panel needs before it can render." . a ; rdfs:label "children" . a ; rdfs:label "RDF properties" . a ; rdfs:label "blank nodes" . a ; rdfs:label "references" . a ; rdfs:label "current reference links" . a ; rdfs:label "Knop artifacts" . a ; rdfs:label "fact sections" . a ; rdfs:label "raw source" . a ; rdfs:label "history" . a ; rdfs:label "Semantic Flow metadata" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has ResourcePage panel selection" . a owl:ObjectProperty ; rdfs:domain sflo:ResourcePageDefinition ; rdfs:range ; rdfs:label "has generated ResourcePage panel selection" ; rdfs:comment "Allows an authored ResourcePageDefinition to opt into selected generated/code-backed ResourcePage panels in addition to authored page regions. Runtime should render authored regions before these generated panels unless a later explicit ordering model says otherwise." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has ResourcePage panel" . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:nonNegativeInteger ; rdfs:label "panel order" ; rdfs:comment "A deterministic sort key for selected ResourcePage panels. Ties are resolved by config precedence and then selection IRI." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has panel inclusion policy" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has panel target page kind" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range rdfs:Class ; rdfs:label "has panel target class" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has panel target artifact role" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has panel data requirement" . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:dateTimeStamp ; rdfs:label "rendered at" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range sflo:HistoricalState ; rdfs:label "rendered from source state" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "rendered with config" . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:string ; rdfs:label "has renderer version" .