weso / shumlex

Shapes and UML
http://www.weso.es/shumlex/
MIT License
6 stars 1 forks source link

Negación #8

Closed ExarcaFidalgo closed 3 years ago

ExarcaFidalgo commented 3 years ago

NOT s crea una nueva Expresión Formal a partir de la Expresión Formal s. Los nodos cumplen con NOT s cuando no presentan las propiedades de s.

:NoName Not {
  schema:name .
}

:User {
 schema:name      xsd:string ;
 schema:birthDate xsd:date? ;
}

:NoUser Not @:User

Apunte: la diferencia con la cardinalidad 0 es que esta prohibe la aparición de dicha propiedad. Con NOT la propiedad puede aparecer si la restricción es distinta. Ejemplo:

:NoName1 {
 schema:name      xsd:string {0}
}

:NoName2 Not {
 schema:name      xsd:string
}

:alice schema:name "Alice". #Fails as a :NoName1 and :NoName2

:bob schema:name 23 . #Fails as a :NoName1 Passes as a :NoName2

:carol foaf:age 34 . #Passes as a :NoName1}*) \Passes{:NoName2

ExarcaFidalgo commented 3 years ago

Hace tiempo que no me meto a cuestiones gramaticales. Ya va siendo hora de quitar estas issues... será lo próximo

ExarcaFidalgo commented 3 years ago

Para la entrada de prueba:

prefix : <https://schema.org/>
prefix xsd: <http://www.w3.org/2001/XMLSchema#>
base <http://example.org/>

:User {
:name xsd:string ;
:birthDate xsd:date ? ;
}

:NoUser Not @:User

:NoName Not {
:name xsd:string
}

Se genera el siguiente diagrama: imagen