Anexo A | Anotaciones semánticas del workflow EBI InterProScan

Anuncio
Anexo A | Anotaciones semánticas del
workflow EBI InterProScan
El presente anexo extiende la información aportada en el Capítulo 5. Aquí se presentan datos adicionales
sobre las anotaciones semánticas del modelo.
A.1
Anotaciones
El modelo del workflow que analizamos ha sido anotado con datos semánticos y paramétricos. Por razones
de espacio, no es posible incluir toda esta información en este anexo. Sin embargo, se presenta un ejemplo
de cada tipo de anotación que podemos encontrar en la red. El siguiente bloque muestra un patrón RDF
(RDFG) llamado job_params_pattern, asociado al arco de salida de la transición Job_params:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<? xml v e r s i o n ="1.0" e n c o d i n g =" UTF -8"? >
< tns : R D F G r a p h P a t t e r n
xmlns : tns =" http :// gidhe . es / e d u g o n z a/ X M L S c h e m a/ R D F G PS c h e m a"
xmlns : xsi =" http :// www . w3 . org /2001/ XMLSchema - i n s t a n ce"
xsi : s c h e m a L o c a t i o n =" http :// gidhe . es / e d u g o n z a/ X M L S c he m a/ R D F G P S c h e m a " >
< tns : triple >
< tns : s u b j e c t type =" v a r i a b l e" > package </ tns : subject >
< tns : p r e d i c a t e type =" uri " > http :// e x a m p l e. org / isA </ tns : predicate >
< tns : object type =" uri " > http :// e x a m p l e. org / Package </ tns : object >
</ tns : triple >
< tns : triple >
< tns : s u b j e c t type =" uri " > http :// e x a m p l e. org / GOTERMS </ tns : subject >
< tns : p r e d i c a t e type =" uri " > http :// e x a m p l e. org / hasValue </ tns : predicate
>
< tns : object type =" v a r i a b l e" > goterms </ tns : object >
</ tns : triple >
< tns : triple >
< tns : s u b j e c t type =" uri " > http :// e x a m p l e. org / ASYNC </ tns : subject >
< tns : p r e d i c a t e type =" uri " > http :// e x a m p l e. org / hasValue </ tns : predicate
>
< tns : object type =" v a r i a b l e" > async </ tns : object >
</ tns : triple >
< tns : triple >
< tns : s u b j e c t type =" uri " > http :// e x a m p l e. org / CRC </ tns : subject >
< tns : p r e d i c a t e type =" uri " > http :// e x a m p l e. org / hasValue </ tns : predicate
>
< tns : object type =" v a r i a b l e" > crc </ tns : object >
</ tns : triple >
< tns : triple >
< tns : s u b j e c t type =" uri " > http :// e x a m p l e. org / SEQTYPE </ tns : subject >
37
Eduardo González López de Murillas
28
29
30
31
32
33
34
35
36
< tns : p r e d i c a t e type =" uri " > http :// e x a m p l e. org / hasValue </ tns : predicate
>
< tns : object type =" v a r i a b l e" > seqtype </ tns : object >
</ tns : triple >
< tns : triple >
< tns : s u b j e c t type =" uri " > http :// e x a m p l e. org / EMAIL </ tns : subject >
< tns : p r e d i c a t e type =" uri " > http :// e x a m p l e. org / hasValue </ tns : predicate
>
< tns : object type =" v a r i a b l e" > email </ tns : object >
</ tns : triple >
</ tns : R D F G r a p h Pa tter n >
Este código corresponde a la anotación en formato XML. Por claridad, una representación más
compacta del mismo patrón sería:
?package t:isA t:Package .
t:GOTERMS t:hasValue ?goterms .
t:ASYNC t:hasValue ?async .
t:CRC t:hasValue ?crc .
t:SEQTYPE t:hasValue ?seqtype .
t:EMAIL t:hasValue ?email
El símbolo ? representa que el identificador siguiente se refiere a una variable. Así vemos que, en
la primera tripleta, aparece la variable package. Esta variable representa un valor que aún no ha sido
determinado, pero que lo estará cuando se realice el binding. Lo mismo ocurre con el resto de variables
goterms, async, crc, seqtype y email. Así vemos que este patrón captará un grafo RDF que contenga,
al menos, seis tripletas que coincidan con el patrón propuesto.
También podemos encontrar grafos RDF (RDFG), que corresponden al marcado en los lugares
de la red. Un ejemplo de dichas anotaciones podría ser el correspondiente al marcado en el lugar goterms_default, que se presenta en el siguiente bloque:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<? xml v e r s i o n ="1.0" e n c o d i n g =" UTF -8"? >
< tns : R D F G r a p h
xmlns : tns =" http :// gidhe . es / e d u g o n z a/ X M L S c h e m a / R D F G Sc h e m a "
xmlns : xsi =" http :// www . w3 . org /2001/ XMLSchema - i n s t a n ce"
xsi : s c h e m a L o c a t i o n =" http :// gidhe . es / e d u g o n z a/ X M L S c he m a/ R D F G S c h e m a" >
< tns : triple >
< tns : s u b j e c t type =" uri " > http :// e x a m p l e. org / Package01 </ tns : subject >
< tns : p r e d i c a t e type =" uri " > http :// e x a m p l e. org / isA </ tns : predicate >
< tns : object type =" uri " > http :// e x a m p l e. org / Package </ tns : object >
</ tns : triple >
< tns : triple >
< tns : s u b j e c t type =" uri " > http :// e x a m p l e. org / GOTERMS </ tns : subject >
< tns : p r e d i c a t e type =" uri " > http :// e x a m p l e. org / hasValue </ tns : predicate
>
< tns : object type =" bnode " > goterms </ tns : object >
</ tns : triple >
</ tns : RDFGraph >
Esto se puede resumir, de forma compacta en:
t:Package01 t:isA t:Package .
t:GOTERMS t:hasValue _:goterms
En esta anotación, como se puede observar, se hace uso de Blank nodes, que representan parámetros
que se tratarán con el SMT solver. El tipo de cada parámetro se define en el fichero parameters.smt2 en
formato SMT-Lib v2:
38
Anexo A. Anotaciones semánticas del workflow EBI InterProScan
1
2
3
4
5
6
7
8
9
( declare - fun
( declare - fun
( declare - fun
( declare - fun
( declare - fun
( declare - fun
( declare - fun
( declare - fun
( declare - fun
text () Bool )
xml () Bool )
g o t e r m s () Int )
async () Int )
crc () Int )
s e q t y p e () Int )
email () Int )
s e q u e n c e () Int )
i n p u t _ d a t a t y p e () Int )
Otro tipo de anotaciones que podemos encontrar en la red son las guardas paramétricas en las
transiciones. El siguiente bloque muestra un ejemplo, correspondiente a la transición get_XML_Result :
1
2
(= $xml$ true )
(= $ s t a t u s $ true )
Esto quiere decir que la transición se disparará si no existe una contradicción entre las declaraciones
paramétricas existentes en el estado de partida, y las declaraciones que establecen que el valor de la
variable xml es true y el de status es true también.
Respecto a las consultas CTL que se realizan sobre el ejemplo, vamos a fijarnos en la correspondiente a la fórmula: EF (RDF GT ext_Result ∨ RDF GGF F _Result ∨ RDF GXML_Result ∨ RDF GStatus ∨
RDF GJob_ID ). Cuando creamos esta fórmula en el editor Web, se genera un fichero XML cuyo contenido
es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<? xml v e r s i o n ="1.0" e n c o d i n g =" UTF -8"? >
< tns : CTL - F o r m u l a
xmlns : tns =" http :// gidhe . es / e d u g o n z a/ X M L S c h e m a/ F o r m ul a S c h e m a "
xmlns : tns2 =" http :// gidhe . es / e d u g o n z a/ X M L S c h e m a/ R D F GS c h e m a"
xmlns : tns3 =" http :// gidhe . es / e d u g o n z a/ X M L S c h e m a/ R D F GP S c h e m a" >
< tns : Mono value =" ef " >
< tns : Dual value =" or " >
< tns : leftFormula >
< tns : Dual value =" or " >
< tns : leftFormula >
< tns : Dual value =" or " >
< tns : leftFormula >
< tns : Dual value =" or " >
< tns : leftFormula >
< tns : Literal >
< tns : rdfg i n P l a c e =" n e t I d 1 3 3 7 4 5 8 1 0 5 5 6 5 _ n o d e _ 1 6 0 9 " >
</ tns : rdfg >
</ tns : Literal >
</ tns : leftFormula >
< tns : rightFormula >
< tns : Literal >
< tns : rdfg i n P l a c e =" n e t I d 1 3 3 7 4 5 8 1 0 5 5 6 5 _ n o d e _ 1 6 0 5 " >
</ tns : rdfg >
</ tns : Literal >
</ tns : rightFormula >
</ tns : Dual >
</ tns : leftFormula >
< tns : rightFormula >
< tns : Literal >
< tns : rdfg i n P l a c e =" n e t I d 1 3 3 7 4 5 8 1 0 5 5 6 5 _ n o d e _ 1 6 0 7 " >
39
Eduardo González López de Murillas
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
</ tns : rdfg >
</ tns : Literal >
</ tns : rightFormula >
</ tns : Dual >
</ tns : leftFormula >
< tns : rightFormula >
< tns : Literal >
< tns : rdfg i n P l a c e =" n e t I d 1 3 3 7 4 5 8 1 0 5 5 6 5 _ n o d e _ 1 5 9 5 " >
</ tns : rdfg >
</ tns : Literal >
</ tns : rightFormula >
</ tns : Dual >
</ tns : leftFormula >
< tns : rightFormula >
< tns : Literal >
< tns : rdfg i n P l a c e =" n e t I d 1 3 3 7 4 5 8 1 0 5 5 6 5 _ n o d e _ 1 6 1 5 " >
</ tns : rdfg >
</ tns : Literal >
</ tns : rightFormula >
</ tns : Dual >
</ tns : Mono >
</ tns : CTL - Formula >
40
Descargar