2015-05-12 2 views
1

Я хочу подсчитывать утверждения определенной связи в OWL-файле. если следующая вся моя Онтология: -Подсчитайте определенную связь в OWL-файле с использованием запроса sparql

<owl:NamedIndividual rdf:about="file:/C:/myOnt.owl#comfort"> 
    <SynonymOf rdf:resource="file:/C:/myOnt.owl#impunity"/> 
    <SynonymOf rdf:resource="file:/C:/myOnt.owl#sooth"/> 
    <SynonymOf rdf:resource="file:/C:/myOnt.owl#ease"/> 
</owl:NamedIndividual> 

<owl:NamedIndividual rdf:about="file:/C:/myOnt.owl#population"> 
    <SynonymOf rdf:resource="file:/C:/myOnt.owl#habitation"/> 
</owl:NamedIndividual> 

затем SPARQL запрос должен дать мне что-то вроде: -

 SynonymOf = 4 (i.e 4 assertions for <SynonymOf> relation 

Я намерен выполнить запрос на Jena fuzeki.

ответ

3

Простым способом было бы:

PREFIX : <http://example.com#> 
SELECT (count(?o) as ?count) 
WHERE { 
    ?s :SynonymOf ?o 
} 

Однако для связывания быть отнесены к конкретным объектам, вы можете рассмотреть вопрос об использовании Group By:

PREFIX : <http://example.com#> 
SELECT ?s (count(?o) as ?count) 
WHERE { 
    ?s :SynonymOf ?o 
} 
GROUP BY ?s 
0
SELECT (COUNT(?s) as ?SynonymOf) 
WHERE { 
    GRAPH ?g {?s SynonymOf ?o } 
    } 
+0

Вы действительно не нужно '? g'. – Artemis

+1

зависит от используемого трипстрона. С помощью Stradog вам это нужно, если вы не используете непосредственно график по умолчанию. Многие другие тройные магазины помещают копию каждой тройки в каждый график графика по умолчанию, поэтому вам это действительно не нужно. Я не знаком с jena fuzeki, но использование '? G' - более консервативная гипотеза. – ffa

+1

@ffa Если тройки в графе по умолчанию, а не в любом именованном графике, не будут ли 'graph? G {...}' исключать их? Спектр говорит: «Когда вы запрашиваете набор графиков, ключевое слово GRAPH используется для сопоставления шаблонов с именованными графами. GRAPH может предоставить IRI для выбора одного графика или использовать переменную, которая будет располагаться по IRI всех названных графиков в запросе RDF ". Так что вам нужно '{graph? G {...}} union {...}'. Но тогда это может быть несколько вещей, если по умолчанию это объединение названных графиков (но это не гарантировано). –

Смежные вопросы