На этот вопрос было бы намного легче ответить, если бы вы могли показать некоторые примеры данных. На самом деле, я думаю, что вы сосредоточены на неправильном вопросе. Если вы можете четко решить, что означает иметь две строки в CSV с одинаковым процессом, и затем вы решите, как вы собираетесь кодировать это значение в своей модели RDF, тогда возникает вопрос о том, как писать код - как массив или что-то еще - будет намного понятнее.
Например (и я собираюсь составить здесь некоторые данные - как я уже сказал, было бы проще, если бы вы показали реальный пример), предположим, что ваш CSV содержит:
processId,startTime,endTime
123,15:22:00,15:23:00
123,16:22:00,16:25:00
Итак, процесс 123
имеет, по-видимому, две пары времени начала и окончания. Если вы наивно моделируете это в RDF, вы получите запутанную модель:
process:process123
a :Process;
process:start "15:22:00"^^xsd:time;
process:end "15:23:00"^^xsd:time;
process:start "16:22:00"^^xsd:time;
process:end "16:25:00"^^xsd:time;
.
, что предполагает, что у одного процесса было два времени начала (и два времени окончания), что выглядит бессмысленным. Однако может случиться так, что в действительности у вас есть один процесс с несколькими эпизодами, предлагающий один из способов его моделирования, или периодический процесс, который происходит в разное время, или, как вы предложили, подпроцессы родительского процесса. Или что-то совсем другое (я только догадываюсь, я не знаю ваш домен). Как только вы поймете, что означают данные, вы можете создать подходящую модель RDF. Например, эпизодический процесс может быть:
process:process123
a :Process;
process:episode [
a process:Episode;
process:start "15:22:00"^^xsd:time;
process:end "15:23:00"^^xsd:time;
];
process:episode [
a process:Episode;
process:start "16:22:00"^^xsd:time;
process:end "16:25:00"^^xsd:time;
]
.
Как только моделирование станет ясным в вашем уме, я думаю, вы увидите, что вопрос о том, как создать RDF для желаний, утраивается из кода Java - и нужен ли вам массив - намного яснее. Не менее важно то, что вы можете думать с точки зрения тестов JUnit, которые вы написали бы, чтобы проверить, правильно ли работает ваш код.