ewilderj / doap

RDF schema for describing software projects
https://github.com/ewilderj/doap/wiki
Apache License 2.0
270 stars 57 forks source link

Add a way to reference other versions of the Project #52

Open linkmauve opened 6 years ago

linkmauve commented 6 years ago

A Project generally consists of multiple versions, the latest stable release, zero or more future versions (beta, nightly, master, etc.) and zero or more previous releases, each of them with potentially different metadata.

It would make sense to have each of these versions linked in some way, at least from the stable release (which would then be the canonical URI, possibly as a symlink).

Since most of the metadata can change, it makes sense reuse the Project in each of them, and use an rdf:resource attribute to link them, that way we can keep the released versions immutable, and only modify master and the symlink.

A possible example would be:

<!-- my-project-0.2.rdf, also symlinked to my-project.rdf -->
<Project xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://usefulinc.com/ns/doap#">
    <name>my-project</name>
    <!-- … -->
    <canonical-release rdf:resource="./my-project.rdf"/>
    <release>
        <Version>
            <revision>0.2</revision>
        </Version>
    </release>
    <release>
        <Version>
            <revision>master</revision>
            <other-release rdf:resource="./my-project-next.rdf"/>
        </Version>
    </release>
    <release>
        <Version>
            <revision>0.1</revision>
            <other-release rdf:resource="./my-project-0.1.rdf"/>
        </Version>
    </release>
</Project>

I dislike the names I chose for <canonical-release/> and <other-release/>, these should be subject to bikeshedding before being added to the specification.

ewilderj commented 1 month ago

If I read this right, this is related to both #80 and #74 -- do you agree? I think a little design document might be the right thing to address all three of these issues. I'm not 100% clear on the motivations expressed in this issue.