kDB: Knowledge DataBase
Loading...
Searching...
No Matches
Skolemisation.h
1#include <QUuid>
2
3#include "BlankNode.h"
4#include <knowCore/Uris/askcore_db.h>
5
6namespace knowRDF
7{
8 inline QString blankNodeSkolemisation(const BlankNode& _blankNode)
9 {
10 QString uuidString = _blankNode.uuid().toString();
11 uuidString = uuidString.mid(1, uuidString.length() - 2); // Remove the {}
12 if(not _blankNode.label().isEmpty())
13 {
14 uuidString += "?" + _blankNode.label();
15 }
16 return knowCore::Uris::askcore_db_blank::base.resolved(uuidString);
17 }
18 inline bool isBlankNodeSkolemisation(const knowCore::Uri& _uri)
19 {
20 return QString(_uri).startsWith(knowCore::Uris::askcore_db_blank::base);
21 }
25 inline QPair<QString, QString> parseBlankNodeUri(const knowCore::Uri& _uri)
26 {
27 QString str = _uri;
28 int index_question = str.indexOf('?');
29 QString label;
30 if(index_question > 0)
31 {
32 label = str.right(str.length() - index_question - 1);
33 str = str.left(index_question - 1);
34 }
35 return {str.right(str.size() - ((QString)knowCore::Uris::askcore_db_blank::base).size()),
36 label};
37 }
38} // namespace knowRDF
Definition Uri.h:15