如何解析 Notation3 文件表示的三元组并将其加载到数据库中?我对Jena和Sesame有点熟悉,但它们似乎适合处理 RDF 或 Turtle,而不是完整的 Notation3。
我发现用于处理 N3 的强大工具相对较少。这里列出了我找到的几个,并且只包含粗略的 Python 脚本,这些脚本只能执行基本的命令行操作,并且似乎没有标准的打包、分发或维护。默认的 Python 库似乎是,notation3.py
但我找不到它的单个主页,并且在 Internet 上发现了几十个不同的版本。
例如,假设我有以下 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 <http://originating/site> ;
:name "John Doe" ;
:data-collection-date "2005-01-01" ;
] ;
:transcribed-by "Al Nonymous" ;
:transcription-date "2010-09-01" .
我希望能够将此(可能还有数千条类似的记录)加载到数据库中,这样我就可以运行任意查询,例如“谁在 2010 年转录了包含常见西班牙名字的记录?” 或“与 X 属相关的平均花色是多少?”
这与当前的语义网络工具和 N3 目前是否实用?