IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ontologies Discussion :

Peut-on définir une relation ayant un domaine et plusieurs "ranges"


Sujet :

Ontologies

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 14
    Points
    14
    Par défaut Peut-on définir une relation ayant un domaine et plusieurs "ranges"
    Bonjour à tous,

    j'ai une question concernant la conception d'une ontologie OWL,
    une relation de type "object property" lient normalement un domaine à un range,
    par exemple si je veux exprimer que la classe "voiture" agrège au min 1 moteur et 2 sièges
    est-ce que cela peut être exprimé ainsi:

    je définis 3 classes: Car, Engine, Seat

    (sous protégé) au niveau de la classe Car, Superclasses, je définis ces deux superclasses:
    aggregates exactly 1 Engine
    aggregates min 2 Seat

    ce qui donne en OWL :

    <owl:Class rdf:about="http://www.example.org/CorpusOnto#Car">
    <rdfs:subClassOf>
    <owl:Restriction>
    <owl:onProperty rdf:resource="http://www.example.org/CorpusOnto#aggregates"/>
    <owl:onClass rdf:resource="http://www.example.org/CorpusOnto#Engine"/>
    <owl:qualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">1</owl:qualifiedCardinality>
    </owl:Restriction>
    </rdfs:subClassOf>
    <rdfs:subClassOf>
    <owl:Restriction>
    <owl:onProperty rdf:resource="http://www.example.org/CorpusOnto#aggregates"/>
    <owl:onClass rdf:resource="http://www.example.org/CorpusOnto#Seat"/>
    <owl:minQualifiedCardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:minQualifiedCardinality>
    </owl:Restriction>
    </rdfs:subClassOf>
    </owl:Class>

    je voulais savoir si c'est faisable ?

    Merci d'avance

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 134
    Points
    134
    Par défaut
    Ici c'est pas plusieurs "ranges" que tu veux, mais faire des contraintes sur le nombre d'instances. Oui c'est possible.

    Avoir plusieurs "ranges" c'est possible aussi, mais c'est pas ce que tu cherches a faire.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 18
    Points : 14
    Points
    14
    Par défaut
    merci pour votre réponse,
    mais le fait de définir deux restrictions, une pour Engine et une pour Seat, cela ne veut-il pas dire que je définis implicitement deux ranges pour la relation "aggregates" liée au Domain "Car" et aux ranges "Engine" et "Seat" en définissant en plus les contraintes d'occurence ?

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 134
    Points
    134
    Par défaut
    Si, aussi j'avais pas vu ca comme ca

  5. #5
    Membre actif
    Avatar de April Fool
    Homme Profil pro
    Fou d'avril
    Inscrit en
    Février 2012
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Fou d'avril

    Informations forums :
    Inscription : Février 2012
    Messages : 99
    Points : 215
    Points
    215
    Par défaut
    Citation Envoyé par jolla Voir le message
    j'ai une question concernant la conception d'une ontologie OWL,
    une relation de type "object property" lient normalement un domaine à un range,
    À proprement parler, non, une "object property" lie un individu à un individu. Pour fixer un domain ou un range, il faut le déclarer avec rdfs:domain et rdfs:range. Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    :aggregates  rdfs:domain  :Car .
    Citation Envoyé par jolla Voir le message
    (sous protégé) au niveau de la classe Car, Superclasses, je définis ces deux superclasses:
    aggregates exactly 1 Engine
    aggregates min 2 Seat
    Lorsque tu écris ça, tu ne donnes ni un domain ni un range. Prend cet exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    a_pour_parent  exactly  1  Femme
    Heureusement que cela ne force pas le range de a_pour_parent à être Femme, sinon on ne pourrait pas avoir de père !

    Citation Envoyé par jolla Voir le message
    ce qui donne en OWL :
    Ce qui donne en RDF/XML.

    Quand tu écris aggregates exactly 1 Engine, c'est autant du OWL que ton bout de code XML. C'est un peu comme si tu donnais d'abord des tables avec lignes et colonnes, et que tu indiquais ensuite "ce qui donne, en algèbre relationnelle" et tu mets ensuite le code SQL correspondant. RDF/XML, c'est une syntaxe, OWL c'est un formalisme.

    Citation Envoyé par jolla Voir le message
    je voulais savoir si c'est faisable ?
    Bien sûr puisque tu l'as fait.
    7susd bl'ham owsql wuul pô!

Discussions similaires

  1. Définir une relation 1-1
    Par Proxy dans le forum Hibernate
    Réponses: 4
    Dernier message: 07/02/2012, 13h05
  2. Réponses: 4
    Dernier message: 06/02/2012, 09h55
  3. Définir une relation sans requête supplémentaire ?
    Par Bakura dans le forum Doctrine2
    Réponses: 10
    Dernier message: 12/10/2011, 12h09
  4. Comment définir une relation d'équivalence ?
    Par Amon-Râ dans le forum Prolog
    Réponses: 10
    Dernier message: 19/09/2006, 00h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo