DOCUMENTO DE FUNCIONALIDAD

Anuncio
DOCUMENTO DE FUNCIONALIDAD
Este documento contiene los requerimientos funcionales de la aplicación. Se espera que
el lector tenga un conocimiento medio de Semantic Web para entender algunos
conceptos utilizados en el documento. Documentos como “RDF Primer”, o “An
Introduction to RDF and the Jena RDF API” pueden ser de gran utilidad.
Ingreso de QNames
La aplicación permitira al usuario el ingreso de QNames para ser utilizados en cualquier
parte donde ingresar un URI sea necesario. De este modo el usuario podrá ingresar el
URI que desea completo o ingresarlo utilizando el QName. El usuario podrá editar los
QNames a utilizar (crear, modificar y borrar). La información de los QNames es la
siguiente:
 Prefijo.
 URI asociado con el prefijo.
 Anotaciones sobre el QName.
Además, inicialmente se debe contar con algunos QNames por omisión que son
bastantes comunes como:
Prefijo
rdf
rdfs
dc
Namespace
http://www.w3.org/1999/02/22-rdf-syntax-ns#
http://www.w3.org/2000/01/rdf-schema#
http://purl.org/dc/elements/1.1/
Anotación
Términos básicos de RDF.
Términos de RDFS
Terminos para describir
información muy usada.
Ingreso de Resources
El usuario puede crear un Resource (Sujeto, Propiedad y Objeto son Resources) en un
modelo indicando un URIref. El usuario debe indicar el URIref del Resource y la
aplicación lo ingresara. Este URIref tambien se puede ingresar utilizando QNames.
Ingreso de Statements
La aplicación permitirá ingresar statements sobre los Resources ingresados previamente.
Se debe indicar el Resource sobre el cual se desea decir algo. Luego se debe indicar el
valor del URIref de la propiedad y del objeto. Si el Object de la aserción es un
Resource, este debe ser previamente ingresado. También como Object de la aserción se
puede ingresar un valor literal.
En la creación de los Statements, los Objects que son los valores de los Predicates
deben soportar typed literals. Los datatypes a soportar son:


XMLLiteral. Define contenido XML como valor del literal.
XMLSchema datatypes:
o Boolean.
o Date.
o Double.
o Float
o Long.
o Int.
Además como Object de la aserción tambien se puede ingresar un blank node. Sobre
este blank node se pueden realizar futuras aserciones, como lo define el modelo.
Esta lista puede ser modificada posteriormente. (Revisar soporte de JENA)
El usuario podrá también ingresar un Resource de tipo Container. Los tipos de
Container son:



