Ontology Version: 3.1.0

hotline:HotlineActionShape leaf node


URI

https://cacontology.projectvic.org/hotlines#HotlineActionShape

Label

Hotline Action Shape

Description

Enhanced SHACL shape for hotline actions with comprehensive gUFO Event validation and temporal modeling.

Targets (1)

Property Constraints (3)

Focus nodes of this shape (hotline:HotlineAction) can have the following properties:

PROPERTY DESCRIPTION MIN MAX VALUE TYPE OTHER CONSTRAINTS
uco-action:performer
sh:message A hotline action must have at least one performer
1 *
uco-core:endTime
sh:message Hotline actions can have at most one end time
0 1 xsd:dateTime
uco-core:startTime
sh:message Hotline actions must have start times
1 * xsd:dateTime

Implementation

@prefix hotline: <https://cacontology.projectvic.org/hotlines#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix uco-action: <https://ontology.unifiedcyberontology.org/uco/action/> .
@prefix uco-core: <https://ontology.unifiedcyberontology.org/uco/core/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
hotline:HotlineActionShape a sh:NodeShape ;
    rdfs:label "Hotline Action Shape"@en ;
    rdfs:comment "Enhanced SHACL shape for hotline actions with comprehensive gUFO Event validation and temporal modeling."@en ;
    sh:property [ sh:message "A hotline action must have at least one performer"@en ;
            sh:minCount 1 ;
            sh:path uco-action:performer ],
        [ sh:datatype xsd:dateTime ;
            sh:message "Hotline actions must have start times"@en ;
            sh:minCount 1 ;
            sh:path uco-core:startTime ],
        [ sh:datatype xsd:dateTime ;
            sh:maxCount 1 ;
            sh:message "Hotline actions can have at most one end time"@en ;
            sh:path uco-core:endTime ] ;
    sh:rule [ a sh:SPARQLRule ;
            sh:construct """
            INSERT { $this a hotline:TemporalInconsistencyError . }
            WHERE {
                $this uco-core:startTime ?start .
                $this uco-core:endTime ?end .
                FILTER(?end <= ?start)
            }
        """ ;
            sh:message "Action end time must be after start time"@en ;
            sh:prefixes hotline: ;
            sh:severity sh:Violation ] ;
    sh:targetClass hotline:HotlineAction .