¿Cómo se analizan y se cargan los triples representados por un archivo de notación3 en una base de datos? Estoy algo familiarizado con Jena y Sesame, pero estos parecían estar diseñados para procesar RDF o Turtle, notación completa3.Cargando la notación3 en una base de datos
He encontrado relativamente pocas herramientas robustas para tratar con N3. Las pocas que he encontrado están en la lista here, y solo consisten en scripts de Python aproximados que solo pueden realizar acciones básicas de línea de comandos y parecen no tener un empaque, distribución o mantenimiento estándar. La biblioteca predeterminada de Python parece ser notation3.py
pero no pude encontrar una sola página de inicio para ella, y encontré docenas de versiones diferentes diseminadas por Internet.
Por ejemplo, decir que tengo la siguiente N3 que representa una clasificación botánica:
{
[]
: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 <http://originating/site> ;
:name "John Doe" ;
:data-collection-date "2005-01-01" ;
] ;
:transcribed-by "Al Nonymous" ;
:transcription-date "2010-09-01" .
Quiero ser capaz de cargar estos (y potencialmente miles de registros similares) en una base de datos para que pueda ejecutar consultas arbitrarias como, "¿Quién transcribió registros que contienen nombres comunes en español en el año 2010?" o "¿Cuál es el color de flor promedio asociado con el género X?"
¿Esto es actualmente práctico para hacer con las herramientas web semánticas actuales y N3?