@prefix rdfs:    <http://www.w3.org/2000/01/rdf-schema#> .
@prefix ex:      <http://example.org/vocab#> .
@prefix wdrs:    <http://www.w3.org/2007/05/powder-s#> .
@prefix owl:     <http://www.w3.org/2002/07/owl#> .
@prefix rdf:     <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

<>    rdf:type owl:Ontology ;
      wdrs:issued "2007-12-14T00:00:00" ;
      wdrs:issuedby <http://authority.example.org/company.rdf#me> .

[]    rdf:type owl:Class ;
      rdfs:subClassOf
              [ rdf:type owl:Class ;
                owl:equivalentClass
                        [ rdf:type owl:Class ;
                          owl:intersectionOf ([ rdf:type owl:Restriction ;
                                      owl:hasValue "triangular" ;
                                      owl:onProperty ex:shape
                                    ])
                        ]
              ] ;
      owl:equivalentClass
              [ rdf:type owl:Class ;
                owl:intersectionOf ([ rdf:type owl:Restriction ;
                            owl:hasValue "\:\/\/(([^\/\?\#]*)\@)?([^\:\/\?\#\@]+\.)?(example\.com)(:([0-9]+))?\/"^^<http://www.w3.org/2001/XMLSchema-datatypes#string> ;
                            owl:onProperty wdrs:matchesregex
                          ] _:b1 [ rdf:type owl:Class ;
                            owl:equivalentClass
                                    [ rdf:type owl:Class ;
                                      owl:unionOf ([ rdf:type owl:Restriction ;
                                                  owl:hasValue "\:\/\/(([^\/\?\#]*)\@)?([^\:\/\?\#\@]+\.)?(example\.com)(:([0-9]+))?\/"^^<http://www.w3.org/2001/XMLSchema-datatypes#string> ;
                                                  owl:onProperty wdrs:notmatchesregex
                                                ] [ rdf:type owl:Restriction ;
                                                  owl:hasValue "\:\/\/(([^\/\?\#]*)\@)?([^\:\/\?\#\@]*)(\:([0-9]+))?\/bar"^^<http://www.w3.org/2001/XMLSchema-datatypes#string> ;
                                                  owl:onProperty wdrs:notmatchesregex
                                                ])
                                    ]
                          ])
              ] .

[]    rdf:type owl:Class ;
      rdfs:subClassOf
              [ rdf:type owl:Class ;
                rdfs:subClassOf
                        [ rdf:type owl:Class ;
                          owl:intersectionOf ([ rdf:type owl:Restriction ;
                                      owl:hasValue "round" ;
                                      owl:onProperty ex:shape
                                    ])
                        ]
              ] ;
      owl:equivalentClass
              [ rdf:type owl:Class ;
                owl:intersectionOf ([ rdf:type owl:Restriction ;
                            owl:hasValue "\:\/\/(([^\/\?\#]*)\@)?([^\:\/\?\#\@]+\.)?(example\.com)(:([0-9]+))?\/"^^<http://www.w3.org/2001/XMLSchema-datatypes#string> ;
                            owl:onProperty wdrs:matchesregex
                          ] [ rdf:type owl:Restriction ;
                            owl:hasValue "\:\/\/(([^\/\?\#]*)\@)?([^\:\/\?\#\@]*)(\:([0-9]+))?\/bar"^^<http://www.w3.org/2001/XMLSchema-datatypes#string> ;
                            owl:onProperty wdrs:matchesregex
                          ] _:b1)
              ] .

_:b1  rdf:type owl:Class ;
      owl:equivalentClass
              [ rdf:type owl:Class ;
                owl:unionOf ([ rdf:type owl:Restriction ;
                            owl:hasValue "\:\/\/(([^\/\?\#]*)\@)?([^\:\/\?\#\@]+\.)?(example\.com)(:([0-9]+))?\/"^^<http://www.w3.org/2001/XMLSchema-datatypes#string> ;
                            owl:onProperty wdrs:notmatchesregex
                          ] [ rdf:type owl:Restriction ;
                            owl:hasValue "\:\/\/(([^\/\?\#]*)\@)?([^\:\/\?\#\@]*)(\:([0-9]+))?\/foo"^^<http://www.w3.org/2001/XMLSchema-datatypes#string> ;
                            owl:onProperty wdrs:notmatchesregex
                          ])
              ] .

[]    rdf:type owl:Class ;
      rdfs:subClassOf
              [ rdf:type owl:Class ;
                rdfs:subClassOf
                        [ rdf:type owl:Class ;
                          owl:intersectionOf ([ rdf:type owl:Restriction ;
                                      owl:hasValue "square" ;
                                      owl:onProperty ex:shape
                                    ])
                        ]
              ] ;
      owl:equivalentClass
              [ rdf:type owl:Class ;
                owl:intersectionOf ([ rdf:type owl:Restriction ;
                            owl:hasValue "\:\/\/(([^\/\?\#]*)\@)?([^\:\/\?\#\@]+\.)?(example\.com)(:([0-9]+))?\/"^^<http://www.w3.org/2001/XMLSchema-datatypes#string> ;
                            owl:onProperty wdrs:matchesregex
                          ] [ rdf:type owl:Restriction ;
                            owl:hasValue "\:\/\/(([^\/\?\#]*)\@)?([^\:\/\?\#\@]*)(\:([0-9]+))?\/foo"^^<http://www.w3.org/2001/XMLSchema-datatypes#string> ;
                            owl:onProperty wdrs:matchesregex
                          ])
              ] .
