C++: Add Classification object
authorjani <jani@asema.com>
Wed, 10 Jul 2019 13:22:51 +0000 (16:22 +0300)
committerjani <jani@asema.com>
Wed, 10 Jul 2019 13:22:51 +0000 (16:22 +0300)
Common/C++/SmartAPI/smartapi.pro
Common/C++/SmartAPI/smartapi/agents/SearchAgent.cpp
Common/C++/SmartAPI/smartapi/model/CalculationMethod.h
Common/C++/SmartAPI/smartapi/model/Classification.cpp [new file with mode: 0644]
Common/C++/SmartAPI/smartapi/model/Classification.h [new file with mode: 0644]
Common/Java/SmartAPI/src/smartapi/common/DATATYPE.java
Ontology/src/1.0/CommonStructureOntology-1.0.ttl
Ontology/src/1.0/DataOntology-1.0.ttl
Ontology/src/1.0/EntityOntology-1.0.ttl
Ontology/src/1.0/NetworkingOntology-1.0.ttl

index 2e448cd4edffc0ec2cb603159a6e67c943fa0226..7f405b41366c0280d842c2d75ddb746e074d9fbb 100644 (file)
@@ -91,6 +91,7 @@ SOURCES += smartapi/agents/Agent.cpp \
         smartapi/model/Authorization.cpp \
         smartapi/model/Availability.cpp \
         smartapi/model/Capacity.cpp \
+        smartapi/model/Classification.cpp \
         smartapi/model/Condition.cpp \
         smartapi/model/Contract.cpp \
         smartapi/model/Controllability.cpp \
@@ -230,6 +231,7 @@ HEADERS += smartapi/agents/Agent.h \
         smartapi/model/Authorization.h \
         smartapi/model/Availability.h \
         smartapi/model/Capacity.h \
+        smartapi/model/Classification.h \
         smartapi/model/Condition.h \
         smartapi/model/Contract.h \
         smartapi/model/Controllability.h \
index 0c997cc3dc16a46ac97d5d4638c3d9771329b24a..465dde0a862fe4e4de77ff45a5087482cd1166d8 100644 (file)
@@ -5,6 +5,7 @@
 #include "smartapi/common/ACTIVITIES.h"
 #include "smartapi/factory/RequestFactory.h"
 #include "smartapi/model/Response.h"
+#include "smartapi/model/Classification.h"
 
 
 SearchAgent::SearchAgent(QString myId, QNetworkAccessManager* am) :
@@ -340,13 +341,16 @@ void SearchAgent::ofTopic(QString searchString, bool exactMatch)
 
 void SearchAgent::ofTheme(QString searchString, bool exactMatch)
 {
+       Classification* classification = new Classification();
+       classification->addType(NS__SMARTAPI + "Theme");
        if (exactMatch) {
-               mEntity->add(PROPERTY__THEME, searchString);
+               classification->add(PROPERTY__RDFS_LABEL, searchString);
        } else {
                Condition* condition = new Condition();
                condition->addRegex("(?i)" + searchString);
-               mEntity->add(PROPERTY__THEME, condition);
+               classification->add(PROPERTY__RDFS_LABEL, condition);
        }
+       mEntity->add(PROPERTY__CLASSIFICATION, classification);
 }
 
 void SearchAgent::ofLocality(QString searchString, bool exactMatch)
index a11314b8a8eaf5ff98feba620199d7434bace0dc..039f37cdc865556b21bfcdf376b6c9cefb7f403f 100644 (file)
@@ -6,9 +6,9 @@
 class CalculationMethod : public Calculable
 {
 public:
-    CalculationMethod(QString identifierUri = QString());
-    CalculationMethod(CalculationMethod* o);
-    ~CalculationMethod();
+       CalculationMethod(QString identifierUri = QString());
+       CalculationMethod(CalculationMethod* o);
+       ~CalculationMethod();
 };
 
 #endif // CALCULATIONMETHOD_H
