@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, operational runtime-resolution policy, and resource-page presentation configuration. Content composition terms such as page regions, page sources, and direct target/current-byte locators remain in the core ontology." ; dcterms:creator ; dcterms:hasVersion ; dcterms:modified "2026-05-18"^^xsd:date ; owl:versionInfo "0.2.0" ; owl:versionIRI ; vann:preferredNamespacePrefix "sfcfg" ; vann:preferredNamespaceUri "https://semantic-flow.github.io/sflo/config/" . a owl:Ontology, sflo:HistoricalState ; dcterms:isVersionOf ; dcterms:issued "2026-05-24"^^xsd:date ; owl:versionInfo "0.2.0" ; schema:contentUrl ; sflo:hasManifestation . dcat:downloadURL . ################################################################# ################################################################# # 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." . 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 an application, operational, or portable 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 "Knop config" ; rdfs:comment "Optional scope marker for portable Config intended for use at a Knop scope. Knop-local and Knop-inheritable semantics are expressed by attachment properties, ConfigLayerRole values, and resolution context rather than by this class alone." . 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 rdfs:Class ; rdfs:subClassOf ; rdfs:label "Operational config" ; rdfs:comment "A trusted runtime input describing host/runtime policy rather than portable mesh-authored behavior. OperationalConfig gates resolution before portable mesh config participates; it is an input to config resolution, not the same thing as ResolvedConfig or an operation-specific effective config." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "Workspace operational config" ; rdfs:comment "OperationalConfig discovered inside an active workspace boundary. It may describe project-local layout and narrow behavior within the runtime-approved workspace, but it cannot expand host access beyond that boundary by itself." . a rdfs:Class ; rdfs:subClassOf ; rdfs:label "Host-local operational config" ; rdfs:comment "OperationalConfig intended to remain user-, machine-, daemon-, or session-local. Use for host-local preferences and trust decisions such as extra-workspace local-directory allowances, remote-access allowances, or user-specific operational restrictions/extensions that should not travel with a mesh by default." . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range ; owl:inverseOf ; rdfs:label "has config" ; rdfs:comment "Associates a resource with one or more configuration descriptions. Prefer role-specific subproperties when the attachment role affects merge or inheritance semantics." . 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:subPropertyOf ; 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:subPropertyOf ; rdfs:domain sflo:SemanticMesh ; rdfs:range ; rdfs:label "has mesh config" ; rdfs:comment "Associates a SemanticMesh with mesh-level authored config for the mesh surface and defaults that apply across the mesh." . a owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain sflo:SemanticMesh ; rdfs:range ; rdfs:label "has mesh inheritable config" ; rdfs:comment "Associates a SemanticMesh with authored defaults it offers to Knops, submeshes, or descendant scopes inside the mesh boundary." . a owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain sflo:Knop ; rdfs:range ; rdfs:label "has Knop config" ; rdfs:comment "Associates a Knop with portable authored config. Prefer hasKnopLocalConfig or hasKnopInheritableConfig when the local or inheritable role matters." . a owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain sflo:Knop ; rdfs:range ; rdfs:label "has Knop local config" ; rdfs:comment "Associates a Knop with config that applies locally to that Knop, its resource page, and artifacts governed at that Knop." . a owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain sflo:Knop ; rdfs:range ; rdfs:label "has Knop inheritable config" ; rdfs:comment "Associates a Knop with config offered to descendant Knops and subtrees. By default this is a descendant offer, not an implicit local override for the declaring Knop." . a owl:ObjectProperty ; rdfs:domain rdfs:Resource ; rdfs:range sflo:ArtifactResolutionTarget ; rdfs:label "has config source" ; rdfs:comment "Associates a config layer, config-bearing resource, or authored config attachment with an ArtifactResolutionTarget that resolves a ConfigArtifact or config bytes. Reuse core artifact-resolution target properties for working, latest-state, exact target, fallback policy, and expected content digest behavior." . a owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain sflo:SemanticMesh ; rdfs:range sflo:ArtifactResolutionTarget ; rdfs:label "has mesh config source" ; rdfs:comment "Associates a SemanticMesh with a mesh-level config source, often a target pointing at _mesh/_config or a reusable ConfigArtifact." . a owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain sflo:SemanticMesh ; rdfs:range sflo:ArtifactResolutionTarget ; rdfs:label "has mesh inheritable config source" ; rdfs:comment "Associates a SemanticMesh with a config source it offers to descendant scopes inside the mesh boundary." . a owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain sflo:Knop ; rdfs:range sflo:ArtifactResolutionTarget ; rdfs:label "has Knop local config source" ; rdfs:comment "Associates a Knop with a config source that applies locally to that Knop." . a owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain sflo:Knop ; rdfs:range sflo:ArtifactResolutionTarget ; rdfs:label "has Knop inheritable config source" ; rdfs:comment "Associates a Knop with a config source it offers to descendants." . ################################################################# ################################################################# # Policy vocabulary ################################################################# ################################################################# 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 rdfs:Class ; rdfs:label "Artifact role policy" ; rdfs:comment "A policy node that applies one or more policy values to artifacts with a specific ArtifactRole." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has artifact role" ; rdfs:comment "Identifies the ArtifactRole to which an ArtifactRolePolicy applies." . 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 owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has default history tracking policy" ; rdfs:comment "Declares the default HistoryTrackingPolicy used when no more specific artifact-role, scope, or artifact policy applies." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has history tracking default" ; rdfs:comment "Associates a Config with an artifact-role-specific history tracking default." . 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 owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has default ResourcePage generation policy" ; rdfs:comment "Declares the default ResourcePageGenerationPolicy used when no more specific policy applies." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has ResourcePage generation default" ; rdfs:comment "Associates a Config with an artifact-role-specific ResourcePage generation default." . 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 operational 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 operational 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, reusable config references, cycle handling, unknown-term behavior, and cache policy. Trusted bootstrap resolver policy must come from application defaults, explicit runtime input, host-local operational config, or daemon/session state; 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, operational gates, config-resolution policy, authored mesh/Knop config, inherited config, reusable config artifacts, and validated request-level inputs have been applied. ResolvedConfig is output state, not trusted operational 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 source layer considered by a config resolver. Concrete ordering belongs in ConfigPrecedenceProfile or an implementation/default profile rather than in ontology comments alone." . a rdfs:Class ; rdfs:label "Config layer role" ; rdfs:comment "A controlled vocabulary naming the role a config layer plays during resolution." . a ; rdfs:label "built-in defaults" . a ; rdfs:label "Weave defaults" . a ; rdfs:label "command override" . a ; rdfs:label "machine-local operational" . a ; rdfs:label "workspace operational" . a ; rdfs:label "mesh local" . a ; rdfs:label "mesh inheritable" . a ; rdfs:label "Knop inherited" . a ; rdfs:label "Knop local" . a ; rdfs:label "Knop inheritable" . a ; rdfs:label "reusable config" . a ; rdfs:label "resolved runtime" . 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-family 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 operational 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" . 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" . ################################################################# ################################################################# # Operational runtime-resolution 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 or workspace-local 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; local-path access still requires explicit LocalPathAccessRule entries and remains capped by the active runtime workspace boundary." . a rdfs:Class ; rdfs:label "Local path access rule" ; rdfs:comment "A rule describing when an operational local-path locator such as sflo:workingLocalRelativePath or sflo:targetLocalRelativePath may resolve outside the default runtime boundary. The first-pass model is deny-by-default: access is allowed only when at least one applicable LocalPathAccessRule matches and the active trust boundary permits it." . a rdfs:Class ; rdfs:label "Local path base" ; rdfs:comment "A controlled vocabulary naming the base against which a LocalPathAccessRule pathPrefix should be interpreted." . a ; rdfs:label "mesh root" ; rdfs:comment "Interpret the pathPrefix relative to the current mesh root." . a ; rdfs:label "user home" ; rdfs:comment "Interpret the pathPrefix relative to the current user's home directory." . a ; rdfs:label "absolute path" ; rdfs:comment "Interpret the pathPrefix as an absolute host path prefix." . a rdfs:Class ; rdfs:label "Local path locator kind" ; rdfs:comment "A controlled vocabulary naming which local-path locator kinds a LocalPathAccessRule applies to." . a ; rdfs:label "working local relative path" ; rdfs:comment "Applies specifically to sflo:workingLocalRelativePath resolution." . a ; rdfs:label "target local relative path" ; rdfs:comment "Applies specifically to sflo:targetLocalRelativePath resolution." . a rdfs:Class ; rdfs:label "Remote access rule" ; rdfs:comment "A rule describing when a direct remote/external locator such as sflo:workingAccessUrl or sflo:targetAccessUrl may be followed. The first-pass model is deny-by-default: remote access is allowed only when at least one applicable RemoteAccessRule matches and the active trust boundary permits it." . a rdfs:Class ; rdfs:label "Remote locator kind" ; rdfs:comment "A controlled vocabulary naming which remote locator kinds a RemoteAccessRule applies to." . a ; rdfs:label "working access URL" ; rdfs:comment "Applies specifically to sflo:workingAccessUrl resolution." . a ; rdfs:label "target access URL" ; rdfs:comment "Applies specifically to sflo:targetAccessUrl resolution." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has local path access rule" ; rdfs:comment "Associates a Config with one of its local-path access rules. Mesh-carried rules describe expected local-relative access and remain capped by runtime workspace boundaries; host-local operational rules may grant broader host-local trust. This ontology intentionally defines positive allow rules only; deny behavior is expressed by absence of a matching rule or by a stricter trust cap." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has remote access rule" ; rdfs:comment "Associates a Config with one of its remote-access rules. Remote access remains operationally fail-closed unless the active runtime explicitly accepts the relevant config layer." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has local path base" . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has local path locator kind" . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:string ; rdfs:label "path prefix" ; rdfs:comment "A normalized path-prefix string interpreted relative to the rule's declared LocalPathBase. The first-pass model favors explicit path prefixes over regex or implicit base semantics." . a owl:ObjectProperty ; rdfs:domain ; rdfs:range ; rdfs:label "has remote locator kind" . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:string ; rdfs:label "allowed remote scheme" ; rdfs:comment "A URI scheme such as https that is allowed by a RemoteAccessRule." . a owl:DatatypeProperty ; rdfs:domain ; rdfs:range xsd:anyURI ; rdfs:label "allowed remote origin" ; rdfs:comment "An allowed remote origin or origin-like base URI for a RemoteAccessRule. Interpretation should stay conservative and fail closed when the runtime cannot determine that a candidate URL matches the configured origin boundary." . ################################################################# ################################################################# # Resource-page presentation configuration ################################################################# ################################################################# a rdfs:Class ; rdfs:subClassOf ; rdfs:label "ResourcePage presentation config" ; rdfs:comment "A Config describing presentation and chrome preferences adjacent to a ResourcePageDefinition. It names templates, stylesheets, 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 config, renderer version, and relevant ResolvedConfig digest. These records are runtime/provenance artifacts only when deliberately materialized." . a owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain sflo:ResourcePageDefinition ; rdfs:range ; rdfs:label "has ResourcePage presentation config" ; rdfs:comment "Associates a ResourcePageDefinition with adjacent presentation/chrome configuration. Broader defaults should layer through generic or role-specific config attachment rather than regex-based template mapping." . 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 owl:ObjectProperty ; rdfs:subPropertyOf ; rdfs:domain ; rdfs:range ; rdfs:label "has default ResourcePage presentation config" ; rdfs:comment "Associates an application, mesh, Knop, or reusable Config with the default ResourcePage presentation profile to use when no nearer presentation config applies." . 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-profile 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 opt-in" . 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" .