What Data Model Is Also Called Semantic?

broken image


-->

Glossary of definable objects

In previous versions of Tableau, the data model had only the physical layer. In Tableau 2020.2 and later, the data model has the logical (semantic) layer and a physical layer. This gives you more options for combining data using schemas to fit your analysis. In Tableau 2020.2 and later, a logical layer has been added in the data source. Plausible ways to use this data model for the Semantic Web are also discussed. Expand abstract. We propose a semantically enriched model of ontologies (called MetaOntoModel) where every. Capability Details; A way to describe the location and shape of data records that are stored in files. This is also called a Common Data Model folder, because the data files are often grouped together in a data lake folder or a hierarchy of folders.; An organizing document called a manifest acts as the entry point for a collection of entity schema definitions and data partition locations. The semantic model can be more easily queried by users with a reporting tool of their choice. The data provided by the semantic model is pulled from a data warehouse, ensuring that all users see a single version of the truth. The semantic model also provides friendly table and column names, relationships between tables, descriptions. Also known as a , it is the basis for the identification and high-level description of the main data objects (avoding any database model-specific details.) software independence means that model does not depend on the DBMS software used to implement the model.

  • Trait - Annotation objects that are an expression of semantic meaning.Traits can hold a set of named argument values.

  • DataType - A named collection of traits to represent commonly usedconcepts that combine data format, data value constraints, and semanticmeanings. Example data types are integer and firstName.

  • Attribute - A simple (data type) or complex (entity) typed and nameddescription of data values being used to represent a specific idea orpurpose. For example, the data type firstName can be used to make anattribute called partnerFirstName.

  • Entity - A container that holds together a collection of traits andattributes so that the collection represents some logical concept, businessprocess, event, or another object. Customer, Purchase, and Task are examples.

  • Purpose - A named collection of traits to represent commonly used reasonsor uses that an attribute serves within an entity. The purpose can be a partof the entity definition to identify ideas like 'default display text,'primary key,' or 'default sort column.'

  • AttributeGroup - A named collection of attributes that works like a macro.

  • ConstantEntity - An association between an entity schema and a constantarray of data values that exist only within the metadata documents. Used torepresent tables of values.

Definition documents

The definitions of logical objects in Common Data Model such as entities, datatypes, and traits are found in definition documents (myDefs.cdm.json).Definition documents can import other definition documents upon which theydepend. The main content of a definition document is an array of objectdefinitions.

Base classes

All the objects in the object model for Common Data Model share a set of commonproperties and methods; these are factored into the Common Data Model objectbase class. Most Common Data Model objects represent either the definition of anobject or the use of (reference to) a defined object.

Common Data Model object

Property / MethodDescription
ObjectTypeThe Common Data Model object type for the object. Read-only.
InDocumentThe document object in which the object is defined.
AtCorpusPathThe corpus path to the specific object.
Copy()
Validate()Structural validation of the object settings and properties.
FetchObjectDefinition()Returns this definition type object or the definition object that's being referenced by this reference-type object.
FetchObjectDefinitionName()Returns the name of the defined object that would be returned by FetchObjectDefinition.

Common Data Model object definition

Property / MethodDescription
GetNameReturns the name of the defined object.
IsDerivedFromReturns True if the defined object is an extension (at some point) of the named object.
ExplanationSpace to hold documentation for the object.
ExhibitedTraitsA list of trait references explaining the traits that a definition exhibits by default.

Common Data Model object reference

Property / MethodDescription
AppliedTraitsA list of trait references for the traits that are being added to the referenced object only for this instance of the usage.
NamedReferenceThe name or relative path to the defined object being referenced.
ExplicitReferenceThe definition of an object can sit directly inside the reference being made.

Traits

