Main Page

From City Data Model Project Collaboratory
Revision as of 19:07, 28 November 2019 by Megankatsumi (talk | contribs)
Jump to navigation Jump to search

Welcome to the City Data Model Collaboration Wiki

We have created this website to enable stakeholders and related standards groups to foster international collaboration on a common City Data Model. The results of this effort will feed into the various city data standards development projects being undertaken Standards Development Organizations.

Getting started

Want to contribute? Log-in or create an account! Anyone with an account can comment on proposed or existing terms, and even propose their own.

Users can propose new terms or new definitions for existing classes, object properties, or data properties.

  • A Class is a term that is used to describe some grouping of things. Classes may be related to other classes via a notion of subclass/inheritance.
    • <quote> In general classes are used to group individuals that have something in common in order to refer to them. Hence, classes essentially represent sets of individuals. In modelling, classes are often used to denote the set of objects comprised by a concept of human thinking, like the concept person or the concept woman. </quote> --[Primer]

<quote>

    • In the context of RDF, [Schema] classes are used to group resources. Resources are related to classes via the rdf:type property. Distinct from RDF, we do not consider other classes or properties to be members of a Class.
    • A Class may also be interpreted as in the context of object-oriented programming: some object in a system that has some predefined set of attributes and behaviour. Such classes may also be represented with UML Class diagrams.
  • An ObjectProperty is a term that is used to describe the relationship between instances.
    • Object properties are defined similarly in OWL2.
    • Object properties make a distinction between properties that relate two instances that are members of some Class of things, and properties that relate an instances of some Class of thing to a [value], (e.g. some string or integer). This distinction is not made in RDF (both are considered properties).
    • Object properties are the Instance-Level relationships that are identified in UML Class diagrams.
  • A DataProperty is a term that is used to describe the relationship between an instance and some data value.
    • Data properties are defined similarly in OLW2.
    • Data properties are a special type of rdf:Property that relates instances of some rdf:Class of thing to a [value], (e.g. some string or integer).
    • Data properties are the attributes of some UML Class.

How it works

  • Browse and review existing content: Listings of proposed terms: classes, object properties, and data properties are compiled on separate pages that are accessible via the Navigation menu. Each term has its own page that contains standard content such as a description of the term, definitions, and use cases.
  • Comment on existing content and suggest changes or revisions: Every term page has a comments section at the bottom that users can use to communicate with the page authors and other members of the community.
  • Propose additions: there are two ways to propose a new term. If an appropriate term exists in the class or property listings, you can propose a new subclass or sub-property on the appropriate page. If no such term exists, you can propose a new term. Authors are advised to protect any pages they create to prevent other users from editing page content directly. Instead, comments are encouraged via the associated Discussion pages.
    • Propose a new class.
    • Propose a new definition for an existing class. This option is available on each class page.
    • Propose a new object property (a relationship between two classes).
    • Propose a new definition for an existing object property. This option is available on each object property page.
    • Propose a new data property.
    • Propose a new definition for an existing data property. This option is available on each data property page.
  • Once you've created a page, it is recommended that you protect it. That way only you and the administrators will have the ability to edit the page content directly. Each page that you have created will have a "protect" option, along with an "edit" and "edit with form" option that you can use to revise the content.
  • Contact an administrator if you need to follow-up on the status of a term.

The Review Process

Anyone can propose a new term. Once a term has been proposed, it becomes open for the specification of definitions from the community. The administrators will review all proposed definitions and identify the maximal common definition for the term. The term and resulting set of definitions will then be published as approved in the City Data Model.

Here's a high-level overview of the process that we follow when a new term is proposed for the City Data Model:

<uml> @startuml title Proposing a New Term for the CDM

start

Specify the name of the new class or property;
Provide a natural language description of new term;
New term page created

Term status="Proposed";

Community review;

if (Term is captured by an existing class or property?) then (yes)

   :indicate redundancy in comments;
   if (community in agreement?) then (Yes)
       :Close proposal
        Term status="closed";
       stop
   else(No)
       while (undecided) is (Yes)
           :Discuss;
           :Editorial review;
       endwhile(No);
   endif;
   else(No)
   endif;
       :Term status="Pending Approval";       
       while (Discussion quiescence (or other cutoff criteria)?) is (No)
               :Community proposes definitions;
           endwhile(Yes)
               :Admin specify maximum common definition;
               :Term status="Approved";
       :Publication of final version of term page (change protected),
       including maximum common definition and specialized definitions;

stop

@enduml </uml>

<uml> @startuml title Submitting a definition for a proposed term

start

Navigate to proposed term page;
Select "Add Definition";
Specify description of specialized term

What distinguishes this definition of the term?;

Specify use case(s)

Why is this specialized definition needed?;

Specify specialized definition in UML and DL

If DL is not sufficient, supplement with SWRL or SHACL;

Publish for review

Specialized definition status="Pending Approval";

Community reviews proposal;
Users suggest revisions/additions to definition (properties, constraints), use cases;

if (Owner accommodates suggestions?) then (Yes)

  :Comment resolved;

else(No)

  :Comment left unresolved;

endif;

Editorial review;
       :Editorial comments to author;
       :Author revisions;
       :Final review;
       :Specialized definition status="Approved" (change protected);

stop

@enduml </uml>

Note: these diagrams were drawn using PlantUML. PlantUML is a handy tool that allows you to create UML (and non-UML) diagrams using simple text descriptions. It's supported by this Wiki to help you contribute more effectively.