BAG para una colección no ordenada.
ALT para una colección no ordenada que representa alternativas.
SEQ para una colección de objetos ordenada.
A un Resource de tipo Container entonces se le pueden agregar Resources y luego
recuperarlos, remover elementos y consultar sobre sus nodos y su tamaño.
Se podrá utilizar el vocabulario de RDF junto con los definidos por RDFSchema y
OWL.
//**Revisar bien la funcionalidad que se va a realizar con RDFSchema y OWL
Para la utilización de modelos de ontologías, es decir, el uso de RDFSchema o de OWL
se debe tomar en cuenta las posibilidades que estos brindan para ofrecer al usuario. Es
decir que si el usuario escoge crear una ontologia utilizando RDFSchema, solo deben
estar disponibles cosas como subclase, sub-properties, domain y range. Pero si en lugar
de este se escogiera OWL, herramientas como disjointness deben estar disponibles. (
buscar reasoner capabilities en inference documentation ). Cuando se use OWL, se debe
tambien indicar si se desean importar documentos dentro de la ontologia ya que este
lenguaje lo permite. Tambien se puede indicar que se cree un modelo sin tomar en
cuenta los imports de este. Tambien se puede ser más selecto indicando que URIS no se
quieren cargar.
Al ingresar Resource (OntResource), se pueden especificar información sobre la version
del recurso, algun comentario, una marca (label), etc. (Mayor información en Jena
Ontology API, The generic ontology type). Se pueden eliminar resources
completamente de una ontologia, lo que implica que se retira de todos los statements
donde aparezca como subject o object.
Al ingresar nodos de tipo properties utilizando un lenguaje como OWL se pueden
especificar propiedades como funcionales, transitivas, simetricas, inversamente
funcional.**/
Guardado y Recuperación de Modelos
La aplicación permitirá guardar los modelos creados por el usuario en un archivo con el
formato RDF/XML (REVISAR LO DE LOS OTROS LENGUAJES). La aplicación
también permitirá recuperar modelos guardados en un archivo con el formato
RDF/XML. El usuario debe especificar el archivo que contiene el modelo. La aplicación
permitirá trabajar con modelos en XML especificados por un URL.
Navegación de modelos
La aplicación permitira visualizar todos los Resources que tienen propiedades en el
modelo. Sobre cada uno de los Resources, se podrán ver todas las propiedades del
mismo especificadas en el modelo.
La aplicación permitirá ver todos los statements realizados sobre un modelo
predeterminado. Estos se podrán ver en notación RDF/XML y N-Triples. ( Notación
gráfica pendiente).
Búsqueda en modelos
La aplicación permitirá al usuario realizar búsqueda con cualquier combinación en los
campos de un Statement. Por ejemplo, si el usuario especifica únicamente el Subject de
un Statement, encontrara todos los Statements que contengan el Subject que específico
el usuario. Si además especificara el Predicate del Statement, como resultado de la
consulta obtendrá todos los Statements que contengan como Subject y Predicate los
valores especificados por el usuario. Por ejemplo:
Si los siguientes Statements han sido introducidos:
 http://algo/GabrielLozano http://www.w3.org/2001/vcard-rdf/3.0#N “Gabriel”
 http://algo/GabrielLozano http://www.w3.org/2001/vcard-rdf/3.0#FN “Gabriel
