0

まず、ストリーム推論に使用される C-SPARQL を使用しているため、トリプルに関連付けられたタイムスタンプを持っていることに言及する必要があります。以下は、C-SPARQL のタイムスタンプ関数を使用して割り当てられた最新のタイムスタンプ (希望) と共に、主語と述語を返すクエリですが、このタイムスタンプに関連付けられているオブジェクト値を返すことを望んでいます同じように。何か案は??o を select 句に貼り付けようとしましたが、これにより NON-group キー エラーが発生します。

"REGISTER QUERY StreamQuery AS "
                                    + "PREFIX ex: <http://localhost/default/tr069#> "
                                    + "PREFIX f: <http://larkc.eu/csparql/sparql/jena/ext#> "
                + "SELECT DISTINCT ?s ?p (MAX(f:timestamp(?s,?p,?o)) AS ?ts)"
                + "FROM STREAM <http://localhost/default/tr069> [RANGE 5s STEP 1s] "
                + "WHERE { ?s ?p ?o . "
                                    + "} GROUP BY ?s ?p "

十分に明確でない場合は、お尋ねください。

編集:いじった後、私は正しい結果のように見えるものを得ているようですが、私がやったことについて他の人の意見を聞いてもかまいません。

"REGISTER QUERY StreamQuery AS "
                                    + "PREFIX ex: <http://localhost/default/tr069#> "
                                    + "PREFIX f: <http://larkc.eu/csparql/sparql/jena/ext#> "
                + "SELECT DISTINCT ?s ?p ?o "
                + "FROM STREAM <http://localhost/default/tr069> [RANGE 5s STEP 1s] "
                + "WHERE { ?s ?p ?o . "
                                    + "{SELECT ?s ?p (MAX(f:timestamp(?s,?p,?o)) AS ?ts) WHERE{?s ?p ?o} GROUP BY ?s ?p}"
                                    + " FILTER(f:timestamp(?s,?p,?o)=?ts) } " 
4

0 に答える 0