@liquidcars/atlas 0.1.47 → 0.1.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -0
- package/demo/index.html +3 -3
- package/demo/model.json +73 -72
- package/dist/liquidcars-atlas.js +2388 -825
- package/dist/liquidcars-atlas.js.map +1 -1
- package/index.html +3 -3
- package/package.json +1 -1
- package/src/diagram-svg.js +603 -0
- package/src/diagram-view.js +502 -0
- package/src/document-navigation.js +27 -0
- package/src/liquidcars-atlas.js +589 -160
- package/src/panel-content.js +84 -0
package/README.md
CHANGED
|
@@ -421,3 +421,53 @@ selección se conserva durante las mutaciones del modelo siempre que el elemento
|
|
|
421
421
|
siga existiendo. Se mantienen las correcciones de geometría, toolbar, etiquetas,
|
|
422
422
|
paleta externa, edición en caliente y los modos `directed`, `bidirectional` y
|
|
423
423
|
`broken` introducidos en las versiones anteriores.
|
|
424
|
+
|
|
425
|
+
## Hyperlinked Atlas documents
|
|
426
|
+
|
|
427
|
+
Entities and relations can keep their external `url` and also declare an
|
|
428
|
+
`atlasRef` such as `atlas:actors/dealer.atlas.md#inventory`. A leading slash
|
|
429
|
+
(`atlas:/overview.atlas.md`) starts at the root of the host's document
|
|
430
|
+
collection; otherwise the path resolves beside the current document. The
|
|
431
|
+
optional fragment selects an entity in the destination. Paths cannot escape
|
|
432
|
+
the collection root.
|
|
433
|
+
|
|
434
|
+
The information panel accepts `content: { format: "markdown", value: "…" }`
|
|
435
|
+
or `content: { format: "html", value: "…" }`. It also accepts a `source`
|
|
436
|
+
instead of an inline `value` when a content resolver is configured. HTML is
|
|
437
|
+
restricted to text formatting and safe `atlas:` or HTTP(S) links. Existing
|
|
438
|
+
`text` remains the fallback when `content` is absent.
|
|
439
|
+
|
|
440
|
+
The host supplies documents and optional external content:
|
|
441
|
+
|
|
442
|
+
```js
|
|
443
|
+
atlas.setDocumentResolver(async ({ uri, from }) => ({
|
|
444
|
+
uri,
|
|
445
|
+
model: await loadAndCompileDocument(uri, from)
|
|
446
|
+
}));
|
|
447
|
+
atlas.setContentResolver(async ({ source, from, format }) =>
|
|
448
|
+
loadContent(source, from, format));
|
|
449
|
+
await atlas.load(initialModel);
|
|
450
|
+
atlas.setDocumentUri("atlas:/overview.atlas.md");
|
|
451
|
+
```
|
|
452
|
+
|
|
453
|
+
The component exposes `openAtlas(reference)`, `goHome()`, `goBack()`,
|
|
454
|
+
`goForward()`, `goToVisit(index)` and `getDocumentHistory()`.
|
|
455
|
+
Navigation and failures emit `lc-navigation` and `lc-navigation-error`.
|
|
456
|
+
Home, Back and Forward appear in a top navigation bar; holding Back or Forward
|
|
457
|
+
opens a visit list. Hosts with their own top bar can set
|
|
458
|
+
`navigation-controls="external"` and connect those controls to the public
|
|
459
|
+
history methods, as Atlas Studio does. Selecting a linked entity or relation shows a floating link button
|
|
460
|
+
beside it. The information panel remains focused on descriptive content and
|
|
461
|
+
external documentation. Studio's Markdown and visual views can open a local
|
|
462
|
+
folder; they treat that folder as the root of `atlas:/`.
|
|
463
|
+
Where supported, Studio requests read and write directory access. It discovers
|
|
464
|
+
document names, reads files only as they are opened or referenced, and caches
|
|
465
|
+
their text in the current tab. Save writes the active Markdown document back
|
|
466
|
+
to its original file, including edits from the visual editor; switching editors
|
|
467
|
+
preserves the document and visit history. Nothing is sent to a server. Browsers
|
|
468
|
+
without the directory picker use a file-input fallback, whose native dialog may
|
|
469
|
+
call the selection “Upload”; Studio still reads the files locally on demand.
|
|
470
|
+
In that fallback, Save opens a picker or downloads a copy because the selected
|
|
471
|
+
files cannot be written in place.
|
|
472
|
+
See `examples/hyperlinks` for two linked documents and an external Markdown
|
|
473
|
+
information file.
|
package/demo/index.html
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<!doctype html>
|
|
2
|
-
<html lang="
|
|
2
|
+
<html lang="en">
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="utf-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
<body>
|
|
20
20
|
<header>
|
|
21
21
|
<h1>LiquidCars Atlas</h1>
|
|
22
|
-
<p>
|
|
22
|
+
<p>Distribution test for the <code><liquidcars-atlas></code> component · v0.1.28</p>
|
|
23
23
|
</header>
|
|
24
24
|
<main>
|
|
25
25
|
<liquidcars-atlas id="atlas" height="720" relation-mode="selected" shell-labels="on"></liquidcars-atlas>
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<script type="module">
|
|
28
28
|
const atlas = document.querySelector('#atlas');
|
|
29
29
|
const model = await fetch(new URL('./model.json', import.meta.url)).then((response) => {
|
|
30
|
-
if (!response.ok) throw new Error(`
|
|
30
|
+
if (!response.ok) throw new Error(`Could not load the model (${response.status})`);
|
|
31
31
|
return response.json();
|
|
32
32
|
});
|
|
33
33
|
atlas.model = model;
|
package/demo/model.json
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
{
|
|
17
17
|
"id": "offers",
|
|
18
18
|
"name": "OFFERS",
|
|
19
|
-
"sub": "
|
|
19
|
+
"sub": "Inventory and services",
|
|
20
20
|
"p": [
|
|
21
21
|
0,
|
|
22
22
|
-3,
|
|
@@ -29,12 +29,12 @@
|
|
|
29
29
|
],
|
|
30
30
|
"c": "offers",
|
|
31
31
|
"type": "container",
|
|
32
|
-
"text": "
|
|
32
|
+
"text": "The model base contains inventories, offers and services. The dealer provides the Base Offer, which references the physical vehicle; the provider supplies the associated service."
|
|
33
33
|
},
|
|
34
34
|
{
|
|
35
35
|
"id": "ole",
|
|
36
36
|
"name": "OLE",
|
|
37
|
-
"sub": "
|
|
37
|
+
"sub": "Channel offer calculation",
|
|
38
38
|
"p": [
|
|
39
39
|
-2.75,
|
|
40
40
|
0.4,
|
|
@@ -47,12 +47,12 @@
|
|
|
47
47
|
],
|
|
48
48
|
"c": "ole",
|
|
49
49
|
"type": "container",
|
|
50
|
-
"text": "
|
|
50
|
+
"text": "The Offer Listing Engine applies revenue management, tags and distribution conditions to calculate the offer shown by each channel."
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
"id": "agreements",
|
|
54
54
|
"name": "AGREEMENTS",
|
|
55
|
-
"sub": "
|
|
55
|
+
"sub": "Rules and operations",
|
|
56
56
|
"p": [
|
|
57
57
|
2.75,
|
|
58
58
|
0.4,
|
|
@@ -65,12 +65,12 @@
|
|
|
65
65
|
],
|
|
66
66
|
"c": "agreements",
|
|
67
67
|
"type": "container",
|
|
68
|
-
"text": "
|
|
68
|
+
"text": "Groups the distribution agreement and its functional areas: attribution, bookings and orders. The agreement links offers and services to their authorised distribution."
|
|
69
69
|
},
|
|
70
70
|
{
|
|
71
71
|
"id": "channels",
|
|
72
72
|
"name": "CHANNELS",
|
|
73
|
-
"sub": "
|
|
73
|
+
"sub": "Presentation and access",
|
|
74
74
|
"p": [
|
|
75
75
|
0,
|
|
76
76
|
3.2,
|
|
@@ -83,13 +83,13 @@
|
|
|
83
83
|
],
|
|
84
84
|
"c": "channels",
|
|
85
85
|
"type": "container",
|
|
86
|
-
"text": "
|
|
86
|
+
"text": "Groups the distribution channels. Each CHANNEL is contained in CHANNELS and contains the channel offer presented to the buyer."
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
"id": "physical",
|
|
90
90
|
"parent": "offers",
|
|
91
91
|
"name": "Physical Inventory",
|
|
92
|
-
"sub": "
|
|
92
|
+
"sub": "Direct source",
|
|
93
93
|
"p": [
|
|
94
94
|
-2.5,
|
|
95
95
|
-0.8500000000000001,
|
|
@@ -102,13 +102,13 @@
|
|
|
102
102
|
],
|
|
103
103
|
"c": "offers",
|
|
104
104
|
"type": "container",
|
|
105
|
-
"text": "
|
|
105
|
+
"text": "A collection of offers supplied directly by the dealer or its inventory system. It contains the Base Offer and propagates its updates."
|
|
106
106
|
},
|
|
107
107
|
{
|
|
108
108
|
"id": "baseoffer",
|
|
109
109
|
"parent": "physical",
|
|
110
110
|
"name": "Base Offer",
|
|
111
|
-
"sub": "
|
|
111
|
+
"sub": "Source offer",
|
|
112
112
|
"p": [
|
|
113
113
|
0.95,
|
|
114
114
|
0,
|
|
@@ -120,7 +120,7 @@
|
|
|
120
120
|
2.5
|
|
121
121
|
],
|
|
122
122
|
"c": "dealer",
|
|
123
|
-
"text": "
|
|
123
|
+
"text": "The source offer references the physical vehicle and provides the base conditions for subsequent views. The representation separates the asset from its commercial offer.",
|
|
124
124
|
"geometry": "cylinder",
|
|
125
125
|
"radius": 0.08
|
|
126
126
|
},
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"id": "vehicle",
|
|
129
129
|
"parent": "physical",
|
|
130
130
|
"name": "Vehicle",
|
|
131
|
-
"sub": "
|
|
131
|
+
"sub": "Unique physical asset",
|
|
132
132
|
"p": [
|
|
133
133
|
-0.95,
|
|
134
134
|
0,
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
2.5
|
|
141
141
|
],
|
|
142
142
|
"c": "dealer",
|
|
143
|
-
"text": "
|
|
143
|
+
"text": "The unique physical asset referenced by the Base Offer. Its availability must remain consistent across every offer and channel through which it is distributed.",
|
|
144
144
|
"geometry": "cylinder",
|
|
145
145
|
"radius": 0.08
|
|
146
146
|
},
|
|
@@ -148,7 +148,7 @@
|
|
|
148
148
|
"id": "virtual",
|
|
149
149
|
"parent": "offers",
|
|
150
150
|
"name": "Virtual Inventory",
|
|
151
|
-
"sub": "
|
|
151
|
+
"sub": "Derived view",
|
|
152
152
|
"p": [
|
|
153
153
|
-2.5,
|
|
154
154
|
0.73,
|
|
@@ -161,13 +161,13 @@
|
|
|
161
161
|
],
|
|
162
162
|
"c": "offers",
|
|
163
163
|
"type": "container",
|
|
164
|
-
"text": "
|
|
164
|
+
"text": "A calculated view of an inventory produced through filters and rules. It rests on the physical inventory to express that dependency; it does not duplicate the vehicle."
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
"id": "virtualoffer",
|
|
168
168
|
"parent": "virtual",
|
|
169
169
|
"name": "Virtual Offer",
|
|
170
|
-
"sub": "
|
|
170
|
+
"sub": "Offer in a view",
|
|
171
171
|
"p": [
|
|
172
172
|
0,
|
|
173
173
|
0,
|
|
@@ -179,7 +179,7 @@
|
|
|
179
179
|
2.5
|
|
180
180
|
],
|
|
181
181
|
"c": "dealer",
|
|
182
|
-
"text": "
|
|
182
|
+
"text": "Represents the offer observed in the context of a virtual inventory. It retains the reference to the source offer; the view rules determine its inclusion and conditions.",
|
|
183
183
|
"geometry": "cylinder",
|
|
184
184
|
"radius": 0.08
|
|
185
185
|
},
|
|
@@ -187,7 +187,7 @@
|
|
|
187
187
|
"id": "service",
|
|
188
188
|
"parent": "offers",
|
|
189
189
|
"name": "Service",
|
|
190
|
-
"sub": "
|
|
190
|
+
"sub": "Associated service",
|
|
191
191
|
"p": [
|
|
192
192
|
2.7,
|
|
193
193
|
0,
|
|
@@ -199,7 +199,7 @@
|
|
|
199
199
|
3
|
|
200
200
|
],
|
|
201
201
|
"c": "serviceProvider",
|
|
202
|
-
"text": "
|
|
202
|
+
"text": "A service that may accompany the offer or transaction, such as a warranty or transport. The external provider supplies it and the agreement governs its inclusion.",
|
|
203
203
|
"geometry": "pyramid-square",
|
|
204
204
|
"radius": 0.08,
|
|
205
205
|
"segments": 12
|
|
@@ -208,7 +208,7 @@
|
|
|
208
208
|
"id": "tags",
|
|
209
209
|
"parent": "ole",
|
|
210
210
|
"name": "RevMan Tag System",
|
|
211
|
-
"sub": "
|
|
211
|
+
"sub": "Conditions and tags",
|
|
212
212
|
"p": [
|
|
213
213
|
0,
|
|
214
214
|
-1.05,
|
|
@@ -221,7 +221,7 @@
|
|
|
221
221
|
],
|
|
222
222
|
"c": "ole",
|
|
223
223
|
"type": "container",
|
|
224
|
-
"text": "
|
|
224
|
+
"text": "Static or dynamic, active or inactive tags that feed selection, pricing and availability rules. Their effect comes from the formulas in which they are used."
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
"id": "tagA",
|
|
@@ -239,7 +239,7 @@
|
|
|
239
239
|
0.5
|
|
240
240
|
],
|
|
241
241
|
"c": "ole",
|
|
242
|
-
"text": "
|
|
242
|
+
"text": "A revenue management tag that marks items to influence price and availability calculations.",
|
|
243
243
|
"geometry": "box",
|
|
244
244
|
"radius": 0.08,
|
|
245
245
|
"segments": 12
|
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
0.5
|
|
261
261
|
],
|
|
262
262
|
"c": "ole",
|
|
263
|
-
"text": "
|
|
263
|
+
"text": "A revenue management tag that marks items to influence price and availability calculations.",
|
|
264
264
|
"geometry": "box",
|
|
265
265
|
"radius": 0.08,
|
|
266
266
|
"segments": 12
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
0.5
|
|
282
282
|
],
|
|
283
283
|
"c": "ole",
|
|
284
|
-
"text": "
|
|
284
|
+
"text": "A revenue management tag that marks items to influence price and availability calculations.",
|
|
285
285
|
"geometry": "box",
|
|
286
286
|
"radius": 0.08,
|
|
287
287
|
"segments": 12
|
|
@@ -302,7 +302,7 @@
|
|
|
302
302
|
0.5
|
|
303
303
|
],
|
|
304
304
|
"c": "ole",
|
|
305
|
-
"text": "
|
|
305
|
+
"text": "A revenue management tag that marks items to influence price and availability calculations.",
|
|
306
306
|
"geometry": "box",
|
|
307
307
|
"radius": 0.08,
|
|
308
308
|
"segments": 12
|
|
@@ -323,7 +323,7 @@
|
|
|
323
323
|
0.5
|
|
324
324
|
],
|
|
325
325
|
"c": "ole",
|
|
326
|
-
"text": "
|
|
326
|
+
"text": "A revenue management tag that marks items to influence price and availability calculations.",
|
|
327
327
|
"geometry": "box",
|
|
328
328
|
"radius": 0.08,
|
|
329
329
|
"segments": 12
|
|
@@ -344,7 +344,7 @@
|
|
|
344
344
|
0.5
|
|
345
345
|
],
|
|
346
346
|
"c": "ole",
|
|
347
|
-
"text": "
|
|
347
|
+
"text": "A revenue management tag that marks items to influence price and availability calculations.",
|
|
348
348
|
"geometry": "box",
|
|
349
349
|
"radius": 0.08,
|
|
350
350
|
"segments": 12
|
|
@@ -353,7 +353,7 @@
|
|
|
353
353
|
"id": "rm",
|
|
354
354
|
"parent": "ole",
|
|
355
355
|
"name": "Revenue Management",
|
|
356
|
-
"sub": "
|
|
356
|
+
"sub": "Rule application",
|
|
357
357
|
"p": [
|
|
358
358
|
0,
|
|
359
359
|
0.5499999999999999,
|
|
@@ -366,13 +366,13 @@
|
|
|
366
366
|
],
|
|
367
367
|
"c": "ole",
|
|
368
368
|
"type": "container",
|
|
369
|
-
"text": "
|
|
369
|
+
"text": "Applies authorised commercial rules to the distribution context. It contains the calculated Channel Offer; the system executes the parties' decisions."
|
|
370
370
|
},
|
|
371
371
|
{
|
|
372
372
|
"id": "revmanoffer",
|
|
373
373
|
"parent": "rm",
|
|
374
374
|
"name": "RevMan Offer",
|
|
375
|
-
"sub": "
|
|
375
|
+
"sub": "Contextual result",
|
|
376
376
|
"p": [
|
|
377
377
|
0,
|
|
378
378
|
0,
|
|
@@ -384,7 +384,7 @@
|
|
|
384
384
|
2.5
|
|
385
385
|
],
|
|
386
386
|
"c": "channelOffer",
|
|
387
|
-
"text": "
|
|
387
|
+
"text": "An offer calculated for a channel from the inventories, agreement and revenue management rules. It is the result presented by the CHANNELS layer.",
|
|
388
388
|
"geometry": "cylinder",
|
|
389
389
|
"radius": 0.08
|
|
390
390
|
},
|
|
@@ -392,7 +392,7 @@
|
|
|
392
392
|
"id": "da",
|
|
393
393
|
"parent": "agreements",
|
|
394
394
|
"name": "Distribution Agreement",
|
|
395
|
-
"sub": "
|
|
395
|
+
"sub": "Accepted agreement",
|
|
396
396
|
"p": [
|
|
397
397
|
-1.25,
|
|
398
398
|
0,
|
|
@@ -404,7 +404,7 @@
|
|
|
404
404
|
2.35
|
|
405
405
|
],
|
|
406
406
|
"c": "agreements",
|
|
407
|
-
"text": "
|
|
407
|
+
"text": "Defines the included inventory and services, together with the commercial and operational conditions accepted by the parties. Its current version provides context for each transaction.",
|
|
408
408
|
"geometry": "icosahedron",
|
|
409
409
|
"radius": 0.08
|
|
410
410
|
},
|
|
@@ -412,7 +412,7 @@
|
|
|
412
412
|
"id": "attribution",
|
|
413
413
|
"parent": "agreements",
|
|
414
414
|
"name": "Attribution",
|
|
415
|
-
"sub": "
|
|
415
|
+
"sub": "Channel contribution",
|
|
416
416
|
"p": [
|
|
417
417
|
1.5,
|
|
418
418
|
1,
|
|
@@ -424,7 +424,7 @@
|
|
|
424
424
|
2.5
|
|
425
425
|
],
|
|
426
426
|
"c": "agreements",
|
|
427
|
-
"text": "
|
|
427
|
+
"text": "Values events and contributions according to agreed weights. The current approach does not resolve buyer identity across channels and distinguishes the reporter, contributing channel and subject.",
|
|
428
428
|
"geometry": "box",
|
|
429
429
|
"radius": 0.08,
|
|
430
430
|
"segments": 12
|
|
@@ -433,7 +433,7 @@
|
|
|
433
433
|
"id": "bookings",
|
|
434
434
|
"parent": "agreements",
|
|
435
435
|
"name": "Bookings",
|
|
436
|
-
"sub": "
|
|
436
|
+
"sub": "Exclusive right",
|
|
437
437
|
"p": [
|
|
438
438
|
1.5,
|
|
439
439
|
0,
|
|
@@ -445,7 +445,7 @@
|
|
|
445
445
|
2.5
|
|
446
446
|
],
|
|
447
447
|
"c": "agreements",
|
|
448
|
-
"text": "
|
|
448
|
+
"text": "A booking grants an exclusive right to purchase for a period under the agreed rules, while keeping vehicle availability consistent across channels.",
|
|
449
449
|
"geometry": "box",
|
|
450
450
|
"radius": 0.08,
|
|
451
451
|
"segments": 12
|
|
@@ -454,7 +454,7 @@
|
|
|
454
454
|
"id": "orders",
|
|
455
455
|
"parent": "agreements",
|
|
456
456
|
"name": "Orders",
|
|
457
|
-
"sub": "
|
|
457
|
+
"sub": "Transaction progress",
|
|
458
458
|
"p": [
|
|
459
459
|
1.5,
|
|
460
460
|
-1,
|
|
@@ -466,7 +466,7 @@
|
|
|
466
466
|
2.5
|
|
467
467
|
],
|
|
468
468
|
"c": "agreements",
|
|
469
|
-
"text": "
|
|
469
|
+
"text": "The order structures the progress of the commercial transaction under the applicable agreement and preserves the traceability of its conditions and states.",
|
|
470
470
|
"geometry": "box",
|
|
471
471
|
"radius": 0.08,
|
|
472
472
|
"segments": 12
|
|
@@ -475,7 +475,7 @@
|
|
|
475
475
|
"id": "buyeroffer",
|
|
476
476
|
"parent": "channel",
|
|
477
477
|
"name": "Buyer Offer",
|
|
478
|
-
"sub": "
|
|
478
|
+
"sub": "Buyer view",
|
|
479
479
|
"p": [
|
|
480
480
|
-2,
|
|
481
481
|
0,
|
|
@@ -487,7 +487,7 @@
|
|
|
487
487
|
2.5
|
|
488
488
|
],
|
|
489
489
|
"c": "channels",
|
|
490
|
-
"text": "
|
|
490
|
+
"text": "Represents the channel's presentation of the Channel Offer. This read model connects the OLE result to the buyer's access point; it does not add a new source offer.",
|
|
491
491
|
"geometry": "cylinder",
|
|
492
492
|
"radius": 0.08
|
|
493
493
|
},
|
|
@@ -495,7 +495,7 @@
|
|
|
495
495
|
"id": "engagement",
|
|
496
496
|
"parent": "channel",
|
|
497
497
|
"name": "Engagement",
|
|
498
|
-
"sub": "
|
|
498
|
+
"sub": "Interaction management",
|
|
499
499
|
"p": [
|
|
500
500
|
2,
|
|
501
501
|
0,
|
|
@@ -507,14 +507,14 @@
|
|
|
507
507
|
2.5
|
|
508
508
|
],
|
|
509
509
|
"c": "channels",
|
|
510
|
-
"text": "
|
|
510
|
+
"text": "All buyer interaction logic is managed by Engagement. It contains contact information, interaction state and the events that feed attribution.",
|
|
511
511
|
"geometry": "box",
|
|
512
512
|
"radius": 0.08
|
|
513
513
|
},
|
|
514
514
|
{
|
|
515
515
|
"id": "buyer",
|
|
516
516
|
"name": "BUYER",
|
|
517
|
-
"sub": "
|
|
517
|
+
"sub": "Buyer",
|
|
518
518
|
"p": [
|
|
519
519
|
0,
|
|
520
520
|
5.6,
|
|
@@ -527,14 +527,14 @@
|
|
|
527
527
|
],
|
|
528
528
|
"c": "buyer",
|
|
529
529
|
"type": "actor",
|
|
530
|
-
"text": "
|
|
530
|
+
"text": "Accesses the commercial proposition through the channel and can initiate purchase actions under the displayed conditions.",
|
|
531
531
|
"geometry": "sphere"
|
|
532
532
|
},
|
|
533
533
|
{
|
|
534
534
|
"id": "channel",
|
|
535
535
|
"parent": "channels",
|
|
536
536
|
"name": "CHANNEL",
|
|
537
|
-
"sub": "
|
|
537
|
+
"sub": "Distribution channel",
|
|
538
538
|
"p": [
|
|
539
539
|
0,
|
|
540
540
|
0,
|
|
@@ -547,12 +547,12 @@
|
|
|
547
547
|
],
|
|
548
548
|
"c": "channels",
|
|
549
549
|
"type": "container",
|
|
550
|
-
"text": "
|
|
550
|
+
"text": "Represents a distribution channel within CHANNELS: a marketplace, the dealer's website or another authorised channel. It contains the channel offer presented to the buyer."
|
|
551
551
|
},
|
|
552
552
|
{
|
|
553
553
|
"id": "dealer",
|
|
554
554
|
"name": "DEALER",
|
|
555
|
-
"sub": "
|
|
555
|
+
"sub": "Ownership and commercial control",
|
|
556
556
|
"p": [
|
|
557
557
|
-8,
|
|
558
558
|
-3,
|
|
@@ -565,13 +565,13 @@
|
|
|
565
565
|
],
|
|
566
566
|
"c": "dealer",
|
|
567
567
|
"type": "actor",
|
|
568
|
-
"text": "
|
|
568
|
+
"text": "Provides and maintains the inventory. It retains ownership of the vehicle and control over its commercial decisions, and accepts the distribution conditions.",
|
|
569
569
|
"geometry": "dodecahedron"
|
|
570
570
|
},
|
|
571
571
|
{
|
|
572
572
|
"id": "provider",
|
|
573
573
|
"name": "SERVICE PROVIDER",
|
|
574
|
-
"sub": "
|
|
574
|
+
"sub": "External provider",
|
|
575
575
|
"p": [
|
|
576
576
|
8,
|
|
577
577
|
-3,
|
|
@@ -584,7 +584,7 @@
|
|
|
584
584
|
],
|
|
585
585
|
"c": "serviceProvider",
|
|
586
586
|
"type": "actor",
|
|
587
|
-
"text": "
|
|
587
|
+
"text": "Provides the services associated with the offer or transaction. Its external position distinguishes the provider from the Service item contained in OFFERS.",
|
|
588
588
|
"geometry": "dodecahedron"
|
|
589
589
|
}
|
|
590
590
|
],
|
|
@@ -592,87 +592,87 @@
|
|
|
592
592
|
[
|
|
593
593
|
"dealer",
|
|
594
594
|
"vehicle",
|
|
595
|
-
"
|
|
595
|
+
"supplies"
|
|
596
596
|
],
|
|
597
597
|
[
|
|
598
598
|
"baseoffer",
|
|
599
599
|
"vehicle",
|
|
600
|
-
"
|
|
600
|
+
"references"
|
|
601
601
|
],
|
|
602
602
|
[
|
|
603
603
|
"baseoffer",
|
|
604
604
|
"virtualoffer",
|
|
605
|
-
"
|
|
605
|
+
"originates"
|
|
606
606
|
],
|
|
607
607
|
[
|
|
608
608
|
"virtualoffer",
|
|
609
609
|
"da",
|
|
610
|
-
"
|
|
610
|
+
"is distributed under"
|
|
611
611
|
],
|
|
612
612
|
[
|
|
613
613
|
"baseoffer",
|
|
614
614
|
"da",
|
|
615
|
-
"
|
|
615
|
+
"is distributed under"
|
|
616
616
|
],
|
|
617
617
|
[
|
|
618
618
|
"provider",
|
|
619
619
|
"service",
|
|
620
|
-
"
|
|
620
|
+
"provides"
|
|
621
621
|
],
|
|
622
622
|
[
|
|
623
623
|
"service",
|
|
624
624
|
"da",
|
|
625
|
-
"
|
|
625
|
+
"is included under"
|
|
626
626
|
],
|
|
627
627
|
[
|
|
628
628
|
"tagA",
|
|
629
629
|
"revmanoffer",
|
|
630
|
-
"
|
|
630
|
+
"feeds rules"
|
|
631
631
|
],
|
|
632
632
|
[
|
|
633
633
|
"tagB",
|
|
634
634
|
"revmanoffer",
|
|
635
|
-
"
|
|
635
|
+
"feeds rules"
|
|
636
636
|
],
|
|
637
637
|
[
|
|
638
638
|
"tagC",
|
|
639
639
|
"revmanoffer",
|
|
640
|
-
"
|
|
640
|
+
"feeds rules"
|
|
641
641
|
],
|
|
642
642
|
[
|
|
643
643
|
"tagD",
|
|
644
644
|
"revmanoffer",
|
|
645
|
-
"
|
|
645
|
+
"feeds rules"
|
|
646
646
|
],
|
|
647
647
|
[
|
|
648
648
|
"tagE",
|
|
649
649
|
"revmanoffer",
|
|
650
|
-
"
|
|
650
|
+
"feeds rules"
|
|
651
651
|
],
|
|
652
652
|
[
|
|
653
653
|
"tagF",
|
|
654
654
|
"revmanoffer",
|
|
655
|
-
"
|
|
655
|
+
"feeds rules"
|
|
656
656
|
],
|
|
657
657
|
[
|
|
658
658
|
"da",
|
|
659
659
|
"revmanoffer",
|
|
660
|
-
"
|
|
660
|
+
"calculates"
|
|
661
661
|
],
|
|
662
662
|
[
|
|
663
663
|
"revmanoffer",
|
|
664
664
|
"buyeroffer",
|
|
665
|
-
"
|
|
665
|
+
"is presented as"
|
|
666
666
|
],
|
|
667
667
|
[
|
|
668
668
|
"buyeroffer",
|
|
669
669
|
"buyer",
|
|
670
|
-
"
|
|
670
|
+
"accesses through"
|
|
671
671
|
],
|
|
672
672
|
[
|
|
673
673
|
"buyer",
|
|
674
674
|
"engagement",
|
|
675
|
-
"
|
|
675
|
+
"interacts with"
|
|
676
676
|
],
|
|
677
677
|
[
|
|
678
678
|
"engagement",
|
|
@@ -682,19 +682,20 @@
|
|
|
682
682
|
[
|
|
683
683
|
"da",
|
|
684
684
|
"attribution",
|
|
685
|
-
"
|
|
685
|
+
"governs"
|
|
686
686
|
],
|
|
687
687
|
[
|
|
688
688
|
"da",
|
|
689
689
|
"bookings",
|
|
690
|
-
"
|
|
690
|
+
"governs"
|
|
691
691
|
],
|
|
692
692
|
[
|
|
693
693
|
"da",
|
|
694
694
|
"orders",
|
|
695
|
-
"
|
|
695
|
+
"governs"
|
|
696
696
|
]
|
|
697
697
|
]
|
|
698
698
|
}
|
|
699
699
|
|
|
700
700
|
|
|
701
|
+
|