У меня есть граф RDF с несколькими типами отношений (отношения с одним и тем же префиксом и с разными префиксами). Мне нужно вызвать службу по графу, но отфильтровать некоторые отношения.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
@prefix myPref: <http://www.myPref.com/>.
@prefix otherPref: <http://www.otherPref.com/>.
myPref:1
myPref:label "1" ;
myPref:solid myPref:2 ;
myPref:dotted myPref:4 ;
otherPref:dashed myPref:3 ;
otherPref:dashed2 myPref:3 .
myPref:2
myPref:label "2" ;
myPref:solid myPref:3 .
myPref:3
myPref:label "3" .
myPref:4
myPref:label "4" ;
myPref:dotted myPref:3 .
Я хотел бы запустить сервисный вызов для извлеченного подграфа, содержащего только сплошные и точечные отношения (в этом конкретном случае, запуская сервис, вычисляющий кратчайший путь между 1 и 3, я хочу исключить эти прямые ссылки).
Я запускаю службу (по всему графику) следующим образом:
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>.
PREFIX myPref: <http://www.myPref.com/>.
PREFIX otherPref: <http://www.otherPref.com/>.
PREFIX gas: <http://www.bigdata.com/rdf/gas#>
SELECT ?sp ?out {
SERVICE gas:service {
gas:program gas:gasClass "com.bigdata.rdf.graph.analytics.SSSP" .
gas:program gas:in myPref:1 .
gas:program gas:target myPref:3 .
gas:program gas:out ?out .
gas:program gas:out1 ?sp .
}
}
Как я могу извлечь подграф, содержащий только те ссылки, которые мне нужны (пунктирные и сплошные), и запустить сервисный вызов для извлеченного подграфа?