Freebase
Start typing to get some suggestions
  • Explore
  • Use
  • Help
  • Developers

        Schema Patterns

        Draft Domain

        Discussions on Schema Patterns

        Domains & Types » Schema Patterns » Discuss

        Start a New Discussion

        Discussion will be posted in:

        • Schema Patterns

        Think this discussion also relates to something else? Cross-post it by adding a new discussion area:

        • General Support,
        • Developer Support
        1.  

          patterns in schemas

          also posted to
          • jeff,
          • spatialed
          9 posts, latest post: sprocketonline, Jul 1, 2009
          Link to discussion
          1. sprocketonline Top Contributor Freebase Experts
            Jun 21, 2009
            sprocketonline says:

            jeff,

            thought you might be interested in this one - I've created a base for common patterns in schemas.  I'd noticed you'd used the word 'phylogeny' a lot in relation to schema design, and thought it might be a good idea to identify the types which have this.

            What are your thoughts?

            Iain 

            1. jeff Metaweb Staff
              Jun 23, 2009
              jeff says:

              This is a cool idea. I was talking with Robert a little while back, and he's actually identified four different semantic patterns that use this schema design (that is, of types that have two properties that expect each other, there are four distinct relationships these represent). 

              1. Phylogeny: basically a hierarchical classification -- each topic is a member of a sub- or super-category. Organism classification is probably the canonical example.

              2. Parent-child: each topic is begotten by (or begets) the other topics. The TV Episode spin-offs property is a non-biological example. (Organism is the other biological example.)

              3. Sequence: you've already identified this

              4. Containment: I can't think of any besides Location, but that doesn't mean they're not out there.

              I tend to use "phylogeny" loosely when I'm talking about schemata to mean "two properties on a type that expect each other", since in terms of actual design there is no difference -- only in the ways humans interpret the patterns.

            2. spatialed Top Contributor Freebase Experts
              Jun 25, 2009
              spatialed says:

              Wouldn't "Siblings" (single property linked to a CVT with a single property to indicate some form of equality) represent another type of relationship? Examples include Sibling relationship (of course) and the new Organization partnership.

            3. jeff Metaweb Staff
              Jun 25, 2009
              jeff says:

              Yes -- Iain's called it the Peer schema pattern. We usually call it a sibling relationship, but it's the same thing.

            4. sprocketonline Top Contributor Freebase Experts
              Jun 27, 2009
              sprocketonline says:

              @ed, thanks for the example I've added it to the pattern.  I've also renamed peer to sibling and added an alias.

              @jeff Thanks for the input, I confused parent-child and phylogeny.  I've made a new parent child type and renamed properties in phylogeny. 

              I'm still slightly unsure about the definitions, particularly the difference between phylogeny, parent/child and containment, so I've tried to define them in stricter terms using graph theory concepts:

              1. Phylogeny - It is a forest/directed acyclic graph.  I'm still slightly confused about how it is used in freebase - it is a self reciprocating parent/child relationship. e.g. organism classification to organism classification.  If it the property links two different types, it would be a parent/child.  Also, if the property linking to the parent is unique, it wouldn't allow union between trees so isn't a forest graph, and is just a tree graph - therefore a containment pattern.
              2. Parent/Child - A directed acyclic graph/forest where topics are vertices and properties edges.  Given my guess that a phylogeny is a parent/child between one type, this pattern is different by being between two types.  i.e. the parent is a different type from the child.  e.g. book to book edition.
              3. Sequence - an acyclic path graph
              4. Containment - In set theory, A is a proper subset of B.  And would be a tree in graph theory.  This would be a self reciprocating property, otherwise it is a parent/child pattern.
              5. Sibling - graphs between topics of the same type, with a definition of some sort of equality between linked topics.  I was going to suggest it be a complete graph based on the /people/siblings, but realised that wouldn't necessarily work for step families or /influence_node/peers.

              I think this makes sense, and if these concepts are OK I'll update the descriptions on the pattern CVTs.

              Given the graph theory rules, it would be possible to run a bot and identify topics for data gardening, or identify types/properties which follow these patterns based on their current use in freebase.

            5. sprocketonline Top Contributor Freebase Experts
              Jun 27, 2009
              sprocketonline says:

              my definition of phlogeny being distinct from a parent/child purely based on whether a property is self-reciprocated on the same type, or is reciprocated on a different type doesn't feel right.

              Under that definition it means that the relationship between /people/person/parents and /people/person/children is a phylogeny rather than a parent/child relationship....

              Not intuitive, but perhaps logically OK?

              Otherwise the seperation between phylogeny and parent-child patterns would have to be based entirely on whether the topic is an abstract concept e.g. organism classification, or is a real object e.g. person.  And that's a whole other rabbit hole.

              gaah! *head explodes* 

            6. jeff Metaweb Staff
              Jun 29, 2009
              jeff says:

              Note that I didn't make up these distinctions, so I accept no credit or blame for them. :)

              Re phylogeny vs. parent-child: it does seem to fall into abstract vs. concrete, doesn't it?  I think there is a logical difference between the relationship of a partent to a child and a genus to a species, however: a genus is a category that comprises one or more species; a parent is not a category, and does not comprise any children. To take this away from people, the "spin-off/spun off from" properties of Company are a parent/child pattern, but the "parent company/subsidiary companies" properties are a phylogeny (although in this case, a date-mediated one).

              Note that species are also proper subsets of genuses, so I don't think that that can be the distinguishing factor between phylogeny and containment.

              Properties linking two different types are an interesting point: these can follow the same semantic patterns as any of the ones listed above, but are inherently limited in number of steps, rather than open-ended, which is what we've largely been discussing here.  (So Adaptation/Adapted Work is a parent/child relationship; Country/Administrative Division is containment; etc.)

            7. sprocketonline Top Contributor Freebase Experts
              Jun 30, 2009
              sprocketonline says:

              properties of two different types -> I've tweaked the phylogeny, parent/child and containment types so they can have 2 different types (one for the parent type, and one for the child type).  If a type is self-reciprocating, the same type would appear in both properties.

              phylogeny vs parent/child ->  Agreed phylogeny is for abstract categories, parent/child for the concrete.  both super & sub* of a phylogeny are abstract categories/sets.

               phylogeny and containment ->  if phylogeny is for abstract categories which can contain other abstract categories, then containment is for the concrete/physical which can contain other concrete/physical?  e.g. location/location or building complex/building.

              * BTW I'm using super/sub in place of parent/child as a way of differentiating when speaking about phylogeny.

            8. sprocketonline Top Contributor Freebase Experts
              Jul 1, 2009
              sprocketonline says:

              As the properties on phylogeny, parent/child and containment are now all the same (parent type, parent->child property, child type, child->parent property); I'm tempted to normalise and just have one type for all three patterns, but include an additional property called "pattern variation".

              This property would allow for differentiation between the patterns by selecting phylogeny, parent/child or containment from an enumeration.

          Discussion is posted in:

          • close Schema Patterns
          • close jeff
          • close spatialed

          Think this discussion also relates to something else? Cross-post it by adding a new discussion area:

          • General Support,
          • Developer Support

        Search Discussions

        Related Discussions

        • jeff
        • spatialed
        ©2009  Metaweb
        • Page History
        • RDF
        • Feedback
        • Attribution Policy
        • Terms of Service
        • About Us
        • Jobs
        • Freebase Blog
        Freebase contains information on:
        • Arts & Entertainment
        • Products & Services
        • Science & Technology
        • Society
        • Special Interests
        • Sports
        • Time & Space
        Dev Tools
        Refresh cache | Query Editor | Normal view | Explore | Explore2 | Admin view | View transaction log | Suggest transaction log | Client transaction log | hide (F8) | debug-level
        TID(s):
        Controller: 0.290s
        Template: 0.075s
        Cost: br=9.0, cc=0.352, ch=0.0, cm=0.0, cm+h=0.0, cr=0.0, cs=10.0, cw=5.0, dr=5940.0, dt=0.554, dw=0.0, gqr=0.0, in=2980.0, ir=9977.0, iw=0.0, mcs=0.004, mcu=0.068, mr=5.0, nivcsw=42.0, nreqs=11.0, nvcsw=31.0, pf=0.0, pr=0.0, stime=0.016, te=0.031, tf=0.193, tg=0.187, tm=0.247, tr=0.025, ts=0.0, tu=0.02, utime=0.336, va=6945.0