ChessGame.ttl

IRI: http://draft.ottr.xyz/chess/ChessGame.ttl

Available formats

Specification

@prefix : <http://draft.ottr.xyz/chess/ChessGame.ttl#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix t-chess: <http://draft.ottr.xyz/chess/> .
@prefix t-odp-content: <http://candidate.ottr.xyz/odp/content/> .
@prefix t-owl-axiom: <http://candidate.ottr.xyz/owl/axiom/> .
@prefix t-owl-macro: <http://candidate.ottr.xyz/owl/macro/> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

t-chess:ChessGame.ttl(  )
  ::
  t-odp-content:AgentRole-8( :AgentRole , owl:Thing , :providesAgentRole , :Agent , :performedBy , :TimeInstant , :startsAtTime , :endsAtTime )
  t-odp-content:Event-10( :Event , :subEventOf , :AgentRole , :providesAgentRole , :Agent , :performedBy , :Place , :atPlace , :TemporalExtent , :atTime )
  t-owl-axiom:DisjointClasses( <:AgentRole, :Agent, :Event, :Place, :TemporalExtent, :ChessOpening, :ChessGameResult, :ChessGameReport, :HalfMoveAnnotation> )
  t-owl-axiom:DisjointClasses( <:ChessPlayerRole, :ActingPlayerRole, :AuthorRole> )
  t-owl-axiom:DisjointClasses( <:ChessGame, :ChessTournament, :HalfMove> )
  t-owl-axiom:DisjointUnion( :ChessPlayerRole , <:WhitePlayerRole, :BlackPlayerRole> )
  t-owl-axiom:SubDataSomeValuesFrom( :HalfMoveAnnotation , :hasContent , xsd:string )
  t-owl-axiom:SubExactCardinality( :ChessGame , "1"^^xsd:integer , :hasLastHalfMove )
  t-owl-axiom:SubExactCardinality( :ChessGame , "1"^^xsd:integer , :hasFirstHalfMove )
  t-owl-axiom:SubObjectExactCardinality( :HalfMoveAnnotation , "1"^^xsd:integer , :annotatesHalfMove , :HalfMove )
  t-owl-axiom:SubObjectExactCardinality( :HalfMove , "1"^^xsd:integer , _:b1 , :ChessGame )
  t-owl-macro:ScopedDomainRange( :originatesFrom , :ChessGameReport , xsd:anyURI )
  t-owl-macro:ScopedDomainRange( :containsAnnotation , :ChessGameReport , :HalfMoveAnnotation )
  t-owl-macro:ScopedDomainRange( :hasResult , :ChessGame , :ChessGameResult )
  t-owl-macro:ScopedDomainRange( :hasPGNFile , :ChessGameReport , xsd:anyURI )
  t-owl-macro:ScopedDomainRange( :hasOpening , :ChessGame , :ChessOpening )
  t-owl-macro:ScopedDomainRange( :hasContent , :HalfMoveAnnotation , xsd:string )
  t-owl-macro:ScopedDomainRange( :hasECOCode , :ChessOpening , xsd:anyURI )
  t-owl-macro:ScopedDomainRange( :hasReport , :ChessGame , :ChessGameReport )
  t-owl-macro:ScopedDomainRange( :hasSANRecord , :HalfMove , xsd:string )
  t-owl-macro:ScopedDomainRange( :subEventOf , :HalfMove , :ChessGame )
  t-owl-macro:ScopedDomainRange( :encodedAsSAN , :ChessGameResult , xsd:string )
  t-owl-macro:ScopedRange( :hasName , :ChessOpening , xsd:string )
  t-owl-macro:ScopedRange( :subEventOf , :ChessTournament , :ChessGame )
  t-owl-macro:ScopedRange( :hasName , :ChessTournament , xsd:string )
  t-chess:AgentRole-2( :AuthorRole , :ChessGameReport )
  t-chess:Event-2( :HalfMove , :ActingPlayerRole )
  t-chess:Event-2( :ChessGame , :BlackPlayerRole )
  t-chess:Event-2( :ChessGame , :WhitePlayerRole )
  t-chess:List-4( :HalfMove , :hasNextHalfMove , :hasFirstHalfMove , :hasLastHalfMove )
  ( :BlackPlayerRole , rdf:type , owl:Class )
  ( _:b1 , owl:inverseOf , :hasHalfMove )
  ( :ChessGameReport , rdf:type , owl:Class )
  ( :hasResult , rdf:type , owl:ObjectProperty )
  ( :HalfMoveAnnotation , rdf:type , owl:Class )
  ( :hasContent , rdf:type , owl:DatatypeProperty )
  ( :AuthorRole , rdf:type , owl:Class )
  ( :hasReport , rdf:type , owl:ObjectProperty )
  ( :hasHalfMove , rdf:type , owl:ObjectProperty )
  ( :hasHalfMove , rdfs:subPropertyOf , _:b2 )
  ( _:b2 , owl:inverseOf , :subEventOf )
  ( :ChessPlayerRole , rdf:type , owl:Class )
  ( :encodedAsSAN , rdf:type , owl:DatatypeProperty )
  ( :ChessTournament , rdfs:subClassOf , :Event )
  ( :annotatesHalfMove , rdf:type , owl:ObjectProperty )
  ( :hasPGNFile , rdf:type , owl:DatatypeProperty )
  ( :WhitePlayerRole , rdf:type , owl:Class )
  ( :ActingPlayerRole , rdf:type , owl:Class )
  ( :hasFirstHalfMove , rdf:type , owl:ObjectProperty )
  ( :HalfMove , rdf:type , owl:Class )
  ( :hasLastHalfMove , rdf:type , owl:ObjectProperty )
  ( :containsAnnotation , rdf:type , owl:ObjectProperty )
  ( :ChessGame , rdf:type , owl:Class )
  ( :hasOpening , rdf:type , owl:ObjectProperty )
  ( :hasECOCode , rdf:type , owl:DatatypeProperty )
  ( :hasSANRecord , rdf:type , owl:DatatypeProperty )
  ( :originatesFrom , rdf:type , owl:DatatypeProperty )
  ( :hasNextHalfMove , rdf:type , owl:ObjectProperty ) .

