問題タブ [n3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rdf - N3/Turtle オントロジー言語でクラスを作成するためのショートカットはありますか
N3でクラスを作成する方法は次のとおりです。
そして、特定のリソースがそのクラスのインスタンスであることを指定する方法は次のとおりです。
問題: (プログラムで生成された) 20000 を超えるインスタンスを持つクラスを作成したいと考えています。20000 個のインスタンス全体:Pat a :Person.
を記述すると、オントロジー ファイルが冗長になります。
質問: ファイルを小さくするための回避策はありますか?
type-conversion - RDF シリアル化を RDF/XML に変換する
既知のシリアライゼーションを RDF/XML に変換できる例をいくつか見てきましたが、入力形式 (XML/Turtle/N3 など) が不明な場合、変換を行う方法はありますか?
さまざまなシリアル化 (Turtle/xml/n3) で RDF を受け取るツールを作成していますが、呼び出すと
Jenaの Class のメソッドにModel
は、例外があります。
rdf - EulerSharp の xsd:string に str:contains を適用する n3 推論
さまざまな既存のデータと照合する必要がある多数のリソースを含むデータセットがあります。最も単純なアプローチは、さまざまなリテラル間で単純な文字列比較を行うことです。
残念ながら、リテラルは型付き xsd:string であり、EulerSharp 組み込みの str:contains は型付きリテラルでは機能しません。
私は eulersharp ビルトインで見つけることができるすべてを読みましたが、最も近いのは、RIF の rdf:PlainLiteral 述語を使用して xsd:string を PlainLiteral にキャストしようとすることです。ただし、これは EulerSharp ではサポートされていないようです。
xsd:string 型のリテラルを操作および比較するにはどうすればよいですか?
または、データを前処理してデータ型を取り除く必要がありますか?
次の .n3 ファイルは、問題を示しています。
そして、上記のファイルを実行した結果:
regex - sedの山かっこ内の空白を削除します
質問を作成しながら実際にこれを解決しましたが、私がやった方法よりもきれいかもしれないと思います。
<>内に表示されるURLの法的なもの(rdf / n3エンティティから)を除いて、空白とほとんどの句読点を削除したかったのです。
ソーステキストの例は次のとおりです。
<this is a problem> <this_is_fine> "this is ok too" .
<http://WeDontNeedToTouchThis.> <http:ThisContains"Quotes'ThatWillBreakThings> "This should be 'left alone'." .
出力では、スペースをアンダースコアに変換し、引用符やurl/iriで無効なものを削除する必要があります。
<http://This is a "problem">
=><http://This_is_a_problem>
これらは機能しませんでした。
sed -e 's/\(<[^ ]*\) \(.*>\)/\1_\2/g' badDoc.n3 | head
sed '/</,/>/{s/ /_/g}' badDoc.n3 | head
私の最終的な解決策は、うまくいくようですが、次のとおりです。
sed -e ':a;s/\(<[^> ]*\) \(.*>\)/\1_\2/g;ta' badDoc.n3 | sed -e ':b;s/\(<[:/%_a-zA-Z0-9.\-]*\)[^><:/%_a-zA-Z0-9.\-]\(.*>\)/\1\2/g;tb' > goodDoc.n3
もっと良い方法はありますか?
prolog - オイラーシャープとクリオパトリアの統合
CliopatriaセマンティックWebサーバーを使用したいのですが、現在、 EulerSharpを使用してn3ルールを広範囲に使用しています。n3によって提供される終了保証を失いたくありませんが、定期的な外部スクリプトを実行することなく、ClioPatriaを介して結果のグラフを提供したいと思います。
ClioPatriaとEulerSharpの両方がSWI-Prologで実行されていることを考えると、同じWebアプリケーション内で2つのプロジェクトを組み合わせようとした経験がある人はいないでしょうか。
rdf - N3ファイルの解析中に例外が発生する
SemWebを使用してN3DBpediaダンプファイルを解析しようとしています。これが私の簡単なコードです:
チャンクファイル(http://www.georss.org/georss/point述語を含む)を解析しているときに、次の例外が発生します。
DBPediaからファイルをダウンロードしたので、例外はなかったようです(他のパーサーによって何度も使用されています)。残念ながら、SemWebは例外を発生させる行についての詳細を提供していないため、例外を発生させる正確な行を見つけることができません。それを解決する方法はありますか?
rdf - 複数のサブジェクトが空白ノードの同じリストを指していることを確認する
の次のインスタンスを考えてみましょうSomeClass
:
すべてのインスタンス ( some_thing2
、some_thing3
など) が、空のノードの同じリストをhasChainTo
指すようにする必要があります (そのコピーが 1 つしかないため)。チェーンが非常に深くなり、この構文は各チェーン ( 、など)を書き出すのに非常に流動的であるため、空白ノード構文のリストを維持する必要があります。SomeClass2
SomeClass3
基本クラスとそこから subClassOf を単純に作成すると、hasChainTo
プロパティは継承されますが、それが指しているオブジェクトは継承されません。これは直感的には理にかなっていますが、他の動作が必要です。
これはどのように達成できますか?
python - RDFlib で N3 を解析する方法
RDFlib の N3 パーサーを使用してファイルを XML に変換しようとしていますが、それが正しいかどうか、または n3 プラグインがインストールされているかどうかさえわかりません。これは私がこれまでに持っているものです:
これは機能しませんが、動作中の XML ファイルで順序を逆にすると問題なく動作します
これは私が得るエラーです:
誰かが n3 プラグインをダウンロードする場所へのリンクを持っているか、私が間違っていることを修正するだけなら、それは素晴らしいことです!
私は現在RDFlib 4.0.1を実行しているので、それを含める必要がありますか?