Ontology Version: 2.2.0

cacontology-gufo:AgeAtTimeSituationShape leaf node


URI

https://cacontology.projectvic.org/gufo#AgeAtTimeSituationShape

Label

Age At Time Situation Shape

Shape Properties

Instances of cacontology-temporal:AgeAtTimeSituation can have the following properties:

PROPERTY

MIN COUNT

MAX COUNT

TYPE

cacontology-temporal:AgeAtTimeSituation
cacontology-temporal:ageSubject 1 1 uco-identity:Person
cacontology-temporal:concernsAgeQuality 1
cacontology-temporal:hasAgeInYears 1 1 xsd:decimal
1 1 xsd:dateTimeStamp
1 xsd:dateTimeStamp

Implementation

@prefix cacontology-gufo: <https://cacontology.projectvic.org/gufo#> .
@prefix cacontology-temporal: <https://cacontology.projectvic.org/temporal#> .
@prefix gufo: <http://purl.org/nemo/gufo#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix uco-identity: <https://ontology.unifiedcyberontology.org/uco/identity/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
cacontology-gufo:AgeAtTimeSituationShape a sh:NodeShape ;
    rdfs:label "Age At Time Situation Shape"@en ;
    sh:property [ sh:class uco-identity:Person ;
            sh:maxCount 1 ;
            sh:message "AgeAtTimeSituation must be linked to exactly one person via cacontology-temporal:ageSubject."@en ;
            sh:minCount 1 ;
            sh:path cacontology-temporal:ageSubject ],
        [ sh:datatype xsd:decimal ;
            sh:maxCount 1 ;
            sh:message "AgeAtTimeSituation must have exactly one non-negative numeric age value in years via cacontology-temporal:hasAgeInYears."@en ;
            sh:minCount 1 ;
            sh:minInclusive 0.0 ;
            sh:path cacontology-temporal:hasAgeInYears ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:message "AgeAtTimeSituation must have a begin timestamp (when the attributed age becomes valid)."@en ;
            sh:minCount 1 ;
            sh:path gufo:hasBeginPointInXSDDateTimeStamp ],
        [ sh:datatype xsd:dateTimeStamp ;
            sh:maxCount 1 ;
            sh:message "AgeAtTimeSituation may have at most one end timestamp (when the attributed age ceases to be valid)."@en ;
            sh:path gufo:hasEndPointInXSDDateTimeStamp ],
        [ sh:hasValue cacontology-temporal:Age ;
            sh:maxCount 1 ;
            sh:message "AgeAtTimeSituation, when specifying a quality type, MUST use cacontology-temporal:Age via cacontology-temporal:concernsAgeQuality (a subproperty of gufo:concernsQualityType)."@en ;
            sh:path cacontology-temporal:concernsAgeQuality ] ;
    sh:sparql [ sh:message "For AgeAtTimeSituation, the begin timestamp must be strictly earlier than the end timestamp when both are present."@en ;
            sh:prefixes [ sh:declare [ sh:namespace "https://cacontology.projectvic.org/temporal#"^^xsd:anyURI ;
                            sh:prefix "cacontology-temporal" ],
                        [ sh:namespace "http://purl.org/nemo/gufo#"^^xsd:anyURI ;
                            sh:prefix "gufo" ] ] ;
            sh:select """
            SELECT ?this
            WHERE {
                ?this gufo:hasBeginPointInXSDDateTimeStamp ?begin .
                ?this gufo:hasEndPointInXSDDateTimeStamp ?end .
                FILTER (?begin >= ?end)
            }
        """ ] ;
    sh:targetClass cacontology-temporal:AgeAtTimeSituation .