2

rdf4h を使用して rdf から国の首都を取得しようとしています

Right (rdf::TriplesGraph) <- parseURL (XmlParser Nothing Nothing) "http://live.dbpedia.org/data/Spain.rdf"

let c = query rdf (Just (UNode "http://live.dbpedia.org/resource/Spain"))  (Just (UNode "http://live.dbpedia.org/property/capital")) Nothing

しかし、空のリストを返します

と 3 重になっていることがわかります。

"ns3:string" 

述語、代わりに

"http://live.dbpedia.org/property/capital"

URLを解析した後、

これをどのように解決すればよいですか、それとも他の方法がありませんか?

編集:この機能を見つけました

uniqTriplesOf :: rdf -> Triples

これは名前空間を展開しますが、問題は、この rdf を完全な uris でクエリするにはどうすればよいかということです

4

1 に答える 1

1

これは、rdf4h API の欠点のようです。今のところ、クエリを記述する方法は次のとおりです。

Right (rdf::TriplesGraph) <- parseURL
           (XmlParser Nothing Nothing)
           "http://live.dbpedia.org/data/Spain.rdf"
let c = query rdf
          (Just (UNode "http://live.dbpedia.org/resource/Spain"))
          (Just (UNode "ns2:capital"))
          Nothing

API に関数を追加してみます。

queryExpanded :: rdf -> Maybe Node -> Maybe Node -> Maybe Node -> Triples

将来実装されると、次のように記述できます。

let c = queryExpanded rdf
          (Just (UNode "http://live.dbpedia.org/resource/Spain"))
          (Just (UNode "http://live.dbpedia.org/property/capital"))
          Nothing
于 2015-10-20T13:06:33.683 に答える