PDF de programación - Tecnologías XML y Web Semántica

Imágen de pdf Tecnologías XML y Web Semántica

Tecnologías XML y Web Semánticagráfica de visualizaciones

Actualizado el 17 de Julio del 2018 (Publicado el 28 de Mayo del 2018)
638 visualizaciones desde el 28 de Mayo del 2018
282,3 KB
29 paginas
Creado hace 18a (02/04/2006)
Tecnologías XML y
Web Semántica

Departamento de Informática

Universidad de Oviedo

Sesión 2

Diseño de Vocabularios XML

Espacios de Nombres
XML Schema
Diseño de Vocabularios

Departamento de Informática

Universidad de Oviedo

1

Espacios de Nombres

Problema de la Homonimia

Homonimia: Mismo nombre con diferentes propósitos
<país nombre=“Francia”>
<capital>París</capital>
</país>

<inversión>
</inversión>

<capital>7000€</capital>

¿Cómo combinar en el mismo documento estos vocabularios?

<inversiones>

<país nombre=“Francia”>

<capital>París</capital>
<capital>1200€</capital>

</país>
. . .

</inversiones>

A

mbigüedad

2

Posibles Soluciónes

Asignar un nombre único a cada etiqueta...
Posibles soluciones:

Crear una autoridad mundial que asigne nombres...
... o usar un mecanismo ya existente: URIs
Una URI es un identificador global único

Ejemplo: http://www.aulanet.uniovi.es

SOLUCIÓN:

Asociar a cada etiqueta una URI que indica a qué
espacio de nombres pertenece...

[http:www.bolsa.com]:capital
[http:www.geog.es]:capital

Posibles soluciones

Solución fácil...

Asociar a cada etiqueta una URI