A Trait is a simple object that describes a semantic meaning, settings, or measurement. Consider the following example.

  1. By convention, trait names describe the meaning and domain of the trait byusing a word.word.word format. As part of the convention, the first wordis either a namespace identifier (for custom extensions) or the verb is,does, or means.

  2. A best practice is to give traits an explanation that makes it clear when orwhere they should be applied.

  3. Traits can be defined as extensions of a base trait. This creates aninheritance hierarchy that allows for mixing specific and generalexpressions of meaning. For example, if means.measurement.distanceextends means.measurement and means.measurement.temperature alsoextends means.measurement, any object that exhibits either of the morespecific traits for distance or temperature can also be seen to have themeans.measurement trait. This can be useful for searching or grouping.

  4. Traits can define a set of named parameters that give additional detailsabout the trait or a setting.

  5. Trait parameters have a name and explanation, can be required or optional,can have default values, and have an expected data type.

  6. The data type for a trait parameter can be any of the dataType objectsdefined in the corpus.

  7. A trait that has been defined, such as means.measurement, can then beapplied or used by making a reference to the defined trait.

    1. An example of a simple trait reference is the use ofmeans.measurement as the base—or extended trait—for themeans.measurement.distance trait.

    2. A structured reference to a trait, which describes the base trait formeans.measurement.distance.meters as shown in the preceding example,allows trait arguments to be set for that specific use of the trait.

    3. The supplied trait arguments correspond to the defined trait parameters,including the trait parameters that might be inherited from a basetrait.

    4. A trait argument can be a simple string value. This assumes that valuesare set on parameters in the order in which they were defined, startingfrom the 'deepest' base trait on up.

    5. Another way to specify trait arguments is with name and valuepairs in an object.

    6. Trait arguments for simple values are always expressed as strings, evenif the trait parameter has a data type of integer, Boolean, orso on.

    7. Trait argument values for complex types like attributes or entities canbe objects.

  8. In this example, because the base trait parameter for units is set toMeters, when any other object has thismeans.measurement.distance.meters trait applied to it, the unitsargument will always be Meters.

For detailed guidance on traits including their use case, how they are described and how they are applied, please read Trait concepts and use cases - a detailed overview of traits for representing dataTypes.

Trait specifics

Property / MethodDescription
traitNameThe name.
extendsTraitA trait reference to a trait which this trait extends. This trait will inherit all parameters from the base trait.
parametersA list of parameters for holding values or settings with the trait
elevatedAn elevated trait will move from an attribute to a containing entity.
uglyJust a flag. Some traits are optimized for internal use, and shouldn't necessarily be displayed to users.

Trait parameters

Model
ParameterDescription
NameA unique name for the parameter. This name can be used to set argument values when referencing traits.
DefaultValueA default value for the parameter that will be used if no corresponding arguments are set.
DataTypeRefA Common Data Model data type describing the meaning and shape of the values that can be represented by this parameter.
RequiredIf True, Common Data Model will report an error if a trait is being referenced and no value has been set as an argument for this trait.

Applying traits

When an entity or other object is defined in Common Data Model, part of itsdefinition can be the set of traits that the object will exhibit—meaning thatany time the object is used by reference, it will have those traits.

In the places where an object is used by reference, additional traits can beapplied. These additional traits will sit along with the object's exhibitedtraits. Applying a trait to an object reference overrides the parameter valuesof the identically named trait that's exhibited by the object. For example, thefollowing trait is.constrained is extended.

This results in a trait called is.constrained.length that can be applied toan attribute to help understand the attribute's limitations. The extended traithas an Enforced parameter that tells us whether the length constraint isenforced by a source system (the default value here is True), along with amaximumLength parameter that's required to be set to a known maximum for anattribute.

When an attribute is defined by using this trait, the attribute-specific maximumlength can be set.

Standard traits

The standard definition documents for Common Data Model (primitives.cdm.json, foundations.cdm.json, and meaning.cdm.json) contain a number of predefined standard traits that should be used or extended to help create a shared understanding of metadata from different systems. These standard traits define data formats, data shapes, usage guidance and restrictions, semantic meanings, and structural information about the relationships within the entity itself. Some standard examples are described in the following table.

