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

Many object property names are not according to semantic naming conventions and guidelines #299

Open
JuergenGrupp opened this issue Mar 21, 2024 · 3 comments
Assignees
Labels
documentation Improvements or additions to documentation enhancement New feature or request

Comments

@JuergenGrupp
Copy link
Collaborator

About a quarter of the object properties are not following conventions or best practices for semantic modelling. The use of naming elements like "is", "has" and "of" is not consistent across the ontology. Some forward properties should rather be named in active voice and deserve inverse properties in passive voice. This is due to historical evolution, especially the merge of CCDM and EBUCore into EBUCorePlus and the use of class restrictions instead of the specification of domain and range. Some examples for current names and their improvements:

  • current: "objectType skos:Concept" , better: "hasObjectType skos:Concept"
  • current: "hasChild" and "hasParent", better "hasChild" and "isChildOf"
  • current: "dubbedTo MediaResource", better "hasDub MediaResource"
  • current: "isDubbedFrom MediaResource, better "isDubOf MediaResource"
  • current: "clonedTo MediaResource", better "hasClone"
  • current: "isClonedFrom MediaResource", better "isCloneOf"
  • current: "accountingTo Account", better "accountsTo Account"

The proposal here is to adopt the best practices of semantic naming and change their names. This will result in a non-backward-compatible version of the ontology and hence some effort for adapting software and interfaces. But it will foster easy understanding and consistent use of the ontology in the long run.

The correction effort can be combined with issue #286 : labelling inconsistencies for object properties.

@JuergenGrupp JuergenGrupp added enhancement New feature or request documentation Improvements or additions to documentation labels Mar 21, 2024
@JuergenGrupp JuergenGrupp added this to the Summer '24 Release milestone Apr 8, 2024
@aro-max
Copy link
Collaborator

aro-max commented Apr 10, 2024

I propose to list the heuristic rules and review them before applying the changes. as a starting point, some rules for renaming properties.

Prefix with "has" for possessive relationships:

  • Use "has" to denote ownership or containment.
  • Example: "VersionType" should be "hasVersionType"

Prefix with "is" for state or existential relationships:

  • Use "is" for properties that indicate a state, condition, or existential relationship
  • Example: "ApprovedBy" should be rephrased as "isApprovedBy"

Use of "of" for Inverse Relationships:

  • Rename properties to include "of" when defining inverse relationships, making them passive
  • Example: "ChildOf" as opposed to "hasParent"

Active vs. Passive Voice:

  • Apply active voice for forward relationships and passive voice for inverse relationships
  • Example: "Controls" can have an inverse property "isControlledBy"

Unify verb tenses and forms:

  • Maintain tense consistency across properties.
  • Example: "applyTo" should be "appliesTo".
  • Ensure properties that imply action use a verb that clearly states the action.
  • Example: "dubbedTo" should be "hasDubbedVersion" or "dubsTo".

Specificity in Relationships:

  • Use specific relational phrase that accurately describe the interaction between entities.
  • Example: "memberOf" can be detailed further into "isMemberOf"

@JuergenGrupp
Copy link
Collaborator Author

Editorial Committee agreed on these rules on April 22. There will be a minimized number of exception to the rules.

@aro-max
Copy link
Collaborator

aro-max commented Apr 24, 2024

We will share the exceptions for documentation/explanation purpose.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants