@prefix : <https://starwars.org/resource/> .
@prefix voc: <https://starwars.org/vocabulary/> .
@prefix vocsh: <http://example.org/shape/> .
@prefix so: <http://www.ontotext.com/semantic-object/> .
@prefix affected: <http://www.ontotext.com/semantic-object/affected> .
@prefix res: <http://www.ontotext.com/semantic-object/result/> .
@prefix dct: <http://purl.org/dc/terms/> .
@prefix gn: <http://www.geonames.org/ontology#> .
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix puml: <http://plantuml.com/ontology#> .
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix void: <http://rdfs.org/ns/void#> .
@prefix wgs84: <http://www.w3.org/2003/01/geo/wgs84_pos#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix dash: <http://datashapes.org/dash#> .
@prefix rsx: <http://rdf4j.org/shacl-extensions#> .
@prefix ec: <http://www.ontotext.com/connectors/entity-change#> .
@prefix ecinst: <http://www.ontotext.com/connectors/entity-change/instance#> .
@prefix voc: <https://starwars.org/vocabulary/> .
@prefix vocsh: <http://example.org/shape/> .

vocsh:_Character
	a sh:NodeShape ;
	rsx:targetShape [ a sh:NodeShape ; sh:and( [sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ;] ) ; ];
;
	sh:property [
		sh:path voc:name ;
		sh:maxCount 1 ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:descr ;
		sh:maxCount 1 ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:friends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:enemies ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriend ;
		sh:maxCount 1 ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:mandatoryfriends ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friendsNoRangeCheck ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:anyHumanFriends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:acquaintance ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:info ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:info3 ;
		sh:maxCount 1 ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:info4 ;
		sh:maxCount 1 ;
		sh:datatype xsd:string ;
	] .

vocsh:Droid
	a sh:NodeShape ;
	rsx:targetShape [ a sh:Shape ; sh:property[ sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ; ] ];
;
	sh:property [
		sh:path voc:primaryFunction ;
		sh:maxCount 1 ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:friends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:enemies ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriend ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:mandatoryfriends ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friendsNoRangeCheck ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:anyHumanFriends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:acquaintance ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] .

vocsh:_AllHuman
	a sh:NodeShape ;
	rsx:targetShape [ a sh:NodeShape ; sh:and( [sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ;] ) ; ];
;
	sh:property [
		sh:path voc:height ;
		sh:maxCount 1 ;
		sh:datatype xsd:decimal ;
	] ;
	sh:property [
		sh:path voc:mass ;
		sh:maxCount 1 ;
		sh:datatype xsd:decimal ;
	] ;
	sh:property [
		sh:path voc:age ;
		sh:maxCount 1 ;
		sh:datatype xsd:integer ;
	] ;
	sh:property [
		sh:path voc:friends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:enemies ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriend ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:mandatoryfriends ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friendsNoRangeCheck ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:anyHumanFriends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:acquaintance ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] .

vocsh:Human
	a sh:NodeShape ;
	rsx:targetShape [ a sh:Shape ; sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ];
;
	sh:property [
		sh:path voc:info ;
		sh:maxCount 5 ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:numberSlavesPossessed ;
		sh:maxCount 1 ;
		sh:datatype xsd:integer ;
	] ;
	sh:property [
		sh:path voc:friends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:enemies ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriend ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:mandatoryfriends ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friendsNoRangeCheck ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:anyHumanFriends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:acquaintance ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] .

vocsh:_Clone
	a sh:NodeShape ;
	rsx:targetShape [ a sh:NodeShape ; sh:and( [sh:or( [sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ;] ) ; ];
;
	sh:property [
		sh:path voc:clonedOn ;
		sh:maxCount 1 ;
		sh:datatype xsd:date ;
	] ;
	sh:property [
		sh:path voc:info4 ;
		sh:maxCount 1 ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:scooter ;
		sh:maxCount 1 ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Scooter ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:enemies ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriend ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:mandatoryfriends ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friendsNoRangeCheck ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:anyHumanFriends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:acquaintance ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] .

vocsh:Slave
	a sh:NodeShape ;
	rsx:targetShape [ a sh:Shape ; sh:property[ sh:path rdf:type ; sh:hasValue voc:Slave ;  ] ];
;
	sh:property [
		sh:path voc:imprisonedOn ;
		sh:maxCount 1 ;
		sh:datatype xsd:date ;
	] ;
	sh:property [
		sh:path voc:enemies ;
		sh:maxCount 10 ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriendInv ;
		sh:maxCount 1 ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Slave ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:info ;
		sh:maxCount 6 ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:info3 ;
		sh:maxCount 1 ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:friends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriend ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:mandatoryfriends ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friendsNoRangeCheck ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:anyHumanFriends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:acquaintance ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:scooter ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Scooter ;  ] ) ;
	] .

