Eng.Roqaya Ответов: 2

Файл читать TTL и пересечение вам тему, прогнозировать и объекта.


Я пытаюсь прочитать TTL-файл и сделать так, чтобы обход получал субъект, прогноз и объект.

программа успешно компилируется, но не выводится в результате ввода Бесконечного вызова, как я понял. любое предложение о помощи

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package new_try;
 
//import static com.hp.hpl.jena.assembler.JA.Model;
//import com.hp.hpl.jena.graph.Triple;
//import com.hp.hpl.jena.rdf.model.Model;
///*import com.hp.hpl.jena.rdf.model.ModelFactory;*/import java.io.File;
import com.hp.hpl.jena.graph.Triple;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import org.apache.jena.riot.RDFDataMgr;
//import org.apache.jena.riot.RDFDataMgr;
import org.apache.jena.riot.lang.PipedRDFIterator;
import org.apache.jena.riot.lang.PipedRDFStream;
import org.apache.jena.riot.lang.PipedTriplesStream;
 
/**
 *
 * @author bonn
 */
public class New_try {
 
    /**
     * @param args the command line arguments
     * @throws java.io.FileNotFoundException
     */
  
    public static void main(String[] args) throws FileNotFoundException   {
        
  
        final String filename = "E:\\yagoTransitiveType.ttl";
        System.out.println(filename);
        
          System.out.println("Hello1");
          PipedRDFIterator<Triple> iter = new PipedRDFIterator<>();
           final PipedRDFStream<Triple> inputStream = new PipedTriplesStream(iter);
         // PipedRDFStream and PipedRDFIterator need to be on different threads
         ExecutorService executor = Executors.newSingleThreadExecutor();
 //         Create a runnable for our parser thread
        Runnable parser;
        parser = new Runnable() {
           
            @Override
            public void run() {
        System.out.println(filename);
//                 Call the parsing process.
                RDFDataMgr.parse(inputStream, filename);
                
  
            }
        };
//         Start the parser on another thread
        executor.submit(parser);
 
        
        while (iter.hasNext()) {
            Triple next = iter.next();
            System.out.println("Subject:  "+next.getSubject());
            System.out.println("Object:  "+next.getObject());
            System.out.println("Predicate:  "+next.getPredicate());
            System.out.println("\n");
        }


Что я уже пробовал:

Я использовал этот код . программа успешно компилируется но не дает никакого результата

2 Ответов

Рейтинг:
0

Patrice T

Успешная компиляция - это только признак отсутствия синтаксической ошибки. Это не признак корректности программы..

Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик позволяет вам следить за выполнением строка за строкой, проверять переменные, и вы увидите, что есть точка, в которой он перестает делать то, что вы ожидаете.
Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/jdb.html[^]
https://www.jetbrains.com/idea/help/debugging-your-first-java-application.html[^]