Direct dependency templates

Templates instantiated in the body of this template:

Diagram of pattern

RDF graph visualisation of the expanded body:

Pattern

The pattern the template represents, i.e., the expanded template body.

@prefix :      <http://draft.ottr.xyz/chess/ChessGame.ttl#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :ChessPlayerRole :ActingPlayerRole :AuthorRole )
] .

:BlackPlayerRole  a      owl:Class ;
        rdfs:subClassOf  :AgentRole ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ChessGame ;
                           owl:onProperty            [ a              owl:ObjectProperty ;
                                                       owl:inverseOf  :providesAgentRole
                                                     ] ;
                           owl:qualifiedCardinality  1
                         ] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :HalfMove ;
  owl:onProperty      :hasSANRecord ;
  owl:someValuesFrom  xsd:string
] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :HalfMove ;
  owl:onProperty      :subEventOf ;
  owl:someValuesFrom  :ChessGame
] .

:ChessGameReport  a      owl:Class ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :providesAgentRole ;
                           owl:someValuesFrom  :AuthorRole
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:anyURI ;
                           owl:onProperty     :hasPGNFile
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:anyURI ;
                           owl:onProperty     :originatesFrom
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :HalfMoveAnnotation ;
                           owl:onProperty     :containsAnnotation
                         ] .

:hasResult  a   owl:ObjectProperty .

:atPlace  a     owl:ObjectProperty .

:subEventOf  a  owl:ObjectProperty .

:HalfMoveAnnotation  a   owl:Class ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     :hasContent
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :hasContent ;
                           owl:someValuesFrom  xsd:string
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :HalfMove ;
                           owl:onProperty            :annotatesHalfMove ;
                           owl:qualifiedCardinality  1
                         ] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :ChessGameReport ;
  owl:onProperty      :originatesFrom ;
  owl:someValuesFrom  xsd:anyURI
] .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :Event :TemporalExtent :Place :AgentRole :Agent )
] .

