Как вы анализируете и загружаете тройки, представленные файлом Notation3, в базу данных? Я немного знаком с Jena и Sesame , но они казались приспособленными для обработки RDF или Turtle, а не полной Notation3.
Я ' Мы нашли относительно немного надежных инструментов для работы с N3. Те немногие, что я нашел, перечислены здесь и состоят только из грубых сценариев Python, которые могут выполнять только базовые действия командной строки и, похоже, не имеют стандартной упаковки, распространения или обслуживания. Библиотека Python по умолчанию выглядит так: notation3.py
, но я не смог найти для нее ни одной домашней страницы и нашел десятки различных версий, разбросанных по Интернету.
Например, скажем, у меня есть следующее N3, представляющий ботаническую классификацию:
{
[]
:genus "Abies" ;
:species "alba" ;
:name [:value "Silver Fir" ; :usage "common" ; :language "English" ] ;
:name [:value "European Silver Fir" ; :usage "common" ; :language "English" ] ;
:name [:value "abeto blanco" ; :usage "common" ; :language "Spanish" ] ;
:name [:value "abeto plateado" ; :usage "common" ; :language "Spanish" ] ;
:name [:value "Edeltanne" ; :usage "common" ; :language "German" ] ;
:name [:value "Silbertanne" ; :usage "common" ; :language "German" ] ;
:name [:value "Weißtanne" ; :usage "common" ; :language "German" ] ;
:stem!:type :erect ;
:stem!:height [ :value!:start 30.0 ; :value!:end 50.0 ; :value!:units "m" ] ;
:bark!:color :grey ;
:bark!:ridges :irregular ;
:foliage!:seasonality :evergreen ;
:foliage!:type :needle ;
:foliage!:arrangement :alternate ;
:foliage!:length [ :value!:start 1.0 ; :value!:end 3.0 ; :value!:units "cm" ] ;
:foliage!:width [ :value!:start 0.2 ; :value!:end 0.3 ; :value!:units "cm" ] ;
:foliage!:color :green ;
:foliage!:spiney :FALSE ;
:flower [ :gender :male ; :inflorescence :catkin ; :sense :straight ; :color :brown ] ;
:flower [ :gender :male ; :inflorescence :catkin ; :sense :straight ; :color :yellow ] ;
:flower [ :gender :female ; :inflorescence :catkin ; :sense :straight ; :color :pink ] ;
:fruit [ :kind :cone ; :color :brown ; ] ;
}
:is-a :botanical-classification ;
:source [
:uri ;
:name "John Doe" ;
:data-collection-date "2005-01-01" ;
] ;
:transcribed-by "Al Nonymous" ;
:transcription-date "2010-09-01" .
Я хочу иметь возможность загружать это (и, возможно, тысячи похожих записей) в базу данных, чтобы я мог выполнять произвольные запросы, например: «Кто транскрибировал записи, содержащие распространенные испанские имена, в 2010 году?» или "Какой средний цвет цветов у представителей рода X?"
Практично ли это в настоящее время делать с текущими инструментами семантической сети и N3?