Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00040 #ifndef __C_EXPORTER_OWL_H__
00041 #define __C_EXPORTER_OWL_H__
00042
00043
00044
00045 #include <string>
00046 #include <list>
00047 #include <algorithm>
00048
00049
00050 #include <libconfig.h++>
00051
00052
00053 #include <CExporterFileoutput.h>
00054
00055
00056 namespace beliefstate {
00057 class CExporterOwl : public CExporterFileoutput {
00058 private:
00059 std::list< std::pair<std::string, std::string> > m_lstEntities;
00060 std::list< std::pair<std::string, std::string> > m_lstFailureMapping;
00061 std::list<std::string> m_lstDefinedProperties;
00062 std::list< std::pair<std::string, std::string> > m_lstAnnotationPurposeMapping;
00063 std::string m_strPropertyNamespace;
00064 std::string m_strDefaultAnnotation;
00065 std::map<std::string, std::string> m_mapMetaData;
00066 std::list<std::string> m_lstAnnotatedParameters;
00067 std::list<std::string> m_lstExportedObjectIndividuals;
00068 std::map<std::string, std::string> m_mapRegisteredOWLNamespaces;
00069 std::map<std::string, CKeyValuePair*> m_mapDesignators;
00070 int m_nThrowAndCatchFailureCounter;
00071
00072 void addEntity(std::string strNickname, std::string strNamespace);
00073
00074 public:
00075 CExporterOwl();
00076 ~CExporterOwl();
00077
00078 std::list<std::string> gatherClassesForNodes(std::list<Node*> lstNodes);
00079 std::list<std::string> gatherTimepointsForNodes(std::list<Node*> lstNodes);
00080 void setMetaData(std::map<std::string, std::string> mapMetaData);
00081
00082 bool loadSemanticsDescriptorFile(std::string strFilepath);
00083
00084 void prepareEntities(std::string strNamespaceID, std::string strNamespace);
00085 std::string generateDocTypeBlock();
00086 std::string generateXMLNSBlock(std::string strNamespace);
00087 std::string generateOwlImports(std::string strNamespace);
00088 std::string generatePropertyDefinitions();
00089 std::string generateClassDefinitions();
00090 std::string generateEventIndividualsForNodes(std::list<Node*> lstNodes, std::string strNamespace);
00091 std::string generateEventIndividuals(std::string strNamespace);
00092 std::string generateObjectIndividualsForNodes(std::list<Node*> lstNodes, std::string strNamespace);
00093 std::string generateObjectIndividuals(std::string strNamespace);
00094 std::string generateImageIndividualsForNodes(std::list<Node*> lstNodes, std::string strNamespace);
00095 std::string generateImageIndividuals(std::string strNamespace);
00096 std::string generateDesignatorIndividuals(std::string strNamespace);
00097 std::list<std::string> collectAllSuccessorDesignatorIDs(std::string strDesigID);
00098 std::string generateFailureIndividualsForNodes(std::list<Node*> lstNodes, std::string strNamespace);
00099 std::string generateFailureIndividuals(std::string strNamespace);
00100 std::string generateTimepointIndividuals(std::string strNamespace);
00101 std::string generateMetaDataIndividual(std::string strNamespace);
00102 std::string generateParameterAnnotationInformation(std::string strNamespace);
00103
00104 std::string owlClassForNode(Node *ndNode, bool bClassOnly = false, bool bPrologSyntax = false);
00105 std::string owlClassForObject(CKeyValuePair *ckvpObject);
00106 virtual std::string nodeIDPrefix(Node* ndInQuestion, std::string strProposition);
00107
00108 virtual bool runExporter(CKeyValuePair* ckvpConfigurationOverlay);
00109 std::string owlEscapeString(std::string strValue);
00110 std::string generateOwlStringForNodes(std::list<Node*> lstNodes, std::string strNamespaceID, std::string strNamespace);
00111
00112 std::string failureClassForCondition(std::string strCondition);
00113 std::string resolveDesignatorAnnotationTagName(std::string strAnnotation);
00114
00115 void setRegisteredOWLNamespaces(std::map<std::string, std::string> mapRegisteredOWLNamespaces);
00116 };
00117 }
00118
00119
00120 #endif