21:24:40
icon

JSON-LDにおいて`{"@id": "subject", "predicate": "object"}`と`{"@id": "object", "reversePredicate": "subject"}`(ただし`{"reversePredicate": {"@reverse": "predicate"}}`とする)は意味論的に等価で、だからといって普通は`subject`の参照外しに対して後者の表現を返すようなことはないわけだけど、この気持ちをもう少し規格として良い感じに定式化できないものだろうか

21:25:37
icon

例えばActivity Streamsはcompacted formのみを使うように求めているけど、それだけでは後者の表現を妨げるものではない

21:43:42
2023-12-09 21:25:53 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

ActivityPub の文脈では「データを JSON-LD データとして解釈して JSON-LD プロセッサで処理することもできますよ」とは言っているけど、意味論的に等価なあらゆる表現が ActivityPub 的に解釈可能として許容されていると言ってるわけではない気が (もう忘れた)

21:43:45
2023-12-09 21:28:24 らりお・ザ・何らかの🈗然㊌ソムリエの投稿 lo48576@mastodon.cardina1.red
icon

ActivityPub
w3.org/TR/activitypub/#Overvie

> If you know what JSON-LD is, you can take advantage of the cool linked data approaches provided by JSON-LD. If you don't, don't worry, JSON-LD documents and ActivityStreams can be understood as plain old simple JSON. (If you're going to add extensions, that's the point at which JSON-LD really helps you out).

まあ実際拡張なしでやれるんかというと、それは些か現実の状況に合っていないのではと思うところはあるが……

21:43:51
icon

まあ`@graph`や`@included`などのplain JSON consumerによる解釈を想定していなそうな仕組みを除けば、データセットを木でなく一般の有向グラフにしてしまうようなアノマリーは`@reverse`の他に存在しない気がするし(実際どうなのかは知らぬ)、これについては拡張でも使わないものとすれば済む話ではありそうか

21:49:02
icon

JSON-LDのキーワードを入力するときにメンションになってしまわないか身構えがち

21:50:45
icon

実際、JSON-LD関係のGitHubのissueなどでは日常的に@context氏にメンションが飛んでいるので(?)

22:06:52
icon

まあ一般的なURIについてはサーバ実装が良い感じに常識的な振る舞いをすることに期待して良いだろうけど、<actor#main-key>のようなフラグメント付きのURIが絡んでくると現実にレスポンスのトップレベルの`@id`が元のURIと異なるものにならざるを得なくて、この扱いが非自明という話がある:
Guidance on fragments in ids · Issue #367 · w3c/activitypub
github.com/w3c/activitypub

Web site image
GitHub - w3c/activitypub
22:11:58
icon

元々これについて言及するつもりがつい非常識的なエッジケースの話から始めてしまった

22:29:49
icon

JSON-LDはRDFであると同時にRDFとは無関係に単なるJSONとして解釈することが想定されているから意味論に加えてJSONとしての具体的な構文についても配慮する必要があって、この性質が議論がややこしくしているみたいなところがある気がする(自分が勝手にややこしく考えているだけなのでは)

22:34:27
icon

意味論だけを考えれば済むなら机上の議論は簡単になるけど、実運用として意味論的に等価な複数の表現を受け容れることを実装に要求する方が面倒だろうし、まあ、はい

22:45:49
icon

個人的にどこに気持ち悪さを感じているのかというと、結局現実的には実質的に特定の構文に従うことが要求されている一方で規格側の構文に関する詰め方が中途半端なところなのかも知れない。例えばActivity Vocabularyにおける単一要素のみからなる`items`の扱い(<github.com/w3c/activitystreams>)とか

Web site image
Force non-functional properties to always be arrays · Issue #535 · w3c/activitystreams
22:53:14
icon

ある程度は常識的に判断するべきとは言っても、その「常識」で済まされている範囲が広すぎやしないかというか何というか

23:00:18
icon

`items`の例についてはコンテクストの修正でどうにかなるだろうけど、具体的な構文の規定をcompactionのみに頼る方針で本当に他にエッジケースが発生しないものなのか気になるところである