2015-08-13 UTC
jasnell, KevinMarks, tantek, bblfish, shepazu_, the_frey, jaywink, pfefferle and the_frey_ joined the channel
# 15:35 cwebber2 arg, I'm really not sure how to structure something that's multiple @types in my activitystuff library
# 15:39 ben_thatmustbeme if thats confusing to you, i'd say it would be confusing to others, might want to open an issue on that
# 15:45 cwebber2 I'd certainly be interested in understanding what the required use case was
# 15:53 rhiaro Things can have multiple types with AS2, right?
bblfish and the_frey joined the channel
# 16:45 cwebber2 my activitystuff library (really need a better name eventually) expects just one type
# 16:46 cwebber2 honestly I wonder if there's a time where you need more than one type where multiple inheritance doesn't make more sense than multiple classes :P
the_frey and jaywink joined the channel
# 18:02 cwebber2 ben_thatmustbeme: do I raise that on the github issues or on the w3c one?
jasnell_ and jasnell joined the channel
# 18:51 rhiaro cwebber2: what are you actually not sure about? I thought ben suggested raising an issue because it was a problem with AS2, but it seems fine in AS2. Maybe I'm misunderstanding
# 19:00 cwebber2 rhiaro: well "I never know anymore" was about where to file the issue
# 19:00 cwebber2 it's about whether anyone is making use of multiple types on a single activitystreams object
# 19:01 cwebber2 rhiaro: eg, pypump has different subclasses for different object types
# 19:01 cwebber2 if an object can have multiple types, which class should it choose?
# 19:06 rhiaro I guess it depends what the differences between the classes are
# 19:08 rhiaro I think aaronpk might have something to say about post types and code hierarchy
jasnell and jasnell_ joined the channel
# 19:17 cwebber2 rhiaro: aaronpk: I'd be interested to hear thoughts on that :)
jasnell joined the channel
KevinMarks and jasnell joined the channel
# 19:40 cwebber2 jasnell: was wondering if I could get your feedback on part of the AS spec
# 19:40 cwebber2 jasnell: I'm doing more implementation stuff, and I came to realize I have no idea how I would do this part in my library...
# 19:42 jasnell ok, so yeah, that's primarily an artifact of the extensibility model and JSON-LD
# 19:44 cwebber2 jasnell: do you know of any AS using applications that have made use of it?
# 19:44 cwebber2 full ack that it's possible in json-ld to do it, but whether we highlight it in the spec or not may matter
# 19:45 jasnell nothing in production, but I have made use of it. My node.js impl supports it
# 19:45 cwebber2 jasnell: I suppose I should look at how you modeled things there :)
# 19:46 cwebber2 jasnell: (I think it wouldn't be possible in pypump to make use of this... I could in my scheme application, but it does feel like it would increase complexity, and I'm not sure it would be for any value at present)
# 19:47 jasnell if all I have is @type: "xyz:Person", how do I know that it's something that extends as:Person?
# 19:49 cwebber2 jasnell: hm, I don't remember if json-ld has an inheritence model here, looking
# 19:49 cwebber2 I hardcoded the activitystreams inheritence model into activitystuff :)
# 19:49 jasnell understood. So what if I create an extension to as:Place, for instance?
# 19:50 jasnell {"@type": "xyz:MyPlace", "longitude": 1, "latitude": 1, "category": "foobar"}
# 19:50 jasnell how is a consuming application supposed to know that xyz:MyPlace is an extension of as:Place?
# 19:51 jasnell allowing for multiple types allows the publishing application to do...
# 19:51 cwebber2 jasnell: but the application doesn't really know that it's an extension of that either right?
# 19:51 cwebber2 it might not know it "inherits" from it, it might think they're totally different things
# 19:52 jasnell {"@type": ["as:Place", "xyz:MyPlace"], "longitude": 1, "latitude": 1, "category": "foobar" }
# 19:52 jasnell which is really saying, you can treat this object as either a as:Place or xsd:MyPlace, and it just works
# 19:52 jasnell you don't have to know *anything* about the relationship of as:Place or xyz:MyPlace in order to do something intelligent with it
# 19:54 jasnell yes. if you're doing processing at an RDF level, there is an inheritance tree that you can tap into, which allows you to ignore the multiple types, but if you're not processing at that level, this allows you to fake it
# 19:54 cwebber2 it feels kind of like a hacky way to do inheritance though...
# 19:56 jasnell in the node implementation, I have a rudimentary rdf reasoner implemented
# 19:56 jasnell it's configured to know about certain rdfs:subClassOf type relationships between the various objects
# 19:57 jasnell if the reasoner knows that xyz:MyPlace is a subclassof as:Place, then it will only output @type:xyz:MyPlace
# 19:57 cwebber2 I do think this maybe makes things complex for applications like pypump which use an inheritance tree via python's classes
# 19:57 jasnell yes, it makes things difficult to js implementations too, which do not have a multiple inheritance model
# 19:58 jasnell the drawback is that without it, interoperable extensibility becomes more difficult
b_, jasnell, the_frey and tantek joined the channel