<[http://www.bolsa.com]:inversiones>

<[http://www.geog.es]:país

[http://www.geog.es]:nombre=“Francia”>

<[http://www.geog.es]:capital>París
</[http://www.geog.es]:capital>
<[http://www.bolsa.com]:capital>1200€
</[http://www.bolsa.com]:capital>

</[http://www.bolsa.com]:país>
. . .

</[http://www.bolsa.com]:inversiones>

Legibilidad...


3

Definición

Solución: Asociar un alias a los elementos de un

espacio de nombres dentro de un ámbito
xmlns:alias define alias en el ámbito de un
elemento

<b:inversiones

xmlns:b=“http://www.bolsa.com”
xmlns:g=“http://www.geog.es”>

<g:país g:nombre=“Francia”>

<g:capital>París</g:capital>
<b:capital>1200€</b:capital>

</g:país>
. . .

</b:inversiones>

NOTA: Las URIs sólo se utilizan para que el
nombre sea único, no son enlaces, ni tienen
que contener información

Asignación Dinámica

Es posible ir asociando espacios de nombres a los

elementos según van apareciendo

<b:inversiones

<g:país

xmlns:b=“http://www.bolsa.com”>
xmlns:g=“http://www.geog.es”
g:nombre=“Francia”>

<g:capital>París</g:capital>
<b:capital>1200€</b:capital>

</g:país>
. . .

</b:inversiones>

4

Espacio de nombres por
defecto

Mediante xmlns=“...” se define un espacio de nombres

Se refiere a

http://www.bolsa.com

por defecto (sin alias)
<inversiones

<g:país

xmlns=“http://www.bolsa.com”>
xmlns:g=“http://www.geog.es”
g:nombre=“Francia”>
<g:capital>París</g:capital>
<capital>1200€</capital>

</g:país>
. . .

</inversiones>

Validación con DTDs

Posteriores a los DTDs, por tanto, los DTDs no dan

soporte a Espacios de Nombres
Hay que definir los espacios de nombre usados

<!DOCTYPE inversiones [
<!ELEMENT inversiones (g:país*)>
<!ELEMENT g:país (g:capital,capital) >
<!ELEMENT g:capital (#PCDATA)>
<!ELEMENT capital (#PCDATA)>
<!ATTLIST inversiones
<!ATTLIST g:país

xmlns CDATA #FIXED "http://www.bolsa.com">
g:nombre CDATA #REQUIRED
xmlns:g CDATA #FIXED "http://www.geog.es">

]>

5

Valoración

Ampliamente utilizados para combinar vocabularios
Facilitan la incorporación de elementos no previstos

inicialmente

Sintaxis extraña al principio

Uso de prefijos
URIs como elemento diferenciador...pero las URLS también

sirven para acceder a recursos

Difícil combinación con DTDs

XML Schema

6

Lenguajes de Esquemas

Esquema = definición de estructura de un conjunto de

documentos XML

Validar = Chequear que un documento sigue un esquema

Principal Ventaja: Protección de errores
Otras aplicaciones: Edición, compresión, etc.

DTDs = un ejemplo de esquemas (con varias limitaciones)
XML Schema = desarrollo posterior del W3c
Existen Otros:

RELAX-NG, Schematron, etc.

Características de DTD’s

Especifican estructura del documento:
Elementos, atributos, anidamientos, etc.

Integridad referencial mínima (ID, IDREF)
Mecanismo sencillo de abstracción

Entidades ≈ Macros

Inclusión de documentos externos
Integrados en XML (Parte de la especificación)
Sencillos de comprender (≈ Expresiones regulares)

7

Limitaciones de DTD’s

La Sintaxis no es XML (difíciles de manipular)
No soportan Espacios de nombres
No permiten especificar tipos de datos (por ejemplo: enteros, flotantes,

fechas, etc.

No permiten especificar secuencias no ordenadas
((e1,e2,e3)|(e1,e3,e2)|(e2,e1,e3)|...(e3,e2,e1))

No hay soporte para declaraciones sensibles al contexto: Los elementos

se definen todos a nivel de documento, ejemplo, contenido con el mismo
nombre cuya estructura cambia en diferentes contextos

Soporte limitado para Referencias cruzadas, no es posible formar claves a

partir de varios atributos o de elementos

No son extensibles (una vez definido, no es posible añadir nuevos

vocabularios a un DTD)

XML Schema
Objetivos de Diseño

Sintaxis XML
Soporte para Espacios de Nombres
Mayor expresividad

Restricciones numéricas
Integridad dependientes del contexto

Tipos de datos

Gran cantidad de tipos de datos predefinidos
Creación de tipos de datos por el usuario

Extensibilidad

Inclusión/Redefinición de esquemas
Herencia de tipos de datos
Soporte a Documentación

8

Ejemplo

alumnos.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.uniovi.es/alumnos"
xmlns="http://www.uniovi.es/alumnos">

<xs:element name="alumnos">
<xs:complexType>
<xs:sequence>
<xs:element name="alumno" minOccurs="1" maxOccurs="200"
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="TipoAlumno">

type="TipoAlumno"/>

<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>
<xs:element name="nacim" type="xs:gYear"/>
</xs:sequence>
<xs:attribute name="dni" type="xs:string"/>
</xs:complexType>
</xs:schema>

Elemento raíz schema y

espacio de nombres

determinado

Permite especificar
rangos de inclusión

Permite especificar

tipos

Validación

alumnos.xsd

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

targetNamespace="http://www.uniovi.es/alumnos"
xmlns="http://www.uniovi.es/alumnos">

<xs:element name="alumnos">
<xs:complexType>
<xs:sequence>
<xs:element name="alumno" minOccurs="1" maxOccurs="200"
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="TipoAlumno">

type="TipoAlumno"/>

<alumnos

alumnos.xml

Los espacios de nombres
deben coincidir.
También puede usarse:
xsi:noNameSpaceLocation

<xs:sequence>

xmlns="http://www.uniovi.es/alumnos”
xsi:SchemaLocation=“http://www.uniovi.es/alumnos
<xs:element name="nombre" type="xs:string"/>
alumnos.xsd”
<xs:element name="apellidos" type="xs:string"/>
xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance">
<xs:element name="nacim" type="xs:gYear"/>
</xs:sequence>
<xs:attribute name="dni" type="xs:integer"/>
</xs:complexType>
</xs:schema>

. . .
</alumnos>

9

Tipos Anónimos vs.
con nombre

<xs:element name="alumno">
<xs:sequence>

Otra posibilidad:
Referencias

<xs:element name="alumno">
<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>

</xs:sequence>

</xs:element>
<xs:element name="alumnos">
<xs:sequence>
</xs:sequence>
</xs:element>

<xs:element ref="alumno" />

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>

</xs:sequence>

</xs:element>

<xs:element name="alumno" type="TipoAlumno"/>

<xs:ComplexType name="TipoAlumno">
<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>

</xs:sequence>
</xs:ComplexType>

+ legible

+ Reutilizable

10

Agrupaciones

Es posible nombrar agrupaciones de elementos y de

atributos para hacer referencias a ellas
<xs:group name="nombApell">

<xs:sequence>

</xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>

</xs:group>
<xs:complexType name="TipoAlumno">
<xs:group ref="nombApell" />
<xs:element name="carrera" type="xs:string"/>
</xs:complexType>

Tipos Complejos:
Secuencia

Tipos Complejos: Son tipos que pueden contener elementos o

atributos

Construcción básica mediante enumeración de elementos
<xs:complexType name="TipoAlumno">

<xs:sequence>

<xs:element name="nombre" type="xs:string"/>
<xs:element name="apellidos" type="xs:string"/>
<xs:element name="nacim" type="xs:gYear"
minOccurs="0" maxOccurs="1"/>

</xs:sequence>
<xs:attribute name="dni" type="xs:integer"/>
</xs:complexType>
<alumno dni="9399390">
<nombre>Juan</nombre>
<apellidos>García García</apellidos>
<nacim>1985</nacim>
</alumno>

11

Tipos Complejos:
Alternativa
choice: Representa alternativas

OJO: Es una o-exclusiva
<xs:complexType name="Transporte">

<xs:choice>
<xs:element name="coche" type="xs:string"/>
<xs:element name="tren" type="xs:string"/>
<xs:element name="avión" type="xs:string"/>

</xs:choice>

</xs:complexType>

<transporte>
<coche>Renault R23</coche>
</transporte>

Tipos Complejos:
Contenido Mixto
El contenido Mixto permite mezclar texto con

elementos
<xs:complexType name="TCom" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="emph" type="xs:string"/>

</xs:choice>

</xs:complexType>

<xs:element name="comentarios" type="TCom" />

<comentarios>
Es un poco <emph>listillo</emph>
</comentarios>

12

Secuencias no ordenadas

all = Todos los elementos en cualquier orden
En DTDs requería enumerar las combinaciones:

(A,B,C)|(A,C,B)|...|(C,B,A)
<xs:complexType name="TipoLibro">

<xs:all>

</xs:all>

<xs:element name="autor" type="xs:string"/>
<xs:element name="título" type="xs:string"/>

</xs:complexType>
<xs:element name="libro" type="TipoLibro" />

<libro>
<autor>Juanita la Loca</autor>
<título>No estoy loca</título>
</libro>

<libro>

<título>El kigote</título>
<autor>Cerbantes</autor>
</libro>

Tipos Simples

Los tipos simples son lo que no pueden contener

elementos o atributos

Son los valores de atributos o el contenido de

elementos básicos

Pueden ser:

Prede
  • Links de descarga
http://lwp-l.com/pdf11388

Comentarios de: Tecnologías XML y Web Semántica (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad