There are only a few requirements that were added by the DC validation
group (about 2 dozen). The majority of them were already in the database
and presumably were created by Thomas (Bosch) who created the database.
I spoke to him at the DC meeting last week and he agrees that he's the
right person to report on this. hopefully he can make that time.
kc
On 10/13/14, 4:44 PM, Eric Prud'hommeaux wrote:
> * Eric Prud'hommeaux <[log in to unmask]> [2014-10-04 12:15-0400]
>> I worked through the requirements at
>> http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=requirements/requirements-detailed
>> and am extremely impressed by the work you all have done!
>>
>> In an effort to contribute, I classified by some different (and
>> mutually exclusive) categories:
>
> I did this again, collaborating some with Peter, and created I
> hierarchical view:
> http://www.w3.org/2014/10/rdfvalreqs/
>
> I'd really like folks to tell me where I'm being wrong-headed.
> Also, could someone who knows these better than I come to the
> first RDF Data Shapes WG teleconference Wed 11am US Eastern.
> +1.617.761.6200 or sip:[log in to unmask]
> code: SHAPES# (742737#)
> irc: irc.w3.org #shapes
> all this is on
> https://www.w3.org/2014/data-shapes/wiki/Main_Page#Meetings
>
>
>> high-level language requirements: meta requirements about the language.
>> modularization/import: ability to include bits of constraints and schemas.
>> ui generation: annotations etc. to generate UIs (plus usability stuff).
>> reasoning/inference: things that only seemed to me to do inference.
>> RDF target constructs: what in RDF we want to constrain
>> expressivity - algebraic: conjunction, disjunction, etc.
>> expressivity - lexical patterns: catch "2014-10-BOGUS-DT"^^xsd:dateTime.
>> expressivity - value sets: one or more possible values for an object.
>> expressivity - cardinality: like regex ?+*{2,5} .
>> expressivity - negation: exclusions of some constructs above.
>> expressivity - other: higher-level functions on object value.
>> expressivity - multi-record: mutual consistency between records.
>> protocol/invocation: how validations get run and reported.
>> implementability: what's required to implement validation.
>> translations: expression in other execution languages.
>> outreach: spec niceties to make it attractive to community
>>
>> I flagged some possible overlaps with (R-103?) and (specialization of
>> R-112?).
>>
>> I don't know what to do with the strict inferences. I couldn't see how
>> they by themselves were validation requirements. I can imagine some of
>> them could contribute to triggers for validation but they seem like
>> more a means to an end rather than the end themselves.
>>
>> I've stuck hints, mostly from ShExC, in [[]]s. (I stole the one for
>> R-66 from the database.) The ones for multi-record are written in
>> SPARQL. These aren't strictly accurate but help get the idea across.
>>
>> high-level language requirements:
>> R-101-DECLARATIVE-CONSTRAINT-LANGUAGE
>> R-102-INTUITIVE-CONSTRAINT-LANGUAGE
>> R-195-CONSTRAINT-LANGUAGE-EASY-TO-CONSUME-BY-TOOLS
>> R-103-HIGH-LEVEL-CONSTRAINT-LANGUAGE
>> R-176-PROVIDE-HIGH-LEVEL-VOCABULARY-FOR-THE-MOST-COMMON-TYPES-OF-CONSTRAINTS (R-103?)
>> R-184-COMPACT-CONCRETE-SYNTAX
>> R-106-EXTENSIBLE-CONSTRAINT-LANGUAGE [[ %sparql{ ?s ex:reportedOn ?rpt . FILTER (?o > ?rpt) %} ]]
>> R-112-EXTENSIBLE-CONSTRAINTS
>> R-186-EXTEND-EXPRESSIVITY-WITH-SPARQL (specialization of R-112?)
>> R-104-CONSTRAINT-LANGUAGE-HAVING-IMPLEMENTATION-LANGUAGE
>> R-105-CONSTRAINT-LANGUAGE-TRANSLATABLE-TO-IMPLEMENTATION-LANGUAGE
>> R-117-CONTEXT-SENSITIVE-CONSTRAINTS [[ <Issue> { ex:reportedBy @<UserShape>, ex:reproducedBy @<EmployeeShape> } ]]
>> R-118-NAMESPACE-SENSITIVE-CONSTRAINTS
>> R-121-SPECIFY-ORDER-OF-RDF-RESOURCES (e.g. ordinals on Resource Shapes)
>> R-125-RDF-SHAPE-CHECKING
>> R-127-RDF-REPRESENTATION-OF-CONSTRAINTS
>> R-169-RDF-REPRESENTATION-OF-CONSTRAINT-LANGUAGE
>> R-128-HUMAN-UNDERSTANDABLE-CONCRETE-SYNTAXES-FORMULATING-CONSTRAINTS
>> R-129-MACHINE-UNDERSTANDABLE-CONCRETE-SYNTAXES-FORMULATION-CONSTRAINTS
>> R-130-CONCISE-CONCRETE-SYNTAXES-FORMULATING-CONSTRAINTS
>> R-132-MULTIPLE-CONCRETE-SYNTAXES-FORMULATING-CONSTRAINTS
>> R-67-CLASSIFY-PROPERTIES-ACCORDING-TO-OCCURRENCE (must, may, should)
>> R-72-RECOMMENDED-PROPERTIES (R-67?)
>> R-135-CONSTRAINT-LEVELS (must, may, should) (R-67?)
>> R-193-MULTIPLE-CONSTRAINT-VALIDATION-EXECUTION-LEVELS (R-67?)
>> R-149-MANAGEMENT-OF-CONSTRAINT-SCHEMA-EVOLUTION
>> R-161-ACCEPTABLE-PERFORMANCE-OF-VALIDATION-ALGORITHM
>> R-168-PERFORM-BIG-DATASETS
>> R-182-USE-KNOWN-CONCRETE-SYNTAX
>>
>> modularization/import: [[RelaxNG: external "pattern1.rnc"]]
>> R-136-MODULARITY-OF-CONSTRAINT-DEFINITIONS (#include)
>> R-144-BY-REF-OR-BY-VAL-PROPERTIES
>> R-145-INTEROPERABLE-CONSTRAINTS
>> R-147-DISTRIBUTION-OF-CONSTRAINT-SCHEMAS (addressable schemas)
>> R-148-DISTRIBUTED-VALIDATION-IN-COLLABORATIVE-ENVIRONMENTS (addressable constraints)
>> R-174-REUSE-CONSTRAINTS (R-148?)
>> R-99-STABLE-IDENTIFICATION-OF-CONSTRAINTS (R-148?)
>>
>> ui generation:
>> R-139-CONSTRAINT-LANGUAGE-DRIVES-USER-INTERFACE-FORM-GENERATION-AND-PRESENTATION
>> R-124-DESCRIBE-DATA (annotations)
>> R-134-SPECIFY-USAGE-OF-TERMS (annotations)
>> R-192-DEFINE-ANNOTATIONS-FOR-CONSTRAINTS
>> R-172-GENERATE-HUMAN-READABLE-DOCUMENTATION
>>
>> reasoning/inference:
>> R-113-INTERACTION-OF-VALIDATION-WITH-REASONING
>> R-198-RDF-VALIDATION-AFTER-INFERENCING
>> R-100-SUBSUMPTION
>> R-3-EQUIVALENT-CLASSES
>> R-4-EQUIVALENT-OBJECT-PROPERTIES
>> R-5-EQUIVALENT-DATA-PROPERTIES
>> R-6-EQUIVALENT-INDIVIDUALS
>> R-26-DATA-PROPERTY-DOMAIN
>> R-35-DATA-PROPERTY-RANGE
>> R-25-OBJECT-PROPERTY-DOMAIN
>> R-28-OBJECT-PROPERTY-RANGE
>> R-31-DEFAULT-VALUES-OF-RDF-OBJECTS
>> R-38-DEFAULT-VALUES-OF-RDF-LITERALS
>> R-54-SUB-OBJECT-PROPERTIES (subPropertyOf)
>> R-55-OBJECT-PROPERTY-PATHS (subPropertyOf ObjectPropertyChain)
>> R-56-INVERSE-OBJECT-PROPERTIES (owl:ObjectInverseOf)
>> R-58-INVERSE-FUNCTIONAL-OBJECT-PROPERTIES (InverseFunctionalObjectProperty)
>> R-59-REFLEXIVE-OBJECT-PROPERTIES (ReflexiveObjectProperty)
>> R-89-SELF-RESTRICTION (like R-59 with OPE)
>> R-60-IRREFLEXIVE-OBJECT-PROPERTIES (IrreflexiveObjectProperty)
>> R-61-SYMMETRIC-OBJECT-PROPERTIES (SymmetricObjectProperty)
>> R-63-TRANSITIVE-OBJECT-PROPERTIES (TransitiveObjectProperty)
>> R-64-SUB-DATA-PROPERTIES (SubDataPropertyOf)
>> R-86-EXISTENTIAL-QUANTIFICATION-ON-OBJECT-PROPERTIES
>> R-87-UNIVERSAL-QUANTIFICATION-ON-OBJECT-PROPERTIES
>> R-88-INDIVIDUAL-VALUE-RESTRICTION-ON-OBJECT-PROPERTIES
>> R-90-EXISTENTIAL-QUANTIFICATION-ON-DATA-PROPERTIES
>> R-91-UNIVERSAL-QUANTIFICATION-ON-DATA-PROPERTIES
>> R-94-POSITIVE-OBJECT-PROPERTY-ASSERTIONS
>> R-95-POSITIVE-DATA-PROPERTY-ASSERTIONS
>> R-190-SPECIFY-EXPECTED-BEHAVIOR-UNDER-ALL-POSSIBLE-ENTAILMENT-REGIMES
>>
>> RDF target constructs:
>> R-119-VALIDATION-ON-NAMED-GRAPHS
>> R-120-HANDLE-RDF-COLLECTIONS
>> R-24-PROVENANCE-CONSTRAINTS
>> R-47-LANGUAGE-TAG-MATCHING
>> R-133-MULTIPLE-CONCRETE-SYNTAXES-FORMULATING-DATA (comes for free with RDF, or is this about DSPs?)
>>
>> expressivity - algebraic:
>> R-15-CONJUNCTION-OF-CLASS-EXPRESSIONS [[ foaf:giveName LITERAL , foaf:familyName LITERAL ]]
>> R-16-CONJUNCTION-OF-DATA-RANGES (What's that mean under UNA?)
>> R-17-DISJUNCTION-OF-CLASS-EXPRESSIONS [[ foaf:giveName LITERAL | foaf:familyName LITERAL ]]
>> R-18-DISJUNCTION-OF-DATA-RANGES [[ ex:status (ex:unassigned ex:assigned) ]]
>> R-7-DISJOINT-CLASSES (Do these ↓↓↓ mean anything with UNA?)
>> R-8-DISJOINT-UNION-OF-CLASS-EXPRESSIONS
>> R-9-DISJOINT-OBJECT-PROPERTIES
>> R-11-DISJOINT-DATA-PROPERTIES-CLASS-SPECIFIC
>> R-12-DISJOINT-OBJECT-PROPERTIES-CLASS-SPECIFIC
>> R-13-DISJOINT-GROUP-OF-PROPERTIES-CLASS-SPECIFIC
>> R-14-DISJOINT-INDIVIDUALS
>>
>> expressivity - lexical patterns:
>> R-21-IRI-PATTERN-MATCHING-ON-RDF-SUBJECTS
>> R-23-IRI-PATTERN-MATCHING-ON-RDF-PROPERTIES [[ .-dc:creator-dc:date LITERAL ]]
>> R-22-IRI-PATTERN-MATCHING-ON-RDF-OBJECTS [[ med:coding loinc:~-loinc:Systolic:Qn ]]
>> R-46-CONSTRAINING-FACETS (literal constraints by XML Schema facets)
>> R-44-PATTERN-MATCHING-ON-RDF-LITERALS (regular expressions)
>> R-45-RANGES-OF-RDF-LITERAL-VALUES [[ med:systolic ucum:mmHg ]]
>> R-50-WHITESPACE-HANDLING-OF-RDF-LITERALS (no whitespace, or none at beginning/end)
>> R-51-HTML-HANDLING-OF-RDF-LITERALS (no HTML tags)
>> R-98-CHECK-VALIDITY-OF-URIS (http:///example.com/)
>> R-194-PROVIDE-STRING-FUNCTIONS-FOR-RDF-LITERALS (length, startsWith)
>>
>> expressivity - value sets:
>> R-30-ALLOWED-VALUES-FOR-RDF-OBJECTS [[ ex:status (ex:assigned ex:unassigned) ]]
>> R-37-ALLOWED-VALUES-FOR-RDF-LITERALS [[ ex:status ("assigned" "unassigned") ]]
>> R-32-MEMBERSHIP-OF-RDF-OBJECTS-IN-CONTROLLED-VOCABULARIES [[ med:coding (loinc:Systolic:Qn loinc:Systolic:Qn) ]]
>> R-39-MEMBERSHIP-OF-RDF-LITERALS-IN-CONTROLLED-VOCABULARIES [[ med:coding ("12345-67" "76543-21") ]]
>> R-92-LITERAL-VALUE-RESTRICTION (R-37?)
>>
>> expressivity - cardinality:
>> R-80-EXACT-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES [[ bug:wingPosition @my:WingPos{4} ]]
>> R-81-MINIMUM-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES [[ bug:wingPosition @my:WingPos{2,} ]]
>> R-82-MAXIMUM-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES [[ bug:wingPosition @my:WingPos{,4} ]]
>> R-83-EXACT-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES [[ bug:wingPosition LITERAL{4} ]]
>> R-84-MINIMUM-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES [[ bug:wingPosition LITERAL{2,} ]]
>> R-85-MAXIMUM-UNQUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES [[ bug:wingPosition LITERAL{,4} ]]
>> R-74-EXACT-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES
>> R-75-MINIMUM-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES
>> R-76-MAXIMUM-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-OBJECT-PROPERTIES
>> R-77-EXACT-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES
>> R-78-MINIMUM-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES
>> R-79-MAXIMUM-QUALIFIED-CARDINALITY-RESTRICTIONS-ON-DATA-PROPERTIES
>> R-49-RDF-LITERALS-HAVING-AT-MOST-ONE-LANGUAGE-TAG
>> R-65-FUNCTIONAL-DATA-PROPERTIES (FunctionalDataProperty) [[ ex:status . ]] [[ ex:status .{1} ]]
>> R-66-PROPERTY-GROUPS (all or nothing) [[ ( ex:reproducedBy @, ex:reproducedOn xsd:dateTime ) ? ]]
>> R-71-CONDITIONAL-PROPERTIES (superset of R-66?)
>> R-68-REQUIRED-PROPERTIES [[ ex:status . ]] [[ ex:status .{1} ]]
>> R-69-OPTIONAL-PROPERTIES [[ ex:status .? ]] [[ ex:status .{0,1} ]]
>> R-70-REPEATABLE-PROPERTIES [[ ex:related .* ]] [[ ex:status .{0,} ]]
>>
>> expressivity - negation:
>> R-19-NEGATION-OF-CLASS-EXPRESSIONS
>> R-20-NEGATION-OF-DATA-RANGES [[ med:status .-med:deceased ]]
>> R-33-NEGATIVE-OBJECT-CONSTRAINTS (R-20?)
>> R-52-NEGATIVE-OBJECT-PROPERTY-CONSTRAINTS [[ !ex:obsolescenceRecord @<ObsRec> ]]
>> R-96-NEGATIVE-OBJECT-PROPERTY-ASSERTIONS (R-52?)
>> R-200-NEGATIVE-LITERAL-CONSTRAINTS (R-52?)
>> R-53-NEGATIVE-DATA-PROPERTY-CONSTRAINTS [[ !ex:obsolescenceDate xsd:dateTime ]]
>> R-97-NEGATIVE-DATA-PROPERTY-ASSERTIONS (R-53?)
>> R-142-NEGATIVE-RANGES-OF-RDF-LITERAL-VALUES
>> R-141-NEGATIVE-PATTERN-MATCHING-ON-RDF-LITERALS
>> R-48-MISSING-LANGUAGE-TAGS
>>
>> expressivity - other:
>> R-41-STATISTICAL-COMPUTATIONS
>> R-42-COMPUTATIONS-BASED-ON-DATATYPE
>> R-43-COMPARISONS-BASED-ON-DATATYPE
>>
>> expressivity - multi-record:
>> R-2-UNIQUE-INSTANCES (HasKey) [[ { ?s :k1 ?o1 ; :k2 ?o2 } MINUS { ?s2 :k1 ?o1 ; :k2 ?o2 } FILTER (?s != ?s2) ]]
>> R-57-FUNCTIONAL-OBJECT-PROPERTIES (FunctionalObjectProperty) [[ { ?s :k1 ?o1 } MINUS { ?s2 :k1 ?o1 } FILTER (?s != ?s2) ]]
>> R-62-ASYMMETRIC-OBJECT-PROPERTIES (AsymmetricObjectProperty) [[ { ?s :p1 ?o1 } MINUS { ?o1 :p1 ?s } ]]
>>
>> protocol/invocation:
>> R-114-PROVIDE-RDF-REST-SERVICES-FOR-RDF-VALIDATION
>> R-126-CUSTOMIZABLE-VALIDATION-PROCESS
>> R-143-CONDITIONAL-TYPED-VALIDATION (engage by rdf:type)
>> R-191-SHAPES-RELATED-TO-TYPES (R-143?)
>> R-197-ATTACH-CONSTRAINTS-TO-CLASSES (R-143?)
>> R-27-CLASS-SPECIFIC-VALIDATION
>> R-29-CLASS-SPECIFIC-RANGE-OF-RDF-OBJECTS
>> R-36-CLASS-SPECIFIC-RANGE-OF-RDF-LITERALS
>> R-146-CONSTRAINT-VALIDATION-OF-RDF-INPUT-WITH-RESPECT-TO-EXISTING-RDF (operate over DB)
>> R-150-RDF-REPRESENTATION-OF-VALIDATION-RESULTS
>> R-153-RDF-REPRESENTATION-OF-CONSTRAINT-VIOLATIONS (subset of R-150?)
>> R-151-USEFUL-MESSAGE-VALIDATION-RESULTS
>> R-189-ADD-ANNOTATIONS-TO-CONSTRAINT-VIOLATION-OBJECTS
>> R-152-FIND-NOT-VALIDATED-TRIPLES (related to closed shapes)
>> R-155-GUIDANCE-HOW-TO-BECOME-VALID-DATA
>> R-156-REFERENCES-TO-TRIPLES-CAUSING-THE-CONSTRAINT-VIOLATIONS
>> R-157-REFERENCES-TO-VALIDATION-RULES-CAUSING-CONSTRAINT-VIOLATIONS
>> R-158-SEVERITY-LEVELS-OF-CONSTRAINT-VIOLATIONS
>> R-159-EXPLAIN-REASONS-OF-CONSTRAINT-VIOLATIONS
>> R-166-RDF-STREAMING-VALIDATION
>> R-167-VALIDATE-RDF-IN-AN-HTML-DOCUMENT-CONSTAINING-RDFA-MARKUP
>> R-178-ASSOCIATE-CONSTRAINTS-WITH-VOCABULARIES
>> R-179-ASSOCIATE-CONSTRAINTS-WITH-RDF-DOCUMENTS
>> R-180-ASSOCIATE-CONSTRAINTS-WITH-RDF-DATASETS
>> R-181-ASSOCIATE-CONSTRAINTS-WITH-RDF-REST-APIS
>> R-185-FEDERALIZED-RDF-VALIDATION (@@ federated)
>>
>> implementability:
>> R-137-LEVERAGE-ON-EXISTING-TECHNOLOGIES
>> R-138-CONSTRAINT-LANGUAGE-COMPATIBLE-WITH-SPARQL
>> R-188-EXPRESSIVITY-OF-CONSTRAINT-LANGUAGE-EQUIVALENT-TO-SPARQL (R-138?)
>> R-199-RDF-VALIDATION-MUST-COMPILE-DOWN-TO-SPARQL (R-138?)
>> R-131-OWL-AS-CONCRETE-SYNTAX-FORMULATING-CONSTRAINTS
>> R-170-VALIDATION-OF-SPARQL-ENDPOINTS
>>
>> translations:
>> R-107-TRANSFORMATIONS-BETWEEN-CONSTRAINT-LANGUAGE-AND-UML
>> R-108-TRANSFORMATIONS-BETWEEN-CONSTRAINT-LANGUAGE-AND-XML-SCHEMA
>> R-109-TRANSFORMATIONS-BETWEEN-CONSTRAINT-LANGUAGE-AND-OCL
>> R-110-TRANSFORMATIONS-BETWEEN-CONSTRAINT-LANGUAGE-AND-SPARQL
>>
>> outreach:
>> R-162-SPECIFICATION-PUBLICLY-AVAILABLE
>> R-163-IMPLEMENTATION-EXISTS
>> R-164-IMPLEMENTATION-PUBLICLY-AVAILABLE
>> R-165-EXECUTABLE-DEMOS-EXAMPLES-USE-CASES
>>
>> @@unclassified@@
>> R-93-DIFFERENCE-BETWEEN-CONSTRAINTS-ON-OBJECT-AND-DATA-PROPERTIES (what differences are desirable?)
>> R-111-BASIC-USE-CASES-COVERED-BY-CONSTRAINT-LANGUAGE
>> R-115-CLOSED-WORLD-ASSUMPTION-CWA
>> R-116-UNIQUE-NAME-ASSUMPTION-UNA
>> R-122-TRADE-OFF-BETWEEN-DIMENSIONS-EXPRESSIVITY-COMPLEXITY-PREDICTABILITY
>> R-123-STATE (??)
>> R-140-SEPARATE-ONTOLOGIES-FROM-VALIDATION-SCHEMAS
>> R-173-SEPARATE-CONSTRAINTS-FROM-VOCABULARIES-AND-ONTOLOGIES (R-140?)
>> R-201-SEPARATION-OF-CONSTRAINTS-AND-ONTOLOGY-SEMANTICS
>> R-34-AVAILABLE-CLASS-DEFINITION (OWL class expression for referenced types?)
>> R-154-HANDLE-CONSTRAINT-VIOLATIONS (??)
>> R-160-OPEN-SOURCE-CONSTRAINT-VALIDATION (??)
>> R-171-VALIDATION-OF-URIS-BY-DEREFERENCING (test 200?)
>> R-175-DISCOVER-CONSTRAINTS
>> R-177-DEFINE-SEMANTICS-FOR-CONSTRAINTS (definition in other languages, e.g. SPARQL)
>> R-187-DEFINE-SEMANTICS-OF-CONSTRAINTS-IN-TERMS-OF-SPARQL (specialization of R-177?)
>> R-183-CONSTRAINTS-ABOUT-CONSTRAINTS
>>
>>
>> --
>> -ericP
>>
>> office: +1.617.599.3509
>> mobile: +33.6.80.80.35.59
>>
>> ([log in to unmask])
>> Feel free to forward this message to any list for any purpose other than
>> email address distribution.
>>
>> There are subtle nuances encoded in font variation and clever layout
>> which can only be seen by printing this message on high-clay paper.
>
--
Karen Coyle
[log in to unmask] http://kcoyle.net
m: 1-510-435-8234
skype: kcoylenet/+1-510-984-3600
|