- From: Raúl García Castro <rgarcia@fi.upm.es>
- Date: Mon, 24 Apr 2017 09:00:34 +0200
- To: Armin Haller <armin.haller@anu.edu.au>, SDW WG Public List <public-sdw-wg@w3.org>
El 23/4/17 a las 6:05, Armin Haller escribió: > Hi Raul, > > Thanks! I like them a lot, like I did the old SSN diagrams. I accepted the pull request. > > Comments on your issues are inline. Hi Armin, Thanks for the comments; I think that we can rapidly go through the issues in the next telco and try to close them. Kind regards, > On 22/4/17, 8:43 pm, "Raúl García Castro" <rgarcia@fi.upm.es> wrote: > > Dear all, > > I have created the figures for the "Axiomatization" section of the > document. You can find the document updated with the figures in a pull > request: > https://github.com/w3c/sdw/pull/737 > > All the figures are in the "images" directory (I have appended "SSN-" to > them to avoid confusions). > > Feel free to comment on the figures and, if you like them, I can > generate similar ones for the rest of the document. > > Besides, while generating the figures, I came across several fixes and > issues that I present next. > > +------+ > |ISSUES| > +------+ > > These are things that require (more or less) discussion, either on the > issue or on how to solve it. > > Documentation of cardinality restrictions > ----------------------------------------- > > This is something that happens in different places in the documentation. > > Taking as an example the Observation class, the documentation states: > sosa:madeBySensor must be exactly 1 sosa:Sensor > sosa:madeBySensor must be sosa:Sensor > > However, this is not a direct translation of the implementation, because > the cardinality axiom is not qualified: > rdfs:subClassOf [ a owl:Restriction ; owl:onProperty > sosa:madeBySensor ; owl:cardinality "1"^^xsd:nonNegativeInteger ] ; > rdfs:subClassOf [ a owl:Restriction ; owl:onProperty > sosa:madeBySensor ; owl:allValuesFrom sosa:Sensor ] ; > > I don't know if this is due to the generation of the documentation or > because it is intended to be so. > > I see two options, either we translate directly axioms or, since we are > tweaking manually the documentation, we generate more concise and clear > documentation (which is what I prefer). > > That means that in the previous case the documentation would be just the > conflation of the two statements: > sosa:madeBySensor must be exactly 1 sosa:Sensor > > ➢ That was me doing the documentation manually. You are right, we should just remove the one documented axiom. > > Documentation of temporal cardinality restrictions in Observation > ----------------------------------------------------------------- > > Related to the previous issue, and this time particular to the > documentation of the Observation class. > > The documentation of Observation states: > sosa:phenomenonTime must be exactly 1 time:TemporalEntity > > While the axiom does not include time:TemporalEntity: > rdfs:subClassOf [ a owl:Restriction ; owl:onProperty > sosa:phenomenonTime ; owl:cardinality "1"^^xsd:nonNegativeInteger ] ; > > In fact, the value is not restricted to time:TemporalEntity anywhere; it > only appears in SOSA through schema:rangeIncludes. > > ➢ Yes, I included that in the documentation. I thought it would be worth to add the TemporalEntity to the axiom in SSN as we define the range in SOSA. I had that on my todo list to ask the group on what to do about those. > > For resultTime, the documentation in Observation states: > sosa:resultTime must be exactly 1 xsd:dateTime > > In this case xsd:dateTime is defined in sosa as the range of the > property, so I'm not sure whether the documented restriction is correct. > > ssn:qualityOfObservation > ------------------------ > > ssn:qualityOfObservation is declared in ssn (was declared already in > ssnx) but is not used anywhere in the ontologies. > > Besides, the (non-exhaustive) usage analysis > (http://w3c.github.io/sdw/ssn-usage/) shows that it has not been used. > > I propose to remove from the current ontologies and deprecate it. > > If we decide to leave it, in the document I would put it at the end of > the section, not in the middle of the sosa terms as it is now. > > ➢ Yes, there are several terms that we may want to deprecate after the usage analysis and implementation evidence. ssn:qualityOfObservation is one of them. > > ssn:hasProperty > --------------- > > ssn:hasProperty is defined as inverse of ssn:isPropertyOf and is > documented as: > "Relation between a FeatureOfInterest and a Property of that feature." > > There are multiple properties that do not fit directly/intuitively with > that definition and are defined as subproperties of ssn:hasProperty > (ssn:qualityOfObservation, ssn:hasSystemCapability, > ssn:hasSystemProperty, ssn:hasOperatingRange, ssn:hasOperatingProperty, > ssn:hasSurvivalRange, ssn:hasSurvivalProperty). > > ➢ I think that is a leftover issue from the fact that the documentation of the class did not keep track with the new sub-classes added. We did have a resolution to make those properties subclasses of ssn:Property, but we may need to adjust the documentation of the class a bit. > > I don't know if this may cause confusion and maybe we should remove some > of those subproperty declarations? > > ssn:hasProperty and ssn:isPropertyOf > ------------------------------------ > > I think that this has been discussed before; I see a lot of value in > being able to represent which properties belong to a certain feature of > interest. For example, for discovery tasks: for which properties of this > room can you act on? > > Therefore, I would move the ssn:hasProperty and ssn:isPropertyOf > properties from ssn to sosa. > > It gives more cohesion to the core, makes no harm, and for those use > cases people should not need to use the whole ssn. > > ➢ We can discuss that again. Initially, the feeling was that using the word property in the simple core is confusing for non-ontologists as it clearly has different meanings in the Web developers community. > > hasResultingSample/isSamplingResultOf > ------------------------------------- > > I think that subclassing hasResult and isResultOf for the case of > Samples adds unnecessary complexity to the core. > > Right now in ssn only hasResultingSample is used in restricting the > Sampling class, and that restriction could perfectly be defined with > hasResult. > > In order to reduce complexity, I would remove those properties, use the > hasResult property in the ssn restriction, and include in the definition > of hasResult (schema:domainIncludes Sampling) and in the definition of > isResultOf (schema:rangeIncludes Sampling). > > In this way, we don't fully specify in sosa that the range of Sampling > is a Sample (just a Result), but anyone seeing the documentation and the > restrictions in ssn will be able to know how to use it. > > ➢ I think that was raised by Maxime as well. I agree, we should probably keep them out of SOSA. > > hosts/isHostedBy > ---------------- > > In sosa it is stated that a platform hosts either systems (sensors, > actuators, samplers) or platforms, using rangeIncludes (it is similarly > defined in isHostedBy). > > However, in ssn it is stated that sosa:hosts must be ssn:System, which > does not fully support the previous definition. > > ➢ We could adjust the axiom for hosts in SSN to include Systems and Platforms. > > Right now Platform and System are unrelated; we could say that System is > a subclass of Platform, but it would add unnecessary complexity. > > I would remove that Platform is a range of hosts and, if we think that > being able to define platforms inside platforms is needed, I would > define a specific property (with the risk of creating confusion with the > existing hasSubSystem property). > > Results section > --------------- > > The Results section may be misleading, since it is describing terms that > are not 1st order citizens in the ontology (i.e., a result needs an > Observation/Observation/Sampling to give context). > > I would include some sentence saying that the Result class is intended > to be used along an Observation/Actuation/Sampling class to provide the > necessary context. > > Naming convention > ----------------- > > This is something that Maxime already raised; we should follow the same > naming convention in properties (e.g., madeBySensor vs actuationMadeBy). > > ➢ Yes, I think now that we have all others aligned, there is no harm in doing so for the actuation properties. > > > +-----+ > |FIXES| > +-----+ > > ➢ Agree with all the below. Just the “System is a unit of abstraction for pieces of infrastructure that implements Procedures.” is correct, in my opinion, but I stand corrected by native speakers. > > > These are other fixes that are minor corrections in the document and in > the ontologies and that do not require discussion. > > All these fixes are included in the following pull request: > https://github.com/w3c/sdw/pull/736. > > sosa:isResultOf restriction in sosa:Result > ------------------------------------------ > > sosa:Result is restricted in ssn with the following restriction: > inverse Of sosa:isResultOf must be at least 1 > > The restriction should be without the inverse part: > sosa:isResultOf must be at least 1 > > sosa:resultTime > --------------- > > The documentation of sosa:resultTime states: Range Includes xsd:dateTime. > > However, it is defined with rdfs:range xsd:dateTime in sosa, not with > schema:rangeIncludes. > > sosa:hosts > ---------- > > sosa:hosts includes in its ssn definition: "Sub property of Chain > ssn:hasDeployment o ssn:deployedSystem" while it should be "Sub property > of Chain ssn:inDeployment o ssn:deployedSystem". > > ssn:System > ---------- > > ssn:System includes the restriction: "inverse Of ssn:implements must be > sosa:Procedure", when it should be: "ssn:implements must be > sosa:Procedure" (without the inverse of). > > Writing corrections (document + ontologies) > ------------------------------------------- > 4.3.4 Feature of Interest and Properties > -> > 4.3.4 Features of Interest and Properties > > A Platform is an entity that hosts other entities, particularly Sensors, > Actuators and other Platforms. > -> > A Platform is an entity that hosts other entities, particularly Sensors, > Actuators, Samplers, and other Platforms. > > System is a unit of abstraction for pieces of infrastructure that > implements Procedures. > -> > System is a unit of abstraction for pieces of infrastructure that > implement Procedures. > > Updates in the ontologies > ------------------------- > > Replaced all the unneeded multi-line literals (""") to single line ones ("). > > Kind regards, > > -- > > Dr. Raúl García Castro > http://www.garcia-castro.com/ > > Ontology Engineering Group > Departamento de Inteligencia Artificial > Escuela Técnica Superior de Ingenieros Informáticos > Universidad Politécnica de Madrid > Campus de Montegancedo, s/n - Boadilla del Monte - 28660 Madrid > Phone: +34 91 336 65 96 - Fax: +34 91 352 48 19 > > > -- Dr. Raúl García Castro http://www.garcia-castro.com/ Ontology Engineering Group Departamento de Inteligencia Artificial Escuela Técnica Superior de Ingenieros Informáticos Universidad Politécnica de Madrid Campus de Montegancedo, s/n - Boadilla del Monte - 28660 Madrid Phone: +34 91 336 65 96 - Fax: +34 91 352 48 19
Received on Monday, 24 April 2017 07:01:05 UTC