1 /*
2  * Copyright (C) 2018 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 #ifndef LIBTEXTCLASSIFIER_ANNOTATOR_KNOWLEDGE_KNOWLEDGE_ENGINE_DUMMY_H_
18 #define LIBTEXTCLASSIFIER_ANNOTATOR_KNOWLEDGE_KNOWLEDGE_ENGINE_DUMMY_H_
19 
20 #include <string>
21 
22 #include "annotator/knowledge/knowledge-engine-types.h"
23 #include "annotator/model_generated.h"
24 #include "annotator/types.h"
25 #include "utils/base/status.h"
26 #include "utils/optional.h"
27 #include "utils/utf8/unilib.h"
28 
29 namespace libtextclassifier3 {
30 
31 // A dummy implementation of the knowledge engine.
32 class KnowledgeEngine {
33  public:
Initialize(const std::string & serialized_config,const UniLib * unilib)34   bool Initialize(const std::string& serialized_config, const UniLib* unilib) {
35     return true;
36   }
37 
SetPriorityScore(float priority_score)38   void SetPriorityScore(float priority_score) {}
39 
ClassifyText(const std::string & text,CodepointSpan selection_indices,AnnotationUsecase annotation_usecase,const Optional<LocationContext> & location_context,const Permissions & permissions,ClassificationResult * classification_result)40   Status ClassifyText(const std::string& text, CodepointSpan selection_indices,
41                       AnnotationUsecase annotation_usecase,
42                       const Optional<LocationContext>& location_context,
43                       const Permissions& permissions,
44                       ClassificationResult* classification_result) const {
45     return Status(StatusCode::UNIMPLEMENTED, "Not implemented.");
46   }
47 
Chunk(const std::string & text,AnnotationUsecase annotation_usecase,const Optional<LocationContext> & location_context,const Permissions & permissions,const AnnotateMode annotate_mode,Annotations * result)48   Status Chunk(const std::string& text, AnnotationUsecase annotation_usecase,
49                const Optional<LocationContext>& location_context,
50                const Permissions& permissions, const AnnotateMode annotate_mode,
51                Annotations* result) const {
52     return Status::OK;
53   }
54 
ChunkMultipleSpans(const std::vector<std::string> & text_fragments,const std::vector<FragmentMetadata> & fragment_metadata,AnnotationUsecase annotation_usecase,const Optional<LocationContext> & location_context,const Permissions & permissions,const AnnotateMode annotate_mode,Annotations * results)55   Status ChunkMultipleSpans(
56       const std::vector<std::string>& text_fragments,
57       const std::vector<FragmentMetadata>& fragment_metadata,
58       AnnotationUsecase annotation_usecase,
59       const Optional<LocationContext>& location_context,
60       const Permissions& permissions, const AnnotateMode annotate_mode,
61       Annotations* results) const {
62     return Status::OK;
63   }
64 
LookUpEntity(const std::string & id)65   StatusOr<std::string> LookUpEntity(const std::string& id) const {
66     return Status(StatusCode::UNIMPLEMENTED, "Not implemented.");
67   }
68 
LookUpEntityProperty(const std::string & mid_str,const std::string & property)69   StatusOr<std::string> LookUpEntityProperty(
70       const std::string& mid_str, const std::string& property) const {
71     return Status(StatusCode::UNIMPLEMENTED, "Not implemented");
72   }
73 };
74 
75 }  // namespace libtextclassifier3
76 
77 #endif  // LIBTEXTCLASSIFIER_ANNOTATOR_KNOWLEDGE_KNOWLEDGE_ENGINE_DUMMY_H_
78