kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Node.h
1
2#include <QMultiHash>
3#include <knowCore/Forward.h>
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,
23 Uri,
25 Literal,
26 Variable
27 };
28 private:
30 Node();
32 Node(const knowCore::Uri& _uri);
34 Node(const BlankNode& _blankNode);
37 Node(const Subject& _subject);
40 Node(const Object& _object);
41 ~Node();
47 void connect(const knowCore::Uri& _predicate, Node* _node);
48 void disconnect(const knowCore::Uri& _predicate, const Object& _object);
49 public:
53 Type type() const;
57 Literal literal() const;
61 knowCore::Uri uri() const;
65 BlankNode blankNode() const;
69 QString variable() const;
70 public:
74 bool equal(const Node* _otherNode) const;
78 QMultiHash<knowCore::Uri, const Node*> children() const;
82 QMultiHash<knowCore::Uri, const Node*> parents() const;
87 bool belongsToClass(const knowCore::Uri& _class) const;
92 bool subClassOf(const knowCore::Uri& _class) const;
96 QList<const Node*> parents(const knowCore::Uri& _predicate) const;
100 QList<const Node*> children(const knowCore::Uri& _predicate) const;
104 bool hasChildren(const knowCore::Uri& _predicate) const;
105 bool hasChildren(const knowCore::UriList& _predicates) const;
109 const Node* getFirstChild(const knowCore::Uri& _predicate) const;
114 static Triple triple(const Node* _subject, const knowCore::Uri& _predicate,
115 const Node* _object);
119 QList<const Node*> getCollection(const knowCore::Uri& _predicate) const;
127 bool isCollection() const;
128 private:
129 struct Private;
130 Private* const d;
131 };
132} // namespace knowRDF
133
134#include <knowCore/Formatter.h>
135
136clog_format_declare_enum_formatter(knowRDF::Node::Type, Undefined, Uri, BlankNode, Literal,
137 Variable);
Definition Revision.h:9
Definition UriList.h:9
Definition Uri.h:15
Definition BlankNode.h:25
Definition Graph.h:10
Definition Literal.h:14
Definition Node.h:17
bool belongsToClass(const knowCore::Uri &_class) const
Definition Node.cpp:278
const Node * getFirstChild(const knowCore::Uri &_predicate) const
Definition Node.cpp:174
knowCore::Uri uri() const
Definition Node.cpp:121
static Triple triple(const Node *_subject, const knowCore::Uri &_predicate, const Node *_object)
Definition Node.cpp:211
bool equal(const Node *_otherNode) const
Definition Node.cpp:186
bool isCollection() const
Definition Node.cpp:272
bool subClassOf(const knowCore::Uri &_class) const
Definition Node.cpp:290
QString variable() const
Definition Node.cpp:119
Literal literal() const
Definition Node.cpp:123
QMultiHash< knowCore::Uri, const Node * > children() const
Definition Node.cpp:157
QList< const Node * > getCollection() const
Definition Node.cpp:265
BlankNode blankNode() const
Definition Node.cpp:117
Type type() const
Definition Node.cpp:125
QMultiHash< knowCore::Uri, const Node * > parents() const
Definition Node.cpp:184
bool hasChildren(const knowCore::Uri &_predicate) const
Definition Node.cpp:159
Definition Object.h:11
Definition Subject.h:21
Definition Triple.h:19
Definition Node.cpp:17