开发者

How do you query OWL Annotations

I am searching for the method/tool/syntax to query annotations in an RDF/OWL ontology.

The query engines I have found search classes, properties, individuals, but I have not found one that will search based on the value for example开发者_StackOverflow中文版 DC:Description


With SPARQL, you should be able to query annotations via the properties you're interested in, for example:

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

This method could also be used to retrieve all instances with a particular annotation value, such as:

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

Or, you could even try to match based on some REGEX:

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


If you are after a programmtic tool and the ontology is OWL you can use the Manchester OWL API:

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()
                }

That will get you the value of that particular property. "factory" here is an instance of OWLDataFactory.

Hope that helps a little!

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