2012-03-20 4 views
1
import java.awt.*; 
import java.awt.event.*; 
import java.applet.*; 
import java.lang.*; 
import java.util.regex.*; 
import java.io.*; 
import com.hp.hpl.jena.sparql.*; 
import com.hp.hpl.jena.*; 
import com.hp.hpl.jena.rdf.model.Model; 
import com.hp.hpl.jena.rdf.model.ModelFactory; 
import com.hp.hpl.jena.query.*; 
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.ResultSet; 
import com.hp.hpl.jena.query.ResultSetFormatter; 

/* 
<applet code="Sample" width=275 height=200> 
</applet> 
*/ 
//creating applet 
public class Sample extends Applet implements ActionListener 
{ 
TextField t; 
String msg= " "; 
String token[]; 
int s=60; 
public void init() 
{ 
    setBackground(Color.gray); 
    Label qa=new Label("QA SYSTEM",Label.CENTER); 
    Button search=new Button("Search"); 
    t=new TextField(25); 
    //Adding text box,button in to applet 
    add(qa); 
    add(t); 
    add(search); 
    t.addActionListener(this); 
    search.addActionListener(this); 
} 
public void actionPerformed(ActionEvent ae) 
{ 
    String str=ae.getActionCommand(); 
    if(str.equals("Search")) 
    { 
    msg=t.getText() ; 
    Pattern pat=Pattern.compile("[ ?]"); 
    String strs[]=pat.split(msg); 
    for(int i=0;i<strs.length;i++) 
    System.out.println("Token"+(i+1)+":"+strs[i]); 
    } 

    try 
    { 
     //opening owl file 
     InputStream in = new FileInputStream(new File("D:/ds.OWL")); 
     Model model=ModelFactory.createMemModelMaker().createDefaultModel() ; 
     model.read(in,null);  
     in.close(); 
     String queryString ="SELECT ?ds ?o WHERE {?ds rdfs:subClassOf ?o }"; 

     com.hp.hpl.jena.query.Query q = QueryFactory.create(queryString); 
     QueryExecution qe = QueryExecutionFactory.create(q, model); 
     ResultSet results = qe.execSelect(); 
     while (results.hasNext()) 
     { 
      System.out.println(results.getRowNumber()); 
     } 
     ResultSetFormatter.out(System.out, results, q); 
     qe.close(); 

    }catch(Exception e){ System.out.println(e);} 

    repaint(); 
} 
public void paint(Graphics g) 
{ 
    g.drawString("wait...",6,80); 
} 
} 

エラー:ウィリアムの簡潔な答えは、問題はあなたがいないということである暗示するよう未解決の接頭辞名:のrdfs:subClassOfのSPARQLクエリで

com.hp.hpl.jena.query.QueryParseException: Line 1, column 27: Unresolved prefixed name: rdfs:subClassOf

答えて

9
String queryString ="SELECT ?ds ?o WHERE {?ds rdfs:subClassOf ?o }"; 

String queryString ="PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 
SELECT ?ds ?o WHERE {?ds rdfs:subClassOf ?o }"; 
4

であるべき接頭辞がrdfsを表します。 SPARQLや他の関連するRDF標準のプレフィックス名は、クエリとデータをよりコンパクトで読みやすい方法で書くための構文上の便利さです。任意の名前空間URIを表す接頭辞を割り当てることができるので、使用する書式の仕組みを使用して接頭辞を明示的に定義する必要があります。

SPARQLの場合、接頭辞の定義に使用されるPREFIXキーワードです。これらの定義は、クエリの本体の前に現れなければならず、必要な数の定義を追加することができます。

+0

ありがとうございました。本当に有益でした... – user1280146

+0

@ user1280146答えが役に立つなら、あなたはそれを受け入れるべきです(http://meta.stackexchange.com/questions/5234/how-does-アンサーワーク)。 –

関連する問題