Lozano”
Entonces, si se realiza la búsqueda por los Staments con “http://algo/GabrielLozano”
como Subject y http://www.w3.org/2001/vcard-rdf/3.0#N como Predicate, se obtendrá
como resultado el primer Statement de los introducidos.
Además, la aplicación permitirá hacer búsquedas anidadas. Por ejemplo, supongamos
que tenemos los siguientes Statements (no validos, pero simplificados para mejorar su
visualización):
X
Y
A
B
X
Y
A
B
X
Y
FN
FN
FN
FN
G
G
G
G
F
F
Gabriel Lozano
Rene Bareño.
Leonardo Lozano.
Marcela Lozano.
Gabriel
Rene
Leonardo
Marcela
Lozano
Bareño
A
B
F
F
Lozano
Lozano
Con X, Y, A y B como URI de los Subjects, FN, G y F ( Full Name, Given y Family)
URI de los Predicates y lo demás como los valores literales de los Predicates.
Ahora, supongamos que queremos saber los nombres de las personas que pertenezcan a
la Familia Lozano. Para esto necesitaremos una búsqueda anidada. Primero debemos
seleccionar las personas de la Familia Lozano. Una consulta de estas se puede ver de la
siguiente forma:
?x
FN
Lozano
Con esto obtenemos todas los URI de las personas que pertenecen a la familia Lozano.
Ahora, sobre estos obtenemos sus nombres. Esta consulta se puede ver de la siguiente
forma:
?x
G
?y
De esta forma obtendríamos los nombres de todas las personas que pertenezcan a la
familia Lozano. Toda la consulta se puede ver de la siguiente forma:
?x
FN
Lozano
&&
?x
G
?y
Además, las búsquedas se pueden filtrar sobre los valores de las propiedades
encontradas. Por ejemplo, si se desea buscar Personas que tengan una edad mayor a 24
años la consulta se puede ver de la siguiente forma:
?x
edad
?y
&&
?y
>=
24
Además, se pueden filtrar los resultados utilizando expresiones regulares.
(PENDIENTE REVISAR ESTE PUNTO Y DEJAR CLARO QUE TIPOS DE
FILTRADO SE PUEDEN LLEVAR A CABO. )
Grafos representantes de modelos
Seria bueno poder representar en grafos el RDF, y ver su representación al menos en
XML. Para los grafos los URIRefs se representan como óvalos y los literales como
cuadrados.
En los grafos se deben representar los blank nodes.
Los grafos se pueden mostrar con relaciones directas o no directas de acuerdo a las
jerarquias especificadas con lenguajes como RDFSchema u OWL. (ver Jena Ontology
API the generis ontology type: OntResource)
Representación de sentencias usando tripletas
El programa debe permitir la representación de las sentencias de RDF utilizando el
formato de tripletas, en donde cada sentencia es representada por sujeto, predicado y
objeto, en ese orden. Cada tripleta corresponde a un arco en la representación con
grafos. La representación de una tripleta requiere que cada URIRef sea descrita
completamente encerrada en < y >.Se debe revisar si se implementa la notación
abreviada que sustituye un XML qualified name (QName) sin < > como una abreviatura
para una URIRef completa[1]. Se deben poder usar prefijos para QNames conocidos[2].
Representación de modelos en RDF/XML
El programa debe poder crear modelos RDF y verlos representados según la sintaxis
RDF/XML. Tomar en cuenta el uso de XML Entibies como mecanismo de abreviación.
En la sintaxis de RDF/XML se deben tomar en cuenta el uso de containers como baq,
seq y alt.
Creación de shortcuts ( PENDIENTE )
La herramienta permite al usuario crear shortcuts para namespaces comunes, que se
puedan utilizar en todas las tareas de la herramienta, serian como un tipo de constantes.
Creación y edición de vocabularios (modelos con rdfschema y
owl)
La aplicación debe permitir la creación de vocabularios. A su vez, debe permitir la
edición de estos y la navegación para su posterior uso. Se debe permitir importar y
exportar estos vocabularios. Normalmente un namespace común es definido para un
conjunto de términos que constituyen un vocabulario. Se puede pensar en crear una
pagina Web con la URL de la URIRef del vocabulario definido para describir este
vocabulario.
Descripción de clases con RDFSchema
La aplicación debe permitir la descripción de clases de objetos con XMLSchema.
Utilización de otros recursos de RDF
La aplicación debe permitir el uso de containers, del tipo bag, seq y alt. Tambien el uso
de listas que permitan describir un conjunto finito de ítems en un grupo, a diferencia de
los containers. El uso de RDF reification también debe ser permitido, el cual describe
los propios statements. Entonces si uno realiza statements y se desea una funcionalidad
adicional como la de dar información de los statements, sería apropiado que cuando se
generan statements el usuario este plenamente identificado. Tambien se puede salvar la
fecha en que el statement fue realizado. La aplicación puede tener un mecanismo para
asociar URI´s a statements unicos de tal forma que pueda hacer aserciones sobre estos.
Creación de vocabularios
La aplicación debe por medio del uso de RDFSChema poder especificar vocabularios
con las siguientes características:
1. Especificación de clases.
2. Especificación de jerarquías.
3. Descripción de propiedades. Esto a su vez consta de:
a. Descripción del rango de una propiedad.
b. Descripción del dominio de una propiedad.
c. Especificación de jerarquías de propiedades.
4. fdfd
Creación de plantillas
También deben existir plantillas con modelos predeterminados que permitan llevar a
cabo fácilmente esta tarea. Entre estas están:
 Creación de información sobre páginas Web (Se puede usar el vocabulario DC).
 Creación de noticias utilizando RSS.
Ayuda de Procesos
Edición de modelos
Undo/redo, copy/paste, etc..
Glosario
URIRef: Referencia a un URI.
Vocabulario: Conjunto de URIRefs que tienen un propósito común.
Referencias
[1] RDFPrimer pagina 11.
[2] RDFPrimer pagina 11
[3] RDF CONCEPTS
Descargar