knowL: Knowledge Libraries
Loading...
Searching...
No Matches
Node.h
1
2#include <knowCore/Forward.h>
3#include <QMultiHash>
4
5namespace knowRDF
6{
7 class BlankNode;
8 class Subject;
9 class Object;
10 class Graph;
11 class Literal;
12 class Triple;
16 class Node
17 {
18 friend class Graph;
19 public:
20 enum class Type
21 {
22 Undefined, Uri, BlankNode, Literal, Variable
23 };
24 private:
26 Node();
28 Node(const knowCore::Uri& _uri);
30 Node(const BlankNode& _blankNode);
32 Node(const Subject& _subject);
34 Node(const Object& _object);
35 ~Node();
40 void connect(const knowCore::Uri& _predicate, Node* _node);
41 void disconnect(const knowCore::Uri& _predicate, const Object& _object);
42 public:
46 Type type() const;
50 Literal literal() const;
54 knowCore::Uri uri() const;
58 BlankNode blankNode() const;
62 QString variable() const;
63 public:
67 bool equal(const Node* _otherNode) const;
71 QMultiHash<knowCore::Uri, const Node*> children() const;
75 QMultiHash<knowCore::Uri, const Node*> parents() const;
79 bool belongsToClass(const knowCore::Uri& _class) const;
83 bool subClassOf(const knowCore::Uri& _class) const;
87 QList<const Node*> parents(const knowCore::Uri& _predicate) const;
91 QList<const Node*> children(const knowCore::Uri& _predicate) const;
95 bool hasChildren(const knowCore::Uri& _predicate) const;
96 bool hasChildren(const knowCore::UriList& _predicates) const;
100 const Node* getFirstChild(const knowCore::Uri& _predicate) const;
104 static Triple triple(const Node* _subject, const knowCore::Uri& _predicate, const Node* _object);
108 QList<const Node*> getCollection(const knowCore::Uri& _predicate) const;
116 bool isCollection() const;
117 private:
118 struct Private;
119 Private* const d;
120 };
121}
122
123#include <knowCore/Formatter.h>
124
125KNOWCORE_CORE_DECLARE_FORMATTER_ENUM(knowRDF::Node::Type, Undefined, Uri, BlankNode, Literal, Variable);
Definition Forward.h:12
Definition UriList.h:9
Definition Uri.h:14
Definition BlankNode.h:23
Definition Graph.h:10
Definition Literal.h:14
Definition Node.h:17
bool belongsToClass(const knowCore::Uri &_class) const
Definition Node.cpp:295
const Node * getFirstChild(const knowCore::Uri &_predicate) const
Definition Node.cpp:193
knowCore::Uri uri() const
Definition Node.cpp:132
static Triple triple(const Node *_subject, const knowCore::Uri &_predicate, const Node *_object)
Definition Node.cpp:231
bool equal(const Node *_otherNode) const
Definition Node.cpp:208
bool isCollection() const
Definition Node.cpp:290
bool subClassOf(const knowCore::Uri &_class) const
Definition Node.cpp:307
QString variable() const
Definition Node.cpp:127
Literal literal() const
Definition Node.cpp:137
QMultiHash< knowCore::Uri, const Node * > children() const
Definition Node.cpp:174
QList< const Node * > getCollection() const
Definition Node.cpp:283
BlankNode blankNode() const
Definition Node.cpp:122
Type type() const
Definition Node.cpp:142
QMultiHash< knowCore::Uri, const Node * > parents() const
Definition Node.cpp:203
bool hasChildren(const knowCore::Uri &_predicate) const
Definition Node.cpp:179
Definition Object.h:11
Definition Subject.h:18
Definition Triple.h:17
Definition Node.cpp:17