我的RDF:
<rdf:Description rdf:about="http://earthquake.linkeddata.it/resource/Isolator">
<owl:equivalentClass rdf:resource="http://earthquake.linkeddata.it/resource/VibrationAbsorber"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
</rdf:Description>
<rdf:Description rdf:about="http://earthquake.linkeddata.it/resource/MagnetoRheological(MR)damper">
<owl:equivalentClass rdf:resource="http://earthquake.linkeddata.it/resource/**SemiActiveDamper**"/>
<rdf:type rdf:resource="http://www.w3.org/2002/07/owl#Class"/>
</rdf:Description>
我的代码:
public static void main (String args[]) throws IOException,InterruptedException {
// create an empty model
OntModel m = ModelFactory.createOntologyModel(OntModelSpec.OWL_MEM,null);
// use the class loader to find the input file
InputStream in = FileManager.get().open(inputFileName);
if (in == null) {
throw new IllegalArgumentException( "File: " + inputFileName + " not found");
}
// read the RDF/XML files
m.read( in, "" );
Scanner user_input=new Scanner(System.in);
String input;
System.out.print("Enter your concept");
input= user_input.next();
ExtendedIterator<?> i1 = m.listClasses();
while(i1.hasNext()){
OntClass oc = (OntClass)i1.next();
if( oc.getEquivalentClass() != null){
input=oc.getEquivalentClass().toString();
System.out.println("Equivalent Class name: "+oc.getEquivalentClass().getLocalName());
}
}
使用此代码,我得到了一个等效类列表,例如SemiActiveDamper和VibrationAbsorber。但我的目标只是根据用户输入获得SemiActiveDamper或VibrationAbsorber。我怎么能解决这个问题?
答案 0 :(得分:2)
重复http://answers.semanticweb.com/questions/24208/how-to-get-equivalent-class-depends-on-user-input
在等效类
的URi上使用字符串比较更好 - 为类添加用户可读标签并搜索这些标签。