Trait nameDescription
is.dataFormat.integerPart of the dataFormat set of traits. This indicates that the attribute represents whole numbers.
means.identity.entityIdAn attribute that holds an identifier (primary key) value for an entity.
is.required
is.cdm.entityVersionThe version number for the schema of an entity.
is.localized.displayedAsThe display name for an attribute or entity. Holds a table of language-specific strings.
is.correlatedWithThe values found in the tagged attribute are correlated with the values from another indicated attribute.
means.calendar.dayOfWeekPart of the Calendar set of traits, This indicates the day of the week. Note that the data values can be Mon, Tues or 0,1,2 and this trait will still be valid. The data shape is defined by another trait such as is.dataFormat.integer.
means.demographic.maritalStatusMarital status. As with similar traits, such an attribute might also be constrained to a list of enumerated values to choose from.
means.formatting.font.size
means.idea.productAn entity that holds product information.
means.location.cityThe name of a city
means.measurement.distance.inchesInches, but also measurement and measurement of distance.
means.identity.person.fullName

The dataType object

The dataType object that's referenced as a part of defining an attribute or a trait parameter is just a convenient mechanism for giving a meaningful name to a collection of traits, some of which might have specific parameter values set. When an attribute is defined by using a data type, the attribute will gain the traits of the data type. The kinds of traits used to make data types should be about the format, meaning, or shape of individual data values.

Data types can extend other data types, in which case they gain (and can augment) the traits taken from the base data type. For example, we define:

Standard data types

The standard definition documents for Common Data Model (primitives.cdm.json, foundations.cdm.json, and meaning.cdm.json) contain a number of already defined data types that should be used or extended to help create a shared understanding of metadata from different systems. Some examples are included in the following table.

Data Semantics

dataType NameDescription
FloatExhibits dataFormat.floatingPoint.
BinaryExtends the byte data type and adds the is.dataFormat.array trait.
EntityValues are expected to point to a Common Data Model entity object.
YearExtends the integer calendar part type and adds a trait about meaning year numbers.
languageTagA string, but also a BCP47 language tag.
InchesA double with the measurement.distance.inches trait.

The following JSON excerpt is an example of how to define a data type:

Entities and their attributes

The primary object described by Common Data Model is the entity. An entity describes the structural shape and semantic meaning for records of data. Entities can represent physical objects, locations, interactions, individuals,point-in-time measurements, and more.

What Is Semantic Mapping

A given entity describes the meaning and shape of data through a set of attributes. There are two kinds of attributes: the atomic, simple type and the more complex, composite type.

Note

We refer to the attributes of an entity as objects, but logically they're more like connections between objects or events. They describe the act of associating some semantically described data values with the entity.

Simple, typed attributes

The first kind of attribute describes an individual, atomic piece of data that has a single name, data format, semantic meaning, and purpose within the entity.

These attributes are described in the following JSON excerpt:

The Purpose object

Beyond the data format or semantic meaning of an attribute's data values, we might need to describe the reason that an attribute is included in the entity or what purpose it serves. The Purpose object in Common Data Model is used to describe such meaning. Structurally and syntactically, a purpose is identical to a dataType object. It gives a meaningful name to a collection of traits. When an attribute is defined by using a purpose, the attribute gains the traits of the Purpose object. A Purpose object can extend base Purpose objects, in which case it also gains the traits of the base.

Often, the traits on a Purpose object are elevated, meaning that they will also appear on the entity that contains the attribute.

Standard Purpose objects

The standard definition documents for Common Data Model (primitives.cdm.json, foundations.cdm.json and meaning.cdm.json) contain a number of predefined Purpose objects that should be used or extended to help create a sharedunderstanding of metadata from different systems. Some examples are included in the following table.

Purpose NameDescription
hasAThis is the root, 'void' purpose, which adds no traits.
identifiedByIndicates the primary key of an entity.
namedByThe tagged attribute holds the primary name for an entity.
orderedByThe records of the entity can be ordered by default by this attribute.
locatedAtThe objects described by the entity can be located physically by using the values of the attribute.
representsStateWithIndicates the state of the entity records.
createdOnIndicates when the record was created.
completedOnHolds a date for some application-specific notion of a record's being complete.

Of special note, the identifiedBy purpose is important to use for the primary key attribute of an entity to help Common Data Model discover relationships between entities.

Entity extensions

To be able to reuse common definitions, an entity can be defined as an extension of one other entity. When this is done, the extended entity gains all the attributes from the base entity along with any new attributes it defines. For example, because a student is a person, a Student entity can be extended from the Person entity, with a student-specific attribute added to the entity definition.

