gwt - Can anyone tell me how to extract ShortformProvider for URI label annotations using Manchester Syntax used in protege -
i implementing version extracts entity uri of owlentity used in webprotege. successful in that. can show below code. require extract label annotations. how extract using webprotege. webprotege doesn't create uri when creating class (for e.g., http://www.co-ode.org/ontologies/pizza/2005/05/16/pizza.owl#pizza). has label annotation uri. extract uri label. has (for e.g., http://www.co-ode.org/ontologies/pizza/2005/05/16/234y2890820802840> "pizza"@en>. (somewhat looking this. reply if need correct one.).
rootontology = getproject().getrootontology(); system.out.println(rootontology.getaxioms()); final owldatafactory datafactory = rootontology.getowlontologymanager().getowldatafactory(); irishortformprovider = new simpleirishortformprovider(); shortformprovider shortformprovider = new shortformprovider() { public string getshortform(owlentity owlentity) { return irishortformprovider.getshortform(owlentity.getiri()); } @override public void dispose() { } }; owlentitychecker entitychecker = new shortformentitychecker( new bidirectionalshortformprovideradapter( collections.singleton(rootontology), shortformprovider)); manchesterowlsyntaxeditorparser parser = new manchesterowlsyntaxeditorparser( datafactory, query); parser.setowlentitychecker(entitychecker); set<ontologyaxiompair> set; try { set = parser.parseframes(); system.out.println("set size" + set.size()); system.out.println("set string" + set.tostring()); (ontologyaxiompair s1 : set) { owlaxiom temp = s1.getaxiom(); set<owlannotationproperty> annotation = s1.getontology().getannotationpropertiesinsignature(); iterator itr = annotation.iterator(); while(itr.hasnext()){ system.out.println(s1.getontology().getannotationpropertiesinsignature()); system.out.println("iterator" + itr.next()); } if (temp.getaxiomtype() != axiomtype.declaration || temp.getaxiomtype() != axiomtype.subclass_of || temp.getaxiomtype() != axiomtype.data_property_assertion ) res = search(temp); } example coming webprotege:
<!-- http://webprotege.stanford.edu/classes/bfjkwfdiej5mduxojvhyki --> <owl:class rdf:about="http://webprotege.stanford.edu/classes/bfjkwfdiej5mduxojvhyki"> <rdfs:label xml:lang="en">animaltype</rdfs:label> <rdfs:subclassof rdf:resource="http://www.w3.org/2002/07/owl#thing"/> </owl:class> <!-- http://webprotege.stanford.edu/classes/bjsxqcpx7bocvccvf5ben0 --> <owl:class rdf:about="http://webprotege.stanford.edu/classes/bjsxqcpx7bocvccvf5ben0"> <rdfs:label xml:lang="en">omnivore</rdfs:label> <rdfs:subclassof rdf:resource="http://webprotege.stanford.edu/classes/bfjkwfdiej5mduxojvhyki"/> </owl:class> <!-- http://webprotege.stanford.edu/classes/ckjbw7kqdcjprpbtk2t6we --> <owl:class rdf:about="http://webprotege.stanford.edu/classes/ckjbw7kqdcjprpbtk2t6we"> <rdfs:label xml:lang="en">herbivore</rdfs:label> <rdfs:subclassof rdf:resource="http://webprotege.stanford.edu/classes/bfjkwfdiej5mduxojvhyki"/> </owl:class> <!-- http://webprotege.stanford.edu/classes/cot181aeq0wewmooz0nyyf --> <owl:class rdf:about="http://webprotege.stanford.edu/classes/cot181aeq0wewmooz0nyyf"> <rdfs:label xml:lang="en">fish</rdfs:label> <rdfs:subclassof rdf:resource="http://webprotege.stanford.edu/classes/dfgxupuolbiovybkpujwvr"/> </owl:class> <!-- http://webprotege.stanford.edu/classes/cpp9diflv676wmq3onrsja --> <owl:class rdf:about="http://webprotege.stanford.edu/classes/cpp9diflv676wmq3onrsja"> <rdfs:label xml:lang="en">land</rdfs:label> <rdfs:subclassof rdf:resource="http://webprotege.stanford.edu/classes/7v0pyxjh6vm9ajtzh9dpwc"/> </owl:class> <!-- http://webprotege.stanford.edu/classes/dfgxupuolbiovybkpujwvr --> <owl:class rdf:about="http://webprotege.stanford.edu/classes/dfgxupuolbiovybkpujwvr"> <rdfs:label xml:lang="en">animal</rdfs:label> <rdfs:subclassof rdf:resource="http://www.w3.org/2002/07/owl#thing"/> </owl:class>
this how labels. although true uris preferable, labels workable. can feed these labels manchester syntax query. suggest rewriting query.
owlontologymanager manager = owlmanager.createowlontologymanager(); file file= new file("root-ontology.owl"); owlontology rootontology = manager.loadontologyfromontologydocument(file); owldatafactory df = rootontology.getowlontologymanager().getowldatafactory(); set<owllogicalaxiom> logicalaxiom=rootontology.getlogicalaxioms(); iterator<owllogicalaxiom> axiom=logicalaxiom.iterator(); (owlclass cls : rootontology.getclassesinsignature()) { // annotations on class use label property (owlannotation annotation : cls .getannotations(rootontology, df.getrdfslabel())) { if (annotation.getvalue() instanceof owlliteral) { owlliteral val = (owlliteral) annotation.getvalue(); // portuguese labels if (val.haslang("en")) system.out.println( val.getliteral()); } } }
Comments
Post a Comment