19#ifndef LIMA_SYNTACTICANALYSIS_SYNTACTICDATA_H
20#define LIMA_SYNTACTICANALYSIS_SYNTACTICDATA_H
32namespace LinguisticProcessing {
34namespace LinguisticAnalysisStructure
37 class MorphoSyntacticData;
40namespace SyntacticAnalysis {
42class SyntagmDefStruct;
53typedef std::tuple< LinguisticGraphVertex, LinguisticGraphVertex, Common::MediaticData::SyntacticRelationId >
Relation;
74 inline std::shared_ptr<SyntagmDefStruct>
matrices()
const {
return m_matrices;}
75 inline void matrices(std::shared_ptr<SyntagmDefStruct> matrices) {m_matrices=
matrices;}
77 inline std::vector<LinguisticAnalysisStructure::Token*>&
ownedTokens() {
return m_ownedTokens;}
98 void setupDependencyGraph();
109 std::vector<LinguisticGraphVertex>
122 std::vector<LinguisticGraphVertex>
124 const std::set<Common::MediaticData::SyntacticRelationId>& relations);
131 if (m_relations.empty()) {
132 return std::make_tuple(m_anagraph->firstVertex(), m_anagraph->lastVertex(), 0);
137 m_relations.pop_front();
147 Relation r = std::make_tuple(v1,v2,relationType);
148 if (m_relations.empty() || !(m_relations.front() == r))
150 m_relations.push_back(r);
159 std::pair<LinguisticGraphVertex, DependencyGraphVertex> addVertex();
174 m_relationStoredForSelectionalConstraint = std::make_tuple(v1,v2,relationType);
180 return m_relationStoredForSelectionalConstraint;
197 std::shared_ptr<SyntagmDefStruct> m_matrices;
201 std::map< LinguisticGraphVertex, DependencyGraphVertex >,
202 std::map< DependencyGraphVertex, LinguisticGraphVertex > > m_mapping;
204 std::list< Relation > m_relations;
206 std::vector<LinguisticAnalysisStructure::Token*> m_ownedTokens;
207 std::vector<LinguisticAnalysisStructure::MorphoSyntacticData*> m_ownedMorphData;
209 Relation m_relationStoredForSelectionalConstraint;
A graph that stores the relations of syntactic dependency between the elements of a DependencyGraph.
DependencyGraph::vertex_descriptor DependencyGraphVertex
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, DepVertexProperties, DepEdgeProperties > DependencyGraph
The dependency graph class.
A graph structure for linguistic analysis.
LinguisticGraph::vertex_descriptor LinguisticGraphVertex
boost::adjacency_list< boost::vecS, boost::vecS, boost::bidirectionalS, LinguisticVertexProperties > LinguisticGraph
Property to identify the chains in the graph.
#define LIMA_SYNTACTICANALYSIS_EXPORT
just for semantics: base class for analysisData
An AnalysisData containing a LinguisticGraph with a language and an id.
This class points to a graph, its dependency graph and the structure that holds the maping between th...
std::shared_ptr< SyntagmDefStruct > matrices() const
bool relation(const LinguisticGraphVertex &v1, const LinguisticGraphVertex &v2, const Common::MediaticData::SyntacticRelationId relationType=0)
Relation relationStoredForSelectionalConstraint()
void matrices(std::shared_ptr< SyntagmDefStruct > matrices)
void clearStoredRelations()
std::vector< LinguisticAnalysisStructure::Token * > & ownedTokens()
LinguisticGraph * graph()
const LinguisticAnalysisStructure::AnalysisGraph * iterator() const
std::tuple< LinguisticGraphVertex, LinguisticGraphVertex, Common::MediaticData::SyntacticRelationId > Relation
bool storeRelationForSelectionalConstraint(const LinguisticGraphVertex &v1, const LinguisticGraphVertex &v2, const Common::MediaticData::SyntacticRelationId relationType=0)
const LinguisticGraph * graph() const
const DependencyGraph * dependencyGraph() const
LinguisticAnalysisStructure::AnalysisGraph * iterator()
DependencyGraph * dependencyGraph()
std::vector< LinguisticAnalysisStructure::MorphoSyntacticData * > & ownedMorphosyntacticData()