2016-03-05 58 views
-2

如何将var1和var2传递到下面显示的sparql查询中。我有下面的代码,但它没有返回任何东西。如何将参数传递到SPARQL查询

我很感激你对此的帮助。感谢您在adavnce

string var1, var2; 
var1 = DropDownList1.SelectedValue.ToString(); 
var2 = DropDownList2.SelectedValue.ToString(); 
//Load first listbox 
private const string loadlist1 = @" 
        PREFIX au: <http://semwebowl.somee.com/au/n3_notation#> 
            SELECT DISTINCT ?ResearchArea 

            WHERE { 
             [a au:var1; 
              au:ResearchArea var2; 
              au:ResearchArea ?ResearchArea]. 
              }"; 
+2

您可能想要检查SPARQL查询 - 它缺少三重模式中的主题 – scotthenninger

+2

您应该在询问之前做一些研究工作。快速搜索显示如何将参数传递到SPARQL查询中:http://www.dotnetrdf.org/api/dotNetRDF~VDS.RDF.Query.SparqlParameterizedString.html – CaptSolo

+0

您好我尝试了dotnetrdf文档,但没有运气。我正在使用上面的sparql查询解析一个本体符号3文件。任何帮助表示赞赏。 – ama

回答

3

通过分离其解决问题分成两个部分:

  1. 检查你的SPARQL查询是正确的。确保在查询文本中直接输入正确的值时它可以正常工作。就像@scotthenninger表示您的查询似乎无效。
  2. 将参数传递到SPARQL查询中(请参阅DotNetRDF API docs)。要使用的方法取决于它是URI(.SetUri())还是文本值。在参数化的SPARQL字符串上使用.ToString()方法来检查将变量值插入字符串后的外观。