Skip to content

Commit 47d2a3f

Browse files
Damien Goutte-Gattatmatentzn
andauthored
Add support for extension slots (#375)
This commit updates the SSSOM model to allow for _defined extensions_ as proposed in #328. It also updates the description of the data model to describe the use of both defined and undefined extension, and the specification of the SSSOM/TSV format to explain how SSSOM/TSV parsers and writers should deal with such extensions. Overall, this is exactly what was proposed in [this comment](#328 (comment)) in #328, except that here we need to split the specification in two parts (one about extensions in general, independently of the serialisation format, and one about the SSSOM/TSV serialisation of extensions), while the initial proposition was in a single block. Co-authored-by: Nico Matentzoglu <[email protected]>
1 parent 66d32ad commit 47d2a3f

File tree

19 files changed

+4170
-1055
lines changed

19 files changed

+4170
-1055
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
## Next
44

55
- Add the concept of "propagatable slots".
6+
- Add the concept of "extension slots".
67
- Add the entity reference `sssom:NoTermFound` to express the concept of an "unmapped entity" ([issue](https://github.com/mapping-commons/sssom/issues/28))
78
- Replace `semantic_similarity_score` with `similarity_score` and `semantic_similarity_measure` with `similarity_measure` in the data model ([issue](https://github.com/mapping-commons/sssom/issues/385))
89

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
#curie_map:
2+
# COMENT: https://example.com/entities/
3+
# EXPROP: https://example.org/properties/
4+
# ORGENT: https://example.org/entities/
5+
#mapping_set_id: https://example.org/sets/exo2c-with-extensions
6+
#mapping_set_title: Sample set EXO2C with extension slots
7+
#license: https://creativecommons.org/licenses/by/4.0/
8+
#extension_definitions:
9+
# - slot_name: ext_bar
10+
# property: EXPROP:barProperty
11+
# type_hint: xsd:integer
12+
# - slot_name: ext_baz
13+
# property: EXPROP:bazProperty
14+
# type_hint: linkml:Uriorcurie
15+
# - slot_name: ext_foo
16+
# property: EXPROP:fooProperty
17+
#ext_foo: Foo A
18+
#ext_undeclared_foo: Foo B
19+
subject_id subject_label predicate_id object_id object_label mapping_justification ext_bar ext_baz ext_undeclared_baz
20+
ORGENT:0001 alice skos:closeMatch COMENT:0011 alpha semapv:ManualMappingCuration 111 ORGENT:BAZ_0001 BAZ A
21+
ORGENT:0002 bob skos:closeMatch COMENT:0012 beta semapv:ManualMappingCuration 112 ORGENT:BAZ_0002
22+
ORGENT:0004 daphne skos:closeMatch COMENT:0014 delta semapv:ManualMappingCuration 114 Baz C
23+
ORGENT:0005 eve skos:closeMatch COMENT:0015 epsilon semapv:ManualMappingCuration 115 ORGENT:BAZ_0005 Baz E

project/excel/sssom_schema.xlsx

2.37 KB
Binary file not shown.

project/graphql/sssom_schema.graphql

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,51 @@
1+
type ExtensionDefinition
2+
{
3+
slotName: Ncname!
4+
property: Uriorcurie
5+
typeHint: Uriorcurie
6+
}
7+
8+
type LiteralMapping
9+
{
10+
literal: String!
11+
literalDatatype: Uri
12+
predicateId: EntityReference!
13+
predicateLabel: String
14+
predicateModifier: PredicateModifierEnum
15+
objectId: EntityReference!
16+
objectLabel: String
17+
objectCategory: String
18+
mappingJustification: EntityReference!
19+
authorId: [EntityReference]
20+
authorLabel: [String]
21+
reviewerId: [EntityReference]
22+
reviewerLabel: [String]
23+
creatorId: [EntityReference]
24+
creatorLabel: [String]
25+
license: Uri
26+
literalSource: EntityReference
27+
literalSourceVersion: String
28+
objectType: EntityTypeEnum
29+
objectSource: EntityReference
30+
objectSourceVersion: String
31+
mappingProvider: Uri
32+
mappingSource: EntityReference
33+
mappingCardinality: MappingCardinalityEnum
34+
mappingTool: String
35+
mappingToolVersion: String
36+
mappingDate: Date
37+
confidence: Double
38+
objectMatchField: [EntityReference]
39+
matchString: [String]
40+
literalPreprocessing: [EntityReference]
41+
objectPreprocessing: [EntityReference]
42+
similarityScore: Double
43+
similarityMeasure: String
44+
seeAlso: [String]
45+
other: String
46+
comment: String
47+
}
48+
149
type Mapping
250
{
351
subjectId: EntityReference!
@@ -88,6 +136,7 @@ type MappingSet
88136
issueTracker: Uri
89137
other: String
90138
comment: String
139+
extensionDefinitions: [ExtensionDefinition]
91140
}
92141

93142
type MappingSetReference
@@ -100,3 +149,8 @@ type MappingSetReference
100149
localName: String
101150
}
102151

152+
type Propagatable
153+
{
154+
propagated: Boolean
155+
}
156+

0 commit comments

Comments
 (0)