Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

add alias suggestion #66

Merged
merged 13 commits into from
Mar 1, 2022
Merged

add alias suggestion #66

merged 13 commits into from
Mar 1, 2022

Conversation

sierra-moxon
Copy link
Member

No description provided.

@@ -1333,6 +1360,15 @@ classes:
close_mappings:
- qb:HierarchicalCodeList

alias_definition:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so our naming conventions are a bit odd. Only slot_definition and class_definition inherit from definition... yet schema_definition inherits from element, despite it's name...

How about we reserved Xdefinition for things with identifiers, we can simply call this structured_alias?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done.

slots:
- alias_name
- alias_source
- alias_scope
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

scope: This naming convention is very obo-format esque and not really used elsewhere. I would favor alias_type (perhaps alias_property/predicate/category)

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I removed the 'alias_' convention and this turned into 'type' (and changed 'alias_scope_enum' to 'type_enum').

and its scope (narrow, broad, etc.)
slots:
- alias_name
- alias_source
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just added source #62 -- could be reused?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moved to use 'source' instead of 'alias_source.' I'm a little worried that we won't have uriorcurie for every alias source (eg.: I have sources in the biolink-model that are 'fake' curies to get around this requirement in the mapping objects like 'GAMMA:activator' where GAMMA is a made-up prefix), but, it could be that we change the alias source in this case to an actual source that might be broader than the made-up source.

object that contains meta data about a synonym or alias including where it came from (source)
and its scope (narrow, broad, etc.)
slots:
- name
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, unfortunately this is problematic. The metamodel follows a tradition in logic/linked data in using "name" to designate an identifier - and indeed name is marked as being an identifier, which will cause problems here, e.g. it will be inlined as a dict with the "names" being keys.

A perfectly acceptable alternate would be alias but that is actually slot-specific and used to designate the preferred label for the slot (i.e. unmangled)

Naming things is hard, I might just go with alias_value or label

@@ -110,9 +110,22 @@ slots:
in_subset:
- owl

type:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest alias_type OR keeping type generic and putting the specifics in slot_usage... but in this case I think alias_type and alias_type_enum is the way to go

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure what the best approach is here. Could you also have subproperties of alias_type such as:

  • has narrow alias
  • has broad alias
  • has exact alias
  • has close alias
  • etc.

From querying standpoint the difference would be:

  • Find all alias names where the alias_type = exact
    vs.
  • Find all values of has exact alias

Copy link
Member

@cmungall cmungall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also can you add an example to the examples/ folder - see the Makefile for how to test

@wdduncan
Copy link

@sierra-moxon @cmungall and everyone else ...
Here is the link to the alias enums in linkml google doc.

type StructuredAlias
{
name: String!
source: Uriorcurie
Copy link

@wdduncan wdduncan Feb 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will there be cases in which the source is identified simply with a string instead of a uri or curi? I'm thinking terms that come from CDICS or LOINC.

type:
range: type_enum
description: >-
The relatedness of an alias to the element it is aliasing. type can be: narrow, broad, exact,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Instead of just narrow and broad, do you want is narrower than and is broader than ? It may make it clearer.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants