3

を使用してキーワードを含むインスタンスを取得しようとしていますが、 (インスタンス)bif:containsごとに1つのラベルのみを取得したいので、どちらを使用してもかまいません。一般的なクエリ用なので、の?sようなものでフィルタリングすることはできません。regexこれは私のクエリですが、各インスタンスからすべてのラベルを取得します(?s):

SELECT DISTINCT ?s,?o1,?sc,?l WHERE {
  ?s ?s1textp ?o1 .
  ?o1 bif:contains ' (madrid AND embargo) ' OPTION ( score ?sc ) . 
  ?s <http://www.w3.org/2000/01/rdf-schema#label> ?l      
}
ORDER BY DESC ( ?sc )
LIMIT 30
OFFSET 0

ネストされたクエリを試してみましたが、追加してLIMITも結果が得られません。

SELECT DISTINCT ?s,?o1,?sc,?l WHERE {
  ?s ?s1textp ?o1 .   
  ?o1 bif:contains ' (madrid AND embargo) ' OPTION ( score ?sc ) .                 
  {
    SELECT DISTINCT ?s,?l WHERE {
      ?s <http://www.w3.org/2000/01/rdf-schema#label> ?l
    }
    LIMIT 1
  }      
}
ORDER BY DESC ( ?sc )
LIMIT 30
OFFSET 0

SAMPLE集計関数も見ました。DBpediaエンドポイントで必要なものを正確に取得しますが、自分のVirtuosoでは機能しません。(私はオープンソースバージョンを使用しています。)

SELECT DISTINCT ?s,?o1,?sc,?l WHERE {
  ?s ?s1textp ?o1 .
  ?o1 bif:contains ' (madrid AND embargo) ' OPTION ( score ?sc ) . 
  {
    SELECT DISTINCT ?s,(SAMPLE(?l) AS ?l) WHERE {
      ?s <http://www.w3.org/2000/01/rdf-schema#label> ?l
    }
    GROUP BY ?s
  }
}
ORDER BY desc ( ?sc )
LIMIT 30
OFFSET 0
4

1 に答える 1

3

公式のDBpediaエンドポイントはVirtuosoで実行されているため、それが正しいことをしている場合は、おそらく独自のVirtuosoインスタンスを更新する必要があります。VOSは現在7.2.2(または6.1.8、v6にとどまる必要がある場合は) 6.1.6にあり、Virtuoso Githubスペース命令)は最新のコードカットインstable/7develop/7(およびstable/6)を保持しdevelop/6、それぞれがパスが示唆するものを提供します。

将来的には、特にVirtuosoに関する質問は、一般に、公開されているOpenLinkディスカッションフォーラムVirtuosoユーザーのメーリングリスト、または機密のサポートケースで提起するのが最適です。

于 2012-12-21T15:30:38.260 に答える