Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SAREF-SOSA alignment and first approx doc, closes #125 #206

Merged
merged 8 commits into from
May 23, 2024

Conversation

maximelefrancois86
Copy link
Contributor

@maximelefrancois86 maximelefrancois86 commented Mar 14, 2024

Closes #125

Alignment to SAREF and draft documentation

  • alignment in ssn/mappings/sosa-saref-mapping.ttl
  • updated references to SAREF and SAREF patterns in config.js
  • drafted documentation in ssn/frag/SAREF-alignment.html

to previsualize:

@maximelefrancois86
Copy link
Contributor Author

@rgcmme Maybe you want to check this out ?

ssn/config.js Outdated Show resolved Hide resolved
Remove entries that are in SpecRef
# Conflicts:
#	ssn/chapters/SAREF-alignment.html
#	ssn/index.html
#	ssn/rdf/ontology/alignments/sosa-saref-mapping.ttl
@rgcmme
Copy link

rgcmme commented Mar 20, 2024

SOSA has no formal axiomatization, since all of it has been moved to SSN. Therefore, since the mapping is only between SOSA and SAREF, the relationships should be in the other direction.

That is, by making sosa:FeatureOfInterest (no axioms) subclass of saref:FeatureOfInterest (with axioms), sosa:FeatureOfInterest is inheriting many axioms that may not apply.

If the mapping would be between SAREF and SSN, every class should be analysed in detail. SSN has some cardinality restrictions that would make such mapping difficult (e.g., is it needed for every sosa:Execution to always have both a start time and a result time?).

Also, the mappings between inputs and outputs are strange; because of the "/sosa/saref" URIs, and there is a typo in the sosa:hasOutputValue one. In SAREF inputs and outputs are only applied to commands, but in SOSA/SSN to procedures.

@maximelefrancois86
Copy link
Contributor Author

I based the alignment on the literal definitions, mostly.
The goal here would only be that nothing breaks when importing SSN + SAREF + this alignment,

Regarding the mappings between inputs and outputs, they are strange indeed. I don't think either is more specific than the other, so I created a common super-property. Note that in SAREF inputs and outputs apply not only to commands:

saref:hasInput has Domain ( saref:Command or saref:CommandOfInterest or saref:Operation or saref:ProcedureExecution )
saref:hasOutput has Domain ( saref:Command or saref:CommandOfInterest or saref:Operation )

@rgcmme
Copy link

rgcmme commented Mar 20, 2024

If the mappings are based in the textual definitions, from the "textual" perspective they compile. 😄

However, if they are formally encoded (using for example rdfs:subClassOf), then there will be formal entailments.

In the case of SOSA, with no axiomatization, nothing will break (even if the mappings are not correct).

If the mapping would be between SSN and SAREF, this may not be the case, since both ontologies impose their own restrictions that may not be compatible (or produce the intended result). But I haven't made that detailed analysis. And it also depends on the definition of "break", but it may happen that one SSN individual is not a valid SAREF individual (e.g., because of cardinality constraints).

@dr-shorthair
Copy link
Collaborator

SSN has some cardinality restrictions that would make such mapping difficult

I'm not fully confident in the cardinality restrictions.
Most of them are my clumsy way of adding some 'expectations'.
But cardinalities are probably better handled in the application, or using SHACL (which is planned by OGC in the next phase).

Would it be best to remove all cardinality constraints from the ssn graphs?

@rgcmme
Copy link

rgcmme commented Mar 21, 2024

I am in favour of the cardinality restrictions and any other axiom that further specifies the meaning and restrictions of the concepts.

Ontologies are a good way of sharing those restrictions in a machine-procesable way; leaving applications the role of handling those restrictions will cause heterogeneity and hinder interoperability.

And using SHACL will require implementors to know/learn both OWL and SHACL and having to search for the restrictions in two places.

In any case, every option is valid in principle. My take would be, for those restrictions that are clear, to have them in OWL and in the future in SHACL.

I would try to avoid having restrictions in SHACL that do not appear in OWL (for those restrictions that can be defined in both places).

@rob-metalinkage rob-metalinkage self-requested a review April 10, 2024 11:52
Copy link
Contributor

@rob-metalinkage rob-metalinkage left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

convert circular subproperty alignments for *:hasInput to a skos:closeMatch

@dr-shorthair
Copy link
Collaborator

On cardinalities:

e.g., is it needed for every sosa:Execution to always have both a start time and a result time?

The way I understand it is that every Execution does necessarily have a start and end (result) time in the world.
However, these may not be known or expressed in any particular representation ... but that is handled by the OWA.

Does putting a minCardinality=1 in the OWL mean that a dataset without that property is 'wrong'?
I don't think so, OWL processing does not allow for that judgement, it can only generate entailments.
The entailment in such a case is that there is an unknown value ...

@rgcmme
Copy link

rgcmme commented Apr 24, 2024

Of course, OWL and the OWA are able of handling this correctly.

However, sooner or later someone will define closed world constraints (SHACL is mentioned in this same thread) and the restriction "every execution has a start date and there is no problem if you don't find it" becomes "every execution has a start date and your data is incorrect because it does not".

The fact that every execution always has a start time can be documented in the rdfs:comment of sosa:Execution (with no strong semantics associated to it) and leave to users the decision of whether they want that to be a strong constraint (by extending SSN with further restrictions) in their applications.

At least in this case I think that it is a restriction that will not hold for many applications.

@dr-shorthair
Copy link
Collaborator

dr-shorthair commented Apr 24, 2024

sooner or later someone will define closed world constraints (SHACL) [that are too strict or onerous]

We recognise that risk, and propose to address it by providing shared SHACL constraints that manage things like cardinality. This is on the agenda for related work to be done inside OGC - see #142 and opengeospatial/ogcapi-sosa#4

There is a placeholder space for standard SHACL resources here https://github.com/w3c/sdw-sosa-ssn/tree/gh-pages/ssn/rdf/shapes

@dr-shorthair
Copy link
Collaborator

@rob-metalinkage can you check if your concern has been addressed?

@rob-metalinkage rob-metalinkage self-requested a review May 22, 2024 12:14
Copy link
Contributor

@rob-metalinkage rob-metalinkage left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think so - adding a superproperty in the saref alignment avoids circular ref.

@dr-shorthair dr-shorthair merged commit bff6deb into gh-pages May 23, 2024
1 check passed
@dr-shorthair dr-shorthair deleted the lefrancois-saref-alignment branch May 23, 2024 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add SAREF alignment in Rec doc
4 participants