Meta:Understanding semantic internal objects

From protonation
Jump to navigation Jump to search

Let's take for example the semantic internal object Has writer internal object.

This is defined in the Template:Has writer internal object as:

{{#set_internal:Has writer internal object
 | Is written by       = {{{Is written by|}}}
 | Has type of writing = {{{Has type of writing|}}}
}}

And then this SIO is applied to all movies.

The Star Trek episode Arena is written by Gene Roddenberry with type of writing created by.

Let's see how to query the type of writing value (created by) by knowing the writer (Gene Roddenberry).

First, let's query everything that is written by Gene Roddenberry:

{{#ask: [[Is written by::Gene Roddenberry]]
 | ? Has type of writing
}}

Result:

 Has type of writing
'Til Death Do Us Partbased upon "Star Trek" created by
...Nor the Battle to the Strongbased upon "Star Trek" created by
11001001created by
11:59based upon "Star Trek" created by
A Fistful of Datascreated by
A Man Alonebased upon "Star Trek" created by
A Matter of Honorcreated by
A Matter of Perspectivecreated by
A Matter of Timecreated by
A Night in Sickbaybased upon "Star Trek" created by
A Piece of the Actioncreated by
A Private Little Warteleplay by
A Private Little Warcreated by
A Simple Investigationbased upon "Star Trek" created by
A Taste of Armageddoncreated by
A Time to Standbased upon "Star Trek" created by
Accessionbased upon "Star Trek" created by
Acquisitionbased upon "Star Trek" created by
Afflictionbased upon "Star Trek" created by
Afterimagebased upon "Star Trek" created by
Alicebased upon "Star Trek" created by
All Good Things...created by
All Our Yesterdayscreated by
Allegiancecreated by
Alliancesbased upon "Star Trek" created by
Alter Egobased upon "Star Trek" created by
Amok Timecreated by
An Obol for Charonbased upon "Star Trek" created by
And the Children Shall Leadcreated by
Angel Onecreated by
Anomalybased upon "Star Trek" created by
Apocalypse Risingbased upon "Star Trek" created by
Aquielcreated by
Arenacreated by
Armageddon Gamebased upon "Star Trek" created by
Ashes to Ashesbased upon "Star Trek" created by
Assignment: Earthstory by
Assignment: Earthcreated by
Attachedcreated by
Author, Authorbased upon "Star Trek" created by
Awakening
Azati Primebased upon "Star Trek" created by
Babel Onebased upon "Star Trek" created by
Babelbased upon "Star Trek" created by
Badda-Bing, Badda-Bangbased upon "Star Trek" created by
Balance of Terrorcreated by
Bar Associationbased upon "Star Trek" created by
Barge of the Deadbased upon "Star Trek" created by
Basics: Part 1based upon "Star Trek" created by
Basics: Part 2based upon "Star Trek" created by
... further results

Notice that movie names appear in italics. This denotes that they are not the movies themselves but their semantic internal objects.

If we hover over Arena we can see that the actual link is Arena#_5c187c80f4f27bfe2e092855288ad966. That's the name of that semantic internal object.

So we need to get that name and not Arena.

To get that name we query:

{{#ask: [[Has writer internal object::Arena]] }}

Result:

Arena, Arena, Arena

So now all we need to do is combine the two queries, so as to restrict the results of the first query only to Arena#_5c187c80f4f27bfe2e092855288ad966 which is one of the results of the second query:

{{#ask: [[Is written by::Gene Roddenberry]] [[Arena#_5c187c80f4f27bfe2e092855288ad966]]
 | ? Has type of writing
}}

Result:


That's it! Now we got what we wanted.

Let's strip all unnecessary stuff and keep only the type of writing.

We remove the movie name with mainlabel = - and we remove the property label with Has type of writing = .

{{#ask: [[Is written by::Gene Roddenberry]] [[Has writer internal object::Arena]]
 | mainlabel = -
 | ? Has type of writing = 
}}

Result:

created by

Bonus

Who wrote The Aenar?

{{#ask: [[Has writer internal object::The Aenar]]
 | mainlabel = -
 | ? Is written by = 
}}

Result:

Manny Coto, Brannon Braga, Gene Roddenberry, André Bormanis, Rick Berman

Comments

blog comments powered by Disqus