2015-11-14 3 views
3

Dans RDF/RDFS/OWL, comment savoir si une entité est purement une instance ou une classe? Je comprends que les entités de classe sont aussi des instances, car ce sont des instances de l'entité "class" et des sous-classes d'autres classes. Cependant, je crois que certaines entités sont simplement des instances d'une classe, et non des classes en elles-mêmes.Comment savoir si une ressource/entité est une classe ou une instance

En ce moment, je pense la seule façon de dire quelque chose est purement une instance est de regarder (au sein que les données rdf de l'entité) pour les états avec le rdf:type prédicat et rechercher la absence de toute déclaration avec le rdfs:subClassOf ou prédicat équivalent. Cependant, la recherche de l'absence d'instructions n'est pas un bon moyen de s'assurer que quelque chose est vraiment une classe ou une instance.

Existe-t-il un meilleur moyen de déterminer si une entité est une classe ou une instance purement? Espérant qu'il y a peut-être quelque chose sous le nez.

Répondre

4

Dans OWL, une classe doit être déclarée comme telle, soit dans l'ontologie où elle est utilisée, soit dans l'une des ontologies qui l'importent. Ne pas avoir un axiome de déclaration est une violation de profil - cela signifie que l'ontologie est formellement dans OWL Full (par exemple, il n'y a aucune garantie qu'un raisonneur sera capable de l'utiliser de manière significative).

Malheureusement, les ontologies utilisées en pratique présentent souvent des violations, ce qui n'est pas un critère totalement satisfaisant.

Les individus n'ont pas cette restriction, que ce soit en OWL, RDF ou RDFS. Par conséquent, l'absence d'assertion de type pour une entité (ou la présence d'une seule assertion rdf:type owl:Thing) est une bonne indication que vous traitez avec un individu.

Outre apparaissant dans subClassOf axiomes, une classe peut également apparaître dans une equivalent, disjointWith, ou que la partie de remplissage d'une restriction (OWL).

Pour compliquer davantage le sujet, le calage entre les classes et les individus est supporté - ce qui signifie que le même IRI peut être déclaré en tant que classe et en tant qu'individu. Donc, il est possible - et valide - qu'une classe dans une ontologie soit utilisée comme individu dans une autre.

+0

Lorsque vous dites qu'une classe doit être déclarée comme telle, voulez-vous dire que son RDF doit contenir une déclaration triple avec l'objet comme 'class'? – LazerSharks

+0

Oui - voir le tableau 7 ici pour la spécification https://www.w3.org/TR/owl2-mapping-to-rdf/#Parsing_of_the_Ontology_Header_and_Declarations – Ignazio