OldSSN/SOSA/SSN Integration Methodology

From Spatial Data on the Web Working Group
Jump to: navigation, search

Choosing a strict methodology to integrate oldSSN/SOSA/SSN is related to ISSUE-139 and ISSUE-146.


Checks to do before merging pull requests:

  • check the documents implement no more than the changes that are announced in the pull request;
  • check that every modification is associated with a ACTION in the tracker, that refers to something that has been discussed in the Wiki and voted in the conf call;
  • check that the requirements are met;
  • check that the ontologies are valid OWL DL ontologies;
  • check there is no mention of TODO in the documents.

Proposed methodology


  1. copy the old SSN document without the DUL alignments, name it `oldssn.ttl`
  2. create the stub of the documents: `ssnx.ttl`, `sosa.ttl`, `ssn.ttl`;
  3. propose an order for the old SSN terms and group them in sections of no more than 8-10 terms in terms.xlsx;

For ssnx, sosa, ssn:

  1. copy the prefix declarations, ontology declaration and its metadata
  2. discuss metadata in the wiki:
    1. tite
    2. description
    3. creator
    4. rights
    5. license
    6. source or owl:versionInfo ?
    7. other comment ?
  3. vote
  4. implemente the agreed option in github.


  1. someone in charge creates a new branch `b` and picks the next few terms in `oldssn.ttl`
  2. cut/paste their declaration to `ssnx.ttl`
    1. copy the declarations from the old SSNX ontology;
    2. order, correct, update the term metadata:
      1. first the rdfs:label, add @en
      2. then the rdfs:comment, add @en and replace with skos:definition
      3. then dcterms:source and the rdfs:seeAlso, if present;
      4. then owl:deprecated true;
      5. then a **proposal** for the alignemnt with a term in sosa or ssn, add the mention `# TODO: check` at the end of the line
      6. then, add rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn>;
      7. leave all of the axioms, (they will be copied in ssn.ttl).
    3. when a similar term exists in sosa,
      1. work on the declaration in `sosa.ttl`
        1. reuse what already exists in sosa whenever possible
        2. check the metadata, delete the duplicate rdfs:comment, keep the skos:definition
        3. add `# TODO: discuss` at the end of lines whenever choices need to be done
      2. work on the declaration in `ssn.ttl`
        1. duplicate the axioms when possible;
        2. if not, make a choice and add `# TODO: discuss` at the end of the line
    4. when the term belongs to ssn,
      1. work on the declaration in `ssn.ttl`
        1. basically copy the declaration and its metadata;
        2. duplicate the axioms when possible;
        3. else, make a choice and add `# TODO: discuss` at the end of the line
  3. issue a pull request for branch `b` into `gh-pages`;
  4. for each `# TODO: discuss`, write and discuss the pros and cons of different options in a wiki page
  5. report this on the mailing list, and in the ISSUE/ACTION tracker,
  6. vote during a conf call,
  7. every decision is implemented in a separate branch `c` and issue pull requests from `c` into `b`.
  8. when `b` is ready, `merge `b` into `gh-pages`.