1 /*************************************************************************/ 2 /* */ 3 /* Use of the link grammar parsing system is subject to the terms of the */ 4 /* license set forth in the LICENSE file included with this software. */ 5 /* This license allows free redistribution and use in source and binary */ 6 /* forms, with or without modification, subject to certain conditions. */ 7 /* */ 8 /*************************************************************************/ 9 10 package org.linkgrammar; 11 12 import java.util.ArrayList; 13 import java.util.Iterator; 14 import java.util.List; 15 16 /** 17 * A <code>Linkage</code> represents one of possibly many parses 18 * returned by the Link Grammar parser. Each <code>Linkage</code> 19 * is defined by a list of <code>Link</code>s between the tokens 20 * in a sentence. A <code>Linkage</code> also has some metadata 21 * associated with it, e.g. for various cost measures. 22 * 23 * @author Borislav Iordanov 24 */ 25 public class Linkage implements Iterable<Link> 26 { 27 private List<Link> links = new ArrayList<Link>(); 28 private String [] disjuncts; 29 private String [] words; 30 private String constituentString; 31 private String diagramString; 32 private int linkedWordCount; 33 private double disjunctCost; 34 private double linkCost; 35 private int numViolations; 36 getLinks()37 public List<Link> getLinks() 38 { 39 return links; 40 } 41 iterator()42 public Iterator<Link> iterator() 43 { 44 return links.iterator(); 45 } 46 disjunctAt(int i)47 public String disjunctAt(int i) 48 { 49 return disjuncts[i]; 50 } 51 getDisjuncts()52 public String[] getDisjuncts() 53 { 54 return disjuncts; 55 } 56 setDisjuncts(String[] disjuncts)57 public void setDisjuncts(String[] disjuncts) 58 { 59 this.disjuncts = disjuncts; 60 } 61 wordAt(int i)62 public String wordAt(int i) 63 { 64 return words[i]; 65 } 66 getWords()67 public String[] getWords() 68 { 69 return words; 70 } 71 setWords(String[] words)72 public void setWords(String[] words) 73 { 74 this.words = words; 75 } 76 getDisjunctCost()77 public double getDisjunctCost() 78 { 79 return disjunctCost; 80 } 81 setDisjunctCost(double disjunctCost)82 public void setDisjunctCost(double disjunctCost) 83 { 84 this.disjunctCost = disjunctCost; 85 } 86 getLinkCost()87 public double getLinkCost() 88 { 89 return linkCost; 90 } 91 setLinkCost(double linkCost)92 public void setLinkCost(double linkCost) 93 { 94 this.linkCost = linkCost; 95 } 96 getNumViolations()97 public int getNumViolations() 98 { 99 return numViolations; 100 } 101 setNumViolations(int numViolations)102 public void setNumViolations(int numViolations) 103 { 104 this.numViolations = numViolations; 105 } 106 getLinkedWordCount()107 public int getLinkedWordCount() 108 { 109 return linkedWordCount; 110 } 111 setLinkedWordCount(int linkedWordCount)112 public void setLinkedWordCount(int linkedWordCount) 113 { 114 this.linkedWordCount = linkedWordCount; 115 } 116 getConstituentString()117 public String getConstituentString() 118 { 119 return constituentString; 120 } 121 setConstituentString(String constituentString)122 public void setConstituentString(String constituentString) 123 { 124 this.constituentString = constituentString; 125 } 126 getDiagramString()127 public String getDiagramString() 128 { 129 return diagramString; 130 } 131 setDiagramString(String diagramString)132 public void setDiagramString(String diagramString) 133 { 134 this.diagramString = diagramString; 135 } 136 } 137