// Path: freya/freya-annotate/src/main/java/org/freya/model/OntologyElement.java
// public interface OntologyElement extends Serializable {
// 
// 	public String getFunction();
// 
// 	public void setFunction(String function);
// 
// 	public boolean isAlreadyAdded();
// 
// 	public void setAlreadyAdded(boolean alreadyAdded);
// 
// 	public Annotation getAnnotation();
// 	
// 	public void setAnnotation(Annotation annotation);
// 
// 	public String getVariable();
// 
// 	public void setVariable(String key);
// 
// 	public boolean isMainSubject();
// 
// 	public void setMainSubject(boolean value);
// 
// 	public List<String> getResults();
// 
// 	public void setResults(List<String> results);
// 
// 	public Object getData();
// 
// 	public void setData(Object data);
// 
// 	public void setScore(Score score);
// 
// 	public Score getScore();
// 
// 	public boolean isAnswer();
// 
// 	public void setAnswer(boolean isAnswer);
// 
// 	public boolean equals(Object o);
// 
// }
// 
// Path: freya/freya-annotate/src/main/java/org/freya/model/QueryElement.java
// public class QueryElement {
// 
// List<List<OntologyElement>> ontologyElements;
// 
// 	
// 
// 	public List<List<OntologyElement>> getOntologyElements() {
//   return ontologyElements;
// }
// 
// public void setOntologyElements(List<List<OntologyElement>> ontologyElements) {
//   this.ontologyElements = ontologyElements;
// }
// 
//   List<String> uris = new ArrayList<String>();
// 
// 	/* query in formal language */
// 	String queryString;
// 	/*
// 	 * modifiers that could not be included into the queryString itself, as not
// 	 * supported by formal languages or there is need to perform some
// 	 * calculations or both; most common modifiers are instances of
// 	 * KeyPhraseElement class
// 	 */
// 	List<InterpretationElement> modifiers;
// 
// 	/**
// 	 * @see java.lang.Object#toString()
// 	 */
// 	public String toString() {
// 		return new StringBuffer(this.getClass().getSimpleName().toString())
// 				.append("\nQuery: ").append(this.queryString)
// 				// .append(" Modifiers: ")
// 				// .append(this.modifiers.toString())
// 				.append("\n").toString();
// 	}
// 
// 	/**
// 	 * @return the modifiers
// 	 */
// 	public List<InterpretationElement> getModifiers() {
// 		return modifiers;
// 	}
// 
// 	/**
// 	 * @param modifiers
// 	 *            the modifiers to set
// 	 */
// 	public void setModifiers(List<InterpretationElement> modifiers) {
// 		this.modifiers = modifiers;
// 	}
// 
// 	/**
// 	 * @return the queryString
// 	 */
// 	public String getQueryString() {
// 		return queryString;
// 	}
// 
// 	/**
// 	 * @param queryString
// 	 *            the queryString to set
// 	 */
// 	public void setQueryString(String queryString) {
// 		this.queryString = queryString;
// 	}
// 
// 	/**
// 	 * @return the uris
// 	 */
// 	public List<String> getUris() {
// 		return uris;
// 	}
// 
// 	/**
// 	 * @param uris
// 	 *            the uris to set
// 	 */
// 	public void setUris(List<String> uris) {
// 		this.uris = uris;
// 	}
// }


import java.util.List;
import org.freya.model.OntologyElement;
import org.freya.model.QueryElement;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 
 */

package org.freya.analyser;




/**
 * This transformer creates queries.
 * 
 * @author danica
 * 
 */
@Component
public class FormalQueryMaker {
    static org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory
                    .getLog(FormalQueryMaker.class);


    @Autowired private QueryCreator queryCreator;

