Hi Antoine,
now I see, thanks for reformulating.
In fact, I am doing a trick, but if I reveal it now it won't be magic anymore... ;-)
1.
-----
Each resource which should be validated needs to have this triple:
:resource rdf:type owl:Thing .
As every individual in the OWL world is a member of the class owl:Thing, this statement is semantically correct.
But what we also could do is using other classes such as :ToValidate.
These triples do not have to be stated in future version of the RDF validator, as they can also be inferred automatically if wished.
2.
-----
I specified a SPIN mapping for each constrain language, one for OWL 2 and one for DSP (the next logical choice would be ShEx).
For each constraint I define a SPIN construct template.
In the following example for the OWL 2 construct 'Object Property Domain':
owl2spin:ObjectPropertyDomain
a spin:ConstructTemplate ;
rdfs:subClassOf spin:ConstructTemplates ;
spin:labelTemplate "Axioms - Object Property Axioms - Object Property Domain" ; # spin:violationSource
spin:body [
rdf:type sp:Construct ;
...
] .
3.
-----
But how and when id this SPIN construct template invoked?
Within the same SPIN mapping document I specify these triples for each constraint:
owl:Thing
spin:constraint
[ a owl2spin:ObjectPropertyDomain ] .
This means that the OWL 2 constraint 'Object Property Domain' is validated againts each individuals which is of the type owl:Thing
and exactly this is the glue.
4.
-----
For each owl:Thing individual all OWL 2 constraints are validated according to the same principle.
Within the SPIN construct templates the individual constraints are evaluated using SPARQL construct queries constructing constraint violation triples when specific conditions are fulfilled.
Nothing really magic ...
Cheers,
Thomas
--
Thomas Bosch, M.Sc. (TUM)
PhD Student
GESIS - Leibniz Institute for the Social Sciences
Social Science Metadata Standards
Visitors Address: B2,1, D-68159 Mannheim
Postal Address: P.O.Box 12 21 55, D-68072 Mannheim
Tel: + 49 (0) 621 / 1246-271
Fax: + 49 (0) 621 / 1246-100
Web: http://www.gesis.org
Website: http://boschthomas.blogspot.com/
GitHub: https://github.com/boschthomas/PhD
________________________________________
Von: DCMI Architecture Forum [[log in to unmask]]" im Auftrag von "Antoine Isaac [[log in to unmask]]
Gesendet: Montag, 29. September 2014 16:55
An: [log in to unmask]
Betreff: Re: AW: AW: AW: [RDF AP] Action on examples in constraint languages
Hi Thomas,
Let me try to reformulate it.
Given my constraint
[
oer:addressCountry a owl:ObjectProperty .
oer:addressCountry rdfs:range oer:Country .
]
how come that your tool was able to make a message that contains the string "Axioms - Object Property Axioms - Object Property Range"???
The documents that you've cited [1,2] don't do the trick. These are documents for humans. You need some machine-readble dictionary (in the form of an RDF file, an XML file, or even static declarations in a Java class).
Antoine
On 9/29/14 4:43 PM, Bosch, Thomas wrote:
> Hi Antoine,
>
> I did not get your point regarding your last paragraph:
>
> For the fact that the validator recognizes the type of constraint, well now I'd be very curious to see where/what is the bridge between the constraints we make and the categories at [1] and [2]. The categorizations (ie. the fact that a given constraint is a "Class membership constraint") in those pages are not immediately machine-actionable, as far as I can tell!
>
>
> Best,
> Thomas
>
> --
> Thomas Bosch, M.Sc. (TUM)
> PhD Student
> GESIS - Leibniz Institute for the Social Sciences
> Social Science Metadata Standards
> Visitors Address: B2,1, D-68159 Mannheim
> Postal Address: P.O.Box 12 21 55, D-68072 Mannheim
> Tel: + 49 (0) 621 / 1246-271
> Fax: + 49 (0) 621 / 1246-100
> Web: http://www.gesis.org
> Website: http://boschthomas.blogspot.com/
> GitHub: https://github.com/boschthomas/PhD
>
>
> ________________________________________
> Von: DCMI Architecture Forum [[log in to unmask]]" im Auftrag von "Antoine Isaac [[log in to unmask]]
> Gesendet: Montag, 29. September 2014 16:26
> An: [log in to unmask]
> Betreff: Re: AW: AW: [RDF AP] Action on examples in constraint languages
>
> Hi Thomas,
>
> Really sorry for not answering sooner...
>
> So this answers my question on the difference between our examples. Thanks!
> I will have a look at the re-worked examples and try to integrate them on the requirement pages and put them on a wiki, which may be better for keeping track of discussions (and indeed writing a wiki page was my original action).
>
> On dsp:standalone, ok I see, and since it is optional indeed it's better to leave it out, as it doesn't seem to be needed for addressing the requirement as it was expressed. The same will apply later to the extra infer-able triples that are needed for validation!
>
> For the fact that the validator recognizes the type of constraint, well now I'd be very curious to see where/what is the bridge between the constraints we make and the categories at [1] and [2]. The categorizations (ie. the fact that a given constraint is a "Class membership constraint") in those pages are not immediately machine-actionable, as far as I can tell!
>
> Cheers,
>
> Antoine
>
> On 9/22/14 10:01 AM, Bosch, Thomas wrote:
>> Hi,
>>
>> thank you Antoine for your questions.
>>
>> differences between Antoine's DSP example and my DSP example which can be used for the validator
>> -----
>>
>> - Antoine uses the XML serialization, I use the RDF serialization of DSP.
>> - additionally some RDF triples are needed for validation, which can be automatically inferred in future versions of the validator: every individual for which constraints have to be checked has to be of the type owl:Thing
>>
>>
>> Actually even I am not sure what the dsp:standalone and dsp:statementTemplate mean (and why there's a dsp:maxOccur set to 5) in "R-28-OBJECT-PROPERTY-RANGE - DSP example". 1.ttl" )
>> -----
>>
>> dsp:standalone (see DSP constraint 5.2 in [1]) means that instances of the class ex:PostalAddress (dsp:resourceClass) are allowed to occur standalone, i.e. without being the value of a property.
>> As dsp:standalone is optional, I removed it from the examples.
>>
>> dsp:statementTemplate may be either a dsp:NonLiteralStatementTemplate or a dsp:LiteralStatementTemplate.
>> With a dsp:NonLiteralStatementTemplate you can define constraints for object properties (pointing from individuals to individuals) and
>> with dsp:LiteralStatementTemplate you can state constraints on data properties (pointing from individuals to literals such as strings).
>>
>> Sorry for dsp:maxOccur = "5", I set it now to "infinity" (see constraints 5.4 and 6.2 in [1]).
>>
>>
>> It seems that the validator has recognized the type of constraint violation, even though the name was not in the data input. Is there some pre-defined knowledge based of constraint patterns?
>> -----
>>
>> Indeed the RDF validator recognizes the type of constraint validation according to the structure of your constraints and your data.
>> For OWL 2 I used the structural specification of OWL 2 [2] and for DSP I used this specification [1].
>>
>> Hope I could answer your questions adequately.
>> Attached you find the changed DSP examples.
>>
>>
>> Cheers,
>> Thomas
>>
>> [1] http://dublincore.org/documents/2008/03/31/dc-dsp/
>> [2] http://www.w3.org/TR/owl2-syntax/
>>
>>
>> --
>> Thomas Bosch, M.Sc. (TUM)
>> PhD Student
>> GESIS - Leibniz Institute for the Social Sciences
>> Social Science Metadata Standards
>> Visitors Address: B2,1, D-68159 Mannheim
>> Postal Address: P.O.Box 12 21 55, D-68072 Mannheim
>> Tel: + 49 (0) 621 / 1246-271
>> Fax: + 49 (0) 621 / 1246-100
>> Web: http://www.gesis.org
>> Website: http://boschthomas.blogspot.com/
>> GitHub: https://github.com/boschthomas/PhD
>>
>>
>> ________________________________________
>> Von: DCMI Architecture Forum [[log in to unmask]]" im Auftrag von "Antoine Isaac [[log in to unmask]]
>> Gesendet: Sonntag, 21. September 2014 21:46
>> An: [log in to unmask]
>> Betreff: Re: AW: [RDF AP] Action on examples in constraint languages
>>
>> Hi Thomas,
>>
>> Just to clarify: I know the relation, I just want to make sure that everyone on the list does get the right info ;-)
>>
>> Actually even I am not sure what the dsp:standalone and dsp:statementTemplate mean (and why there's a dsp:maxOccur set to 5) in "R-28-OBJECT-PROPERTY-RANGE - DSP example". 1.ttl" )
>>
>> Also, I was really happy to see my first constraint violation in the OWL2 validation demo :-) but I'm still a bit puzzled by the output:
>> [
>> Constraint Violations
>> root http://www.example.org/ex#amsterdam
>> message ObjectPropertyRange ( http://www.example.org/oer#addressCountry http://www.example.org/oer#Country )
>> source Axioms - Object Property Axioms - Object Property Range
>> path http://www.example.org/oer#addressCountry
>> ]
>>
>> It seems that the validator has recognized the type of constraint violation, even though the name was not in the data input. Is there some pre-defined knowledge based of constraint patterns?
>>
>> Cheers,
>>
>> Antoine
>>
>> On 9/21/14 9:17 PM, Antoine Isaac wrote:
>>> Hi Thomas,
>>>
>>> How do these differ from what I've done?
>>>
>>> Best,
>>>
>>> Antoine
>>>
>>> On 9/21/14 8:15 PM, Bosch, Thomas wrote:
>>>> Hello everybody,
>>>>
>>>> attached you find some files containing DSP and OWL constraints as well as valid and invalid data.
>>>> You can use these files to validate this constraint:
>>>>
>>>> R-28-OBJECT-PROPERTY-RANGE
>>>> http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/35
>>>>
>>>> Feel free to play with the RDF validator (purl.org/net/rdfval-demo), in order to validate the constraints.
>>>> The fastest way is to upload each of these files using the upload functionality (DSP upload or OWL 2 upload).
>>>>
>>>>
>>>> Cheers,
>>>> Thomas
>>>>
>>>> --
>>>> Thomas Bosch, M.Sc. (TUM)
>>>> PhD Student
>>>> GESIS - Leibniz Institute for the Social Sciences
>>>> Social Science Metadata Standards
>>>> Visitors Address: B2,1, D-68159 Mannheim
>>>> Postal Address: P.O.Box 12 21 55, D-68072 Mannheim
>>>> Tel: + 49 (0) 621 / 1246-271
>>>> Fax: + 49 (0) 621 / 1246-100
>>>> Web: http://www.gesis.org
>>>> Website: http://boschthomas.blogspot.com/
>>>> GitHub: https://github.com/boschthomas/PhD
>>>>
>>>>
>>>> ________________________________________
>>>> Von: DCMI Architecture Forum [[log in to unmask]]" im Auftrag von "Antoine Isaac [[log in to unmask]]
>>>> Gesendet: Dienstag, 16. September 2014 23:52
>>>> An: [log in to unmask]
>>>> Betreff: [RDF AP] Action on examples in constraint languages
>>>>
>>>> Hi everyone,
>>>>
>>>> For the two actions:
>>>>
>>>> ACTION: Antoine to send an email to the list suggesting to record example in constraint languages in the database.
>>>> ACTION: Antoine to do it for two easy examples and two hard ones, from Stefanie's list, and put it on the wiki.
>>>>
>>>> In Stefanie's email, I've picked the following two 'easy' ones:
>>>>
>>>> R-28-OBJECT-PROPERTY-RANGE
>>>> http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/35
>>>>
>>>> R-68-REQUIRED-PROPERTIES
>>>> http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/75
>>>>
>>>> Two 'hard' ones:
>>>>
>>>> R-25-OBJECT-PROPERTY-DOMAIN
>>>> http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/32
>>>>
>>>> R-26-DATA-PROPERTY-DOMAIN
>>>> http://lelystad.informatik.uni-mannheim.de/rdf-validation/?q=node/33
>>>>
>>>>
>>>> My additions are directly in the database, not on the wiki. I guess that with the discussion we're having, the attention is rather focused on the database now. We can still put stuff on the wiki later.
>>>>
>>>> For the two easy ones, I have just added some examples, with counter-examples (data that is not ok according to the constraint).
>>>> For the two last ones, I've proposed an alternative definition, and examples.
>>>>
>>>> The examples come in DSP and OWL (with a closed world assumption).
>>>> Note that the last two ones may not have a DSP expression.
>>>>
>>>> Best,
>>>>
>>>> Antoine
>>>>
|