Closed VladimirAlexiev closed 3 months 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?
@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.
name
and you start making "flavor" or "interface" classes like Nameable
, Identifiable
...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?
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
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.
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)
@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
I got https://jargon.sh/user/unece/untp-core/v/working/artefacts/jsonld/render.jsonld, saved as
untp-core-ontology.jsonld
, and converted to turtleuntp-core-ontology.ttl
, egProblems:
Props
schema:name
(that's a prop so it cannot be a range!) and wrong typeowl:ObjectProperty
(a name is a string not an object!), egThere's no reason to use different props for the name of things. So remove all these props, and just say:
Latitude, Longditude, MaterialName
MaterialName
and just useschema:name
as described 2 items aboveEnumerations
HashMethod
untp-core:Name
(which also doesn't conform to naming convention). Just useschema:name
schema:name, schema:description