Comments (10)
#250 との関連について,結局SPARQLでどうマッチさせられるかというのと組み合わせの課題な気はするので,既存クエリを気にしながら,時には破壊しながら,というのを考えなきゃいけないかもですね。
(b) 現在のschema:nameをrdfs:labelとして一括追加したあとに、個別でschema:name, imas:nameKanaの追加・修正をおこなう
これは比較的安全な印象もありますがどうでしょう。分解すると:
「schema:nameをrdfs:labelとして一括追加」 (imas:Unit
を対象として)
- ラベルを使う限り,言語タグを書かずに1個特定検索できるようになる (SPARQLで言語タグを書いてないからマッチしないんだっけ??という試行錯誤がないのがメリット)
- ラベルとして「ユニークな名称」を付けるのに迷わないか?
- 現状の
schema:name
がその意図で1個だけ入っているはず(?)だから心配することはなくコピペでいけるともいえる?
- 現状の
(上の)あとに、個別でschema:name の追加・修正をおこなう
- 既に話されているように,言語タグを付けると,タグ付けただけなのに,元のxsd:stringとはSPARQLのリテラルマッチで互換ではなくなるので,破壊的変更になりそう。もしやるとしたらそれまでにみんなラベルに移行できるか?
- 破壊的とはいえ「
schema:name
にはrdf:langString
」と決まっているほうがクエリ書きやすいのはたしか
- 破壊的とはいえ「
schema:alternateName
で入れていくのは比較的安全にできそう- 現状でも
schema:alternateName
は,1個特定するためというより,検索でより広くマッチさせるために使われている気がする? つまりSPARQLでもリテラルマッチじゃなくて,変数にとってstr(),filter()される系なのでは・・・?という推測
- 現状でも
- このへんの,nameかalternateNameか,それぞれ言語タグありかなしか,に選択肢があるので決め手に欠ける...
(上の)あとに、個別でimas:nameKana の追加・修正をおこなう
- ここは単なる述語と値の追加なので,いつやっても安全にみえる
- nameKanaあったら欲しい(気持ち)
- けど当初の「(ユニット「プリンセススターズ」に"Princess Stars"を追加することを想定しています。)」の話とは別か
from imasparql.
#250 と一緒にやっていくのがいいんじゃないかと思います。
from imasparql.
如月千早は明らかな日本語だということは分かります(実は**語かもしれないけど、それはないはず...)
一方ユニット名は、造語も多くあります。
L'Anticaって何語なんでしょう...
そういったことを考えたくない + ユニットのリソースで統一したい = 全部stringにしよう
といった経緯があります。
とはいえ、 #250 をやっていった後であれば、schema:name
は様々な言語が入り混じっても良いかもしれませんね
from imasparql.
良くないです。
同じ述語に複数の rdf:datatype
を混ぜると SPARQL で問い合わせるのが難しくなります。 rdfs:label
には xsd:string
、 schema:name
には rdf:langString
のようにそれぞれ統一したほうが良いです。
それと rdf:datatype
と xml:lang
を同列に扱われているように聞こえるのですが、これは概念が別です。同列になるのは xsd:string
と rdf:langString
であって、それぞれ rdf:datatype
の一種です。 xml:lang
を付与すると自動的に rdf:datatype
が rdf:langString
に解釈されます。
説明が難しいですが、 @crssnky さんのこの記事がわかりやすかったので一度ご覧になってください(参考資料をググってたら偶然出てきた)。
RDFまたはSPARQLの問題点・疑問に関するポエム - crssnkyの。
from imasparql.
はい、その認識で問題ございません。
schema:alternateName
が現実的な解決策かもしれませんね。 @crssnky さんのおっしゃる通り、言語で分類できないユニット名もありますし、言語がわかったとしても "L'Antica"@it
などとするのはちょっと違う気がします。
ちなみに、拙作の https://mltd.pikopikopla.net ではどうしていたかなと思って確認したら、 schema:alternateName
に xsd:string
を突っ込んでいました。
(話が脱線しますが、上記で RDF の記述に用いているのが Turtle です。RDF を記述する構文は複数あって、im@sparql では RDF/XML が使われていますが、Turtle は比較的コンパクトで読み書きしやすいフォーマットとして勧告されています。)
from imasparql.
みなさま、ありがとうございます。
いただいたご意見を合わせて考えますと、
・基本はrdf:datatype
でよい
・多言語化する場合はxml:lang
を使用する。
・言語不明の場合はrdf:datatype
を使う。
・schema:name
が複数存在する場合は、rdfs:label
を追加する。
という指針でよろしいでしょうか。
いくつか事例を考えてみました。xml:lang
を使う場合は、公式媒体の表記を尊重することが重要であるように感じました。
例:プリンセススターズ
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">プリンセススターズ</rdfs:label>
<schema:name xml:lang="ja">プリンセススターズ</schema:name>
<schema:name xml:lang="en">Princess Stars</schema:name> <!--CDなどで英語表記あり-->
<imas:nameKana xml:lang="ja">ぷりんせすすたーず</imas:nameKana>
例:アスタリスク
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">*(Asterisk)</rdfs:label>
<schema:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">*</schema:name>
<schema:name xml:lang="en">Asterisk</schema:name>
<!-- <schema:name xml:lang="ja">アスタリスク</schema:name> かな表記している公式媒体はありましたっけ…? -->
<imas:nameKana xml:lang="ja">あすたりすく</imas:nameKana>
例:TIntMe!
<rdfs:label rdf:datatype="http://www.w3.org/2001/XMLSchema#string">TIntMe!</rdfs:label>
<schema:name rdf:datatype="http://www.w3.org/2001/XMLSchema#string">TIntMe!</schema:name>
<!-- <schema:name xml:lang="en">TIntMe!</schema:name> 英語とは言えない-->
<!-- <schema:name xml:lang="ja">ティントミー!</schema:name> 日本語表記はしないとおもう -->
<imas:nameKana xml:lang="ja">てぃんとみー</imas:nameKana> <!-- 読み方として表記するのはあり -->
事例に違和感がありましたらコメントいただければと思います。
from imasparql.
また作業を進めることになった場合、
(a) 現在のschema:nameをrdfs:labelに一括変換したあとに、個別でschema:name, imas:nameKanaの追加をおこなう
(b) 現在のschema:nameをrdfs:labelとして一括追加したあとに、個別でschema:name, imas:nameKanaの追加・修正をおこなう
(c) 個別でrdfs:label, schema:name, imas:nameKanaの追加・修正をおこなう
のいずれが適切でしょうか?
(c)であれば私個人でもちまちまと作業できますが、(a)(b)の場合は影響が大きそうなので私では手を出しづらいです。
from imasparql.
分かりやすく解説いただきありがとうございます。@crssnky さんの記事も拝見させていただきました。勉強が必要だなぁと再認識いたしました。
同じ述語に複数の rdf:datatype を混ぜると SPARQL で問い合わせるのが難しくなります。
なるほど。検索時にどのような影響が出るのかといった知識がありませんでした。ありがとうございます。
rdf:datatype と xml:lang を同列に扱われているように聞こえるのですが、
ご指摘の通り同じ位置づけで認識しておりました。失礼しました。
あらためて、"プリンセススターズ"に英語名として"Princess Stars"を追加するケースを考えますと、
・全てのユニットデータに対し、<schema:name rdf:datatype=xsd:string>
を<schema:name rdf:datatype=rdf:langString xml:lang=*>
に変更することが必要
・ただし言語が特定できない造語名称(TIntMe!, *など)は<schema:name rdf:datatype=rdf:langString xml:lang=*>
に入れることができない問題が残る。
との認識でよろしかったでしょうか。
その場合、schema:alternateName
にPrincess Starsを入れるのが問題が少ないのでしょうか。
from imasparql.
banjunさん、分解ありがとうございます。 その方法が今の所ベストかと思います。
ここは単なる述語と値の追加なので,いつやっても安全にみえる
の通り、 「schema:nameをrdfs:labelとして一括追加」 (imas:Unitを対象として) の後にやっていくのが良いでしょう。
ユニットに関する別issueとして #421 があるのですが、それも↑の後が良さそうですね。
(リソース分割の際は、rdfs:labelの追加を忘れずに!)
from imasparql.
皆さま、ありがとうございます。
imas:nameKana
の追加を検討していましたが、rdfs:label
の追加(およびリソースの分割も?)を待ってから実施したいと思います。
from imasparql.
Related Issues (20)
- 兄弟関係の追加 HOT 3
- シャニマス新アイドル・斑鳩ルカ HOT 3
- imas_product系を分ける HOT 3
- imas_product系を分ける
- ユニットの登場メディア HOT 4
- ユニットのリソース名 HOT 2
- ユニットのよみがな HOT 6
- 名前なしユニット HOT 5
- 多田李衣菜のaboutとname en修正
- にちか、美琴の所属Team
- ポプマス追加実装アイドルの属性について HOT 2
- 楽曲を定義する HOT 2
- [呼称表]高木社長(高木順一朗/高木順二朗)の扱い・各アイドル主語の"1st"について
- どのゲームで登場した衣装なのかわかるようにしたい HOT 2
- 浅利七海ちゃんの CV が発表されました HOT 2
- レビュアーがなにをどうレビューすればよいかがわからない HOT 5
- 961プロ新アイドル・亜夜
- 施設データに346プロがない HOT 2
- シンデレラガールズ Stage for Cinderellaデータ追加 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from imasparql.