1
我想要做的是列出所有的類,在我使用Protege 5創建的owl文件中使用以下查詢,並將「foaf」作爲導入的本體。dotnetrdf中的SPARQL查詢不查詢導入的本體
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT DISTINCT ?subject ?label ?comment
WHERE
{
?subject a owl:Class
OPTIONAL { ?subject a rdfs:Class }
OPTIONAL { ?subject rdfs:label ?label }
OPTIONAL { ?subject rdfs:comment ?comment}
}
問題是,當我的門生SPARQL標籤運行此查詢我得到了「FOAF」命名空間中定義的所有類,但是當我嘗試使用C#中dotnetrdf API來運行相同的查詢我不明白相同的結果。
以下是我在C#代碼
var g = new Graph();
g.LoadFromFile(owlFile, new TurtleParser());
ISparqlDataset ds = new InMemoryDataset(g);
LeviathanQueryProcessor processor = new LeviathanQueryProcessor(ds);
var queryParser = new SparqlQueryParser();
var parmeterizedString = new SparqlParameterizedString(query);
parmeterizedString.SetLiteral("value", searchQuery);
return processor.ProcessQuery(queryParser.ParseFromString(parmeterizedString.ToString())) as SparqlResultSet;
我到底做錯了什麼?
'parmeterizedString.SetLiteral(「value」,searchQuery);' - 查詢中沒有?值。 – AndyS