Pattern stOTTR 🛈 stOTTR serialisation of the template without annotation instances.
o-docttr:SaysWhoTriple[
ottr:IRI ?statement,
ottr:IRI ?subject,
! ottr:IRI ?predicate,
rdfs:Resource ?object,
xsd:dateTime ?when,
NEList<rdfs:Resource> ?who,
? List<xsd:string> ?why
] :: {
o-docttr:SaysWho(?statement, ?when, ?who, ?why),
o-rdf:StatementTriple(?statement, ?subject, ?predicate, ?object)
} . 🛈 The pattern of the template is illustrated by expanding a generated instance. Below the generated instance is shown in different serialisations, and its expansion is presented in different formats.
Generated instance stOTTR o-docttr:SaysWhoTriple(x:argument1, x:argument2, x:argument3, _:argument4, _:argument5, (_:argument6-1, _:argument6-2), (_:argument7-1, _:argument7-2)) RDF/wOTTR
[ ottr:of o-docttr:SaysWhoTriple ;
ottr:values ( x:argument1 x:argument2 x:argument3
[]
[]
( []
[]
)
( []
[]
)
)
] . Visualisation of expanded RDF graph 🛈 Each resource node is linked to its IRI. Type relationships are not visualised, rather each node contains its type.
Hierarchical horizontal layout (dot)
%3
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
x:argument2
argument4 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>
rdf:Statement
x:argument1
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
rdf:subject
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
rdf:object
http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
rdf:predicate
argument5 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument5 : LUB<rdfs:Resource>
pav:createdOn
argument6-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-1 : LUB<rdfs:Resource>
pav:createdBy
argument6-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-2 : LUB<rdfs:Resource>
pav:createdBy
argument7-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-1 : LUB<rdfs:Resource>
skos:note
argument7-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-2 : LUB<rdfs:Resource>
skos:note
Hierarchical vertical layout (dot)
%3
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
x:argument2
argument4 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>
rdf:Statement
x:argument1
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
rdf:subject
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
rdf:object
http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
rdf:predicate
argument5 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument5 : LUB<rdfs:Resource>
pav:createdOn
argument6-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-1 : LUB<rdfs:Resource>
pav:createdBy
argument6-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-2 : LUB<rdfs:Resource>
pav:createdBy
argument7-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-1 : LUB<rdfs:Resource>
skos:note
argument7-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-2 : LUB<rdfs:Resource>
skos:note
Spring model layout (neato)
%3
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
x:argument2
argument4 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>
rdf:Statement
x:argument1
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
rdf:subject
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
rdf:object
http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
rdf:predicate
argument5 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument5 : LUB<rdfs:Resource>
pav:createdOn
argument6-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-1 : LUB<rdfs:Resource>
pav:createdBy
argument6-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-2 : LUB<rdfs:Resource>
pav:createdBy
argument7-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-1 : LUB<rdfs:Resource>
skos:note
argument7-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-2 : LUB<rdfs:Resource>
skos:note
Spring model layout (fdp)
%3
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
x:argument2
argument4 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>
rdf:Statement
x:argument1
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
rdf:subject
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
rdf:object
http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
rdf:predicate
argument5 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument5 : LUB<rdfs:Resource>
pav:createdOn
argument6-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-1 : LUB<rdfs:Resource>
pav:createdBy
argument6-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-2 : LUB<rdfs:Resource>
pav:createdBy
argument7-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-1 : LUB<rdfs:Resource>
skos:note
argument7-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-2 : LUB<rdfs:Resource>
skos:note
Radial layout (twopi)
%3
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
x:argument2
argument4 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>
rdf:Statement
x:argument1
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
rdf:subject
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
rdf:object
http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
rdf:predicate
argument5 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument5 : LUB<rdfs:Resource>
pav:createdOn
argument6-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-1 : LUB<rdfs:Resource>
pav:createdBy
argument6-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-2 : LUB<rdfs:Resource>
pav:createdBy
argument7-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-1 : LUB<rdfs:Resource>
skos:note
argument7-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-2 : LUB<rdfs:Resource>
skos:note
Circular layout (circo)
%3
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
x:argument2
argument4 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>
rdf:Statement
x:argument1
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument2 : LUB<ottr:IRI>
rdf:subject
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument4 : LUB<rdfs:Resource>
rdf:object
http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
x:argument3
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->http://example.ottr.xyz/argument/argument3 : LUB<ottr:IRI>
rdf:predicate
argument5 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument5 : LUB<rdfs:Resource>
pav:createdOn
argument6-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-1 : LUB<rdfs:Resource>
pav:createdBy
argument6-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument6-2 : LUB<rdfs:Resource>
pav:createdBy
argument7-1 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-1 : LUB<rdfs:Resource>
skos:note
argument7-2 : LUB<rdfs:Resource>
http://example.ottr.xyz/argument/argument1 : LUB<ottr:IRI>->argument7-2 : LUB<rdfs:Resource>
skos:note
Expanded RDF graph
x:argument2 x:argument3 _:b0 .
x:argument1 rdf:type rdf:Statement ;
rdf:object _:b0 ;
rdf:predicate x:argument3 ;
rdf:subject x:argument2 ;
pav:createdBy [] ;
pav:createdBy [] ;
pav:createdOn [] ;
skos:note [] ;
skos:note [] . Interactive expansion 🛈 Click the list to expand/contract one list element. Click 'expand/contact all' to expand/contract all elements. Note that the interactive expansion is not correct for instances that are marked by list expanders.
o-docttr:SaysWhoTriple(x:argument1, x:argument2, x:argument3, _:argument4, _:argument5, (_:argument6-1, _:argument6-2), (_:argument7-1, _:argument7-2))
o-docttr:SaysWho(x:argument1, _:argument5, (_:argument6-1, _:argument6-2), (_:argument7-1, _:argument7-2))
ottr:Triple(x:argument1, pav:createdOn, _:argument5)
cross | ottr:Triple(x:argument1, pav:createdBy, ++(_:argument6-1, _:argument6-2))
cross | ottr:Triple(x:argument1, skos:note, ++(_:argument7-1, _:argument7-2))
o-rdf:StatementTriple(x:argument1, x:argument2, x:argument3, _:argument4)
ottr:Triple(x:argument2, x:argument3, _:argument4)
o-rdf:Statement(x:argument1, x:argument2, x:argument3, _:argument4)
ottr:Triple(x:argument1, rdf:object, _:argument4)
ottr:Triple(x:argument1, rdf:predicate, x:argument3)
ottr:Triple(x:argument1, rdf:subject, x:argument2)
o-rdf:Type(x:argument1, rdf:Statement)
ottr:Triple(x:argument1, rdf:type, rdf:Statement)
Serialisations stOTTR o-docttr:SaysWhoTriple[
ottr:IRI ?statement,
ottr:IRI ?subject,
! ottr:IRI ?predicate,
rdfs:Resource ?object,
xsd:dateTime ?when,
NEList<rdfs:Resource> ?who,
? List<xsd:string> ?why
] :: {
o-docttr:SaysWho(?statement, ?when, ?who, ?why),
o-rdf:StatementTriple(?statement, ?subject, ?predicate, ?object)
} . RDF/wOTTR
o-docttr:SaysWhoTriple
rdf:type ottr:Template ;
ottr:parameters ( [ ottr:type ottr:IRI ;
ottr:variable _:b0
]
[ ottr:type ottr:IRI ;
ottr:variable _:b1
]
[ ottr:modifier ottr:nonBlank ;
ottr:type ottr:IRI ;
ottr:variable _:b2
]
[ ottr:type rdfs:Resource ;
ottr:variable _:b3
]
[ ottr:type xsd:dateTime ;
ottr:variable _:b4
]
[ ottr:type ( ottr:NEList rdfs:Resource ) ;
ottr:variable _:b5
]
[ ottr:modifier ottr:optional ;
ottr:type ( rdf:List xsd:string ) ;
ottr:variable _:b6
]
) ;
ottr:pattern [ ottr:of o-docttr:SaysWho ;
ottr:values ( _:b0
_:b4
_:b5
_:b6
)
] ;
ottr:pattern [ ottr:of o-rdf:StatementTriple ;
ottr:values ( _:b0
_:b1
_:b2
_:b3
)
] .