vocsh:CloneSoldier
	a sh:NodeShape ;
	rsx:targetShape [ a sh:Shape ; sh:property[ sh:path rdf:type ; sh:hasValue voc:CloneSoldier ;  ] ];
;
	sh:property [
		sh:path voc:bestfriendInv ;
		sh:maxCount 1 ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:friends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:enemies ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriend ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:mandatoryfriends ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friendsNoRangeCheck ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:anyHumanFriends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:acquaintance ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:scooter ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Scooter ;  ] ) ;
	] .

vocsh:CloneSlave
	a sh:NodeShape ;
	rsx:targetShape [ a sh:Shape ; sh:property[ sh:path rdf:type ; sh:hasValue voc:CloneSlave ;  ] ];
;
	sh:property [
		sh:path voc:friendZonedSlaveInv ;
		sh:maxCount 1 ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:CloneFriend ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:enemies ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriend ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:mandatoryfriends ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friendsNoRangeCheck ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:anyHumanFriends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:acquaintance ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:scooter ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Scooter ;  ] ) ;
	] .

vocsh:CloneFriend
	a sh:NodeShape ;
	rsx:targetShape [ a sh:Shape ; sh:property[ sh:path rdf:type ; sh:hasValue voc:CloneFriend ;  ] ];
;
	sh:property [
		sh:path voc:friendZoned ;
		sh:maxCount 1 ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:CloneSlave ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:enemies ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:bestfriend ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:mandatoryfriends ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Human ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:friendsNoRangeCheck ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:anyHumanFriends ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:acquaintance ;
		sh:node ( sh:and[ sh:or( [sh:path rdf:type ; sh:or( [sh:hasValue voc:Droid ; ][sh:hasValue voc:DroidAlternative ; ] ) ;][sh:path rdf:type ; sh:hasValue voc:AllHuman ; ][sh:path rdf:type ; sh:hasValue voc:Human ; ][sh:path rdf:type ; sh:hasValue voc:Clone ; ][sh:path rdf:type ; sh:hasValue voc:Slave ; ][sh:path rdf:type ; sh:hasValue voc:CloneSoldier ; ][sh:path rdf:type ; sh:hasValue voc:CloneSlave ; ][sh:path rdf:type ; sh:hasValue voc:CloneFriend ; ] ) ; ] ) ;
	] ;
	sh:property [
		sh:path voc:scooter ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:Scooter ;  ] ) ;
	] .

vocsh:CloneAlly
	a sh:NodeShape ;
	rsx:targetShape [ a sh:Shape ; sh:property[ sh:path rdf:type ; sh:hasValue voc:CloneAlly ;  ] ];
;
	sh:property [
		sh:path voc:enemy ;
		sh:maxCount 1 ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:CloneAlly ;  ] ) ;
	] ;
	sh:property [
		sh:path voc:enemyInv ;
		sh:maxCount 1 ;
		sh:node ( sh:property[ sh:path rdf:type ; sh:hasValue voc:CloneAlly ;  ] ) ;
	] .

vocsh:Movie
	a sh:NodeShape ;
	rsx:targetShape [ a sh:Shape ; sh:property[ sh:path rdf:type ; sh:hasValue voc:Movie ;  ] ];
;
	sh:property [
		sh:path voc:title ;
		sh:maxCount 1 ;
		sh:datatype xsd:string ;
	] ;
	sh:property [
		sh:path voc:globalinfo ;
		sh:minCount 1 ;
		sh:maxCount 1 ;
		sh:datatype xsd:integer ;
	] .

vocsh:_Vehicle
	a sh:NodeShape ;
	rsx:targetShape [ a sh:NodeShape ; sh:and( [sh:or( [sh:path rdf:type ; sh:hasValue voc:Scooter ; ] ) ;] ) ; ];
.

vocsh:Scooter
	a sh:NodeShape ;
	rsx:targetShape [ a sh:Shape ; sh:property[ sh:path rdf:type ; sh:hasValue voc:Scooter ;  ] ];
.