:hasContent  a  owl:DatatypeProperty .

xsd:string  a   rdfs:Datatype .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :WhitePlayerRole :BlackPlayerRole )
] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :Event ;
  owl:onProperty      :subEventOf ;
  owl:someValuesFrom  :Event
] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :ChessOpening ;
  owl:onProperty      :hasECOCode ;
  owl:someValuesFrom  xsd:anyURI
] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :ChessGame ;
  owl:onProperty      :hasResult ;
  owl:someValuesFrom  :ChessGameResult
] .

:Event  a                owl:Class ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :atPlace ;
                           owl:someValuesFrom  :Place
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :Event ;
                           owl:onProperty     :subEventOf
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :Place ;
                           owl:onProperty     :atPlace
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :atTime ;
                           owl:someValuesFrom  :TemporalExtent
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :TemporalExtent ;
                           owl:onProperty     :atTime
                         ] .

:startsAtTime  a  owl:ObjectProperty .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :AgentRole ;
  owl:onProperty      :startsAtTime ;
  owl:someValuesFrom  :TimeInstant
] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :HalfMoveAnnotation ;
  owl:onProperty      :hasContent ;
  owl:someValuesFrom  xsd:string
] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :ChessGame ;
  owl:onProperty      :hasReport ;
  owl:someValuesFrom  :ChessGameReport
] .

:performedBy  a  owl:ObjectProperty .

:Agent  a       owl:Class .

:ChessGameResult  rdfs:subClassOf  [ a                  owl:Restriction ;
                                     owl:allValuesFrom  xsd:string ;
                                     owl:onProperty     :encodedAsSAN
                                   ] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :ChessGameReport ;
  owl:onProperty      :hasPGNFile ;
  owl:someValuesFrom  xsd:anyURI
] .

:TemporalExtent  a  owl:Class .

:AuthorRole  a           owl:Class ;
        rdfs:subClassOf  :AgentRole ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ChessGameReport ;
                           owl:onProperty            [ a              owl:ObjectProperty ;
                                                       owl:inverseOf  :providesAgentRole
                                                     ] ;
                           owl:qualifiedCardinality  1
                         ] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :AgentRole ;
  owl:onProperty      :endsAtTime ;
  owl:someValuesFrom  :TimeInstant
] .

:AgentRole  a            owl:Class ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :performedBy ;
                           owl:someValuesFrom  :Agent
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :TimeInstant ;
                           owl:onProperty            :startsAtTime ;
                           owl:qualifiedCardinality  1
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :TimeInstant ;
                           owl:onProperty     :startsAtTime
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :TimeInstant ;
                           owl:onProperty            :endsAtTime ;
                           owl:qualifiedCardinality  1
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      [ a              owl:ObjectProperty ;
                                                 owl:inverseOf  :providesAgentRole
                                               ] ;
                           owl:someValuesFrom  :Event
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :performedBy ;
                           owl:someValuesFrom  :Agent
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      [ a              owl:ObjectProperty ;
                                                 owl:inverseOf  :providesAgentRole
                                               ] ;
                           owl:someValuesFrom  owl:Thing
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :TimeInstant ;
                           owl:onProperty     :endsAtTime
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :Agent ;
                           owl:onProperty     :performedBy
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :Agent ;
                           owl:onProperty     :performedBy
                         ] .

:hasReport  a   owl:ObjectProperty .

:TimeInstant  a  owl:Class .

:hasHalfMove  a             owl:ObjectProperty ;
        rdfs:subPropertyOf  [ owl:inverseOf  :subEventOf ] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :Event ;
  owl:onProperty      :atTime ;
  owl:someValuesFrom  :TemporalExtent
] .

:ChessPlayerRole  a          owl:Class ;
        owl:equivalentClass  [ a            owl:Class ;
                               owl:unionOf  ( :WhitePlayerRole :BlackPlayerRole )
                             ] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :AgentRole ;
  owl:onProperty      :performedBy ;
  owl:someValuesFrom  :Agent
] .

