Re: How to mitigate accidental/unwelcome IRI expansion?

This is a fundamental design issue with JSON-LD's algorithms and CURIE
expansion. Since AS2 does not require the use of JSON-LD, it's likely
not a blocker for CR but it is something that ought to be documented
(I can include an editorial note in the AS2 spec). The suggested work
around actually leads to invalid AS2 because the core term mappings
cannot be modified. The end result is that URLs whose schemes overlap
with @context defined terms are generally incompatible with use of
JSON-LD.

On Wed, Dec 16, 2015 at 9:08 AM, Robert Sanderson <azaroth42@gmail.com> wrote:
>
> Josh,
>
> I'm afraid I don't have a solution, but could you also post the question to
> the Social Web WG?
> We're currently looking to take ActivityStreams to Candidate Recommendation
> early in the new year, and if this is something that might come up during
> the request for comments phase, it would be great to discuss it early rather
> than in last call :)
>
> The Social Web list:
>     https://lists.w3.org/Archives/Public/public-socialweb/
>
> Many thanks!
>
> Rob
>
>
> On Mon, Dec 14, 2015 at 6:50 PM, Josh Tilles <josh@signafire.com> wrote:
>>
>> Dear all,
>>
>> When learning Activity Streams 2.0, I discovered that certain @ids were
>> vulnerable to being mangled during expansion. For example, the absolute IRI
>> tag:search.twitter.com,2005:593895901623496704 gets expanded to
>> http://www.w3.org/ns/activitystreams#tagsearch.twitter..com,2005:593895901623496704.
>> (JSON-LD playground link for complete example)
>>
>> Is this a problem that others have come across before? Is there any sort
>> of standard advice to work around absolute IRIs being mistakenly interpreted
>> as relative?
>>
>> An approach I came up with is to “unmap” the offending terms, like:
>>
>> {
>>   "@context": [
>>     "http://www.w3.org/ns/activitystreams",
>>     {"tag": null}
>>   ],
>>   "@id": "tag:search.twitter.com,2005:593895901623496704",
>>   "@type": "Create",
>>   "url": "http://twitter.com/KidCodo/statuses/347769243409977344",
>>   "actor": {
>>     "@context": {"id": null},
>>     "@id": "id:twitter.com:2993982541",
>>     "@type": "Person",
>>     "displayName": "Kid Codo",
>>     "url": "http://www.twitter.com/KidCodo",
>>     "image":
>> "https://si0.twimg.com/profile_images/3664410292/1d75c213a572873bf6797c5591475da5_normal.jpeg"
>>   }
>> }
>>
>> But this seems kludgy, and I could imagine it having unintended
>> consequences if other parts of the JSON document actually used the tag
>> property and expected it to expand to
>> http://www.w3.org/ns/activitystreams#tag. An additional weakness of this
>> approach is that it relies on a human to determine which IRIs “don’t look
>> right” by examining expanded documents, and that there’s no guarantee that
>> other IRIs vulnerable to different prefix-collisions won’t slip in in the
>> future.
>>
>> Please share any comments regarding the above, or advice in general for
>> dealing with IRIs properly in JSON-LD.
>>
>> A pre-emptive & emphatic “thank you” for any guidance you can provide,
>> -Josh Tilles
>
>
>
>
> --
> Rob Sanderson
> Information Standards Advocate
> Digital Library Systems and Services
> Stanford, CA 94305

Received on Wednesday, 16 December 2015 18:06:52 UTC