2010-08-26 4 views
0

Je suis à la recherche de la méthode/outil/syntaxe pour interroger les annotations dans une ontologie RDF/OWL.Comment interrogez-vous OWL Annotations

Les moteurs de requête que j'ai trouvé des cours de recherche, les propriétés, les individus, mais je n'ai pas trouvé un qui recherche en fonction de la valeur par exemple DC: Description de

Répondre

0

Avec SPARQL, vous devriez être en mesure d'interroger les annotations via les propriétés qui vous intéressent, par exemple:

PREFIX dc: <http://purl.org/dc/elements/1.1/> 
SELECT ?x ?desc { 
    ?x dc:description ?desc . 
} 

Cette méthode pourrait également être utilisé pour récupérer tous les cas avec une valeur d'annotation particulière, tels que:

PREFIX dc: <http://purl.org/dc/elements/1.1/> 
SELECT ?x { 
    ?x dc:description "some description string" . 
} 

Ou bien, vous pouvez même essayer de faire correspondre basé sur une REGEX:

PREFIX dc: <http://purl.org/dc/elements/1.1/> 
SELECT ?x { 
    ?x dc:description ?desc . 
    FILTER REGEX(STR(?desc), "^Some regex") . 
} 
2

Si vous êtes après un outil programmtic et l'ontologie est OWL, vous pouvez utiliser l'API Manchester OWL:

OWLClass classA = factory.getOWLClass(IRI.create("http://your/url/here#ClassA")); 
OWLAnnotationProperty dcProperty = factory.getOWLAnnotationProperty(IRI.create("http://purl.org/dc/elements/1.1/description")); 

for (OWLAnnotation annotation : classA.getAnnotations(ontology, dcProperty)) { 
OWLLiteral literal = (OWLLiteral) annotation.getValue(); 
String literalString = literal.getLiteral() 
       } 

Ce vous obtiendrez la valeur de cette propriété particulière. "factory" est une instance de OWLDataFactory.

Espérons que ça aide un peu!

+0

Ça marche pour moi, merci –