:encodedAsSAN  a  owl:DatatypeProperty .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :AgentRole :Agent :Event :Place :TemporalExtent :ChessOpening :ChessGameResult :ChessGameReport :HalfMoveAnnotation )
] .

:ChessTournament  rdfs:subClassOf  :Event ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :ChessGame ;
                           owl:onProperty     :subEventOf
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     :hasName
                         ] .

:annotatesHalfMove  a  owl:ObjectProperty .

:providesAgentRole  a  owl:ObjectProperty ;
        rdfs:range  :AgentRole .

:hasPGNFile  a  owl:DatatypeProperty .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :AgentRole :Agent :TimeInstant )
] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :Event ;
  owl:onProperty      :atPlace ;
  owl:someValuesFrom  :Place
] .

:WhitePlayerRole  a      owl:Class ;
        rdfs:subClassOf  :AgentRole ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ChessGame ;
                           owl:onProperty            [ a              owl:ObjectProperty ;
                                                       owl:inverseOf  :providesAgentRole
                                                     ] ;
                           owl:qualifiedCardinality  1
                         ] .

owl:Thing  a    owl:Class .

:ActingPlayerRole  a     owl:Class ;
        rdfs:subClassOf  :AgentRole ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :HalfMove ;
                           owl:onProperty            [ a              owl:ObjectProperty ;
                                                       owl:inverseOf  :providesAgentRole
                                                     ] ;
                           owl:qualifiedCardinality  1
                         ] .

:hasFirstHalfMove  a        owl:ObjectProperty ;
        rdfs:subPropertyOf  :hasNextHalfMove .

:HalfMove  a             owl:Class ;
        rdfs:subClassOf  :Event ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :ChessGame ;
                           owl:onProperty     :subEventOf
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :providesAgentRole ;
                           owl:someValuesFrom  :ActingPlayerRole
                         ] ;
        rdfs:subClassOf  [ a                         owl:Restriction ;
                           owl:onClass               :ChessGame ;
                           owl:onProperty            [ a              owl:ObjectProperty ;
                                                       owl:inverseOf  :hasHalfMove
                                                     ] ;
                           owl:qualifiedCardinality  1
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :HalfMove ;
                           owl:onProperty     :hasNextHalfMove
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:string ;
                           owl:onProperty     :hasSANRecord
                         ] .

:hasLastHalfMove  a         owl:ObjectProperty ;
        rdfs:subPropertyOf  :hasNextHalfMove .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :ChessGameResult ;
  owl:onProperty      :encodedAsSAN ;
  owl:someValuesFrom  xsd:string
] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :ChessGameReport ;
  owl:onProperty      :containsAnnotation ;
  owl:someValuesFrom  :HalfMoveAnnotation
] .

:containsAnnotation  a  owl:ObjectProperty .

:ChessGame  a            owl:Class ;
        rdfs:subClassOf  :Event ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :ChessGameResult ;
                           owl:onProperty     :hasResult
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :ChessOpening ;
                           owl:onProperty     :hasOpening
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  1 ;
                           owl:onProperty   :hasLastHalfMove
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :providesAgentRole ;
                           owl:someValuesFrom  :WhitePlayerRole
                         ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  :ChessGameReport ;
                           owl:onProperty     :hasReport
                         ] ;
        rdfs:subClassOf  [ a                owl:Restriction ;
                           owl:cardinality  1 ;
                           owl:onProperty   :hasFirstHalfMove
                         ] ;
        rdfs:subClassOf  [ a                   owl:Restriction ;
                           owl:onProperty      :providesAgentRole ;
                           owl:someValuesFrom  :BlackPlayerRole
                         ] .

:atTime  a      owl:ObjectProperty .

:hasOpening  a  owl:ObjectProperty .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :ChessGame ;
  owl:onProperty      :hasOpening ;
  owl:someValuesFrom  :ChessOpening
] .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :AgentRole :Agent )
] .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :AgentRole ;
  owl:onProperty      :performedBy ;
  owl:someValuesFrom  :Agent
] .

