ExtendedEntityClass[class,"name"f]
新たに計算された,各実体についての値が実体関数 f を適用することで得られる,特性"name"を加えることで class から派生した実体クラスを表す.
ExtendedEntityClass[class,{"name1"f1,"name2"f2,…}]
関数 fiによって定義された特性 nameiを加える.
ExtendedEntityClass
ExtendedEntityClass[class,"name"f]
新たに計算された,各実体についての値が実体関数 f を適用することで得られる,特性"name"を加えることで class から派生した実体クラスを表す.
ExtendedEntityClass[class,{"name1"f1,"name2"f2,…}]
関数 fiによって定義された特性 nameiを加える.
詳細
- ExtendedEntityClass[class,"name"->f]の関数 f はEntityFunctionオブジェクトでなければならない.
- ExtendedEntityClassは,それが明示的に定義されたものであれRelationalDatabaseオブジェクトに基づくものであれ,任意のEntityStoreオブジェクトと一緒に使うことができる.
- ExtendedEntityClass[class,"new"->f]は,事実上,各実体 entityiの値 f[entityi]を持つ new という名前の新たな列が加えられた,class から派生した仮想データベースの表を表す.
- 拡張実体クラスExtendedEntityClass[class,"new"->f]では,加えられた新たな特性の完全名はEntityProperty[ExtendedEntityClass[class,"new"f],"new"]である.
- ExtendedEntityClass[class,"new"->f]は,たとえ class にすでに"new"という名前のクラスがあっても,新たに計算された特性を加える.しかし,この場合は,新たに計算された特性は完全名EntityProperty[ExtendedEntityClass[class,"new"f],"new"]を使って参照しなければならない.
- 新たな特性の名前が既存の任意の特性名と衝突しないなら,EntityValue[class,"new"]を使って新たな特性の値を得ることができる.
例題
すべて開く すべて閉じる例 (3)
ExtendedEntityClassを使って実体クラスに計算された特性を加える:
ExtendedEntityClass[EntityClass["Country", "G8"], "AdultFraction" -> EntityFunction[c, c["AdultPopulation"] / c["Population"]]]["AdultFraction"]ExtendedEntityClass[EntityClass["Element", "Metal"], "AtomicWeight" -> EntityProperty["Element", "AtomicMass"]]["AtomicWeight"]ExtendedEntityClassは,リレーショナルデータベースがバックエンドの実体と一緒に使うと,SELECT文に式を追加するのと同じ働きをする:
EntityRegister[EntityStore[RelationalDatabase[FindFile["ExampleData/ecommerce-database.sqlite"]]]]ExtendedEntityClass["employees", "fullName" -> EntityFunction[x, x["firstName"] <> " " <> x["lastName"]]]["fullName"]スコープ (1)
ExtendedEntityClass[EntityClass["Language", "EuropeanUnionLanguages"], {"WikipediArticlesPerCapita" -> EntityFunction[l, l[EntityProperty["Language", "WikipediaArticleCount"]] / l[EntityProperty["Language", "TotalSpeakers"]]], "YesNo" -> EntityFunction[l, Lookup[l[EntityProperty["Language", "BasicCommunicationWords"]], {Entity["Word", "yes"], Entity["Word", "no"]}]]}][{"WikipediArticlesPerCapita", "YesNo"}]アプリケーション (1)
ExtendedEntityClassを使ってコードの繰り返しを避けることができる:
SortedEntityClass[
"Planet",
EntityFunction[e, e[EntityProperty["Planet", "Diameter"]] / e[EntityProperty["Planet", "DistanceFromSun"]]]
][
EntityFunction[e, e[EntityProperty["Planet", "Diameter"]] / e[EntityProperty["Planet", "DistanceFromSun"]]]
]SortedEntityClass[
ExtendedEntityClass[
"Planet",
"ratio" -> EntityFunction[e, e[EntityProperty["Planet", "Diameter"]] / e[EntityProperty["Planet", "DistanceFromSun"]]]
],
"ratio"
]["ratio"]考えられる問題 (1)
SQLがバックエンドにある実体を扱う場合は,非スカラー値で実体を拡張することはできない:
EntityRegister[EntityStore[RelationalDatabase[FindFile["ExampleData/ecommerce-database.sqlite"]]]]ExtendedEntityClass["customers", "PaymentsAmount" -> EntityFunction[c, c["payments"]["amount"]]]["PaymentsAmount"]おもしろい例題 (1)
ExtendedEntityClass[EntityClass["Language", "EuropeanUnionLanguages"], "FlagColors" -> EntityFunction[l, Nearest[Normal@KeySelect[ColorQ]@KeyMap[Interpreter["StructuredColor"] @* CanonicalName, l[EntityProperty["Language", "ColorNames"]]], DominantColors[l[EntityProperty["Language", "LargestCountry"]][EntityProperty["Country", "Flag"]]]][[All, 1, 1, "Translation"]]]]["FlagColors", "EntityAssociation"]テクニカルノート
関連するガイド
テキスト
Wolfram Research (2019), ExtendedEntityClass, Wolfram言語関数, https://reference.wolfram.com/language/ref/ExtendedEntityClass.html.
CMS
Wolfram Language. 2019. "ExtendedEntityClass." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/ExtendedEntityClass.html.
APA
Wolfram Language. (2019). ExtendedEntityClass. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/ExtendedEntityClass.html
BibTeX
@misc{reference.wolfram_2026_extendedentityclass, author="Wolfram Research", title="{ExtendedEntityClass}", year="2019", howpublished="\url{https://reference.wolfram.com/language/ref/ExtendedEntityClass.html}", note=[Accessed: 13-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_extendedentityclass, organization={Wolfram Research}, title={ExtendedEntityClass}, year={2019}, url={https://reference.wolfram.com/language/ref/ExtendedEntityClass.html}, note=[Accessed: 13-September-2026]}