私はqueryにフォローアップしています。ここでschema.orgデータベースは、自分のアプリケーションよりも単純なデータベースとして、クラスの子の数を調べるために使用されます。私は子供の名前をアルファベット順に連結したいと思っています。クエリsparqlグループby order by:注文しない
prefix schema: <http://schema.org/>
prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#>
select ?child (group_concat (?string) as ?strings)
where {
?child rdfs:subClassOf schema:Event .
?grandchild rdfs:subClassOf ?child .
bind (strafter(str(?grandchild), "http://schema.org/") as ?string)
} group by ?child order by asc(?string)
limit 20
はアルファベット順に並べていません
schema:PublicationEvent "OnDemandEvent BroadcastEvent"
schema:UserInteraction "UserPageVisits UserComments UserPlays UserBlocks UserDownloads UserPlusOnes UserLikes UserCheckins UserTweets"
を与えます。並べ替え順序をdesc
に置き換えると、結果はまったく同じになります。 group by
、order by
、おそらくbind
がどのようにやり取りするのか分からないようです。
group_concat'は、指定されたが、このように句の配列から取られていない 'の文字列の順序それは 'order by'節によって定義されるべきです。私は後で、追加の 'select'サブクエリが必要であることを発見しました。 – user855443
@ user855443それは本当ではありません。 Stanislav Kralinはまったく正しい。 'group_concat'の入力はマルチセットなので、順序は失われます。トリプルストアに応じて、それは保持されるかもしれませんが、W3Cの仕様によれば、その保証はありません。 – AKSW