#NodeExists_GR TEMPLATE
PREFIX ta:
PREFIX xsd:
SELECT ?msg
WHERE {
FILTER NOT EXISTS { ?s ta:browseName \"@@ConstrainedNodeBrowseName@@\"^^xsd:anyURI }
BIND(STR('Node @@ConstrainedNodeBrowseName@@ does not exist') as ?msg)
}
#NodeExists_GR EXAMPLE
PREFIX ta:
PREFIX xsd:
SELECT ?msg
WHERE {
FILTER NOT EXISTS { ?s ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType"^^xsd:anyURI }
BIND(STR('Node http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType does not exists') as ?msg)
}
#AttributeExists_NR TEMPLATE
PREFIX ta:
PREFIX xsd:
SELECT ?msg
WHERE {
?s ta:browseName \"@@ConstrainedNodeBrowseName@@\"^^xsd:anyURI .
FILTER NOT EXISTS { ?s @@AttributeName@@ ?o }
BIND(STR('@@ConstrainedNodeBrowseName@@ @@AttributeName@@ does not exist') as ?msg)
}
#AttributeExists_NR EXAMPLE
PREFIX ta:
PREFIX xsd:
SELECT ?msg
WHERE {
?s ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType"^^xsd:anyURI .
FILTER NOT EXISTS { ?s ta:isAbstract ?o }
BIND(STR('http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType ta:isAbstract does not exist') as ?msg)
}
#AttributeHasSpecificValue_NR TEMPLATE
PREFIX ta:
PREFIX xsd:
SELECT ?msg
WHERE {
?s ta:browseName \"@@BrowseName@@\"^^xsd:anyURI .
FILTER NOT EXISTS { ?s @@AttributeName@@ @@Value@@ }
BIND(STR('@@BrowseName@@ @@AttributeName@@ is not @@Value@@') as ?msg)
}
#AttributeHasSpecificValue_NR EXAMPLE
PREFIX ta:
PREFIX xsd:
SELECT ?msg
WHERE {
?s ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType"^^xsd:anyURI .
FILTER NOT EXISTS { ?s ta:isAbstract false }
BIND(STR('http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType ta:isAbstract is not false') as ?msg)
}
#EnumerationFieldExists_NR TEMPLATE
PREFIX ta:
PREFIX xsd:
PREFIX rdfs:
SELECT ?msg
WHERE{
FILTER NOT EXISTS {
?enumerationField a ?enumerationDataTypeNode .
?enumerationDataTypeNode ta:browseName \"@@ConstrainedNodeBrowseName@@\"^^xsd:anyURI .
?enumerationField rdfs:label \"@@EnumString@@\"
}
BIND(STR('@@ConstrainedNodeBrowseName@@ does not specify a field with EnumString @@EnumString@@') as ?msg)
}
#EnumerationFieldExists_NR EXAMPLE
PREFIX ta:
PREFIX xsd:
PREFIX rdfs:
SELECT ?msg
WHERE{
FILTER NOT EXISTS {
?enumerationField a ?enumerationDataTypeNode .
?enumerationDataTypeNode ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDeviceCategoryEnumeration"^^xsd:anyURI .
?enumerationField rdfs:label "OTHER"
}
BIND(STR('http://opcfoundation.org/UA/Robotics/MotionDeviceCategoryEnumeration does not specify a field with EnumString OTHER') as ?msg)
}
#EnumerationFieldHasValue_NR TEMPLATE
PREFIX ta:
PREFIX ia:
PREFIX xsd:
PREFIX rdfs:
SELECT ?msg
WHERE{
?enumerationField a ?enumerationDataTypeNode .
?enumerationDataTypeNode ta:browseName \"@@ConstrainedNodeBrowseName@@\"^^xsd:anyURI .
?enumerationField rdfs:label \"@@EnumString@@\" .
FILTER NOT EXISTS {
?enumerationField ia:value \"@@Value@@\"^^xsd:unsignedInt;
}
BIND(STR('Value of enumeration field @@ConstrainedNodeBrowseName@@ @@EnumString@@ is not @@Value@@') as ?msg)
}
#EnumerationFieldHasValue_NR EXAMPLE
PREFIX ta:
PREFIX ia:
PREFIX xsd:
PREFIX rdfs:
SELECT ?msg
WHERE{
?enumerationField a ?enumerationDataTypeNode .
?enumerationDataTypeNode ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDeviceCategoryEnumeration"^^xsd:anyURI .
?enumerationField rdfs:label "OTHER" .
FILTER NOT EXISTS {
?enumerationField ia:value "0"^^xsd:unsignedInt;
}
BIND(STR('Value of enumeration field http://opcfoundation.org/UA/Robotics/MotionDeviceCategoryEnumeration OTHER is not 0') as ?msg)
}
#MethodArgumentExists_NR TEMPLATE
PREFIX ta:
PREFIX xsd:
PREFIX rdfs:
SELECT DISTINCT ?msg
WHERE {
?s ta:browseName \"@@ConstrainedNodeBrowseName@@\"^^xsd:anyURI .
?s rdfs:subClassOf ?blankNode1 .
?blankNode1 ?p1 ?methodNode .
?methodNode ta:browseName \"@@MethodBrowseName@@\"^^xsd:anyURI .
FILTER NOT EXISTS {
?methodNode rdfs:subClassOf ?blankNode2 .
?blankNode2 ?p2 ?inputArgumentsNode .
?inputArgumentsNode ta:browseName \"http://opcfoundation.org/UA/InputArguments\"^^xsd:anyURI
}
BIND(STR('Method @@MethodBrowseName@@ of node @@ConstrainedNodeBrowseName@@ does not reference an InputArguments node') as ?msg)
}
#MethodArgumentExists_NR EXAMPLE
PREFIX ta:
PREFIX xsd:
PREFIX rdfs:
SELECT DISTINCT ?msg
WHERE {
?s ta:browseName \"http://opcfoundation.org/UA/DI/LockingServicesType\"^^xsd:anyURI .
?s rdfs:subClassOf ?blankNode1 .
?blankNode1 ?p1 ?methodNode .
?methodNode ta:browseName \"http://opcfoundation.org/UA/DI/InitLock\"^^xsd:anyURI .
FILTER NOT EXISTS {
?methodNode rdfs:subClassOf ?blankNode2 .
?blankNode2 ?p2 ?inputArgumentsNode .
?inputArgumentsNode ta:browseName \"http://opcfoundation.org/UA/InputArguments\"^^xsd:anyURI
}
BIND(STR('Method http://opcfoundation.org/UA/DI/InitLock of node http://opcfoundation.org/UA/DI/LockingServicesType does not reference an InputArguments node') as ?msg)
}
#NodeIsSubtypeOf_NR TEMPLATE
PREFIX ta:
PREFIX xsd:
PREFIX ns0:
PREFIX rdfs:
SELECT ?referencedNode
WHERE {
?typeNode ta:browseName \"@@ConstrainedNodeBrowseName@@\"^^xsd:anyURI .
FILTER NOT EXISTS {
?typeNode rdfs:subClassOf \"@@ReferencedNodeBrowseName@@\".
}
BIND(CONCAT(ConstrainedNodeBrowseName is no subtype of \"@@ReferencedNodeBrowseName@"@") as ?msg)
}
#NodeIsSubtypeOf_NR EXAMPLE
PREFIX ta:
PREFIX xsd:
PREFIX ns0:
PREFIX rdfs:
SELECT ?instance ?referencedNode
WHERE {
?typeNode ta:browseName "http://opcfoundation.org/UA/Robotics/Controls"^^xsd:anyURI .
FILTER NOT EXISTS {
?typeNode rdfs:subPropertyOf ns0:hierarchicalReferences.
}
BIND(CONCAT(STR(?instance), STR(' is no subtype of http://opcfoundation.org/UA/hierarchicalReferences')) as ?msg)
}
#ReferencedNodeHasTypeDefinition_TR TEMPLATE
PREFIX ta:
PREFIX xsd:
PREFIX ns0:
PREFIX ia:
SELECT ?msg
WHERE {
?instance ns0:hasTypeDefinition ?typeNode .
?typeNode ta:browseName \"@@BrowseName@@\"^^xsd:anyURI .
?instance ns0:hasComponent ?referencedNode .
?referencedNode ia:browseName \"@@ReferencedNodeBrowseName@@\"^^xsd:anyURI .
FILTER NOT EXISTS {
?referencedNode ns0:hasTypeDefinition ?typeDefinitionNode .
?typeDefinitionNode ta:browseName \"@@TypeDefinition@@\"^^xsd:anyURI
}
BIND(CONCAT(STR(?instance), STR(' does not specifiy hasTypeDefinition @@TypeDefinition@@')) as ?msg)
}
#ReferencedNodeHasTypeDefinition_TR EXAMPLE
PREFIX ta:
PREFIX xsd:
PREFIX ns0:
PREFIX ia:
SELECT ?msg
WHERE {
?instance ns0:hasTypeDefinition ?typeNode .
?typeNode ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType"^^xsd:anyURI .
?instance ns0:hasComponent ?referencedNode .
?referencedNode ia:browseName "http://opcfoundation.org/UA/Robotics/MotionDevices"^^xsd:anyURI .
FILTER NOT EXISTS {
?referencedNode ns0:hasTypeDefinition ?typeDefinitionNode .
?typeDefinitionNode ta:browseName "http://opcfoundation.org/UA/FolderType"^^xsd:anyURI
}
BIND(CONCAT(STR(?instance), STR(' does not specifiy hasTypeDefinition http://opcfoundation.org/UA/FolderType')) as ?msg)
}
#ReferenceCardinalityExactly_TR TEMPLATE
PREFIX ta:
PREFIX xsd:
PREFIX ns0:
PREFIX ia:
SELECT ?msg
WHERE {
?instance ns0:hasTypeDefinition ?typeNode .
?typeNode ta:browseName \"@@ConstrainedNodeBrowseName@@\"^^xsd:anyURI .
?instance ?referenceType ?referencedNode .
?referencedNode ia:browseName \"@@ReferencedNodeBrowseName@@\"^^xsd:anyURI .
BIND(CONCAT(STR(?instance), STR(' does not reference exactly @@Cardinality@@ @@ReferencedNodeBrowseName@@')) as ?msg)
}
GROUP BY ?referencedNode ?msg
HAVING (COUNT(?referencedNode) != @@Value@@)
#ReferenceCardinalityExactly_TR EXAMPLE
PREFIX ta:
PREFIX xsd:
PREFIX ns0:
PREFIX ia:
SELECT ?msg
WHERE {
?instance ns0:hasTypeDefinition ?typeNode .
?typeNode ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType"^^xsd:anyURI .
?instance ns0:hasComponent ?referencedNode .
?referencedNode ia:browseName "http://opcfoundation.org/UA/Robotics/MotionDevices"^^xsd:anyURI .
BIND(CONCAT(STR(?instance), STR(' does not reference exactly 1 http://opcfoundation.org/UA/Robotics/MotionDevices')) as ?msg)
}
GROUP BY ?referencedNode ?msg
HAVING (COUNT(?referencedNode) != 1)
#ReferencedNodeHasDataType_NR TEMPLATE
PREFIX ta:
PREFIX xsd:
PREFIX rdfs:
SELECT ?msg
WHERE {
?s ta:browseName \"@@BrowseName@@\"^^xsd:anyURI .
FILTER NOT EXISTS {
?s rdfs:subClassOf rdfs:subClassOf/(<>|!<>) ?referencedNode1 .
?referencedNode1 ta:browseName \"@@ReferencedNodeBrowseName@@\"^^xsd:anyURI .
?referencedNode1 rdfs:subClassOf/(<>|!<>) ?referencedNode2 .
?referencedNode2 ta:dataType \"@@DataTypeDefinition@@\"^^xsd:anyURI
}
BIND(STR('@@BrowseName@@ does not reference a node with browseName @@ReferencedNodeBrowseName@@ of DataType @@DataTypeDefinition@@') as ?msg) }
#ReferencedNodeHasDataType_NR EXAMPLE
PREFIX ta:
PREFIX xsd:
PREFIX rdfs:
SELECT ?msg
WHERE {
?s ta:browseName \"http://opcfoundation.org/UA/Robotics/MotionDeviceType\"^^xsd:anyURI .
FILTER NOT EXISTS {
?s rdfs:subClassOf rdfs:subClassOf/(<>|!<>) ?referencedNode1 .
?referencedNode1 ta:browseName \"http://opcfoundation.org/UA/DI/Manufacturer\"^^xsd:anyURI .
?referencedNode1 rdfs:subClassOf/(<>|!<>) ?referencedNode2 .
?referencedNode2 ta:dataType \"http://opcfoundation.org/UA/LocalizedText\"^^xsd:anyURI
}
BIND(STR('http://opcfoundation.org/UA/Robotics/MotionDeviceType does not reference a node with browseName http://opcfoundation.org/UA/DI/Manufacturer of DataType http://opcfoundation.org/UA/LocalizedText') as ?msg) }
#ReferencedNodeHasNodeClass_NR TEMPLATE
PREFIX ta:
PREFIX xsd:
PREFIX rdfs:
SELECT ?msg
WHERE {
?s ta:browseName \"@@ConstrainedNodeBrowseName@@\"^^xsd:anyURI .
FILTER NOT EXISTS {
?s rdfs:subClassOf/(<>|!<>) ?referencedNode .
?referencedNode ta:browseName \"@@ReferencedNodeBrowseName@@\"^^xsd:anyURI .
?referencedNode ta:nodeClass \"@@NodeClass@@\"^^xsd:int
}
BIND(STR('@@ConstrainedNodeBrowseName@@ does not reference a node with browseName @@ReferencedNodeBrowseName@@ and node class @@NodeClass@@') as ?msg)
}
#ReferencedNodeHasNodeClass_NR EXAMPLE
PREFIX ta:
PREFIX xsd:
PREFIX rdfs:
SELECT ?msg
WHERE {
?s ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType"^^xsd:anyURI .
FILTER NOT EXISTS {
?s rdfs:subClassOf/(<>|!<>) ?referencedNode .
?referencedNode ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDevices"^^xsd:anyURI .
?referencedNode ta:nodeClass "1"^^xsd:int
}
BIND(STR('http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType does not reference a node with browseName http://opcfoundation.org/UA/Robotics/MotionDevices and node class 1') as ?msg)
}
#ReferencedNodeHasNodeClass_TR TEMPLATE
PREFIX ta:
PREFIX xsd:
PREFIX ns0:
PREFIX ia:
SELECT ?msg
WHERE {
?instance ns0:hasTypeDefinition ?typeNode .
?typeNode ta:browseName \"@@BrowseName@@\"^^xsd:anyURI .
?instance ns0:hasComponent ?referencedNode .
?referencedNode ia:browseName \"@@ReferencedNodeBrowseName@@\"^^xsd:anyURI .
FILTER NOT EXISTS {
?referencedNode ia:nodeClass \"@@NodeClassIndex@@\"^^xsd:int
}
BIND(CONCAT(STR(?instance), STR(' does not reference a node with browse name @@ReferencedNodeBrowseName@@ and node class @@NodeClassIndex@@')) as ?msg)
}
#ReferencedNodeHasNodeClass_TR EXAMPLE
PREFIX ta:
PREFIX xsd:
PREFIX ns0:
PREFIX ia:
SELECT ?msg
WHERE {
?instance ns0:hasTypeDefinition ?typeNode .
?typeNode ta:browseName "http://opcfoundation.org/UA/Robotics/MotionDeviceSystemType"^^xsd:anyURI .
?instance ns0:hasComponent ?referencedNode .
?referencedNode ia:browseName "http://opcfoundation.org/UA/Robotics/MotionDevices"^^xsd:anyURI .
FILTER NOT EXISTS {
?referencedNode ia:nodeClass "1"^^xsd:int
}
BIND(CONCAT(STR(?instance), STR(' does not reference a node with browse name http://opcfoundation.org/UA/Robotics/MotionDevices and node class 1')) as ?msg)
}