/// <summary> /// Evaluates this constraint against the given data graph /// </summary> internal override RDFValidationReport ValidateConstraint(RDFShapesGraph shapesGraph, RDFGraph dataGraph, RDFShape shape, RDFPatternMember focusNode, List <RDFPatternMember> valueNodes) { RDFValidationReport report = new RDFValidationReport(); #region Evaluation List <RDFPatternMember> predicateNodes = dataGraph.Where(t => t.Subject.Equals(focusNode) && t.Predicate.Equals(this.LessThanPredicate)) .Select(x => x.Object) .ToList(); foreach (RDFPatternMember valueNode in valueNodes) { foreach (RDFPatternMember predicateNode in predicateNodes) { int comparison = RDFQueryUtilities.CompareRDFPatternMembers(valueNode, predicateNode); if (comparison == -99 || comparison >= 0) { report.AddResult(new RDFValidationResult(shape, RDFVocabulary.SHACL.LESS_THAN_CONSTRAINT_COMPONENT, focusNode, shape is RDFPropertyShape ? ((RDFPropertyShape)shape).Path : null, valueNode, shape.Messages, shape.Severity)); } } } #endregion return(report); }
/// <summary> /// Evaluates this constraint against the given data graph /// </summary> internal override RDFValidationReport ValidateConstraint(RDFShapesGraph shapesGraph, RDFGraph dataGraph, RDFShape shape, RDFPatternMember focusNode, List <RDFPatternMember> valueNodes) { RDFValidationReport report = new RDFValidationReport(); #region Evaluation foreach (RDFPatternMember valueNode in valueNodes) { Int32 comparison = RDFQueryUtilities.CompareRDFPatternMembers(this.Value, valueNode); if (comparison == -99 || comparison <= 0) { report.AddResult(new RDFValidationResult(shape, RDFVocabulary.SHACL.MAX_EXCLUSIVE_CONSTRAINT_COMPONENT, focusNode, shape is RDFPropertyShape ? ((RDFPropertyShape)shape).Path : null, valueNode, shape.Messages, shape.Severity)); } } #endregion return(report); }