2016-04-23 68 views
0

我試着刪除所有三元,我有這些funcions,SPARQL刪除statment耶拿OWL

類變量

public static String defaultNameSpace = "http://www.semanticweb.org/admin/ontologies/2016/3/Inventory#"; 
public Model Inventario = null; 
public Model schema = null; 
public String DatabaseFile = "PR2INVENTARIORDFXML.owl"; 
public OutputStream output; 

public ResultSet runQuery(String queryRequest, Model model) 
{ 
    StringBuffer queryStr = new StringBuffer(); 
    ResultSet response = null; 
    // Establish Prefixes 
    //Set default Name space first 
    queryStr.append("PREFIX base: <" + defaultNameSpace + "> "); 
    queryStr.append("PREFIX rdfs: <" + "http://www.w3.org/2000/01/rdf-schema#" + "> "); 
    queryStr.append("PREFIX rdf: <" + "http://www.w3.org/1999/02/22-rdf-syntax-ns#" + "> "); 
    queryStr.append("PREFIX owl: <http://www.w3.org/2002/07/owl#>"); 

    //Now add query 
    queryStr.append(queryRequest); 
    Query query = QueryFactory.create(queryStr.toString()); 
    QueryExecution qexec = QueryExecutionFactory.create(query, model); 
    try 
    { 
     response = qexec.execSelect(); 
    } 
    finally { } 

    return response; 
} 

我對每個查詢的功能,這裏有一個例子

public ResultSet AllRecords(Model model) 
{ 
    return runQuery("select ?s ?p ?o where{?s ?p ?o." 
        + "} " , model); 
} 

當我嘗試運行這些查詢時

public ResultSet BorrarPC(Model model) 
{ 
    return runQuery("DELETE {base:PC1 ?p ?o} " + 
        "WHERE {base:PC1 ?p ?o}" + 
        "" , model); 
} 

public ResultSet eraseAllTriples(Model model) 
{ 
    return runQuery("DELETE {?s ?p ?o} " + 
        "WHERE {?s ?p ?o}" + 
        "" , model); 
} 

它給了我這些錯誤

run: 

異常線程「main」 com.hp.hpl.jena.query.QueryParseException:遇到「‘刪除’」刪除‘’第1行,列233 當時期待之一: 「前綴」 ...... 「中選擇」 ...... 「形容」 ...... 「構建」 ...... 「問」 ......

at com.hp.hpl.jena.sparql.lang.ParserSPARQL11.perform(ParserSPARQL11.java:87) 
at com.hp.hpl.jena.sparql.lang.ParserSPARQL11.parse(ParserSPARQL11.java:40) 
at com.hp.hpl.jena.query.QueryFactory.parse(QueryFactory.java:132) 
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:69) 
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:40) 
at com.hp.hpl.jena.query.QueryFactory.create(QueryFactory.java:28) 
at explorerowlexample.FinalProject.runQuery(FinalProject.java:146) 
at explorerowlexample.FinalProject.BorrarPC(FinalProject.java:90) 
at explorerowlexample.FinalProject.main(FinalProject.java:56) 

Java結果:1 BUILD SUCCESSFUL(總時間:5秒)

任何人都可以幫助我如何創建刪除語句?

謝謝

+1

'com.hp.hpl.jena'顯示您正在使用舊版本。現在,Jena3,所有的軟件包都是'org.apache.jena'。 – AndyS

回答

1

SPARQL更新請求不是查詢。

您需要使用更新API:請參閱UpdateExecutionFactory

+0

你有什麼例子嗎?謝謝 –