如何在sparql中使用bind

时间:2014-05-16 13:35:08

标签: android sparql

我正在研究本体项目,因为我写了一个sparql查询,sparql查询在protege 4.3中工作正常但是当我在android中使用那个sparql查询我得到异常请建议任何解决方案我怎么能在android中使用bind

我的sparql查询是

select ?_Email ?_ind ?_ind1 where {

   ?_ind rdf:type my:Accomodation .
  ?_ind my:hasStarRating ?_Email.
  ?_ind my:hasType ?_ind1.

   bind( str(?_Email) as ?_Email )
   bind( strafter(str(?_ind),str(my:)) as ?_ind  )
   bind( str(?_ind1) as ?_ind1 )
}

显示异常

Caused by: com.hp.hpl.jena.query.QueryParseException: Lexical error at line 1, column 590.  Encountered: " " (32), after : "bind"

1 个答案:

答案 0 :(得分:1)

你似乎正在使用androjena。这使用了旧版本的Jena,它没有BIND。

对于BIND,它必须是一个新变量。

bind( str(?_Email) as ?_Email2 )

如果您使用ARQ的扩展语法(这已经存在更长时间;它不是标准的SPARQL 1.1),您可能在LET上取得更多成功。

LET(?_Email2 := str(?_Email))

另外联系androjena项目。