Center for Open Middleware
Center for Open Middleware
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 WorkshopSeptember 10th-11th, 2013
Center for Open Middleware
2
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
Center for Open Middleware
3
Use case
Defect reception Verification
Diagnosis and
solution
Solution integration
Fix assignmen
t
Fix certificatio
n
Simplified Corrective Maintenance Process
http://sites.google.com/a/centeropenmiddleware.com/alm-istack/deliverables/R1.3_ALM_iStack_Proof-of-Concept.pdf
Center for Open Middleware
4
Use case scenario
ChangeManagement
Requirement Management
Configuration Management
Quality Management
Asset Management
OrganizationManagement
ALM Application
Data model
Remote APIUser
Interface
LDP
Center for Open Middleware
5
Linked Data Application “Maturity Model”
• 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 validation process
Center for Open Middleware
6
Designing the RDF validation process
• Data source factors• Behavioral aspects• Structural aspects
• Procedure factors• Data aspects• Temporal aspects
• Context factors• Operational aspects
Center for Open Middleware
7
Data source factors (I)
• Dynamics
• Static data (i.e., periodic bug reports)One-time validation (i.e., validation caching)
• Variable data (i.e., live data)• Timely updated data (i.e., statistical bug reports)
Periodic validation (i.e., validation caching + validation triggering)
• Randomly updated data (i.e., a particular bug) Per-operation validation
Center for Open Middleware
8
Data source factors (II)• Publication strategy
• Disallow inline resource definition• Allow inline resource definition
• Resource aggregation pattern• Resource composition pattern
products:prod3231 a ai:Product; dc:title "SEALS Platform"@en; ai:isInvolvedIn roles:role1002; ai:hasWorkingGroup wg:wg44.
products:prod3231 a ai:Product; dc:title "SEALS Platform"@en; ai:isInvolvedIn roles:role1002; ai:hasWorkingGroup wg:wg44.
wg:wg44 a foaf:Group; ai:belongsToWorkArea ai:workAreaDevelopment; ai:member person:pr82; ai:worksInProduct products:prod3231.
roles:role1002 a ai:ProductRole; ai:involves ai:roleMaintainer; ai:involves products:prod3231; ai:involves person:pr82.
products:prod3231 a ai:Product; dc:title "SEALS Platform"@en; ai:isInvolvedIn comp:mpr; ai:hasWorkingGroup comp:wg.
comp:wg a foaf:Group; ai:belongsToWorkArea ai:workAreaDevelopment; ai:member person:pr82; ai:worksInProduct products:prod3231.
comp:mpr a ai:ProductRole; ai:involves ai:roleMaintainer; ai:involves products:prod3231; ai:involves person:pr82.
@prefix dc: <http://purl.org/dc/elements/1.1/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> .@prefix ai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> .@prefix products: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/products/> .@prefix comp: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/products/prod3231#> .@prefix roles: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/roles/> .@prefix wg: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/groups/> .@prefix persons: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/persons/> .
get http://www.example.org/oms/ldp/products/prod3231
Center for Open Middleware
9
Data source factors (III)• Provision strategy
• Raw data
• Materialized data• Partial materialization
• Full materialization
versions:ver1244 a ai:Version; 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.
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.
@prefix oslc_asset: <http://open-services.net/ns/asset#> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .@prefix ai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> .@prefix products: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/products/> .@prefix versions: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/versions/> .
get http://www.example.org/oms/ldp/versions/ver1244
Center for Open Middleware
10
Data source factors (IV)• Access control
• Granularity
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .@prefix dcterms: <http://purl.org/dc/terms/> . @prefix oslc_cm: <http://open-services.net/ns/cm#> .@prefix oslc_asset: <http://open-services.net/ns/asset#> .@prefix ai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> .@prefix bugs: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/bugs/> .@prefix versions: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/productversions/> .@prefix users: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/users/> .
bugs:b43245 a ai:ClientDefect; dcterms:title "Bugzilla adapter build is broken"^^xsd:string; dcterms:description "Bugzilla adapter build fails due to a test failure"^^xsd:string; dcterms:creator users:us09 ; oslc_asset:relatedAsset versions:ver1244 ; oslc_cm:status ai:statusNew ; dcterms:contributor users:us4331 ; ai:relatedIncident <http://example.org/incidents/1> .
Coarse-grained access
Fine-grained access(public)
Fine-grained access(logged)
Center for Open Middleware
11
Data source factors (V)• Resource state management
• Unique state• Differentiated state (i.e., context aware)
@prefix ai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> .@prefix foaf: <http://xmlns.com/foaf/0.1/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .@prefix roles: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/roles/> .@prefix wg: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/groups/> .@prefix persons: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/persons/> .
get http://www.example.org/oms/ldp/persons/me
persons:me a foaf:Person; foaf:name "John Doe"@en; foaf:mbox "[email protected]"^^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.
persons:me a foaf:Person; foaf:name "Jane Doe"@en; foaf:mbox "[email protected]"^^xsd:string; ai:isMemberOf wg:wg173; ai:hasCredentials [ a ai:Credentials; ai:hasUsername "jane"^^xsd:string; ai:hasPassword "J@n3"^^xsd:string ]; ai:isInvolvedIn roles:role310.
John Doe logged on Jane Doe logged on
Center for Open Middleware
12
Procedure factors (I)• Number of data sources
Product Resource
Product
Version Resource
Version
User Resource
foaf:Person
Bug Resource
Defect
Issue Tracker Adapter
Version Resource
Version
Person Resource
foaf:Person
Product Resource
Product
ProductRole
foaf:Group
Organization Management System
Entity Resource
Entity
Context Resource
Context
Identity Management Service
Center for Open Middleware
13
Procedure factors (II)
• Data completeness• Complete
• Closed world reasoning
• Local-closed world reasoning
• Incomplete
• Open world reasoning
Center for Open Middleware
14
Procedure factors (III)• Validation scope
bugs:b43245 a ai:ClientDefect; dcterms:title "Bugzilla adapter build is broken"^^xsd:string; dcterms:description "Bugzilla adapter build fails due to a test failure"^^xsd:string; dcterms:creator users:us09; oslc_asset:relatedAsset versions:ver1244 ; oslc_cm:status ai:statusNew ; dcterms:contributor users:us4331 ; ai:relatedIncident <http://example.org/incidents/1> .
@prefix ai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> .@prefix dcterms: <http://purl.org/dc/terms/> . @prefix foaf: <http://xmlns.com/foaf/0.1/> .@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .@prefix oslc_asset: <http://open-services.net/ns/asset#> .@prefix oslc_cm: <http://open-services.net/ns/cm#> .@prefix bugs: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/bugs/> .@prefix users: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/users/> .@prefix persons: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/persons/> .@prefix products: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/products/> .@prefix roles: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/roles/> .@prefix versions: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/versions/> .@prefix wg: <http://aranjuez.dia.fi.upm.es/oms/ldp/resources/groups/> .
products:prod3231 a ai:Product; dc:title "SEALS Platform"@en; ai:isInvolvedIn roles:role1002; ai:hasWorkingGroup wg:wg44. roles:role1002 a ai:ProductRole;
ai:involves ai:roleMaintainer; ai:involves products:prod3231; ai:involves users:us4331.
wg:wg44 a foaf:Group; ai:belongsToWorkArea ai:workAreaDevelopment; ai:member users:us4331; ai:worksInProduct products:prod3231.
users:us4331 a foaf:Person; foaf:name "John Doe"@en; foaf:mbox "[email protected]"^^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:isVersionOf products:prod3231.
DB
Center for Open Middleware
15
Procedure factors (IV)• Temporal aspects
• Estimated duration• Short-lived validation process
• Validation process is simple enough to be carried out in a short period of time• Long-lived validation process
• Validation process requires complex and/or lengthy operations which span a wide period of time (i.e., estatistical calculations for reports)
• Immediateness• On-the-fly / up-front
• Validation happens as soon as the data is available (i.e., user input validation)• Just-in-time / deferred
• Validation happens when the data is to be consumed (i.e., batch and/or async operations)
Center for Open Middleware
16
Context factors• Validation as part of a write operation
• Data provenance• Application managed vs user provided properties• Write once-read many vs read-write properties
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .@prefix dcterms: <http://purl.org/dc/terms/> . @prefix oslc_cm: <http://open-services.net/ns/cm#> .@prefix oslc_asset: <http://open-services.net/ns/asset#> .@prefix ai: <http://delicias.dia.fi.upm.es/ontologies/alm-istack#> .@prefix bugs: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/bugs/> .@prefix versions: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/productversions/> .@prefix users: <http://aranjuez.dia.fi.upm.es/ita/ldp/resources/users/> .
bugs:b43245 a ai:ClientDefect;
dcterms:title "Bugzilla adapter build is broken"^^xsd:string;
dcterms:description "Bugzilla adapter build fails due to a test failure"^^xsd:string;
dcterms:creator users:us09 ;
oslc_asset:relatedAsset versions:ver1244 ;
oslc_cm:status ai:statusNew ;
dcterms:contributor users:us4331 ;
ai:relatedIncident <http://example.org/incidents/1> .
Must be an ITA userApplication managed
User provided
Fixed on creation
Free update
Center for Open Middleware
17
Conclusions
• RDF validation in a Linked Data scenario has other concerns beyond traditional structural and data range validation issues
• Procedures for validating Linked Data need to be customized to accommodate the particularities of the scenario in terms of the • the data sources to be consumed,• the processes to be carried out, and • the context in which they are to be applied
Center for Open Middleware
Center for Open Middleware
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 WorkshopSeptember 10th-11th, 2013