hydra-0.1.0: src/gen-main/haskell/Hydra/Ext/Shacl/Model.hs
-- | A SHACL syntax model. See https://www.w3.org/TR/shacl
module Hydra.Ext.Shacl.Model where
import qualified Hydra.Core as Core
import qualified Hydra.Ext.Rdf.Syntax as Syntax
import Data.List
import Data.Map
import Data.Set
-- | See https://www.w3.org/TR/shacl/#ClosedPatterConstraintComponent
data Closed =
Closed {
closedIsClosed :: Bool,
closedIgnoredProperties :: (Maybe (Set Syntax.Property))}
deriving (Eq, Ord, Read, Show)
_Closed = (Core.Name "hydra/ext/shacl/model.Closed")
_Closed_isClosed = (Core.FieldName "isClosed")
_Closed_ignoredProperties = (Core.FieldName "ignoredProperties")
-- | Any of a number of constraint parameters which can be applied either to node or property shapes
data CommonConstraint =
-- | See https://www.w3.org/TR/shacl/#AndConstraintComponent
CommonConstraintAnd (Set (Reference Shape)) |
-- | See https://www.w3.org/TR/shacl/#ClosedConstraintComponent
CommonConstraintClosed Closed |
-- | See https://www.w3.org/TR/shacl/#ClassConstraintComponent
CommonConstraintClass (Set Syntax.RdfsClass) |
-- | See https://www.w3.org/TR/shacl/#DatatypeConstraintComponent
CommonConstraintDatatype Syntax.Iri |
-- | See https://www.w3.org/TR/shacl/#DisjointConstraintComponent
CommonConstraintDisjoint (Set Syntax.Property) |
-- | See https://www.w3.org/TR/shacl/#EqualsConstraintComponent
CommonConstraintEquals (Set Syntax.Property) |
-- | Specifies the condition that at least one value node is equal to the given RDF term. See https://www.w3.org/TR/shacl/#HasValueConstraintComponent
CommonConstraintHasValue (Set Syntax.Node) |
-- | Specifies the condition that each value node is a member of a provided SHACL list. See https://www.w3.org/TR/shacl/#InConstraintComponent
CommonConstraintIn [Syntax.Node] |
-- | See https://www.w3.org/TR/shacl/#LanguageInConstraintComponent
CommonConstraintLanguageIn (Set Syntax.LanguageTag) |
-- | See https://www.w3.org/TR/shacl/#NodeKindConstraintComponent
CommonConstraintNodeKind NodeKind |
-- | See https://www.w3.org/TR/shacl/#NodeConstraintComponent
CommonConstraintNode (Set (Reference NodeShape)) |
-- | See https://www.w3.org/TR/shacl/#NotConstraintComponent
CommonConstraintNot (Set (Reference Shape)) |
-- | See https://www.w3.org/TR/shacl/#MaxExclusiveConstraintComponent
CommonConstraintMaxExclusive Syntax.Literal |
-- | See https://www.w3.org/TR/shacl/#MaxInclusiveConstraintComponent
CommonConstraintMaxInclusive Syntax.Literal |
-- | See https://www.w3.org/TR/shacl/#MaxLengthConstraintComponent
CommonConstraintMaxLength Integer |
-- | See https://www.w3.org/TR/shacl/#MinExclusiveConstraintComponent
CommonConstraintMinExclusive Syntax.Literal |
-- | See https://www.w3.org/TR/shacl/#MinInclusiveConstraintComponent
CommonConstraintMinInclusive Syntax.Literal |
-- | See https://www.w3.org/TR/shacl/#MinLengthConstraintComponent
CommonConstraintMinLength Integer |
-- | See https://www.w3.org/TR/shacl/#PatternConstraintComponent
CommonConstraintPattern Pattern |
-- | See https://www.w3.org/TR/shacl/#PropertyConstraintComponent
CommonConstraintProperty (Set (Reference PropertyShape)) |
-- | See https://www.w3.org/TR/shacl/#OrConstraintComponent
CommonConstraintOr (Set (Reference Shape)) |
-- | See https://www.w3.org/TR/shacl/#XoneConstraintComponent
CommonConstraintXone (Set (Reference Shape))
deriving (Eq, Ord, Read, Show)
_CommonConstraint = (Core.Name "hydra/ext/shacl/model.CommonConstraint")
_CommonConstraint_and = (Core.FieldName "and")
_CommonConstraint_closed = (Core.FieldName "closed")
_CommonConstraint_class = (Core.FieldName "class")
_CommonConstraint_datatype = (Core.FieldName "datatype")
_CommonConstraint_disjoint = (Core.FieldName "disjoint")
_CommonConstraint_equals = (Core.FieldName "equals")
_CommonConstraint_hasValue = (Core.FieldName "hasValue")
_CommonConstraint_in = (Core.FieldName "in")
_CommonConstraint_languageIn = (Core.FieldName "languageIn")
_CommonConstraint_nodeKind = (Core.FieldName "nodeKind")
_CommonConstraint_node = (Core.FieldName "node")
_CommonConstraint_not = (Core.FieldName "not")
_CommonConstraint_maxExclusive = (Core.FieldName "maxExclusive")
_CommonConstraint_maxInclusive = (Core.FieldName "maxInclusive")
_CommonConstraint_maxLength = (Core.FieldName "maxLength")
_CommonConstraint_minExclusive = (Core.FieldName "minExclusive")
_CommonConstraint_minInclusive = (Core.FieldName "minInclusive")
_CommonConstraint_minLength = (Core.FieldName "minLength")
_CommonConstraint_pattern = (Core.FieldName "pattern")
_CommonConstraint_property = (Core.FieldName "property")
_CommonConstraint_or = (Core.FieldName "or")
_CommonConstraint_xone = (Core.FieldName "xone")
-- | Common constraint parameters and other properties for SHACL shapes
data CommonProperties =
CommonProperties {
-- | Common constraint parameters attached to this shape
commonPropertiesConstraints :: (Set CommonConstraint),
-- | See https://www.w3.org/TR/shacl/#deactivated
commonPropertiesDeactivated :: (Maybe Bool),
-- | See https://www.w3.org/TR/shacl/#message
commonPropertiesMessage :: Syntax.LangStrings,
-- | See https://www.w3.org/TR/shacl/#severity
commonPropertiesSeverity :: Severity,
-- | See https://www.w3.org/TR/shacl/#targetClass
commonPropertiesTargetClass :: (Set Syntax.RdfsClass),
-- | See https://www.w3.org/TR/shacl/#targetNode
commonPropertiesTargetNode :: (Set Syntax.IriOrLiteral),
-- | See https://www.w3.org/TR/shacl/#targetObjectsOf
commonPropertiesTargetObjectsOf :: (Set Syntax.Property),
-- | See https://www.w3.org/TR/shacl/#targetSubjectsOf
commonPropertiesTargetSubjectsOf :: (Set Syntax.Property)}
deriving (Eq, Ord, Read, Show)
_CommonProperties = (Core.Name "hydra/ext/shacl/model.CommonProperties")
_CommonProperties_constraints = (Core.FieldName "constraints")
_CommonProperties_deactivated = (Core.FieldName "deactivated")
_CommonProperties_message = (Core.FieldName "message")
_CommonProperties_severity = (Core.FieldName "severity")
_CommonProperties_targetClass = (Core.FieldName "targetClass")
_CommonProperties_targetNode = (Core.FieldName "targetNode")
_CommonProperties_targetObjectsOf = (Core.FieldName "targetObjectsOf")
_CommonProperties_targetSubjectsOf = (Core.FieldName "targetSubjectsOf")
-- | An instance of a type like sh:Shape or sh:NodeShape, together with a unique IRI for that instance
data Definition a =
Definition {
definitionIri :: Syntax.Iri,
definitionTarget :: a}
deriving (Eq, Ord, Read, Show)
_Definition = (Core.Name "hydra/ext/shacl/model.Definition")
_Definition_iri = (Core.FieldName "iri")
_Definition_target = (Core.FieldName "target")
data NodeKind =
-- | A blank node
NodeKindBlankNode |
-- | An IRI
NodeKindIri |
-- | A literal
NodeKindLiteral |
-- | A blank node or an IRI
NodeKindBlankNodeOrIri |
-- | A blank node or a literal
NodeKindBlankNodeOrLiteral |
-- | An IRI or a literal
NodeKindIriOrLiteral
deriving (Eq, Ord, Read, Show)
_NodeKind = (Core.Name "hydra/ext/shacl/model.NodeKind")
_NodeKind_blankNode = (Core.FieldName "blankNode")
_NodeKind_iri = (Core.FieldName "iri")
_NodeKind_literal = (Core.FieldName "literal")
_NodeKind_blankNodeOrIri = (Core.FieldName "blankNodeOrIri")
_NodeKind_blankNodeOrLiteral = (Core.FieldName "blankNodeOrLiteral")
_NodeKind_iriOrLiteral = (Core.FieldName "iriOrLiteral")
-- | A SHACL node shape. See https://www.w3.org/TR/shacl/#node-shapes
data NodeShape =
NodeShape {
nodeShapeCommon :: CommonProperties}
deriving (Eq, Ord, Read, Show)
_NodeShape = (Core.Name "hydra/ext/shacl/model.NodeShape")
_NodeShape_common = (Core.FieldName "common")
-- | A SHACL pattern. See https://www.w3.org/TR/shacl/#PatternConstraintComponent
data Pattern =
Pattern {
patternRegex :: String,
patternFlags :: (Maybe String)}
deriving (Eq, Ord, Read, Show)
_Pattern = (Core.Name "hydra/ext/shacl/model.Pattern")
_Pattern_regex = (Core.FieldName "regex")
_Pattern_flags = (Core.FieldName "flags")
-- | A SHACL property shape. See https://www.w3.org/TR/shacl/#property-shapes
data PropertyShape =
PropertyShape {
propertyShapeCommon :: CommonProperties,
-- | Any property shape -specific constraint parameters
propertyShapeConstraints :: (Set PropertyShapeConstraint),
-- | See https://www.w3.org/TR/shacl/#defaultValue
propertyShapeDefaultValue :: (Maybe Syntax.Node),
-- | See https://www.w3.org/TR/shacl/#name
propertyShapeDescription :: Syntax.LangStrings,
-- | See https://www.w3.org/TR/shacl/#name
propertyShapeName :: Syntax.LangStrings,
-- | See https://www.w3.org/TR/shacl/#order
propertyShapeOrder :: (Maybe Integer),
propertyShapePath :: Syntax.Iri}
deriving (Eq, Ord, Read, Show)
_PropertyShape = (Core.Name "hydra/ext/shacl/model.PropertyShape")
_PropertyShape_common = (Core.FieldName "common")
_PropertyShape_constraints = (Core.FieldName "constraints")
_PropertyShape_defaultValue = (Core.FieldName "defaultValue")
_PropertyShape_description = (Core.FieldName "description")
_PropertyShape_name = (Core.FieldName "name")
_PropertyShape_order = (Core.FieldName "order")
_PropertyShape_path = (Core.FieldName "path")
-- | A number of constraint parameters which are specific to property shapes, and cannot be applied to node shapes
data PropertyShapeConstraint =
-- | See https://www.w3.org/TR/shacl/#LessThanConstraintComponent
PropertyShapeConstraintLessThan (Set Syntax.Property) |
-- | See https://www.w3.org/TR/shacl/#LessThanOrEqualsConstraintComponent
PropertyShapeConstraintLessThanOrEquals (Set Syntax.Property) |
-- | The maximum cardinality. Node shapes cannot have any value for sh:maxCount. See https://www.w3.org/TR/shacl/#MaxCountConstraintComponent
PropertyShapeConstraintMaxCount Integer |
-- | The minimum cardinality. Node shapes cannot have any value for sh:minCount. See https://www.w3.org/TR/shacl/#MinCountConstraintComponent
PropertyShapeConstraintMinCount Integer |
-- | See https://www.w3.org/TR/shacl/#UniqueLangConstraintComponent
PropertyShapeConstraintUniqueLang Bool |
-- | See https://www.w3.org/TR/shacl/#QualifiedValueShapeConstraintComponent
PropertyShapeConstraintQualifiedValueShape QualifiedValueShape
deriving (Eq, Ord, Read, Show)
_PropertyShapeConstraint = (Core.Name "hydra/ext/shacl/model.PropertyShapeConstraint")
_PropertyShapeConstraint_lessThan = (Core.FieldName "lessThan")
_PropertyShapeConstraint_lessThanOrEquals = (Core.FieldName "lessThanOrEquals")
_PropertyShapeConstraint_maxCount = (Core.FieldName "maxCount")
_PropertyShapeConstraint_minCount = (Core.FieldName "minCount")
_PropertyShapeConstraint_uniqueLang = (Core.FieldName "uniqueLang")
_PropertyShapeConstraint_qualifiedValueShape = (Core.FieldName "qualifiedValueShape")
-- | See https://www.w3.org/TR/shacl/#QualifiedValueShapeConstraintComponent
data QualifiedValueShape =
QualifiedValueShape {
qualifiedValueShapeQualifiedValueShape :: (Reference Shape),
qualifiedValueShapeQualifiedMaxCount :: Integer,
qualifiedValueShapeQualifiedMinCount :: Integer,
qualifiedValueShapeQualifiedValueShapesDisjoint :: (Maybe Bool)}
deriving (Eq, Ord, Read, Show)
_QualifiedValueShape = (Core.Name "hydra/ext/shacl/model.QualifiedValueShape")
_QualifiedValueShape_qualifiedValueShape = (Core.FieldName "qualifiedValueShape")
_QualifiedValueShape_qualifiedMaxCount = (Core.FieldName "qualifiedMaxCount")
_QualifiedValueShape_qualifiedMinCount = (Core.FieldName "qualifiedMinCount")
_QualifiedValueShape_qualifiedValueShapesDisjoint = (Core.FieldName "qualifiedValueShapesDisjoint")
-- | Either an instance of a type like sh:Shape or sh:NodeShape, or an IRI which refers to an instance of that type
data Reference a =
ReferenceNamed Syntax.Iri |
-- | An anonymous instance
ReferenceAnonymous a |
-- | An inline definition
ReferenceDefinition (Definition a)
deriving (Eq, Ord, Read, Show)
_Reference = (Core.Name "hydra/ext/shacl/model.Reference")
_Reference_named = (Core.FieldName "named")
_Reference_anonymous = (Core.FieldName "anonymous")
_Reference_definition = (Core.FieldName "definition")
data Severity =
-- | A non-critical constraint violation indicating an informative message
SeverityInfo |
-- | A non-critical constraint violation indicating a warning
SeverityWarning |
-- | A constraint violation
SeverityViolation
deriving (Eq, Ord, Read, Show)
_Severity = (Core.Name "hydra/ext/shacl/model.Severity")
_Severity_info = (Core.FieldName "info")
_Severity_warning = (Core.FieldName "warning")
_Severity_violation = (Core.FieldName "violation")
-- | A SHACL node or property shape. See https://www.w3.org/TR/shacl/#shapes
data Shape =
ShapeNode NodeShape |
ShapeProperty PropertyShape
deriving (Eq, Ord, Read, Show)
_Shape = (Core.Name "hydra/ext/shacl/model.Shape")
_Shape_node = (Core.FieldName "node")
_Shape_property = (Core.FieldName "property")
-- | An RDF graph containing zero or more shapes that is passed into a SHACL validation process so that a data graph can be validated against the shapes
newtype ShapesGraph =
ShapesGraph {
-- | An RDF graph containing zero or more shapes that is passed into a SHACL validation process so that a data graph can be validated against the shapes
unShapesGraph :: (Set (Definition Shape))}
deriving (Eq, Ord, Read, Show)
_ShapesGraph = (Core.Name "hydra/ext/shacl/model.ShapesGraph")