Использование библиотеки rowlex для извлечения информации о тегах в C#
Я использую библиотеку Rowlex. У меня есть файл.rdf.xml (расширение) с содержанием:
<Ontologyowl:User rdf:about="userid_1">
<Ontologyowl:hasRated>
<Ontologyowl:Rating rdf:about="Rating_1">
</Ontologyowl:Rating>
</Ontologyowl:hasRated>
<Ontologyowl:hasRated>
<Ontologyowl:Rating rdf:about="Rating_1">
</Ontologyowl:Rating>
</Ontologyowl:hasRated>
</Ontologyowl:User>
Я намерен извлечь информацию в теге hasRated. Я знаю, что этого можно добиться с помощью URI "Рейтинг", но вывод, который я получаю, не тот, который мне требуется. Я намереваюсь извлечь всю информацию в теге hasRated (как указано в теге hasRated) в файле. В настоящее время я могу извлечь информацию только из первого тега hasRated, мне нужно извлечь информацию из каждого тега hasRated пользователя.
Буду очень признателен за любую помощь в этом вопросе. Благодарю.
1 ответ
Если я правильно понимаю ваш вопрос, вы сгенерировали сборку с OwlGrinder.exe из вашей онтологии. В классе User свойство User.hasRated позволяет получить доступ только к первому контенту. Но вы хотели бы иметь что-то вроде этого:
public class User : OwlThing
{
...
public Rating hasRated { get... set...}
public Rating[] hasRateds {get... set...}
...
}
У меня есть хорошие новости, вы можете получить их. У вас есть два варианта:
Использование полных классов. Помимо многих редко используемых функций, полные классы также имеют версию всех свойств в виде массива. Их можно узнать по соглашению об именах, их имена всегда заканчиваются подчеркиванием. Когда вы ищите пользователей пользователя в RdfDocument, получите полные классы (User_ вместо User). Подробнее о легких и полных классах вы можете прочитать во второй половине этой страницы: http://rowlex.nc3a.nato.int/Content/AssemblyGeneration.htm
Загрузите ROWLEX2.3 (опубликовано непосредственно перед написанием этого ответа). Автоматически сгенерированные классы освещения теперь также имеют версию свойств в виде массива.