Warning:
This wiki has been archived and is now read-only.
OldSSN/SOSA/SSN Integration Methodology
From Spatial Data on the Web Working Group
Choosing a strict methodology to integrate oldSSN/SOSA/SSN is related to ISSUE-139 and ISSUE-146.
Contents
Requirements
- be as close as possible with the proposals 5 and 6 made by KJanowicz and Kerry at https://www.w3.org/2015/spatial/wiki/Proposals_for_rewriting_SSN
- be conformant with the linked vocabulary best practices at http://lov.okfn.org/Recommendations_Vocabulary_Design.pdf
- be OWL DL ontologies;
- adopt the implementation option for different namespaces for SOSA/SSN (this can be reverted to use a single namespace)
- implement the mapping table at https://www.w3.org/2015/spatial/wiki/Mapping_Table
- implement the advices from Phil A and agreed by Scott Simmons at https://www.w3.org/2015/spatial/wiki/Proposals_for_rewriting_SSN
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
Initialization
- copy the old SSN document without the DUL alignments, name it `oldssn.ttl`
- create the stub of the documents: `ssnx.ttl`, `sosa.ttl`, `ssn.ttl`;
- 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:
- copy the prefix declarations, ontology declaration and its metadata
- discuss metadata in the wiki:
- tite
- description
- creator
- rights
- license
- source or owl:versionInfo ?
- other comment ?
- vote
- implemente the agreed option in github.
Steps
- someone in charge creates a new branch `b` and picks the next few terms in `oldssn.ttl`
- cut/paste their declaration to `ssnx.ttl`
- copy the declarations from the old SSNX ontology;
- order, correct, update the term metadata:
- first the rdfs:label, add @en
- then the rdfs:comment, add @en and replace with skos:definition
- then dcterms:source and the rdfs:seeAlso, if present;
- then owl:deprecated true;
- then a **proposal** for the alignemnt with a term in sosa or ssn, add the mention `# TODO: check` at the end of the line
- then, add rdfs:isDefinedBy <http://purl.oclc.org/NET/ssnx/ssn>;
- leave all of the axioms, (they will be copied in ssn.ttl).
- when a similar term exists in sosa,
- work on the declaration in `sosa.ttl`
- reuse what already exists in sosa whenever possible
- check the metadata, delete the duplicate rdfs:comment, keep the skos:definition
- add `# TODO: discuss` at the end of lines whenever choices need to be done
- work on the declaration in `ssn.ttl`
- duplicate the axioms when possible;
- if not, make a choice and add `# TODO: discuss` at the end of the line
- work on the declaration in `sosa.ttl`
- when the term belongs to ssn,
- work on the declaration in `ssn.ttl`
- basically copy the declaration and its metadata;
- duplicate the axioms when possible;
- else, make a choice and add `# TODO: discuss` at the end of the line
- work on the declaration in `ssn.ttl`
- issue a pull request for branch `b` into `gh-pages`;
- for each `# TODO: discuss`, write and discuss the pros and cons of different options in a wiki page
- report this on the mailing list, and in the ISSUE/ACTION tracker,
- vote during a conf call,
- every decision is implemented in a separate branch `c` and issue pull requests from `c` into `b`.
- when `b` is ready, `merge `b` into `gh-pages`.