ISSUE-14: as:Link adds a lot of complexity, if we keep it we need to clarify consequences of using it instead of as:Object
as:Link
as:Link adds a lot of complexity, if we keep it we need to clarify consequences of using it instead of as:Object
- State:
- CLOSED
- Product:
- Activity Streams 2.0
- Raised by:
- Pavlik elf
- Opened on:
- 2015-02-23
- Description:
- In AS2.0 Core spec: http://www.w3.org/TR/2015/WD-activitystreams-core-20150129/#link
This continues discussion in two github issues
* as:Link from Linked Data perspective + comparing with hydra:Link - https://github.com/jasnell/w3c-socialwg-activitystreams/issues/24
* clarify consequences of choice between as:Object and as:Link - https://github.com/jasnell/w3c-socialwg-activitystreams/issues/57
Main issues I noticed so far:
1. AS2.0 Vocabulary uses Object | Link for domain and/or range in many properties
http://www.w3.org/TR/2015/WD-activitystreams-vocabulary-20150129/ (search for 'Object | Link' shows 43 such cases)
2. Currently some examples in latest published core spec use as:Link in JSON-LD while as:Object in RDFa (IMO it gives strong example of confusion it may cause, even author of the spec didn't use it in a consistent way!)
http://www.w3.org/TR/2015/WD-activitystreams-core-20150129/#example-2
3. as:Link breaks JSON-LD embedding
http://www.w3.org/TR/json-ld/#embedding
and may cause issue with JSON-LD framing
http://json-ld.org/spec/latest/json-ld-framing/ (work in progress)
To stay honest, I don't see strong use cases requiring as:Link which would justify adding all this complexity and possibilities for confusion. Still if we decide to keep it, we should explain clearly when to use as:Link and when as:Object, elaborating on various consequences of making such choice.
- Related Actions Items:
ACTION-42 on Pavlik elf to MediaObject - gather options for its social syntax on a wiki page - due 2015-03-10, closed- Related emails:
- Re: Issue-14: as:Link complexity (from henry.story@bblfish.net on 2015-04-22)
- Re: Issue-14: as:Link complexity (from henry.story@bblfish.net on 2015-04-22)
- RE: Issue-14: as:Link complexity (from byoung@bigbluehat.com on 2015-04-22)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-22)
- Re: Issue-14: as:Link complexity (from henry.story@bblfish.net on 2015-04-22)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-22)
- Re: Issue-14: as:Link complexity (from henry.story@bblfish.net on 2015-04-22)
- Re: Issue-14: as:Link complexity (from henry.story@bblfish.net on 2015-04-22)
- Re: Issue-14: as:Link complexity (from henry.story@bblfish.net on 2015-04-21)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-21)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-21)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-21)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-21)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-21)
- Re: Issue-14: as:Link complexity - AtomOwl (from henry.story@bblfish.net on 2015-04-21)
- Re: Issue-14: as:Link complexity (from perpetual-tripper@wwelves.org on 2015-04-21)
- Re: Issue-14: as:Link complexity (from perpetual-tripper@wwelves.org on 2015-04-21)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-20)
- Re: Issue-14: as:Link complexity (from perpetual-tripper@wwelves.org on 2015-04-20)
- Re: Issue-14: as:Link complexity (from azaroth42@gmail.com on 2015-04-19)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-19)
- Re: Issue-14: as:Link complexity (from perpetual-tripper@wwelves.org on 2015-04-19)
- Re: Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-19)
- Re: Issue-14: as:Link complexity (from evan@e14n.com on 2015-04-19)
- Re: Issue-14: as:Link complexity (from perpetual-tripper@wwelves.org on 2015-04-19)
- Pull request [jasnell/w3c-socialwg-activitystreams] removing as:Link in favour of as:Object (from jasnell@gmail.com on 2015-04-14)
- Issue-14: as:Link complexity (from jasnell@gmail.com on 2015-04-13)
- Re: social-ISSUE-14 (elf-pavlik): as:Link adds a lot of complexity, if we keep it we need to clarify consequences of using it instead of as:Object [Activity Streams 2.0] (from perpetual-tripper@wwelves.org on 2015-04-05)
- Re: social-ISSUE-14 (elf-pavlik): as:Link adds a lot of complexity, if we keep it we need to clarify consequences of using it instead of as:Object [Activity Streams 2.0] (from a.kuckartz@ping.de on 2015-04-05)
- Re: social-ISSUE-14 (elf-pavlik): as:Link adds a lot of complexity, if we keep it we need to clarify consequences of using it instead of as:Object [Activity Streams 2.0] (from perpetual-tripper@wwelves.org on 2015-04-04)
- Re: AS2 Issues List (from jasnell@gmail.com on 2015-03-31)
- Re: AS2 Issues List (from perpetual-tripper@wwelves.org on 2015-03-31)
- AS2 Issues List (from jasnell@gmail.com on 2015-03-31)
- Fwd: Re: List of commonly used property names when used as *inverse*? (from perpetual-tripper@wwelves.org on 2015-03-30)
- Re: social-ISSUE-14 (elf-pavlik): as:Link adds a lot of complexity, if we keep it we need to clarify consequences of using it instead of as:Object [Activity Streams 2.0] (from perpetual-tripper@wwelves.org on 2015-03-27)
- Re: social-ISSUE-14 (elf-pavlik): as:Link adds a lot of complexity, if we keep it we need to clarify consequences of using it instead of as:Object [Activity Streams 2.0] (from perpetual-tripper@wwelves.org on 2015-03-10)
- Re: social-ISSUE-16 (grammar/vocabulary): better separate grammar/vocabulary and improved spec structure [Activity Streams 2.0] (from perpetual-tripper@wwelves.org on 2015-03-09)
- social-ISSUE-14 (elf-pavlik): as:Link adds a lot of complexity, if we keep it we need to clarify consequences of using it instead of as:Object [Activity Streams 2.0] (from sysbot+tracker@w3.org on 2015-02-23)
Related notes:
AS2.0 Core spec only uses as:Link for meta information about MediaObjects, also relevant work on
https://www.w3.org/wiki/Socialwg/MediaObject
as:Link instances used as as:memberOf as:Collection
as:memberOf a owl:ObjectProperty ;
rdfs:label "memberOf"@en ;
rdfs:range as:Collection ;
rdfs:domain [
a owl:Class ;
owl:unionOf ( as:Object as:LinkNotHandler )
] ;
owl:inverseOf as:items .
example of how different people could try two using different 'slangs'
{
"@context": "http://www.w3.org/ns/activitystreams",
"@id": "http://example.com/my-silly-note"
"@type": "Note",
"content": "A simple note",
"inReplyTo": {
"@id": "http://example.com/my-silly-reply"
"@type": "Note",
"content": "Another note"
}
}
{
"@context": "http://www.w3.org/ns/activitystreams",
"@id": "http://example.com/my-silly-note"
"@type": "Note",
"content": "A simple note",
"inReplyTo": {
"@type": "Link",
"rel": "in-reply-to",
"href": "http://example.com/my-silly-reply"
}
}
we can also see here how using as:Link breaks JSON-LD embeding
example of behavior with default language from James' email
https://lists.w3.org/Archives/Public/public-socialweb/2015Apr/0081.html
"Consider this thought experiment: Take the following, process it down
to N-QUADS, then convert it back to JSON-LD:
{
"items": [
{
"@context": {"@language": "en"},
"@type": "Note",
"displayName": "A Simple Note",
"content": "This is a simple note",
"image": {
"@id": "http://example.org/img1.png",
"displayName": "A Simple Caption"
}
},
{
"@context": {"@language": "sp"},
"@type": "Note",
"displayName": "Una nota simple",
"content": "Esta es una simple nota",
"image": {
"@id": "http://example.org/img1.png",
"displayName": "Un subtítulo sencilla"
}
}
]
}
_:b0 as:items _:b1 .
_:b0 as:items _:b2 .
_:b1 a as:Note .
_:b1 as:displayName "A Simple Note"@en .
_:b1 as:content "This is a simple note"@en .
_:b1 as:image <http://example.org/img1.png> .
_:b2 a as:Note .
_:b2 as:displayName "Una nota simple"@sp .
_:b2 as:content "Esta es una simple nota"@sp .
_:b2 as:image <http://example.org/img1.png> .
<http://example.org/img1.png> displayName "A Simple Caption"@en .
<http://example.org/img1.png> displayName "Un subtítulo sencilla" .
Serializing back into JSON-LD yields...
{
"items": [
{
"@context": {"@language": "en"},
"@type": "Note",
"displayName": "A Simple Note",
"content": "This is a simple note",
"image": {
"@id": "http://example.org/img1.png",
"displayNameMap": {
"en": "A Simple Caption",
"sp": "Un subtítulo sencilla"
}
}
},
{
"@context": {"@language": "sp"},
"@type": "Note",
"displayName": "Una nota simple",
"content": "Esta es una simple nota",
"image": {
"@id": "http://example.org/img1.png",
"displayNameMap": {
"en": "A Simple Caption",
"sp": "Un subtítulo sencilla"
}
}
}
]
}
"
Display change log