2014-01-28 5 views
-2

Представьте, что у вас есть несколько графиков запросов, которые могут или не могут совместно использовать некоторые узлы (т. Е. Иметь некоторые общие подграфы), как мы можем объединить их в один граф запросов. Обратите внимание, что я не пытаюсь агрегировать результат этих графов запросов здесь, я просто хочу взять несколько запросов и объединить их в один граф запросов, если это возможно.Слияние графиков запросов SPARQL в одном

Редактировать: Я действительно думал об этом дальше, я говорю о нескольких запросах с общими тройными узорами. Я хочу объединить их в один запрос.

Изменить: Как отмечалось, было бы проще с запросом образца, чтобы проиллюстрировать точку, так что давайте рассмотрим следующие вопросы:

QUERY1:

SELECT ?X 
WHERE 
{ 
    ?X rdf:type ub:GraduateStudent . 
    ?X ub:takesCourse http://www.Department0.University0.edu/GraduateCourse0 
} 

Query2:

SELECT ?X, ?Y, ?Z 
WHERE 
{ 
    ?X rdf:type ub:GraduateStudent . 
    ?Y rdf:type ub:University . 
    ?Z rdf:type ub:Department . 
    ?X ub:memberOf ?Z . 
    ?Z ub:subOrganizationOf ?Y . 
    ?X ub:undergraduateDegreeFrom ?Y 
} 

Объединенный запрос будет написан примерно так:

SELECT ?X, ?Y, ?Z 
WHERE 
{ 
    ?X rdf:type ub:GraduateStudent . 
    optional {?Y rdf:type ub:University .} 
    optional {?Z rdf:type ub:Department .} 
    optional {?X ub:memberOf ?Z .} 
    optional {?Z ub:subOrganizationOf ?Y .} 
    optional {?X ub:undergraduateDegreeFrom ?Y} 
    optional { ?X ub:takesCourse http://www.Department0.University0.edu/GraduateCourse0} 

} 

Или, возможно, потенциально переписан в виде федеративного запроса? возможно ли это с использованием какого-либо API?

+0

Что такое «граф запросов»? Вы говорите об именованных графиках? Вы спрашиваете о нескольких шаблонах графа в запросе SPARQL? –

+1

Основываясь на вашем комментарии к ответу Майкла, это звучит как последнее, но это всего лишь вопрос их объединения. Если у вас есть один шаблон: ': нравится? Person' и pattern two:' : ест? Food', вы просто объединяете их как: ': нравится? Человек. : ест? Еда .'. Можете ли вы привести пример того, что вы пытаетесь сделать? –

+0

Я думаю, что способ, которым я изначально объяснял это, был путаным, я говорю о нескольких запросах с общими тройными шаблонами и некоторыми тройными шаблонами, которые могут быть не распространены среди них. Я хочу создать один запрос, который будет представлять их все. –

ответ

0

Я думаю, что вы ищете возможность specify the active graph, на которую оценивается запрос. В основном вы используете FROM и/или FROM NAMED, чтобы сообщить движку запроса графики, которые вы хотели бы рассмотреть при оценке вашего запроса.

+0

Я знаю, о чем вы говорите, но это не то, что я ищу! С теоретической точки зрения запрос SPARQL представляет собой небольшой шаблон графика, сопоставляемый с графиком RDF. У меня есть несколько таких графов запросов, как можно объединить их в один граф запросов. Я не пытаюсь указать, из какого графа будет запрашиваться. –

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