230 likes | 327 Views
DAML+OIL. Darpa Agent Markup Language Ontology Inference Layer Working Group du W3C Working Draft Décembre 2001 http://www.w3.org/TR/daml+oil-reference Logique de description avec syntaxe RDF(S). Logique de description.
E N D
DAML+OIL • Darpa Agent Markup Language • Ontology Inference Layer • Working Group du W3C • Working Draft Décembre 2001 • http://www.w3.org/TR/daml+oil-reference • Logique de description avec syntaxe RDF(S)
Logique de description • Modèle objet pour la classification de concepts et l’instanciation d’objet • concept : ensemble d’individus • rôle : relation binaire entre individus • concept et rôle : niveau terminologique (Tbox) • individus : assertion (Abox)
Logique de description (2) • Relation de subsomption : organiser les concepts par niveau de généralité : • un concept A subsume B si l’ensemble des individus représentés par B est inclus dans l’ensemble des individus de A : A est plus général que B • classification : déterminer la position d ’un concept dans une hiérarchie de subsomption
Logique de description (3) • Concepts primitifs vs définis • Les concepts sont définis par des expressions mettant en jeu des concepts et des rôles • condition nécessaire et suffisante • Il suffit d’être compatible avec la définition pour appartenir au concept : celui qui joue avec les Rolling Stones est un Rolling Stone
Exemple Personne Top Ensemble Top Homme Personne Femme (and Personne (not Homme)) membre role chef membre
Exemple (2) Equipe : (and Ensemble (all membre Personne) (atleast 2 membre)) petiteEquipe : (and Equipe (atmost 5 membre))
Exemple (3) D : (and Personne (some enfant) (all (restrict enfant Pauvre) Musicien))) Concept de personne qui a des enfants, dont les enfants pauvres sont musiciens
DAML OIL Logique de description syntaxe XML extension de RDF utilise les types de XML Schema
Classes <daml:Class rdf:ID="Male"> <rdfs:subClassOf rdf:resource="#Animal"/> </daml:Class> <daml:Class rdf:ID="Female"> <rdfs:subClassOf rdf:resource="#Animal"/> <daml:disjointWith rdf:resource="#Male"/> </daml:Class> <daml:Class rdf:ID="Woman"> <rdfs:subClassOf rdf:resource="#Person"/> <rdfs:subClassOf rdf:resource="#Female"/> </daml:Class>
Propriété de range objet <daml:ObjectProperty rdf:ID="hasParent"> <rdfs:domain rdf:resource="#Animal"/> <rdfs:range rdf:resource="#Animal"/> </daml:ObjectProperty> <daml:ObjectProperty rdf:ID="hasFather"> <rdfs:subPropertyOf rdf:resource="#hasParent"/> <rdfs:range rdf:resource="#Male"/> </daml:ObjectProperty>
Propriété de range littéral <daml:DatatypeProperty rdf:ID="age"> <rdf:type rdf:resource="&daml;#UniqueProperty"/> <rdfs:range rdf:resource= "&xmlschema;#nonNegativeInteger"/> </daml:DatatypeProperty>
Sous-classe <daml:Class rdf:ID="Person"> <rdfs:subClassOf rdf:resource="#Animal"/> <rdfs:subClassOf> <daml:Restriction> <daml:onProperty rdf:resource="#hasParent"/> <daml:toClass rdf:resource="#Person"/> </daml:Restriction> </rdfs:subClassOf> Person : (and Animal (all (restrict hasParent Person))
Sous-classe (2) <rdfs:subClassOf> <daml:Restriction daml:cardinality="1"> <daml:onProperty rdf:resource="#hasFather"/></daml:Restriction> </rdfs:subClassOf> <rdfs:subClassOf> <daml:Restriction> <daml:onProperty rdf:resource="#shoesize"/> <daml:minCardinality>1</daml:minCardinality> </daml:Restriction> </rdfs:subClassOf> (atmost 1 father) (atleast 1 shoesize))
Sous-classe (3) <daml:Class rdf:about="#Person"> <rdfs:subClassOf> <daml:Restriction daml:maxCardinalityQ="1"> <daml:onProperty rdf:resource="#hasOccupation"/> <daml:hasClassQ rdf:resource="#FullTimeOccupation"/> </daml:Restriction> </rdfs:subClassOf> </daml:Class>
Propriété <daml:UniqueProperty rdf:ID="hasMother"> <rdfs:subPropertyOf rdf:resource="#hasParent"/> <rdfs:range rdf:resource="#Female"/> </daml:UniqueProperty> Cardinality=1
Transitivité, Inverse <daml:ObjectProperty rdf:ID="hasChild"> <daml:inverseOf rdf:resource="#hasParent"/> </daml:ObjectProperty> <daml:TransitiveProperty rdf:ID="hasAncestor"/> <daml:TransitiveProperty rdf:ID="descendant"/>
Classes complémentaires <daml:Class rdf:ID="Car"> <rdfs:subClassOf> <daml:Class> <daml:complementOf rdf:resource="#Person"/> </daml:Class> </rdfs:subClassOf> </daml:Class>
Classes disjointes <daml:Class rdf:about="#Person"> <daml:disjointUnionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="#Man"/> <daml:Class rdf:about="#Woman"/> </daml:disjointUnionOf> </daml:Class>
Classes équivalentes <daml:Class rdf:ID="HumanBeing"> <daml:sameClassAs rdf:resource="#Person"/> </daml:Class> et aussi : samePropertyAs sameIndividualAs
Intersection de classes <daml:Class rdf:ID="TallMan"> <daml:intersectionOf rdf:parseType="daml:collection"> <daml:Class rdf:about="#TallThing"/> <daml:Class rdf:about="#Man"/> </daml:intersectionOf> </daml:Class> Man est l’intersection de Man et TallThing : le plus grand sous-type commun
Classes définie par énumeration des individus <daml:Class rdf:ID="Height"> <daml:oneOf rdf:parseType="daml:collection"> <Height rdf:ID="short"/> <Height rdf:ID="medium"/> <Height rdf:ID="tall"/> </daml:oneOf> </daml:Class>
Classes définie par la valeur d’une propriété <daml:Class rdf:ID="TallThing"> <daml:sameClassAs> <daml:Restriction> <daml:onProperty rdf:resource="#hasHeight"/> <daml:hasValue rdf:resource="#tall"/> </daml:Restriction> </daml:sameClassAs> </daml:Class>
Instances <continent rdf:ID="Asia"/> <rdf:Description rdf:ID="Asia"> <rdf:type> <rdfs:Class rdf:about="#continent"/> </rdf:type> </rdf:Description> <rdf:Description rdf:ID="India"> <is_part_of rdf:resource="#Asia"/> </rdf:Description>