    /**
     * generates sparql query
     * 
     * @param List<OntologyElement>
     * @return
     * @throws GateException
     */

// Path: freya/freya-annotate/src/main/java/org/freya/model/OntologyElement.java
// public interface OntologyElement extends Serializable {
// 
// 	public String getFunction();
// 
// 	public void setFunction(String function);
// 
// 	public boolean isAlreadyAdded();
// 
// 	public void setAlreadyAdded(boolean alreadyAdded);
// 
// 	public Annotation getAnnotation();
// 	
// 	public void setAnnotation(Annotation annotation);
// 
// 	public String getVariable();
// 
// 	public void setVariable(String key);
// 
// 	public boolean isMainSubject();
// 
// 	public void setMainSubject(boolean value);
// 
// 	public List<String> getResults();
// 
// 	public void setResults(List<String> results);
// 
// 	public Object getData();
// 
// 	public void setData(Object data);
// 
// 	public void setScore(Score score);
// 
// 	public Score getScore();
// 
// 	public boolean isAnswer();
// 
// 	public void setAnswer(boolean isAnswer);
// 
// 	public boolean equals(Object o);
// 
// }
// 
// Path: freya/freya-annotate/src/main/java/org/freya/model/QueryElement.java
// public class QueryElement {
// 
// List<List<OntologyElement>> ontologyElements;
// 
// 	
// 
// 	public List<List<OntologyElement>> getOntologyElements() {
//   return ontologyElements;
// }
// 
// public void setOntologyElements(List<List<OntologyElement>> ontologyElements) {
//   this.ontologyElements = ontologyElements;
// }
// 
//   List<String> uris = new ArrayList<String>();
// 
// 	/* query in formal language */
// 	String queryString;
// 	/*
// 	 * modifiers that could not be included into the queryString itself, as not
// 	 * supported by formal languages or there is need to perform some
// 	 * calculations or both; most common modifiers are instances of
// 	 * KeyPhraseElement class
// 	 */
// 	List<InterpretationElement> modifiers;
// 
// 	/**
// 	 * @see java.lang.Object#toString()
// 	 */
// 	public String toString() {
// 		return new StringBuffer(this.getClass().getSimpleName().toString())
// 				.append("\nQuery: ").append(this.queryString)
// 				// .append(" Modifiers: ")
// 				// .append(this.modifiers.toString())
// 				.append("\n").toString();
// 	}
// 
// 	/**
// 	 * @return the modifiers
// 	 */
// 	public List<InterpretationElement> getModifiers() {
// 		return modifiers;
// 	}
// 
// 	/**
// 	 * @param modifiers
// 	 *            the modifiers to set
// 	 */
// 	public void setModifiers(List<InterpretationElement> modifiers) {
// 		this.modifiers = modifiers;
// 	}
// 
// 	/**
// 	 * @return the queryString
// 	 */
// 	public String getQueryString() {
// 		return queryString;
// 	}
// 
// 	/**
// 	 * @param queryString
// 	 *            the queryString to set
// 	 */
// 	public void setQueryString(String queryString) {
// 		this.queryString = queryString;
// 	}
// 
// 	/**
// 	 * @return the uris
// 	 */
// 	public List<String> getUris() {
// 		return uris;
// 	}
// 
// 	/**
// 	 * @param uris
// 	 *            the uris to set
// 	 */
// 	public void setUris(List<String> uris) {
// 		this.uris = uris;
// 	}
// }


// Path: freya/freya-annotate/src/main/java/org/freya/analyser/FormalQueryMaker.java
import java.util.List;
import org.freya.model.OntologyElement;
import org.freya.model.QueryElement;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 
 */

package org.freya.analyser;




/**
 * This transformer creates queries.
 * 
 * @author danica
 * 
 */
@Component
public class FormalQueryMaker {
    static org.apache.commons.logging.Log logger = org.apache.commons.logging.LogFactory
                    .getLog(FormalQueryMaker.class);


    @Autowired private QueryCreator queryCreator;

    /**
     * generates sparql query
     * 
     * @param List<OntologyElement>
     * @return
     * @throws GateException
     */

    public QueryElement transform(List<List<OntologyElement>> ontologyElementsTable)
