Conceptual Model
SWRL Inference Rules
1°- En la primer regla se Infiere la relación "componentOf" entre dos instancias de Familia en una estructura compuesta.
2° - En la Segunda regla, se infiere la relación "componentOf" entre dos instancias de Conjunto de Variantes, en una estructura compuesta.
3° - En la tercer regla, se infiere la relación "componentOf" entre dos instancias de Producto, en una estructura compuesta.
4° - En la cuarta regla, se infiere la relación "DerivativeOf" entre dos instancias de Familia en una estructura de derivación.
5° - En la quinta regla, se infiere la reacción de una entidad ante un evento de cambio. Para este caso se infiere el modo "Carrier".
6° - En la sexta regla, se infiere la reacción de una entidad ante un evento de cambio. Para este caso se infiere el modo "Constant".
7° - En la séptima regla, se infiere la reacción de una entidad ante un evento de cambio. Para este caso se infiere el modo "Absorber".
8° - En la octava regla, se infiere la reacción hasVersion para integrarse al historial de versiones, a partir de conocer que la primer versión.
9° - en la novena regla, se infiere las entidades afectadas en una versión, a partir de los eventos de cambios que generan la versión.
10° - En la cuarta regla, se infiere la relación "DerivativeOf" entre dos instancias de Conjunto de Varaintes, en una estructura de derivación.
11° - En la décimo primera regla, se infiere la reacción de una entidad ante un evento de cambio. Para este caso se infiere el modo "Multiplier".
Analysis of a simple case
Para la fabricación de un teléfono celular, se requiere una configuración adecuada para el proceso productivo, generada durante la etapa de diseño. La configuración se integra a partir de varias partes componentes del producto. Para simplificar la explicación se consideran sólo 4 componentes: procesador, sistema operativo, cámara digital lateral y flash. De este modo, la versión inicial de la familia de productos denominada PhoneSE, se compone de un procesador chipset Qualcomm msm 8227 CPU Snapdragon dual-core 1Ghz, una cámara digital lateral 5Mp res 2592x1944, un Flash LED con 0.5 d/s (disparos por segundo) y un sistema operativo denominado SESO v.2.3. Para analizar el impacto y la propagación de cambios, este caso se basa en un único requerimiento que surgen durante la etapa de diseño: “Incorporar una cámara digital frontal de 2Mp res 1733x1155”.
PRONTO Instantiation
Ontology Versioning Instantiation
Complete Instantiation of Initial Version and 2nd Version
SPARQL Queries
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX ovm: <http://www.owl-ontologies.com/OntologyVersionManagement.owl#>
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
#¿Qué componentes de afectaron en todas las versiones?
SELECT ?version ?entity
WHERE { ?version ovm:Involves ?entity}
#¿Qué componentes se afectaron en una versión específica?
SELECT ?entity
WHERE {
ovm:PhoneSEVersion1 ovm:Involves ?entity
}
#¿Cuándo Ocurrió?
SELECT ?version ?datetime ?date
WHERE {
?d rdf:type ovm:DateTime.
?version ovm:ValidSince ?datetime .
?datetime ovm:datetime ?date
}
#¿por qué cambio?
SELECT ?specification ?description ?version
WHERE {
?specification ovm:Description ?description.
?specification ovm:isSpecificationOf ?version
}
#¿Cómo cambió?
SELECT ?version ?change ?activity ?entity ?date ?datetime
WHERE {
?version ovm:GeneratedBy ?change.
?change ovm:affectTo ?entity.
?change ovm:hasOperationType ?activity.
?version ovm:ValidSince ?date.
?date ovm:datetime ?datetime
}
ORDER BY ASC (?date)
#¿Cómo se registran las versiones?
SELECT ?productConcept ?history ?version ?date ?datetime
WHERE {
?productConcept ovm:hasHistory ?history.
?history ovm:hasVersion ?version.
?version ovm:ValidSince ?date.
?date ovm:datetime ?datetime
}
ORDER BY ASC (?date)
#¿Cómo se clasifica una entidad?
SELECT ?version ?change ?entity ?classification
WHERE {
?version ovm:GeneratedBy ?change.
?change ovm:affectTo ?entity.
?entity ovm:reactsAs ?classification.
}
#¿Qué cambios genera esta última?
SELECT ?version ?change ?entity ?classification ?constraint ?changeN
WHERE {
?version ovm:GeneratedBy ?change.
?change ovm:affectTo ?entity.
?change ovm:ConstraintBy ?constraint.
?constraint ovm:requiredCE ?changeN.
}
#¿Cuál es la primera versión y su posterior?
SELECT ?Initialversion ?versionA ?versionB
WHERE {
?history ovm:firstVersion ?Initialversion.
?Initialversion ovm:hasNextVersion ?versionA.
?versionA ovm:hasPrevious ?versionB
}