  Property graphs constitute data models for representing knowledge graphs.
They allow for the convenient representation of facts, including facts about
facts, represented by triples in subject or object position of other triples.
Knowledge graphs such as Wikidata are created by a diversity of contributors
and a range of sources leaving them prone to two types of errors. The first
type of error, falsity of facts, is addressed by property graphs through the
representation of provenance and validity, making triples occur as first-order
objects in subject position of metadata triples. The second type of error,
violation of domain constraints, has not been addressed with regard to property
graphs so far. In RDF representations, this error can be addressed by shape
languages such as SHACL or ShEx, which allow for checking whether graphs are
valid with respect to a set of domain constraints. Borrowing ideas from the
syntax and semantics definitions of SHACL, we design a shape language for
property graphs, ProGS, which allows for formulating shape constraints on
property graphs including their specific constructs, such as edges with
identities and key-value annotations to both nodes and edges. We define a
formal semantics of ProGS, investigate the resulting complexity of validating
property graphs against sets of ProGS shapes, compare with corresponding
results for SHACL, and implement a prototypical validator that utilizes answer
set programming.