diff --git a/Common/C++/SmartAPI/smartapi/model/Classification.cpp b/Common/C++/SmartAPI/smartapi/model/Classification.cpp
new file mode 100644 (file)
index 0000000..a14e41d
--- /dev/null
@@ -0,0 +1,43 @@
+#include "Classification.h"
+#include "smartapi/common/PROPERTY.h"
+
+
+Classification::Classification()
+       : Obj()
+{
+       setType(RESOURCE__CLASSIFICATION);
+}
+
+Classification::Classification(QString uri)
+       : Obj(uri)
+{
+       setType(RESOURCE__CLASSIFICATION);
+}
+
+Classification::Classification(Classification* g)
+       : Obj(g)
+{
+       setType(RESOURCE__CLASSIFICATION);
+}
+
+Classification::~Classification()
+{
+}
+
+void Classification::clearReferences(QSet<GraphItem*>* trash)
+{
+       INIT_CLEAR(Obj, trash);
+       FINISH_CLEAR(Obj, trash);
+}
+
+Resource* Classification::serialize(Model* model)
+{
+       INIT_SERIALIZE(Obj, model)
+       FINISH_SERIALIZE(Obj)
+}
+
+void Classification::parse(Statement* statement)
+{
+       INIT_PARSE(statement)
+       FINISH_PARSE(Obj)
+}
diff --git a/Common/C++/SmartAPI/smartapi/model/Classification.h b/Common/C++/SmartAPI/smartapi/model/Classification.h
new file mode 100644 (file)
index 0000000..8406cd0
--- /dev/null
@@ -0,0 +1,23 @@
+#ifndef CLASSIFICATION_H
+#define CLASSIFICATION_H
+
+#include "smartapi/model/Obj.h"
+
+#include <QString>
+
+class Classification : public Obj
+{
+public:
+       Classification();
+       Classification(QString uri);
+       Classification(Classification* g);
+       ~Classification();
+
+       Resource* serialize(Model* model);
+       void parse(Statement* statement);
+       void clearReferences(QSet<GraphItem*>* trash);
+
+private:
+};
+
+#endif // CLASSIFICATION_H
index f4463ca8d459dcbe42331dc714586f457ef09d91..b4701bb24b9469c8d9ff7818103ef0fb4bd817b2 100644 (file)
@@ -1,6 +1,6 @@
 // This file is automatically created by HeaderFileGenerator.
 // Do not edit manually.
-// Generation time 2019/07/10 00:45:04
+// Generation time 2019/07/10 16:15:47
 
 package smartapi.common;
 
index 767afd0e5b5a83bd48254b90135bf7d6f8893186..476a4dbc8f9a0b9e06b57d7986c487db62fa7689 100644 (file)
@@ -406,6 +406,7 @@ smartapi:property a owl:ObjectProperty;
   rdfs:range rdf:Property ;
   vs:term_status "testing" .
 
+
 # network interface description
 
 smartapi:interface a owl:ObjectProperty;
@@ -457,6 +458,14 @@ smartapi:contentType a owl:DatatypeProperty;
   rdfs:range xsd:string ;
   vs:term_status "testing" .
 
+smartapi:topic a owl:DatatypeProperty ;
+  rdfs:label "Topic"@en ;
+  rdfs:comment "A topic for the data that is being processed. May also be used as a technical classifier (e.g. in MQTT protocol)"@en ;
+  rdfs:isDefinedBy smartapi:DCommonStructureOntology ;
+  rdfs:range xsd:string ;
+  vs:term_status "testing" .
+
+
 # ability, availability, controllability, validity
 
 smartapi:Ability a owl:Class ;
index 37678c39b58c7acd54e4cae7e27ee3e7aa46b778..623cee7685cf50e07f8257956247414d3106ff5a 100644 (file)
@@ -241,20 +241,18 @@ smartapi:step a owl:DatatypeProperty ;
 
 # classification by theme and topic
 
