Specifying object creator person and object creation time

How to specify who created a certain object, and when?

For example, a Git repo. I’d like to specify the Person actor who created it, and when it was created. I don’t mean the time of the first commit in the repo though, I just mean the time the Repository object was created on the server, using a Create activity.

  • Author: I can use attributedTo. Does that make sense? Sounds a bit weird, that a repo is “attributed to” the person who created it. Should I still use this property? Or pick something external to AP? For example, the Dublin Core creator or FOAF maker (which are actually equivalent properties)
  • Creation time: I suppose I could use the standard AP published, since in this case creation refers to the time the Create activity was processed and the repository object got published and available for HTTP GETing on the server. But there are other options, e.g. for some other cases (in ForgeFed) I’ve been using the Dublin Core created property. I suppose I could still reserve created for the time that something was written/made, and use published for the time the object got inserted into the database and really published on the server.

Thoughts? Especially about the author. Repo “attributed to” the person who created it on the server sounds weird. In Create Note, the Note is attributedTo the actor, sounds okay. But somehow in Create Repository it sounds weird to use attributedTo, maybe because the repo’s content, the commits etc. aren’t really attributed to this one actor; it’s just the creation, just the repo name and description, that’s all.

sounds like you want an inverse relationship of object, so that you can serve the Create activity embedded in the object it crested, and pull the time / actor from that. something like objectOf: [{Create}]

another approach would be to specifically have a property/relationship for “the activity which created this object”.

Well, I use it like that in my Facebook-like wall implementation, so for me that does make perfect sense. The only thing that you need to take care about is that actor in your Create must always match attributedTo in the object.

Attribution does not imply totality. It is possible to attribute a Repository to a Person while still having multiple commits be attributed to other people. All that matters is that the Repository is under the “ownership” or “management” of that Person. (or any other actor type, really)

Not necessarily. attributedTo does not have to be the Create actor, and in fact, does not have to be an actor at all. actor is a subproperty of attributedTo and is intended to mean that you are attributing the activity to the actor. It is possible for an actor to Create something that is attributedTo someone else.