| 
  • If you are citizen of an European Union member nation, you may not use this service unless you are at least 16 years old.

View
 

OracleXML

Page history last edited by Clinton R. Nixon 13 years, 7 months ago

Round 2: Clinton

 

(See the proposals below to see how we came up with this.)

 

<?xml version="1.0" encoding="UTF-8"?>
<seedlist>
    <author>Vincent Baker</author>
    <description>Default elements for AG&G.</description>
    <arena>
       <tag name="type">character</tag>
       <seed>
           <text>
               The awakening of a merciless and tyrannical pit-wyrm.
           </text>
           <tag name="type">event</tag>
       </seed>
       <seed>
           <text>
               A bandit captain, in hiding, with her trusted bodyguard.
           </text>
           <tag name="locale">countryside</tag>
           <tag name="status">outlaw</tag>
           <tag name="theme">loyalty</tag>
       </seed>
    </arena>
</seedlist>

 

I really like this, although I might drop 'name' from 'tag'. It's not necessarily needed.

 

See how <arena> is used to apply tags to a whole group of seeds? Each seed can have separate tags, too.

 

I've uploaded the original seedlist from Vincent's VB program. Here's the XML Schema.

 

Vincent says:

 

OH! Awesome. Yeah!

 

Colin says:

 

The tag-name/tag scheme is essentially a two-level hierarchy for tags:

 

  • type/character
  • type/event
  • locale/countryside
  • etc

 

It might be useful to have for purposes of sorting tags when presenting the choice of "what tags do you want to search for"? The UI for that might be a little tricky, considering that the tags themselves appear to be freeform -- it'd be good to know how they're supposed to sort. But that's not information that needs to be repeated in every seed -- once at the top would be enough:

 

<?xml version="1.0" encoding="UTF-8"?>
<seedlist>
    <author>Vincent Baker</author>
    <description>Default elements for AG&G.</description>
    <tags>
        <tag>character
            <tag>enemy</tag>
            <tag>patron</tag>
        </tag>
        <tag>event</tag>
        <tag>item
            <tag>weapon</tag>
        </tag>
        <tag>locale
            <tag>city</tag>
            <tag>countryside</tag>
        </tag>
        <tag>magic</tag>
        <tag>theme
            <tag>loyalty</tag>
        </tag>
        <tag>status
            <tag>outlaw</tag>
        </tag>
    </tags>
    <arena>
       <tag>character</tag>
       <seed>
           <text>
               The awakening of a merciless and tyrannical pit-wyrm.
           </text>
           <tag>event</tag>
       </seed>
       <seed>
           <text>
               A bandit captain, in hiding, with her trusted bodyguard.
           </text>
           <tag>countryside</tag>
           <tag>outlaw</tag>
           <tag>loyalty</tag>
       </seed>
    </arena>
</seedlist>

 

I *think* it's legal XML to have string data as well as subelements within an element -- if not, just have to make the thing a little more verbose. And validity checking will have to validate that tag values are unique within a document. But it would make the tag hierarchy explicit, and make it straightforward to add a third level, if that is ever wanted.

 

I'm thinking out loud here -- not entirely convinced this is a good idea yet, but I thought I'd throw it out there.

 


 

Proposals

 

I've got two major proposals for how these files might look.

 

Proposal 1

 

<?xml version="1.0" encoding="UTF-8"?>
<oraclelist>
    <author>Vincent Baker</author>
    <description>Default elements for AG&G.</description>
        <version>0.1</version>
        <arena name="urban">
            <element tag="character">
                An assassin hired by some wealthy enemy.
            </element>
        </arena>
        <arena name="rural">
            <element tag="event group">
                A band of goat herders, armed, outraged by an injustice visited upon their clan.
            </element>
            <element tag="character">
                A bandit captain, in hiding, with her trusted bodyguard.
            </element>
        </arena>
        <arena name="magical">
            <element tag="event character">
                The awakening of 3 powerful and malignant genii.
            </element>
            <element tag="group">
                A band of demons, laughing and malicious, authors of debauched sensuality and corrupt appetites.                
            </element>
            <element tag="event character">
                The awakening of a merciless and tyrannical pit-wyrm.
            </element>
        </arena>
</oraclelist>

 

Proposal 2

 

<?xml version="1.0" encoding="UTF-8"?>
<oraclelist>
    <author>Vincent Baker</author>
    <description>Default elements for AG&G.</description>
    <version>0.1</version>
    <arena name="urban">
        <character>
            An assassin hired by some wealthy enemy.
        </character>
    </arena>
    <arena name="rural">
        <group>
            A band of goat herders, armed, outraged by an injustice visited upon their clan.
        </group>
        <character>
            A bandit captain, in hiding, with her trusted bodyguard.
        </character>
    </arena>
    <arena name="magical">
        <event>
            The awakening of 3 powerful and malignant genii.
        </event>
        <group>
            A band of demons, laughing and malicious, authors of debauched sensuality and corrupt appetites.                
        </group>
        <event>
            The awakening of a merciless and tyrannical pit-wyrm.
        </event>
    </arena>
</oraclelist>

 

 

Vincent says:

 

My suggestion'd be a non-hierarchy. Maybe something like:

 

<element>
    <text>
        A bandit captain, in hiding, with her trusted bodyguard.
    </text>
    <tag name="type">
        character
    </tag>
    <tag name="locale">
        countryside
    </tag>
[ and maybe include whatever you want, like: ]
    <tag name="status">
        outlaw
    </tag>
    <tag name="thematic">
        loyalty
    </tag>
</element>

 

(I don't know from legal xml, I'm just guessing.)

 

Clinton replies:

 

Vincent,

 

This is good! I'm afraid it gets too heinous to write, but I like it.

 

One option is to use YAML (http://www.yaml.org/start.html) instead or as a second option. It'd look like this:

 

-
  :text: The secret alliance of two noble families against a third.
  :categories:
    - event
    - group
  :locale:
    - urban
    - court
-
  :text: The bloodthirsty ghosts of those drowned in an accursed water.
  :categories:
    - group
  :locale:
    - magical
-
  :text: A conjunction of uncanny forces.
  :categories:
    - event
    - group
  :locale:
    - magical

 

The one problem with all this - it becomes less usable as a sorting agent if we make it like this. For example, it'll be real hard to say, "Give me two events in an urban setting." It can still be done, but instead of looking like this:

 

  • choose urban setting
  • choose events
  • pick two randomly from this list

 

It'll be more like this:

 

  • pick a random element
  • make sure it's urban and an event
  • if not, pick again
  • repeat x2

 

Colin says:

 

Seems like you could still loop through all elements, filtering for urban events, then randomly pick two.

Comments (0)

You don't have permission to comment on this page.