uncefact / spec-untp

UN Transparency Protocol
https://uncefact.github.io/spec-untp/
GNU General Public License v3.0
15 stars 12 forks source link

Problems in untp-core ontology #125

Closed VladimirAlexiev closed 2 weeks ago

VladimirAlexiev commented 1 month ago

I got https://jargon.sh/user/unece/untp-core/v/working/artefacts/jsonld/render.jsonld, saved as untp-core-ontology.jsonld, and converted to turtle untp-core-ontology.ttl, eg

riot --formatted ttl untp-core-ontology.jsonld > untp-core-ontology.ttl 

Problems:

Props

Enumerations

Fak3 commented 1 month ago

@VladimirAlexiev

There's no reason to use different props for the name of things. So remove all these props, and just say:

schema:name schema:domainIncludes  untp-core:Facility, untp-core:Standard, untp-core:Product... untp-core:hashMethodCode .

I wonder if we should make all our classes inherit from schema:Thing instead of changing the domain of schema:name. Is there any potential downsides?

VladimirAlexiev commented 1 month ago

@Fak3 I dislike overly abstract classes like Thing and making such classes and deep class hierarchies just for the purpose of binding props to classes.

onthebreeze commented 1 month ago

So @VladimirAlexiev - I've been back and forth with specific names vs abstract names. I did have Facility.facilityName - then changed it to facility.name (inherited from identifier). Some ontologists like specific property names and some seem to like abstraction inheritance.

personally I think I prefer specifc names and identifiers - but I'm a bit fed up of swaying with the winds of opinion on this. Is there some external best practice reference that we can follow?

Fak3 commented 1 month ago

personally I think I prefer specifc names and identifiers - but I'm a bit fed up of swaying with the winds of opinion on this. Is there some external best practice reference that we can follow?

Yes, the relevant best practices on the web document recommends to reuse vocabularies: https://www.w3.org/TR/dwbp/#ReuseVocabularies

Fak3 commented 1 month ago

I did have Facility.facilityName - then changed it to facility.name (inherited from identifier).

Name should not inherit from identifier. Identifier is unique, name is not.

onthebreeze commented 1 month ago

Well of course vocabulary re-use is best practice.

But the question was about best practice vocabulary design - more abstract (thing.name) or more concrete (party.name)

VladimirAlexiev commented 1 month ago

@onthebreeze I don't know who do you trust (why not me? :-).

There's a lot of useful advice in that guide, eg see about Definitions