:ChessOpening  rdfs:subClassOf  [ a                  owl:Restriction ;
                                  owl:allValuesFrom  xsd:string ;
                                  owl:onProperty     :hasName
                                ] ;
        rdfs:subClassOf  [ a                  owl:Restriction ;
                           owl:allValuesFrom  xsd:anyURI ;
                           owl:onProperty     :hasECOCode
                         ] .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :ChessGame :ChessTournament :HalfMove )
] .

:hasECOCode  a  owl:DatatypeProperty .

:Place  a       owl:Class .

[ a            owl:AllDisjointClasses ;
  owl:members  ( :AgentRole :Agent )
] .

:endsAtTime  a  owl:ObjectProperty .

:hasSANRecord  a  owl:DatatypeProperty .

[ a                   owl:Restriction ;
  rdfs:subClassOf     :HalfMove ;
  owl:onProperty      :hasNextHalfMove ;
  owl:someValuesFrom  :HalfMove
] .

:originatesFrom  a  owl:DatatypeProperty .

:hasNextHalfMove  a  owl:IrreflexiveProperty , owl:FunctionalProperty , owl:ObjectProperty .

Source

Raw source - http://draft.ottr.xyz/chess/ChessGame.ttl:

@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .

@prefix ottr:   <http://ns.ottr.xyz/templates#> .

@prefix t-owl-axiom:     <http://candidate.ottr.xyz/owl/axiom/> .
@prefix t-owl-macro:     <http://candidate.ottr.xyz/owl/macro/> .
@prefix t-odp-content:   <http://candidate.ottr.xyz/odp/content/> .

@prefix t-chess:         <http://draft.ottr.xyz/chess/> .
@prefix :                <http://draft.ottr.xyz/chess/ChessGame.ttl#> .

t-chess:ChessGame.ttl  a ottr:Template, owl:Ontology .

# Establish top level vocabulary
# 1--12
[] ottr:templateRef t-odp-content:AgentRole-8 ;
   ottr:withValues ( :AgentRole owl:Thing :providesAgentRole :Agent :performedBy :TimeInstant :startsAtTime :endsAtTime ) .
[] ottr:templateRef t-odp-content:Event-10 ;
   ottr:withValues ( :Event :subEventOf :AgentRole :providesAgentRole :Agent :performedBy :Place :atPlace :TemporalExtent :atTime ) .

:ChessGame         a owl:Class .
:ChessPlayerRole   a owl:Class .

:WhitePlayerRole   a owl:Class .
:BlackPlayerRole   a owl:Class .
:ActingPlayerRole  a owl:Class .
:AuthorRole        a owl:Class .

# 49
[] ottr:templateRef t-owl-axiom:DisjointClasses ;
   ottr:withValues ( ( :ChessPlayerRole :ActingPlayerRole :AuthorRole ) ) .
[] ottr:templateRef t-owl-axiom:DisjointUnion ;
   ottr:withValues ( :ChessPlayerRole ( :WhitePlayerRole :BlackPlayerRole )) .

# 13, 14
[] ottr:templateRef t-chess:Event-2 ;
   ottr:withValues ( :ChessGame :WhitePlayerRole ) .
[] ottr:templateRef t-chess:Event-2 ;
   ottr:withValues ( :ChessGame :BlackPlayerRole ) .

:HalfMove              a owl:Class .
:hasHalfMove           a owl:ObjectProperty .
:hasNextHalfMove       a owl:ObjectProperty .
:hasFirstHalfMove      a owl:ObjectProperty .
:hasLastHalfMove       a owl:ObjectProperty .

# 24.1, 25
[] ottr:templateRef t-chess:Event-2 ;
   ottr:withValues ( :HalfMove :ActingPlayerRole ) .

# 27.1, 29.1
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
  ottr:withValues ( :subEventOf :HalfMove :ChessGame ) .

# 18, 19, 26, 27.2, 29.2
[] ottr:templateRef t-chess:List-4 ;
   ottr:withValues ( :HalfMove :hasNextHalfMove :hasFirstHalfMove :hasLastHalfMove ) .

