knowL: Knowledge Libraries
Loading...
Searching...
No Matches
Validator.h
1#ifndef VALIDATOR_H_INCLUDED
2#define VALIDATOR_H_INCLUDED
3
4#include <QExplicitlySharedDataPointer>
5
6#include <knowCore/FileFormat.h>
7#include <knowCore/Value.h>
8
9#include "Forward.h"
10#include "Severity.h"
11
12namespace knowSHACL
13{
20 {
21 public:
22 Validator();
23 Validator(const Validator& _rhs);
24 Validator& operator=(const Validator& _rhs);
25 ~Validator();
33 cres_qresult<ValidationResults> validate(const knowRDF::Graph& _graph);
37 cres_qresult<ValidationResults> validate(const QUrl& _graph_uri,
38 const QString& _format = knowCore::FileFormat::Turtle);
42 cres_qresult<ValidationResults> validate(QIODevice* _graph_data, const knowCore::Uri& _base,
43 const QString& _format = knowCore::FileFormat::Turtle);
47 cres_qresult<ValidationResults> validate(const knowCore::Uri& _graph_uri,
48 const QString& _format = knowCore::FileFormat::Turtle);
49 public:
53 static cres_qresult<Validator> create(const QString& _validator_def,
54 const QString& _format = knowCore::FileFormat::Turtle);
58 static cres_qresult<Validator> create(const QUrl& _validator_url,
59 const QString& _format = knowCore::FileFormat::Turtle);
63 static cres_qresult<Validator> create(const knowCore::Uri& _validator_url,
64 const QString& _format = knowCore::FileFormat::Turtle);
68 static cres_qresult<Validator> create(const knowRDF::Graph& _graph);
69 private:
70 QList<const knowRDF::Node*> follow(const knowRDF::Node* _node, const Path& _path);
71 cres_qresult<bool> validate(const knowRDF::Node* _node, const Constraint& _shape,
72 QList<ValidationResult>* _results, const knowRDF::Node* _focus_node,
73 const Path& _path, const knowCore::Uri& _source_shape);
74 cres_qresult<bool> validate(const knowRDF::Node* _node, const PropertyShape& _shape,
76 const knowCore::Uri& _source_shape);
77 cres_qresult<bool> validate(const knowRDF::Node* _node, const NodeShape& _shape,
79 const knowCore::Uri& _source_shape);
80 ValidationResult createValidationResult(const knowRDF::Node* _node, const Path& _path,
81 Severity _severity,
82 const knowCore::Uri& _sourceConstraintComponent,
83 const knowCore::Uri& _sourceShape,
84 const knowRDF::Node* _value);
85 ValidationResult createValidationResult(const knowRDF::Node* _node, const Path& _path,
86 Severity _severity,
87 const knowCore::Uri& _sourceConstraintComponent,
88 const knowCore::Uri& _sourceShape,
89 const knowCore::Value& _value);
90 template<typename _T_>
91 ValidationResult createValidationResult(const knowRDF::Node* _node, const Path& _path,
92 Severity _severity,
93 const knowCore::Uri& _sourceConstraintComponent,
94 const knowCore::Uri& _sourceShape, const _T_& _value);
95 private:
96 struct Private;
97 QExplicitlySharedDataPointer<Private> d;
98 };
99} // namespace knowSHACL
100
101#endif // VALIDATOR_H_INCLUDED
Definition Forward.h:14
Definition Uri.h:15
Definition Value.h:21
Definition Graph.h:10
Definition Node.h:17
Definition Constraint.h:16
Definition Definition.h:15
Definition NodeShape.h:14
Definition Path.h:15
Definition PropertyShape.h:14
Definition ValidationResult.h:11
Definition Validator.h:20
Definition definition() const
static cres_qresult< Validator > create(const QString &_validator_def, const QString &_format=knowCore::FileFormat::Turtle)
cres_qresult< ValidationResults > validate(const knowRDF::Graph &_graph)
Definition Validator.cpp:1096
Definition Validator.cpp:38