ExarcaFidalgo / Shumlex

Integración ShEx - UML
MIT License
4 stars 0 forks source link

Disyunción #32

Closed ExarcaFidalgo closed 3 years ago

ExarcaFidalgo commented 4 years ago

Combina Expresiones Formales de tal modo que una o ambas deban ser satisfechas por los nodos candidatos.

:User { schema:name xsd:string } OR { schema:givenName xsd:string ; schema:familyName xsd:string }

ExarcaFidalgo commented 4 years ago

También se puede aplicar a tipos de datos (aunque siendo un OR inclusivo, el concepto me chirría un tanto)

:Product { rdfs:label xsd:string OR rdf:langString; schema:releaseDate xsd:date OR xsd:gYear OR [ "unknown-past" "unknown-future" ] }

ExarcaFidalgo commented 4 years ago

De acuerdo. A día de hoy, admite cosas como:

:User { :name xsd:string; :owns IRI; } OR { :owns @:Product; }

:Titanuser @:User OR {

:Ultrauser Literal OR { a [:User]; } Si bien la ejecución de este no me convence demasiado. Abierto a cambios.

:Product { :productId xsd:string OR MinLength 5 OR MaxLength 10; }

ExarcaFidalgo commented 4 years ago

Quedaría por hacer lo del ejemplo anterior:

:Product { rdfs:label xsd:string OR rdf:langString; schema:releaseDate xsd:date OR xsd:gYear OR [ "unknown-past" "unknown-future" ] }

Pero casi prefiero dejarlo abierto para el futuro. Sería crear otras tantas clases componente OR, cada una con el atributo/s correspondiente y cada uno de los tipos.

Llevo ya unos tres días hasta la extenuación con los componentes y carezco de voluntad ahora mismo para implementar otro. Etiquetado como potencial mejora queda.

Añadiré el OR a no mucho tardar. Tengo que abrir una nueva sección y procurar dejar intacto lo que ya funciona.