180 likes | 368 Views
RDF Validation in a Linked Data world A vision beyond structural and value range validation . Miguel Esteban Gutiérrez, Raúl García Castro, Nandana Mihindukulasooriya. RDF Validation Workshop September 10 th -11 th , 2013. Linked Data & the ALM iStack Project. Objective:
E N D
RDF Validation in a Linked Data worldA vision beyond structural and value range validation Miguel Esteban Gutiérrez, Raúl García Castro, Nandana Mihindukulasooriya RDF Validation Workshop September 10th-11th, 2013
Linked Data & the ALM iStack Project • Objective: To foster the adoption of Linked Data technologies as the means for facilitating application integration in enterprise-grade environments in the ALM domain • Challenge: Provide the means for ensuring that the data exchanged between the applications of the enterprise portfolio is consistent and valid whilst keeping the integrity of the data in each of these applications
Use case Simplified Corrective Maintenance Process http://sites.google.com/a/centeropenmiddleware.com/alm-istack/deliverables/R1.3_ALM_iStack_Proof-of-Concept.pdf
Use case scenario Remote API UserInterface Change Management OrganizationManagement ALM Application LDP Data model Requirement Management Asset Management Quality Management Configuration Management
Linked Data Application“MaturityModel” • Linked Data Enabled Application • Expose all or part of its data following the Linked Data principles • The data exposed is “sound and complete” from the application perspective • Linked Data Capable Application • Consumes data published following the Linked Data principles • Linked Data Aware Application • Linked Data Enabled and Linked Data Capable application • Capable of integrating its own data with other Linked Data Require RDF validationprocess
Designingthe RDF validationprocess • Data sourcefactors • Behavioralaspects • Structuralaspects • Procedurefactors • Data aspects • Temporal aspects • Contextfactors • Operationalaspects
Data sourcefactors (I) • Dynamics • Static data (i.e., periodic bug reports) • One-time validation (i.e., validationcaching) • Variable data (i.e., live data) • Timelyupdated data (i.e., statistical bug reports) • Periodicvalidation(i.e., validationcaching + validationtriggering) • Randomlyupdated data (i.e., a particular bug) • Per-operationvalidation
Data sourcefactors (II) • Publicationstrategy • Disallowinlineresourcedefinition • Allowinlineresourcedefinition • Resourceaggregationpattern • Resourcecompositionpattern products:prod3231 a ai:Product; dc:title "SEALS Platform"@en; ai:isInvolvedInroles:role1002; ai:hasWorkingGroupwg:wg44. gethttp://www.example.org/oms/ldp/products/prod3231 @prefix dc: <http://purl.org/dc/elements/1.1/> . @prefixfoaf: <http://xmlns.com/foaf/0.1/> . @prefixai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> . @prefixproducts: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/products/> . @prefixcomp: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/products/prod3231#> . @prefix roles: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/roles/> . @prefixwg: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/groups/> . @prefixpersons: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/persons/> . products:prod3231 a ai:Product; dc:title"SEALS Platform"@en; ai:isInvolvedInroles:role1002; ai:hasWorkingGroup wg:wg44. wg:wg44 a foaf:Group; ai:belongsToWorkAreaai:workAreaDevelopment; ai:member person:pr82; ai:worksInProduct products:prod3231. roles:role1002 a ai:ProductRole; ai:involvesai:roleMaintainer; ai:involves products:prod3231; ai:involves person:pr82. products:prod3231 a ai:Product; dc:title"SEALS Platform"@en; ai:isInvolvedIncomp:mpr; ai:hasWorkingGroupcomp:wg. comp:wga foaf:Group; ai:belongsToWorkAreaai:workAreaDevelopment; ai:member person:pr82; ai:worksInProduct products:prod3231. comp:mpra ai:ProductRole; ai:involvesai:roleMaintainer; ai:involves products:prod3231; ai:involves person:pr82.
Data sourcefactors (III) • Provisionstrategy • Raw data • Materialized data • Partialmaterialization • Fullmaterialization gethttp://www.example.org/oms/ldp/versions/ver1244 versions:ver1244 a ai:Version; oslc_asset:version"1.0"^^xsd:string; ai:isVersionOfproducts:prod3231. @prefixoslc_asset: <http://open-services.net/ns/asset#> . @prefixxsd: <http://www.w3.org/2001/XMLSchema#> . @prefixai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> . @prefixproducts: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/products/> . @prefixversions: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/versions/> . versions:ver1244 a ai:Version, oslc_asset:Asset; oslc_asset:version "1.0"^^xsd:string; ai:isVersionOf products:prod3231. versions:ver1244 a ai:Version, oslc_asset:Asset; oslc_asset:version "1.0"^^xsd:string; ai:isVersionOf products:prod3231. products:prod3231 a ai:Product; ai:hasVersion versions:ver1244.
Data sourcefactors (IV) • Access control • Granularity @prefixxsd: <http://www.w3.org/2001/XMLSchema#> . @prefixdcterms: <http://purl.org/dc/terms/> . @prefixoslc_cm: <http://open-services.net/ns/cm#> . @prefixoslc_asset: <http://open-services.net/ns/asset#> . @prefixai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> . @prefixbugs: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/bugs/> . @prefixversions: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/productversions/> . @prefixusers: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/users/> . bugs:b43245 a ai:ClientDefect; dcterms:title "Bugzilla adapterbuildisbroken"^^xsd:string; dcterms:description "Bugzilla adapterbuildfailsdueto a test failure"^^xsd:string; dcterms:creator users:us09 ; oslc_asset:relatedAssetversions:ver1244 ; oslc_cm:statusai:statusNew; dcterms:contributor users:us4331 ; ai:relatedIncident <http://example.org/incidents/1> . Fine-grainedaccess (public) Coarse-grainedaccess Fine-grainedaccess (logged)
Data sourcefactors (V) • Resourcestatemanagement • Uniquestate • Differentiatedstate (i.e., contextaware) gethttp://www.example.org/oms/ldp/persons/me @prefixai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> . @prefixfoaf: <http://xmlns.com/foaf/0.1/> . @prefixxsd: <http://www.w3.org/2001/XMLSchema#> . @prefix roles: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/roles/> . @prefixwg: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/groups/> . @prefixpersons: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/persons/> . persons:mea foaf:Person; foaf:name"Jane Doe"@en; foaf:mbox"jane.doe@email.com"^^xsd:string; ai:isMemberOf wg:wg173; ai:hasCredentials[ a ai:Credentials; ai:hasUsername"jane"^^xsd:string; ai:hasPassword"J@n3"^^xsd:string ]; ai:isInvolvedInroles:role310. persons:mea foaf:Person; foaf:name"John Doe"@en; foaf:mbox"john.doe@email.com"^^xsd:string; ai:isMemberOf wg:wg44; ai:hasCredentials[ a ai:Credentials; ai:hasUsername"john"^^xsd:string; ai:hasPassword"J0hn"^^xsd:string ]; ai:isInvolvedIn roles:role1002. John Doeloggedon Jane Doeloggedon
Procedurefactors (I) • Number of data sources Identity Management Service Version Resource Product Resource User Resource Entity Resource Version Resource Product Resource Context Resource Person Resource Product Product Version Entity Version foaf:Person Context foaf:Person Product Role Bug Resource foaf:Group Organization Management System Defect Issue Tracker Adapter
Procedurefactors (II) • Data completeness • Complete • Closedworldreasoning • Local-closedworldreasoning • Incomplete • Open worldreasoning
Procedurefactors (III) • Validationscope bugs:b43245 a ai:ClientDefect; dcterms:title "Bugzilla adapterbuildisbroken"^^xsd:string; dcterms:description "Bugzilla adapterbuildfailsdueto a test failure"^^xsd:string; dcterms:creator users:us09; oslc_asset:relatedAsset versions:ver1244 ; oslc_cm:statusai:statusNew; dcterms:contributor users:us4331 ; ai:relatedIncident <http://example.org/incidents/1> . DB users:us4331 a foaf:Person; foaf:name"John Doe"@en; foaf:mbox"john.doe@email.com"^^xsd:string; ai:isMemberOf wg:wg44; ai:hasCredentials[ a ai:Credentials; ai:hasUsername"jhon"^^xsd:string; ai:hasPassword"Jh0n"^^xsd:string ]; ai:isInvolvedIn roles:role1002. versions:ver1244 a ai:Version; oslc_asset:version"1.0"^^xsd:string; ai:isVersionOfproducts:prod3231. products:prod3231 a ai:Product; dc:title"SEALS Platform"@en; ai:isInvolvedIn roles:role1002; ai:hasWorkingGroup wg:wg44. roles:role1002 a ai:ProductRole; ai:involvesai:roleMaintainer; ai:involves products:prod3231; ai:involvesusers:us4331. @prefixai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> . @prefixdcterms: <http://purl.org/dc/terms/> . @prefixfoaf: <http://xmlns.com/foaf/0.1/> . @prefixxsd: <http://www.w3.org/2001/XMLSchema#> . @prefixoslc_asset: <http://open-services.net/ns/asset#> . @prefixoslc_cm: <http://open-services.net/ns/cm#> . @prefix bugs: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/bugs/> . @prefixusers: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/users/> . @prefixpersons: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/persons/> . @prefixproducts: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/products/> . @prefix roles: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/roles/> . @prefixversions: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/versions/> . @prefixwg: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/groups/> . wg:wg44 a foaf:Group; ai:belongsToWorkAreaai:workAreaDevelopment; ai:memberusers:us4331; ai:worksInProduct products:prod3231.
Procedurefactors (IV) • Temporal aspects • Estimatedduration • Short-livedvalidationprocess • Validationprocessis simple enoughto be carriedout in a short period of time • Long-livedvalidationprocess • Validationprocessrequirescomplex and/orlengthyoperationswhichspan a wideperiod of time (i.e., estatisticalcalculationsforreports) • Immediateness • On-the-fly / up-front • Validationhappens as soon as the data isavailable (i.e., user input validation) • Just-in-time/deferred • Validationhappenswhenthe data isto be consumed (i.e., batch and/orasyncoperations)
Contextfactors • Validation as part of a writeoperation • Data provenance • Applicationmanaged vs userprovidedproperties • Write once-readmanyvsread-writeproperties @prefixxsd: <http://www.w3.org/2001/XMLSchema#> . @prefixdcterms: <http://purl.org/dc/terms/> . @prefixoslc_cm: <http://open-services.net/ns/cm#> . @prefixoslc_asset: <http://open-services.net/ns/asset#> . @prefixai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> . @prefixbugs: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/bugs/> . @prefixversions: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/productversions/> . @prefixusers: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/users/> . bugs:b43245 a ai:ClientDefect; dcterms:title "Bugzilla adapterbuildisbroken"^^xsd:string; dcterms:description "Bugzilla adapterbuildfailsdueto a test failure"^^xsd:string; dcterms:creator users:us09 ; oslc_asset:relatedAssetversions:ver1244 ; oslc_cm:statusai:statusNew; dcterms:contributorusers:us4331 ; ai:relatedIncident <http://example.org/incidents/1> . Userprovided Free update Must be an ITA user Fixedoncreation Applicationmanaged
Conclusions • RDF validation in a Linked Data scenario has otherconcernsbeyondtraditionalstructural and data rangevalidationissues • ProceduresforvalidatingLinked Data needtobe customizedtoaccommodatetheparticularities of thescenario in terms of the • thedata sourcesto be consumed, • theprocessesto be carriedout, and • thecontextin whichthey are to be applied
RDF Validation in a Linked Data worldA vision beyond structural and value range validation Miguel Esteban Gutiérrez, Raúl García Castro, Nandana Mihindukulasooriya RDF Validation Workshop September 10th-11th, 2013