PYSHACL(1)

πŸ“¦
version 0.30.1 Β· 2 versions
, in fedora 43

πŸ‘‘ PYSHACL πŸ’…

okay bestie, sit down, hydrate, because we're about to talk about PySHACL β€” that's the manual page for PySHACL, from the User Commands section of your friendly neighborhood man pages. It's giving validator energy and honestly? we're obsessed. πŸ¦‹


✨ DESCRIPTION ✨

PySHACL 0.30.1 Validator command line tool. that's it, that's the whole vibe. it validates. it's a validator. slay.

here's the usage, and I'm putting it here character for character because the way that this thing has so many flags is genuinely iconic of it:

usage: pyshacl [-h] [-s [SHACL]] [-e [ONT]] [-i {none,rdfs,owlrl,both}]
[-m]

       [-q] [-im] [-a] [-j] [-it] [--abort] [--allow-info] [-w]
       [--max-depth [MAX_DEPTH]] [-d] [--focus [FOCUS]] [--shape
       [SHAPE]] [-f {human,table,turtle,xml,json-ld,nt,n3}] [-df
       {auto,turtle,xml,json-ld,nt,n3}] [-sf
       {auto,turtle,xml,json-ld,nt,n3}] [-ef
       {auto,turtle,xml,json-ld,nt,n3}] [-V] [-o [OUTPUT]] [--rules]
       [--server] [DataGraph]

like ok. we have options. we have options on our options. 🫢


πŸŽ€ positional arguments: πŸŽ€

  • DataGraph β€” the file or endpoint that's holding your Target Data Graph. yes. that one. the data. the graph. the main character. πŸ’–

πŸ’… options: πŸ’…

  • -h, --help β€” shows this help message and dips. classic. we love a short king. ✨
  • -s, --shapes, --shacl [SHACL] β€” a file containing the SHACL Shapes Graph. three whole aliases for one flag, because why choose.
  • -e, --ont-graph [ONT] β€” a file path or a URL pointing at a document with extra ontological information. the RDFS and OWL definitions in there get used to inoculate the DataGraph. yes, inoculate, like a lil vaccine for your graph. πŸ’‰
  • -i, --inference {none,rdfs,owlrl,both} β€” pick which flavor of inferencing runs against the Data Graph before validating. none, rdfs, owlrl, or both. choose your fighter.
  • -m, --metashacl β€” validates the SHACL Shapes graph against the shaclshacl Shapes Graph before validating the Data Graph. meta? meta. it's giving inception. πŸŒ€
  • -q, --sparql-mode β€” treats the DataGraph as a SPARQL endpoint, and validates the graph over at that SPARQL endpoint. no local file needed, bestie. remote girlboss behavior.
  • -im, --imports β€” allows importing sub-graphs that are defined in statements with owl:imports. let it fetch. πŸ“₯
  • -a, --advanced β€” turns on features from the SHACL Advanced Features specification. fancy mode: ON.
  • -j, --js β€” turns on features from the SHACL-JS Specification. yes there's JavaScript in your shapes now. we're living in the future. 😭
  • -it, --iterate-rules β€” runs the Shape's SHACL Rules over and over, iteratively, until the data_graph hits a steady state. it'll keep going till it stops changing, no cap.
  • --abort β€” aborts on the very first invalid data. first red flag, we're out. πŸ’€
  • --allow-info, --allow-infos β€” shapes marked with a severity of Info will not cause the result to be invalid. soft launch those.
  • -w, --allow-warning, --allow-warnings β€” shapes marked with a severity of Warning or Info will not cause the result to be invalid. even more lenient, even more chill. 🌸
  • --max-depth [MAX_DEPTH] β€” the maximum number of SHACL shapes "deep" that the validator can go before it reaches an "endpoint" constraint. depth limit, because we can't go down forever. πŸ•³οΈ
  • -d, --debug β€” outputs extra verbose runtime messages. for when you need the lore. πŸ”
  • --focus [FOCUS] β€” optional IRIs of focus nodes from the DataGraph; the shapes will validate only these node. comma-separated list. pick your faves. ⭐
  • --shape [SHAPE] β€” optional IRIs of a NodeShape or PropertyShape from the SHACL ShapesGraph; only these shapes get used to validate the DataGraph. comma-separated list. a curated selection, if you will. πŸŽ€
  • -f, --format {human,table,turtle,xml,json-ld,nt,n3} β€” choose an output format. default is "human". so it speaks to you like a person. 🫢
  • -df, --data-file-format {auto,turtle,xml,json-ld,nt,n3} β€” explicitly states the RDF File format of the input DataGraph file. default="auto". don't make it guess, bestie.
  • -sf, --shacl-file-format {auto,turtle,xml,json-ld,nt,n3} β€” explicitly states the RDF File format of the input SHACL file. default="auto".
  • -ef, --ont-file-format {auto,turtle,xml,json-ld,nt,n3} β€” explicitly states the RDF File format of the extra ontology file. default="auto".
  • -V, --version β€” shows the PySHACL version and exits. hello and goodbye. ✨
  • -o, --output [OUTPUT] β€” sends output to a file (it defaults to stdout). save it for later, scrapbook it, whatever. πŸ“
  • --rules β€” ignores validation options and runs PySHACL in Rules Expansion mode. same as pyshacl_rules. rules mode. literally. πŸ”₯
  • --server β€” ignores all the rest of the options and starts the HTTP Server. same as pyshacl_server. > heads up bestie: it straight up ignores every other option you passed. it said "not today." πŸ™ˆ

πŸ“š SEE ALSO πŸ“š

the full documentation for PySHACL is maintained as a Texinfo manual. if the info and PySHACL programs are properly installed at your site, this command:

info PySHACL

should give you access to the complete manual. iykyk. go read it, it's the whole extended universe. 🌈


okay that's the page!! πŸŽ‰ PySHACL Version: 0.30.1, dated September 2025, and that's a wrap on the User Commands manual section. go validate something and make it everyone's problem. mwah. πŸ’–πŸ’…βœ¨

πŸ“¦ where this page comes from