-smartapi:topic a owl:DatatypeProperty ;
-  rdfs:label "Topic"@en ;
-  rdfs:comment "A topic for the data that is being processed. May also be used as a technical classifier (e.g. in MQTT protocol)"@en ;
-  rdfs:isDefinedBy smartapi:DataOntology ;
-  rdfs:range xsd:string ;
-  vs:term_status "testing" .
+smartapi:Classification a owl:Class ;
+  rdfs:label "Classification"@en ;
+  rdfs:comment "A classification of an entity or data. Classifications are objects and can therefore carry more information than just types, e.g. localizations of the descriptions of classification reasons."@en ;
+  rdfs:subClassOf smartapi:Obj ;
+  rdfs:isDefinedBy smartapi:DataOntology .
+  
+smartapi:classification a owl:ObjectProperty ;
+  rdfs:label "Classification"@en ;
+  rdfs:comment "The property of an entity that carries the classification."@en ;
+  rdfs:domain smartapi:Entity ;
+  rdfs:isDefinedBy smartapi:DataOntology .
   
-smartapi:theme a owl:DatatypeProperty ;
-  rdfs:label "Theme"@en ;
-  rdfs:comment "The theme of the data that is being processed."@en ;
-  rdfs:isDefinedBy smartapi:DataOntology ;
-  rdfs:range xsd:string ;
-  vs:term_status "testing" .
-
 
 # generic trading terms
 
@@ -275,7 +273,7 @@ smartapi:TemporalEntity a owl:Class ;
 
 smartapi:Instant a owl:Class ;
   rdfs:label "Instant"@en ;
-  rdfs:comment "A simplification of instant in owl time. note that property smartapi:instant links directly to xsd:dateTime not smartapi:Instant."@en ;
+  rdfs:comment "A simplification of instant in owl time. Note that property smartapi:instant links directly to xsd:dateTime not smartapi:Instant."@en ;
   rdfs:isDefinedBy smartapi:DataOntology ;
   rdfs:subClassOf smartapi:TemporalEntity;
   vs:term_status "testing".
index 2809968c498a5c21d0be0c19db546782dbc73f3e..868532774eabfd35712f45e2258b5cc6d3d6c005 100644 (file)
@@ -329,6 +329,7 @@ smartapi:target a owl:ObjectProperty ;
   rdfs:range smartapi:Object ;
   rdfs:isDefinedBy smartapi:EntityOntology .
 
+
 # entity properties
 
 smartapi:screenshot a owl:ObjectProperty ;
index b694e46fb03b51a808f1e0cfb6e2082de4efc8b6..7080a67567423a6bc0029aa63d3aaa697411609a 100644 (file)
@@ -109,6 +109,7 @@ smartapi:OfferResponse a owl:Class ;
   rdfs:subClassOf smartapi:Response ;
   vs:term_status "testing" .
   
+  
 # heartbeat
 
 smartapi:Heartbeat a owl:Class ;
@@ -126,6 +127,7 @@ smartapi:heartbeat a owl:ObjectProperty ;
   rdfs:range smartapi:Heartbeat;
   vs:term_status "testing" .
   
+  
 # general message properties
 
 smartapi:id a owl:DatatypeProperty ;
@@ -211,15 +213,16 @@ smartapi:recursionProperty a owl:ObjectProperty ;
   rdfs:range rdf:Property ;
   vs:term_status "testing" .
 
+
 # input and output
 
 smartapi:hasDataResource a owl:ObjectProperty;
   rdfs:label "Has data resource"@en ;
   rdfs:comment "A data resource related to activity."@en ;
   rdfs:domain smartapi:Activity ;
-  rdfs:range smartapi:Evaluation ;  
+  rdfs:range smartapi:Evaluation ;
   vs:term_status "testing" ;
-  rdfs:isDefinedBy smartapi:NetworkingOntology .  
+  rdfs:isDefinedBy smartapi:NetworkingOntology .
   
 smartapi:Input a owl:Class ;
   rdfs:label "Input"@en ;
@@ -267,6 +270,7 @@ smartapi:hasRefOutput a owl:ObjectProperty ;
   rdfs:range smartapi:Output ;
   vs:term_status "testing" .
 
+
 # error
 
 smartapi:Error a owl:Class ;
@@ -354,6 +358,7 @@ smartapi:errorMessage a owl:ObjectProperty ;
   rdfs:domain smartapi:Error ;
   vs:term_status "testing" .
 
+
 # status
 
 smartapi:Status a owl:Class ;