Traits applied to attributes

At the point where an attribute is being defined, a set of traits can be applied. These traits are applied on 'top' of the traits that the attribute might get from its purpose or data type.

Informally speaking, the full 'grammar' for composing a typed attribute can be expressed in the following way:

Using shorthand for the full JSON definition, the grammar described above givesus:

This attribute will do the following:

  1. Get traits from the purpose.

    1. Get traits from namedBy.

      1. Get traits from hasA (there are none).

      2. Add does.name.entityInstance.

  2. Add traits from the dataType object.

    1. Add traits from personName.

      1. Get traits from string (is.dataFormat.char,is.dataFormat.array).

      2. Add means.human.name.

      3. Add the trait is.constrained.length.

        1. Add the parameter from the base is.constrained(enforced=true).

        2. Add the parameter maximumLength.

      4. Set the argument maximumLength = 100.

    2. Apply the has.format trait with the argument L, F M.

  3. Give the attribute the name fullName.

  4. Reapply the is.constrained.length trait with a new argument formaximumLength.

The resulting attribute is named fullName and has these traits:

  • does.name.entityInstance

  • is.dataFormat.character

  • is.dataFormat.array

  • means.human.name

  • is.constrained.length (enforced=true, maximumLength=200)

  • hasFormat('L, F M.')

Using an entity as the type of an attribute

One entity can use a second entity as one of its attributes. This is the other type of attribute composition mentioned earlier. Using an entity as an attribute is the mechanism in Common Data Model for:

  1. Reusing common concepts from a shared definition.

  2. Containment and scoping of ideas, and construction of complex types.

  3. Identifying the semantic meaning behind an entity-to-entity relationship. For example, a student might have a favorite teacher. Student and Teacher are entities, but the concept of 'favorite' is the part of the attribute definition that ties them together.

Adding to our example:

The default behavior for Common Data Model is to treat an attribute of an entity type as an inline, complex data type. By default, the composition shown above resolves to:

  1. fullName

  2. SSN

  3. DOB

  4. gradeLevel

  5. primaryContactFullName

  6. primaryContactSSN

  7. primaryContactDOB Assassins creed brotherhood 1 0.

  8. favoriteTeacherFullName

  9. favoriteTeacherSSN

  10. favoriteTeacherDOB

The convert logical entities into resolved entities article explains this behavior in depth and explains how to override the defaults to get the shaped entities you want.

What Data Model Is Also Called Semantics

The AttributeGroup object

The AttributeGroup object offers a convenient way to name and reuse a set of attributes that are always used together, but the grouping doesn't quite merit being called an entity, or when you don't want to deal with the complex data type semantics of using an entity typed attribute.

Things 3 4 1 – elegant personal task management. After it's defined, an attribute group can be used by reference in place of a regular attribute definition. Doing this simply 'copies and pastes' the group's attributes into the entity. No attempt is made to disambiguate names or make relationships.

To illustrate, we can add some common bookkeeping attributes to our Person entity:

Or, in JSON form:

The ConstantEntity object

There are situations where a structured table of values needs to be held as a part of the definition or description of schema objects. The most common examples are the tables of per-language description text that can be applied toentities or attributes, or the tables of code lookup values that can be associated with attributes that have a data type where values are picked from a set of enumerated possibilities. Constant entities make it possible to store a table of information inside a parameter of a trait.

Property NameDescription
ConstantEntityNameA name for the constant entity. This is only needed if the entity will be defined outside the place where it's being referenced.
ExplanationAn explanation of the constant entity. It's a good practice to list the attributes of the schema here.
EntityShapeA reference to the entity definition that describes the attributes of this constant entity. These attributes must correspond one to one with the items in a row of the ConstantValues array.
ConstantValuesAn array or arrays of strings. One item in the outer array represents a row of data in the constant entity. Each item in the inner arrays represents a column value in that row.
ExhibitsTraitsAny traits that are always exhibited by this constant entity.

Like any other object in Common Data Model, a constant entity can be one of the definitions inside a cdm.json document, which can then be referenced by name when needed. However, because many constant entities are only used in one place, they're more often defined directly inside the individual entity reference from which they're being used. For example:

