jena クエリ ソリューション (たとえばsol1: user=u1, location=loc1, LocationType=type1
) に結果バインディングがあり、データセットを使用して、一連の jena ルールを使用して結果バインディングを拡張したいと考えています。実際、sol1があり
loc1 location:ispartof loc2
loc2 rdf:type loc2Type
、データセットにあるため、この新しいソリューションを結果セットに追加したいと思います:
sol2: user1=u1, location=loc2, locationType=loc2Type
そのためには、ソリューション セットをデータセットに追加し、
@prefix pre: <http://jena.hpl.hp.com/prefix#>.
[rule1: (?sol pre:user ?a) (?sol pre:location ?b) (?sol pre:lcationType ?c) (?b location:ispartof ?d) (?d rdf:type ?type) -> (sol2 pre:user ?a) (sol2 pre:location ?d) (sol2 pre:locationType ?type) ]
上記のルールに基づいて推論を行うようなルールを作成する必要があります。その後、データセットからすべてのソリューションを抽出するには、データセットをクエリする必要があります
@prefix pre: <http://jena.hpl.hp.com/prefix#>.
select * WHERE {?sol pre:user ?a. ?sol pre:location ?b. ?sol pre:lcationType ?c.}
今私の問題は
1) 2 つのデータセットに共鳴ルールを記述して、ソリューションを大きなデータセットに追加しないようにする方法はありますか?
2)ルールの結果で新しいソリューションごとに個別に名前を付ける方法は?
ありがとう。