00001 #pragma once
00002 #ifndef EXTRACT_GHKM_STSG_RULE_H_
00003 #define EXTRACT_GHKM_STSG_RULE_H_
00004
00005 #include <vector>
00006
00007 #include "Rule.h"
00008 #include "Subgraph.h"
00009
00010 namespace MosesTraining
00011 {
00012 namespace Syntax
00013 {
00014 namespace GHKM
00015 {
00016
00017 class Node;
00018
00019 class StsgRule : public Rule
00020 {
00021 public:
00022 StsgRule(const Subgraph &fragment);
00023
00024 const std::vector<Symbol> &GetSourceSide() const {
00025 return m_sourceSide;
00026 }
00027 const Subgraph &GetTargetSide() const {
00028 return m_targetSide;
00029 }
00030 const std::vector<int> &GetNonTermAlignment() const {
00031 return m_nonTermAlignment;
00032 }
00033 int Scope() const {
00034 return Rule::Scope(m_sourceSide);
00035 }
00036
00037 private:
00038 std::vector<Symbol> m_sourceSide;
00039 Subgraph m_targetSide;
00040 std::vector<int> m_nonTermAlignment;
00041 };
00042
00043 }
00044 }
00045 }
00046
00047 #endif