Я ищу метод / инструмент / синтаксис для запроса аннотаций в онтологии RDF / OWL.
Поисковые движки, которые я нашел, находят классы поиска, свойства, отдельных лиц, но я не нашел тот, который будет искать на основе значения, например, DC: Описание
Если вам нужен инструмент программирования и онтология OWL, вы можете использовать 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() }
Это даст вам стоимость этого конкретного свойства. "фабрика" здесь является экземпляром OWLDataFactory.
Надеюсь, это немного поможет!
С SPARQL вы сможете запрашивать аннотации через интересующие вас свойства, например:
PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?x ?desc { ?x dc:description ?desc . }
Этот метод также можно использовать для извлечения всех экземпляров с определенным значением аннотации, например:
PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?x { ?x dc:description "some description string" . }
Или, вы можете даже попытаться найти совпадение, основываясь на каком-то REGEX:
PREFIX dc: <http://purl.org/dc/elements/1.1/> SELECT ?x { ?x dc:description ?desc . FILTER REGEX(STR(?desc), "^Some regex") . }