-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmuddialogue.ttl
139 lines (113 loc) · 6.03 KB
/
muddialogue.ttl
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
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix ldp: <http://www.w3.org/ns/ldp#> .
@prefix schema: <http://schema.org/> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix time: <http://www.w3.org/2006/time#> .
@prefix foaf: <http://xmlns.com/foaf/0.1/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix mud: <https://raw.githubusercontent.com/Multi-User-Domain/vocab/main/mud.ttl#> .
@prefix muddialogue: <#> .
muddialogue: rdf:type owl:Ontology ;
# Description
dcterms:title "Multi-User Domain Dialogue ontology" ;
dcterms:description """
Vocabulary used in the definitions of decentralised parts of dialogue with characters
""" ;
# Ownership
dcterms:license <http://creativecommons.org/licenses/by/4.0/> ;
dcterms:creator <https://calum.inrupt.net/profile/card#me> .
# classes and properties for describing the context of a dialogue
muddialogue:Interaction a rdfs:Class ;
rdfs:label "Interaction"@en ;
rdfs:label "Échange"@fr ;
rdfs:comment "Describes the context of a dialogue"@en ;
rdfs:comment "La contexte d'un échange entre plusieurs acteurs"@fr .
muddialogue:inkFile a rdf:Property ;
rdfs:label "Ink File"@en ;
rdfs:comment "Ink is a syntax for writing a script for an interaction"@en ;
rdfs:range schema:URL .
muddialogue:languageCode a rdf:Property ;
rdfs:label "languageCode"@en ;
rdfs:comment "The language code the content is in. For example 'en'"@en ;
rdfs:range xsd:string .
# NOTE: for deciding whether an interaction can be used in a scene, we can use shapes.
# To model this use the property mudlogic:parameterConstraintsShape
# Bindings: connecting a graph to actors within a game scene
muddialogue:Binding a rdfs:Class ;
rdfs:label "Binding"@en ;
rdfs:comment "A resource which is bound to the input or output graph of an ink dialogue"@en .
muddialogue:bindingIsUnique a rdf:Property ;
rdfs:label "bindingIsUnique"@en ;
rdfs:comment "If true, the bound object cannot be rebound to other variables"@en ;
rdfs:domain muddialogue:Binding ;
rdfs:range xsd:boolean .
# NOTE: shapes can only be applied to specific types AFAIK
muddialogue:bindingToType a rdf:Property ;
rdfs:label "bindingToType"@en ;
rdfs:comment "Indicates the type of object the binding targets, e.g. mudchar:Character"@en ;
rdfs:domain muddialogue:Binding ;
rdfs:range schema:URL .
muddialogue:boundTo a rdf:Property ;
rdfs:label "boundTo"@en ;
rdfs:comment "Once a binding is resolved, this property indicates the object the binding is made to"@en ;
rdfs:domain muddialogue:Binding .
muddialogue:InkVariableBinding a rdfs:Class ;
rdfs:subClassOf muddialogue:Binding ;
rdfs:label "Ink Variable Binding"@en ;
rdfs:comment "A binding to a variable used in an Ink story"@en .
muddialogue:inkVariableName a rdf:Property ;
rdfs:label "inkVariableName"@en ;
rdfs:comment "The value indicates the name of the variable used in a connected Ink story"@en ;
rdfs:domain muddialogue:InkVariableBinding ;
rdfs:range xsd:string .
muddialogue:hasBindings a rdf:Property ;
rdfs:label "hasBindings"@en ;
rdfs:comment "Contains bindings used to map game logic to the Interaction represented in Linked Data"@en ;
rdfs:domain muddialogue:Interaction ;
# TODO: add formal constraint that container should contain only Binding subclasses
rdfs:range ldp:Container .
muddialogue:bindingMadeToShape a rdf:Property ;
rdfs:label "bindingMadeToShape"@en ;
rdfs:comment "A shape which describes the object which the binding should be made to"@en ;
rdfs:domain muddialogue:Binding ;
rdfs:range sh:NodeShape .
muddialogue:generateNarrativeContextEndpoint a rdf:Property ;
rdfs:label "generateNarrativeContextEndpoint"@en ;
rdfs:comment "An optional link to an endpoint which can be used to generate/complete the graph context needed to run the Interaction"@en ;
rdfs:domain muddialogue:Interaction ;
rdfs:range schema:URL .
# classes and properties for describing messages in a dialogue
muddialogue:Message a rdfs:Class ;
rdfs:label "Dialogue Message"@en ;
rdfs:comment ""@en .
muddialogue:performer a rdf:Property ;
rdfs:label "performer"@en ;
rdfs:comment "The agent communicating a muddialogue:Message"@en ;
rdfs:domain muddialogue:Message .
muddialogue:content a rdf:Property ;
rdfs:label "content"@en ;
rdfs:comment "The content of the muddialogue:Message. What is being said"@en ;
rdfs:domain muddialogue:Message .
muddialogue:shorthand a rdf:Property ;
rdfs:label "shorthand description"@en ;
rdfs:comment "Describes the content in shorter form, e.g. to display the message as a response choice"@en ;
rdfs:domain muddialogue:Message .
muddialogue:includeContinuePrompt a rdf:Property ;
rdfs:label "continue prompt"@en ;
rdfs:comment "If set to true, the client is being advised to provide a continue prompt after the message to break up the conversation"@en ;
rdfs:range xsd:boolean .
muddialogue:selectFollowup a rdf:Property ;
rdfs:label "preselected followup"@en ;
rdfs:comment "If provided, it is signalling to the client that the response for a message can be found my making a GET request to the provided URL. Therefore generally only included if the message is a player response to an NPC"@en ;
rdfs:range schema:URL .
muddialogue:getResponses a rdf:Property ;
rdfs:label "get responses URL"@en ;
rdfs:comment "If provided, it is signalling to the client that the response options for a message can be found my making a GET request to the provided URL. Therefore generally only included if the message is an NPC response to a player"@en ;
rdfs:range schema:URL .
muddialogue:responses a rdf:Property ;
rdfs:label "responses list"@en ;
rdfs:comment "If provided, it is signalling to the client that the response options for a message are defined by the container value"@en ;
rdfs:range ldp:Container .