Warning:
This wiki has been archived and is now read-only.

Rawreqs

From RDF Data Shapes Working Group
Jump to: navigation, search

[
    { "groups":["DB", "workshop", "small", "DCAP", "ericP"],  "id": "high-level_reqs", "label": "High-level Language Requirements" , "desc": "meta requirements about the language",
      "refinedBy": [
          { "groups":["DB", "workshop", "ericP"], "id": "R101", "label": "Language should be declarative", "ref": ["R-101-DECLARATIVE-CONSTRAINT-LANGUAGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/121"]},
          { "groups":["DB", "workshop"], "id": "R102", "label": "Language should be intuitive", "ref": ["R-102-INTUITIVE-CONSTRAINT-LANGUAGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/122"]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R103", "label": "Language should be higher level than SPARQL", "ref": ["R-103-HIGH-LEVEL-CONSTRAINT-LANGUAGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/127"],
           "refinedBy": [
               { "groups":["DB", "workshop", "ericP"], "status": "rejected", "id": "R111", "label": "Basic use cases covered by constraint language", "ref": ["R-111-BASIC-USE-CASES-COVERED-BY-CONSTRAINT-LANGUAGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/142"]},
               { "groups":["DB", "workshop", "ericP"], "status": "rejected", "id": "R176", "label": "high-level vocab for common cases", "ref": ["R-176-PROVIDE-HIGH-LEVEL-VOCABULARY-FOR-THE-MOST-COMMON-TYPES-OF-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/311"]}
           ]},
          { "groups":["DB", "small", "DCAP", "ericP"], "id": "R117", "label": "Constraints for different uses don't conflict.", "ref": ["R-117-CONTEXT-SENSITIVE-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/148"],
           "refinedBy": [
               { "groups":["DB", "ericP"], "id": "E01" , "status": "proposed", "label": "The same data can pass multiple rules", "ref": ["R-?01-CONTEXT-SENSITIVE-GRAMMAR"]        , "code": [["shexc", " { ex:reportedBy @, ex:reproducedBy @ }"]]}
           ]},
          { "groups":["DB", "workshop", "small", "ericP"],  "label": "syntax",
            "refinedBy": [
                { "groups":["DB", "workshop", "ericP"], "id": "R128", "label": "Human-readable", "ref": ["R-128-HUMAN-UNDERSTANDABLE-CONCRETE-SYNTAXES-FORMULATING-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/159"]},
                { "groups":["DB", "small", "ericP"], "id": "R184", "label": "Concise language", "ref": ["R-184-COMPACT-CONCRETE-SYNTAX", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/327"],
                 "refinedBy": [
                     { "groups":["DB", "ericP"], "id": "R130", "label": "Concise constraints", "ref": ["R-130-CONCISE-CONCRETE-SYNTAXES-FORMULATING-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/161"]}
                 ]},
                { "groups":["DB", "ericP"], "id": "R132", "label": "Multiple concrete syntax for constraints", "ref": ["R-132-MULTIPLE-CONCRETE-SYNTAXES-FORMULATING-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/163"],
                 "refinedBy": [
                     { "groups":["DB", "ericP"],  "label": "SPARQL",
                       "refinedBy": [
                           { "groups":["DB", "ericP"], "id": "R138", "label": "Compatible with SPARQL", "ref": ["R-138-CONSTRAINT-LANGUAGE-COMPATIBLE-WITH-SPARQL", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/169"],
                            "refinedBy": [
                                { "groups":["DB", "ericP"], "id": "R188", "label": "Equivalent to SPARQL", "ref": ["R-188-EXPRESSIVITY-OF-CONSTRAINT-LANGUAGE-EQUIVALENT-TO-SPARQL", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/363"]},
                                { "groups":["DB", "ericP"], "duplicates": ["R188"], "id": "R199", "label": "Compile to SPARQL", "ref": ["R-199-RDF-VALIDATION-MUST-COMPILE-DOWN-TO-SPARQL", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-199-RDF-VALIDATION-MUST-COMPILE-DOWN-TO-SPARQL"] , "desc": "It would be hard to be eqivalent to SPARQL and not compile to SPARQL."}
                            ]}
                       ]},
                     { "groups":["DB"], "id": "R131", "label": "OWL syntax for constraints", "ref": ["R-131-OWL-AS-CONCRETE-SYNTAX-FORMULATING-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/162"]}
                 ]},
                { "groups":["DB"], "id": "R133", "status": "nonissue", "label": "Multiple concrete syntax for data", "ref": ["R-133-MULTIPLE-CONCRETE-SYNTAXES-FORMULATING-DATA", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/164"] , "desc": "Not relevent for RDF"}
            ]},
          { "groups":["DB", "workshop", "small", "ericP"],  "label": "extensibility",
            "refinedBy": [
                { "groups":["DB", "ericP"], "id": "R106", "label": "Extensible language", "ref": ["R-106-EXTENSIBLE-CONSTRAINT-LANGUAGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/137"]   , "code": [["shexc", "%sparql{ ?s ex:reportedOn ?rpt . FILTER (?o > ?rpt) %}"]],
                 "refinedBy": [
                     { "groups":["DB", "workshop", "small", "ericP"], "id": "R186", "label": "Extensible with SPARQL", "ref": ["R-186-EXTEND-EXPRESSIVITY-WITH-SPARQL", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-186-SPARQL-EXTENSIONS"]}
                 ]},
                { "groups":["DB"], "id": "R112", "label": "Extensible constraints", "ref": ["R-112-EXTENSIBLE-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/143"]}
            ]},
          { "groups":["DB", "workshop"], "id": "R104", "label": "Implementable", "ref": ["R-104-CONSTRAINT-LANGUAGE-HAVING-IMPLEMENTATION-LANGUAGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/135"],
           "refinedBy": [
               { "groups":["DB", "workshop", "ericP"], "id": "R105", "label": "Translatable to implementation language", "ref": ["R-105-CONSTRAINT-LANGUAGE-TRANSLATABLE-TO-IMPLEMENTATION-LANGUAGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/136"]},
               { "groups":["DB", "workshop", "ericP"], "id": "R195", "label": "Easily parsable", "ref": ["R-195-CONSTRAINT-LANGUAGE-EASY-TO-CONSUME-BY-TOOLS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-195-CONSTRAINT-LANGUAGE-EASY-TO-CONSUME-BY-TOOLS"]},
               { "groups":["DB", "workshop", "ericP"], "duplicates": ["R195"], "id": "R129", "label": "Machine-processable constraints", "ref": ["R-129-MACHINE-UNDERSTANDABLE-CONCRETE-SYNTAXES-FORMULATION-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/160"]},
               { "groups":["DB", "ericP"], "id": "R161", "label": "Acceptable validation performance", "ref": ["R-161-ACCEPTABLE-PERFORMANCE-OF-VALIDATION-ALGORITHM", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/234"]}
           ]},
          { "groups":["DB"], "id": "R182", "label": "Use existing language", "ref": ["R-182-USE-KNOWN-CONCRETE-SYNTAX", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/323"]},
          { "groups":["DB", "DCAP", "ericP"], "id": "R121", "label": "Ordering (e.g. adding ordinals to Resource Shapes)", "ref": ["R-121-SPECIFY-ORDER-OF-RDF-RESOURCES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/152"]},
          { "groups":["DB"], "id": "R127", "label": "RDF representation of constraints", "ref": ["R-127-RDF-REPRESENTATION-OF-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/158"]},
          { "groups":["DB", "workshop", "ericP"], "duplicates": ["R127"], "id": "R169", "label": "RDF representation of constraints langauge", "ref": ["R-169-RDF-REPRESENTATION-OF-CONSTRAINT-LANGUAGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/284"]},
          { "groups":["DB"], "id": "R158", "label": "Severity levels of constraint violations", "ref": ["R-158-SEVERITY-LEVELS-OF-CONSTRAINT-VIOLATIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-158-SEVERITY-LEVELS"]},
          { "groups":["DB", "DCAP"], "id": "R135", "label": "properties MUST, MAY, SHOULD be present", "ref": ["R-135-CONSTRAINT-LEVELS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-135-CONSTRAINT-LEVELS"], "desc": "(added to DCAP for nested R72)",
           "refinedBy": [
               { "groups":["DB", "DCAP"], "id": "R72" , "label": "property is recommended", "ref": ["R-72-RECOMMENDED-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/79"]}
           ]},
          { "groups":["DB", "DCAP"], "duplicates": ["R135"], "id": "R67" , "label": "whether a property should occur", "ref": ["R-67-CLASSIFY-PROPERTIES-ACCORDING-TO-OCCURRENCE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/74"]},
          { "groups":["DB", "ericP"], "id": "R125", "label": "distinguish shapes from rdf:types.", "ref": ["R-125-RDF-SHAPE-CHECKING", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/156"]},
          { "groups":["DB", "ericP"], "id": "R197", "label": "validate based on rdf:type", "ref": ["R-197-ATTACH-CONSTRAINTS-TO-CLASSES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-197-ATTACH-CONSTRAINTS-TO-CLASSES"],
           "refinedBy": [
               { "groups":["DB"], "id": "R143", "label": "switchable via parameter", "ref": ["R-143-CONDITIONAL-TYPED-VALIDATION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-143-CONDITIONAL-TYPED-VALIDATION"],
                "refinedBy": [
                    { "groups":["DB", "workshop", "small", "ericP"], "id": "R191", "label": "Shapes related to types", "ref": ["R-191-SHAPES-RELATED-TO-TYPES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-191-SHAPES-RELATED-TO-TYPES"]}
                ]}
           ]}
      ]},
    { "groups":["DB", "workshop", "small", "ericP"],  "id": "modularization", "label": "modularization/import" , "desc": "ability to include bits of constraints and schemas",
      "refinedBy": [
          { "groups":["DB", "ericP"], "id": "R136", "label": "Modularity of constraint definitions", "ref": ["R-136-MODULARITY-OF-CONSTRAINT-DEFINITIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-136-MODULARITY-OF-CONSTRAINT-DEFINITIONS"] , "code": [["owl", "owl:imports"], ["rng", "external \"pattern1.rnc\""]]},
          { "groups":["DB", "ericP"], "id": "R145", "label": "Interoperable constraints", "ref": ["R-145-INTEROPERABLE-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/201"]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R147", "label": "addressable schemas", "ref": ["R-147-DISTRIBUTION-OF-CONSTRAINT-SCHEMAS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/203"]},
          { "groups":["DB", "small", "ericP"], "id": "R148", "label": "addressable constraints", "ref": ["R-148-DISTRIBUTED-VALIDATION-IN-COLLABORATIVE-ENVIRONMENTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/204"],
           "refinedBy": [
               { "groups":["DB", "workshop", "small", "ericP"], "id": "R174", "label": "Reuse constraints", "ref": ["R-174-REUSE-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/300"]},
               { "groups":["DB", "workshop", "small", "ericP"], "id": "R99" , "label": "Stable constraint identifiers", "ref": ["R-99-STABLE-IDENTIFICATION-OF-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/119"]}
           ]}
      ]},
    { "groups":["DB", "workshop", "small", "ericP"],  "id": "uigen", "label": "ui generation" , "desc": "annotations etc. to generate UIs (plus usability stuff)",
      "refinedBy": [
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R139", "label": "Constraint language drives user interface form generation and presentation", "ref": ["R-139-CONSTRAINT-LANGUAGE-DRIVES-USER-INTERFACE-FORM-GENERATION-AND-PRESENTATION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/170"]},
          { "groups":["DB"], "id": "R124", "label": "Describe data", "ref": ["R-124-DESCRIBE-DATA", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/155"]},
          { "groups":["DB"], "id": "R134", "label": "Specify usage of terms", "ref": ["R-134-SPECIFY-USAGE-OF-TERMS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/165"]},
          { "groups":["DB"], "id": "R192", "label": "Define annotations for constraints", "ref": ["R-192-DEFINE-ANNOTATIONS-FOR-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-192-DEFINE-ANNOTATIONS-FOR-CONSTRAINTS"]},
          { "groups":["DB"], "id": "R172", "label": "Generate human readable documentation", "ref": ["R-172-GENERATE-HUMAN-READABLE-DOCUMENTATION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/289"]}
      ]},
    { "groups":["DB", "workshop", "small", "ericP"],  "id": "foundation", "label": "foundation" , "desc": "fundamental building blocks of langauge definition",
      "refinedBy": [
          { "groups":["DB"], "id": "R177", "label": "semantics defined in other languages", "ref": ["R-177-DEFINE-SEMANTICS-FOR-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/313"],
           "refinedBy": [
               { "groups":["DB"], "id": "R187", "label": "semantics defined in SPARQL", "ref": ["R-187-DEFINE-SEMANTICS-OF-CONSTRAINTS-IN-TERMS-OF-SPARQL", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/362"]}
           ]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R140", "label": "Schemas aren't in ontologies", "ref": ["R-140-SEPARATE-ONTOLOGIES-FROM-VALIDATION-SCHEMAS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/171"],
           "refinedBy": [
               { "groups":["DB"], "id": "R173", "label": "Constraints aren't in ontologies", "ref": ["R-173-SEPARATE-CONSTRAINTS-FROM-VOCABULARIES-AND-ONTOLOGIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/290"]}
           ]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R201", "label": "Separation of constraints and ontology semantics", "ref": ["R-201-SEPARATION-OF-CONSTRAINTS-AND-ONTOLOGY-SEMANTICS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/405"]}
      ]},
    { "groups":["DB", "DCAP", "ericP"],  "id": "inference", "label": "reasoning/inference" , "desc": "things that only seemed to me to do inference",
      "refinedBy": [
          { "groups":["DB", "ericP"], "id": "R113", "label": "Interaction of validation with reasoning", "ref": ["R-113-INTERACTION-OF-VALIDATION-WITH-REASONING", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/144"]},
          { "groups":["DB"], "id": "R190", "label": "Specify expected behavior under all possible entailment regimes", "ref": ["R-190-SPECIFY-EXPECTED-BEHAVIOR-UNDER-ALL-POSSIBLE-ENTAILMENT-REGIMES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-190-SPECIFY-EXPECTED-BEHAVIOR-UNDER-ALL-POSSIBLE-ENTAILMENT-REGIMES"]},
          { "groups":["DB"], "id": "R198", "label": "RDF validation after inferencing", "ref": ["R-198-RDF-VALIDATION-AFTER-INFERENCING", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-198-RDF-VALIDATION-AFTER-INFERENCING"]},
          { "groups":["DB", "DCAP"],  "label": "defaults",
            "refinedBy": [
                { "groups":["DB"], "id": "R38" , "label": "for literals", "ref": ["R-38-DEFAULT-VALUES-OF-RDF-LITERALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/45"] , "code": [["rs", "oslc:defaultValue"]]},
                { "groups":["DB", "DCAP"], "id": "R31" , "label": "for non-literals", "ref": ["R-31-DEFAULT-VALUES-OF-RDF-OBJECTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/38"] , "code": [["rs", "oslc:defaultValue"]]}
            ]},
          { "groups":["DB", "DCAP"], "id": "R100", "label": "Subsumption", "ref": ["R-100-SUBSUMPTION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/120"]},
          { "groups":["DB"], "id": "E04" , "updates": "R100", "label": "Polymorphism - permit more than one pattern to match", "ref": ["R-?04-POLYMORPHISM"]      , "code": [["shexc", "VIRTUAL :Person :User & :Person { … } :Employee { … }"]]},
          { "groups":["DB", "DCAP"],  "label": "OWL",
            "refinedBy": [
                { "groups":["DB"], "id": "R3"  , "label": "Equivalent classes", "ref": ["R-3-EQUIVALENT-CLASSES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/9"]},
                { "groups":["DB"], "id": "R4"  , "label": "Equivalent object properties", "ref": ["R-4-EQUIVALENT-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/11"]},
                { "groups":["DB"], "id": "R5"  , "label": "Equivalent data properties", "ref": ["R-5-EQUIVALENT-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/12"]},
                { "groups":["DB"], "id": "R6"  , "label": "Equivalent individuals", "ref": ["R-6-EQUIVALENT-INDIVIDUALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/13"]},
                { "groups":["DB", "DCAP"], "id": "R26" , "label": "Data property domain", "ref": ["R-26-DATA-PROPERTY-DOMAIN", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-26-DATA-PROPERTY-DOMAIN"]},
                { "groups":["DB", "DCAP"], "id": "R35" , "label": "Data property range", "ref": ["R-35-DATA-PROPERTY-RANGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-35-DATA-PROPERTY-RANGE"]},
                { "groups":["DB", "DCAP"], "id": "R25" , "label": "Object property domain", "ref": ["R-25-OBJECT-PROPERTY-DOMAIN", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-25-OBJECT-PROPERTY-DOMAIN"]},
                { "groups":["DB", "DCAP"], "id": "R28" , "label": "Object property range", "ref": ["R-28-OBJECT-PROPERTY-RANGE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-28-OBJECT-PROPERTY-RANGE"]},
                { "groups":["DB"], "id": "R54" , "label": "subPropertyOf", "ref": ["R-54-SUB-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/61"]},
                { "groups":["DB"], "id": "R55" , "label": "subPropertyOf ObjectPropertyChain", "ref": ["R-55-OBJECT-PROPERTY-PATHS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/62"]},
                { "groups":["DB"], "id": "R56" , "label": "owl:ObjectInverseOf", "ref": ["R-56-INVERSE-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/63"]},
                { "groups":["DB"], "id": "R58" , "label": "InverseFunctionalObjectProperty", "ref": ["R-58-INVERSE-FUNCTIONAL-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/65"]},
                { "groups":["DB"], "id": "R59" , "label": "ReflexiveObjectProperty", "ref": ["R-59-REFLEXIVE-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/66"],
                 "refinedBy": [
                     { "groups":["DB"], "id": "R89" , "label": "for object property expressions", "ref": ["R-89-SELF-RESTRICTION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/108"]}
                 ]},
                { "groups":["DB"], "id": "R60" , "label": "IrreflexiveObjectProperty", "ref": ["R-60-IRREFLEXIVE-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/67"]},
                { "groups":["DB"], "id": "R61" , "label": "SymmetricObjectProperty", "ref": ["R-61-SYMMETRIC-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/68"]},
                { "groups":["DB"], "id": "R63" , "label": "TransitiveObjectProperty", "ref": ["R-63-TRANSITIVE-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/70"]},
                { "groups":["DB", "DCAP"], "id": "R64" , "label": "SubDataPropertyOf", "ref": ["R-64-SUB-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/71"]},
                { "groups":["DB"], "id": "R86" , "label": "Existential quantification on object properties", "ref": ["R-86-EXISTENTIAL-QUANTIFICATION-ON-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/105"]},
                { "groups":["DB"], "id": "R87" , "label": "Universal quantification on object properties", "ref": ["R-87-UNIVERSAL-QUANTIFICATION-ON-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/106"]},
                { "groups":["DB"], "id": "R88" , "label": "Individual value restriction on object properties", "ref": ["R-88-INDIVIDUAL-VALUE-RESTRICTION-ON-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/107"]},
                { "groups":["DB"], "id": "R90" , "label": "Existential quantification on data properties", "ref": ["R-90-EXISTENTIAL-QUANTIFICATION-ON-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/110"]},
                { "groups":["DB"], "id": "R91" , "label": "Universal quantification on data properties", "ref": ["R-91-UNIVERSAL-QUANTIFICATION-ON-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/111"]},
                { "groups":["DB"], "id": "R94" , "label": "Positive object property assertions", "ref": ["R-94-POSITIVE-OBJECT-PROPERTY-ASSERTIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/114"]},
                { "groups":["DB"], "id": "R95" , "label": "Positive data property assertions", "ref": ["R-95-POSITIVE-DATA-PROPERTY-ASSERTIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/115"]},
                { "groups":["DB"], "id": "R96" , "label": "Negative object property assertions", "ref": ["R-96-NEGATIVE-OBJECT-PROPERTY-ASSERTIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/116"]},
                { "groups":["DB"], "id": "R97" , "label": "Negative data property assertions", "ref": ["R-97-NEGATIVE-DATA-PROPERTY-ASSERTIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/117"]}
            ]}
      ]},
    { "groups":["DB", "small", "DCAP", "ericP"],  "id": "RDFTargetConstructs", "label": "RDF target constructs" , "desc": "what in RDF we want to constrain",
      "refinedBy": [
          { "groups":["DB", "small", "ericP"], "id": "R119", "label": "Validation on named graphs", "ref": ["R-119-VALIDATION-ON-NAMED-GRAPHS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/150"], "desc": "implies inter-graph constraints?"},
          { "groups":["DB", "ericP"], "id": "R120", "label": "Handle rdf collections", "ref": ["R-120-HANDLE-RDF-COLLECTIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/151"]},
          { "groups":["DB"], "id": "R24" , "label": "constraints depend on provenance", "ref": ["R-24-PROVENANCE-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/31"]},
          { "groups":["DB", "small", "DCAP", "ericP"], "id": "R47" , "label": "Language tag matching", "ref": ["R-47-LANGUAGE-TAG-MATCHING", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/54"]}
      ]},
    { "groups":["DB", "small", "DCAP", "ericP"],  "id": "expressivity-algebraic", "label": "expressivity - algebraic" , "desc": "conjunction, disjunction, etc.",
      "refinedBy": [
          { "groups":["DB"], "id": "R7"  , "label": "Disjoint union classes", "ref": ["R-7-DISJOINT-CLASSES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-7-DISJOINT-CLASSES"] , "code": [["owl", "Class: school:Mother\nClass: school:Father\nClass: school:Contact DisjointUnionOf: school:Mother, school:Father\nClass: school:Record SubClassOf: school:adminContact some school:Contact"] , ["shexc", ":S1 { school:adminContact @:Contact}\nVIRTUAL :Contact {}\n:Father &:Contact { … }\n:Mother &:Contact { … }"]]},
          { "groups":["DB"], "id": "R8"  , "label": "Disjoint union of class expressions", "ref": ["R-8-DISJOINT-UNION-OF-CLASS-EXPRESSIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/15"]},
          { "groups":["DB"], "id": "R9"  , "label": "Disjoint object properties", "ref": ["R-9-DISJOINT-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/16"]},
          { "groups":["DB", "DCAP"], "id": "R10" , "label": "Disjoint data properties", "ref": [" R-10-DISJOINT-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/17"]},
          { "groups":["DB", "DCAP"], "id": "R11" , "label": "Disjoint data properties class specific", "ref": ["R-11-DISJOINT-DATA-PROPERTIES-CLASS-SPECIFIC", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/18"]},
          { "groups":["DB"], "id": "R12" , "label": "Disjoint object properties class specific", "ref": ["R-12-DISJOINT-OBJECT-PROPERTIES-CLASS-SPECIFIC", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/19"]},
          { "groups":["DB"], "id": "R13" , "label": "Disjoint group of properties class specific", "ref": ["R-13-DISJOINT-GROUP-OF-PROPERTIES-CLASS-SPECIFIC", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/20"]},
          { "groups":["DB"], "id": "R14" , "label": "Disjoint individuals", "ref": ["R-14-DISJOINT-INDIVIDUALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/21"]},
          { "groups":["DB"], "id": "R15" , "label": "Conjunction of class expressions", "ref": ["R-15-CONJUNCTION-OF-CLASS-EXPRESSIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/22"] , "code": [["shexc", " { foaf:giveName LITERAL , foaf:familyName LITERAL }"]]},
          { "groups":["DB", "small", "ericP"], "id": "E02" , "updates": "R15", "label": "pat1 && pat2", "ref": ["R-?02-SHAPE-AND"]  ,
            "code": [
                ["shexc", " { foaf:givenName LITERAL , foaf:familyName LITERAL }"],
                ["rs", " a oslc:ResourceShape ;\n    oslc:property\n      [ oslc:propertyDefinition foaf:givenName ;\n        oslc:name \"givenName\" ;\n        oslc:valueType rdf:string ;\n        oslc:occurs oslc:Exactly-one ], \n      [ oslc:propertyDefinition foaf:familyName ;\n        oslc:name \"familyName\" ;\n        oslc:valueType rdf:string ;\n        oslc:occurs oslc:Exactly-one ]."],
                ["SPARQL", " spin:constraint [\n       rdf:type sp:Ask ;\n       sp:text \"\"\"ASK { ?this foaf:givenName ?givenName\n                        FILTER (datatype(?givenName)=xsd:string)\n                        foaf:familyName ?familyName\n                        FILTER (datatype(?familyName)=xsd:string)\n                      }\"\"\" ] ."],
                ["owl", " SubClassOf foaf:givenName only xsd:string,\n                  foaf:givenName exactly 1 owl:Thing,\n                  foaf:familyName only xsd:string,\n                  foaf:familyName exactly 1 owl:Thing"]
            ]},
          { "groups":["DB"], "id": "R16" , "label": "Conjunction of data ranges", "ref": ["R-16-CONJUNCTION-OF-DATA-RANGES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/23"] , "code": [["shexc", "{ my:p xsd:integer | my:p xsd:double }"], ["SPARQL", "?this my:p ?o FILTER (datatype(?o)=xsd:integer || datatype(?o)=xsd:double)"]]},
          { "groups":["DB"], "id": "R17" , "label": "Disjunction of class expressions", "ref": ["R-17-DISJUNCTION-OF-CLASS-EXPRESSIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/24"],
           "refinedBy": [
               { "groups":["DB"], "id": "R202", "label": "Context-specific inclusive OR", "ref": ["R-202-CONTEXT-SPECIFIC-INCLUSIVE-OR-OF-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/406"]},
               { "groups":["DB"], "id": "R203", "label": "Context-specific XOR", "ref": ["R-203-CONTEXT-SPECIFIC-EXCLUSIVE-OR-OF-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/407"]}
           ]},
          { "groups":["DB", "small", "ericP"], "id": "E03" , "updates": "R17", "label": "pat1 || pat2", "ref": ["R-?03-SHAPE-OR"]   ,
            "code": [
                ["shexc", " { foaf:mbox LITERAL | foaf:mboxSHA1Sum LITERAL }"],
                ["rs", "N/A"],
                ["SPARQL", " spin:constraint [\n       rdf:type sp:Ask ;\n       sp:text \"\"\"ASK { { ?this foaf:givenName ?givenName\n                          FILTER (datatype(?givenName)=xsd:string) }\n                        UNION {\n                          foaf:familyName ?familyName\n                          FILTER (datatype(?familyName)=xsd:string) }\n                      }\"\"\" ] ."],
                ["owl", " SubClassOf (foaf:givenName only xsd:string,\n                   foaf:givenName exactly 1 owl:Thing) or \n                  (foaf:familyName only xsd:string,\n                   foaf:familyName exactly 1 owl:Thing)"]]}
      ]},
    { "groups":["DB", "workshop", "small", "DCAP", "ericP"],  "id": "expressivity-lexicalPatterns", "label": "expressivity - lexical patterns" , "desc": "catch \"2014-10-BOGUS-DT\"^^xsd:dateTime",
      "refinedBy": [
          { "groups":["DB"], "id": "R21" , "label": "Iri pattern matching on rdf subjects", "ref": ["R-21-IRI-PATTERN-MATCHING-ON-RDF-SUBJECTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/28"]},
          { "groups":["DB", "ericP"], "id": "R23" , "label": "match IRI patterns on predicates", "ref": ["R-23-IRI-PATTERN-MATCHING-ON-RDF-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/30"] , "code": [["shexc", ".-dc:creator-dc:date  LITERAL"]]},
          { "groups":["DB", "ericP"], "id": "R22" , "label": "match IRI patterns on objects", "ref": ["R-22-IRI-PATTERN-MATCHING-ON-RDF-OBJECTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/29"] , "code": [["shexc", "med:coding  loinc:~-loinc:Systolic:Qn"]]},
          { "groups":["DB", "DCAP", "ericP"], "id": "R46" , "label": "literal constraints by XML Schema facets", "ref": ["R-46-CONSTRAINING-FACETS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/53"]},
          { "groups":["DB", "ericP"], "id": "R44" , "label": "regular expressions", "ref": ["R-44-PATTERN-MATCHING-ON-RDF-LITERALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/51"]},
          { "groups":["DB", "workshop", "small", "DCAP", "ericP"], "id": "R45" , "label": "object must be of stated datatype", "ref": ["R-45-RANGES-OF-RDF-LITERAL-VALUES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/52"] ,
            "code": [
                ["shexc", "med:systolic ucum:mmHg"],
                ["rs", "oslc:valueType ucum:mmHg"],
                ["SPARQL", "FILTER (datatype(?object) = ucum:mmHg)"],
                ["owl", "SubClassOf med:systolic some ucum:mmHg"]
            ]},
          { "groups":["DB", "DCAP"], "id": "R50" , "label": "no whitespace, or none at beginning/end)", "ref": ["R-50-WHITESPACE-HANDLING-OF-RDF-LITERALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/57"]},
          { "groups":["DB"], "id": "R51" , "label": "test no HTML in RDF literals", "ref": ["R-51-HTML-HANDLING-OF-RDF-LITERALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/58"]},
          { "groups":["DB", "DCAP"], "id": "R98" , "label": "Check validity of URIs", "ref": ["R-98-CHECK-VALIDITY-OF-URIS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/118"], "desc": "http:///example.com/"},
          { "groups":["DB", "DCAP"], "id": "R171", "label": "Validation of URIs by dereferencing (test 200?)", "ref": ["R-171-VALIDATION-OF-URIS-BY-DEREFERENCING", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/286"]},
          { "groups":["DB", "ericP"], "id": "R194", "label": "length, startsWith", "ref": ["R-194-PROVIDE-STRING-FUNCTIONS-FOR-RDF-LITERALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/370"]}
      ]},
    { "groups":["DB", "workshop", "small", "DCAP", "ericP"],  "id": "expressivity-valueSets", "label": "expressivity - value sets" , "desc": "one or more possible values for an object",
      "refinedBy": [
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R18" , "label": "value must be one of N choices", "ref": ["R-18-DISJUNCTION-OF-DATA-RANGES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/25"] ,
            "code": [
                ["shexc", "    ex:status (ex:assigned ex:unassigned)"],
                ["rs", "[ oslc:propertyDefinition ex:status ;\n        oslc:name \"status\" ;\n        oslc:allowedValue ex:assigned, ex:unassigned ;\n        oslc:occurs oslc:Exactly-one ]"],
                ["SPARQL", "    ex:status ?status\n    FILTER (datatype(?status) = ex:assigned ||\n            datatype(?status) = ex:unassigned)" ],
                ["owl", "SubClassOf ex:user only ({ex:assigned ex:unassigned})"]
            ],
           "refinedBy": [
               { "groups":["DB", "DCAP", "ericP"], "id": "R37" , "label": "value must be one of N Literalss", "ref": ["R-37-ALLOWED-VALUES-FOR-RDF-LITERALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/44"] , "code": [["shexc", "ex:status (\"assigned\" \"unassigned\")"]]},
               { "groups":["DB"], "duplicates": ["R37"], "id": "R39" , "label": "Membership of RDF literals in controlled vocabularies", "ref": ["R-39-MEMBERSHIP-OF-RDF-LITERALS-IN-CONTROLLED-VOCABULARIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/46"] , "code": [["shexc", "med:coding  (\"12345-67\" \"76543-21\")"]]},
               { "groups":["DB"], "duplicates": ["R37"], "id": "R92" , "label": "fixed literal value", "ref": ["R-92-LITERAL-VALUE-RESTRICTION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/112"] , "desc": "(degenerate form of one of N literals)"},
               { "groups":["DB", "DCAP", "ericP"], "id": "R30" , "label": "value must be one of N IRIs", "ref": ["R-30-ALLOWED-VALUES-FOR-RDF-OBJECTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/37"] , "code": [["shexc", "ex:status (ex:assigned ex:unassigned)"]]},
               { "groups":["DB"], "duplicates": ["R30"], "id": "R32" , "label": "Membership of RDF objects in controlled vocabularies", "ref": ["R-32-MEMBERSHIP-OF-RDF-OBJECTS-IN-CONTROLLED-VOCABULARIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/39"] , "code": [["shexc", "med:coding  (loinc:Systolic:Qn loinc:Systolic:Qn)"]]}
           ]}
      ]},
    { "groups":["DB", "workshop", "small", "DCAP", "ericP"],  "id": "expressivity-cardinality", "label": "expressivity - cardinality" , "desc": "like regex ?+*{2,5}",
      "refinedBy": [
          { "groups":["DB"], "id": "R80" , "label": "exact cardinality on non-literals", "ref": ["R-80-EXACT-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/87"] , "code": [["shexc", "bug:wingPosition @my:WingPos{4}"]]},
          { "groups":["DB"], "id": "R81" , "label": "min cardinality on non-literals", "ref": ["R-81-MINIMUM-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/88"] , "code": [["shexc", "bug:wingPosition @my:WingPos{2,}"]]},
          { "groups":["DB"], "id": "R82" , "label": "max cardinality on non-literals", "ref": ["R-82-MAXIMUM-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/89"] , "code": [["shexc", "bug:wingPosition @my:WingPos{,4}"]]},
          { "groups":["DB"], "id": "R83" , "label": "exact cardinality on literals", "ref": ["R-83-EXACT-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/90"] , "code": [["shexc", "bug:wingPosition LITERAL{4}"]]},
          { "groups":["DB"], "id": "R84" , "label": "min cardinality on literals", "ref": ["R-84-MINIMUM-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/91"] , "code": [["shexc", "bug:wingPosition LITERAL{2,}"]]},
          { "groups":["DB"], "id": "R85" , "label": "max cardinality on literals", "ref": ["R-85-MAXIMUM-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/92"] , "code": [["shexc", "bug:wingPosition LITERAL{,4}"]]},
          { "groups":["DB"], "id": "R74" , "label": "Exact qualified cardinality restrictions on object properties", "ref": ["R-74-EXACT-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/81"]},
          { "groups":["DB"], "id": "R75" , "label": "Minimum qualified cardinality restrictions on object properties", "ref": ["R-75-MINIMUM-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/82"]},
          { "groups":["DB", "DCAP"], "id": "R76" , "label": "Maximum qualified cardinality restrictions on object properties", "ref": ["R-76-MAXIMUM-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/83"]},
          { "groups":["DB"], "id": "R77" , "label": "Exact qualified cardinality restrictions on data properties", "ref": ["R-77-EXACT-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/84"]},
          { "groups":["DB", "DCAP"], "id": "R78" , "label": "Minimum qualified cardinality restrictions on data properties", "ref": ["R-78-MINIMUM-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/85"]},
          { "groups":["DB"], "id": "R79" , "label": "Maximum qualified cardinality restrictions on data properties", "ref": ["R-79-MAXIMUM-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/86"]},
          { "groups":["DB", "DCAP"], "id": "R49" , "label": "RDF literals having at most one language tag", "ref": ["R-49-RDF-LITERALS-HAVING-AT-MOST-ONE-LANGUAGE-TAG", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/56"]},
          { "groups":["DB"], "id": "R65" , "label": "FunctionalDataProperty", "ref": ["R-65-FUNCTIONAL-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/72"],
            "code":[
                ["shexc", " ex:status LITERAL"],
                ["shexc", " ex:status LITERAL{1}"]
            ]},
          { "groups":["DB", "ericP"], "id": "R66" , "label": "all or nothing groups", "ref": ["R-66-PROPERTY-GROUPS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/73"] , "desc": "(added to DCAP for nested R71)", "code": [["shexc", "( ex:reproducedBy @, ex:reproducedOn xsd:dateTime ) ?"]],
           "refinedBy": [
               { "groups":["DB", "DCAP"], "id": "R71" , "label": "Conditional properties", "ref": ["R-71-CONDITIONAL-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/78"]}
           ]},
          { "groups":["DB", "workshop", "small", "DCAP", "ericP"], "id": "R68" , "label": "Required property", "ref": ["R-68-REQUIRED-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/75"] ,
            "code": [["shexc", "    ex:user @my:user"],
                   ["shexc", "    ex:user @my:user{1}"],
                   ["rs", "            [ oslc:propertyDefinition ex:user ;\n        oslc:occurs oslc:Exactly-one ]"],
                   ["SPARQL", "    { SELECT (COUNT(*) AS ?statusCount) {\n        ex:status ?status\n    } HAVING (COUNT(*) = 1) }\n    { SELECT (COUNT(*) AS ?statusCount) {\n        ex:status ?status\n        ?status … # embed validation of my:user\n    } }" ],
                   ["owl", "    SubClassOf ex:user some my:user,\n           ex:user exactly 1 owl:Thing"]
                  ]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R69" , "label": "Optional property", "ref": ["R-69-OPTIONAL-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/76"] ,
            "code": [["shexc", "    ex:user @my:user?"],
                   ["shexc", "    ex:user @my:user{0,1}"],
                   ["rs", "      [ oslc:propertyDefinition ex:user ;\n        oslc:occurs oslc:Zero-or-one ]"],
                   ["SPARQL", "    { SELECT (COUNT(*) AS ?statusCount) {\n        ex:status ?status\n    } HAVING (COUNT(*) = 0 || COUNT(*) = 1) }\n    { SELECT (COUNT(*) AS ?statusCount) {\n        ex:status ?status\n        ?status … # embed validation of my:user\n    } }" ],
                   ["owl", "    SubClassOf ex:user some my:user,\n           ex:user min 0 owl:Thing,\n           ex:user max 1 owl:Thing"]
                  ]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "E07" , "status": "proposed", "label": "Nary property", "ref": ["E-?07-NARY-PROPERTY"] ,
            "code": [["shexc", "    ex:user @my:user*"],
                   ["shexc", "    ex:user @my:user{0,}"],
                   ["rs", "      [ oslc:propertyDefinition ex:user ;\n        oslc:occurs oslc:Zero-or-many ]"],
                   ["SPARQL", "    { SELECT (COUNT(*) AS ?statusCount) {\n        ex:status ?status\n    } HAVING (COUNT(*) = 1) }\n    { SELECT (COUNT(*) AS ?statusCount) {\n        ex:status ?status\n        ?status … # embed validation of my:user\n    } }" ],
                   ["owl", "    SubClassOf ex:user only my:user"]
                  ]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R70" , "label": "Repetable property", "ref": ["R-70-REPEATABLE-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/77"] ,
            "code": [["shexc", "    ex:user @my:user+"],
                   ["shexc", "    ex:user @my:user{1,}"],
                   ["rs", "      [ oslc:propertyDefinition ex:user ;\n        oslc:occurs oslc:One-or-many ]"],
                   ["SPARQL", "    { SELECT (COUNT(*) AS ?statusCount) {\n        ex:status ?status\n    } HAVING (COUNT(*) >= 1) }\n    { SELECT (COUNT(*) AS ?statusCount) {\n        ex:status ?status\n        ?status … # embed validation of my:user\n    } }" ],
                   ["owl", "    SubClassOf ex:user only my:user"]
                  ]},
          { "groups":["DB", "ericP"], "duplicates": ["R68", "R69", "R70"], "id": "E05" , "status": "proposed", "label": "min cardinality", "ref": ["R-?05-MIN-CARDINALITY"]       },
          { "groups":["DB", "ericP"], "duplicates": ["R68", "R69", "R70"], "id": "E06" , "status": "proposed", "label": "max cardinality", "ref": ["R-?06-MAX-CARDINALITY"]       }
      ]},
    { "groups":["DB", "DCAP", "ericP"],  "id": "expressivity-negation", "label": "expressivity - negation" , "desc": "exclusions of some constructs above",
      "refinedBy": [
          { "groups":["DB"], "id": "R19" , "label": "Negation of class expressions", "ref": ["R-19-NEGATION-OF-CLASS-EXPRESSIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/26"]},
          { "groups":["DB", "ericP"], "id": "R20" , "label": "excluded data ranges", "ref": ["R-20-NEGATION-OF-DATA-RANGES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/27"] , "code": [["shexc", "med:status .-med:deceased"]]},
          { "groups":["DB"], "id": "R200", "label": "literal object must not match", "ref": ["R-200-NEGATIVE-LITERAL-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/404"]},
          { "groups":["DB"], "id": "R33" , "label": "non-literal object must not match", "ref": ["R-33-NEGATIVE-OBJECT-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/40"]},
          { "groups":["DB"], "id": "R52" , "label": "exclusion of certain (object) predicates", "ref": ["R-52-NEGATIVE-OBJECT-PROPERTY-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/59"] , "code": [["shexc", "!ex:obsolescenceRecord @"]]},
          { "groups":["DB"], "id": "R53" , "label": "exclusion of certain (data) predicates", "ref": ["R-53-NEGATIVE-DATA-PROPERTY-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/60"] , "code": [["shexc", "!ex:obsolescenceDate xsd:dateTime"]]},
          { "groups":["DB", "ericP"], "duplicates": ["R52", "R53"], "id": "E06" , "status": "proposed", "label": "excluded object", "ref": ["R-?07-EXCLUDED-OBJECT"]       },
          { "groups":["DB"], "id": "R142", "label": "Negative ranges of rdf literal values", "ref": ["R-142-NEGATIVE-RANGES-OF-RDF-LITERAL-VALUES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/173"]},
          { "groups":["DB", "DCAP", "ericP"], "id": "R141", "label": "Negative pattern matching on rdf literals", "ref": ["R-141-NEGATIVE-PATTERN-MATCHING-ON-RDF-LITERALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/172"]},
          { "groups":["DB", "ericP"], "id": "R48" , "label": "Missing language tags", "ref": ["R-48-MISSING-LANGUAGE-TAGS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/55"], "desc": "test that there's no language tag"}
      ]},
    { "groups":["DB", "DCAP"],  "id": "expressivity-other", "label": "expressivity - other" , "desc": "higher-level functions on object value",
      "refinedBy": [
          { "groups":["DB"], "id": "R41" , "label": "Statistical computations", "ref": ["R-41-STATISTICAL-COMPUTATIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/48"]},
          { "groups":["DB"], "id": "R42" , "label": "Computations based on datatype", "ref": ["R-42-COMPUTATIONS-BASED-ON-DATATYPE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/49"]},
          { "groups":["DB", "DCAP"], "id": "R43" , "label": "Comparisons based on datatype", "ref": ["R-43-COMPARISONS-BASED-ON-DATATYPE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/50"]}
      ]},
    { "groups":["DB", "DCAP"],  "id": "expressivity-multi-record", "label": "expressivity - multi-record" , "desc": "mutual consistency between records",
      "refinedBy": [
          { "groups":["DB", "DCAP"], "id": "R1"  , "label": "inverse functional property/UNA", "ref": ["R-1-UNIQUENESS-OF-URIS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/1"]},
          { "groups":["DB"], "id": "R2"  , "label": "key shows up once in data", "ref": ["R-2-UNIQUE-INSTANCES (HasKey)", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/8"] , "code": [["shexc", "{ ?s :k1 ?o1 ; :k2 ?o2 } MINUS { ?s2 :k1 ?o1 ; :k2 ?o2 } FILTER (?s != ?s2)"]]},
          { "groups":["DB"], "id": "R57" , "label": "FunctionalObjectProperty", "ref": ["R-57-FUNCTIONAL-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/64"] , "code": [["shexc", "{ ?s :k1 ?o1 } MINUS { ?s2 :k1 ?o1 } FILTER (?s != ?s2)"]]},
          { "groups":["DB"], "id": "R62" , "label": "AsymmetricObjectProperty", "ref": ["R-62-ASYMMETRIC-OBJECT-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/69"] , "code": [["shexc", "{ ?s :p1 ?o1 } MINUS { ?o1 :p1 ?s }"]]}
      ]},
    { "groups":["DB", "workshop", "small", "ericP"],  "id": "protocol", "label": "protocol/invocation" , "desc": "how validations get run and reported",
      "refinedBy": [
          { "groups":["DB", "ericP"], "id": "R114", "label": "Provide rdf rest services for rdf validation", "ref": ["R-114-PROVIDE-RDF-REST-SERVICES-FOR-RDF-VALIDATION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/145"]},
          { "groups":["DB", "ericP"], "id": "R126", "label": "extensible protocol?", "ref": ["R-126-CUSTOMIZABLE-VALIDATION-PROCESS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/157"]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R27" , "label": "Class specific validation", "ref": ["R-27-CLASS-SPECIFIC-VALIDATION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/34"], "desc": "Tie validation constraints to a type."},
          { "groups":["DB"], "id": "R29" , "label": "Class specific range of rdf objects", "ref": ["R-29-CLASS-SPECIFIC-RANGE-OF-RDF-OBJECTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/36"]},
          { "groups":["DB"], "id": "R36" , "label": "Class specific range of rdf literals", "ref": ["R-36-CLASS-SPECIFIC-RANGE-OF-RDF-LITERALS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/43"]},
          { "groups":["DB", "workshop", "ericP"], "id": "R146", "label": "operate over DB", "ref": ["R-146-CONSTRAINT-VALIDATION-OF-RDF-INPUT-WITH-RESPECT-TO-EXISTING-RDF", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/202"]},
          { "groups":["DB", "ericP"], "id": "R150", "label": "RDF representation of validation results", "ref": ["R-150-RDF-REPRESENTATION-OF-VALIDATION-RESULTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/223"],
           "refinedBy": [
               { "groups":["DB", "ericP"], "id": "R153", "label": "RDF representation of constraint violations", "ref": ["R-153-RDF-REPRESENTATION-OF-CONSTRAINT-VIOLATIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/226"]}
           ]},
          { "groups":["DB", "ericP"], "id": "R151", "label": "Useful message validation results", "ref": ["R-151-USEFUL-MESSAGE-VALIDATION-RESULTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/224"]},
          { "groups":["DB", "ericP"], "id": "R189", "label": "Add annotations to constraint violation objects", "ref": ["R-189-ADD-ANNOTATIONS-TO-CONSTRAINT-VIOLATION-OBJECTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-189-ADD-ANNOTATIONS-TO-CONSTRAINT-VIOLATION-OBJECTS"]},
          { "groups":["DB", "small", "ericP"], "id": "R152", "label": "closed shapes", "ref": ["R-152-FIND-NOT-VALIDATED-TRIPLES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/225"], "desc": "stipulate that something have only the listed properties."},
          { "groups":["DB", "ericP"], "id": "R156", "label": "References to triples causing the constraint violations", "ref": ["R-156-REFERENCES-TO-TRIPLES-CAUSING-THE-CONSTRAINT-VIOLATIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/229"]},
          { "groups":["DB", "ericP"], "id": "R157", "label": "References to validation rules causing constraint violations", "ref": ["R-157-REFERENCES-TO-VALIDATION-RULES-CAUSING-CONSTRAINT-VIOLATIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/230"]},
          { "groups":["DB", "ericP"], "id": "R159", "label": "Explain reasons of constraint violations", "ref": ["R-159-EXPLAIN-REASONS-OF-CONSTRAINT-VIOLATIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-159-EXPLAIN-REASONS-OF-CONSTRAINT-VIOLATIONS"]},
          { "groups":["DB"], "id": "R155", "label": "Guidance how to become valid data", "ref": ["R-155-GUIDANCE-HOW-TO-BECOME-VALID-DATA", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-155-GUIDANCE-HOW-TO-BECOME-VALID-DATA"]},
          { "groups":["DB"], "id": "R166", "label": "RDF streaming validation", "ref": ["R-166-RDF-STREAMING-VALIDATION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/281"]},
          { "groups":["DB"], "id": "R167", "label": "Validate rdf in an html document constaining rdfa markup", "ref": ["R-167-VALIDATE-RDF-IN-AN-HTML-DOCUMENT-CONSTAINING-RDFA-MARKUP", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/282"]},
          { "groups":["DB", "workshop", "ericP"], "id": "R178", "label": "Associate constraints with vocabularies", "ref": ["R-178-ASSOCIATE-CONSTRAINTS-WITH-VOCABULARIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/315"]},
          { "groups":["DB", "ericP"], "id": "R179", "label": "Associate constraints with rdf documents", "ref": ["R-179-ASSOCIATE-CONSTRAINTS-WITH-RDF-DOCUMENTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/317"]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R180", "label": "Associate constraints with rdf datasets", "ref": ["R-180-ASSOCIATE-CONSTRAINTS-WITH-RDF-DATASETS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/320"]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R181", "label": "Associate constraints with rdf rest apis", "ref": ["R-181-ASSOCIATE-CONSTRAINTS-WITH-RDF-REST-APIS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/322"]},
          { "groups":["DB"], "id": "R185", "label": "distributable (federatable) validation algorithms", "ref": ["R-185-FEDERALIZED-RDF-VALIDATION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/334"]},
          { "groups":["DB"], "id": "R193", "label": "different reporting levels", "ref": ["R-193-MULTIPLE-CONSTRAINT-VALIDATION-EXECUTION-LEVELS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=R-193-MULTIPLE-EXECUTION-LEVELS"]}
      ]},
    { "groups":["DB", "workshop", "small", "ericP"],  "id": "implementability", "label": "implementability" , "desc": "what's required to implement validation",
      "refinedBy": [
          { "groups":["DB"], "id": "R137", "label": "Leverage on existing technologies", "ref": ["R-137-LEVERAGE-ON-EXISTING-TECHNOLOGIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/168"]},
          { "groups":["DB", "workshop", "small", "ericP"], "id": "R170", "label": "Validate data in SPARQL endpoints", "ref": ["R-170-VALIDATION-OF-SPARQL-ENDPOINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/285"]},
          { "groups":["DB", "ericP"], "id": "R168", "label": "Perform big datasets", "ref": ["R-168-PERFORM-BIG-DATASETS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/283"]}
      ]},
    { "groups":["DB"],  "id": "translations", "label": "translations" , "desc": "expression in other execution languages",
      "refinedBy": [
          { "groups":["DB"], "id": "R107", "label": "Transformations between constraint language and uml", "ref": ["R-107-TRANSFORMATIONS-BETWEEN-CONSTRAINT-LANGUAGE-AND-UML", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/138"]},
          { "groups":["DB"], "id": "R108", "label": "Transformations between constraint language and xml schema", "ref": ["R-108-TRANSFORMATIONS-BETWEEN-CONSTRAINT-LANGUAGE-AND-XML-SCHEMA", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/139"]},
          { "groups":["DB"], "id": "R109", "label": "Transformations between constraint language and ocl", "ref": ["R-109-TRANSFORMATIONS-BETWEEN-CONSTRAINT-LANGUAGE-AND-OCL", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/140"]},
          { "groups":["DB"], "id": "R110", "label": "Transformations between constraint language and sparql", "ref": ["R-110-TRANSFORMATIONS-BETWEEN-CONSTRAINT-LANGUAGE-AND-SPARQL", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/141"]}
      ]},
    { "groups":["DB"],  "id": "outreach", "label": "outreach" , "desc": "spec niceties to make it attractive to community",
      "refinedBy": [
          { "groups":["DB"], "id": "R162", "label": "Specification publicly available", "ref": ["R-162-SPECIFICATION-PUBLICLY-AVAILABLE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/235"]},
          { "groups":["DB"], "id": "R163", "label": "Implementation exists", "ref": ["R-163-IMPLEMENTATION-EXISTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/236"]},
          { "groups":["DB"], "id": "R164", "label": "Implementation publicly available", "ref": ["R-164-IMPLEMENTATION-PUBLICLY-AVAILABLE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/237"]},
          { "groups":["DB"], "id": "R165", "label": "Executable demos examples use cases", "ref": ["R-165-EXECUTABLE-DEMOS-EXAMPLES-USE-CASES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/238"]},
          { "groups":["DB"], "id": "R160", "label": "Open source implementation", "ref": ["R-160-OPEN-SOURCE-CONSTRAINT-VALIDATION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/233"]}
      ]},
    { "groups":["DB", "DCAP"],  "id": "unclassified", "label": "@@unclassified@@" , "desc": "misc and unknown",
      "refinedBy": [
          { "groups":["DB"], "id": "R93" , "label": "(what differences are desirable?)", "ref": ["R-93-DIFFERENCE-BETWEEN-CONSTRAINTS-ON-OBJECT-AND-DATA-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/113"]},
          { "groups":["DB"], "id": "R115", "label": "Closed world assumption cwa", "ref": ["R-115-CLOSED-WORLD-ASSUMPTION-CWA", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/146"]},
          { "groups":["DB"], "id": "R116", "label": "Unique name assumption una", "ref": ["R-116-UNIQUE-NAME-ASSUMPTION-UNA", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/147"]},
          { "groups":["DB"], "id": "R122", "label": "Trade off between dimensions expressivity complexity predictability", "ref": ["R-122-TRADE-OFF-BETWEEN-DIMENSIONS-EXPRESSIVITY-COMPLEXITY-PREDICTABILITY", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/153"]},
          { "groups":["DB"], "id": "R123", "label": "State", "ref": ["R-123-STATE", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/154"]},
          { "groups":["DB"], "id": "R34" , "label": "OWL class expression for referenced types?", "ref": ["R-34-AVAILABLE-CLASS-DEFINITION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/41"]},
          { "groups":["DB"], "id": "R154", "label": "Handle constraint violations (don't freak out?)", "ref": ["R-154-HANDLE-CONSTRAINT-VIOLATIONS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/227"]},
          { "groups":["DB"], "id": "R175", "label": "Discover constraints", "ref": ["R-175-DISCOVER-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/301"]},
          { "groups":["DB"], "id": "R183", "label": "Constraints about constraints", "ref": ["R-183-CONSTRAINTS-ABOUT-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/326"]},
          { "groups":["DB"], "id": "R149", "label": "Management of constraint schema evolution", "ref": ["R-149-MANAGEMENT-OF-CONSTRAINT-SCHEMA-EVOLUTION", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/205"]},
          { "groups":["DB", "DCAP"], "id": "R118", "label": "Namespace-sensitive constraints", "ref": ["R-118-NAMESPACE-SENSITIVE-CONSTRAINTS", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/149"], "desc": "can be implemented as stem matching" , "code": [["shexc", "foaf:~"]]},
          { "groups":["DB"], "id": "R144", "label": "By ref or by val properties ??", "ref": ["R-144-BY-REF-OR-BY-VAL-PROPERTIES", "http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/200"]}
      ]}
]