# 17
:hasHalfMove rdfs:subPropertyOf [ owl:inverseOf :subEventOf ] .

# 18, 19
[] ottr:templateRef t-owl-axiom:SubExactCardinality ;
   ottr:withValues ( :ChessGame 1 :hasFirstHalfMove ) .
[] ottr:templateRef t-owl-axiom:SubExactCardinality ;
   ottr:withValues ( :ChessGame 1 :hasLastHalfMove ) .

# 24.2
[] ottr:templateRef t-owl-axiom:SubObjectExactCardinality ;
   ottr:withValues ( :HalfMove 1 [ owl:inverseOf :hasHalfMove ] :ChessGame ) .

:hasSANRecord a owl:DatatypeProperty .
# 28, 30
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
  ottr:withValues ( :hasSANRecord :HalfMove xsd:string ) .

:hasOpening      a owl:ObjectProperty .
# 20.2, 22.2
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
   ottr:withValues ( :hasOpening :ChessGame :ChessOpening ) .
:hasECOCode      a owl:DatatypeProperty .
# 33, 34
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
   ottr:withValues ( :hasECOCode :ChessOpening xsd:anyURI ) .
# 32.2
[] ottr:templateRef t-owl-macro:ScopedRange ;
   ottr:withValues ( :hasName :ChessOpening xsd:string ) .

# 21, 23
:hasResult       a owl:ObjectProperty .
:hasReport       a owl:ObjectProperty .
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
   ottr:withValues ( :hasResult :ChessGame :ChessGameResult ) .
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
   ottr:withValues ( :hasReport :ChessGame :ChessGameReport ) .

:encodedAsSAN      a owl:DatatypeProperty .
# 35, 36
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
   ottr:withValues ( :encodedAsSAN :ChessGameResult xsd:string ) .

# 31
:ChessTournament rdfs:subClassOf :Event .
# 32.1
[] ottr:templateRef t-owl-macro:ScopedRange ;
   ottr:withValues ( :hasName :ChessTournament xsd:string ) .
# 20.1, 22.2
[] ottr:templateRef t-owl-macro:ScopedRange ;
   ottr:withValues ( :subEventOf :ChessTournament :ChessGame ) .

# 37, 38
:ChessGameReport    a owl:Class .
[] ottr:templateRef t-chess:AgentRole-2 ;
   ottr:withValues ( :AuthorRole :ChessGameReport ) .

:HalfMoveAnnotation a owl:Class .
:containsAnnotation a owl:ObjectProperty .
# 39, 40
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
   ottr:withValues ( :containsAnnotation  :ChessGameReport :HalfMoveAnnotation ) .

:annotatesHalfMove a owl:ObjectProperty .
# 43
[] ottr:templateRef t-owl-axiom:SubObjectExactCardinality ;
   ottr:withValues ( :HalfMoveAnnotation 1 :annotatesHalfMove :HalfMove ) .

:hasContent a owl:DatatypeProperty .
# 44
[] ottr:templateRef t-owl-axiom:SubDataSomeValuesFrom ;
   ottr:withValues ( :HalfMoveAnnotation :hasContent xsd:string ) .

# 45, 46
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
   ottr:withValues ( :hasContent :HalfMoveAnnotation xsd:string ) .

# 41, 42
:originatesFrom     a owl:DatatypeProperty .
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
   ottr:withValues ( :originatesFrom  :ChessGameReport xsd:anyURI ) .
:hasPGNFile         a owl:DatatypeProperty .
[] ottr:templateRef t-owl-macro:ScopedDomainRange ;
   ottr:withValues ( :hasPGNFile  :ChessGameReport xsd:anyURI ) .

# 47
[] ottr:templateRef t-owl-axiom:DisjointClasses ;
   ottr:withValues ( ( :AgentRole :Agent :Event :Place :TemporalExtent :ChessOpening :ChessGameResult :ChessGameReport :HalfMoveAnnotation ) ) .

# 48
[] ottr:templateRef t-owl-axiom:DisjointClasses ;
   ottr:withValues ( ( :ChessGame :ChessTournament :HalfMove ) ) .