java - Retrieve OWL class restrictions using OWL API -


i'm working on research regarding ontology population.i want extract restrictions each , every class in ontology such somevaluefrom, alvaluefrom, cardinality restrictions on data properties , object properties.i'm using owl api.now i'm using owlclassexpression class data property restrictions particular class.this code.

    private static jsonobject getclassaxioms(owlclass cls,owlontology ontology){     set<owlclassaxiom> tempax=ontology.getaxioms(cls);     jsonobject datapropertyrestrictions = new jsonobject();     jsonarray data_has_value = new jsonarray();     jsonarray data_max_cardinality = new jsonarray();     jsonarray data_all_values_from = new jsonarray();     jsonarray data_exact_cardinality = new jsonarray();     jsonarray data_min_cardinality = new jsonarray();     jsonarray data_some_values_from = new jsonarray();     for(owlclassaxiom ax: tempax){         for(owlclassexpression nce:ax.getnestedclassexpressions()) {              if(nce.getclassexpressiontype()==classexpressiontype.data_has_value) {                // system.out.println("\t\t\tdata_has_value:" + nce.getnnf());                 string dpstring = nce.tostring();                 string propertyname;                 string enumm;                 string datatype;                 jsonobject hasdatavalueobj = new jsonobject();                 if (dpstring.contains("#")) {                     propertyname = dpstring.substring(                             dpstring.indexof("#") + 1,                             dpstring.lastindexof(">"));                     hasdatavalueobj.put("propertyname",propertyname);                 }                 if(dpstring.contains("\"")){                     enumm = dpstring.substring(                             dpstring.indexof("\"") + 1,                             dpstring.lastindexof("\""));                     hasdatavalueobj.put("enumvalue",enumm);                 }                 if(dpstring.contains("xsd")){                     datatype = dpstring.substring(                             dpstring.indexof("xsd") + 4,                             dpstring.lastindexof(")"));                     hasdatavalueobj.put("datatype",datatype);                 }                 data_has_value.add(hasdatavalueobj);                // system.out.println(hasdatavalueobj);                  //system.out.println(nce.tostring());             }             if(nce.getclassexpressiontype()==classexpressiontype.data_max_cardinality) {                // system.out.println("\t\t\tdata_max_cardinality:" + nce.getnnf());                 jsonobject hasdatavalueobj = getcardinality(nce.tostring());                 data_max_cardinality.add(hasdatavalueobj);                 system.out.println(nce.tostring());                 system.out.println(hasdatavalueobj);             }             if(nce.getclassexpressiontype()==classexpressiontype.data_all_values_from) {                 //system.out.println("\t\t\tdata_all_values_from:" + nce.getnnf());                 data_all_values_from.add(nce.getnnf().tostring());             }             if(nce.getclassexpressiontype()==classexpressiontype.data_exact_cardinality) {                 //system.out.println("\t\t\tdata_exact_cardinality:" + nce.getnnf());                 jsonobject hasdatavalueobj = getcardinality(nce.tostring());                 data_exact_cardinality.add(hasdatavalueobj);                 system.out.println(nce.tostring());                 system.out.println(hasdatavalueobj);             }             if(nce.getclassexpressiontype()==classexpressiontype.data_min_cardinality) {                 //system.out.println("\t\t\tdata_min_cardinality:" + nce.getnnf());                 jsonobject hasdatavalueobj = getcardinality(nce.tostring());                 data_min_cardinality.add(hasdatavalueobj);                 system.out.println(nce.tostring());                 system.out.println(hasdatavalueobj);             }             if(nce.getclassexpressiontype()==classexpressiontype.data_some_values_from) {                // system.out.println("\t\t\tdata_some_values_from:" + nce.getnnf());                 data_some_values_from.add(nce.getnnf().tostring());                 system.out.println(nce.tostring());             }             //if(nce.getclassexpressiontype()==classexpressiontype.)         }     }     datapropertyrestrictions.put("data_has_value",data_has_value);     datapropertyrestrictions.put("data_max_cardinality",data_max_cardinality);     datapropertyrestrictions.put("data_all_values_from",data_all_values_from);     datapropertyrestrictions.put("data_exact_cardinality",data_exact_cardinality);     datapropertyrestrictions.put("data_min_cardinality",data_min_cardinality);     datapropertyrestrictions.put("data_some_values_from",data_some_values_from);     return datapropertyrestrictions; } private static jsonobject getcardinality(string dpstring){     string propertyname;     string cardinalityvalue;     string datatype;     jsonobject hasdatavalueobj = new jsonobject();     if (dpstring.contains("#")) {         propertyname = dpstring.substring(                 dpstring.indexof("#") + 1,                 dpstring.lastindexof(">"));         hasdatavalueobj.put("propertyname",propertyname);     }     if(dpstring.contains("(")){         cardinalityvalue = dpstring.substring(                 dpstring.indexof("(") + 1,                 dpstring.lastindexof("<") -1 );         hasdatavalueobj.put("cardinalityvalue",cardinalityvalue);     }     if(dpstring.contains("datarangerestriction")) {         if (dpstring.contains("xsd")) {             datatype = dpstring.substring(                     dpstring.indexof("xsd") + 4,                     dpstring.lastindexof(" "));             hasdatavalueobj.put("datatype", datatype);         }     }     else{         if (dpstring.contains("xsd")) {             datatype = dpstring.substring(                     dpstring.indexof("xsd") + 4,                     dpstring.lastindexof(")"));             hasdatavalueobj.put("datatype", datatype);         }     }     return hasdatavalueobj; } 

i data property restriction iri , using string class functions record restrictions on json array.i think worst implementation.please can me?

you can visit nested class expressions (nce in code) owlclassvisitor implementation has contents of if branches in methods. guarantees don't forget 1 of class expression types.


Comments

Popular posts from this blog

angular - Ionic slides - dynamically add slides before and after -

minify - Minimizing css files -

Add a dynamic header in angular 2 http provider -