EntityStore

EntityStore["type"]

タイプ"type"の実体の空の実体ストアを表す.

EntityStore["type"data]

特性と値が data で定義された,タイプ"type"の実体の実体ストアを表す.

EntityStore[{tspec1,tspec2,}]

複数のタイプの実体の実体ストアを表す.

EntityStore[RelationalDatabase[]]

外部データベースのスキーマから実体ストアを構築する.

EntityStore[{tspec1,tspec2,...},dbspec]

dbspec で指定されたデータベース中の表の名前を tspeciで指定されたタイプにマッピングして実体ストアを構築する.

詳細とオプション

  • EntityStoreオブジェクトがリストEntityStores[]に含まれている場合は,Entityが使われるとリストに含まれる実体タイプに自動的にアクセスする.パーミッションの設定で許可されない場合を除き,entity[property]=value の形式の割当てでコンテンツを変更することができる.
  • EntityStoreオブジェクト中のデータには,store[obj,"property"]を使って直接アクセスすることができる.obj は,EntityEntityClassEntityPropertyEntityPropertyClassあるいはEntityTypeの各オブジェクトである.
  • EntityStore[{tspec1,tspec2,}]の各 tspeci"typei"あるいは"typei"dataiでよい.
  • EntityStore["type"data]data は,指定のタイプに関連付けられた実体,特性,値を定義する連想である.
  • data"Entities"要素は,指定のタイプの実体の特性を持つ連想を与える("Entities"-><|"name1"->props1,|>).propsiは指定された実体の特性値を与える(<|"propa"->val1a,"propb"->val1b,|>).
  • 特別な特性"Label"を任意の実体に与えて,それ自身をどのように表示するかを指定することができる.
  • data"Properties"要素は,特性をどのように表示するか,明示的に指定されていない特性値をどのように計算するか等の特性の情報を与える.
  • 次は,指定されたタイプについて使用可能な data 連想内の実体である.
  • "Entities"各実体についての特性値を与える連想
    "EntityClasses"実体クラスの実体と特性を与える連想
    "Label"このタイプの表示に使用するラベル
    "LabelPlural"このタイプの表示に使用するラベルの複数形
    "Properties"このタイプの特性についての情報を与える連想
    "PropertyClasses"このタイプの特性クラスの情報を与える連想
    "EntityTypes"子タイプについての特性と値を与える連想
  • data"Properties"実体は,<|"propa"-><|k1->v1,|>,"propb"->,|>の形をしている.次は各特性に与えられる連想の可能な項目である.
  • "DefaultFunction"この特性の値を計算するデフォルト関数
    "Label"この特性の表示に使われるラベル
  • 指定された特性について"DefaultFunction"->f と設定すると,"Entities"の連想で特性が明示的に指定されていない場合は,f が実体に適用されて特性の値が計算される.
  • 次は,"EntityClasses"の各実体クラスについての可能な項目である.
  • "Entities"クラス中の実体を指定する名前または述語のリスト
    "Label"この実体クラスの表示に使用するラベル
  • 特定の実体クラスについての連想で,"Entities"->{"name1","name2",}は実体クラス中の実体の明示的なリストを与える."Entities"->"prop"->pred は,クラス中の実体が特性 prop の値に適用された場合に predTrueを返す実体であるように指定する.
  • 次は,"PropertyClasses"の各特性クラスについての可能な項目である.
  • "Label"この特性クラスの表示に使用するラベル
    "Properties"この特性クラス中の特性名
  • data"EntityTypes"要素は与えられた実体タイプの子タイプについての情報を与える.子タイプは,そのタイプ(親タイプと呼ばれる)の実体の部分集合からなり,これに追加的な特性が適用される.
  • data"EntityTypes"要素は<|"child1"data1,|>の形式で,子タイプ"childi"に対応するdataidata と同じ形式を持つ.
  • 子タイプは親タイプから実体を継承する.タイプ"type"の子タイプ"child"の特性,実体クラス,特性クラスは,EntityProperty["type""child",]EntityClass["type""child",]EntityPropertyClass["type""child",]の形式である.より深くネストしたタイプの形式は"type""grandchild"になる.
  • EntityStore[{"type1"->meta1,"type2"->meta2,},databasespec]の形式における metaiは,以下の形を取ることができる.
  • {"col1","col2",}公開される列の名前のリスト
    {"prop1""col1",}"coli""propi"に名称変更される
    {,"propi"EntityFunction[],}"propi"EntityFunctionから計算される
    classタイプ全体が実体の計算されたクラスから構築される
  • EntityStore[{,"typei"->class,},]の形式における class は,EntityClassFilteredEntityClassExtendedEntityClassSampledEntityClassSortedEntityClassAggregatedEntityClassCombinedEntityClassの任意の頭部でよい.
  • リレーショナルデータベースがバックエンドの実体ストアでは,EntityStoreの第1引数の構造は<|"Types"-><|"type1"-><||>,"type2"-><||>,|>|>の形式である.ただし,各"typei"の右辺の各連想は以下のキーを持つことができる.
  • "Properties"特定を定義する連想
    "EntityTypeExtractor"表の名前または計算されたクラス
    "CanonicalNameProperties"CanonicalNameを形成する特性
  • リレーショナルデータベースにおける特性は,もとになっているデータベースの列,計算された特性,関係という3つの 種類がある.
  • 列特性は以下を含む連想で定義される.
  • "ColumnPrefix"一般に表の名前
    "ColumnName"列の名前
  • 計算された特性は以下を含む連想で定義される.
  • "Function"特性を定義するEntityFunction
  • 関係特性はEntityStore内のタイプを参照するEntityまたはEntityClassの値を取る特性で,以下を含む連想で定義される.
  • "DestinationEntityType"関係に参照される実体タイプ
    "EntityTypeMapping"着信実体タイプと宛先実体タイプの特性間のマッピング
  • "EntityTypeMapping"CombinedEntityClassと同じ指定を持ち,以下の形式の値を取る.
  • "prop"発信元タイプと宛先タイプは,"prop"特性について同じ値を持つ
    {"prop1","prop2",}発信元タイプと宛先タイプはすべての"propi"について同じ値を持つ
    "left""right"発信元タイプの"left"の値は宛先タイプの"right"の値と同じである
    {"left1""right1",}発信元タイプの"lefti"の値は宛先タイプの"righti"の値と同じである
    EntityFunction[{left,right},]発信元実体 left についての関係の値は,実体関数を評価するとTrueになるすべての宛先タイプ実体 right である
  • リレーショナルデータベースがバックエンドにある実体ストアでは,EntityValueEntityListのすべての呼出しがデータベースへの単一の呼出しになるように,"Label"特性を使ったフォーマットが無効になっている.
  • 次は,使用可能なオプションである.
  • Initialization None実体ストアが登録された際に評価される式
    MetaInformation<||>実体ストアに関連付けられたメタ情報

