-
Notifications
You must be signed in to change notification settings - Fork 0
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
Codelists as rdfs:Datatype: mixture of formal ontology and thesauri, or an only way to have data interoperable #14
Comments
Maybe this will help: opengeospatial/CityGML-3.0CM#10 (comment) CodeList values shall be expressed as UML enumerations in the Conceptual Model within a UML class given the CodeList stereotype. https://www.ibm.com/docs/en/dma?topic=diagrams-enumerations According to the above, if a CodeList is a class and CodeListValue is an user-defined datatype, conformance to the UML is not lost. |
CodeLists should be empty in class models - they are placeholders for controlled vocabularies - other packages can extend them with a set of values, which must be present but may be further extended by applications implementing these vocabularies.
We can think of each code list as a class or super-class for the entries (instances) in some external registry, which can be extended with additional model(s) for these instances. We should never mix CodeList instances in the ontology artefacts IMHO - and thus the natural and inevitable OWL punning isnt baked in to the OWL representation of the model - we can can have SKOS or OWL (or other) representations of the values in different views/artefacts. |
I agree that CodeList instances should be not baked in and code lists should be classes. Ideally, extending those classes should be left to the particular implementation. SKOS Concept for every CodeListValue with a corresponding instance in the ontology, as of now, pretty strongly suggests a particular way of implementing code lists. |
Thanks everyone for the mental efforts spent) bldgcode:BuildingUsageValue
rdf:type skos:ConceptScheme;
rdfs:label "BuildingUsageValue"@en;
dct:isFormatOf <https://www.opengis.net/ont/citygml/building/BuildingUsageValue>;
skos:definition "BuildingUsageValue is a code list that enumerates the different uses of a Building."@en . and we can think of creation of bldg:BuildingUsageValue a owl:Class;
owl:equivalentClass owl:oneOf ();
rdfs:label "BuildingUsageValue"@en;
skos:definition "BuildingUsageValue is a code list that enumerates the different uses of a Building."@en . We won't have punning, only one BuildingUsageValue class is in the package building |
@nataschake my emoji reaction to your latest reply, means that this change makes a lot of sense to me! 😉 |
Asked :ShapeChange/ShapeChange#475 (comment), because seems I can not simply use ShapeChange rule rule-owl-cls-codelist-external |
I dislike this for 2 reasons:
It's not correct: it says the class has no members, and cannot have any members.
Due to OWA, someone can add more members later. I slightly prefer using ConceptSchemes instead of dedicated enumeration classes, because it simplifies the model slightly. |
If we want to go with the resources and things, there is also a GML format for it that could be RDFized https://data.ogc.org/citygml-swg/CodeList_Examples_3.0.0/ An example for Although this response, mentions strings for code list values explicitly: opengeospatial/CityGML-3.0CM#10 (comment) The enumerated CodeList values shall consist of strings which are regular expressions (including explicit fixed values). Note: the use of regular expressions not fully discussed. |
Merging of ontology file with codelists file was declared in the script |
Probably the last thing that I am going to say about using skos:Concept as default for code lists in CityRDF is that it scores a little bit less with it than it does without it, when the ontology is assessed by using those criteria: https://www.semantic-web-journal.net/system/files/swj657.pdf Adaptability Coupling: Number of external classes referenced On the other hand, those concept schemes are meant to provide this kind of adaptability. It is still a choice. |
@rob-metalinkage @avillar @ar-chad @VladimirAlexiev
I would like you to speculate a bit on this.
We had a discussion today, January 16th, on whether we get rid of codelists as skos:ConceptSchemas. The main reason to raise the discussion was that we mix formal ontologies and thesauri, that are different by nature.
See skos-reference:
Now we have:
But we might want to do the same as is done for enumerations by ShapeChange:
app:TextureType is the enumeration, values are known.
So we might have:
As
owl:oneOf
can be with 0 values, such definition will be correct, and a particular application can feed values to elements of it.Here I explicate contras:
we loose conformance to UML - in UML BuildingClassValue is a CodeList, not a Datatype.
Here is how INSPIRE codelists are explained: https://wetransform.to/news-and-events/inspire-codelists/ :
Pros:
owl:Class
and an individualskos:Concept
The text was updated successfully, but these errors were encountered: