
    @prefix log: <http://www.w3.org/2000/10/swap/log.n3#> .
    @prefix : <#> .
    
    <> log:forAll 
     :ancestor, :ancestor, :ancestor, :ancestor, :aunt, :aunt, :aunt, :aunt, :aunt, :aunt, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child, :child1, :child1, :child1, :child1, :child2, :child2, :child2, :child2, :cousin1, :cousin1, :cousin2, :cousin2, :descendent1, :descendent1, :descendent2, :descendent2, :family, :family, :family, :family, :family, :family, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :grandparent, :husband, :husband, :husband, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :parent, :sibling, :sibling, :sibling, :sibling, :sibling, :sibling, :sibling, :sibling, :sibling, :sibling, :sibling1, :sibling1, :sibling1, :sibling1, :sibling2, :sibling2, :sibling2, :sibling2, :spouse, :spouse, :spouse, :spouse, :spouse1, :spouse1, :spouse1, :spouse1, :spouse2, :spouse2, :spouse2, :spouse2, :uncle, :uncle, :uncle, :uncle, :uncle, :uncle, :wife, :wife, :wife, :dummy .

    


	# parent
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#childIn> :family . :parent <http://www.daml.org/2001/01/gedcom/gedcom#spouseIn> :family . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#parent> :parent . } .
  
	# father
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#parent> :parent . :parent <http://www.daml.org/2001/01/gedcom/gedcom#sex> "M" . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#father> :parent . } .
  
	# mother
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#parent> :parent . :parent <http://www.daml.org/2001/01/gedcom/gedcom#sex> "F" . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#mother> :parent . } .
  
	# child
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#parent> :parent . }
    log:implies
    { :parent <http://www.daml.org/2001/01/gedcom/gedcom#child> :child . } .
  
	# son
    { :parent <http://www.daml.org/2001/01/gedcom/gedcom#child> :child . :child <http://www.daml.org/2001/01/gedcom/gedcom#sex> "M" . }
    log:implies
    { :parent <http://www.daml.org/2001/01/gedcom/gedcom#son> :child . } .
  
	# daughter
    { :parent <http://www.daml.org/2001/01/gedcom/gedcom#child> :child . :child <http://www.daml.org/2001/01/gedcom/gedcom#sex> "F" . }
    log:implies
    { :parent <http://www.daml.org/2001/01/gedcom/gedcom#daughter> :child . } .
  
	# grandparent
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#parent> :parent . :parent <http://www.daml.org/2001/01/gedcom/gedcom#parent> :grandparent . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#grandparent> :grandparent . } .
  
	# grandfather
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#grandparent> :grandparent . :grandparent <http://www.daml.org/2001/01/gedcom/gedcom#sex> "M" . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#grandfather> :grandparent . } .
  
	# grandmother
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#grandparent> :grandparent . :grandparent <http://www.daml.org/2001/01/gedcom/gedcom#sex> "F" . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#grandmother> :grandparent . } .
  
	# grandchild
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#grandparent> :grandparent . }
    log:implies
    { :grandparent <http://www.daml.org/2001/01/gedcom/gedcom#grandchild> :child . } .
  
	# grandson
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#grandparent> :grandparent . :child <http://www.daml.org/2001/01/gedcom/gedcom#sex> "M" . }
    log:implies
    { :grandparent <http://www.daml.org/2001/01/gedcom/gedcom#grandson> :child . } .
  
	# granddaughter
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#grandparent> :grandparent . :child <http://www.daml.org/2001/01/gedcom/gedcom#sex> "F" . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#granddaughter> :grandparent . } .
  
	# sibling
    { :child1 <http://www.daml.org/2001/01/gedcom/gedcom#childIn> :family . :child2 <http://www.daml.org/2001/01/gedcom/gedcom#childIn> :family . }
    log:implies
    { :child1 <http://www.daml.org/2001/01/gedcom/gedcom#sibling> :child2 . } .
  
	# siblingSymmetric
    { :child2 <http://www.daml.org/2001/01/gedcom/gedcom#sibling> :child1 . }
    log:implies
    { :child1 <http://www.daml.org/2001/01/gedcom/gedcom#sibling> :child2 . } .
  
	# brother
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#sibling> :sibling . :sibling <http://www.daml.org/2001/01/gedcom/gedcom#sex> "M" . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#brother> :sibling . } .
  
	# sister
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#sibling> :sibling . :sibling <http://www.daml.org/2001/01/gedcom/gedcom#sex> "F" . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#sister> :sibling . } .
  
	# spouse
    { :spouse1 <http://www.daml.org/2001/01/gedcom/gedcom#spouseIn> :family . :spouse2 <http://www.daml.org/2001/01/gedcom/gedcom#spouseIn> :family . }
    log:implies
    { :spouse1 <http://www.daml.org/2001/01/gedcom/gedcom#spouse> :spouse2 . } .
  
	# spouseSymmetric
    { :spouse2 <http://www.daml.org/2001/01/gedcom/gedcom#spouse> :spouse1 . }
    log:implies
    { :spouse1 <http://www.daml.org/2001/01/gedcom/gedcom#spouse> :spouse2 . } .
  
	# husband
    { :spouse <http://www.daml.org/2001/01/gedcom/gedcom#spouse> :husband . :husband <http://www.daml.org/2001/01/gedcom/gedcom#sex> "M" . }
    log:implies
    { :spouse <http://www.daml.org/2001/01/gedcom/gedcom#husband> :husband . } .
  
	# wife
    { :spouse <http://www.daml.org/2001/01/gedcom/gedcom#spouse> :wife . :wife <http://www.daml.org/2001/01/gedcom/gedcom#sex> "F" . }
    log:implies
    { :spouse <http://www.daml.org/2001/01/gedcom/gedcom#wife> :wife . } .
  
	# uncle1
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#parent> :parent . :parent <http://www.daml.org/2001/01/gedcom/gedcom#brother> :uncle . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#uncle> :uncle . } .
  
	# uncle2
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#aunt> :aunt . :aunt <http://www.daml.org/2001/01/gedcom/gedcom#spouse> :uncle . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#uncle> :uncle . } .
  
	# aunt1
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#parent> :parent . :parent <http://www.daml.org/2001/01/gedcom/gedcom#sister> :aunt . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#aunt> :aunt . } .
  
	# aunt2
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#uncle> :uncle . :uncle <http://www.daml.org/2001/01/gedcom/gedcom#spouse> :aunt . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#aunt> :aunt . } .
  
	# niece
    { :parent <http://www.daml.org/2001/01/gedcom/gedcom#daughter> :child . :parent <http://www.daml.org/2001/01/gedcom/gedcom#sibling> :sibling . }
    log:implies
    { :sibling <http://www.daml.org/2001/01/gedcom/gedcom#niece> :child . } .
  
	# nephew
    { :parent <http://www.daml.org/2001/01/gedcom/gedcom#son> :child . :parent <http://www.daml.org/2001/01/gedcom/gedcom#sibling> :sibling . }
    log:implies
    { :sibling <http://www.daml.org/2001/01/gedcom/gedcom#nephew> :child . } .
  
	# firstCousin
    { :cousin1 <http://www.daml.org/2001/01/gedcom/gedcom#parent> :sibling1 . :cousin2 <http://www.daml.org/2001/01/gedcom/gedcom#parent> :sibling2 . :sibling1 <http://www.daml.org/2001/01/gedcom/gedcom#sibling> :sibling2 . }
    log:implies
    { :cousin1 <http://www.daml.org/2001/01/gedcom/gedcom#firstCousin> :cousin2 . } .
  
	# ancestor1
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#parent> :parent . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#ancestor> :parent . } .
  
	# ancestor2
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#parent> :parent . :parent <http://www.daml.org/2001/01/gedcom/gedcom#ancestor> :ancestor . }
    log:implies
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#ancestor> :ancestor . } .
  
	# descendent
    { :child <http://www.daml.org/2001/01/gedcom/gedcom#ancestor> :ancestor . }
    log:implies
    { :ancestor <http://www.daml.org/2001/01/gedcom/gedcom#descendent> :child . } .
  
	# cousin
    { :sibling1 <http://www.daml.org/2001/01/gedcom/gedcom#sibling> :sibling2 . :sibling1 <http://www.daml.org/2001/01/gedcom/gedcom#descendent> :descendent1 . :sibling2 <http://www.daml.org/2001/01/gedcom/gedcom#descendent> :descendent2 . }
    log:implies
    { :descendent1 <http://www.daml.org/2001/01/gedcom/gedcom#cousin> :descendent2 . } .
  
	
