0
我寫了下面的代碼,它創建一個父類玩具和子類作爲actiofigures,活動,藝術自行車。 SPARQL查詢是不是給的答案作爲子類的列表,請幫我找到解決sparql查詢來檢索一個類的子類
import com.hp.hpl.jena.ontology.OntClass;
import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.query.QueryExecution;
import com.hp.hpl.jena.query.QueryExecutionFactory;
import com.hp.hpl.jena.query.QueryFactory;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSet;
import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.RDFNode;
public class jenaquery
{
static String defaultNameSpace ="http://semanticweb.org/ontologies";
static Model model = null;
public static void main(String[] args)
{
model = ModelFactory.createOntologyModel()
OntClass Toys = ((OntModel) model).createClass( "Toys");
OntClass ActionFigures = ((OntModel) model).createClass("ActionFigures");
OntClass Arts = ((OntModel) model).createClass( "Arts");
OntClass Activities = ((OntModel) model).createClass( "Activities");
OntClass Bikes = ((OntModel) model).createClass( "Bikes");
ActionFigures.addSuperClass(Toys);
Activities.addSuperClass(Toys);
Arts.addSuperClass(Toys);
Bikes.addSuperClass(Toys);
String queryString ="PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> "+
"PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "+
"select ?uri "+
"where { "+
"?uri rdfs:subClassOf<http://semanticweb.org/ontologies#Toys> "+
"} \n ";
com.hp.hpl.jena.query.Query query = QueryFactory.create(queryString);
System.out.println("----------------------");
System.out.println("Query Result Sheet");
System.out.println("----------------------");
QueryExecution qe = QueryExecutionFactory.create(query, model);
System.out.print("Query executed");
ResultSet resultSet = qe.execSelect();
while(resultSet.hasNext())
{
QuerySolution soln = (QuerySolution)resultSet.next();
RDFNode name = soln.get("?name");
if(name!=null)
{
System.out.println(" Subclasses"+name.toString());
}
else
System.out.print("No subclasses");
}
}
qe.close();
}
}
你問的'子類',但是您對'createClass(「玩具」)'的調用會創建一個類''。相反,你需要使用'createClass(defaultNameSpace +「Toys」)''。 –