How should a Repository specify which version-control system (VCS) it uses? For display in UI and for determining which VCS program to use on the actual repo in the filesystem.
IDEA: have a VersionControlSystem type, and define some values in the ForgeFed JSON-LD context, for known VCSs. Of course people can use other values / suggest new values for inclusion. For example, we'd have "git", mapped in the JSON-LD context to https://forgefed.peers.community/ns#git.
Feneas forum thread
A simple property for the Repository type: "vcs": "darcs"
A specialized actor type that extends Repository, for instance GitRepository
The second one imo only makes sense if the specialized actor type is supposed to have more properties that are only relevant for one vcs. Otherwise I'd prefer the first one.
So far there's nothing VCS-specific, not in the spec and not in Vervis, and VCS features get generalized anyway as much as possible and reasonable, so I think it's safe to use a simple property.
As to the name, vcs or versionControlSystem? AP/AS2 usually don't use abbreviations, and the objects are machine generated anyway, so I'm leaning towards the long version. @zPlus, what do you think? Assuming the long version, here's some RDF for VCSs just to summarize the discussion:
forge:VersionControlSystem rdf:type rdfs:Class
forge:darcs rdf:type forge:VersionControlSystem
forge:git rdf:type forge:VersionControlSystem
forge:mercurial rdf:type forge:VersionControlSystem
forge:versionControlSystem rdf:type rdf:Property
forge:versionControlSystem rdfs:domain forge:Repository
forge:versionControlSystem rdfs:range forge:VersionControlSystem