package owlaccessor;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.semanticweb.owlapi.model.OWLClass;
import outputter.ApplicationUtilities;
public class TestOWLAccessorImpl {
// public String[] searchOntology(String term, String ontofilepath, String type) {
// OWLAccessorImpl owlapi = new OWLAccessorImpl(new File(ontofilepath));
// List<OWLClass> matches = owlapi.retrieveConcept(term);
// Iterator<OWLClass> it = matches.iterator();
// String[] result = null;
// while(it.hasNext()){
// OWLClass c = it.next();
// String label = owlapi.getLabel(c);
// if(label.compareToIgnoreCase(term)==0){
// result= new String[3];
// result[0] = type;
// result[1] = c.toString().replaceFirst("http.*?(?=(PATO|TAO)_)", "").replaceFirst("_", ":").replaceFirst(">$", "");
// result[2] = label;
// return result;
// }
// }
// it = matches.iterator();
// result = new String[]{"", "", ""};
// while(it.hasNext()){
// OWLClass c = it.next();
// String label = owlapi.getLabel(c);
// result[0] = type;
// result[1] += c.toString().replaceFirst(".*http.*?(?=(PATO|TAO)_)", "").replaceFirst("_", ":").replaceFirst(">$", "")+";";
// result[2] += label+";";
// }
// if(result!=null){
// result[1] = result[1].replaceFirst(";$", "");
// result[2] = result[2].replaceFirst(";$", "");
// }
// return result;
// }
//
//
// @Test
// public void test() {
//
//
/*String ontoURL ="http://www.co-ode.org/ontologies/pizza/pizza.owl" ;
OWLAccessor acc = new OWLAccessorImpl(ontoURL);
acc.retrieveConcept("quality");
OWLOntologyManager manager=OWLManager.createOWLOntologyManager();
//df=manager.getOWLDataFactory();
//access TAO Ontology on web
//IRI iri = IRI.create("http://www.berkeleybop.org/ontologies/tao.owl");
//access PATO Ontology on web
//IRI iri = IRI.create("http://www.berkeleybop.org/ontologies/pato.owl");
//IRI iri=IRI.create("http://www.co-ode.org/ontologies/pizza/pizza.owl");
IRI iri = IRI.create(ontoURL);
try {
OWLOntology ont = manager.loadOntologyFromOntologyDocument(iri);
assertTrue(ont.containsClassInSignature(IRI.create("http://purl.obolibrary.org/obo/PATO_0000001")));
Set<OWLEntity> en=ont.getEntitiesInSignature(IRI.create("http://purl.obolibrary.org/obo/PATO_0000001"));
assertTrue(en.size()==1);
for(OWLEntity ent:en){
for(OWLAnnotation a:ent.getAnnotations(ont)){
if(a.getProperty().isLabel()){
String label=((OWLAccessorImpl)acc).getRefinedOutput(a.getValue().toString());
assertTrue(label.contains("quality")||label.equals("quality"));
}
}
}
} catch (OWLOntologyCreationException e) {
// TODO Auto-generated catch block
LOGGER.error("", e);
}*/
// }
@Test
public void testGetAnnotationProperties() throws Exception{
//File phenoscape = new File("C:\\Documents and Settings\\Hong Updates\\Desktop\\ATEST\\ontologies\\phenoscape-ext.owl");
File phenoscape = new File("C:/Users/Murali/Desktop/RA1/trails/Trial_13_May/ontologies/PATO.owl");
//String url = "http://obo.svn.sourceforge.net/viewvc/obo/uberon/trunk/merged.owl";
OWLAccessorImpl a = new OWLAccessorImpl(phenoscape, new ArrayList<String>());
//OWLAccessorImpl a = new OWLAccessorImpl("http://www.berkeleybop.org/ontologies/pato.owl");
//OWLAccessorImpl a = new OWLAccessorImpl("http://purl.obolibrary.org/obo/tao.owl", new ArrayList<String>());
//System.out.println(a.getLabel(a.getClassByLabel("cellular quality")));
//for(OWLAnnotation oa : a.getExactSynonyms(a.getClassByLabel("color"))){
// System.out.println(oa.toString());
//}
//List<String> s = new ArrayList<String>();
//System.out.println(a.retrieveConcept("pterotic-supracleithrum").size());
// List<OWLClass> results = a.retrieveConcept("rostral tubule");
// for(OWLClass c : results){
// System.out.println(c.getIRI());
// }
// List<OWLClass> results1 = a.retrieveConcept("face");
// for(OWLClass c : results1){
// System.out.println(c.getIRI());
// }
//
// List<OWLClass> results2 = a.retrieveConcept("extensor");
// for(OWLClass c : results2){
// System.out.println(c.getIRI());
// }
//
// List<OWLClass> results3 = a.retrieveConcept("articulation");
// for(OWLClass c : results3){
// System.out.println(c.getIRI());
// }
//s.add("cellular quality");
//System.out.println(a.retrieveConcept("ploidy").size());
}
//public void fetch_relationalslim()
//{
/* File phenoscape = new File(ApplicationUtilities.getProperty("ontology.dir")+"/pato.owl");
//String url = "http://obo.svn.sourceforge.net/viewvc/obo/uberon/trunk/merged.owl";
OWLAccessorImpl a = new OWLAccessorImpl(phenoscape, new ArrayList<String>());
for(OWLClass b:a.getRelationalSlim())
{
System.out.print(a.getLabel(b));
System.out.println(" "+a.getID(b));
}*/
//}
public static void main(String[] args) {
TestOWLAccessorImpl to = new TestOWLAccessorImpl();
//String path="C:/Documents and Settings/Hong Updates/Desktop/Australia/phenoscape-fish-source/tao.owl";
//to.fetch_relationalslim();
try {
to.testGetAnnotationProperties();
} catch (Exception e) {
e.printStackTrace();
}
}
}