2017-04-24 18 views
0

良い一日のみんな 私はモデルを作成した後、一つのRDFファイルから辞書を作成しようとしています。私はモデルを作成した後、それぞれのステートメントを取り、件名、述語、空白のノードとリテラル、 に番号を割り当てますが、マップを作成するときに、マップについてのエラーが多すぎます。なぜ、誰かが私を助けることができないのですか? コードは次のとおりです。SCALAからの地図を使って辞書を作成

var x:Int=0 
    val dictionary:scala.collection.immutable.Map[Node, Int] 
    // read the RDF/XML file 
    model.read(in, null) 
    val iter:StmtIterator = model.listStatements() 

    // print out the predicate, subject and object of each statement 
    def print { 
    while (iter.hasNext) { 
     { 
     x+=1 
     val stmt: Statement = iter.nextStatement 
     val subject: Node = stmt.getSubject.asNode() 
     dictionary(subject,x) 
     x+=1 
     val predicate: Node = stmt.getPredicate.asNode() 
     dictionary(predicate,x) 
     x+=1 
     val obj: Node = stmt.getObject.asNode() 
     dictionary(obj,x) 

     } 
    } 
    for ((k,v) <- dictionary) printf("key: %s, value: %s\n", k, v) 
    } 

答えて

0

あなたは不変(不変)地図を作成しています。

val dictionary:scala.collection.immutable.Map[Node, Int] 

すべてのマップのapply()方法は、要素検索方法であり、それは唯一の引数(キー)となります。その後、

何ができるか
dictionary(obj,x) <-- too many args, can't retrieve element from Map 

変更可能な地図を使用している...

val dictionary: collection.mutable.Map[Node, Int]() 

...と更新/そうのようにそれを挿入します。

dictionary += (obj -> x) 
関連する問題