diff --git a/validation/pilot5/pilot5_electric_vehicle_data.shacl.ttl b/validation/pilot5/pilot5_electric_vehicle_data.shacl.ttl new file mode 100644 index 0000000000000000000000000000000000000000..e2a202392b5c844523b8860f3320a75d0916bcd8 --- /dev/null +++ b/validation/pilot5/pilot5_electric_vehicle_data.shacl.ttl @@ -0,0 +1,221 @@ +@prefix brick: <https://brickschema.org/schema/1.1/Brick#> . +@prefix cdt: <http://w3id.org/lindt/custom_datatypes#> . +@prefix plt: <https://w3id.org/platoon/> . +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix seas: <https://w3id.org/seas/> . +@prefix time: <http://www.w3.org/2006/time#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix saref4bldg: <https://saref.etsi.org/saref4bldg/> . +@prefix ener-prop: <https://w3id.org/enershare/property/> . +@prefix ener-play: <https://w3id.org/enershare/player/> . +@prefix geo: <http://www.w3.org/2003/01/geo/wgs84_pos#> . +@prefix foaf: <http://xmlns.com/foaf/spec/> . +@prefix sch: <https://schema.org/> . +@prefix vsso: <https://www.w3.org/Submission/vsso/#> . +@prefix ener: <https://enershare.eu/shapes/p1#> . +@prefix sh: <http://www.w3.org/ns/shacl#> . +@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . + + +ener:ElectricVehicleShape + a sh:NodeShape ; + sh:property [ + sh:path rdfs:label ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype xsd:string ; + ] ; + sh:property [ + sh:path sch:brand ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:property [ + sh:path sch:model ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:property [ + sh:path seas:connectsAt ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:property [ + sh:path ener-prop:hasAutonomy ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:property [ + sh:path ener-prop:hasTravelledDistance ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:targetClass seas:ElectricVehicle . + +ener:ElectricVehicleCountShape + a sh:NodeShape ; + sh:targetNode seas:ElectricVehicle ; + sh:property [ + sh:path [ sh:inversePath rdf:type ] ; + sh:minCount 1 ; + ] . + +ener:TimeShape + a sh:NodeShape ; + sh:property [ + sh:path time:inXSDDateTime ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype xsd:string ; + ] ; + sh:targetClass time:Instant . + +ener:BrandShape + a sh:NodeShape ; + sh:property [ + sh:path sch:name ; + sh:minCount 1 ; + sh:datatype xsd:string ; + ] ; + sh:targetClass sch:Brand . + +ener:ModelShape + a sh:NodeShape ; + sh:property [ + sh:path sch:name ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype xsd:string ; + ] ; + sh:targetClass sch:ProductModel . + + +ener:ElectricalConnectionPointShape + a sh:NodeShape ; + sh:property [ + sh:path rdfs:label ; + sh:minCount 1 ; + sh:datatype xsd:string ; + ] ; + sh:targetClass seas:ElectricalConnectionPoint, seas:T2ConnectionPoint . + +ener:LengthPropertyShape + a sh:NodeShape ; + sh:property [ + sh:path seas:evaluation ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:targetClass seas:LengthProperty . + +ener:LengthEvaluationShape + a sh:NodeShape ; + sh:property [ + sh:path seas:evaluatedSimpleValue ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype cdt:length ; + ] ; + sh:property [ + sh:path seas:hasTemporalContext ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:targetClass seas:LengthEvaluation . + +ener:BatteryShape + a sh:NodeShape ; + sh:property [ + sh:path seas:subSystemOf ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:property [ + sh:path plt:hasNominalPower ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:property [ + sh:path seas:stateOfChargeRatio ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:property [ + sh:path plt:hasStorageNominalCapacity ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:targetClass seas:Battery . + +ener:ElectricPowerPropertyShape + a sh:NodeShape ; + sh:property [ + sh:path seas:evaluation ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:targetClass seas:ElectricPowerProperty . + +ener:ElectricPowerEvaluationShape + a sh:NodeShape ; + sh:property [ + sh:path seas:evaluatedSimpleValue ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype cdt:power ; + ] ; + sh:targetClass seas:ElectricPowerEvaluation . + +ener:PercentagePropertyShape + a sh:NodeShape ; + sh:property [ + sh:path seas:evaluation ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:targetClass seas:PercentageProperty . + +ener:PercentageEvaluationShape + a sh:NodeShape ; + sh:property [ + sh:path seas:evaluatedSimpleValue ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype cdt:dimensionless ; + ] ; + sh:property [ + sh:path seas:hasTemporalContext ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:targetClass plt:PercentageEvaluation . + +ener:StorageNominalCapacityPropertyShape + a sh:NodeShape ; + sh:property [ + sh:path seas:evaluation ; + sh:minCount 1 ; + sh:nodeKind sh:IRI ; + ] ; + sh:targetClass plt:StorageNominalCapacityProperty . + +ener:StorageNominalCapacityEvaluationShape + a sh:NodeShape ; + sh:property [ + sh:path seas:evaluatedSimpleValue ; + sh:minCount 1 ; + sh:maxCount 1 ; + sh:datatype cdt:energy ; + ] ; + sh:targetClass plt:StorageNominalCapacityEvaluation .