2017-04-24 5 views
0

좋은 하루 모두 아파치를 사용하여 하나의 RDF 파일에서 사전을 만들려고합니다. Jena, 모델을 만든 후 각 구문을 가져 와서 주제, 술어 및 개체로 파일을 나눕니다. , 각 고유 URI, 공백 노드 및 리터럴에 숫자를 할당합니다. 하지만지도를 만들 때지도에 대한 오류가 너무 많은 인수를 포함하고 있는데 왜 이해할 수 없습니까? 누군가가 나를 도울 수 있습니까? 코드는 다음과 같다 :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)