Learn more

Common Data Model fundamentals

This article is of interest to the following WikiProjects:
WikiProject Computer science(Rated Start-class)
This article is within the scope of WikiProject Computer science, a collaborative effort to improve the coverage of Computer science related articles on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
StartThis article has been rated as Start-Class on the project's quality scale.
???This article has not yet received a rating on the project's importance scale.
This article has been automatically rated by a bot or other tool because one or more other projects use this class. Please ensure the assessment is correct before removing the |auto= parameter.
Things you can help WikiProject Computer science with:

Here are some tasks awaiting attention:
  • Article requests :
  • Cleanup :
  • Copyedit :
  • Expand :
  • Infobox :
  • Maintain :
  • Photo :
    • Find pictures for the biographies of computer scientists (see List of computer scientists)
  • Stubs :
  • Unreferenced :
  • Project-related :
    • Tag all relevant articles in Category:Computer science and sub-categories with {{WikiProject Computer science}}
WikiProject Systems(Rated Start-class, Mid-importance)
This article is within the scope of WikiProject Systems, which collaborates on articles related to systems and systems science.
StartThis article has been rated as Start-Class on the project's quality scale.
MidThis article has been rated as Mid-importance on the project's importance scale.
This article is within the field of Scientific modeling.

Semantic data model vs. conceptual data model[edit]

The text says that a semantic data model is sometimes called conceptual data model.

Does that mean, that it is just a synonym and the two articles could be merged?Or is there any difference in meaning?

--80.136.6.150 (talk) 16:52, 20 July 2009 (UTC)

The problem here is that there is no real article about conceptual data model, just about conceptual schema, which if I am not mistaken is more about database modeling. -- Marcel Douwe Dekker (talk) 21:26, 20 July 2009 (UTC)
You are right. I also know the term 'conceptual schema' from the database context (ANSI-SPARC Architecture). Then probably, it is not correct to use the terms 'conceptual schema' and 'conceptual data model' synonymously like it is done here: conceptual schema. On the other hand these terms are used very inconsistently in literature (some authors claim that 'conceptual schema' is not the same as 'conceptual data model' / others use these terms interchangeably). --80.136.42.27 (talk) 18:15, 21 July 2009 (UTC)
I am still not sure. I did ask almost the same question 9 months ago, see here, and again in a discussion 6 months ago on the talk:Data model page (see my 23:10, 13 January 2009 (UTC) comment). I guess you are right about these terms are used indifferent meanings. The theory is far from clear here.
For example I am still wondering if the term conceptual data model should redirect to conceptual schema or Logical data model. And if there is a real difference between conceptual and logical data models..!? What do you think? -- Marcel Douwe Dekker (talk) 19:38, 21 July 2009 (UTC)
Well, I think that conceptual and logical data models are not the same. A conceptual data model is completely independent from a data storage technology (e.g. relational, hierarchical, network or object database model, XML, etc.), while a logical data model is intended for relational databases and is closer to the physical data model, but independent from a specific relational DBMS implementation (Oracle, DB2, etc.). I know at least one modelling tool, which distinguishes these 3 data model types in the way I described.
But I still have to think about the distinction between 'conceptual data model' and 'conceptual schema'.. --80.136.3.28 (talk) 18:20, 22 July 2009 (UTC)

Terms are used very fuzzy and different among authors but you can separate semantic data[base] models = conceptual data[base] models and logical data models. A 'schema' in both cases is a model expressed in a specific modeling language. So a 'conceptual schema' is a semantic data model expressed in ERM, UML, ORM or similar language. -- JakobVoss (talk) 05:40, 16 July 2010 (UTC)

The qualifier 'semantic' suggests that an 'ordinary' data model is *not* semantic. This is patently false: any data model is a representation of object classes/types and the stereotypical relationship types between them. That is semantic. I suspect that the term is invented by someone who really has little understanding of data modelling generally, nor what the term 'semantics' means (excuse the pun) — Preceding unsigned comment added by 76.169.22.32 (talk) 17:19, 16 May 2014 (UTC)

Retrieved from 'https://en.wikipedia.org/w/index.php?title=Talk:Semantic_data_model&oldid=726606373'




broken image