-
Notifications
You must be signed in to change notification settings - Fork 3
/
ontology_model.yaml
158 lines (150 loc) · 4.3 KB
/
ontology_model.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
id: https://w3id.org/kgcl/ontology
name: kgcl_schema-ontology-model
title: knowledge graph change language ontology model
description: A basic bare-bones model of an ontology or ontology-like structure. The
purpose is not to provide a complete model, rather just sufficient structure for
domain and range constraints in the ocl model
license: https://creativecommons.org/publicdomain/zero/1.0/
version: 0.0.1
prefixes:
om: http://w3id.org/kgcl/om/
dcterms: http://purl.org/dc/terms/
linkml: https://w3id.org/linkml/
oio: http://www.geneontology.org/formats/oboInOwl#
default_prefix: om
default_range: string
imports:
- linkml:types
- basics
classes:
OntologyElement:
aliases:
- entity
description: Any component of an ontology or knowledge graph
PropertyValue:
is_a: OntologyElement
description: a property-value pair
slots:
- property
- filler
Annotation:
is_a: PropertyValue
description: owl annotations. Not to be confused with annotations sensu GO
slots:
- property
- filler
- annotation_set
- property_type
- filler_type
mappings:
- owl:Annotation
Node:
aliases:
- entity
- term
is_a: OntologyElement
description: Any named entity in an ontology. May be a class, individual, property
slots:
- id
- name
- annotation_set
- owl_type
ClassNode:
aliases:
- concept
is_a: Node
description: A node that is a class
class_uri: owl:Class
InstanceNode:
aliases:
- named individual
is_a: Node
description: A node that is an individual
class_uri: owl:NamedIndividual
Edge:
aliases:
- triple
- axiom
- relationship
is_a: OntologyElement
description: >-
A relationship between two nodes.
Currently the only kinds of edges supported in KGCL:
* A subClassOf B <==> Edge(subject=A, predicate=owl:subClassOf, object=B)
* A subClassOf P some B <==> Edge(subject=A, predicate=P, object=B)
* P subPropertyOf Q <==> Edge(subject=P, predicate=owl:subPropertyOf, object=Q)
These represent the most common kind of pairwise relationship between classes,
and classes are the dominant node type in ontologies.
In future a wider variety of OWL axiom types will be supportedn through the use
of an additional edge property/slot to indicate the interpretation of the axiom,
following owlstar (https://github.com/cmungall/owlstar).
For example:
* `A subClassOf R only B <==> Edge(subject=A, predicate=P, object=B, interpretation=AllOnly)`
* `A Annotation(P,B) <==> Edge(subject=A, predicate=P, object=B, interpretation=annotationAssertion)`
Note that not all axioms are intended to map to edges. Axioms/triples where the object is a literal
would be represented as node properties. Complex OWL axioms involving nesting would have their own
dedicated construct, or may be represented generically. These are out of scope for the current
version of KGCL
mappings:
- owl:Axiom
- rdf:Statement
slots:
- subject
- predicate
- object
- subject_representation
- predicate_representation
- object_representation
- annotation_set
LogicalDefinition:
is_a: OntologyElement
OntologySubset:
is_a: OntologyElement
slots:
owl_type:
range: OwlTypeEnum
name: {}
subject:
range: Node
object:
range: Node
predicate:
range: Node
annotation_set:
range: Annotation
property:
range: Node
filler: null
property_type:
deprecated: no longer required
filler_type:
deprecated: no longer required
subject_representation:
deprecated: no longer required
predicate_representation:
deprecated: no longer required
object_representation:
deprecated: no longer required
property_value_set:
range: PropertyValue
multivalued: true
inlined: true
enums:
OwlTypeEnum:
permissible_values:
CLASS:
meaning: owl:Class
OBJECT_PROPERTY:
meaning: owl:ObjectProperty
NAMED_INDIVIDUAL:
meaning: owl:NamedIndividual
SynonymScopeEnum:
permissible_values:
related:
meaning: oio:hasNarrowSynonym
broad:
meaning: oio:hasBroadSynonym
narrow:
meaning: oio:hasNarrowSynonym
exact:
meaning: oio:hasExactSynonym