例題

すべて開くすべて閉じる

  (3)

タイプが"fruit"の実体の実体ストアを作る:

この実体ストアを実体ストアのグローバルなリストに登録する:

これで,実体についての特性値が実体ストアで自動的に検索されるようになった:

指定のタイプの実体のリストを得る:

特性"color"の値がRedの実体を求める:

すべての実体と値の連想を指定の特性について得る:

実体ストアの登録を解除する:

外部データベースに接続するために,RelationalDatabaseオブジェクトを構築する:

RelationalDatabaseオブジェクトからEntityStoreを構築する:

EntityStoreを登録する:

クエリを行う:

実体ストアの登録を解除する:

データベースにもとの表の部分集合が含まれている,データベースがバックエンドにあるEntityStoreを構築する:

スコープ  (11)

基本的な用法  (4)

計算された特性"p3",実体,特性クラスを使って実体ストアを作る:

計算された値を取得する:

"ec2"の成員を調べる:

ある実体について"pc1"中の全特性の値のAssociationを得る:

実体ストアに直接アクセスする:

値は計算されない:

実体クラスの特性にアクセスする:

"Entities"について保存されている生のデータを取り出す:

すべての整数についての実体ストアを作る:

実体の数値を得る:

実体"4"の階乗を計算する:

無効な実体は拒否される:

