text: I.e., it might be the case that we never get the data to satisfy every integrity constraint which would mean 
  the reasoner is never of any use except to tell us that the ontology is not consistent. 
  
  Thus, SHACL provides a way to define data integrity constraints that overlap to some degree with what 
  can be defined in OWL and SWRL. For example, both can define the number of values allowed for a 
  specific property. E.g., that each instance of Employee must have one and only one social security 
  number (ssn). If this were defined as a DL axiom, then the axiom would never fire for employees that 
  had no ssn because of the OWA. On the other hand, if an Employee accidentally had 2 ssn values then 
  the entire ontology would be inconsistent until one value was removed. SHACL on the other hand can 
  handle both these examples and rather than making the entire ontology inconsistent it simply logs 
  warnings at various levels of severity. 
  
  11.3 Basic SHACL Concepts 
  To understand SHACL recall that the language underlying OWL is RDF which describes graphs as triples 
  of the form: Subject Predicate Object. SHACL also works at the level of RDF because some developers 
  may want to simply use that lower level for reasons of efficiency. Thus, RDF can validate an RDF graph 
  as well as an OWL ontology. Fundamentally, SHACL consists of two components: 