Warning:
This wiki has been archived and is now read-only.
Rawreqs
From RDF Data Shapes Working Group
[ { "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"]} ]} ]