簡體   English   中英

在dotNetRDF中調試sparql函數返回值

[英]Debugging sparql function return values in dotNetRDF

我有一個SPARQL查詢,其過濾器如下所示:

SELECT * FROM 
{
    ...

    data:person_1  app:maxDistance  ?value
    data:person_1  app:coordinates  ?coord1
    data:person_2  app:coordinates  ?coord2

    FILTER (
         xsd:float(STRBEFORE(?value, " miles"))
            >=
         app:miles-between(?coord1, ?coord2)
    )
} 

?value是一個以“ x英里”形式表示的文字(x是一個數值)

所以我想過濾掉比person_1的maxDistance更遠的人,但是似乎過濾器總是返回false,沒有人被過濾掉。

問題是盡管我不確定如何調試它。 我知道app:miles-between的返回值,因為它是我可以在其中斷點的自定義c#函數,它可以正確返回一個雙精度值。

但是我不知道xsd:float()和STRBEFORE返回什么。 無論如何,將返回值綁定到變量並從SELECT輸出?

我嘗試使用ExplainQueryProcessor,但是它沒有提供足夠的信息,例如我想知道的返回值。

但是我不知道xsd:float()和STRBEFORE返回什么。 無論如何,將返回值綁定到變量並從SELECT輸出?

您想要綁定

select ?floatValue ?milesBetween where {
  …
  BIND( xsd:float(STRBEFORE(?value, " miles")) as ?floatValue )
  BIND( app:miles-between(?coord1, ?coord2) as ?milesBetween )
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM