samedi 2 janvier 2010

Web semantique

Aujourd'hui le Web n'a rien de sémantique: une donnée affichée dans une page HTML n'a aucun sens. Exemple; le mot panier a deux sens , soit il symbolise le conteneur en osier portant des objets , soit il a pour signification un caddye séléctionné par l'internaute dans un site web.


Une des applictions du web semantique :

  • retrouver des informations sur le web le plus efficacement possibless intervention humaine
Deux spécifications existent:

  • RDF
  • OWL

Un site interessant explique pour les nuls RDF.

Un exemple interessant montre l'interet des ontologies.

Un autre site interessant explique lui le lien entre XML et le Web semantique (RDF,ontologie).

Une autre ressource précise le web sémantique, les ontologies.



RDF travaille sur des meta donnees; pour decrire les donnees contenues sur le web. RDF s'appuie sur XMl pour l'interoperabilite.


Exmplr de RDF:





<>emma





OWL est une intelligence articifielle. Ele s'appuie sur OWL.
On ajoute aussi des metadonnées aux données du web.

Ontologie:

  • Representation des connaissances,base de données plus puissante qu'une base classisque; représentation d'un modele,concept , des propriétés
  • philosophie representation de l'existant
  • Trois adjectifs pour une ontologie:
  • langage formel (exemple XML, possibilité d'extraire les infos) ,
  • representation de la semantique (relation des données avec leur contexte)

Exemple: nb 10, est ce un prix, un nb de baguettes. Si on ajoute que c'est un prix, , 10 en quellle monnaie? 10 euros

Exemple qd je parle de windows, informatique de quoi je parle?

window est composé de slidebar , bar

Qd je parkle windows en batiment, j'ajoute du bois, verre.

Sa relation avec son entourage

  • Partagée du vocabulaire , de la connaissance identifié par des URI ( rendre l'information unique)

Exemple URI Homme

http://.../onotlogie/#homme

Ajouter des namespaces pour différencier les concepts , exemple window pour un ordi et window pour un batiment

On pourrait dire qu' une bdd est une ontologie;

Difference entre ontologie (OWL) contexte semantique interpretable par la machine et une BDD?:

  • Ds une bdd, le user saisit des donnees

exemple:

Etudiant:

ID nom Prenom classe matiere

1 Durant bertrand M2TI math

Je veux faire des interrogations sur des etudiants,

Ds une ontologie, je suis capable de saisir du sens ss faire de requetes sql

Homme >>>> HOMME

X <-frere --> Y >>>> Z

X est le frere de Y et de Z. ((notion de transitivité)

Autre exemple: equivalence

Si je dis X est equivalent à Personne, donc je peux dire que X est soit H ou F

X

Personne

Homme Femme

Raisonnement et capacité à deduire de l'information qui n'a pas été saisie .

Ontolofie: (concept, Relation ou prpriete, instance )

OWL permet de representer des ontologies.

classe, relation (heritage,semantique(frere...), et de creer instances

OWL trois langages: Lite, DL, FULL

Les differences sont :expressivité langage (

  • avc Lite) permet de representer les cardinalités avec 0 ou 1., constructeur, lite ne permet pas de faire des enumerations( exemple lilste de pays),
  • DL : herite de Lite + d'autres constructeurs
  • Avec Full on fait tt.

DL (description logique) : interet ontologie faire du raisonnement (intelligence artificielle)

Logique du premier order et descriptive).

La logique descriptive permet de calculer et de raisonner ds un temps fini

Concept: reprentation abstraite (exemple personne), classe nomé en relation, individus regroupant des memes caracteristiques

proprietes

Xavier est l'instance.

OWL declare deux types de propriete

Les proprietes peuvent etre soit primitives: datadtype(entier, date, caracteres) ou objectproperty(relation entre indiv, )

samedi 26 décembre 2009

ORACLE

Présentation oracle:













Architecture des process oracle


Une base est composée de différents éléments :
  • fichiers de controle( fichier de configutation de l(instance)
  • Journaux(redo: historique de toutes les modifications)
  • Traces applicaticatives et alertes
  • Fichier de sauvegarde
Une instance c'est:
  • Zone mémoire
  • des processus

Schema:
  • ensemble des objets appartenant à un utilisateur
  • requetes
  • PL/SQL
Stockage des données
  • Structure physique:
Fichiers de données. Les fichiers de données sont decoupées en blocs de taille données.

  • Structure logique:
Les tablespaces regroupent un ou des fichiers de données. Mais à un fichier de donnée correspond un seul tablespace.Des blocs continus forment des extents.
Des 4 types segments forment
des tables
des index
des temporaires
des seg annulation




Les différents Tablespaces conseillés sont :(En plus, il faudrait répartir ces fichiers sur des disques différents).
  • Des tablespaces SYSTEM et SYSAUX(table systeme auxiliaire) . Le tableSpace sysaux contient les données de certains composant oracle. Il soulage le tablespace System et travaille avec lui. Il est cree à la creation d'une database.

  • un table space d'annulation

  • temporaire. On affecte les opérations de tri dans les ordres SQL(ORDER BY, Union, Index), dans ce tablespace temporaire, afin d'améliorer les perf. Si le tri ne tient pas en memoire, oracle stocke le resultat intérmédiaire ds des segments temporaires. Ces segments temporaires seront affectés dans ce tablespace temporaire.Objectif: Soulager la memoire en effectuant les calculs, les tris dans une zone dédiée à cet effet.
L'odre SQL est :
CREATE TEMPORARY TABLESPACE nom
  • des tablesspaces de tables,
  • des tablesspaces d'index.


Augmenter la taille de la base:
  • ajouter un fichier de données à un tablespace
  • augmenter la taille de fichier de données
  • ajouter un nouveau tablespace
repertoire sous oracle:



Arborescence oracle:!Bien séparer
oradata(donnes)
admin ( admin des bdd)

Mode serveur partagée:

Mode dédiée:
(mode par défaut: (un process server / user)

Creation d'une instance se fait en général par un fichier d'instance:
UserDump(trace des ps serveur)
background_dump_dest


Pour démarrer une instance, il faut demarrer faire les opérations suivantes
:
  • Positionner des variables d'environnement

ORACLE_HOME(chemin vers logiciel oracle)
ORACLE_BASE(rep racine d'oracle)
ORACLE_SID
  • Ouvrir une console SQLPLUS en se connectant en SYSDBA
oracle@oracle-vserver:/opt/oracle/admin/m2ti$ sqlplus /nolog as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Dec 15 02:33:52 2009

  • Gerer un fichier de paramétrage: SQL> CREATE SPFILE='/opt/oracle/product/10gR2/dbs/spfilem2ti.ora' FROM PFILE='/opt/oracle/admin/m2ti/pfile/init.ora'
    3 ;

    File created.
    Liste des parametres existants(> 250)

  • demarrer l'instanceSTARTUP NOMOUNT
  • preparer la sauveggarde voir plus haut
  • Creer la bdd: (creer les fichiers de journaux, les tablesspaces system et sysaux)

  • Creates the datafiles for the database


  • Creates the control files for the database


  • Creates the redo log files for the database and establishes the ARCHIVELOG mode.


  • Creates the SYSTEM tablespace


  • Creates the SYSAUX tablespace


  • Creates the data dictionary


  • Sets the character set that stores data in the database


  • Sets the database time zone


  • Mounts and opens the database for use

Les tablespcases sont:
  • tablespace permanent

Un site montre la creation d'une database.





Pour plus d'informations sur les critères d'i


Liens Web:



Le cas des tablespaces System et sysaux 5(sysaux est cree lors de la creation de la database):

SAUVEGARDE:
  • Base fermée: Tt les modifications ont été crites dans les fichiers de données, que l'on peut alors sauvegardée et réutiliser pour remonter la base. La base est alors en mode noarchivelog
  • Base ouverte: on peut remonter les données en mode archivelog. Une fois que les journaux sont pleins, ils sont archives.
  • Multiplxer les fichiers de journaux(historique de modifications). LOGFILE
Si la bdd fct en mode archiveLOG, on peut realiser des sauvegardes bases ouvertes. En mode archiveLog; on part d'une archive que l'onapplciuqe sur le dernier fichier de journalisation pour retrouver ses données.
CREATE DATABASE test
MAXINSTANCES 1
MAXLOGHISTORY 1
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
DATAFILE '/usr/oracle/OraHome1/oradata/aultdb1/test/system01.dbf' SIZE 300M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
EXTENT MANAGEMENT LOCAL
SYSAUX DATAFILE '/usr/oracle/OraHome1/oradata/aultdb1/test/sysaux01.dbf' SIZE 120M REUSE AUTOEXTEND ON NEXT 10240K MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE TEMP TEMPFILE '/usr/oracle/OraHome1/oradata/aultdb1/test/temp01.dbf' SIZE 20M REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED EXTENT MANAGEMENT LOCAL
UNDO TABLESPACE "UNDOTBS1" DATAFILE '/usr/oracle/OraHome1/oradata/aultdb1/test/undotbs01.dbf' SIZE 200M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
CHARACTER SET WE8ISO8859P1
NATIONAL CHARACTER SET AL16UTF16
LOGFILE GROUP 1 ('/usr/oracle/OraHome1/oradata/aultdb1/test/redo01.log') SIZE 10240K,
GROUP 2 ('/usr/oracle/OraHome1/oradata/aultdb1/test/redo02.log') SIZE 10240K,

GROUP 3 ('/usr/oracle/OraHome1/oradata/aultdb1/test/redo03.log') SIZE 10240K
USER SYS IDENTIFIED BY "password" USER SYSTEM IDENTIFIED BY "password";

mardi 22 décembre 2009

Refecences WEB

  • http://pagesperso-orange.fr/bernard.lupin/exemple.htm

introduction OLAP

OLAP fait partie des technologies d'analyse des bases de données.
On distingue plusieurs types:
  • OLAP(online analsys processus), système décisionnel d'analyse basé sur un cube
  • ROLAP(analyse basée sur des requêtes relationnelles le plus souvent agreges)
  • MOLAP(analyse multimensionnelle)
Un peu de vocabulaire:

Cube: structure dimensionnelle permettant l'analyse d'informations quantitative(des indicateurs) en les segmentant sur un ensemble d'axe d'analyse >> dimension

Indicateur: information chiffree mesurant la performance d'activité d'une entreprise ou d'un service.(Vente, CA...)


Modèle en etoile: Technique de modelisant dimensionnelle visant à distinguer la table de fait des tables de mesure. La table de fait est au centre, les tables de dimension graviant autour.

datamart:sous ensemble d'un datawarehouse

Data Warehouse: entrepot de données , base dédiée au décisionnel, mise à jour par batch


Ref web:

Philosophie d'une application

  1. Couche Web(IHM)
    • Formuaire Struts
    • Actions struts
    couche service(Service manipulant les objets métier du modele)
    • interface
    • implémentation
    Couche domaine(modèle objet métier de l'application)
    • modele DAO
    • ,interface DAO




Introudction Spring

Dans le cadre de mon projet de master2, sur un gestionnaire de projet, je fais une étude sur des framework java.

Java EE est une réponse inadaptée dans de nombreux cas.
Problématique des développement JavaEE:
  • compléxite de la plateforme
  • lourdeur des tests unitaires
  • lourdeur de la mise en oeuvre des EJB
  • Nécessite d'avoir un serveur d'applications
Spring résoud ces pb par
  • utilisation de l'inversion de controle
  • la mise en place d'un conteneur léger
  • programmation orientée aspect
  • intégration d'autres framework (struts)
  • persistance des données
Pour réaliser les tests, je m'appuierai sur une application de gestion de liste
http://tudu.sourceforge.net


Réponses de spring:
  • conteneur léger
  • AOP
  • ajout de framefrork optionnels

lundi 21 décembre 2009

Design pattern une introduction

L'enseignement néglige trop souvent l'étude des design pattern. Ils sont pourtant omniprésents dans le JDK et dans de nombreuses applications ,API,framework. J'avoue que c'est un peu complexe mais le détour en vaut la chandelle. Comprendre qq design pattern peut aider à comprendre à utiliser certains framework et API java.

J'ai decouvert les design pattern dans l'etude du jdk:

  • La fabrique
  • L'observer(pattern observer swing)

Les ressources que j'ai utilisé sont:

  • web
    • http://www.javaworld.com/javaworld/jw-03-2003/jw-0328-designpatterns.html
  • Livres
    • Tete la premiere en design pattern
      • http://digitbooks.fr/catalogue/9782815000031.html

Ainsi, l'observer est utilisé en swing pour implémenter la notion de l'objet qui ecoute(listener) de celui qui recoit un evenenement. C'est un peu similaire à la notion d'abonnement à un message.

Il y en a bcp d'autres pattern(17 à disposition).


Une bonne conception serait de :

  • Identifier les aspects de votre application qui varient et séparez les de ceux qui demeurent constants
Extraire les parties variables et les encapsulezaugmenter
  • Programmer une interface non une implémentation