実体"7""Factorial"の値を変更する:

これで新しい値を持った実体が"integer"についての実体ストアに登録された:

他の実体は明示的な値を持っていない:

ラベル付きの実体と実体クラスを含むEntityStoreを定義する:

通常,EntityClassはそれが表す実体のリストのように動作する.クラスの各実体について"Label"を得る:

クラスの"Label"を得るために,直接EntityStoreにアクセスする:

実体ストアをクラウドに置く:

クラウドオブジェクトを他の人とシェアして,相手がそこに含まれる実体を使えるようにする:

データベース接続性  (5)

表の名前を変えてEntityStoreを構築する:

列の部分集合を含むEntityStoreを構築する:

列の名前を変えてEntityStoreを構築する:

計算されたタイプのEntityStoreを構築する:

特性が計算されたEntityStoreを構築する:

限定子  (1)

"Date"で限定された"Population"特性で"beehive"実体を指定する:

リサの養蜂箱内の蜂の最新の個体数を求める:

2014年中頃の個体数を求める:

Datedを使う:

これは以下に等しい:

時系列を得る:

次は2013年におけるすべての養蜂箱の個体数である:

子タイプ  (1)

人(そのうちのあるものは音楽家か科学者である)の実体ストアを作成する:

ストアを登録する:

すべての人に適用可能な特性をリストにする:

具体的な実体は追加的な特性を持つことができる:

実体についての全データを子タイプからのものも含めて取得する:

曖昧さがない場合は,子タイプの特性は文字列として指定できる:

以下では子タイプの特性の完全な指定が使われている:

物理分野のすべての人をリストにする:

すべての音楽家をリストにする:

物理分野で働いている音楽家をリストにする:

結果は前の2つの結果の共通集合である:

オプション  (2)

Initialization  (1)

初期化式を含む実体ストアを作成する:

初期化式は登録時に評価される:

ストアの登録を解除する:

Metainformation  (1)

メタ情報を含む実体ストアを作成する:

メタ情報を検索する:

考えられる問題  (2)

データベースがバックエンドにある実体ストアでは,フォーマットに"Label"特性は使われない:

外部データベースを扱うときに,主キーが一部の表に設定されていないデータベースに遭遇することがある:

このような場合はEntityStoreがメッセージを出す.これは,単一の実体を含むなんらかの機能が無効になることを意味する:

しかし,EntityValueはそのまま動作することが多い:

この問題の唯一の回避方法は,外部データベースで主キー制約を設定することである.

Wolfram Research (2016), EntityStore, Wolfram言語関数, https://reference.wolfram.com/language/ref/EntityStore.html (2019年に更新).

テキスト

Wolfram Research (2016), EntityStore, Wolfram言語関数, https://reference.wolfram.com/language/ref/EntityStore.html (2019年に更新).

CMS

Wolfram Language. 2016. "EntityStore." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2019. https://reference.wolfram.com/language/ref/EntityStore.html.

APA

Wolfram Language. (2016). EntityStore. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/EntityStore.html

BibTeX

@misc{reference.wolfram_2024_entitystore, author="Wolfram Research", title="{EntityStore}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/EntityStore.html}", note=[Accessed: 22-November-2024 ]}

BibLaTeX

@online{reference.wolfram_2024_entitystore, organization={Wolfram Research}, title={EntityStore}, year={2019}, url={https://reference.wolfram.com/language/ref/EntityStore.html}, note=[Accessed: 22-November-2024 ]}